@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");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:Tinos;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/tinos-cyrillic-ext-400-normal-DdITlKdb.woff2)format("woff2"),url(/assets/tinos-cyrillic-ext-400-normal-l41d2z3M.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/tinos-cyrillic-400-normal-kS2dpklR.woff2)format("woff2"),url(/assets/tinos-cyrillic-400-normal-BInRL8Bn.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/tinos-greek-ext-400-normal-1tgngtmV.woff2)format("woff2"),url(/assets/tinos-greek-ext-400-normal-BY5Lx0CY.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/tinos-greek-400-normal-BKmklotr.woff2)format("woff2"),url(/assets/tinos-greek-400-normal-D6DCdDEC.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/tinos-hebrew-400-normal-B17QmYDt.woff2)format("woff2"),url(/assets/tinos-hebrew-400-normal-DhGqnHb1.woff)format("woff");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/tinos-vietnamese-400-normal-CrJeqB3M.woff2)format("woff2"),url(/assets/tinos-vietnamese-400-normal-BYl6xqrz.woff)format("woff");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:Tinos;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/tinos-latin-ext-400-normal-C68eX7xt.woff2)format("woff2"),url(/assets/tinos-latin-ext-400-normal-BUQPNqi9.woff)format("woff");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:Tinos;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/tinos-latin-400-normal-rilFpyjL.woff2)format("woff2"),url(/assets/tinos-latin-400-normal-B05awSIM.woff)format("woff");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:Tinos;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/tinos-cyrillic-ext-700-normal-CE86bzrR.woff2)format("woff2"),url(/assets/tinos-cyrillic-ext-700-normal-yBtNmQaZ.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/tinos-cyrillic-700-normal-DGklj3DM.woff2)format("woff2"),url(/assets/tinos-cyrillic-700-normal-HYhic5tl.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/tinos-greek-ext-700-normal-nVGGTb9r.woff2)format("woff2"),url(/assets/tinos-greek-ext-700-normal-Bu9AJavU.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/tinos-greek-700-normal-DZiY5218.woff2)format("woff2"),url(/assets/tinos-greek-700-normal-CAsZoNo7.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/tinos-hebrew-700-normal-BNVAlJ0i.woff2)format("woff2"),url(/assets/tinos-hebrew-700-normal-B737la7J.woff)format("woff");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Tinos;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/tinos-vietnamese-700-normal-CmLX0U_H.woff2)format("woff2"),url(/assets/tinos-vietnamese-700-normal-bKCZ5S7w.woff)format("woff");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:Tinos;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/tinos-latin-ext-700-normal-CesJqEpY.woff2)format("woff2"),url(/assets/tinos-latin-ext-700-normal-nLvPiDAe.woff)format("woff");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:Tinos;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/tinos-latin-700-normal-qGf2y18O.woff2)format("woff2"),url(/assets/tinos-latin-700-normal-CjcRkLdR.woff)format("woff");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{--canvas:#080a0c;--ink:#f1eee7;--muted:#aaa59d;--quiet:#706c66;--line:#f1eee726;--accent:#e65442;--accent-ink:#180704;--header-bg:#080a0cd1;--sans:"Space Grotesk Variable", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--serif:"Tinos", "Georgia", serif}*{box-sizing:border-box}html,body{background:var(--canvas);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);font-family:var(--mono);border-radius:4px;padding:10px 16px;font-size:13px;text-decoration:none;transition:top .2s;position:absolute;top:-100px;left:16px}.skip-link:focus{top:16px}#scene{z-index:0;display:block;position:fixed;inset:0}.site-header{z-index:20;justify-content:flex-end;align-items:center;padding:18px 28px;display:flex;position:fixed;inset:0 0 auto}body[data-mode=simple] .site-header{background:var(--header-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.site-header nav{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;gap:28px;padding:9px 18px;font-size:16px;display:flex}body[data-mode=simple] .site-header nav{padding:0}.site-header nav a{color:var(--muted);text-decoration:none;transition:color .2s}.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--ink)}body[data-mode=full] .site-header nav a{color:#0000}.hud{z-index:15;font-family:var(--mono);letter-spacing:.08em;color:var(--quiet);flex-direction:column;align-items:center;gap:10px;font-size:10px;display:flex;position:fixed;top:50%;right:24px;transform:translateY(-50%)}.hud-track{background:var(--line);width:2px;height:140px;position:relative;overflow:hidden}.hud-track i{background:var(--accent);height:0%;display:block;position:absolute;inset:auto 0 0}.hero-copy{z-index:10;text-align:center;pointer-events:none;opacity:1;flex-direction:column;justify-content:flex-end;align-items:center;padding:0 24px 96px;display:flex;position:fixed;inset:0}.hero-copy>*{pointer-events:auto}.hero-name-simple{display:none}body[data-mode=simple] .hero-name-simple{font-family:var(--serif);letter-spacing:-.01em;opacity:0;margin:0 0 22px;font-size:clamp(40px,12vw,88px);font-weight:700;line-height:1.02;animation:.9s cubic-bezier(.16,1,.3,1) .15s forwards hero-name-in;display:block;transform:translateY(14px)}@media (prefers-reduced-motion:reduce){body[data-mode=simple] .hero-name-simple{opacity:1;animation:none;transform:none}}@keyframes hero-name-in{to{opacity:1;transform:translateY(0)}}.hero-role{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:13px}.hero-thesis{max-width:32em;color:var(--ink);margin:0 0 26px;font-size:clamp(16px,2.4vw,20px)}.hero-actions{align-items:center;gap:14px;display:flex}body[data-mode=simple] .hero-role,body[data-mode=simple] .hero-thesis,body[data-mode=simple] .hero-actions{opacity:0;animation:.8s cubic-bezier(.16,1,.3,1) forwards hero-name-in;transform:translateY(14px)}body[data-mode=simple] .hero-role{animation-delay:.4s}body[data-mode=simple] .hero-thesis{animation-delay:.52s}body[data-mode=simple] .hero-actions{animation-delay:.64s}@media (prefers-reduced-motion:reduce){body[data-mode=simple] .hero-role,body[data-mode=simple] .hero-thesis,body[data-mode=simple] .hero-actions{opacity:1;animation:none;transform:none}}.primary-action{background:var(--accent);color:var(--accent-ink);font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:2px;padding:13px 22px;font-size:13px;font-weight:700;text-decoration:none}.secondary-action{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:13px 6px;font-size:13px;text-decoration:none}.secondary-action:hover,.primary-action:hover{opacity:.88}.work-panel{z-index:11;opacity:0;pointer-events:none;align-items:center;padding:0 8vw;display:flex;position:fixed;inset:0}#work-panel{--waypoint-x:58%;--waypoint-y:28%;--timeline-dir:1}#honeypot-panel{--waypoint-x:26%;--waypoint-y:60%;--timeline-dir:-1}#lab-panel{--waypoint-x:68%;--waypoint-y:80%;--timeline-dir:1}.project-timeline-line{z-index:10;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .4s;position:fixed;inset:0}.timeline-dot{left:var(--waypoint-x,50%);top:var(--waypoint-y,50%);transform:translate(-50%, -50%) scale(calc(1 + var(--pulse,0) * .7));width:38px;height:38px;font-family:var(--mono);letter-spacing:.05em;color:var(--accent);z-index:12;pointer-events:none;background:#0a0908e6;border:1px solid #f1eee766;border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute}.timeline-dot:after{content:"";border:1px solid var(--accent);transform:scale(calc(1 + var(--pulse,0) * 1.8));opacity:calc(var(--pulse,0) * .75);pointer-events:none;border-radius:50%;position:absolute;inset:-1px}.timeline-project .case-page-content{max-width:400px;position:relative}body[data-mode=full] .timeline-project .case-page-content{left:var(--waypoint-x);transform:translateX(calc(-50% - var(--timeline-dir,1) * 50%));position:absolute}.timeline-project .work-panel-eyebrow{transform:translate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * var(--timeline-dir,1) * 55vw), calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * -42vh)) rotate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * var(--timeline-dir,1) * -10deg))}.timeline-project .stop-fx{transform:translate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * var(--timeline-dir,1) * 42vw), calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * 46vh))}.timeline-project h2{transform:translate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * var(--timeline-dir,1) * 78vw), calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * -14vh)) rotate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * var(--timeline-dir,1) * 7deg))}.timeline-project .case-page-lead{transform:translate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * var(--timeline-dir,1) * -52vw), calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * 32vh))}.timeline-project .work-panel-facts{transform:translateY(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * 62vh))}.timeline-project .case-link,.timeline-project .work-panel-note{transform:translate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * var(--timeline-dir,1) * 60vw), calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * 52vh))}.case-page-index{--idx-dx:0px;--idx-dy:70px;--idx-rot:0deg;--idx-scale-from:1;--idx-exit-dx:0px;--idx-exit-dy:0px;--idx-exit-rot:0deg;--idx-exit-scale-to:1;transform:translate(calc(var(--idx-dx) * (1 - var(--enter-t,1)) + var(--idx-exit-dx) * var(--exit-t,0)), calc(-50% + var(--idx-dy) * (1 - var(--enter-t,1)) + var(--idx-exit-dy) * var(--exit-t,0))) rotate(calc(var(--idx-rot) * (1 - var(--enter-t,1)) + var(--idx-exit-rot) * var(--exit-t,0))) scale(calc(1 - (1 - var(--idx-scale-from)) * (1 - var(--enter-t,1)) + (var(--idx-exit-scale-to) - 1) * var(--exit-t,0)));font-family:var(--serif);color:#0000;-webkit-text-stroke:1px var(--line-strong,#f1eee72e);-webkit-user-select:none;user-select:none;z-index:-1;font-size:clamp(140px,26vw,420px);font-weight:700;line-height:1;position:absolute;top:50%;left:2vw}.case-page-echo{--echo-dx:0px;--echo-dy:0px;--echo-rot:0deg;--echo-scale-from:1.4;--echo-exit-dx:0px;--echo-exit-dy:0px;--echo-exit-rot:0deg;--echo-exit-scale-to:1;transform:translate(calc(var(--echo-dx) * (1 - var(--enter-t,1)) + var(--echo-exit-dx) * var(--exit-t,0)), calc(-50% + var(--echo-dy) * (1 - var(--enter-t,1)) + var(--echo-exit-dy) * var(--exit-t,0))) rotate(calc(var(--echo-rot) * (1 - var(--enter-t,1)) + var(--echo-exit-rot) * var(--exit-t,0))) scale(calc(1 + (var(--echo-scale-from) - 1) * (1 - var(--enter-t,1)) + (var(--echo-exit-scale-to) - 1) * var(--exit-t,0)));clip-path:inset(-20% calc((1 - var(--enter-t,1)) * 100%) -20% 0);font-family:var(--serif);color:var(--ink);opacity:.88;text-shadow:0 0 60px #e6544238;white-space:nowrap;-webkit-user-select:none;user-select:none;z-index:-1;font-size:clamp(90px,15vw,240px);font-weight:700;line-height:1;position:absolute;top:50%;right:4vw}.case-page-content{--content-dx:-36px;--content-dy:0px;--content-exit-dx:0px;--content-exit-dy:0px;max-width:640px;transform:translate(calc(var(--content-dx) * (1 - var(--enter-t,1)) + var(--content-exit-dx) * var(--exit-t,0)), calc(var(--content-dy) * (1 - var(--enter-t,1)) + var(--content-exit-dy) * var(--exit-t,0)))}#route-panel .case-page-index{--idx-dx:70vw;--idx-dy:0px;--idx-exit-dx:70vw}#route-panel .case-page-content{--content-dx:-65vw;--content-dy:40vh;--content-exit-dx:-65vw;--content-exit-dy:40vh}#about-panel .case-page-index{--idx-rot:-40deg;--idx-scale-from:.35;--idx-dy:0px;--idx-exit-rot:-50deg;--idx-exit-scale-to:.25}#about-panel .case-page-content{--content-dx:42px;--content-dy:-38px}#about-panel .case-page-content h2{transform:translate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * -85vw), calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * -55vh)) rotate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * -12deg))}#about-panel .case-page-content .case-page-lead{transform:translate(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * 70vw), calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * 45vh));opacity:calc(1 - var(--exit-t,0))}#about-panel .case-page-content .work-panel-facts{transform:translateY(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * 60vh));opacity:calc(1 - var(--exit-t,0))}#contact-panel .case-page-index{--idx-scale-from:.15;--idx-dy:36px;--idx-exit-scale-to:.1}#contact-panel .case-page-content{--content-dx:60vw;--content-dy:55vh;--content-exit-dx:60vw;--content-exit-dy:55vh;max-width:none}.contact-headline{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 34px;font-size:clamp(48px,8.6vw,148px);font-weight:700;line-height:1.02}.contact-body{max-width:560px}.terminal-panel{border:1px solid var(--line);background:#f1eee708;border-radius:2px;overflow:hidden}.terminal-panel-bar{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 16px;display:flex}.terminal-status-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:2.4s ease-in-out infinite terminal-pulse;box-shadow:0 0 8px #e65442b3}@keyframes terminal-pulse{0%,to{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.terminal-panel-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--quiet);font-size:11px}.terminal-panel-body{padding:18px 16px 16px}.terminal-line{font-family:var(--mono);letter-spacing:.01em;color:var(--muted);margin:0 0 10px;font-size:13px}.terminal-links{border-top:1px solid var(--line);flex-direction:column;margin-top:14px;display:flex}.terminal-link{font-family:var(--mono);color:var(--ink);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:13px 4px;font-size:14px;text-decoration:none;transition:color .2s,padding-left .2s;display:flex}.terminal-link:last-child{border-bottom:none}.terminal-link-arrow{color:var(--quiet);transition:color .2s,transform .2s}.terminal-link:hover,.terminal-link:focus-visible{color:var(--accent);padding-left:10px}.terminal-link:hover .terminal-link-arrow,.terminal-link:focus-visible .terminal-link-arrow{color:var(--accent);transform:translate(2px,-2px)}.work-panel-eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0 0 18px;font-size:12px}.stop-fx{height:1.3em;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:0 0 18px;font-weight:700;position:relative}.stop-fx[data-fx=roll]{height:1.1em;font-size:clamp(13px,1.4vw,15px);overflow:hidden}.fx-roll-track{--morph-t:0;transform:translateY(calc(var(--morph-t) * -1.1em));flex-direction:column;display:flex}.fx-roll-track span{height:1.1em;color:var(--quiet);align-items:center;line-height:1;display:flex}.fx-roll-track span:last-child{color:var(--accent)}.stop-fx[data-fx=converge]{height:1.5em;font-size:clamp(13px,1.4vw,15px)}.fx-converge-layer{white-space:nowrap;position:absolute;top:0;left:0}.stop-fx[data-fx=scramble]{letter-spacing:.12em;font-size:clamp(13px,1.4vw,15px)}.stop-fx[data-fx=strike]{text-transform:none;letter-spacing:normal;height:auto;min-height:2.6em;font-size:clamp(13px,1.3vw,15px);font-weight:600}.fx-strike-from{color:var(--quiet);display:inline-block;position:relative}.fx-strike-from:after{content:"";background:var(--accent);width:100%;height:1px;transform:scaleX(var(--strike-t,0));transform-origin:0;position:absolute;top:50%;left:0}.fx-strike-to{color:var(--accent);opacity:var(--lesson-t,0);transform:translateY(calc((1 - var(--lesson-t,0)) * 6px));margin-top:6px;display:block}.stop-fx[data-fx=flip]{height:1.3em;font-size:clamp(15px,1.7vw,19px);display:flex}.fx-flip-letter{width:.72em;height:1.3em;display:inline-block;position:relative;overflow:hidden}.fx-flip-letter-track{--morph-t:0;transform:translateY(calc(var(--morph-t) * -1.3em));flex-direction:column;display:flex}.fx-flip-letter-track span{justify-content:center;align-items:center;height:1.3em;line-height:1;display:flex}.fx-flip-letter-track span:first-child{color:var(--quiet)}.fx-flip-letter-track span:last-child{color:var(--accent)}.route-map-stage{perspective:1600px;z-index:-1;width:min(78vw,1180px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.route-map{transform-style:preserve-3d;transform:rotateX(56deg) rotateZ(-5deg) translate(calc(var(--route-cam-x,0) * -13%), calc(var(--route-cam-y,0) * -13%)) scale(calc(1 + var(--route-cam-zoom,0) * .22));transition:none}.route-map svg{width:100%;height:auto;display:block;overflow:visible}.route-node circle{fill:var(--accent)}.route-node text{font-family:var(--mono);letter-spacing:.04em;fill:var(--ink);font-size:13px;font-weight:700}.route-node-sub{letter-spacing:.02em;fill:var(--muted);font-size:9px;font-weight:400}#routeMarker{fill:var(--ink);filter:drop-shadow(0 0 8px #e65442d9)}@media (width<=1100px){body[data-mode=full] .route-map-stage{display:none}}.about-word-wall{z-index:-1;color:var(--ink);opacity:.1;pointer-events:none;gap:clamp(4px,1.1vw,16px);display:grid;position:absolute;top:4%;left:-8%;right:-8%;overflow:hidden;transform:rotate(-3.5deg)scale(1.08)}.word-wall-row{white-space:nowrap;overflow:hidden}.word-wall-track{width:max-content;display:inline-flex;transform:translate(0)}.word-wall-track span{font-family:var(--sans);letter-spacing:-.04em;flex-shrink:0;align-items:center;font-size:clamp(48px,8.5vw,140px);font-weight:700;line-height:.86;display:inline-flex}.word-wall-track i{color:var(--accent);font-style:normal;font-family:var(--mono);padding:0 .22em;font-size:.42em}body[data-mode=simple] .about-word-wall{display:none}.about-portrait{--portrait-dx:0px;--portrait-dy:0px;--portrait-rot:-6deg;--portrait-scale-from:.2;--portrait-exit-scale-to:3;transform:translate(calc(var(--portrait-dx) * (1 - var(--enter-t,1))), calc(-50% + var(--portrait-dy) * (1 - var(--enter-t,1)))) rotate(calc(var(--portrait-rot) * (1 - var(--enter-t,1)))) scale(calc(1 - (1 - var(--portrait-scale-from)) * (1 - var(--enter-t,1)) + (var(--portrait-exit-scale-to) - 1) * var(--exit-t,0)));filter:blur(calc((var(--exit-t,0) + (1 - var(--enter-t,1))) * 7px));perspective:900px;z-index:-1;width:min(15vw,210px);position:absolute;top:50%;right:6vw}.about-portrait-frame{will-change:transform;width:100%;position:relative}.about-portrait-corner{border:1px solid var(--accent);width:16px;height:16px;position:absolute}.about-portrait-corner--tl{border-width:1px 0 0 1px;top:-10px;left:-10px}.about-portrait-corner--tr{border-width:1px 1px 0 0;top:-10px;right:-10px}.about-portrait-corner--bl{border-width:0 0 1px 1px;bottom:-10px;left:-10px}.about-portrait-corner--br{border-width:0 1px 1px 0;bottom:-10px;right:-10px}.about-portrait-fill{width:100%;height:auto;display:block}@media (width<=1100px){.about-portrait{display:none}}.magnetic-text{display:inline-block}.magnetic-text .ml{white-space:pre;will-change:transform;transition:transform .15s ease-out,color .15s ease-out;display:inline-block}.contact-links{flex-wrap:wrap;gap:14px;display:flex}.work-panel h2{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 22px;font-size:clamp(34px,5.4vw,68px);font-weight:700;line-height:1.04}.case-page-lead{font-family:var(--serif);color:var(--muted);max-width:46ch;margin:0 0 40px;font-size:clamp(16px,1.6vw,20px);line-height:1.55}.work-panel-facts{border-top:1px solid var(--line);text-align:left;grid-template-columns:repeat(3,minmax(0,190px));gap:24px;margin-bottom:34px;padding-top:26px;display:grid}.work-panel-facts span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--quiet);margin-bottom:8px;font-size:10px;display:block}#about-panel .work-panel-facts{grid-template-columns:repeat(2,minmax(0,190px))}.work-panel-facts p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.55}.case-link{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);border:1px solid var(--line);border-radius:2px;align-items:center;gap:8px;padding:12px 20px;font-size:13px;text-decoration:none;transition:border-color .2s,background .2s;display:inline-flex}.case-link:hover,.case-link:focus-visible{border-color:var(--accent);background:var(--accent-faint,#e6544214)}.work-panel-note{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--quiet);margin:18px 0 0;font-size:11px}body[data-mode=simple] .case-page-index,body[data-mode=simple] .case-page-echo,body[data-mode=simple] .about-portrait,body[data-mode=simple] .timeline-dot,body[data-mode=simple] .project-timeline-line,body[data-mode=simple] .projects-title{display:none}body[data-mode=simple] .stop-fx{margin:0 auto 18px;position:static}body[data-mode=simple] .route-map-stage{z-index:auto;aspect-ratio:1;width:min(72vw,420px);margin:0 auto 32px;position:static;overflow:hidden;transform:none}@media (prefers-reduced-motion:reduce){body[data-mode=simple] .stop-fx,body[data-mode=simple] .route-map-stage{display:none}}body[data-mode=simple] .simple-reveal{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(18px)}body[data-mode=simple] .simple-reveal-in{opacity:1;transform:translateY(0)}body[data-mode=simple] .work-panel{text-align:left;padding:64px 24px}body[data-mode=full]{overscroll-behavior:none;height:100vh;overflow:hidden}body[data-mode=full] .return-top{display:none}.scroll-track{z-index:1;height:420vh;position:relative}body[data-mode=full] .scroll-track{display:none}.projects-title{z-index:18;text-align:center;pointer-events:none;background:rgba(8, 10, 12, var(--title-scrim,0));flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:fixed;inset:0}.projects-title-eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.22em;color:var(--accent);opacity:var(--title-t,0);transform:translateY(calc((1 - var(--title-t,0)) * 14px));margin:0;font-size:clamp(12px,1.3vw,14px)}.projects-title-h2{font-family:var(--serif);color:var(--ink);opacity:var(--title-t,0);text-shadow:0 0 60px #0009;transform:translate(calc(var(--title-parallax-x,0) * 26px), calc(var(--title-parallax-y,0) * -18px)) rotate(calc(var(--title-parallax-x,0) * -1.4deg));margin:0;font-size:clamp(56px,12vw,168px);font-weight:400;line-height:.94}.tl{transform:translate(calc((var(--title-exit-t,0) + (1 - var(--title-enter-t,1))) * var(--lx,0px)), calc((var(--title-exit-t,0) + (1 - var(--title-enter-t,1))) * var(--ly,0px))) rotate(calc((var(--title-exit-t,0) + (1 - var(--title-enter-t,1))) * var(--lr,0deg)));display:inline-block}.loop-flash{z-index:30;background:var(--canvas);opacity:0;pointer-events:none;position:fixed;inset:0}.return-top{z-index:5;text-align:center;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-top:1px solid var(--line);padding:64px 24px 90px;font-size:13px;text-decoration:none;display:block;position:relative}body[data-mode=simple] #scene{display:none}body[data-mode=simple] .hero-copy,body[data-mode=simple] .work-panel{pointer-events:auto;flex-direction:column;justify-content:center;min-height:92vh;position:relative;opacity:1!important}body[data-mode=simple] .scroll-track{height:auto}body[data-mode=simple] .hud{display:none}@media (width<=720px){.site-header nav a:not(:last-child):not(:nth-last-child(2)){display:none}.work-panel-facts{grid-template-columns:1fr;max-width:320px}.hud{display:none}}@media (width<=900px){.case-page-echo{display:none}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
