:root{--fg: #d7fff0;--dim: #6fa894;--accent: #3dffb0;--amber: #ffb347;--danger: #ff4d6d;--panel: rgba(0, 12, 8, .6);--edge: rgba(61, 255, 176, .3);--font: "Rajdhani", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#000;color:var(--fg);font-family:var(--font);-webkit-user-select:none;user-select:none}[hidden]{display:none!important}#neo,#retro,#tunnel{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}#tunnel{z-index:5}#retro,body.retro #tunnel{margin:auto;width:min(100vw,calc(100vh * 4 / 3));height:min(100vh,75vw);image-rendering:pixelated}.title{position:fixed;top:20px;left:0;right:0;text-align:center;pointer-events:none}.title h1{margin:0;font-size:clamp(28px,5vw,56px);letter-spacing:.35em;font-weight:700;color:var(--accent);text-shadow:0 0 12px var(--accent),0 0 32px rgba(61,255,176,.4)}#mode{font-size:12px;letter-spacing:.3em;color:var(--dim)}.panel{position:fixed;left:24px;bottom:84px;width:min(360px,calc(100vw - 32px));padding:16px 18px;border:1px solid var(--edge);background:var(--panel);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.panel h2{margin:0;font-size:26px;letter-spacing:.05em;color:var(--accent)}.panel h3{margin:16px 0 6px;font-size:14px;letter-spacing:.15em;text-transform:uppercase;color:var(--dim)}.meta{margin:2px 0 8px;color:var(--dim);text-transform:uppercase;letter-spacing:.15em;font-size:12px}.desc{margin:0 0 12px;font-size:15px;line-height:1.35}dl{display:grid;grid-template-columns:auto 1fr;gap:2px 16px;margin:0;font-size:14px}dl:empty{display:none}dt{color:var(--dim)}dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.credits{margin:10px 0 0;font-size:11px;color:var(--dim);line-height:1.4}#equip{list-style:none;margin:0;padding:0}#equip li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;padding:6px 0}#equip li small{grid-column:1;color:var(--dim);font-size:12px}#equip li button{grid-row:1 / span 2;grid-column:2}.controls{position:fixed;right:24px;bottom:84px;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}button{font:inherit;font-size:14px;letter-spacing:.08em;color:var(--fg);background:var(--panel);border:1px solid rgba(61,255,176,.35);padding:8px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.4;cursor:default}button.primary{border-color:var(--accent);color:var(--accent)}.tribute{position:fixed;bottom:16px;left:0;right:0;text-align:center;font-size:12px;color:var(--dim);padding:0 16px}.prompt{position:fixed;top:128px;left:0;right:0;margin:0;text-align:center;font-size:18px;letter-spacing:.2em;color:var(--fg);animation:blink 1.2s steps(2,start) infinite;pointer-events:none}@keyframes blink{to{visibility:hidden}}.rules{width:min(440px,calc(100vw - 32px))}#rules{display:grid;gap:10px}#rules button{text-align:left;padding:12px 14px;line-height:1.35}#rules button b{display:block;font-size:18px;letter-spacing:.1em}#rules button small{display:block;color:var(--dim);font-size:13px;letter-spacing:.02em}#rules button em{font-style:normal;font-size:11px;color:var(--accent);letter-spacing:.15em}.crosshair{position:fixed;left:50%;top:42%;width:36px;height:36px;transform:translate(-50%,-50%);pointer-events:none;background:linear-gradient(var(--accent),var(--accent)) center top / 2px 10px no-repeat,linear-gradient(var(--accent),var(--accent)) center bottom / 2px 10px no-repeat,linear-gradient(var(--accent),var(--accent)) left center / 10px 2px no-repeat,linear-gradient(var(--accent),var(--accent)) right center / 10px 2px no-repeat;opacity:.7}.keys{position:fixed;top:12px;left:0;right:0;margin:0;text-align:center;font-size:13px;letter-spacing:.08em;color:var(--dim);pointer-events:none}.dash{position:fixed;left:50%;bottom:12px;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:10px 16px;border:1px solid var(--edge);background:var(--panel);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;max-width:calc(100vw - 16px)}#scanner{width:360px;height:140px;max-width:46vw}.gauges{display:flex;flex-direction:column;gap:6px;font-size:13px;letter-spacing:.1em;color:var(--dim)}.gauges label{display:flex;align-items:center;gap:8px}.bar{--v: 0;position:relative;display:inline-block;width:110px;height:8px;border:1px solid var(--edge)}.bar:after{content:"";position:absolute;inset:1px auto 1px 1px;width:calc((100% - 2px) * var(--v));background:var(--accent);box-shadow:0 0 8px var(--accent)}#g-shields:after{background:#4aa8ff;box-shadow:0 0 8px #4aa8ff}#g-hull:after{background:var(--amber);box-shadow:0 0 8px var(--amber)}.bar.centred:after{inset:1px auto 1px calc(50% - 3px + (50% - 4px) * var(--v));width:6px}.dash-row{display:flex;align-items:center;gap:12px}#dc-light{font-size:12px;padding:2px 6px;border:1px solid var(--edge);color:var(--dim)}#dc-light.on{color:#000;background:var(--accent);box-shadow:0 0 12px var(--accent)}#dock-aid{position:fixed;right:24px;top:50%;transform:translateY(-50%);width:180px;padding:12px 14px;border:1px solid rgba(255,179,71,.4);background:#140a0080;font-size:14px;pointer-events:none}.aid-row{display:flex;justify-content:space-between;color:var(--amber)}.aid-row b{font-weight:600;color:var(--danger);font-variant-numeric:tabular-nums}.aid-row b.ok,.aid-row:first-child b{color:var(--accent)}.roll-track{position:relative;height:12px;margin-top:8px;border:1px solid rgba(255,179,71,.4)}.roll-track:before{content:"";position:absolute;left:calc(50% - 1px);top:-3px;bottom:-3px;width:2px;background:var(--amber)}#aid-roll-marker{--v: 0;position:absolute;top:1px;bottom:1px;left:calc(50% - 4px + (50% - 6px) * var(--v));width:8px;background:var(--danger)}#aid-roll-marker.ok{background:var(--accent);box-shadow:0 0 8px var(--accent)}#banner{position:fixed;top:22%;left:0;right:0;margin:0;text-align:center;font-size:clamp(20px,3vw,34px);letter-spacing:.25em;color:var(--accent);text-shadow:0 0 14px var(--accent);pointer-events:none;z-index:6}#hit{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(255,40,70,.55));z-index:4}#hit.on{animation:hit .6s ease-out}@keyframes hit{0%{opacity:1}to{opacity:0}}body[data-state=dead] #banner{font-size:clamp(28px,6vw,64px)}body.retro{--fg: #fff;--dim: #aaa;--accent: #fff;--amber: #fff;--danger: #fff;--panel: #000;--edge: #fff;--font: "Press Start 2P", monospace}body.retro .title h1{text-shadow:none;font-size:clamp(18px,3vw,32px)}body.retro .panel{border-width:2px;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:10px}body.retro .panel h2{font-size:14px}body.retro .panel h3,body.retro #equip li small{font-size:8px}body.retro .desc,body.retro dl{font-size:9px;line-height:1.7}body.retro .meta,body.retro .credits,body.retro .tribute,body.retro #mode,body.retro .keys{font-size:8px}body.retro button{font-size:9px;border:2px solid #fff}body.retro .dash{border-width:2px;-webkit-backdrop-filter:none;backdrop-filter:none}body.retro .gauges{font-size:8px}body.retro .bar:after,body.retro #banner{box-shadow:none;text-shadow:none}body.retro #banner{font-size:14px}body.retro #hit{display:none}body.retro .prompt{font-size:10px;letter-spacing:.05em}body.retro #rules button b{font-size:11px}body.retro #rules button small,body.retro #rules button em{font-size:8px;line-height:1.6}@media (max-width: 700px){.panel{left:16px;bottom:120px}.controls{left:16px;right:16px;bottom:60px;justify-content:center}.bar{width:60px}.keys{display:none}}
