:root{--void:#020206;--ice:#d9fcff;--cyan:#5ffbf1;--acid:#b8ff39;--signal:#ff3c91;--line:rgba(193,250,255,.22);--mono:'IBM Plex Mono',monospace;--display:'Space Grotesk',sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--void);color:var(--ice);font-family:var(--mono);letter-spacing:0}.viewport,#scene,#scene canvas,.scan{position:fixed;inset:0;width:100%;height:100%}#scene{z-index:0;background:radial-gradient(circle at center,#09101d,#020206 70%)}#scene canvas{display:block}.scan{z-index:1;pointer-events:none;opacity:.24;background:repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(255,255,255,.025) 4px);mix-blend-mode:screen}.scan:after{content:'';position:absolute;inset:0;background:radial-gradient(circle,transparent 25%,rgba(0,0,0,.58) 100%)}button,a{color:inherit;font:inherit}.hud-header{position:fixed;z-index:5;top:0;left:0;right:0;height:82px;padding:0 clamp(1rem,3vw,3rem);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);font-size:.65rem}.signal-logo{display:flex;gap:.25rem;align-items:center;text-decoration:none;font:600 1.05rem var(--display)}.signal-logo span{color:var(--signal)}.transit-id{display:flex;gap:1rem;align-items:center}.transit-id span,.coordinates span,.speed-readout span,.depth span,.phase>span,.hud-footer span{color:rgba(217,252,255,.52);font-size:.55rem;letter-spacing:.14em}.transit-id strong{color:var(--cyan)}.system-state{justify-self:end;display:flex;gap:.65rem;align-items:center}.system-state i,.sound-status i{width:6px;height:6px;border-radius:50%;background:var(--acid);box-shadow:0 0 14px var(--acid);animation:blink 1.8s infinite}.entry{position:fixed;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(2,2,6,.15);transition:opacity .8s,visibility .8s}.entry.hidden{opacity:0;visibility:hidden;pointer-events:none}.entry p{font-size:.62rem;letter-spacing:.35em;text-transform:uppercase;color:var(--cyan);margin-bottom:1.25rem}.entry h1{font:600 clamp(4rem,12vw,10rem)/.75 var(--display);letter-spacing:0;text-shadow:0 0 35px rgba(95,251,241,.12)}.entry button{width:230px;height:56px;margin-top:3rem;border:1px solid rgba(95,251,241,.7);background:rgba(2,8,15,.65);display:flex;align-items:center;justify-content:center;gap:.8rem;text-transform:uppercase;font-size:.65rem;letter-spacing:.13em;cursor:pointer;transition:.25s}.entry button:hover{background:var(--cyan);color:#02100f;box-shadow:0 0 35px rgba(95,251,241,.25)}.entry button svg{width:16px}.entry small{font-size:.55rem;letter-spacing:.1em;color:rgba(217,252,255,.46);margin-top:1rem}.flight-ui{position:fixed;z-index:3;inset:0;pointer-events:none;opacity:0;transition:opacity 1s}.flight-ui.active{opacity:1}.reticle{position:absolute;top:50%;left:50%;width:120px;height:120px;transform:translate(-50%,-50%);border:1px solid rgba(95,251,241,.24);border-radius:50%}.reticle:before,.reticle:after{content:'';position:absolute;background:rgba(95,251,241,.45)}.reticle:before{height:1px;width:22px;top:50%;left:calc(50% - 11px)}.reticle:after{width:1px;height:22px;left:50%;top:calc(50% - 11px)}.reticle span{position:absolute;width:14px;height:14px;border-color:var(--cyan)}.reticle span:first-child{left:-1px;top:-1px;border-left:1px solid;border-top:1px solid}.reticle span:nth-child(2){right:-1px;bottom:-1px;border-right:1px solid;border-bottom:1px solid}.reticle i{position:absolute;inset:18px;border:1px dashed rgba(255,60,145,.3);border-radius:50%;animation:spin 7s linear infinite}.coordinates{position:absolute;left:clamp(1rem,3vw,3rem);top:50%;display:grid;grid-template-columns:auto auto;gap:.4rem 1rem;font-size:.68rem}.coordinates strong{color:var(--cyan);font-weight:400}.speed-readout{position:absolute;right:clamp(1rem,3vw,3rem);top:44%;text-align:right}.speed-readout strong{display:block;font:500 clamp(2.2rem,5vw,4.6rem)/1 var(--display);color:#fff}.speed-readout small,.depth small{color:var(--signal);font-size:.55rem}.depth{position:absolute;left:clamp(1rem,3vw,3rem);bottom:100px}.depth strong{display:block;font-size:1.2rem;font-weight:400}.phase{position:absolute;right:clamp(1rem,3vw,3rem);bottom:100px;width:180px}.phase>div{height:3px;margin:.55rem 0;background:rgba(255,255,255,.15)}.phase i{height:100%;display:block;width:28%;background:var(--acid);box-shadow:0 0 10px var(--acid);transition:width .4s}.phase strong{font-size:.65rem;color:var(--acid)}.controls{position:fixed;z-index:6;right:clamp(1rem,3vw,3rem);top:100px;display:flex;gap:8px}.controls button{width:42px;height:42px;background:rgba(2,5,12,.56);border:1px solid var(--line);display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px);transition:.2s}.controls button:hover,.controls button.active{border-color:var(--cyan);color:var(--cyan)}.controls svg{width:16px}.hud-footer{position:fixed;z-index:5;bottom:0;left:0;right:0;height:68px;border-top:1px solid var(--line);padding:0 clamp(1rem,3vw,3rem);display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.hud-footer>div{display:flex;gap:.8rem;align-items:center}.hud-footer>div:last-child{justify-self:end}.hud-footer strong{font-size:.62rem;font-weight:500}.sound-status i{background:var(--signal);box-shadow:0 0 12px var(--signal)}.sound-status.live i{background:var(--acid);box-shadow:0 0 12px var(--acid)}.failure{position:fixed;z-index:20;inset:0;background:#020206;display:grid;place-content:center;text-align:center}.failure h1{font:600 3rem var(--display)}.failure p{color:var(--signal);margin-top:1rem}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:.2}}@media(max-width:700px){.hud-header{height:66px;grid-template-columns:1fr 1fr}.transit-id{display:none}.system-state span{display:none}.entry h1{font-size:clamp(3.8rem,20vw,7rem)}.controls{top:82px}.coordinates{top:auto;bottom:92px}.speed-readout{top:43%}.speed-readout strong{font-size:2.2rem}.depth,.phase{display:none}.hud-footer{height:54px;grid-template-columns:1fr 1fr}.hud-footer>div:first-child{display:none}.hud-footer>div:nth-child(2){justify-self:start}.reticle{width:90px;height:90px}}@media(prefers-reduced-motion:reduce){.scan{display:none}.reticle i,.system-state i,.sound-status i{animation:none}}
