@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_1b85de{font-family:Inter,Inter Fallback;font-style:normal}.__variable_1b85de{--font-sans:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/2f186ab49059fbbb-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7be269dd6123b082-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/db5568a2cfd831e2-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6760c1b492207d80-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/1f424c9580f97313-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/427e4a37d3642943-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_ecea63{font-family:JetBrains Mono,JetBrains Mono Fallback;font-weight:400;font-style:normal}.__variable_ecea63{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}

/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.uppercase{text-transform:uppercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ink:#05060a;--ink-raised:#0a0d14;--text:#f2f5fa;--text-muted:#c3cddc;--text-faint:#9fabbe;--line:#c9d6eb1c;--line-strong:#c9d6eb3d;--signal:#d99a5b;--signal-hot:#ffcf9b;--glass:#0a0d1457;--glass-strong:#0a0d14a8;--shell:min(1240px,100% - clamp(2rem,7vw,9rem));--gutter:max(1rem,calc((100vw - var(--shell)) / 2));--rail:clamp(1.25rem,3.4vw,3rem);--chrome-top:5.25rem;--chrome-bottom:5rem;--rail-w:4rem;--rail-reserve:calc(var(--rail) + var(--rail-w) + var(--sp-5));--shell-vw:min(1240px,100vw - clamp(2rem,7vw,9rem));--rail-gap:max(0px,calc(var(--rail-reserve) - (100vw - var(--shell-vw)) / 2));--env-luma:.5;--scrim-1:calc(.4 + var(--env-luma) * .4);--scrim-2:calc(.28 + var(--env-luma) * .36);--scrim-3:calc(.13 + var(--env-luma) * .24);--scrim-ink:4,5,9;--scrim-stops:rgba(var(--scrim-ink),var(--scrim-1)) 0%,rgba(var(--scrim-ink),var(--scrim-1)) 62%,rgba(var(--scrim-ink),var(--scrim-2)) 75%,rgba(var(--scrim-ink),var(--scrim-3)) 88%,transparent 100%;--scrim-feather:linear-gradient(180deg,transparent 0%,#000 13%,#000 87%,transparent);--fs-display:clamp(3.9rem,2.099rem + 7.39vw,8.75rem);--fs-hero:clamp(2.125rem,.407rem + 7.048vw,6.5rem);--fs-display-section:clamp(2.125rem,1.163rem + 3.946vw,4.75rem);--fs-contact:clamp(3.25rem,1.671rem + 6.476vw,7.5rem);--fs-h2:clamp(2.5rem,1.386rem + 4.571vw,5.5rem);--fs-h3:clamp(1.875rem,1.504rem + 1.524vw,2.875rem);--fs-lede-lg:clamp(1.3125rem,1.127rem + .762vw,1.8125rem);--fs-lede:clamp(1.1875rem,1.083rem + .429vw,1.4688rem);--fs-card:clamp(1.25rem,1.111rem + .571vw,1.625rem);--fs-body:clamp(1rem,.965rem + .143vw,1.09375rem);--fs-body-sm:clamp(.9375rem,.914rem + .095vw,1rem);--fs-mono-lg:.75rem;--fs-mono:.6875rem;--fs-mono-sm:.625rem;--lh-display:.92;--lh-tight:1.06;--lh-snug:1.22;--lh-lede:1.38;--lh-body:1.62;--w-light:200;--w-book:300;--w-medium:500;--w-bold:600;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--surface-chip:rgba(10,13,20,calc(.52 + var(--env-luma) * .4));--surface-card:rgba(8,11,18,calc(.58 + var(--env-luma) * .34));--surface-card-hover:rgba(10,14,22,calc(.64 + var(--env-luma) * .3));--ring:0 0 0 1px rgba(4,6,11,calc(var(--env-luma) * .55));--shadow-card:var(--ring),0 18px 40px -24px #000c;--shadow-card-hover:var(--ring),0 26px 60px -26px #000000eb;--r-1:3px;--r-2:10px;--r-full:999px;--ease-out:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-standard:cubic-bezier(.2,0,0,1);--dur-1:.16s;--dur-2:.22s;--dur-3:.38s;--dur-4:.76s;--dur-reveal:.62s;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}html[data-reduced-motion=true]{scroll-behavior:auto}body{background:var(--ink);color:var(--text);font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif;font-weight:var(--w-book);line-height:var(--lh-body);letter-spacing:-.008em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}::selection{color:var(--signal-hot);background:#d99a5b47}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--signal-hot);outline-offset:3px;border-radius:var(--r-1);box-shadow:0 0 0 5px #04060bd9}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scene-layer{z-index:0;background:linear-gradient(#2f6fc4,#bfdcf2 62%,#6f8f57);position:fixed;inset:0}.scene-layer[data-hidden=true]{opacity:0}.story{z-index:1;pointer-events:none;position:relative}.story [data-interactive],.story a,.story button{pointer-events:auto}.panel{min-height:100svh;padding-top:max(clamp(3.5rem,6.5vh,5rem),var(--chrome-top));padding-bottom:max(clamp(3.5rem,6.5vh,5rem),var(--chrome-bottom));align-items:center;display:flex;overflow-x:clip}.shell{width:var(--shell);margin-inline:auto}.panel__content{max-width:44rem;position:relative}.panel__content:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(100deg,var(--scrim-stops));-webkit-mask-image:var(--scrim-feather);mask-image:var(--scrim-feather);position:absolute;inset:-30% -85% -30% -30%}.panel--right .panel__content{margin-left:auto}.panel--right .panel__content:before{background:linear-gradient(260deg,var(--scrim-stops));inset:-30% -30% -30% -85%}@media (min-width:861px){.panel--right .panel__content{margin-right:var(--rail-gap)}.panel--about .panel__content,.panel--projects .panel__content{padding-right:var(--rail-gap)}}.panel__content>*{margin-block:0}.panel__content>*+*{margin-top:var(--sp-5)}.panel__content>.sr-only+*{margin-top:0}.panel__content>.display+.lede,.panel__content>.eyebrow+*,.panel__content>.lede+.body-text{margin-top:var(--sp-4)}.panel__content>.lede+.flow,.panel__content>.lede+.notes,.panel__content>.lede+.tech-list{margin-top:var(--sp-6)}.panel__content>.display+.project-grid{margin-top:var(--sp-4)}.panel__content>*+.contact-links,.panel__content>*+.flow,.panel__content>*+.tech-list{margin-top:var(--sp-5)}.panel__content>.eyebrow+.hero__lockup,.panel__content>.hero__lockup+.hero__statement,.panel__content>.hero__statement+.hero__actions{margin-top:var(--sp-6)}.panel__content>.body-text+.notes,.panel__content>.flow+.notes{margin-top:var(--sp-4)}.panel--center{text-align:center}.panel--center .panel__content{margin-inline:auto}.panel--center .panel__content:before{background:radial-gradient(68% 62% at 50% 50%,rgba(var(--scrim-ink),var(--scrim-1)) 0,rgba(var(--scrim-ink),var(--scrim-1)) 38%,rgba(var(--scrim-ink),var(--scrim-2)) 60%,rgba(var(--scrim-ink),var(--scrim-3)) 80%,transparent 100%);inset:-46% -60%}.panel--projects .panel__content:before{background:linear-gradient(185deg,rgba(var(--scrim-ink),var(--scrim-1)) 0,rgba(var(--scrim-ink),var(--scrim-2)) 34%,rgba(var(--scrim-ink),var(--scrim-3)) 62%,transparent 88%);inset:-26% -30%}.panel--projects .display{font-size:var(--fs-h3)}.panel--projects{padding-top:max(clamp(2rem,4vh,3.25rem),var(--chrome-top));padding-bottom:max(clamp(2rem,4vh,3.25rem),var(--chrome-bottom))}@media (min-width:1025px){.project-card__visual{aspect-ratio:2}}@media (max-width:860px){:root{--chrome-top:4.25rem;--chrome-bottom:4.5rem}}@media (max-width:860px) and (max-height:880px){.panel__content>*+*{margin-top:var(--sp-4)}.panel__content>.lede+.flow,.panel__content>.lede+.notes,.panel__content>.lede+.tech-list{margin-top:var(--sp-5)}.flow{gap:var(--sp-2) var(--sp-3)}.notes{gap:var(--sp-2)}}@media (min-width:861px) and (max-height:860px){:root{--fs-display-section:clamp(1.875rem,1.1rem + 3.2vw,3.6rem)}.panel__content>*+*{margin-top:var(--sp-3)}.panel__content>.lede+.flow,.panel__content>.lede+.notes,.panel__content>.lede+.tech-list{margin-top:var(--sp-4)}.flow{gap:var(--sp-2) var(--sp-3)}.notes{gap:var(--sp-2)}}.eyebrow{align-items:baseline;gap:var(--sp-2) var(--sp-3);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-lg);font-weight:var(--w-medium);letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);flex-wrap:wrap;display:flex}.eyebrow__index{color:var(--signal);font-weight:var(--w-bold)}.eyebrow__slash{color:var(--text-faint);opacity:.7;margin-inline:-.15em}.eyebrow__label{color:var(--text)}.eyebrow__rule{background:linear-gradient(90deg,var(--line-strong),transparent);flex:1;align-self:center;max-width:7rem;height:1px}.panel--center .eyebrow{justify-content:center}.panel--center .eyebrow__rule{max-width:4rem}.display{font-size:var(--fs-display-section);font-weight:var(--w-book);line-height:var(--lh-tight);letter-spacing:-.026em;text-wrap:balance;color:#fff;max-width:17ch;text-shadow:0 0 28px rgba(var(--scrim-ink),calc(.3 + var(--env-luma) * .45))}.panel--center .display{max-width:none;margin-inline:auto}.lede{font-size:var(--fs-lede);font-weight:var(--w-book);line-height:var(--lh-lede);color:var(--text);text-wrap:pretty;max-width:42ch;text-shadow:0 0 18px rgba(var(--scrim-ink),calc(.24 + var(--env-luma) * .34))}.body-text{font-size:var(--fs-body);color:var(--text-muted);text-wrap:pretty;max-width:56ch;text-shadow:0 0 14px rgba(var(--scrim-ink),calc(.22 + var(--env-luma) * .3))}.panel--center .body-text,.panel--center .lede{margin-inline:auto}.tech-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tech-list__item{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono);letter-spacing:.09em;color:var(--text);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface-chip);box-shadow:var(--ring);white-space:nowrap;transition:color var(--dur-1) linear,border-color var(--dur-1) linear,background-color var(--dur-1) linear,transform var(--dur-1) var(--ease-standard)}.tech-list__item:hover{color:var(--text);border-color:var(--line-strong);background-color:#c9d6eb0f;transform:translateY(-1px)}.notes{gap:var(--sp-2);max-width:46ch;padding:0;list-style:none;display:grid}.notes li{font-size:var(--fs-body-sm);color:var(--text-muted);padding-left:1.4rem;position:relative}.notes li:before{content:"";background:var(--signal);width:.5rem;height:1px;position:absolute;top:.62em;left:0}.hero__lockup{gap:var(--sp-4);flex-direction:column;margin:0;display:flex}.hero__name{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-body-sm);font-weight:var(--w-medium);letter-spacing:.34em;text-transform:uppercase;color:#fff;text-shadow:0 0 16px rgba(var(--scrim-ink),.7)}.hero__headline{font-size:var(--fs-hero);font-weight:var(--w-book);letter-spacing:-.035em;color:#fff;text-shadow:0 0 32px rgba(var(--scrim-ink),calc(.34 + var(--env-luma) * .44));line-height:1;display:block}.hero__line{white-space:nowrap;margin-top:-.18em;padding-top:.18em;overflow:hidden}.hero__headline-text,.hero__line{display:block}@keyframes hero-rise{0%{transform:translateY(118%)}to{transform:none}}.hero__lockup .char{will-change:transform;animation:hero-rise .9s var(--ease-out) both;animation-delay:calc(.18s + var(--reveal-i,0) * 22ms);display:inline-block}.hero__statement{font-size:var(--fs-lede-lg);font-weight:var(--w-book);line-height:var(--lh-lede);max-width:38ch;color:var(--text);text-shadow:0 0 20px rgba(var(--scrim-ink),calc(.26 + var(--env-luma) * .36))}.hero__actions{gap:var(--sp-5) var(--sp-7)}.hero__actions,.hero__stack{align-items:center;flex-wrap:wrap;display:flex}.hero__stack{gap:var(--sp-3);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono);letter-spacing:.14em;color:var(--text-muted);text-shadow:0 0 14px rgba(var(--scrim-ink),.7);margin:0;padding:0;list-style:none}.hero__stack li:not(:last-child):after{content:"·";color:var(--line-strong);margin-left:.85rem}.panel--hero{position:relative}.panel--hero .panel__content{max-width:60rem}.panel--hero .panel__content:before{inset:-34% -70% -34% -34%}.panel--hero .eyebrow{max-width:44rem}.scroll-hint{transition:opacity .7s var(--ease-out);align-items:center;gap:var(--sp-3);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.3em;text-transform:uppercase;color:var(--text-faint);flex-direction:column;display:flex;position:absolute;bottom:clamp(1.75rem,4vh,3rem);left:50%;transform:translate(-50%)}.scroll-hint[data-hidden=true]{opacity:0}.scroll-hint__track{background:var(--line);width:1px;height:3.5rem;overflow:hidden}.scroll-hint__track:after{content:"";background:linear-gradient(180deg,transparent,var(--signal));width:100%;height:40%;animation:scroll-drop 2.4s var(--ease-in-out) infinite;display:block}@keyframes scroll-drop{0%{transform:translateY(-100%)}60%,to{transform:translateY(250%)}}.flow{gap:var(--sp-2) var(--sp-3);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono);letter-spacing:.1em;flex-wrap:wrap;margin:0;padding:0;list-style:none}.flow,.flow li{align-items:center;display:flex}.flow li{gap:var(--sp-3);color:var(--text-muted)}.flow li:after{content:"→";color:var(--signal);opacity:.75}.flow li:last-child:after{content:none}.panel--projects .panel__content{flex-direction:column;flex:1;max-width:none;min-height:0;display:flex}.panel--projects .shell{flex-direction:column;min-height:0;display:flex}.panel--projects{align-items:stretch;height:100svh}.project-grid{gap:clamp(var(--sp-4),1.4vw,var(--sp-5));flex:1;grid-template-rows:auto auto;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-content:center;align-items:stretch;min-height:0;display:grid}.project-card--featured{grid-row:span 2}.project-card{--accent:hsl(calc(28 + var(--card-hue,0)) 62% 62%);border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface-card);min-height:0;box-shadow:var(--shadow-card);transition:transform var(--dur-2) var(--ease-standard),border-color var(--dur-2) linear,background-color var(--dur-2) linear,box-shadow .26s var(--ease-standard);flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.project-card:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform var(--dur-3) var(--ease-out);z-index:2;position:absolute;inset:0 0 auto;transform:scaleX(0)}.project-card__visual{aspect-ratio:16/9;border-bottom:1px solid var(--line);background:#0a0d14;position:relative;overflow:hidden}.project-card--featured .project-card__visual{aspect-ratio:auto;flex:1 1 0;min-height:4rem;max-height:52%}.project-card:not(.project-card--featured){flex-direction:row;align-items:stretch}.project-card:not(.project-card--featured) .project-card__visual{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line);flex:0 0 36%}.project-card:not(.project-card--featured) .project-card__body{flex:1;min-width:0}.project-card:not(.project-card--featured) .project-card__visual:after{display:none}.project-card__visual canvas{width:100%;height:100%;transition:transform .5s var(--ease-out);display:block}.project-card__visual:after{content:"";pointer-events:none;background:linear-gradient(#0000,#080b12d9);height:45%;position:absolute;inset:auto 0 0}.project-card__index{left:var(--sp-3);bottom:var(--sp-2);font-size:var(--fs-mono);letter-spacing:.22em;color:var(--accent)}.project-card__index,.project-card__status{z-index:1;font-family:var(--font-mono),ui-monospace,monospace;margin:0;position:absolute}.project-card__status{right:var(--sp-3);top:var(--sp-3);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-full);border:1px solid var(--line);font-size:var(--fs-mono-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);background:#05060aa8}.project-card__body{min-height:0;padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;flex:none;display:flex}.project-card__head{gap:var(--sp-1);display:grid}.project-card__foot{justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line);flex-wrap:wrap;margin-top:auto;display:flex}.project-card__title{font-size:var(--fs-card);font-weight:var(--w-book);letter-spacing:-.02em;line-height:var(--lh-snug);transition:color var(--dur-2) linear;margin:0}.project-card--featured .project-card__title{font-size:var(--fs-h3)}.project-card__kind{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin:0}.project-card__outcome{line-height:var(--lh-lede);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-card__highlights,.project-card__outcome{font-size:var(--fs-body-sm);color:var(--text-muted);margin:0}.project-card__highlights{gap:var(--sp-2);padding:0;list-style:none;display:grid}.project-card__highlights li{padding-left:1.05rem;position:relative}.project-card__highlights li:before{content:"";background:var(--accent);width:.4rem;height:1px;position:absolute;top:.6em;left:0}.project-card__restricted{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.08em;color:var(--text-faint);margin:0;line-height:1.5}.project-card__restricted:before{content:"⦸";color:var(--text-faint);margin-right:.45em}.project-card__tech{gap:var(--sp-2);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.08em;color:var(--text-faint);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.project-card__tech-more{color:var(--accent)}.project-card__tech li{padding:var(--sp-1) var(--sp-2);border:1px solid var(--line);border-radius:var(--r-1)}.project-card__go{white-space:nowrap;font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);transition:color var(--dur-2) linear;align-items:center;gap:.45em;display:inline-flex}.project-card__go-arrow{transition:transform var(--dur-2) var(--ease-out)}a.project-card{cursor:pointer}.project-card:focus-within,.project-card:hover{border-color:var(--line-strong);background-color:var(--surface-card-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-6px)}.project-card:focus-within:after,.project-card:hover:after{transform:scaleX(1)}.project-card:focus-within .project-card__visual canvas,.project-card:hover .project-card__visual canvas{transform:scale(1.035)}a.project-card:focus-within .project-card__go,a.project-card:hover .project-card__go{color:var(--signal-hot)}.project-card:focus-within .project-card__title,.project-card:hover .project-card__title{color:#fff}a.project-card:focus-within .project-card__go-arrow,a.project-card:hover .project-card__go-arrow{transform:translate(3px)}.portrait{aspect-ratio:4/5;border:1px solid var(--line-strong);background:var(--glass-strong);border-radius:3px;width:100%;max-width:20rem;margin:0;position:relative;overflow:hidden}.portrait__image{object-fit:cover}.portrait[data-empty=true]{background-image:repeating-linear-gradient(-45deg,#c9d6eb0d 0 1px,#0000 1px 9px)}.portrait__slot{font-family:var(--font-mono),ui-monospace,monospace;text-transform:uppercase;align-content:center;justify-items:center;gap:.5rem;display:grid;position:absolute;inset:0}.portrait__label{letter-spacing:.3em;color:var(--text-muted);font-size:.66rem}.portrait__hint{letter-spacing:.18em;color:var(--text-faint);font-size:.58rem}.portrait__ticks:after,.portrait__ticks:before{content:"";border:1px solid var(--signal);opacity:.6;width:.85rem;height:.85rem;position:absolute}.portrait__ticks:before{border-bottom:0;border-right:0;top:.5rem;left:.5rem}.portrait__ticks:after{border-top:0;border-left:0;bottom:.5rem;right:.5rem}.panel--about .panel__content{--scrim-x:50%;max-width:none}.about-grid{gap:clamp(var(--sp-6),3.4vw,var(--sp-8));grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-areas:"text timeline";align-items:start;display:grid}.panel--about-portrait .about-grid{grid-template-columns:minmax(0,.62fr) minmax(0,1.2fr) minmax(0,1fr);grid-template-areas:"portrait text timeline"}.about-grid__text>*+*{margin-top:var(--sp-5)}.about-grid__portrait{grid-area:portrait}.about-grid__text{grid-area:text}.about-grid__timeline{grid-area:timeline}.about__where{align-items:baseline;gap:var(--sp-1) var(--sp-3);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono);letter-spacing:.12em;color:var(--text-muted);flex-wrap:wrap;margin:0;display:flex}.about__where-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.22em}.panel--about .display{max-width:26ch}.panel--about .panel__content:before{background:radial-gradient(76% 64% at 50% 48%,rgba(var(--scrim-ink),var(--scrim-1)) 0,rgba(var(--scrim-ink),var(--scrim-1)) 48%,rgba(var(--scrim-ink),var(--scrim-2)) 70%,rgba(var(--scrim-ink),var(--scrim-3)) 87%,transparent 100%);inset:-42% -24%}.timeline{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.timeline li{gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--line);font-size:var(--fs-body-sm);grid-template-columns:7.5rem minmax(0,1fr);display:grid}.timeline__entry{gap:.15rem;display:grid}.timeline__achievement{color:var(--text-muted);font-size:var(--fs-body-sm);line-height:var(--lh-lede);padding-top:.15rem}.timeline__period{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono);letter-spacing:.1em;color:var(--signal);white-space:nowrap;padding-top:.15em}.timeline__role{color:var(--text)}.timeline__org{color:var(--text-muted);font-size:var(--fs-body-sm)}.contact__display{font-size:var(--fs-contact);font-weight:var(--w-light);line-height:var(--lh-display);letter-spacing:-.045em}.cta{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-6);border:1px solid var(--line-strong);border-radius:var(--r-full);background:var(--surface-chip);box-shadow:var(--ring);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-lg);letter-spacing:.16em;text-transform:uppercase;color:var(--text);transition:border-color var(--dur-2) linear,background-color var(--dur-2) linear,color var(--dur-2) linear,transform var(--dur-2) var(--ease-standard);display:inline-flex}.cta:focus-visible,.cta:hover{border-color:var(--signal);color:var(--signal-hot);background-color:rgba(217,154,91,calc(.06 + var(--env-luma) * .08));transform:translateY(-1px)}.cta--sm{padding:var(--sp-2) var(--sp-5);font-size:var(--fs-mono);gap:var(--sp-2);cursor:pointer}.cta__arrow{transition:transform var(--dur-2) var(--ease-out)}.cta--sm:focus-visible .cta__arrow,.cta--sm:hover .cta__arrow{transform:translateY(3px)}.cta:focus-visible .cta__arrow,.cta:hover .cta__arrow{transform:translate(5px)}.contact-links{justify-content:center;gap:var(--sp-3) var(--sp-6);padding:var(--sp-5) 0 0;border-top:1px solid var(--line);flex-wrap:wrap;margin:0;list-style:none;display:flex}.contact-links a{gap:var(--sp-1);text-align:left;display:grid}.contact-links__label{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint)}.contact-links__value{font-size:var(--fs-body-sm);color:var(--text-muted);background-image:linear-gradient(var(--signal),var(--signal));transition:color var(--dur-1) linear,background-size var(--dur-2) var(--ease-out);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px}.contact-links a:focus-visible .contact-links__value,.contact-links a:hover .contact-links__value{color:var(--signal-hot);background-size:100% 1px}body:after,body:before{content:"";z-index:15;pointer-events:none;position:fixed;left:0;right:0}body:before{background:linear-gradient(180deg,rgba(4,6,11,calc(.26 + var(--env-luma) * .44)) 0,rgba(4,6,11,calc(.1 + var(--env-luma) * .2)) 52%,transparent 100%);height:clamp(5rem,13vh,9rem);top:0}body:after{background:linear-gradient(0deg,rgba(4,6,11,calc(.34 + var(--env-luma) * .46)) 0,rgba(4,6,11,calc(.12 + var(--env-luma) * .24)) 52%,transparent 100%);height:clamp(5.5rem,14vh,9.5rem);bottom:0}.nav-rail,.readout,.scroll-hint,.topbar{text-shadow:0 1px 10px #03050ae6,0 0 3px #03050acc}.topbar{z-index:20;padding:clamp(1.1rem,2.4vw,1.9rem) var(--gutter);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);font-weight:var(--w-medium);pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.topbar a{pointer-events:auto;border-radius:var(--r-full);background-color:rgba(5,6,10,calc(.24 + var(--env-luma) * .4));background-image:linear-gradient(var(--signal),var(--signal));transition:color var(--dur-1) linear,background-size var(--dur-2) var(--ease-out);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;margin:-.4rem -.7rem;padding:.4rem .7rem}.topbar a:focus-visible,.topbar a:hover{color:var(--text);background-size:100% 1px}.topbar__mark{background-image:none}.topbar a:focus-visible,.topbar a:hover{background-color:rgba(5,6,10,calc(.4 + var(--env-luma) * .4))}.topbar__link-short{display:none}.topbar__mark{align-items:center;gap:var(--sp-3);color:var(--text);display:flex}.topbar__dot{background:var(--signal);border-radius:50%;width:5px;height:5px;box-shadow:0 0 12px 1px #d99a5bb3}.nav-shell{z-index:16;padding-right:var(--rail);pointer-events:none;justify-content:flex-end;align-items:center;display:flex;position:fixed;top:0;bottom:0;right:0}.nav-shell>*{pointer-events:auto}.nav-shell:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(270deg,rgba(4,6,11,calc(.34 + var(--env-luma) * .4)) 0,rgba(4,6,11,calc(.14 + var(--env-luma) * .2)) 40%,transparent 100%);width:min(15rem,22vw);position:absolute;inset:0 0 0 auto}.nav-rail{gap:.1rem;margin:0;padding:0;list-style:none;display:grid;position:relative}.nav-rail__track{background:var(--line-strong);width:1px;position:absolute;top:.4rem;bottom:.4rem;right:0;overflow:hidden}.nav-rail__progress{background:linear-gradient(180deg,var(--signal),var(--signal-hot));transform-origin:top;will-change:transform;width:100%;height:100%;display:block;transform:scaleY(0)}.nav-rail__button{cursor:pointer;width:100%;font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);background:0 0;border:0;justify-content:flex-end;align-items:center;gap:.55rem;padding:.4rem 0;display:flex}.nav-rail__button,.nav-rail__index{transition:color var(--dur-2) linear}.nav-rail__index{font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #020408e6}.nav-rail__label{white-space:nowrap;opacity:0;text-shadow:0 1px 4px #020408f2;max-width:0;transition:max-width var(--dur-3) var(--ease-out),opacity var(--dur-1) linear,transform var(--dur-3) var(--ease-out);overflow:hidden;transform:translate(6px)}.nav-rail__tick{width:.85rem;height:1px;transition:width var(--dur-3) var(--ease-out),height var(--dur-3) var(--ease-out),background-color var(--dur-3) linear;background:#e0e9f580;display:block;box-shadow:0 1px 2px #020408cc}.nav-rail__button:focus-visible,.nav-rail__button:hover{color:var(--text)}.nav-rail__button:focus-visible .nav-rail__label,.nav-rail__button:hover .nav-rail__label{opacity:1;max-width:8rem;margin-right:.2rem;transform:translate(0)}.nav-rail__button:focus-visible .nav-rail__tick,.nav-rail__button:hover .nav-rail__tick{background:var(--text);width:1.5rem}.nav-rail__button[aria-current=true]{color:var(--text)}.nav-rail__button[aria-current=true] .nav-rail__index{color:var(--signal-hot)}.nav-rail__button[aria-current=true] .nav-rail__tick{background:var(--signal-hot);width:1.9rem;height:2px;box-shadow:0 0 8px #d99a5bd9,0 1px 3px #020408f2}.readout{left:var(--gutter);z-index:20;align-items:center;gap:var(--sp-3);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono);letter-spacing:.2em;color:var(--text);font-weight:var(--w-medium);pointer-events:none;padding:var(--sp-1) var(--sp-3);margin-left:calc(var(--sp-3) * -1);background-color:rgba(5,6,10,calc(.3 + var(--env-luma) * .34));border-radius:var(--r-full);display:flex;position:fixed;bottom:clamp(1.1rem,2.4vw,1.9rem)}@keyframes readout-swap{0%{opacity:0;transform:translateY(.35em)}to{opacity:1;transform:translateY(0)}}.readout__current{color:var(--text);animation:readout-swap .26s var(--ease-out);display:inline-block}.readout__slash{color:var(--text-faint);opacity:.7}.readout__name{color:var(--text-muted);letter-spacing:.18em;text-transform:uppercase}.readout__current{color:var(--signal-hot)}.readout__bar{background:#090c128c;width:clamp(2.5rem,6vw,4.5rem);height:2px;overflow:hidden}.readout__fill{background:var(--signal);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.room-load{right:var(--gutter);z-index:20;align-items:center;gap:var(--sp-2);max-width:min(22rem,calc(100vw - 2 * var(--gutter)));padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);background-color:rgba(5,6,10,calc(.3 + var(--env-luma) * .34));font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);pointer-events:none;margin:0;display:flex;position:fixed;bottom:clamp(1.1rem,2.4vw,1.9rem)}.room-load[data-state=error]{color:var(--signal-hot);letter-spacing:.08em;text-transform:none}.room-load__pulse{background:var(--signal);width:6px;height:6px;animation:room-pulse 1.6s var(--ease-in-out) infinite;border-radius:50%}@keyframes room-pulse{0%,to{opacity:.25}50%{opacity:1}}@media (max-width:860px){.room-load{right:var(--gutter);bottom:calc(clamp(1.1rem,2.4vw,1.9rem) + 2.25rem)}}.loader{z-index:60;place-content:center;gap:var(--sp-6);background:var(--ink);transition:opacity .9s var(--ease-out),visibility .9s;display:grid;position:fixed;inset:0}.loader[data-done=true]{opacity:0;visibility:hidden}.loader__name{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-lg);letter-spacing:.42em;text-transform:uppercase;color:var(--text-muted);text-align:center}.loader__track{background:var(--line);width:min(15rem,60vw);height:1px;overflow:hidden}.loader__fill{background:var(--signal);transform-origin:0;height:100%;transition:transform .45s var(--ease-out);display:block}.loader__meta{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.24em;color:var(--text-faint);justify-content:space-between;display:flex}.lang-gate{z-index:70;padding:var(--sp-6);background:var(--ink);animation:lang-gate-in var(--dur-4) var(--ease-out) both;place-content:center;display:grid;position:fixed;inset:0}@keyframes lang-gate-in{0%{opacity:0}}.lang-gate__inner{justify-items:center;gap:var(--sp-5);text-align:center;width:min(26rem,100%);display:grid}.lang-gate__name{font-size:var(--fs-mono-lg);letter-spacing:.42em;text-indent:.42em;color:var(--text-muted)}.lang-gate__eyebrow,.lang-gate__name{font-family:var(--font-mono),ui-monospace,monospace;text-transform:uppercase;margin:0}.lang-gate__eyebrow{font-size:var(--fs-mono);letter-spacing:.24em;color:var(--text-faint)}.lang-gate__list{gap:var(--sp-3);width:100%;margin:0;padding:0;list-style:none;display:grid}.lang-gate__option{align-items:center;gap:var(--sp-4);width:100%;min-height:3.5rem;padding:var(--sp-3) var(--sp-5);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface-chip);color:var(--text);font:inherit;font-size:var(--fs-body);text-align:left;cursor:pointer;transition:border-color var(--dur-2) linear,background-color var(--dur-2) linear,transform var(--dur-2) var(--ease-standard);animation:lang-option-in var(--dur-3) var(--ease-out) both;animation-delay:calc(.14s + var(--reveal-i,0) * 70ms);display:flex}.lang-gate__list li:nth-child(2) .lang-gate__option{--reveal-i:1}.lang-gate__list li:nth-child(3) .lang-gate__option{--reveal-i:2}@keyframes lang-option-in{0%{opacity:0;transform:translateY(10px)}}.lang-gate__option:focus-visible,.lang-gate__option:hover{border-color:var(--signal);background-color:#d99a5b1a;transform:translateY(-1px)}.lang-gate__flag{font-size:1.35em;line-height:1}.lang-gate__label{font-weight:var(--w-medium)}.lang-gate__english{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}.lang-gate__arrow{color:var(--text-faint);transition:transform var(--dur-2) var(--ease-out),color var(--dur-2) linear;margin-left:auto}.lang-gate__option:focus-visible .lang-gate__arrow,.lang-gate__option:hover .lang-gate__arrow{color:var(--signal-hot);transform:translate(4px)}.lang-gate__hint{font-size:var(--fs-body-sm);color:var(--text-faint);text-wrap:pretty;margin:0}.lang-switch__button{pointer-events:auto}.lang-switch{border:1px solid var(--line);border-radius:var(--r-full);background:var(--glass);align-items:center;gap:1px;padding:2px;display:flex}.lang-switch__button{border-radius:var(--r-full);cursor:pointer;font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--fs-mono-sm);letter-spacing:.12em;color:var(--text-faint);transition:color var(--dur-1) linear,background-color var(--dur-1) linear;background:0 0;border:0;padding:.3rem .5rem}.lang-switch__button:hover{color:var(--text)}.lang-switch__button[aria-current=true]{color:var(--ink);background:var(--signal-hot)}.topbar__end{align-items:center;gap:var(--sp-4);display:flex}@media (max-width:560px){.topbar__end{gap:var(--sp-3)}.lang-switch__button{padding:.3rem .4rem}}@media (prefers-reduced-motion:reduce){.lang-gate,.lang-gate__option{animation:none}}.panel[data-reveal-state=pending] [data-reveal]{opacity:0;transform:translateY(18px)}.panel[data-reveal-state=in] [data-reveal]{opacity:1;transition:opacity var(--dur-reveal) var(--ease-out) var(--reveal-delay),transform var(--dur-reveal) var(--ease-out) var(--reveal-delay);transform:none}[data-reveal]{--reveal-delay:calc(var(--reveal-i,0) * 55ms)}.panel[data-reveal-state=in][data-reveal-immediate] [data-reveal]{--reveal-delay:0s}@media (max-width:1180px){.panel--about-portrait .about-grid{grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);grid-template-areas:"portrait text""timeline timeline"}}@media (max-width:1024px){.project-grid{gap:var(--sp-4);grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(0,1fr)}.project-card--featured{grid-row:auto}.project-card{flex-direction:row}.project-card--featured .project-card__visual,.project-card__visual{flex:0 0 38%}.project-card__body{flex:1;min-width:0}.project-card__visual{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line);flex:0 0 38%}.project-card__visual:after{display:none}.project-card__body{padding:var(--sp-5)}}@media (max-width:860px){.nav-shell{display:none}.panel--about .panel__content:before,.panel--center .panel__content:before,.panel--projects .panel__content:before,.panel--right .panel__content:before,.panel__content:before{background:rgba(var(--scrim-ink),calc(var(--scrim-1) + .1));inset:-26% -30%}.panel{--panel-pad:clamp(3rem,6vh,4.5rem);padding-top:max(var(--panel-pad),var(--chrome-top));padding-bottom:max(var(--panel-pad),var(--chrome-bottom));align-items:center}.panel--right .panel__content{margin-left:0;margin-right:0}.panel__content{max-width:none}.project-grid{gap:var(--sp-4);scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);pointer-events:auto;-webkit-overflow-scrolling:touch;grid-template-columns:none;display:flex;overflow-x:auto}.project-grid::-webkit-scrollbar{display:none}.project-card{scroll-snap-align:center;flex-direction:column;flex:0 0 min(82vw,22rem)}.project-card__visual{aspect-ratio:16/10;border-right:0;border-bottom:1px solid var(--line);flex:none}.project-card__visual:after{display:block}.project-card__body{padding:var(--sp-4);gap:var(--sp-3)}.project-card__context{-webkit-line-clamp:2;line-clamp:2}.project-card__context,.project-card__outcome{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-card__outcome{-webkit-line-clamp:4;line-clamp:4}.project-card__tech li:nth-child(n+5){display:none}.contact-links{justify-content:flex-start;gap:var(--sp-5) var(--sp-6)}.timeline li{gap:var(--sp-3);grid-template-columns:6rem minmax(0,1fr)}}@media (max-width:1180px) and (min-width:701px){.panel--about-portrait .about-grid{grid-template-columns:minmax(0,.5fr) minmax(0,1.5fr)}.portrait{max-width:11rem}}@media (max-width:700px){.about-grid,.panel--about-portrait .about-grid{gap:var(--sp-5);grid-template-columns:minmax(0,1fr);grid-template-areas:"portrait""text""timeline"}.portrait{max-width:11rem}.panel--about .display{font-size:var(--fs-h3);max-width:none}.timeline__achievement{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.timeline li{padding-block:var(--sp-1)}.about-grid{gap:var(--sp-4)}.about__where{margin-top:var(--sp-4)}}@media (max-width:560px){.hero__statement{max-width:none}.scroll-hint{bottom:4.5rem}.hero__stack li:not(:last-child):after{content:none}.hero__stack{gap:var(--sp-2) var(--sp-4)}.eyebrow__rule,.topbar__link-long{display:none}.topbar__link-short{display:inline}.topbar a{padding:.65rem 0;display:inline-block}}@media (max-height:700px),(max-width:1024px) and (max-height:820px){.panel--projects{height:auto}.project-grid{flex:none}.project-card--featured .project-card__visual{aspect-ratio:16/7.5;flex:none;max-height:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.cta:focus-visible,.cta:hover,.project-card:focus-within,.project-card:focus-within .project-card__visual canvas,.project-card:hover,.project-card:hover .project-card__visual canvas,.project-card__go,.tech-list__item:hover{transform:none}.project-card:focus-within:after,.project-card:hover:after{transform:scaleX(1)}.scroll-hint__track:after{animation:none;transform:translateY(0)}}@media (min-width:561px) and (max-width:1024px){.project-card--featured .project-card__visual{aspect-ratio:auto;flex:0 0 36%}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}