@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_85cc9dcb-module__hEKIaG__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_85cc9dcb-module__hEKIaG__variable{--font-jakarta:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12e986493c137cf-s.2tuvx2ggl0uf7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/36363bfb06833f56-s.p.048ctm9k7u_u3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2fa3ef4ca165ab4-s.2t3qiyt2vl-ta.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a73419dd2ba2d841-s.p.2_s53-223o24o.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.dm_mono_60f0e53a-module__UXnHvG__className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.dm_mono_60f0e53a-module__UXnHvG__variable{--font-dm-mono:"DM Mono", "DM Mono Fallback"}
:root{--font-sans:var(--font-jakarta,"Plus Jakarta Sans"), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:var(--font-dm-mono,"DM Mono"), ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--display-1:clamp(2.5rem, 1.28rem + 4.9vw, 4.75rem);--display-2:clamp(2rem, 1.36rem + 2.55vw, 3.375rem);--display-3:clamp(1.375rem, 1.18rem + .8vw, 1.875rem);--text-lead:clamp(1.0625rem, 1rem + .3vw, 1.25rem);--violet:#6b44ed;--violet-hover:#5b33e3;--violet-deep:#5033b2;--violet-50:#f0ecfd;--violet-100:#e5defc;--violet-200:#d1c5f9;--lime:#d0fa12;--lime-hover:#c5f000;--lime-edge:#a9cd0b;--coral:#fd6848;--coral-ink:#d4421d;--coral-50:#ffefea;--sky:#4cc9f6;--sky-50:#e8f2fd;--navy:#0b4698;--ink:#141414;--bg:#fff;--bg-tint:#f3f0fe;--surface:#fff;--surface-2:#f4f4f6;--surface-3:#eaeaef;--border:#ebebf0;--border-strong:#d9d9e1;--text:#141414;--text-body:#3d4350;--text-muted:#646a78;--text-faint:#8f94a0;--accent:#6b44ed;--accent-soft:#f0ecfd;--accent-ring:#6b44ed2e;--grid-line:#6b44ed12;--ascii-font:var(--font-mono);--ascii-color:#1414141c;--ascii-glow:#6b44edbf;--header-bg:#ffffffd1;--header-border:#ededf2;--overlay:#0a0a0e8c;--band:#141414;--band-surface:#1d1d1d;--band-surface-2:#262626;--band-border:#ffffff17;--band-border-strong:#ffffff29;--band-text:#fff;--band-body:#ffffffbd;--band-muted:#ffffff8c;--shadow-xs:0 1px 2px #1414140d;--shadow-sm:0 1px 2px #1414140a, 0 6px 16px -8px #1414141a;--shadow-md:0 2px 4px #14141408, 0 18px 36px -18px #1414142e;--shadow-lg:0 4px 10px #1414140a, 0 36px 72px -32px #14141447;--shadow-violet:0 22px 48px -22px #6b44ed8c;--glow-lime:0 12px 30px -10px #bee600bf;--radius-xs:8px;--radius-sm:12px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--container:1200px;--gutter:16px;--header-h:64px;--section-y:clamp(4.5rem, 2.9rem + 6.4vw, 8rem);--ease-out:cubic-bezier(.22, .8, .24, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}:root[data-theme=dark]{--bg:#0a0a0a;--bg-tint:#0f0c19;--surface:#141414;--surface-2:#1c1c1f;--surface-3:#26262a;--border:#ffffff14;--border-strong:#ffffff26;--text:#fafafa;--text-body:#babdc7;--text-muted:#8e929d;--text-faint:#6c707a;--accent:#a58bff;--accent-soft:#7c5cff29;--accent-ring:#a58bff3d;--grid-line:#ffffff0b;--ascii-color:#ffffff16;--ascii-glow:#d0fa12b3;--header-bg:#0a0a0abd;--header-border:#ffffff12;--overlay:#000000b3;--band:#121212;--band-surface:#1a1a1a;--band-surface-2:#232323;--coral-50:#fd68481f;--sky-50:#4cc9f61a;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 2px #0006, 0 6px 16px -8px #0009;--shadow-md:0 2px 4px #0000004d, 0 18px 36px -18px #000000bf;--shadow-lg:0 4px 10px #0000004d, 0 36px 72px -32px #000000e6}@media (min-width:640px){:root{--gutter:24px}}@media (min-width:1024px){:root{--gutter:32px;--header-h:72px}}@media (min-width:1800px){:root{--container:1320px}}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:var(--header-h);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);min-height:100dvh;color:var(--text-body);font-size:1rem;line-height:1.65;transition:background-color .3s;overflow-x:clip}html.menu-open{overflow:hidden}html:has(dialog[open]){overflow:hidden}img,svg,video,canvas,iframe{max-width:100%;display:block}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}h1,h2,h3,h4{color:var(--text);letter-spacing:-.025em;text-wrap:balance;font-weight:700;line-height:1.15}p{text-wrap:pretty}strong{font-weight:650}::selection{background:var(--lime);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}main:focus{outline:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.container{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--ink);color:#fff;transition:transform .2s var(--ease-out);padding:10px 16px;font-size:.875rem;font-weight:600;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.icon{flex-shrink:0;width:1em;height:1em}.icon-diagonal{transition:transform .25s var(--ease-out);transform:rotate(-45deg)}.section{isolation:isolate;padding-block:var(--section-y);position:relative}.section--tint{background:var(--bg-tint)}.section--dark{background:var(--band);color:var(--band-body)}.has-grid:before{content:"";z-index:-1;background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);pointer-events:none;background-position:50% 0;background-size:88px 88px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 65% at 50% 32%,#000 20%,#0000 85%);mask-image:radial-gradient(80% 65% at 50% 32%,#000 20%,#0000 85%)}.pixel{z-index:-1;width:var(--pixel-size,40px);aspect-ratio:1;pointer-events:none;position:absolute}.pixel--violet-soft{background:var(--violet-50)}.pixel--lime{background:var(--lime)}.pixel--violet{background:var(--violet)}[data-theme=dark] .pixel--violet-soft{background:#7c5cff1f}.btn{--btn-h:48px;min-height:var(--btn-h);border-radius:var(--radius-pill);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .35s var(--ease-out), transform .25s var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:.55rem;padding:0 1.375rem;font-size:.9375rem;font-weight:600;line-height:1;display:inline-flex;position:relative}.btn .icon{font-size:1.15em}.btn:hover .icon-diagonal{transform:rotate(-45deg)translate(2px)}.btn:active{transform:translateY(1px)scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn-sm{--btn-h:40px;border-radius:var(--radius-md);padding:0 1.05rem;font-size:.875rem}.btn-lg{--btn-h:56px;padding:0 1.75rem;font-size:1rem}.btn-block{width:100%}.btn-arrow{width:calc(var(--btn-h) - 14px);height:calc(var(--btn-h) - 14px);background:var(--ink);color:#fff;transition:transform .35s var(--ease-spring);border-radius:50%;place-items:center;margin-right:-1.1rem;display:grid}.btn-arrow .icon{font-size:1.1rem}.btn:hover .btn-arrow{transform:translate(3px)rotate(-45deg)}.btn-primary{background:var(--lime);border-color:var(--lime-edge);color:var(--ink)}.btn-primary:hover:not(:disabled){background:var(--lime-hover);box-shadow:var(--glow-lime)}.btn-accent{background:var(--violet);color:#fff}.btn-accent:hover{background:var(--violet-hover);box-shadow:var(--shadow-violet)}.btn-dark{background:var(--text);color:var(--bg)}.btn-dark:hover{background:var(--violet);color:#fff;box-shadow:var(--shadow-violet)}.btn-outline{border-color:var(--text);color:var(--text)}.btn-outline:hover{background:var(--text);color:var(--bg)}.btn-outline-accent{border-color:var(--accent);color:var(--accent)}.btn-outline-accent:hover{background:var(--accent-soft)}.btn-outline-light{border-color:var(--band-border-strong);color:#fff}.btn-outline-light:hover{background:#ffffff14;border-color:#fff}.btn-ghost{background:var(--surface-2);color:var(--text)}.btn-ghost:hover{background:var(--surface-3)}.social-button{border-radius:var(--radius-sm);border:1px solid var(--border-strong);width:44px;height:44px;color:var(--text);transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .25s var(--ease-out);place-items:center;font-size:1.15rem;display:inline-grid}.social-button:hover{background:var(--violet);border-color:var(--violet);color:#fff;transform:translateY(-2px)}.social-button--dark{border-color:var(--band-border-strong);color:#fff}.social-button--dark:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}.eyebrow,.mini-title{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:500;line-height:1}.eyebrow{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);align-items:center;gap:10px;padding:8px 14px 8px 10px;display:inline-flex}.eyebrow:before{content:"";background:var(--lime);border-radius:2px;width:8px;height:8px;box-shadow:inset 0 0 0 1px #1414141f}.mini-title{color:var(--text-muted)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--chip-border,var(--border));background:var(--chip-bg,var(--surface-2));min-height:36px;color:var(--chip-fg,var(--text));font-family:var(--font-mono);letter-spacing:-.01em;transition:transform .25s var(--ease-out), background-color .2s ease;border-radius:10px;align-items:center;gap:8px;padding:0 12px;font-size:.8125rem;font-weight:500;line-height:1.2;display:inline-flex}.chip .icon{opacity:.92;font-size:15px}@media (hover:hover){.chip:hover{transform:translateY(-2px)}}.chips--sm .chip{min-height:32px;padding:0 10px;font-size:.75rem}.chips--outline .chip{--chip-bg:transparent;--chip-border:var(--border-strong);--chip-fg:var(--text-body)}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{border-radius:var(--radius-xs);background:var(--surface-2);color:var(--text-body);font-family:var(--font-mono);align-items:center;gap:6px;padding:6px 10px;font-size:.75rem;font-weight:500;line-height:1.2;display:inline-flex}.tag .icon{font-size:13px}.tags--dark .tag{border:1px solid var(--band-border);color:#ffffffd1;background:#ffffff0f}.badge{border-radius:var(--radius-pill);width:max-content;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;padding:7px 12px;font-size:.6875rem;font-weight:500;line-height:1;display:inline-flex}.badge--lime{background:var(--lime);color:var(--ink)}.badge--live:before{content:"";background:var(--ink);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.section-heading{text-align:center;justify-items:center;gap:18px;max-width:860px;margin:0 auto clamp(2.5rem,1.6rem + 3.6vw,4.5rem);display:grid}.section-heading--start{text-align:left;justify-items:start;margin-inline:0}.section-title{font-size:var(--display-2);letter-spacing:-.04em;font-weight:700;line-height:1.12}.section-lead{max-width:640px;font-size:var(--text-lead);color:var(--text-body);line-height:1.65}.section--dark .section-title{color:#fff}.section--dark .section-lead{color:var(--band-body)}.section--dark .eyebrow{color:var(--lime);background:#ffffff14}.marker{background:var(--lime);color:var(--ink);-webkit-box-decoration-break:clone;box-decoration-break:clone;margin-inline:.02em;padding:0 .16em}.marker-bracket{font-weight:500}.marker-bracket:first-child{margin-right:.24em}.marker-bracket:last-child{margin-left:.24em}.accent{color:var(--accent);white-space:nowrap;display:inline-block;position:relative}.section--dark .accent{color:var(--lime)}.scribble{pointer-events:none;clip-path:inset(0);width:104%;height:.42em;transition:clip-path 1.1s var(--ease-out) .3s;position:absolute;bottom:-.34em;left:-2%;overflow:visible}.scribble path{fill:none;stroke:currentColor;stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}html.js [data-reveal]:not(.is-visible) .scribble{clip-path:inset(0 100% 0 0)}html.js [data-reveal]:not(.is-visible){opacity:0}html.js [data-reveal].is-visible{animation:reveal-in .85s var(--ease-out) var(--reveal-delay,0s) backwards}@keyframes reveal-in{0%{opacity:0;translate:0 28px}}html.js:not(.reveal-ready) [data-reveal]:not(.is-visible){animation:.6s 2.5s forwards reveal-fallback}@keyframes reveal-fallback{to{opacity:1}}@media (prefers-reduced-motion:reduce){html.js [data-reveal]:not(.is-visible){opacity:1}html.js [data-reveal]:not(.is-visible) .scribble{clip-path:none}}.rich-text{color:var(--text-body);gap:10px;font-size:.9375rem;line-height:1.65;display:grid}.rich-text :is(ul,ol){gap:8px;display:grid}.rich-text li{padding-left:22px;position:relative}.rich-text ul>li:before{content:"";background:var(--accent);border-radius:2px;width:7px;height:7px;position:absolute;top:.62em;left:4px}.rich-text ol{counter-reset:item}.rich-text ol>li:before{counter-increment:item;content:counter(item, decimal-leading-zero);font-family:var(--font-mono);color:var(--accent);font-size:.75rem;position:absolute;top:.25em;left:0}.rich-text li p{margin:0}.rich-text :is(h3,h4){color:var(--text);margin-top:6px;font-size:1rem}.rich-text :is(b,strong){color:var(--text)}.rich-text a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.rich-text code{background:var(--surface-2);font-family:var(--font-mono);border-radius:6px;padding:1px 6px;font-size:.85em}.dialog{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);width:min(920px,100% - 24px);max-width:none;max-height:calc(100dvh - 32px);color:var(--text-body);box-shadow:var(--shadow-lg);opacity:0;transition:opacity .3s var(--ease-out), transform .35s var(--ease-out), overlay .35s allow-discrete, display .35s allow-discrete;margin:auto;padding:0;overflow:hidden;transform:translateY(16px)scale(.98)}.dialog[open]{opacity:1;transform:none}@starting-style{.dialog[open]{opacity:0;transform:translateY(16px)scale(.98)}}.dialog::backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease, overlay .3s allow-discrete, display .3s allow-discrete}.dialog[open]::backdrop{opacity:1}@starting-style{.dialog[open]::backdrop{opacity:0}}.dialog-panel{overscroll-behavior:contain;max-height:calc(100dvh - 34px);position:relative;overflow-y:auto}.dialog-close{z-index:2;background:var(--ink);color:#fff;width:40px;height:40px;box-shadow:var(--shadow-md);transition:transform .3s var(--ease-spring), background-color .2s ease;border-radius:50%;place-items:center;font-size:1.1rem;display:grid;position:absolute;top:14px;right:14px}.dialog-close:hover{background:var(--violet);transform:rotate(90deg)}.dialog-media{padding:12px 12px 0}.dialog-body{gap:16px;padding:clamp(20px,3vw,32px);display:grid}.dialog-title{font-size:var(--display-3);letter-spacing:-.03em}.dialog-actions{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.back-to-top{right:max(16px, env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;border:1px solid var(--lime-edge);background:var(--lime);width:48px;height:48px;color:var(--ink);box-shadow:var(--glow-lime);opacity:0;visibility:hidden;transition:opacity .3s ease, visibility .3s, transform .4s var(--ease-spring), box-shadow .3s ease;border-radius:50%;place-items:center;font-size:1.25rem;display:grid;position:fixed;transform:translateY(14px)scale(.9)}.back-to-top.visible{opacity:1;visibility:visible;transform:none}.back-to-top.visible:hover{transform:translateY(-3px)}@media (min-width:1024px){.back-to-top{bottom:28px;right:28px}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}.section--dark :focus-visible,.tech-band :focus-visible,.pitch-card :focus-visible,.site-footer :focus-visible{outline-color:var(--lime)}
.about-layout,.education-list,.stats,.skills-grid,.practices,.project-grid,.experience-layout,.timeline,.contact-methods,.contact-layout,.form-row,.footer-grid{grid-template-columns:minmax(0,1fr)}.site-header{z-index:50;height:var(--header-h);border-bottom:1px solid #0000;transition:border-color .3s;position:fixed;inset:0 0 auto}.site-header:before{content:"";z-index:-1;background:var(--header-bg);-webkit-backdrop-filter:saturate(180%)blur(14px);backdrop-filter:saturate(180%)blur(14px);opacity:0;transition:opacity .3s,background-color .3s;position:absolute;inset:0}.site-header.is-scrolled{border-bottom-color:var(--header-border)}.site-header.is-scrolled:before,.site-header.is-open:before{opacity:1}.site-header.is-open:before{background:var(--bg)}.header-inner{align-items:center;gap:16px;height:100%;display:flex}.header-logo{border-radius:var(--radius-sm);flex-shrink:0;display:inline-flex}.logo{color:var(--text);letter-spacing:-.035em;white-space:nowrap;align-items:center;gap:10px;font-size:1.0625rem;font-weight:750;display:inline-flex}.logo-mark{background:var(--violet);width:36px;height:36px;transition:transform .5s var(--ease-spring);border-radius:11px;flex-shrink:0;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff47,0 8px 18px -8px #6b44edd9}.logo-mark svg{fill:none;stroke:#fff;stroke-width:6px;stroke-linecap:round;stroke-linejoin:round;width:26px;height:26px}.header-logo:hover .logo-mark{transform:rotate(-10deg)scale(1.06)}.header-nav{display:none}.header-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.header-resume,.header-cta{display:none}.nav-link{height:38px;color:var(--text-body);border-radius:10px;align-items:center;padding:0 13px;font-size:.875rem;font-weight:500;transition:color .2s,background-color .2s;display:inline-flex;position:relative}.nav-link:hover{color:var(--text);background:var(--surface-2)}.nav-link.is-active{color:var(--accent)}.nav-link:after{content:"";width:5px;height:5px;transition:transform .35s var(--ease-spring);background:currentColor;border-radius:1.5px;margin-left:-2.5px;position:absolute;bottom:3px;left:50%;transform:scale(0)}.nav-link.is-active:after{transform:scale(1)}.theme-toggle,.menu-toggle{border-radius:var(--radius-md);border:1px solid var(--border);width:40px;height:40px;color:var(--text);flex-shrink:0;place-items:center;transition:background-color .2s,border-color .2s;display:grid;position:relative}.theme-toggle{background:var(--surface-2);font-size:1.1rem;overflow:hidden}.theme-toggle:hover{background:var(--surface-3)}.theme-toggle .icon{transition:transform .55s var(--ease-spring), opacity .25s ease;grid-area:1/1}.theme-toggle-sun{opacity:0;transform:translateY(18px)rotate(-90deg)}[data-theme=dark] .theme-toggle-moon{opacity:0;transform:translateY(-18px)rotate(90deg)}[data-theme=dark] .theme-toggle-sun{opacity:1;transform:none}.menu-toggle{border-color:var(--border-strong);background:var(--surface)}.menu-toggle-bar{height:2px;transition:transform .35s var(--ease-out), top .35s var(--ease-out);background:currentColor;border-radius:2px;position:absolute;left:11px;right:11px}.menu-toggle-bar:first-child{top:14px}.menu-toggle-bar:last-child{top:22px}.menu-toggle[aria-expanded=true] .menu-toggle-bar:first-child{top:18px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-toggle-bar:last-child{top:18px;transform:rotate(-45deg)}.scroll-progress{background:linear-gradient(90deg, var(--violet), var(--lime));transform-origin:0;pointer-events:none;height:2px;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}@supports (animation-timeline:scroll()){.scroll-progress{animation:linear both scroll-progress;animation-timeline:scroll(root)}}@keyframes scroll-progress{to{transform:scaleX(1)}}.mobile-menu{top:var(--header-h);overscroll-behavior:contain;background:var(--bg);opacity:0;visibility:hidden;transition:opacity .3s var(--ease-out), transform .4s var(--ease-out), visibility 0s linear .4s;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(-8px)}.mobile-menu[data-open=true]{opacity:1;visibility:visible;transition-delay:0s;transform:none}.mobile-menu-inner{min-height:100%;padding-top:8px;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:28px;display:flex}.mobile-nav li{opacity:0;transition:opacity .4s var(--ease-out), transform .45s var(--ease-out);transition-delay:calc(var(--i) * 45ms + 60ms);transform:translateY(10px)}.mobile-menu[data-open=true] .mobile-nav li{opacity:1;transform:none}.mobile-nav-link{border-bottom:1px solid var(--border);color:var(--text);letter-spacing:-.035em;align-items:center;gap:16px;padding:17px 2px;font-size:1.625rem;font-weight:700;line-height:1.1;display:flex}.mobile-nav-index{min-width:22px;color:var(--text-faint);font-family:var(--font-mono);letter-spacing:.08em;font-size:.75rem;font-weight:500}.mobile-nav-arrow{color:var(--text-faint);transition:transform .3s var(--ease-out), color .2s ease;margin-left:auto;font-size:1.25rem;transform:rotate(-45deg)}.mobile-nav-link.is-active{color:var(--accent)}.mobile-nav-link:hover .mobile-nav-arrow,.mobile-nav-link.is-active .mobile-nav-arrow{color:var(--accent);transform:none}.mobile-menu-actions{gap:10px;display:grid}.mobile-menu-socials{gap:10px;display:flex}@media (min-width:640px){.header-cta{display:inline-flex}}@media (min-width:1024px){.header-nav{flex:1;justify-content:center;display:flex}.header-nav ul{align-items:center;gap:2px;display:flex}.header-actions{margin-left:0}.menu-toggle,.mobile-menu{display:none}}@media (min-width:1200px){.header-resume{display:inline-flex}}.hero{isolation:isolate;padding-top:calc(var(--header-h) + clamp(2.5rem, .9rem + 5.8vw, 5.75rem));text-align:center;padding-bottom:clamp(3.5rem,2rem + 5vw,6rem);position:relative;overflow:clip}.hero:after{content:"";z-index:-1;background:linear-gradient(to bottom, transparent, var(--bg));pointer-events:none;height:140px;position:absolute;inset:auto 0 0}.ascii-field{z-index:-2;opacity:0;pointer-events:none;transition:opacity 1.2s;position:absolute;inset:0}.ascii-field.is-ready{opacity:1}.ascii-field canvas{width:100%;height:100%;position:absolute;inset:0}.ascii-field-base{-webkit-mask-image:radial-gradient(54% 48% at 50% 42%,#0000 30%,#000 82%);mask-image:radial-gradient(54% 48% at 50% 42%,#0000 30%,#000 82%)}.ascii-field-glow{opacity:0;-webkit-mask-image:radial-gradient(circle 180px at var(--mx,-999px) var(--my,-999px), #000, transparent 72%);-webkit-mask-image:radial-gradient(circle 180px at var(--mx,-999px) var(--my,-999px), #000, transparent 72%);mask-image:radial-gradient(circle 180px at var(--mx,-999px) var(--my,-999px), #000, transparent 72%);transition:opacity .45s}.ascii-field.is-pointer .ascii-field-glow{opacity:1}.hero-inner{z-index:1;position:relative}.tech-orbs{flex-wrap:wrap;justify-content:center;gap:8px;max-width:300px;margin:0 auto clamp(1.75rem,1rem + 2.5vw,2.75rem);display:flex}.tech-orb{--size:clamp(36px, 2.4vw + 24px, 54px);width:var(--size);height:var(--size);background:radial-gradient(circle at 30% 24%, #ffffff80, #fff0 55%), var(--orb-bg);color:var(--orb-fg);box-shadow:inset 0 -6px 12px #0003, inset 0 1px 1px #ffffff73, 0 12px 22px -14px var(--orb-bg), 0 0 0 1px #14141414;animation:orb-in .8s var(--ease-spring) backwards;animation-delay:calc(var(--i) * 45ms + 80ms);transition:transform .4s var(--ease-spring);border-radius:50%;place-items:center;display:grid;position:relative}[data-theme=dark] .tech-orb{box-shadow:inset 0 -6px 12px #00000040, inset 0 1px 1px #ffffff73, 0 12px 22px -14px var(--orb-bg), 0 0 0 1px #ffffff1f}.tech-orb .icon{width:48%;height:48%}.tech-orb-mono{font-family:var(--font-mono);font-size:calc(var(--size) * .3);letter-spacing:-.02em;font-weight:500}@media (hover:hover){.tech-orb:hover{z-index:2;transform:translateY(-5px)scale(1.08)}}.tech-orb:after{content:attr(data-name);background:var(--ink);color:#fff;font-family:var(--font-mono);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease, translate .25s var(--ease-out);border-radius:8px;padding:6px 10px;font-size:.6875rem;position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50% 4px}[data-theme=dark] .tech-orb:after{color:var(--ink);background:#fff}.tech-orb:hover:after{opacity:1;translate:-50%}@keyframes orb-in{0%{opacity:0;translate:0 14px;scale:.6}}@media (min-width:640px){.tech-orbs{max-width:760px}}.hero-title{font-size:var(--display-1);letter-spacing:-.045em;font-weight:750;line-height:1.1}.hero-title-row{display:block}.hero-title-row+.hero-title-row{margin-top:.06em}.hero-title .marker{background:linear-gradient(var(--lime), var(--lime)) no-repeat 0 0 / 100% 100%;animation:marker-sweep .9s var(--ease-out) .25s backwards}@keyframes marker-sweep{0%{background-size:0% 100%}}.hero-title-accent{color:var(--accent)}.hero-intro{max-width:47rem;font-size:var(--text-lead);margin:1.5rem auto 0;line-height:1.7}.hero-intro strong{color:var(--accent);font-weight:650}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:2.25rem;display:flex}.hero-actions,.hero-facts{animation:rise .9s var(--ease-out) backwards}.hero-actions{animation-delay:.3s}.hero-facts{animation-delay:.45s}@keyframes rise{0%{opacity:0;translate:0 18px}}@media (max-width:519px){.hero-actions .btn{width:100%}}.hero-facts{border:1px solid var(--band-border);background:var(--band);color:#fff;text-align:left;max-width:1060px;box-shadow:var(--shadow-lg);border-radius:24px;grid-template-columns:1fr;margin:clamp(2.75rem,1.4rem + 4.4vw,4.75rem) auto 0;padding:8px;display:grid}.hero-fact{align-items:center;gap:14px;min-width:0;padding:14px 16px;display:flex}.hero-fact+.hero-fact{border-top:1px solid var(--band-border)}.hero-fact p{gap:3px;min-width:0;display:grid}.hero-fact-label{color:var(--band-muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.6875rem;font-weight:500;line-height:1.3}.hero-fact-value,.hero-fact-name{color:#fff;font-size:.9375rem;font-weight:600;line-height:1.35}.hero-fact-name{letter-spacing:-.01em}.hero-fact-sub{color:var(--band-muted);font-size:.8125rem;font-weight:500;line-height:1.35}.hero-avatar{object-fit:cover;width:44px;height:44px;box-shadow:0 0 0 2px var(--lime);border-radius:14px;flex-shrink:0}.fact-icon{border-radius:14px;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:1.25rem;display:grid}.fact-icon--lime{color:var(--lime);background:#d0fa1224}.fact-icon--coral{color:#ff8f75;background:#fd684829}.fact-icon--violet{color:#c4b5ff;background:#7c5cff3d}@media (min-width:640px){.hero-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-fact+.hero-fact{border-top:0}.hero-fact:nth-child(n+3){border-top:1px solid var(--band-border)}.hero-fact:nth-child(2n){border-left:1px solid var(--band-border)}}@media (min-width:1200px){.hero-facts{grid-template-columns:1.25fr 1fr 1fr 1fr}.hero-fact:nth-child(n+3){border-top:0}.hero-fact+.hero-fact{border-left:1px solid var(--band-border)}}.hero-windows{display:none}@media (min-width:1280px){.hero-windows{z-index:0;pointer-events:none;max-width:1520px;margin-inline:auto;display:block;position:absolute;inset:0}.code-window{text-align:left;box-shadow:var(--shadow-lg);animation:window-in 1s var(--ease-out) backwards, float 8s ease-in-out infinite;border-radius:16px;position:absolute;overflow:hidden}.code-window--terminal{color:#ffffffd1;background:#141414;border:1px solid #ffffff14;width:280px;animation-delay:.6s,1.6s;top:50%;left:-14px;rotate:-7deg}.code-window--editor{border:1px solid var(--border);background:var(--surface);width:304px;color:var(--text);animation-delay:.75s,2.4s;top:52%;right:-44px;rotate:6deg}}@media (min-width:1440px){.code-window--terminal{left:24px}.code-window--editor{right:22px}}.code-window-bar{border-bottom:1px solid #7f7f7f29;align-items:center;gap:12px;height:34px;padding:0 12px;display:flex}.code-window-dots{gap:5px;display:flex}.code-window-dots i{background:#ff5f57;border-radius:50%;width:9px;height:9px}.code-window-dots i:nth-child(2){background:#febc2e}.code-window-dots i:nth-child(3){background:#28c840}.code-window-title{font-family:var(--font-mono);opacity:.6;font-size:.6875rem}.code-window-body{font-family:var(--font-mono);white-space:pre;margin:0;padding:14px 16px 16px;font-size:.71875rem;line-height:1.75;overflow:hidden}.t-prompt{color:var(--lime)}.t-ok{color:#9be15d}.t-caret{vertical-align:-2px;background:var(--lime);width:7px;height:14px;margin-left:3px;animation:1.1s step-end infinite blink;display:inline-block}.t-key{color:var(--accent)}.t-var{color:var(--coral)}.t-str{color:#12805c}[data-theme=dark] .t-str{color:var(--lime)}@keyframes blink{50%{opacity:0}}@keyframes window-in{0%{opacity:0;scale:.92}}@keyframes float{0%,to{translate:0}50%{translate:0 -10px}}.tech-band{background:var(--band);padding-block:clamp(2.5rem,1.6rem + 3vw,4rem);position:relative;overflow:hidden}[data-theme=dark] .tech-band,[data-theme=dark] .section--dark{border-block:1px solid var(--band-border)}.tech-band-title{color:var(--band-muted);font-family:var(--font-mono);letter-spacing:.14em;text-align:center;text-transform:uppercase;align-items:center;gap:16px;margin-bottom:28px;font-size:.75rem;font-weight:500;line-height:1.2;display:flex}.tech-band-title:before,.tech-band-title:after{content:"";background:var(--band-border);flex:1;height:1px}.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000);mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.marquee+.marquee{margin-top:12px}.marquee-track{width:max-content;animation:marquee var(--marquee-duration,50s) linear infinite;gap:12px;display:flex}.marquee[data-direction=reverse] .marquee-track{animation-direction:reverse}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes marquee{to{transform:translate(calc(-25% - 3px))}}.marquee-item{border:1px solid var(--band-border);background:var(--band-surface);color:#fff;letter-spacing:-.02em;white-space:nowrap;border-radius:16px;align-items:center;gap:12px;height:56px;padding:0 22px 0 12px;font-size:1rem;font-weight:600;display:inline-flex}.marquee-logo{background:#ffffff0f;border-radius:10px;place-items:center;width:34px;height:34px;font-size:19px;display:grid}@media (prefers-reduced-motion:reduce){.marquee{-webkit-mask-image:none;mask-image:none}.marquee-track{width:auto;padding-inline:var(--gutter);flex-wrap:wrap;justify-content:center;animation:none}.marquee-item[aria-hidden=true]{display:none}}.about .pixel--violet-soft{--pixel-size:44px}.about-layout{align-items:center;gap:clamp(2.5rem,1.8rem + 3vw,4.5rem);display:grid}.portrait-wrap{width:min(100%,440px);margin-inline:auto;position:relative}.portrait{aspect-ratio:1/1.08;border-radius:var(--radius-xl);background:var(--violet);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.portrait img{object-fit:cover;object-position:50% 18%;width:100%;height:100%;transition:transform 1.2s var(--ease-out)}.portrait-wrap:hover .portrait img{transform:scale(1.04)}.portrait:after{content:"";pointer-events:none;background:linear-gradient(#6b44ed00,#6b44ed8c 50%,#3a20a8f2);position:absolute;inset:52% 0 0}.portrait-caption{z-index:1;color:#fff;gap:4px;display:grid;position:absolute;bottom:22px;left:24px;right:24px}.portrait-name{letter-spacing:-.035em;font-size:1.625rem;font-weight:750;line-height:1.1}.portrait-role{color:#ffffffdb;font-size:.9375rem}.portrait-tag{z-index:1;background:var(--lime);color:var(--ink);box-shadow:var(--shadow-sm);border-radius:10px;padding:8px 12px;font-size:.8125rem;font-weight:650;line-height:1;position:absolute;top:18px;left:18px}.portrait-wrap .pixel--lime{--pixel-size:44px;z-index:1;top:-12px;right:-10px}.portrait-wrap .pixel--violet{--pixel-size:60px;bottom:-14px;left:-10px}@media (min-width:640px){.portrait-wrap .pixel--lime{--pixel-size:56px;top:-18px;right:-18px}.portrait-wrap .pixel--violet{--pixel-size:76px;bottom:-22px;left:-22px}}.about-lead{color:var(--text);font-size:var(--text-lead);letter-spacing:-.01em;font-weight:500;line-height:1.7}.about-text{margin-top:1rem}.education{margin-top:2rem}.education-list{gap:10px;margin-top:12px;display:grid}.education-item{border:1px solid var(--border);background:var(--surface);border-radius:16px;align-items:flex-start;gap:12px;padding:14px;display:flex}.education-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:12px;flex-shrink:0;place-items:center;font-size:1.15rem;display:grid}.education-degree{color:var(--text);font-size:.9375rem;font-weight:600;line-height:1.35;display:block}.education-school{color:var(--text-muted);margin-top:3px;font-size:.8125rem;line-height:1.4;display:block}.about-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:2rem;display:flex}.stats{gap:16px;margin-top:clamp(3rem,2rem + 4vw,5rem);display:grid}.stat{isolation:isolate;min-height:210px;transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);border-radius:24px;flex-direction:column;justify-content:space-between;gap:28px;padding:26px;display:flex;position:relative;overflow:hidden}@media (hover:hover){.stat:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}}.stat-value{letter-spacing:-.055em;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:clamp(3rem,2.3rem + 2vw,4.25rem);font-weight:800;line-height:.95;display:flex}.stat-unit{letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.stat-text{max-width:26ch;font-size:.9375rem;line-height:1.55}.stat-icon{z-index:-1;opacity:.12;transition:transform .6s var(--ease-out);font-size:100px;position:absolute;bottom:-16px;right:-12px}.stat:hover .stat-icon{transform:rotate(-8deg)scale(1.06)}.stat--violet{background:var(--violet);color:#fff}.stat--violet .stat-text{color:#ffffffdb}.stat--lime{background:var(--lime);color:var(--ink)}.stat--coral{background:var(--coral-50);color:var(--text)}.stat--coral .stat-value{color:var(--coral-ink)}[data-theme=dark] .stat--coral .stat-value{color:var(--coral)}.stat--sky{background:var(--sky-50);color:var(--text)}.stat--sky .stat-value{color:var(--navy)}[data-theme=dark] .stat--sky .stat-value{color:var(--sky)}.stat--coral .stat-text,.stat--sky .stat-text{color:var(--text-body)}@media (min-width:640px){.education-list,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.about-layout{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.portrait-wrap{margin-inline:0 auto}.stats{grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column}}.skills-grid{gap:16px;display:grid}.skill-card{--tile-bg:var(--accent-soft);--tile-fg:var(--accent);--title:var(--text);isolation:isolate;transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out);border-radius:24px;flex-direction:column;gap:18px;padding:clamp(22px,1.4rem + .6vw,30px);display:flex;position:relative;overflow:hidden}@media (hover:hover){.skill-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}}.skill-card-head{align-items:center;gap:14px;display:flex}.skill-card-icon{background:var(--tile-bg);width:50px;height:50px;color:var(--tile-fg);border-radius:15px;flex-shrink:0;place-items:center;font-size:1.4rem;display:grid}.skill-card-title{color:var(--title);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:1.125rem;font-weight:500;line-height:1.1}.skill-card-count{font-family:var(--font-mono);margin-top:6px;font-size:.8125rem;font-weight:500}.skill-card-blurb{opacity:.86;font-size:.9375rem;line-height:1.55}.skill-card-extra{border-top:1px dashed var(--chip-border);gap:10px;padding-top:16px;display:grid}.skill-card-extra-label{color:inherit;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.6875rem;font-weight:500}.skill-card-watermark{z-index:-1;opacity:.08;transition:transform .7s var(--ease-out);font-size:170px;position:absolute;bottom:-30px;right:-26px}.skill-card:hover .skill-card-watermark{transform:rotate(-10deg)scale(1.05)}.skill-card--violet{--title:var(--lime);--tile-bg:#ffffff24;--tile-fg:var(--lime);--chip-bg:#140c3c33;--chip-fg:#fff;--chip-border:#ffffff29;background:var(--violet);color:#fff}.skill-card--ink{--title:var(--lime);--tile-bg:#d0fa121f;--tile-fg:var(--lime);--chip-bg:#ffffff0f;--chip-fg:#ffffffe6;--chip-border:#ffffff1a;background:var(--band);color:#fff}[data-theme=dark] .skill-card--ink{border:1px solid var(--band-border);background:var(--band-surface)}.skill-card--lime{--title:var(--ink);--tile-bg:var(--ink);--tile-fg:var(--lime);--chip-bg:#14141412;--chip-fg:var(--ink);--chip-border:#1414141f;background:var(--lime);color:var(--ink)}.skill-card--plain{--title:var(--accent);--chip-bg:var(--bg-tint);--chip-fg:var(--text);--chip-border:var(--border);border:1px solid var(--border);background:var(--surface);color:var(--text)}.skill-card--sky{--title:var(--ink);--tile-bg:var(--ink);--tile-fg:var(--sky);--chip-bg:#fff6;--chip-fg:var(--ink);--chip-border:#1414141a;background:var(--sky);color:var(--ink)}.practices{border:1px solid var(--border);background:var(--surface);border-radius:24px;gap:24px;margin-top:16px;padding:clamp(22px,1.4rem + .6vw,30px);display:grid}.practice .chips{margin-top:14px}@media (min-width:768px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-card:last-child:nth-child(odd){grid-column:1/-1}}@media (min-width:1100px){.skills-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.skill-card:nth-child(-n+2){grid-column:span 3}.skill-card:nth-child(n+3),.skill-card:last-child:nth-child(odd){grid-column:span 2}.practices{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}}.browser{border:1px solid var(--border);background:var(--surface);border-radius:18px;overflow:hidden}.browser-bar{border-bottom:1px solid var(--border);background:var(--surface-2);align-items:center;gap:12px;height:36px;padding:0 14px;display:flex}.browser-dots{flex-shrink:0;gap:6px;display:flex}.browser-dots i{background:#ff5f57;border-radius:50%;width:10px;height:10px}.browser-dots i:nth-child(2){background:#febc2e}.browser-dots i:nth-child(3){background:#28c840}.browser-url{background:var(--surface);min-width:0;color:var(--text-muted);font-family:var(--font-mono);text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;flex:0 300px;margin-inline:auto;padding:4px 12px;font-size:.6875rem;line-height:1.3;overflow:hidden}.browser-view{aspect-ratio:16/10;background:var(--surface-3);position:relative;overflow:hidden}.browser-view img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform 1.2s var(--ease-out)}.browser-placeholder{place-items:center;height:100%;display:grid}.browser-placeholder .logo-mark{border-radius:18px;width:64px;height:64px}.browser-placeholder .logo-mark svg{width:44px;height:44px}.project-meta{color:var(--accent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:500;line-height:1.4}.project-summary{color:var(--text-body);font-size:.9375rem;line-height:1.65}.project-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.featured-project{border:1px solid var(--border);background:var(--bg-tint);border-radius:32px;gap:24px;margin-bottom:20px;padding:12px;display:grid}.featured-media{border-radius:22px;display:block}.featured-media .browser{box-shadow:0 0 0 6px var(--violet-100), var(--shadow-md);border-radius:22px}[data-theme=dark] .featured-media .browser{box-shadow:0 0 0 6px #7c5cff2e, var(--shadow-md)}.featured-media:hover img{transform:scale(1.03)}.featured-body{align-content:center;justify-items:start;gap:14px;padding:8px 12px 16px;display:grid}.featured-title{font-size:var(--display-3);letter-spacing:-.035em}.featured-body .rich-text{width:100%}.featured-body .project-actions{margin-top:8px}@media (min-width:1024px){.featured-project{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;padding:18px 44px 18px 18px}.featured-body{padding:16px 0}}.project-grid{gap:20px;display:grid}.project-grid>li{display:flex}.project-card{border:1px solid var(--border);background:var(--surface);width:100%;transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .3s ease;border-radius:24px;flex-direction:column;padding:10px;display:flex}@media (hover:hover){.project-card:hover{border-color:var(--violet-200);box-shadow:var(--shadow-lg);transform:translateY(-6px)}}[data-theme=dark] .project-card:hover{border-color:#a58bff59}.project-media{border-radius:16px;display:block}.project-card .browser{border-radius:16px}.project-card:hover .browser-view img{transform:scale(1.05)}.project-body{flex-direction:column;flex:1;gap:12px;padding:18px 12px 12px;display:flex}.project-title{letter-spacing:-.03em;font-size:1.25rem;line-height:1.25}.project-card .project-summary{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-card .project-actions{margin-top:auto;padding-top:6px}.projects-empty{border:1px dashed var(--border-strong);color:var(--text-muted);text-align:center;border-radius:24px;padding:32px}.projects-more{color:var(--text-muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 20px;margin-top:clamp(2.5rem,2rem + 2vw,3.5rem);display:flex}@media (min-width:720px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid>li:last-child:nth-child(odd){grid-column:1/-1}.project-grid>li:last-child:nth-child(odd) .project-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;display:grid}.project-grid>li:last-child:nth-child(odd) .project-body{padding:16px 20px}}@media (min-width:1100px){.project-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.project-grid>li,.project-grid>li:last-child:nth-child(odd){grid-column:span 2}.project-grid>li:last-child:nth-child(odd) .project-card{display:flex}.project-grid>li:last-child:nth-child(odd) .project-body{padding:18px 12px 12px}.project-grid>li:last-child:nth-child(3n+2),.project-grid>li:nth-last-child(2):nth-child(3n+1){grid-column:span 3}.project-grid>li:last-child:nth-child(3n+1){grid-column:1/-1}.project-grid>li:last-child:nth-child(3n+1) .project-card{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:32px;display:grid}.project-grid>li:last-child:nth-child(3n+1) .project-body{padding:16px 28px 16px 4px}}.experience-layout{gap:40px;display:grid}.experience-intro .section-heading{margin-bottom:28px}.experience-actions{flex-wrap:wrap;gap:10px;display:flex}.timeline{gap:24px;display:grid}.job{--tab:var(--violet);--tab-fg:#fff;border:1px solid var(--band-border);background:var(--band-surface);border-radius:22px;grid-template-columns:40px minmax(0,1fr);display:grid;position:relative}.job:not(:last-child):after{content:"";border-left:2px dashed var(--band-border-strong);height:24px;position:absolute;top:100%;left:19px}.job--sky{--tab:var(--sky);--tab-fg:var(--ink)}.job--coral{--tab:var(--coral);--tab-fg:var(--ink)}.job-tab{background:var(--tab);border-radius:21px 0 0 21px;justify-content:center;align-items:center;display:flex}.job-tab span{color:var(--tab-fg);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;writing-mode:vertical-rl;font-size:.75rem;font-weight:500;transform:rotate(180deg)}.job-body{padding:22px 20px;transition:background-color .3s}.job:hover{border-color:var(--band-border-strong)}.job-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.job-company{color:#fff;letter-spacing:-.03em;font-size:1.375rem}.job-company a{align-items:center;gap:6px;transition:color .2s;display:inline-flex}.job-company a .icon{opacity:.55;font-size:.8em}.job-company a:hover{color:var(--lime)}.job-company a:hover .icon{opacity:1;transform:rotate(-45deg)translate(2px)}.job-role{color:var(--lime);margin-top:4px;font-size:.9375rem;font-weight:600}.job-meta{color:var(--band-muted);font-family:var(--font-mono);flex-wrap:wrap;gap:6px 18px;margin-top:12px;font-size:.8125rem;display:flex}.job-meta>span{align-items:center;gap:6px;display:inline-flex}.job-points{gap:10px;margin-top:18px;display:grid}.job-points li{color:var(--band-body);grid-template-columns:18px minmax(0,1fr);gap:10px;font-size:.9375rem;line-height:1.6;display:grid}.job-points .icon{color:var(--lime);margin-top:.3em;font-size:1rem}.job .tags{margin-top:20px}@media (min-width:640px){.job{grid-template-columns:52px minmax(0,1fr)}.job:not(:last-child):after{left:25px}.job-body{padding:26px 28px}}@media (min-width:1024px){.experience-layout{grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:start;gap:64px}.experience-intro{top:calc(var(--header-h) + 40px);position:sticky}}.contact-methods{gap:14px;margin-bottom:20px;display:grid}.contact-method{border:1px solid var(--border);background:var(--surface);transition:border-color .3s ease, box-shadow .35s var(--ease-out), transform .35s var(--ease-out);border-radius:20px;align-items:center;gap:14px;padding:16px;display:flex;position:relative}@media (hover:hover){.contact-method:hover{border-color:var(--violet-200);box-shadow:var(--shadow-md);transform:translateY(-3px)}}[data-theme=dark] .contact-method:hover{border-color:#a58bff59}.method-icon{border-radius:15px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:1.3rem;display:grid}.method-icon--violet{background:var(--violet);color:#fff}.method-icon--lime{background:var(--lime);color:var(--ink)}.method-icon--coral{background:var(--coral);color:#fff}.method-text{flex:1;gap:3px;min-width:0;display:grid}.method-label{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.6875rem;font-weight:500}.method-value{color:var(--text);overflow-wrap:anywhere;font-size:.9375rem;font-weight:600;line-height:1.4}.method-value:after{content:"";border-radius:inherit;position:absolute;inset:0}.method-value:focus-visible{outline:none}.method-value:focus-visible:after{outline:2px solid var(--accent);outline-offset:3px}.copy-button{z-index:1;border:1px solid var(--border);background:var(--surface-2);width:40px;height:40px;color:var(--text-muted);transition:color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s var(--ease-out);border-radius:12px;flex-shrink:0;place-items:center;font-size:1.05rem;display:grid;position:relative}.copy-button:hover{color:var(--text);border-color:var(--border-strong)}.copy-button:active{transform:scale(.92)}.copy-button.is-copied{border-color:var(--lime-edge);background:var(--lime);color:var(--ink)}.copy-button-toast{background:var(--ink);color:#fff;font-family:var(--font-mono);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease, translate .25s var(--ease-out);border-radius:8px;padding:5px 9px;font-size:.6875rem;position:absolute;bottom:calc(100% + 8px);left:50%;translate:-50% 4px}.copy-button.is-copied .copy-button-toast{opacity:1;translate:-50%}.contact-layout{gap:20px;display:grid}.pitch-card{isolation:isolate;border-radius:var(--radius-xl);background:var(--band);color:var(--band-body);flex-direction:column;gap:22px;padding:clamp(24px,1.2rem + 1.6vw,36px);display:flex;position:relative;overflow:hidden}[data-theme=dark] .pitch-card{border:1px solid var(--band-border);background:var(--band-surface)}.pitch-card:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(420px at 100% 0,#6b44ed6b,#0000 62%),linear-gradient(118deg,#0000 63%,#ffffff12 63.2%,#0000 63.6%),linear-gradient(118deg,#0000 70%,#ffffff0d 70.2%,#0000 70.6%);position:absolute;inset:0}.pitch-kicker{border-radius:var(--radius-pill);width:max-content;max-width:100%;color:var(--lime);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:#d0fa121f;padding:7px 12px;font-size:.6875rem;font-weight:500}.pitch-title{color:#fff;letter-spacing:-.035em;font-size:clamp(1.5rem,1.25rem + 1vw,2rem)}.pitch-list{gap:12px;display:grid}.pitch-list li{color:#ffffffd6;grid-template-columns:22px minmax(0,1fr);gap:12px;font-size:.9375rem;line-height:1.55;display:grid}.pitch-list .icon{color:var(--lime);margin-top:.12em;font-size:1.3rem}.pitch-map{border:1px solid var(--band-border);background:var(--band-surface-2);border-radius:18px;height:180px;position:relative;overflow:hidden}.pitch-map iframe{filter:grayscale()invert(.92)contrast(.9);border:0;width:100%;height:100%}.pitch-map:after{content:"";pointer-events:none;background:#6b44ed29;position:absolute;inset:0}.pitch-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;display:flex}.pitch-socials{gap:8px;display:flex}.form-card{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-md);padding:clamp(24px,1.2rem + 1.8vw,40px)}.form-card-title{letter-spacing:-.03em;font-size:1.5rem}.form-card-text{color:var(--text-muted);margin-top:6px}.form{gap:18px;margin-top:28px;display:grid}.form-row{gap:18px;display:grid}.field{gap:8px;display:grid}.field-label{color:var(--text);font-size:.875rem;font-weight:600}.field-optional{color:var(--text-muted);font-weight:500}.field-control{display:block;position:relative}.field-control .icon{color:var(--text-faint);pointer-events:none;font-size:1.1rem;transition:color .2s;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.field-control:focus-within .icon{color:var(--accent)}.input{border-radius:var(--radius-md);background:var(--surface-2);width:100%;min-height:52px;color:var(--text);border:1px solid #0000;padding:14px 16px;font-size:1rem;line-height:1.4;transition:border-color .2s,box-shadow .2s,background-color .2s;display:block}.field-control .input{padding-left:46px}.input::placeholder{color:var(--text-faint)}.input:hover{border-color:var(--border-strong)}.input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 4px var(--accent-ring);outline:none}.input:user-invalid{border-color:var(--coral)}textarea.input{resize:vertical;min-height:150px;max-height:360px}.form-honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.form-footer{flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:4px;display:flex}.form-note{color:var(--text-muted);font-size:.8125rem}.form-status{border-radius:var(--radius-md);align-items:flex-start;gap:10px;padding:12px 14px;font-size:.875rem;line-height:1.5;display:flex}.form-status .icon{margin-top:1px;font-size:1.15rem}.form-status--success{color:#17733a;background:#28a0461a;border:1px solid #28a0464d}[data-theme=dark] .form-status--success{color:#8ee6a8}.form-status--error{color:#b83a1f;background:#fd68481a;border:1px solid #fd684859}[data-theme=dark] .form-status--error{color:#ff9f88}.form-status-slot:empty{display:none}@media (max-width:479px){.form-submit{width:100%}}@media (min-width:640px){.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.contact-methods{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.contact-layout{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.site-footer{color:#ffffff9e;background:#050505;padding:clamp(3rem,2rem + 4vw,5.5rem) 0 28px;font-size:.9375rem;overflow:hidden}.footer-wordmark svg{width:100%;height:auto;overflow:visible}.footer-wordmark text{fill:#050505;stroke:url(#wordmark-stroke);stroke-width:6px;paint-order:stroke fill;font-family:var(--font-sans);letter-spacing:-.02em;font-size:150px;font-weight:800}@media (min-width:640px){.footer-wordmark text{stroke-width:4px}}@media (min-width:1024px){.footer-wordmark text{stroke-width:2.6px}}.footer-grid{gap:36px;margin-top:clamp(2.5rem,2rem + 2vw,3.5rem);display:grid}.footer-brand{gap:16px;max-width:340px;display:grid}.footer-brand .logo{color:#fff}.footer-label{color:#ffffff8c;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px;font-size:.75rem;font-weight:500}.footer-links{gap:10px;display:grid}.footer-links a,.footer-contact a{color:#ffffffbd;transition:color .2s}.footer-links a:hover,.footer-contact a:hover{color:var(--lime)}.footer-contact{gap:12px;display:grid}.footer-contact li{grid-template-columns:18px minmax(0,1fr);gap:10px;line-height:1.5;display:grid}.footer-contact .icon{color:#ffffff73;margin-top:.2em}.footer-contact a{overflow-wrap:anywhere}.footer-socials{gap:10px;display:flex}.footer-bottom{border-top:1px solid #ffffff14;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-top:clamp(2.5rem,2rem + 2vw,3.5rem);padding-top:24px;font-size:.8125rem;display:flex}.footer-top-link{color:#ffffffbd;align-items:center;gap:8px;transition:color .2s;display:inline-flex}.footer-top-link:hover{color:var(--lime)}@media (min-width:640px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.footer-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr) minmax(0,1.3fr) minmax(0,.8fr);gap:48px}}.status-main{isolation:isolate;place-items:center;min-height:100dvh;padding:32px 16px;display:grid;position:relative}.status-card{text-align:center;justify-items:center;gap:18px;width:100%;max-width:560px;display:grid}.status-logo{margin-bottom:18px}.status-code{color:var(--text);letter-spacing:-.05em;font-size:clamp(3.5rem,2rem + 6vw,6rem);font-weight:800;line-height:1}.status-title{font-size:var(--display-3);letter-spacing:-.035em}.status-text{max-width:420px;color:var(--text-body)}.status-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}

