:root{--void:#05070d;--deck:#0a0f1c;--rule:#1d2742;--dim:#8a94b0;--soft:#c3cbe0;--star:#e8ecf6;--oiii:#6fd3d6;--ha:#f2836b;--f-display:"Michroma", "Eurostile", "Arial Black", sans-serif;--f-body:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;--f-mono:"Martian Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--pad-t:calc(22px + env(safe-area-inset-top,0px));--pad-b:calc(22px + env(safe-area-inset-bottom,0px));--pad-l:calc(24px + env(safe-area-inset-left,0px));--pad-r:calc(24px + env(safe-area-inset-right,0px));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--void);height:100%;color:var(--star);margin:0;overflow:hidden}body{font-family:var(--f-body);-webkit-font-smoothing:antialiased}p{margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--oiii);outline-offset:3px}.dc{visibility:hidden;position:relative}.dc:before{content:attr(data-g);visibility:visible;position:absolute;left:50%;transform:translate(-50%)}.dc.on{visibility:visible}.dc.on:before{content:none}#gl{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}body.cursor-pointer #gl{cursor:pointer}#overlay,#hud{pointer-events:none;position:fixed;inset:0}#warp{pointer-events:none;opacity:0;z-index:5;background:radial-gradient(circle,#dcfafae6,#6fd3d640 45%,#0000 75%);position:fixed;inset:0}#hud{opacity:0;font-family:var(--f-mono);z-index:4;transition:opacity .8s}#hud.on{opacity:1}.hud-tl{top:var(--pad-t);left:var(--pad-l);gap:6px;display:grid;position:absolute}.hud-name{pointer-events:auto;font-family:var(--f-display);letter-spacing:.08em;text-transform:uppercase;text-align:left;color:var(--star);font-size:15px}.hud-role{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-size:10.5px}.hud-tr{top:var(--pad-t);right:var(--pad-r);justify-items:end;gap:8px;display:grid;position:absolute}.hud-phase{letter-spacing:.14em;color:var(--dim);white-space:pre;font-size:10.5px}.hud-phase .n{color:var(--oiii)}.hud-bar{background:var(--rule);width:120px;height:1px}.hud-bar i{background:var(--oiii);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.hud-bl{bottom:var(--pad-b);left:var(--pad-l);position:absolute}.hud-sound{pointer-events:auto;font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:6px 0;font-size:10.5px}.hud-sound:hover{color:var(--star)}.hud-sound.on{color:var(--oiii)}.hud-hint span{color:var(--dim)}.hud-br{bottom:var(--pad-b);right:var(--pad-r);position:absolute}.hud-tele{letter-spacing:.08em;color:var(--dim);white-space:pre;padding:6px 0;font-size:10px}.hud-hint{bottom:calc(var(--pad-b) + 4px);letter-spacing:.16em;text-transform:uppercase;color:var(--soft);font-size:10.5px;transition:opacity .6s;position:absolute;left:50%;transform:translate(-50%)}.hud-hint.gone{opacity:0}#preloader{z-index:20;background:var(--void);font-family:var(--f-mono);place-content:center;justify-items:center;gap:14px;display:grid;position:fixed;inset:0}.pl-glyphs{letter-spacing:.5em;color:var(--star);white-space:pre;transform-origin:50%;padding-left:.5em;font-size:18px}.pl-signal{letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-size:10.5px}.hero{left:var(--pad-l);bottom:calc(var(--pad-b) + 56px);opacity:0;visibility:hidden;will-change:transform, opacity;gap:clamp(10px,1.6vw,22px);display:grid;position:absolute}.hero.on{visibility:visible}.hero-kicker{font-family:var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);gap:28px;font-size:10.5px;display:flex}.hero-kicker span:last-child{color:var(--oiii)}.hero-name{font-family:var(--f-display);font-size:clamp(22px, min(8.4vw, calc(46vw / (var(--len,4) * 1.05))), 136px);letter-spacing:-.01em;text-transform:uppercase;color:var(--star);margin-left:-.05em;line-height:.98}.hero-role{font-family:var(--f-mono);letter-spacing:.3em;text-transform:uppercase;color:var(--soft);font-size:clamp(10.5px,1vw,13px)}.hero-alert{left:50%;top:calc(var(--pad-t) + 54px);font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ha);white-space:nowrap;opacity:0;background:#05070d8c;border:1px solid #f2836b80;align-items:center;gap:12px;padding:7px 12px;font-size:10.5px;transition:opacity .25s;display:flex;position:absolute;transform:translate(-50%)}.hero-alert.on{opacity:1}.hero-alert i{background:var(--ha);border-radius:50%;width:7px;height:7px;animation:.5s steps(2,start) infinite alert-blink}.hero-alert .t{min-width:6.5ch;color:var(--star);font-weight:500}@keyframes alert-blink{to{visibility:hidden}}.hero-note{text-align:right;font-family:var(--f-mono);letter-spacing:.12em;color:var(--dim);white-space:nowrap;opacity:0;will-change:transform;gap:4px;padding:0 14px 12px 0;font-size:10px;transition:opacity .5s;display:grid;position:absolute;top:0;left:0}.hero-note.on{opacity:1}.hero-note:after{content:"";background:linear-gradient(90deg, var(--dim), var(--oiii));width:40px;height:1px;position:absolute;bottom:6px;right:-34px}.hero-note p:first-child{color:var(--star)}.hero-note .core{color:var(--oiii)}.hero-note.exposed .core{color:var(--ha)}.about{right:var(--pad-r);bottom:calc(var(--pad-b) + 60px);opacity:0;gap:10px;width:min(380px,78vw);transition:opacity .5s;display:grid;position:absolute}.about.on{opacity:1}.about .tag{font-family:var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--oiii);font-size:10.5px}.about dl{gap:9px;margin:0;display:grid}.about dl div{border-bottom:1px solid var(--rule);opacity:0;grid-template-columns:8.5em 1fr;align-items:baseline;gap:14px;padding-bottom:9px;transition:opacity .45s,transform .45s;display:grid;transform:translateY(6px)}.about.on dl div{opacity:1;transform:none}.about.on dl div:nth-child(2){transition-delay:70ms}.about.on dl div:nth-child(3){transition-delay:.14s}.about.on dl div:nth-child(4){transition-delay:.21s}.about.on dl div:nth-child(5){transition-delay:.28s}.about.on dl div:nth-child(6){transition-delay:.35s}.about dt{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);font-size:10px}.about dd{color:var(--star);margin:0;font-size:clamp(14px,1.25vw,17px);line-height:1.35}.project-callout{--accent:var(--oiii);font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--soft);white-space:pre;opacity:0;gap:7px;font-size:10.5px;transition:opacity .4s;display:grid;position:absolute;top:50%;right:clamp(24px,13vw,220px);transform:translateY(-50%)}.project-callout.left{left:clamp(24px,13vw,220px);right:auto}.project-callout.on{opacity:1}.project-callout .n{color:var(--accent)}.project-callout .title{font-family:var(--f-display);letter-spacing:.01em;color:var(--star);white-space:normal;max-width:min(34vw,560px);margin:4px 0 8px;font-size:clamp(22px,3.4vw,52px);line-height:1.04}.project-callout .stack{white-space:normal;max-width:min(34vw,560px);line-height:1.6}.project-callout .cta{border-top:1px solid var(--rule);color:var(--dim);margin-top:14px;padding-top:12px;transition:color .2s}.project-callout.hot .cta{color:var(--accent)}.project-panel{--accent:var(--oiii);opacity:0;pointer-events:none;place-items:center end;padding:24px clamp(24px,8vw,120px);transition:opacity .4s;display:grid;position:absolute;inset:0}.project-panel.left{place-items:center start}.project-panel.on{opacity:1;pointer-events:auto}.project-panel .card{border:1px solid var(--rule);border-top:1px solid var(--accent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#070a13d1;gap:14px;width:min(440px,100%);max-height:80vh;padding:30px 26px 24px;display:grid;position:relative;overflow:auto}.project-panel .close{color:var(--dim);padding:6px;font-size:14px;position:absolute;top:10px;right:12px}.project-panel .close:hover{color:var(--star)}.project-panel .eyebrow{font-family:var(--f-mono);letter-spacing:.16em;color:var(--accent);font-size:10px}.project-panel h2{font-family:var(--f-display);letter-spacing:.02em;margin:0;font-size:clamp(22px,2.4vw,30px);font-weight:400;line-height:1.1}.project-panel .summary{color:var(--soft);line-height:1.55}.project-panel .stack{font-family:var(--f-mono);letter-spacing:.08em;color:var(--dim);font-size:11px}.project-panel .visit{border:1px solid var(--accent);font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);justify-self:start;margin-top:4px;padding:9px 14px;font-size:11px;text-decoration:none}.project-panel .visit:hover{background:var(--accent);color:var(--void)}.project-panel .keys{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);opacity:.7;font-size:9.5px}.skills{visibility:hidden;position:absolute;inset:0}.skills.on{visibility:visible}.skills-head{left:50%;top:calc(var(--pad-t) + 62px);font-family:var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);white-space:nowrap;font-size:10.5px;position:absolute;transform:translate(-50%)}.skills-head span{color:var(--oiii);margin-right:14px}.skill,.skill-title{--accent:var(--oiii);white-space:pre;opacity:0;transform-origin:0;will-change:transform;transition:opacity .35s,color .2s;position:absolute;top:0;left:0}.skill.on,.skill-title.on{opacity:1}.skill{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--soft);font-size:11.5px}.skill.lit{color:var(--star)}.skill.hot{color:var(--accent)}.skill-title{font-family:var(--f-display);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:clamp(14px,1.45vw,22px)}.skills.narrow .skill{letter-spacing:.04em;font-size:9.5px}.skills.narrow .skill-title{font-size:13px}.horizon-text{left:var(--pad-l);opacity:0;gap:18px;width:min(46vw,620px);transition:opacity .6s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.horizon-text.on{opacity:1}.horizon-text .k{font-family:var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ha);font-size:10.5px}.horizon-text .big{font-family:var(--f-display);letter-spacing:-.005em;text-transform:uppercase;color:var(--star);transform-origin:0;will-change:transform, filter;font-size:clamp(26px,4.4vw,68px);line-height:1.08}.horizon-text .read{font-family:var(--f-mono);letter-spacing:.14em;color:var(--dim);white-space:pre;font-size:10.5px}.gate-read{left:50%;bottom:calc(var(--pad-b) + 44px);font-family:var(--f-mono);letter-spacing:.16em;color:#a9d2ff;white-space:pre;opacity:0;background:#02061080;border-left:1px solid #4f9dff;border-right:1px solid #4f9dff;padding:7px 14px;font-size:10.5px;transition:opacity .3s;position:absolute;transform:translate(-50%)}.gate-read.on{opacity:1}.deck-ui{opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s;position:absolute;inset:0}.deck-ui.on{opacity:1;visibility:visible;transition:opacity .5s}.deck-ui{--accent:var(--oiii)}.deck-title{left:var(--pad-l);bottom:calc(var(--pad-b) + 62px);gap:10px;display:grid;position:absolute}.deck-title .idx{font-family:var(--f-mono);letter-spacing:.22em;color:var(--accent);white-space:pre;font-size:10.5px}.deck-title .name{font-family:var(--f-display);letter-spacing:-.005em;color:var(--star);white-space:pre;font-size:clamp(30px,5.4vw,84px);line-height:.95}.deck-title .url{font-family:var(--f-mono);letter-spacing:.1em;color:var(--soft);white-space:pre;align-items:baseline;gap:18px;font-size:clamp(10.5px,1vw,13px);display:flex}.deck-title .url i{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-size:10px;font-style:normal}.deck-hint{right:var(--pad-r);bottom:calc(var(--pad-b) + 62px);text-align:right;font-family:var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-size:10px;line-height:1.9;position:absolute}.deck-arrow{pointer-events:auto;color:var(--star);opacity:.6;padding:16px 10px;transition:opacity .2s,color .2s;position:absolute;top:46%;transform:translateY(-50%)}.deck-arrow:hover,.deck-arrow:focus-visible{opacity:1;color:var(--accent)}.deck-arrow.left{left:calc(var(--pad-l) - 10px)}.deck-arrow.right{right:calc(var(--pad-r) - 10px)}.deck-arrow svg{width:58px;height:12px;display:block}.deck-car-pos{left:50%;bottom:calc(var(--pad-b) + 44px);position:absolute;transform:translate(-50%)}.deck-car{white-space:nowrap;font-family:var(--f-mono);letter-spacing:.04em;align-items:center;gap:4px;font-size:12px;display:flex}.deck-car button{pointer-events:auto}.deck-car .side{color:var(--dim);opacity:.55;min-width:6.5em;padding:9px 10px;transition:opacity .2s}.deck-car .side:first-child{text-align:right}.deck-car .side:last-child{text-align:left}.deck-car .side:hover{opacity:1}.deck-car .cur{--c:var(--star);min-width:9.2em;color:var(--star);text-align:center;background:linear-gradient(var(--c), var(--c)) left top / 9px 1px no-repeat, linear-gradient(var(--c), var(--c)) left top / 1px 9px no-repeat, linear-gradient(var(--c), var(--c)) right top / 9px 1px no-repeat, linear-gradient(var(--c), var(--c)) right top / 1px 9px no-repeat, linear-gradient(var(--c), var(--c)) left bottom / 9px 1px no-repeat, linear-gradient(var(--c), var(--c)) left bottom / 1px 9px no-repeat, linear-gradient(var(--c), var(--c)) right bottom / 9px 1px no-repeat, linear-gradient(var(--c), var(--c)) right bottom / 1px 9px no-repeat;padding:9px 16px}.deck-car .cur:hover,.deck-car .cur:focus-visible{--c:var(--accent);color:var(--accent);outline:none}.deck-reticle{border:1px solid var(--oiii);opacity:0;pointer-events:none;border-radius:50%;width:18px;height:18px;position:absolute;top:-9px;left:-9px}.deck-readout{border-left:1px solid var(--oiii);font-family:var(--f-mono);letter-spacing:.04em;color:var(--oiii);white-space:pre;opacity:0;pointer-events:none;background:#05070d99;padding:5px 9px;font-size:10px;line-height:1.6;position:absolute;top:0;left:0}.deck-toast{left:50%;bottom:calc(var(--pad-b) + 100px);border:1px solid var(--rule);font-family:var(--f-mono);color:var(--star);white-space:nowrap;opacity:0;background:#0a0f1ce0;padding:7px 12px;font-size:11px;transition:opacity .25s,transform .25s;position:absolute;transform:translate(-50%,6px)}.deck-toast.on{opacity:1;transform:translate(-50%)}.skip{z-index:31;background:var(--deck);border:1px solid var(--oiii);color:var(--star);font-family:var(--f-mono);padding:8px 12px;font-size:12px;position:fixed;top:-48px;left:16px}.skip:focus{top:16px}#a11y-nav{z-index:30;clip-path:inset(50%);background:var(--deck);border:1px solid var(--rule);width:1px;height:1px;padding:20px;font-size:14px;line-height:1.5;position:fixed;top:64px;left:16px;overflow:hidden}#a11y-nav:focus,#a11y-nav:focus-within,body.no-gl #a11y-nav{clip-path:none;width:min(560px,100vw - 32px);height:auto;max-height:calc(100vh - 80px);overflow:auto}#a11y-nav h1{font-family:var(--f-display);letter-spacing:.04em;margin:0 0 8px;font-size:18px;font-weight:400}#a11y-nav h2{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--oiii);margin:18px 0 6px;font-size:11px;font-weight:500}#a11y-nav ul{gap:6px;margin:0;padding-left:18px;display:grid}#a11y-nav a,#a11y-nav button{color:var(--star);text-decoration:underline}body.no-gl #gl,body.no-gl #hud,body.no-gl #overlay{display:none}body.no-gl #a11y-nav{top:16px}.noscript{color:var(--soft);position:fixed;bottom:16px;left:16px}@media (max-width:640px){.hud-tele{display:none}.hud-bar{width:80px}.hud-hint span{display:none}.hud-tr{max-width:44vw}.hud-phase{white-space:normal;text-align:right;letter-spacing:.1em;font-size:9.5px;line-height:1.5}.hero{bottom:calc(var(--pad-b) + 40px)}.hero-name{font-size:min(11vw, calc((100vw - 48px) / (var(--len,4) * 1.05)))}.hud-name{max-width:48vw;font-size:12.5px;line-height:1.35}.hero-note{display:none}.hero-alert{letter-spacing:.08em;gap:8px;font-size:9px}.hero-alert span{display:none}.about{left:var(--pad-l);right:var(--pad-r);width:auto}.about dl div{grid-template-columns:7em 1fr}.about{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#05070d9e;margin:0 -12px;padding:14px 12px 4px}.skills-head{letter-spacing:.12em;font-size:9px}.skills-head span{margin-right:8px}.project-callout,.project-callout.left{top:auto;left:var(--pad-l);right:var(--pad-r);bottom:calc(var(--pad-b) + 52px);transform:none}.project-callout .title,.project-callout .stack{max-width:none}.project-panel,.project-panel.left{padding:16px 16px calc(var(--pad-b) + 36px);place-items:end center}.horizon-text{top:auto;bottom:calc(var(--pad-b) + 56px);width:auto;right:var(--pad-r);transform:none}.gate-read{letter-spacing:.08em;font-size:9px}.deck-title{left:0;right:0;bottom:calc(var(--pad-b) + 104px);text-align:center;justify-items:center;gap:8px}.deck-title .name{font-size:clamp(26px,9vw,44px)}.deck-title .url{flex-direction:column;align-items:center;gap:6px}.deck-hint{display:none}.deck-arrow svg{width:34px}.deck-car{font-size:11px}.deck-car .side{min-width:0;padding:9px 6px}.deck-car .cur{min-width:7.6em;padding:9px 10px}}@media (prefers-reduced-motion:reduce){.deck-toast,.deck-arrow,.hud-hint,#hud,.about dl div{transition:none}.hero-alert i{animation:none}}
