@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6632a144c419935f-s.38msdipe8z81f.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:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/7b27d9904b50e540-s.30bhvdlsk8sra.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d38f3bca7db33566-s.p.3se9ogqst-d6c.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:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_64c5a92-module__eWUt4G__className{font-family:Newsreader,Newsreader Fallback;font-style:normal}.newsreader_64c5a92-module__eWUt4G__variable{--font-newsreader:"Newsreader", "Newsreader Fallback"}
@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.0b02cdm7g7y6h.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__iaM1Ya__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__iaM1Ya__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.2-i4fw5gbtlb7.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__Ur3q_a__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__Ur3q_a__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
.chrome-module__dUh4ja__header{z-index:30;-webkit-backdrop-filter:saturate(160%)blur(16px);backdrop-filter:saturate(160%)blur(16px);width:100%;transition:border-color var(--medium) var(--ease);background:#0b1020c7;border-bottom:1px solid #0000;position:sticky;top:0}html[data-scrolled] .chrome-module__dUh4ja__header{border-bottom-color:var(--line)}.chrome-module__dUh4ja__bar{align-items:center;gap:28px;min-height:64px;display:flex}.chrome-module__dUh4ja__logo{font-family:var(--font-display), serif;font-variation-settings:"opsz" var(--opsz-display);letter-spacing:-.008em;white-space:nowrap;font-size:20px;font-weight:500}.chrome-module__dUh4ja__nav{gap:2px;margin-right:auto;display:flex}.chrome-module__dUh4ja__nav a{font-family:var(--font-ui);border-radius:var(--radius-sm);color:var(--muted);transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease);align-items:center;gap:4px;padding:7px 10px;font-size:14px;display:flex}@media (hover:hover) and (pointer:fine){.chrome-module__dUh4ja__nav a:hover{color:var(--ink);background:var(--surface)}}.chrome-module__dUh4ja__contact{min-height:36px;padding:0 14px;font-size:14px}.chrome-module__dUh4ja__footer{background:var(--black);border-top:1px solid var(--line);padding:80px 0 0}.chrome-module__dUh4ja__cta h2{font-size:var(--text-2xl);line-height:1.1}.chrome-module__dUh4ja__cta p{color:var(--muted);font-size:var(--text-md);font-weight:var(--weight-prose);font-variation-settings:"opsz" var(--opsz-text);margin-top:10px}.chrome-module__dUh4ja__actions{flex-wrap:wrap;align-items:center;gap:12px 20px;margin:28px 0 72px;display:flex}.chrome-module__dUh4ja__bottom{font-family:var(--font-ui);border-top:1px solid var(--line);font-size:var(--text-xs);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;padding:24px 0;display:flex}.chrome-module__dUh4ja__bottom a{transition:color var(--fast) var(--ease)}@media (hover:hover) and (pointer:fine){.chrome-module__dUh4ja__bottom a:hover{color:var(--ink)}}.chrome-module__dUh4ja__bottom>div{gap:24px;display:flex}.chrome-module__dUh4ja__signature{color:var(--ink)}@media (max-width:640px){.chrome-module__dUh4ja__header{position:relative}.chrome-module__dUh4ja__bar{grid-template-columns:1fr auto;grid-template-areas:"logo contact""nav nav";gap:6px 16px;padding:12px 0 8px;display:grid}.chrome-module__dUh4ja__logo{grid-area:logo}.chrome-module__dUh4ja__contact{grid-area:contact}.chrome-module__dUh4ja__nav{grid-area:nav;margin:0 0 0 -10px}.chrome-module__dUh4ja__footer{padding-top:56px}.chrome-module__dUh4ja__cta h2{font-size:var(--text-xl)}.chrome-module__dUh4ja__actions{margin-bottom:56px}.chrome-module__dUh4ja__bottom>div{gap:18px}}@media (max-width:480px){.chrome-module__dUh4ja__bottom>a:last-child{display:none}.chrome-module__dUh4ja__signature{width:100%}}@media (pointer:coarse){.chrome-module__dUh4ja__logo,.chrome-module__dUh4ja__nav a{align-items:center;min-height:44px;display:flex}.chrome-module__dUh4ja__contact{min-height:44px}.chrome-module__dUh4ja__bottom a,.chrome-module__dUh4ja__signature{align-items:center;min-height:44px;display:inline-flex}}
.project-chapter{border-top:1px solid var(--line);position:relative}.chapter-sticky{grid-template-columns:.85fr 1.35fr;align-items:start;gap:6%;padding:56px 0;display:grid}.step-buttons{background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:var(--radius-md);gap:2px;padding:3px;display:inline-flex}.step-buttons button{text-align:left;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-xs);color:var(--muted);white-space:nowrap;transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease), transform .16s var(--ease-out);background:0 0;padding:7px 12px}.step-buttons button:active{transform:scale(.97)}.step-buttons button span{font-variant-numeric:tabular-nums;color:var(--muted);margin-right:4px}@media (hover:hover) and (pointer:fine){.step-buttons button:hover{color:var(--ink)}}.step-buttons button[aria-pressed=true]{background:var(--surface-hover);color:var(--ink)}.step-caption{font-size:var(--text-md);font-weight:var(--weight-prose);font-variation-settings:"opsz" var(--opsz-text);color:var(--muted);max-width:44ch;min-height:6.4em;margin:18px 0 14px;line-height:1.6}.chapter-actions{flex-wrap:wrap;align-items:center;gap:10px 18px;display:flex}.replay{font-family:var(--font-ui);color:var(--muted);font-size:var(--text-xs);transition:color var(--fast) var(--ease);background:0 0;padding:6px 0}@media (hover:hover) and (pointer:fine){.replay:hover{color:var(--ink)}}.scenario-toggle{background:var(--surface);border:1px solid var(--line-strong);font-family:var(--font-ui);font-size:var(--text-xs);color:var(--accent);transition:border-color var(--fast) var(--ease), transform .16s var(--ease-out);border-radius:999px;padding:7px 14px;font-weight:500}.scenario-toggle:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.scenario-toggle:hover{border-color:var(--line-hover)}}.chapter-figure{min-width:0;margin:0}.chapter-figure figcaption{font-family:var(--font-ui);color:var(--faint);font-variant-numeric:tabular-nums;justify-content:space-between;gap:10px;padding-top:12px;font-size:12px;display:flex}.project-art{aspect-ratio:16/9;border:1px solid var(--line-strong);border-radius:var(--radius-xl);background:#0f1827;overflow:hidden}.project-art hyperframes-player{width:100%;height:100%;display:block}.scene-badge{color:var(--ink);align-items:center;gap:8px;display:inline-flex}.scene-badge:before{content:"";background:#62d98a;border-radius:50%;width:7px;height:7px}.scene-badge[data-state=interrupted]:before{background:#f5a623}@media (max-width:1100px){.chapter-sticky{grid-template-columns:.9fr 1.1fr;gap:4%}}@media (max-width:899px){.chapter-sticky{grid-template-columns:1fr;gap:28px;padding:40px 0}.step-caption{max-width:60ch;min-height:0}.chapter-figure{width:100%}}@media (max-width:480px){.step-buttons{width:100%;display:flex}.step-buttons button{text-align:center;flex:1;padding:9px 4px}}@media (pointer:coarse){.step-buttons button,.replay{min-height:44px;padding-block:12px}.scenario-toggle{min-height:44px;padding:12px 16px}}
:root{--black:#080c18;--bg:#0b1020;--bg-raised:#121a2e;--surface:#18223a;--surface-hover:#202b47;--line:#1f2a44;--line-strong:#2a3654;--line-hover:#3a4870;--ink:#e8ecf5;--muted:#9aa4b8;--faint:#8c97ad;--accent:#5cb8ff;--accent-solid:#1a66c9;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:18px;--fast:.15s;--medium:.25s;--slow:.6s;--ease:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--font-body:var(--font-newsreader);--font-display:var(--font-newsreader);--font-ui:var(--font-geist-sans), system-ui, sans-serif;--font-mono:var(--font-geist-mono);--text-xs:13px;--text-sm:15px;--text-md:17px;--text-lg:21px;--text-xl:28px;--text-2xl:40px;--text-display:clamp(48px, 7vw, 88px);--opsz-ui:11;--opsz-text:13;--opsz-display:72;--weight-prose:450;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--bg);color:var(--ink);font-family:var(--font-body), serif;font-variation-settings:"opsz" var(--opsz-ui);touch-action:manipulation;margin:0;font-size:14px;line-height:1.5}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:0}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display), serif;letter-spacing:-.008em;font-variation-settings:"opsz" var(--opsz-display);text-wrap:balance;font-weight:500}p{text-wrap:pretty}svg{display:block}img{max-width:100%;height:auto}ul,ol{margin:0;padding:0;list-style:none}.skip{background:var(--ink);color:var(--bg);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-xs);z-index:100;padding:12px 16px;font-weight:500;position:fixed;top:-100px;left:20px}.skip:focus{top:12px}.shell{width:min(1200px,100% - 96px);margin:auto}.eyebrow{font-family:var(--font-ui);font-variation-settings:normal;font-size:var(--text-xs);letter-spacing:0;line-height:1.5}.muted{color:var(--muted)}.line-link{font-family:var(--font-ui);font-variation-settings:normal;font-size:var(--text-sm);color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-hover);text-decoration-color:var(--line-hover);text-underline-offset:5px;transition:color var(--fast) var(--ease), text-decoration-color var(--fast) var(--ease);align-items:center;gap:6px;font-weight:500;text-decoration-thickness:1px;display:inline-flex}@media (hover:hover) and (pointer:fine){.line-link:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{min-height:40px;font-family:var(--font-ui);font-variation-settings:normal;font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), color var(--fast) var(--ease), transform .16s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:500;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ink);color:var(--bg)}.btn-quiet{border:1px solid var(--line-strong);color:var(--ink)}@media (hover:hover) and (pointer:fine){.btn-primary:hover{background:#fff}.btn-quiet:hover{border-color:var(--line-hover);background:var(--surface)}}.pill{font-family:var(--font-ui);font-variation-settings:normal;color:var(--muted);background:var(--surface);border:1px solid var(--line-strong);white-space:nowrap;border-radius:100px;padding:4px 10px;font-size:12px;font-weight:500}.tech-list{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.tech-pill{font-family:var(--font-ui);font-variation-settings:normal;color:var(--muted);border:1px solid var(--line-strong);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:6px;padding:3px 8px;font-size:12px;display:inline-flex}.tech-pill svg{fill:currentColor;flex-shrink:0;width:12px;height:12px}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:28px;display:flex}.section-heading h2{font-size:var(--text-xl);line-height:1.2}.section-heading p{color:var(--muted);font-size:var(--text-sm);font-variation-settings:"opsz" var(--opsz-text)}.route-intro{padding:96px 0 56px}.route-intro h1{max-width:22ch;font-size:clamp(34px,4vw,52px);line-height:1.1}.route-intro p{font-size:var(--text-md);font-weight:var(--weight-prose);font-variation-settings:"opsz" var(--opsz-text);color:var(--muted);max-width:60ch;margin-top:16px;line-height:1.6}.text-link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-hover);text-decoration-color:var(--line-hover);text-underline-offset:4px;transition:text-decoration-color var(--fast) var(--ease)}@media (hover:hover) and (pointer:fine){.text-link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}}.not-found{flex-direction:column;justify-content:center;align-items:flex-start;gap:20px;min-height:70svh;padding:72px 0;display:flex}.not-found h1{font-size:clamp(40px,6vw,64px);line-height:1.05}.not-found p{color:var(--muted);max-width:44ch;font-size:var(--text-md);font-weight:var(--weight-prose);font-variation-settings:"opsz" var(--opsz-text);line-height:1.6}.not-found .actions{flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:8px;display:flex}.progress{height:2px;transform:scaleX(var(--scroll-progress,0));transform-origin:0;background:linear-gradient(90deg, var(--accent-solid), var(--accent));pointer-events:none;position:absolute;bottom:-1px;left:0;right:0}@media (min-width:1800px){.shell{width:min(1320px,100% - 128px)}}@media (max-width:899px){.shell{width:calc(100% - 48px)}.route-intro{padding:72px 0 40px}}@media (max-width:640px){html{scroll-padding-top:24px}}@media (max-width:480px){.shell{width:calc(100% - 36px)}.route-intro p{font-size:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,:before,:after{transition-duration:.01ms!important;animation:none!important}.progress{display:none}}.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;padding:0;overflow:hidden}@media (pointer:coarse){.line-link,.text-link{min-height:44px;padding-block:12px}.btn{min-height:44px}}
