:root{--bg:#0b0d10;--bg-raised:#111419;--bg-panel:#14181e;--bg-inset:#0d1014;--line:#212832;--line-soft:#1a2027;--line-strong:#2e3742;--fg:#e7ecf2;--fg-muted:#98a4b2;--fg-dim:#7d8996;--vision:#f0a04b;--lang:#7fa4f5;--action:#45d0bd;--noise:#b07fd6;--warn:#e5677f;--state:#9fb04b;--radius:10px;--radius-sm:6px;--measure:68ch;--page:1180px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--action) 30%,transparent)}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-weight:600;line-height:1.15;letter-spacing:-.02em;text-wrap:balance}p{text-wrap:pretty}.mono{font-family:var(--font-mono),ui-monospace,"SF Mono",Menlo,monospace;font-feature-settings:"zero" 1}.eyebrow{font-family:var(--font-mono),ui-monospace,monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim)}.prose{max-width:var(--measure);color:var(--fg-muted);font-size:16.5px}.prose+.prose{margin-top:.9rem}.prose strong{color:var(--fg);font-weight:600}.prose code,code.inline{font-family:var(--font-mono),ui-monospace,monospace;font-size:.87em;background:var(--bg-inset);border:1px solid var(--line-soft);border-radius:4px;padding:.1em .36em;color:var(--fg);white-space:nowrap}.page{max-width:var(--page);margin:0 auto;padding:0 28px}@media (max-width:640px){.page{padding:0 18px}}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:20px;background:transparent;cursor:ew-resize;display:block}input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--line-strong);border-radius:2px}input[type=range]::-moz-range-track{height:2px;background:var(--line-strong);border-radius:2px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:13px;height:13px;margin-top:-5.5px;border-radius:50%;background:var(--fg);border:none;-webkit-transition:transform .12s ease,background .12s ease;transition:transform .12s ease,background .12s ease}input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--fg);border:none}input[type=range]:focus-visible::-webkit-slider-thumb,input[type=range]:hover::-webkit-slider-thumb{background:var(--action);transform:scale(1.15)}input[type=range]:focus-visible{outline:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}:focus-visible{outline:2px solid var(--action);outline-offset:2px;border-radius:3px}svg text{font-family:var(--font-mono),ui-monospace,monospace}svg{display:block;touch-action:none}#top{font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif}.hero-sub a,.prose a,.timeline-org a,a.inline{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}.hero-sub a:hover,.prose a:hover,.timeline-org a:hover{-webkit-text-decoration-color:var(--action);text-decoration-color:var(--action)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line-soft)}.site-header-inner{display:flex;align-items:center;justify-content:space-between;height:58px;gap:16px}.site-name{font-weight:600;letter-spacing:-.01em}.site-nav{display:flex;gap:22px;font-size:14px;color:var(--fg-muted)}.site-nav a:hover{color:var(--fg)}.site-footer{margin-top:120px;border-top:1px solid var(--line-soft);color:var(--fg-dim);font-size:13px}.site-footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:28px;padding-bottom:40px}.site-footer-links{display:flex;gap:18px}.site-footer-links a:hover{color:var(--fg)}.hero{padding-top:96px;padding-bottom:72px}.hero-name{font-size:clamp(40px,6vw,64px);margin-top:14px}.hero-lede{margin-top:22px;max-width:30ch;font-size:clamp(21px,2.6vw,28px);line-height:1.35;letter-spacing:-.015em;color:var(--fg);text-wrap:balance}.hero-sub{margin-top:18px;max-width:var(--measure);color:var(--fg-muted);font-size:17px}.hero-actions{margin-top:30px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.badge{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;font-size:13px;color:var(--action);background:color-mix(in srgb,var(--action) 10%,transparent);border:1px solid color-mix(in srgb,var(--action) 35%,transparent);margin-right:6px}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--action)}.btn{padding:7px 14px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);font-size:14px;color:var(--fg);transition:border-color .15s ease,background .15s ease}.btn:hover{border-color:var(--fg-muted);background:var(--bg-raised)}.section{padding-top:88px}.section-title{font-size:13px;font-family:var(--font-mono),ui-monospace,monospace;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:26px}.feature-head h2{font-size:clamp(26px,3.2vw,34px);margin:10px 0 12px}.feature-head{margin-bottom:22px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-panel);overflow:hidden}.media-placeholder{display:grid;place-items:center;width:100%;min-height:200px;color:var(--fg-dim);font-size:13px;background:var(--bg-inset)}.media-image,.media-video{display:block;width:100%;height:auto;background:var(--bg-inset)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:20px;gap:20px}.card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-panel);overflow:hidden;transition:border-color .15s ease,transform .15s ease}.card:hover{border-color:var(--line-strong);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.card:hover{transform:none}}.card-media{aspect-ratio:16/9;overflow:hidden;background:var(--bg-inset);border-bottom:1px solid var(--line)}.card-media .media-image,.card-media .media-video{height:100%;object-fit:cover}.card-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1 1}.card-meta{font-size:12.5px;color:var(--fg-dim)}.card-title{font-size:19px}.card-text{color:var(--fg-muted);font-size:15px;flex:1 1}.chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.chips li{font-size:12px;color:var(--fg-muted);padding:2px 9px;border-radius:999px;border:1px solid var(--line-strong)}.timeline{list-style:none;border-top:1px solid var(--line-soft)}.timeline-item{display:grid;grid-template-columns:170px 1fr;grid-gap:24px;gap:24px;padding:20px 0;border-bottom:1px solid var(--line-soft)}@media (max-width:640px){.timeline-item{grid-template-columns:1fr;gap:6px}}.timeline-period{font-size:12.5px;color:var(--fg-dim);padding-top:3px}.timeline-org{font-size:17px}.timeline-role{color:var(--fg-muted);font-size:14.5px;margin-top:2px}.timeline-note{color:var(--fg-dim);font-size:14.5px;margin-top:6px;max-width:var(--measure)}.project{padding-top:48px}.back{font-size:13px;color:var(--fg-dim)}.back:hover{color:var(--fg)}.project-title{font-size:clamp(32px,4.6vw,48px);margin-top:10px;max-width:22ch}.project-lede{max-width:54ch;font-size:clamp(18px,2vw,21px);line-height:1.45;color:var(--fg)}.project .chips,.project-lede{margin-top:18px}.project-cover{margin-top:36px}.project-body{margin-top:16px;display:flex;flex-direction:column;gap:16px}.block-h{font-size:22px;margin-top:40px}.block-list{padding-left:1.2em;display:flex;flex-direction:column;gap:10px}.block-media{margin:12px 0 8px;max-width:880px}.block-media.wide{max-width:none}.block-media figcaption{margin-top:10px;font-size:13.5px;color:var(--fg-dim);max-width:var(--measure)}.block-media .media-image[src$=".svg"]{background:transparent;padding:20px}.credits{margin-top:24px}.credits .block-list{font-size:14.5px}.next-project{margin-top:64px;padding-top:24px;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:6px}.next-project a{font-size:20px;font-weight:600;letter-spacing:-.01em}.next-project a:hover{color:var(--action)}@media (max-width:640px){.site-nav{gap:14px}.hero{padding-top:64px}}@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.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-20c4,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_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-sans:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-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:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-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:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-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:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-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:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-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_4dc837{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_4dc837{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}