:root{color-scheme:dark;--void:#02040a;--ink:#edf4ff;--muted:rgba(237,244,255,.58);--line:rgba(237,244,255,.2);--acid:#cbff39;--violet:#9e6aff;--coral:#ff5d49;--cyan:#55dcff}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--void)}body{color:var(--ink);font-family:'Bricolage Grotesque',sans-serif}button,a{color:inherit;font:inherit}:focus-visible{outline:3px solid var(--acid);outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#mission-canvas{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.render-effects{position:fixed;z-index:5;inset:0;pointer-events:none}.scanlines{position:absolute;inset:0;opacity:.12;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(158,106,255,.12) 3px 4px);mix-blend-mode:screen}.vignette{position:absolute;inset:0;box-shadow:inset 0 0 16vw rgba(0,0,0,.86)}.damage-flash{position:absolute;inset:0;opacity:0;background:radial-gradient(circle,transparent 20%,rgba(255,93,73,.72));transition:opacity .14s ease}.damage-flash.is-on{opacity:1}
.mission-nav{position:fixed;z-index:10;inset:0 0 auto;height:58px;padding:0 clamp(14px,2vw,28px);display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(2,4,10,.88),rgba(2,4,10,.28));backdrop-filter:blur(10px);font:600 .55rem/1 'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.08em}.mission-nav>a{color:var(--acid);text-decoration:none}.mission-nav>span{color:var(--muted)}.mission-nav>div{display:flex;gap:7px}.mission-nav button{min-height:32px;padding:0 9px;border:1px solid var(--line);background:rgba(2,4,10,.45);cursor:pointer;text-transform:uppercase}.mission-nav button:hover{border-color:var(--acid);color:var(--acid)}
.hud{position:fixed;z-index:8;inset:0;pointer-events:none}.objective-card{position:absolute;left:clamp(14px,2vw,28px);top:78px;width:min(430px,calc(100vw - 28px));padding:16px 18px;border:1px solid var(--line);background:rgba(2,4,10,.62);backdrop-filter:blur(11px)}.objective-card>p{margin:0;color:var(--cyan);font:600 .54rem/1 'JetBrains Mono',monospace;letter-spacing:.1em}.objective-card h1{margin:10px 0 0;font-size:clamp(.92rem,1.5vw,1.2rem);line-height:1.28}.relay-progress{display:flex;gap:7px;margin-top:14px}.relay-progress span{min-width:58px;padding:7px;border:1px solid var(--line);color:var(--muted);font:600 .53rem/1 'JetBrains Mono',monospace}.relay-progress i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:rgba(237,244,255,.2)}.relay-progress span.is-on{color:var(--acid);border-color:rgba(203,255,57,.46)}.relay-progress span.is-on i{background:var(--acid);box-shadow:0 0 13px var(--acid)}
.status-card{position:absolute;right:clamp(14px,2vw,28px);top:78px;width:210px;border:1px solid var(--line);background:rgba(2,4,10,.62);backdrop-filter:blur(11px)}.status-card>div{padding:12px 14px;border-bottom:1px solid var(--line)}.status-card>div:last-child{border:0}.status-card small{display:block;color:var(--muted);font:500 .47rem/1 'JetBrains Mono',monospace;text-transform:uppercase}.status-card strong{display:block;margin-top:7px;color:var(--acid);font:700 .75rem/1 'JetBrains Mono',monospace}.status-track{display:block;height:4px;margin-top:9px;background:rgba(237,244,255,.15)}.status-track i{display:block;width:var(--integrity,100%);height:100%;background:var(--cyan);transition:width .2s ease}
.reticle{position:absolute;left:50%;top:50%;width:36px;height:36px;transform:translate(-50%,-50%)}.reticle::before,.reticle::after,.reticle i::before,.reticle i::after{content:'';position:absolute;background:rgba(237,244,255,.72)}.reticle::before{left:0;top:17px;width:9px;height:1px}.reticle::after{right:0;top:17px;width:9px;height:1px}.reticle i::before{left:17px;top:0;width:1px;height:9px}.reticle i::after{left:17px;bottom:0;width:1px;height:9px}.reticle span{position:absolute;inset:15px;border:1px solid var(--acid);border-radius:50%;box-shadow:0 0 10px rgba(203,255,57,.55)}
.interaction-prompt{position:absolute;left:50%;bottom:78px;display:flex;align-items:center;gap:11px;opacity:0;transform:translate(-50%,12px);transition:.2s ease;padding:9px 13px;border:1px solid var(--acid);background:rgba(2,4,10,.82);font:600 .58rem/1 'JetBrains Mono',monospace;text-transform:uppercase}.interaction-prompt.is-visible{opacity:1;transform:translate(-50%,0)}.interaction-prompt span{width:25px;height:25px;display:grid;place-items:center;color:var(--void);background:var(--acid)}
.mission-log{position:absolute;left:clamp(14px,2vw,28px);bottom:22px;width:min(440px,calc(100vw - 28px));margin:0;padding:0;list-style:none}.mission-log li{display:none;padding:9px 11px;border-left:2px solid var(--violet);color:rgba(237,244,255,.76);background:rgba(2,4,10,.7);font:500 .54rem/1.45 'JetBrains Mono',monospace}.mission-log li:last-child{display:block}
.entry-screen,.complete-screen{position:fixed;z-index:30;inset:0;display:grid;place-items:center;overflow:hidden}.entry-screen>img{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.8) brightness(.75)}.entry-shade{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(2,4,10,.96),rgba(2,4,10,.72) 45%,rgba(2,4,10,.2)),linear-gradient(0deg,rgba(2,4,10,.88),transparent 60%)}.entry-copy{width:min(720px,calc(100% - 38px));margin-right:auto;margin-left:clamp(20px,8vw,140px)}.entry-copy>p,.complete-screen>div>p:first-child{margin:0;color:var(--acid);font:600 .6rem/1 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase}.entry-copy h1{max-width:680px;margin:22px 0 28px;font-size:clamp(3.8rem,8vw,8.5rem);line-height:.78;letter-spacing:-.075em}.entry-brief{display:grid;grid-template-columns:105px 1fr;gap:9px 16px;max-width:580px;margin-bottom:25px}.entry-brief span{color:var(--coral);font:600 .52rem/1.35 'JetBrains Mono',monospace}.entry-brief strong{font-size:.85rem}.entry-copy>button{position:relative;width:min(380px,100%);min-height:66px;overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid var(--acid);color:var(--void);background:var(--acid);cursor:pointer;font-weight:800}.entry-copy>button:disabled{color:var(--muted);background:rgba(2,4,10,.72);border-color:var(--line);cursor:wait}.entry-copy>button i{position:absolute;inset:auto 0 0;width:var(--progress,0%);height:4px;background:var(--violet)}.entry-copy>small{display:block;margin-top:15px;color:var(--muted);font:500 .54rem/1.5 'JetBrains Mono',monospace}.entry-copy>em{display:block;margin-top:26px;color:rgba(237,244,255,.35);font:400 .52rem/1.5 'JetBrains Mono',monospace;text-transform:uppercase;font-style:normal}.entry-screen.is-leaving{animation:leaveEntry .9s cubic-bezier(.4,0,.1,1) forwards}@keyframes leaveEntry{to{opacity:0;transform:scale(1.03);visibility:hidden}}
.complete-screen{background:radial-gradient(circle at 50% 22%,rgba(158,106,255,.28),transparent 28rem),rgba(2,4,10,.84);backdrop-filter:blur(15px)}.complete-screen[hidden]{display:none}.complete-screen>div{width:min(820px,calc(100% - 36px));padding:clamp(24px,5vw,54px);border:1px solid var(--line);background:rgba(5,10,24,.88);box-shadow:16px 16px 0 rgba(158,106,255,.24)}.complete-screen h2{margin:18px 0 20px;font-size:clamp(3rem,7vw,7rem);line-height:.82;letter-spacing:-.07em}.complete-screen>div>p:not(:first-child){max-width:630px;color:var(--muted);font-size:1.03rem;line-height:1.65}.complete-screen dl{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:28px 0 0}.complete-screen dl div{padding:15px;border:1px solid var(--line)}.complete-screen dt{color:var(--muted);font:500 .5rem/1 'JetBrains Mono',monospace;text-transform:uppercase}.complete-screen dd{margin:10px 0 0;color:var(--acid);font:700 1rem/1 'JetBrains Mono',monospace}.complete-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.complete-actions button,.complete-actions a{min-height:48px;padding:0 16px;display:inline-flex;align-items:center;border:1px solid var(--acid);color:var(--void);background:var(--acid);text-decoration:none;font-weight:800;cursor:pointer}.complete-actions a{color:var(--ink);background:transparent;border-color:var(--line)}
.touch-ui{display:none;position:absolute;inset:auto 14px 18px;align-items:end;justify-content:space-between}.touch-move{width:136px;height:136px;position:relative;pointer-events:auto}.touch-move button{position:absolute;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:rgba(2,4,10,.7)}.touch-move [data-move=forward]{left:46px;top:0}.touch-move [data-move=back]{left:46px;bottom:0}.touch-move [data-move=left]{left:0;top:46px}.touch-move [data-move=right]{right:0;top:46px}.touch-actions{display:flex;gap:8px;align-items:end;pointer-events:auto}.touch-actions button{width:58px;height:58px;border:1px solid var(--acid);border-radius:50%;color:var(--acid);background:rgba(2,4,10,.75);font:700 .54rem/1 'JetBrains Mono',monospace}.touch-actions button:last-child{width:72px;height:72px;color:var(--void);background:var(--acid)}.no-webgl{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:30px;background:var(--void);text-align:center}
@media (max-width:760px),(pointer:coarse){.touch-ui{display:flex}.mission-nav>span{display:none}.status-card{top:auto;bottom:176px;width:150px}.status-card>div:first-child,.status-card>div:last-child{display:none}.objective-card{top:70px}.mission-log{bottom:170px;width:60vw}.interaction-prompt{bottom:112px}.reticle{display:none}.entry-copy{margin-inline:auto}.entry-brief{grid-template-columns:85px 1fr}.entry-copy h1{font-size:clamp(3.4rem,16vw,6rem)}}
@media (max-width:500px){.mission-nav>div button:first-child{display:none}.objective-card{width:calc(100vw - 28px)}.objective-card h1{font-size:.84rem}.status-card{display:none}.entry-copy h1{font-size:3.7rem}.complete-screen dl{grid-template-columns:1fr}.complete-screen>div{max-height:90svh;overflow:auto}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.scanlines{display:none}}
