@font-face{font-family:Fraunces;font-style:italic;font-weight:300 600;font-display:swap;src:url(/assets/fonts/fraunces-italic-300-600-vietnamese.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:Fraunces;font-style:italic;font-weight:300 600;font-display:swap;src:url(/assets/fonts/fraunces-italic-300-600-latin-ext.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:Fraunces;font-style:italic;font-weight:300 600;font-display:swap;src:url(/assets/fonts/fraunces-italic-300-600-latin.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:Fraunces;font-style:normal;font-weight:300 600;font-display:swap;src:url(/assets/fonts/fraunces-normal-300-600-vietnamese.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:Fraunces;font-style:normal;font-weight:300 600;font-display:swap;src:url(/assets/fonts/fraunces-normal-300-600-latin-ext.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:Fraunces;font-style:normal;font-weight:300 600;font-display:swap;src:url(/assets/fonts/fraunces-normal-300-600-latin.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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-cyrillic-ext.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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-vietnamese.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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-latin-ext.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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-latin.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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-cyrillic-ext.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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-vietnamese.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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-latin-ext.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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-latin.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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-cyrillic-ext.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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-vietnamese.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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-latin-ext.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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/hanken-grotesk-normal-latin.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:Spline Sans Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spline-sans-mono-normal-latin-ext.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:Spline Sans Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spline-sans-mono-normal-latin.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:Spline Sans Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/spline-sans-mono-normal-latin-ext.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:Spline Sans Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/spline-sans-mono-normal-latin.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}:root{--bg:#0a0c10;--bg-raised:#10141b;--bg-inset:#060809;--ink:#ebe6d8;--ink-muted:#a6a092;--ink-faint:#706c60;--line:#ebe6d824;--line-faint:#ebe6d812;--accent:#3ebfc6;--accent-bright:#66d7dd;--accent-deep:#0099a0;--accent-soft:#3ebfc61f;--accent-glow:#3ebfc64d;--r-card:12px;--r-ui:8px;--r-chip:6px;--shadow-card:inset 0 1px 0 #ffffff0b, 0 20px 44px -26px #000000bf;--shadow-hud:inset 0 1px 0 #ffffff0d, 0 10px 28px -14px #000000a6;--card-sheen:linear-gradient(180deg, #ffffff07, transparent 38%);--graticule:linear-gradient(#ebe6d806 1px, transparent 1px), linear-gradient(90deg, #ebe6d806 1px, transparent 1px);--graticule-size:52px 52px, 52px 52px;--font-display:"Fraunces", "Georgia", serif;--font-body:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"Spline Sans Mono", ui-monospace, "SFMono-Regular", monospace;--container:1120px;--pad:clamp(20px, 4vw, 48px)}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;padding:0}section{scroll-margin-top:84px}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:16.5px;line-height:1.62;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(1100px 600px at 18% -8%, #3ebfc60e, transparent 64%), radial-gradient(900px 700px at 100% 110%, #6e82b40d, transparent 60%), var(--graticule);background-size:auto, auto, var(--graticule-size);background-color:var(--bg);position:fixed;top:0;bottom:0;left:0;right:0}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}img,video{max-width:100%;display:block}::selection{background:var(--accent);color:#0a0c10}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3,p{margin:0}.container{max-width:var(--container);padding:0 var(--pad);margin:0 auto}.grain{z-index:90;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");animation:9s steps(6,end) infinite grainShift;position:fixed;top:-50%;bottom:-50%;left:-50%;right:-50%}@keyframes grainShift{0%,to{transform:translate(0)}20%{transform:translate(-2%,1%)}40%{transform:translate(1%,-2%)}60%{transform:translate(-1%,2%)}80%{transform:translate(2%,-1%)}}.nav{z-index:100;background:color-mix(in oklab, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(14px)saturate(130%);border-bottom:1px solid var(--line-faint);position:fixed;top:0;left:0;right:0}.nav-inner{max-width:var(--container);padding:14px var(--pad);justify-content:space-between;align-items:center;gap:20px;margin:0 auto;display:flex}.nav-brand{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink);text-transform:uppercase;align-items:center;font-size:13px;display:inline-flex}.nav-links{font-family:var(--font-mono);align-items:center;gap:2px;font-size:12.5px;display:flex}.nav-links a{color:var(--ink-muted);letter-spacing:.02em;border-bottom:1px solid #0000;padding:7px 12px;transition:color .18s}.nav-links a:hover{color:var(--ink)}.nav-links a.active{color:var(--accent)}.nav-n{color:var(--ink-faint);margin-right:6px;font-size:10.5px}.nav-links a.active .nav-n{color:var(--accent-deep)}.nav-cv{border-radius:var(--r-chip);align-items:center;gap:5px;margin-left:10px;transition:border-color .18s,background .18s;display:inline-flex;border:1px solid var(--line)!important;color:var(--ink)!important}.nav-cv:hover{background:var(--accent-soft);border-color:var(--accent)!important}.nav-burger{color:var(--ink);padding:6px;display:none}@media (max-width:860px){.nav-burger{display:block}.nav-links{background:var(--bg-raised);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:8px 0 14px;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.open{display:flex}.nav-links a{padding:13px var(--pad);font-size:14px}.nav-cv{margin:10px var(--pad) 0;justify-content:center}}.hero{padding:clamp(140px,22vh,220px) 0 clamp(56px,9vh,110px);position:relative}.hero-grid{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(32px,6vw,80px);display:grid}.kicker-dash{background:var(--accent);width:42px;height:1px;display:inline-block}.hero-name{font-family:var(--font-display);letter-spacing:-.018em;font-variation-settings:"opsz" 144;margin:0 0 20px;font-size:clamp(50px,7vw,88px);font-weight:400;line-height:1}.hero-role{color:var(--ink);align-items:center;gap:12px;margin:0 0 16px;font-size:17px;font-weight:540;line-height:1.5;display:flex}.hero-tag{font-family:var(--font-display);letter-spacing:-.01em;font-variation-settings:"opsz" 110;margin:0 0 24px;font-size:clamp(23px,2.6vw,32px);font-weight:380;line-height:1.2}.hero-tag em{color:var(--accent);font-style:italic;font-weight:340}.hero-sub{max-width:560px;color:var(--ink-muted);margin-bottom:30px;font-size:17.5px;line-height:1.66}.hero-proof{border:1px solid color-mix(in oklab, var(--accent) 26%, var(--line));background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-ui);max-width:600px;box-shadow:var(--shadow-hud);color:var(--ink-muted);margin:0 0 30px;padding:14px 18px;font-size:15px;line-height:1.7}.hero-proof a{transition:color .18s}.hero-proof a:hover{color:var(--ink)}.hero-proof a:hover .proof-stat{text-decoration:none}.proof-flagship strong{color:var(--ink);font-weight:600}.proof-flagship:hover strong{color:var(--accent)}.proof-stat{font-family:var(--font-mono);color:var(--accent);white-space:nowrap;text-shadow:0 0 24px var(--accent-glow);font-weight:600}.proof-lib{font-family:var(--font-mono);color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent-deep);text-decoration-color:var(--accent-deep);text-underline-offset:3px;font-size:13.5px}.proof-lib:hover{color:var(--accent)}.hero-meta{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.01em;margin:0 0 34px;padding:0;font-size:12.5px;line-height:2.05;list-style:none}.hero-meta li{padding-left:24px;position:relative}.hero-meta li:before{content:"";background:var(--accent-deep);width:14px;height:1px;position:absolute;top:1.02em;left:0}.hero-links{flex-wrap:wrap;gap:8px;display:flex}.hero-links a{font-family:var(--font-mono);letter-spacing:.02em;border:1px solid var(--line);border-radius:var(--r-ui);color:var(--ink-muted);align-items:center;gap:7px;padding:9px 15px;font-size:12.5px;transition:color .18s,border-color .18s,background .18s,transform .18s;display:inline-flex}.hero-links a:hover{color:var(--ink);border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.hero-fig{border:1px solid var(--line-faint);background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-card);box-shadow:var(--shadow-card);margin:0;padding:14px;position:relative}.hero-fig img{border-radius:calc(var(--r-card) - 7px);filter:saturate(.88)contrast(1.02);width:clamp(180px,19vw,250px);height:auto;transition:filter .45s}.hero-fig:hover img{filter:saturate()contrast(1.02)}.hero-fig figcaption{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-top:12px;font-size:10.5px}.hero-rule{background:var(--line);transform-origin:0;height:1px;position:absolute;bottom:0;left:0;right:0}@media (max-width:860px){.hero{padding-top:120px}.hero-grid{grid-template-columns:1fr;align-items:start}.hero-fig{justify-self:start}}html.js .prerendered{display:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.grain{animation:none}*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.section{z-index:1;padding:clamp(72px,11vh,130px) 0 0;position:relative}.sec-head{margin-bottom:clamp(36px,5vh,56px)}.sec-index{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:14px;margin-bottom:22px;font-size:12px;display:flex}.sec-n{color:var(--accent)}.sec-label{color:var(--ink-muted)}.sec-rule{background:var(--line-faint);flex:1;height:1px}.sec-title{font-family:var(--font-display);letter-spacing:-.01em;font-variation-settings:"opsz" 100;text-wrap:balance;font-size:clamp(32px,4.6vw,50px);font-weight:380;line-height:1.06}.sec-title em{color:var(--accent);font-style:italic;font-weight:340}.sec-sub{max-width:560px;color:var(--ink-muted);margin-top:16px;font-size:16px}.sheet-stack{gap:28px;display:grid}@media (min-width:1020px){.sheet-stack .sheet:not(.flagship){margin-left:clamp(28px,7vw,104px)}}.sheet{border:1px solid var(--line);background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:clamp(24px,3.5vw,40px);position:relative}.sheet.flagship{border-color:color-mix(in oklab, var(--accent) 38%, var(--line));box-shadow:var(--shadow-card), 0 0 0 1px #3ebfc60f, 0 24px 64px -32px #3ebfc62e}.sheet.flagship:before{content:"FLAGSHIP";font-family:var(--font-mono);letter-spacing:.22em;color:#0a0c10;background:var(--accent);border-radius:0 0 5px 5px;padding:3px 9px;font-size:9.5px;position:absolute;top:-1px;right:22px}.sheet-media{border:1px solid var(--line);background:var(--bg-inset);border-radius:var(--r-ui);margin:0 0 26px;padding:8px}.sheet-media video{border-radius:calc(var(--r-ui) - 4px);width:100%;height:auto;display:block}.sheet-media figcaption{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-top:9px;font-size:10.5px;line-height:1.6}.sheet-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.sheet-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(26px,3vw,34px);font-weight:420}.sheet-subtitle{color:var(--ink-muted);max-width:560px;margin-top:6px;font-size:15.5px}.sheet-meta{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.sheet-date{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.05em;font-size:11.5px}.sheet-role{font-family:var(--font-mono);letter-spacing:.05em;color:var(--ink-faint);text-transform:uppercase;margin-top:16px;font-size:11.5px}.sheet-body{max-width:760px;color:var(--ink-muted);margin-top:14px;font-size:16px}.pill{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in oklab, var(--accent) 45%, transparent);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:10.5px}.pill.dim{color:var(--ink-faint);border-color:var(--line)}.stat-row{background:var(--line-faint);border:1px solid var(--line-faint);border-radius:var(--r-ui);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin-top:26px;display:grid;overflow:hidden}.stat{background:var(--bg-raised);padding:16px 18px;transition:background .18s}.stat:hover{background:color-mix(in oklab, var(--bg-raised) 88%, var(--accent) 4%)}.stat-v{font-family:var(--font-mono);color:var(--accent);letter-spacing:-.02em;text-shadow:0 0 24px var(--accent-glow);font-size:29px;font-weight:600;line-height:1.15;display:block}.stat-v small{color:color-mix(in oklab, var(--accent) 60%, var(--ink-muted));font-size:15px;font-family:var(--font-mono)}.stat-l{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-top:7px;font-size:10.5px;line-height:1.5;display:block}.sheet-details{border-top:1px solid var(--line-faint);margin-top:24px}.sheet-details summary{cursor:pointer;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);justify-content:space-between;align-items:center;padding:14px 2px;font-size:12px;list-style:none;transition:color .18s;display:flex}.sheet-details summary::-webkit-details-marker{display:none}.sheet-details summary:hover{color:var(--accent)}.sum-mark{color:var(--accent);font-size:15px;transition:transform .25s}.sheet-details[open] .sum-mark{transform:rotate(45deg)}.sheet-details ul{color:var(--ink-muted);margin:6px 0 0;padding:0 0 6px 20px;font-size:15px}.sheet-details li{margin-bottom:10px}.sheet-details li::marker{color:var(--accent-deep)}.chip-row{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.chip{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-muted);border:1px solid var(--line-faint);border-radius:var(--r-chip);white-space:nowrap;background:#ffffff04;padding:4px 10px;font-size:11px}.sheet-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;display:flex}.sheet-note{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.04em;font-size:11px}.ext-links{flex-wrap:wrap;gap:7px;display:flex}.ext-links a{font-family:var(--font-mono);letter-spacing:.03em;color:var(--ink-muted);border:1px solid var(--line);border-radius:var(--r-chip);align-items:center;gap:6px;padding:7px 12px;font-size:11.5px;transition:color .18s,border-color .18s,background .18s,transform .18s;display:inline-flex}.ext-links a:hover{color:var(--ink);border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.compact-grid{background:var(--line-faint);border:1px solid var(--line-faint);border-radius:var(--r-ui);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;margin-top:28px;display:grid;overflow:hidden}.compact-row{background:var(--bg);padding:22px 24px}.compact-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.compact-head h4{font-family:var(--font-display);margin:0;font-size:19px;font-weight:420}.compact-date{font-family:var(--font-mono);color:var(--ink-faint);white-space:nowrap;font-size:11px}.compact-row p{color:var(--ink-muted);margin:10px 0 14px;font-size:14.5px}.pub-list{border-top:1px solid var(--line);margin-top:44px}.pub-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);padding:16px 0 6px;font-size:11px}.pub-row{border-bottom:1px solid var(--line-faint);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:13px 0;display:grid}.pub-title{font-size:15px}.pub-meta{font-family:var(--font-mono);color:var(--ink-faint);font-size:11.5px}.pub-linkcell{flex-wrap:wrap;justify-self:end;gap:4px 16px;display:inline-flex}.pub-link,.pub-status{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:inline-flex}.pub-status{color:var(--ink-faint)}.pub-link:hover{text-underline-offset:3px;text-decoration:underline}@media (max-width:700px){.pub-row{grid-template-columns:1fr;gap:4px}.pub-linkcell{justify-self:start}}.sw-stack{gap:30px;display:grid}@media (min-width:1020px){.sw-stack .sw:nth-child(odd){margin-right:clamp(24px,6vw,88px)}.sw-stack .sw:nth-child(2n){margin-left:clamp(24px,6vw,88px)}}.sw{border:1px solid var(--line);background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:clamp(24px,3.5vw,40px);position:relative}.sw-grid{grid-template-columns:minmax(240px,.85fr) minmax(0,1.5fr);gap:clamp(24px,4vw,56px);display:grid}.sw-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(28px,3.4vw,38px);font-weight:460}.sw-oneliner{font-family:var(--font-display);color:var(--accent);margin-top:8px;font-size:18px;font-style:italic;font-weight:340}.install{background:var(--bg-inset);border:1px solid var(--line);border-radius:var(--r-ui);width:100%;font-family:var(--font-mono);text-align:left;color:var(--ink);align-items:center;gap:10px;margin-top:20px;padding:11px 14px;font-size:13px;transition:border-color .18s,box-shadow .18s;display:flex;box-shadow:inset 0 2px 8px #00000059}.install:hover{border-color:var(--accent);box-shadow:inset 0 2px 8px #00000059, 0 0 0 3px var(--accent-soft)}.install-ps1{color:var(--accent)}.install code{overflow-wrap:anywhere;word-break:break-all;flex:1;min-width:0;font-family:inherit;line-height:1.5}.install-copy{color:var(--ink-faint);display:inline-flex}.install:hover .install-copy{color:var(--accent)}.sw-spec{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:12px;font-size:11px;line-height:1.8}.sw-id .ext-links{margin-top:16px}.sw-body>p{color:var(--ink-muted);max-width:640px;font-size:15.5px}.sw-stats{gap:0;margin:22px 0 0;display:grid}.sw-stat{border-top:1px solid var(--line-faint);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:18px;padding:12px 2px;display:grid}.sw-stat dt{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.sw-stat dd{font-family:var(--font-mono);color:var(--accent);white-space:nowrap;letter-spacing:-.01em;text-shadow:0 0 24px var(--accent-glow);margin:0;font-size:20px;font-weight:600}@media (max-width:820px){.sw-grid{grid-template-columns:1fr}.sw-stat dd{white-space:normal;font-size:21px}}.project-fold{border:1px solid var(--line);border-radius:var(--r-card);background:var(--bg-raised);margin-top:34px;overflow:clip}.project-fold-toggle{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;min-height:72px;padding:18px 22px;list-style:none;transition:background .18s,color .18s;display:flex}.project-fold-toggle::-webkit-details-marker{display:none}.project-fold-toggle:hover{background:var(--accent-soft)}.project-fold-toggle>span:first-child{gap:5px;display:grid}.project-fold-count{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.project-fold-toggle .sum-mark{color:var(--accent);flex:none;font-size:24px;transition:transform .24s}.project-fold[open] .project-fold-toggle .sum-mark{transform:rotate(45deg)}.project-compact-list{border-top:1px solid var(--line)}.project-compact-row{border-bottom:1px solid var(--line-faint);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:18px 22px;display:grid}.project-compact-row:last-child{border-bottom:0}.project-compact-copy h3{font-family:var(--font-display);font-size:20px;font-weight:430}.project-compact-copy p{color:var(--ink-muted);margin-top:3px;font-size:14px}.project-compact-copy>span{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:7px;font-size:10px;display:block}.project-compact-row .ext-links{justify-content:flex-end}.adapter-fold{margin-top:58px}.adapter-fold-body{border-top:1px solid var(--line);padding:4px 22px 24px}@media (max-width:700px){.project-compact-row{grid-template-columns:1fr;gap:12px}.project-compact-row .ext-links{justify-content:flex-start}}.adapters{margin-top:20px}.adapters-toggle{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);cursor:pointer;padding:8px 0;font-size:11.5px;list-style:none}.adapters-toggle::-webkit-details-marker{display:none}.adapters-toggle:hover{text-underline-offset:3px;text-decoration:underline}.adapters-grid{background:var(--line-faint);border:1px solid var(--line-faint);border-radius:var(--r-ui);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;margin-top:12px;display:grid;overflow:hidden}.adapter{background:var(--bg-raised);flex-direction:column;gap:4px;padding:12px 14px;transition:background .18s;display:flex}.adapter:hover{background:var(--bg-inset)}.adapter-name{font-family:var(--font-mono);color:var(--ink);align-items:center;gap:7px;font-size:12px;display:inline-flex}.adapter-desc{font-family:var(--font-mono);color:var(--ink-faint);font-size:10.5px}.xp-list{border-top:1px solid var(--line)}.xp-links{margin-top:14px}.xp-links .ext-links a{padding:6px 10px;font-size:11px}.xp-earlier{margin-top:44px}.xp-earlier-row{border-bottom:1px solid var(--line-faint);grid-template-columns:230px minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:10px 0;display:grid}.xp-earlier-title{color:var(--ink);font-size:14px}.xp-earlier-note{color:var(--ink-faint);font-size:13px}.xp-earlier-date{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.05em;white-space:nowrap;font-size:10.5px}@media (max-width:700px){.xp-earlier-row{grid-template-columns:1fr;gap:3px}}.xp-row{border-bottom:1px solid var(--line-faint);grid-template-columns:150px minmax(0,1fr);gap:24px;padding:26px 0;display:grid}.xp-date{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.05em;padding-top:4px;font-size:12px}.xp-main h3{font-family:var(--font-display);font-size:21px;font-weight:420}.xp-org{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.03em;margin-top:4px;font-size:11.5px}.xp-sum{color:var(--ink-muted);max-width:700px;margin-top:10px;font-size:15px}.xp-bullets{color:var(--ink-muted);max-width:700px;margin:12px 0 0;padding-left:20px;font-size:14.5px}.xp-bullets li{margin-bottom:8px}.xp-bullets li::marker{color:var(--accent-deep)}@media (max-width:700px){.xp-row{grid-template-columns:1fr;gap:6px}}.edu-grid{background:var(--line-faint);border:1px solid var(--line-faint);border-radius:var(--r-ui);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;display:grid;overflow:hidden}.edu-card{background:var(--bg-raised);padding:24px;position:relative}.status{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-size:9.5px;position:absolute;top:18px;right:18px}.status.current{color:var(--accent)}.status.incoming{color:var(--ink-muted)}.edu-degree{font-family:var(--font-display);padding-right:70px;font-size:18px;font-weight:420}.edu-school{color:var(--ink-muted);margin-top:6px;font-size:14.5px}.edu-note{color:var(--ink-faint);margin-top:10px;font-size:13px;line-height:1.55}.edu-date{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.05em;margin-top:12px;font-size:11px}.edu-link{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);align-items:center;gap:4px;margin-left:14px;font-size:10.5px;display:inline-flex}.edu-link:hover{text-underline-offset:3px;text-decoration:underline}.bg-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:14px;font-size:11px}.bg-cols{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:clamp(28px,4vw,56px);margin-top:48px;display:grid}.bg-row{border-bottom:1px solid var(--line-faint);flex-direction:column;gap:2px;padding:11px 0;display:flex}.bg-row.link:hover .bg-title{color:var(--accent)}.bg-title{color:var(--ink);align-items:center;gap:7px;font-size:14.5px;transition:color .18s;display:inline-flex}.bg-meta{font-family:var(--font-mono);color:var(--ink-faint);font-size:11px}.bg-label-follow{margin-top:36px}.docs-fold summary.docs-fold-toggle{cursor:pointer;border-bottom:1px solid var(--line-faint);justify-content:space-between;align-items:center;gap:10px;padding:2px 0 10px;list-style:none;transition:color .18s;display:flex}.docs-fold summary.docs-fold-toggle::-webkit-details-marker{display:none}.docs-fold summary.docs-fold-toggle:hover{color:var(--accent)}.docs-fold .sum-mark{color:var(--accent);font-size:14px;transition:transform .25s}.docs-fold[open] .sum-mark{transform:rotate(45deg)}.doc-row a.bg-title:hover{color:var(--accent)}.doc-kind{color:var(--ink-faint)}.doc-kind:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.skills{margin-top:52px}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px 32px;display:grid}.skill-group h4{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 10px;font-size:11.5px;font-weight:500}.school-crossref{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-ui);background:var(--card-sheen), var(--bg-raised);grid-template-columns:minmax(150px,.42fr) minmax(0,1fr) auto;grid-template-areas:"kicker note date""title note link";align-items:center;gap:4px 28px;margin-bottom:28px;padding:18px 22px;transition:border-color .18s,transform .18s,background .18s;display:grid;position:relative}.school-crossref:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.school-crossref-kicker{font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;color:var(--accent);grid-area:kicker;font-size:9.5px}.school-crossref-title{font-family:var(--font-display);color:var(--ink);grid-area:title;font-size:22px}.school-crossref-note{color:var(--ink-muted);grid-area:note;font-size:14px;line-height:1.55}.school-crossref-link{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);grid-area:link;justify-self:end;font-size:10.5px}.school-crossref-date{font-family:var(--font-mono);color:var(--ink-faint);grid-area:date;place-self:start end;font-size:10.5px}@media (max-width:760px){.school-crossref{grid-template-columns:1fr auto;grid-template-areas:"kicker date""title title""note note""link link";gap:6px 14px}.school-crossref-link{justify-self:start;margin-top:5px}}.archive{margin-top:52px}.archive-grid{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0 32px;display:grid}.archive-row{border-bottom:1px solid var(--line-faint);padding:14px 0}.archive-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.archive-head span:first-child,.archive-head a{color:var(--ink);font-size:14px;font-weight:500}.archive-head a{align-items:center;gap:6px;display:inline-flex}.archive-head a:hover{color:var(--accent)}.archive-date{font-family:var(--font-mono);color:var(--ink-faint);white-space:nowrap;font-size:10.5px}.archive-row p{color:var(--ink-faint);margin-top:4px;font-size:13px;line-height:1.55}.fieldlog-sec{padding-top:clamp(60px,9vh,100px)}.fieldlog{padding:4px var(--pad) 18px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--ink-faint) transparent;gap:14px;display:flex;overflow-x:auto}.fieldlog:after{content:"";flex:0 0 1px}.log-item{scroll-snap-align:start;border:1px solid var(--line-faint);background:var(--bg-raised);border-radius:var(--r-ui);flex:none;margin:0;padding:8px}.log-item img,.log-item video{border-radius:calc(var(--r-ui) - 4px);object-fit:cover;filter:saturate(.9);width:auto;max-width:320px;height:200px}.log-item figcaption{max-width:300px;font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-top:8px;font-size:10px}.contact-grid{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:clamp(32px,5vw,72px);display:grid}.contact-email{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent-deep);text-decoration-color:var(--accent-deep);text-underline-offset:8px;overflow-wrap:anywhere;font-size:clamp(24px,3.6vw,40px);font-style:italic;font-weight:360;text-decoration-thickness:1px;transition:color .18s}.contact-email:hover{color:var(--accent)}.contact-loc{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.04em;margin-top:18px;font-size:12px}.contact-open{margin-top:36px}.open-item{color:var(--ink-muted);align-items:center;gap:12px;padding:8px 0;font-size:15px;display:flex}.open-dash{background:var(--accent);flex:none;width:18px;height:1px}.contact-links{flex-direction:column;display:flex}.contact-links a{border-bottom:1px solid var(--line-faint);grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:14px;padding:15px 2px;transition:background .18s,padding .18s;display:grid}.contact-links a:first-child{border-top:1px solid var(--line-faint)}.contact-links a:hover{background:var(--accent-soft);padding-left:10px}.cl-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.cl-val{color:var(--ink);overflow-wrap:anywhere;font-size:14px}.contact-links svg{color:var(--ink-faint)}@media (max-width:760px){.contact-grid{grid-template-columns:1fr}}.footer{border-top:1px solid var(--line);margin-top:clamp(72px,11vh,130px);padding:26px 0 34px}.footer-inner{font-family:var(--font-mono);letter-spacing:.05em;color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:11px;display:flex}html.grid-mode,html.grid-mode body{overscroll-behavior:none;height:100%;overflow:hidden}.gridview{position:fixed;top:0;bottom:0;left:0;right:0}.gv-stage{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.gv-roomwrap{will-change:transform;position:absolute;top:0;bottom:0;left:0;right:0}.gv-roomwrap.gv-out{animation:gvOut var(--gv-dur,.52s) cubic-bezier(.45, 0, .18, 1) forwards}.gv-roomwrap.gv-in{animation:gvIn var(--gv-dur,.52s) cubic-bezier(.45, 0, .18, 1) forwards;z-index:2}@keyframes gvOut{to{transform:translate3d(calc(var(--gv-dx,0) * -100%), calc(var(--gv-dy,0) * -100%), 0)}}@keyframes gvIn{0%{transform:translate3d(calc(var(--gv-dx,0) * 100%), calc(var(--gv-dy,0) * 100%), 0)}to{transform:none}}.gv-room{background-image:radial-gradient(1100px 620px at 22% -6%, #3ebfc60d, transparent 62%), radial-gradient(900px 700px at 100% 110%, #6e82b40b, transparent 60%), var(--graticule);background-size:auto, auto, var(--graticule-size);background-color:var(--bg);position:absolute;top:0;bottom:0;left:0;right:0}.gv-scroll{scrollbar-width:thin;scrollbar-color:var(--ink-faint) transparent;outline:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden auto}.gv-scroll::-webkit-scrollbar{width:10px}.gv-scroll::-webkit-scrollbar-track{background:0 0}.gv-scroll::-webkit-scrollbar-thumb{background:color-mix(in oklab, var(--ink-faint) 55%, transparent);background-clip:content-box;border:3px solid #0000;border-radius:8px}.gv-scroll::-webkit-scrollbar-thumb:hover{background-color:var(--accent-deep)}.gv-inner{flex-direction:column;min-height:100%;display:flex}.gv-inner>section.section{flex:1}.gv-inner .section{padding:clamp(74px,10vh,110px) 0 0}.gv-foot{border-top:1px solid var(--line);padding:22px var(--pad) 84px;max-width:var(--container);font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:clamp(56px,9vh,104px);margin-left:auto;margin-right:auto;font-size:10.5px;display:flex}.gv-edge{z-index:120;font-family:var(--font-mono);letter-spacing:.14em;color:var(--ink-muted);background:color-mix(in oklab, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(130%);border:1px solid var(--line);box-shadow:var(--shadow-hud);border-radius:10px;justify-content:center;align-items:center;min-width:42px;min-height:42px;padding:0;font-size:11px;transition:color .18s,border-color .18s,background .18s,box-shadow .18s;display:inline-flex;position:fixed}.gv-edge:after{content:"";position:absolute;top:-12px;bottom:-12px;left:-12px;right:-12px}.gv-edge:hover{color:var(--ink);border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--shadow-hud), 0 0 22px -6px var(--accent-glow)}.gv-edge:focus-visible{color:var(--ink);border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--shadow-hud), 0 0 22px -6px var(--accent-glow)}.gv-edge:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.gv-edge-arrow{color:var(--accent);flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:15px;line-height:1;display:inline-flex}.gv-edge-label{opacity:0;white-space:nowrap;max-width:0;transition:max-width .3s cubic-bezier(.4,0,.2,1),opacity .22s,padding .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.gv-edge:hover .gv-edge-label{opacity:1;max-width:230px}.gv-edge:focus-visible .gv-edge-label{opacity:1;max-width:230px}.gv-edge:hover .gv-edge-label{padding-right:15px}.gv-edge:focus-visible .gv-edge-label{padding-right:15px}.gv-edge-e{flex-direction:row-reverse}.gv-edge-e:hover .gv-edge-label{padding-left:15px;padding-right:0}.gv-edge-e:focus-visible .gv-edge-label{padding-left:15px;padding-right:0}.gv-edge-n{top:14px;left:50%;transform:translate(-50%)}.gv-edge-s{bottom:calc(14px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%)}.gv-edge-w{top:50%;left:14px;transform:translateY(-50%)}.gv-edge-e{top:50%;right:14px;transform:translateY(-50%)}.gridview[data-moving] .gv-edge,.gridview[data-moving] .gv-cell,.gridview[data-moving] .gv-homebtn{pointer-events:none}.gv-homebtn{z-index:120;font-family:var(--font-mono);letter-spacing:.16em;color:var(--ink);background:color-mix(in oklab, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(130%);border:1px solid var(--line);box-shadow:var(--shadow-hud);border-radius:10px;align-items:center;gap:9px;padding:10px 16px;font-size:11.5px;transition:color .18s,border-color .18s,background .18s;display:inline-flex;position:fixed;top:14px;left:14px}.gv-homebtn:hover{color:var(--ink);border-color:var(--accent);background:var(--accent-soft)}.gv-homebtn span{color:var(--accent);font-size:13px}.gv-corner-map{z-index:120;background:color-mix(in oklab, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(130%);border:1px solid var(--line);box-shadow:var(--shadow-hud);border-radius:10px;padding:9px;position:fixed;top:14px;right:14px}.gridview[data-room=home] .gv-corner-map{display:none}.gv-edgehint{z-index:125;pointer-events:none;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:color-mix(in oklab, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(10px);border:1px solid var(--accent);border-radius:var(--r-ui);box-shadow:var(--shadow-hud);padding:8px 14px;font-size:10.5px;animation:.18s ease-out gvHintIn;position:fixed;left:50%;transform:translate(-50%)}.gv-edgehint-n{top:64px}.gv-edgehint-s{bottom:calc(64px + env(safe-area-inset-bottom,0px))}@keyframes gvHintIn{0%{opacity:0;transform:translate(-50%)translateY(0)}to{opacity:1}}.gv-caption{left:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:110;font-family:var(--font-mono);letter-spacing:.12em;color:var(--ink-faint);background:color-mix(in oklab, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--r-ui);box-shadow:var(--shadow-hud);padding:8px 12px;font-size:10px;position:fixed}.gv-live{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gv-map{justify-content:center;display:grid;position:relative}.gv-map.sm{grid-template-rows:repeat(5,10px);grid-template-columns:repeat(5,14px);gap:3px}.gv-map.lg{grid-template-rows:repeat(5,minmax(52px,auto));grid-template-columns:repeat(5,minmax(64px,1fr));gap:10px}.gv-map-axis{pointer-events:none;background:#3ebfc62e;position:absolute}.gv-map-axis.h{height:1px;top:50%;left:0;right:0}.gv-map-axis.v{width:1px;top:0;bottom:0;left:50%}.gv-map.sm .gv-map-axis{background:#3ebfc638}.gv-cell{z-index:1;border:1px solid var(--line);background:var(--bg-raised);border-radius:2px;padding:0;transition:border-color .18s,background .18s,box-shadow .18s;position:relative}.gv-cell:hover{border-color:var(--accent);background:var(--accent-soft)}.gv-cell.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent), 0 0 18px #3ebfc638}.gv-map.sm .gv-cell.on{background:var(--accent)}.gv-map.lg .gv-cell{border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:52px;padding:8px 4px;display:flex}.gv-cell-code{font-family:var(--font-mono);letter-spacing:.18em;color:var(--accent);font-size:10px}.gv-cell-name{font-family:var(--font-mono);letter-spacing:.07em;color:var(--ink-muted);white-space:normal;text-align:center;font-size:10px;line-height:1.4}.gv-cell:hover .gv-cell-name{color:var(--ink)}.gv-cell-here{font-family:var(--font-mono);letter-spacing:.12em;color:var(--accent);font-size:8.5px;animation:2.2s ease-in-out infinite gvHere}@keyframes gvHere{0%,to{opacity:1}50%{opacity:.35}}.gv-home{min-height:100%;max-width:var(--container);padding:clamp(66px, 8.5vh, 100px) var(--pad) clamp(56px, 8vh, 92px);grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr);align-items:center;gap:clamp(36px,5vw,72px);margin:0 auto;display:grid}.gv-boot .gv-home-id>*,.gv-boot .gv-home-rail>*{animation:.5s cubic-bezier(.2,.6,.2,1) both gvRise}.gv-boot .gv-home-id>:first-child{animation-delay:30ms}.gv-boot .gv-home-id>:nth-child(2){animation-delay:80ms}.gv-boot .gv-home-id>:nth-child(3){animation-delay:.13s}.gv-boot .gv-home-id>:nth-child(4){animation-delay:.18s}.gv-boot .gv-home-id>:nth-child(5){animation-delay:.23s}.gv-boot .gv-home-id>:nth-child(6){animation-delay:.27s}.gv-boot .gv-home-id>:nth-child(7){animation-delay:.31s}.gv-boot .gv-home-rail>:first-child{animation-delay:.14s}.gv-boot .gv-home-rail>:nth-child(2){animation-delay:.25s}@keyframes gvRise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.gv-home-rail{flex-direction:column;justify-self:end;gap:18px;max-width:378px;display:flex}.gv-home-name{font-family:var(--font-display);letter-spacing:-.018em;font-variation-settings:"opsz" 144;margin:0 0 20px;font-size:clamp(50px,6vw,84px);font-weight:400;line-height:1}.gv-home-role{color:var(--ink);align-items:center;gap:12px;margin:0 0 16px;font-size:17px;font-weight:540;line-height:1.5;display:flex}.gv-home-tag{font-family:var(--font-display);letter-spacing:-.01em;font-variation-settings:"opsz" 110;margin:0 0 22px;font-size:clamp(23px,2.3vw,31px);font-weight:380;line-height:1.2}.gv-home-tag em{color:var(--accent);font-style:italic;font-weight:340}.gv-home .hero-sub{margin-bottom:26px}.gv-home .hero-meta{margin-bottom:30px}.gv-home-fig{border:1px solid var(--line);background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-card);box-shadow:var(--shadow-card);margin:0;padding:14px;position:relative}.gv-home-fig img{border-radius:calc(var(--r-card) - 7px);filter:saturate(.88)contrast(1.02);width:100%;height:auto;transition:filter .45s;display:block}.gv-home-fig:hover img{filter:saturate()contrast(1.02)}.gv-home-map{border:1px solid var(--line);background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-card);box-shadow:var(--shadow-card);min-width:0;padding:12px 12px 9px;position:relative}.gv-compass{pointer-events:none;z-index:0;font-family:var(--font-mono);letter-spacing:.12em;color:color-mix(in oklab, var(--accent) 60%, var(--ink-faint));flex-direction:column;grid-area:1/1/3/3;place-self:center;align-items:center;font-size:9px;line-height:1.25;display:flex}.gv-compass:before{content:"↑";color:var(--accent-deep);font-size:11px}.gv-map-hint{text-align:center;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-top:8px;font-size:9.5px;display:block}.gv-home-map .gv-map.lg{grid-template-rows:repeat(5,minmax(30px,auto));grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.gv-home-map .gv-map.lg .gv-cell{gap:2px;min-height:30px;padding:4px 2px}.gv-home-map .gv-cell-name{letter-spacing:.03em;font-size:8px}.gv-home-map .gv-cell-code{font-size:8.5px}.gv-home-map .gv-cell-here{font-size:7px}.gv-xref{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);border:1px dashed var(--line);border-radius:var(--r-ui);align-items:baseline;gap:12px;margin-top:30px;padding:11px 16px;font-size:11.5px;transition:color .18s,border-color .18s,background .18s,transform .18s;display:inline-flex}.gv-xref:hover{color:var(--ink);border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.gv-xref-dir{color:var(--accent);letter-spacing:.16em;white-space:nowrap}.sw-body .gv-xref{margin-top:20px}.gv-pubs{gap:22px;display:grid}.gv-pub{border:1px solid var(--line);background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:clamp(24px,3vw,36px);position:relative}.gv-pub-title{font-family:var(--font-display);letter-spacing:-.01em;max-width:760px;font-size:clamp(20px,2.4vw,27px);font-weight:400;line-height:1.25}.gv-pub-meta{font-family:var(--font-mono);letter-spacing:.05em;color:var(--ink-faint);margin-top:12px;font-size:11.5px}.gv-pub-links{flex-wrap:wrap;gap:8px 22px;margin-top:16px;display:flex}.gv-pub-link,.gv-pub-status{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);align-items:center;gap:6px;font-size:11px;display:inline-flex}.gv-pub-status{color:var(--ink-faint)}.gv-pub-link:hover{text-underline-offset:3px;text-decoration:underline}.gv-pub-extra{margin-top:26px}.gv-constellation{margin-top:clamp(70px,10vh,120px);scroll-margin-top:70px}.gv-family{margin-top:8px}.gv-family+.gv-family{margin-top:36px}.gv-adapters{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.gv-adapter{border:1px solid var(--line);background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-ui);flex-direction:column;gap:7px;padding:18px 20px;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;display:flex;position:relative}.gv-adapter:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px);box-shadow:0 14px 30px -18px #000000b3}.gv-adapter .adapter-name{font-size:13px}.gv-adapter .adapter-desc{font-size:11px}.gv-route{position:relative}.gv-route-next{font-family:var(--font-display);letter-spacing:.01em;color:color-mix(in oklab, var(--accent) 72%, var(--ink));transform-origin:0 100%;align-items:baseline;gap:9px;margin:0 0 24px 26px;font-size:17px;font-style:italic;font-weight:360;display:inline-flex;position:relative;transform:rotate(-1.3deg)}.gv-note-caret{font-family:var(--font-mono);color:var(--accent-deep);align-self:flex-end;font-size:13px;font-style:normal;transform:translateY(4px)}.gv-note-text{border-bottom:1px dashed color-mix(in oklab, var(--accent) 45%, transparent);padding-bottom:3px}.gv-route-next:before{content:"";border:2px dashed var(--accent-deep);background:var(--bg);border-radius:50%;width:9px;height:9px;position:absolute;top:50%;left:-31px;transform:translateY(-50%)}.gv-route-list{margin-left:26px;position:relative}.gv-route-track,.gv-route-line{pointer-events:none;width:2px;position:absolute;top:-36px;bottom:26px;left:-27px}.gv-route-track{background:repeating-linear-gradient(180deg, color-mix(in oklab, var(--accent-deep) 32%, transparent) 0 7px, transparent 7px 14px)}.gv-route-line{background:color-mix(in oklab, var(--accent-deep) 80%, transparent);transform-origin:top}.gv-route-anim .gv-route-line{transform:scaleY(0)}.gv-stop{position:relative}.gv-stop:before{content:"";background:var(--bg);border:2px solid var(--accent-deep);border-radius:50%;width:9px;height:9px;position:absolute;top:32px;left:-31px}.gv-stop:first-child:after{content:"NOW";font-family:var(--font-mono);letter-spacing:.14em;color:var(--accent);transform-origin:50%;font-size:8.5px;position:absolute;top:36px;left:-56px;transform:rotate(-90deg)}.gv-stop:first-child:before{border-color:var(--accent);box-shadow:0 0 10px #3ebfc666}.gv-route-anim .gv-stop{opacity:.32;filter:saturate(.35);transition:opacity .5s,filter .5s}.gv-route-anim .gv-stop.lit{opacity:1;filter:none}.gv-route-anim .gv-stop.lit:before{background:var(--accent);border-color:var(--accent);animation:.7s ease-out gvNodePing}@keyframes gvNodePing{0%{box-shadow:0 0 #3ebfc68c}to{box-shadow:0 0 0 13px #3ebfc600}}.gv-route-anim .gv-stop.lit:first-child:before{box-shadow:0 0 10px #3ebfc666}.gv-arc{border:1px solid var(--line-faint);background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-card);box-shadow:var(--shadow-card);margin-top:clamp(40px,6vh,64px);padding:clamp(16px,2.5vw,28px);position:relative}.gv-arc svg{width:100%;height:auto;display:block}.gv-arc-path{fill:none;stroke:#3ebfc68c;stroke-width:1.4px;stroke-dasharray:10 8}.gv-arc-dot{fill:var(--accent)}.gv-arc-dot.hollow{fill:var(--bg);stroke:var(--accent);stroke-width:2px}.gv-arc-mid{font-family:var(--font-mono);letter-spacing:.18em;fill:#3ebfc6e6;font-size:12px}.gv-arc-city{font-family:var(--font-mono);letter-spacing:.18em;fill:var(--ink-muted);font-size:13px}.gv-plates{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:clamp(18px,2.5vw,30px);display:grid}.gv-plate{border:1px solid var(--line-faint);background:var(--card-sheen), var(--bg-raised);border-radius:var(--r-ui);box-shadow:var(--shadow-card);margin:0;padding:10px;transition:transform .3s,border-color .3s}.gv-plate:nth-child(odd){transform:rotate(-.7deg)}.gv-plate:nth-child(2n){transform:rotate(.7deg)}.gv-plate:hover{border-color:var(--line);transform:none}.gv-plate img,.gv-plate video{object-fit:cover;border-radius:calc(var(--r-ui) - 4px);filter:saturate(.9);width:100%;height:230px;transition:filter .45s}.gv-plate:hover img,.gv-plate:hover video{filter:saturate()}.gv-plate figcaption{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-top:9px;font-size:10px}@media (max-width:760px){.gv-edge{letter-spacing:.1em;min-width:38px;min-height:38px;font-size:10px}.gv-edge-arrow{width:38px;height:38px;font-size:14px}.gv-edge-n .gv-edge-label,.gv-edge-s .gv-edge-label{opacity:1;text-overflow:ellipsis;max-width:160px;padding-right:13px;overflow:hidden}.gv-edge-n{top:10px}.gv-edge-s{bottom:calc(12px + env(safe-area-inset-bottom,0px))}.gv-edge-w,.gv-edge-e{top:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));min-height:44px;transform:none}.gv-edge-w{left:8px}.gv-edge-e{right:8px}.gv-edge-w .gv-edge-arrow,.gv-edge-e .gv-edge-arrow{width:30px;height:44px}.gv-edge-w .gv-edge-label,.gv-edge-e .gv-edge-label{opacity:1;white-space:normal;letter-spacing:.08em;text-align:left;max-width:96px;padding:0 11px 0 0;font-size:8.5px;line-height:1.35}.gv-edge-e .gv-edge-label{text-align:right;padding:0 0 0 11px}.gv-homebtn{padding:8px 11px;font-size:10px;top:10px;left:10px}.gv-corner-map{padding:7px;top:10px;right:10px}.gv-map.sm{grid-template-rows:repeat(5,8px);grid-template-columns:repeat(5,11px);gap:2px}.gv-caption{display:none}.gv-home{grid-template-columns:1fr;align-content:start;align-items:start;gap:30px;padding-top:84px}.gv-home-rail{justify-self:stretch;gap:16px;max-width:none}.gv-home-fig{max-width:330px;padding:11px}.gv-home-name{font-size:clamp(42px,12vw,54px)}.gv-home-role{font-size:15.5px}.gv-home-role .kicker-dash{flex:none;width:26px}.gv-home-tag{font-size:clamp(20px,5.8vw,24px)}.gv-home-map{padding:11px 10px 9px}.gv-map-hint{letter-spacing:.1em;margin-top:8px;font-size:8px}.gv-home-map .gv-map.lg{gap:5px}.gv-home-map .gv-map.lg .gv-cell{min-height:38px;padding:4px 2px}.gv-cell-name{letter-spacing:.02em;font-size:7.5px}.gv-cell-code{font-size:8.5px}.gv-cell-here{font-size:6.5px}.gv-inner .section{padding-top:64px}.gv-foot{padding-bottom:76px}.gv-stop:first-child:after{display:none}.gv-route-next{margin-left:18px;font-size:15px}.gv-route-next:before{left:-23px}.gv-route-list{margin-left:18px}.gv-route-track,.gv-route-line{left:-19px}.gv-stop:before{left:-23px}}@media (max-width:380px){.gv-edge-n .gv-edge-label,.gv-edge-s .gv-edge-label{white-space:nowrap;max-width:120px}}@media (prefers-reduced-motion:reduce){.gv-roomwrap.gv-out,.gv-roomwrap.gv-in,.gv-cell-here{animation:none}.gv-plate{transition:none}.gv-boot .gv-home-id>*,.gv-boot .gv-home-rail>*{animation:none}.gv-route-line{transform:none!important}.gv-route-anim .gv-stop{opacity:1;filter:none;transition:none}.gv-route-anim .gv-stop.lit:before{animation:none}}
/*$vite$:1*/