:root{--void:#06080d;--panel:#0f1620;--panel-edge:#1c2733;--copper:#d68a45;--copper-bright:#f0a860;--copper-dim:#5a4127;--red:#c23b3b;--red-bright:#e2564f;--cyan:#5fd0e0;--text:#eae4d6;--text-dim:#6b7a8a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--void);color:var(--text);background-image:radial-gradient(at 50% 30%,#d68a450f,#0000 60%),repeating-linear-gradient(#ffffff03 0 1px,#0000 1px 3px);justify-content:center;align-items:center;width:100vw;height:100vh;font-family:Rajdhani,sans-serif;display:flex;overflow:hidden}.bridge{flex-direction:column;gap:10px;width:min(96vw,1180px);height:min(94vh,720px);display:flex;position:relative}.topbar{background:linear-gradient(180deg, var(--panel), #0a0f16);border:1px solid var(--panel-edge);border-radius:4px;justify-content:space-between;align-items:center;padding:10px 18px;display:flex}.topbar .ship-id{letter-spacing:2px;color:var(--copper-bright);font-size:15px;font-weight:700}.topbar .ship-id span{letter-spacing:3px;color:var(--text-dim);margin-top:2px;font-size:10px;font-weight:500;display:block}.topbar .warp-readout{text-align:center}.topbar .warp-readout .label{letter-spacing:3px;color:var(--text-dim);font-size:10px}.topbar .warp-readout .value{color:var(--cyan);text-shadow:0 0 12px #5fd0e080;font-family:Space Mono,monospace;font-size:26px;font-weight:700}.topbar .score{text-align:right;font-family:Space Mono,monospace}.topbar .score .label{letter-spacing:3px;color:var(--text-dim);font-family:Rajdhani,sans-serif;font-size:10px}.topbar .score .value{color:var(--copper-bright);font-size:20px}.mute-btn{background:var(--panel);border:1px solid var(--panel-edge);width:36px;height:36px;color:var(--text-dim);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;margin-left:18px;font-size:15px;transition:all .15s;display:flex}.mute-btn:hover{border-color:var(--copper);color:var(--copper-bright)}.mute-btn.off{color:var(--red-bright);border-color:var(--red)}.console{flex:1;grid-template-columns:220px 1fr 220px;gap:10px;min-height:0;display:grid}.panel{background:linear-gradient(180deg, var(--panel), #0a0f16);border:1px solid var(--panel-edge);border-radius:4px;flex-direction:column;gap:16px;padding:14px;display:flex;overflow:hidden}.panel h3{letter-spacing:3px;color:var(--text-dim);border-bottom:1px solid var(--panel-edge);margin-bottom:2px;padding-bottom:6px;font-size:11px;font-weight:600}.lcars-left{border-left:3px solid var(--copper-dim);border-top-left-radius:34px;border-bottom-left-radius:34px}.lcars-right{border-right:3px solid var(--copper-dim);border-top-right-radius:34px;border-bottom-right-radius:34px}.lcars-strip{flex-wrap:wrap;gap:4px;margin:-14px -14px 4px;padding:8px 10px;display:flex}.lcars-left .lcars-strip{padding-left:22px}.lcars-right .lcars-strip{justify-content:flex-end;padding-right:22px}.lcars-strip .chip{letter-spacing:.5px;color:#1a0e00;opacity:.85;border-radius:3px;padding:3px 7px;font-family:Space Mono,monospace;font-size:10px;font-weight:700}.chip.c1{background:var(--copper)}.chip.c2{color:#04120f;background:#5a8f8a}.chip.c3{color:#1a0812;background:#8a5a7a}.stat-block .stat-label{letter-spacing:1px;justify-content:space-between;margin-bottom:4px;font-size:12px;display:flex}.stat-block .stat-label .num{color:var(--text);font-family:Space Mono,monospace}.bar-track{border:1px solid var(--panel-edge);background:#050709;border-radius:2px;height:10px;position:relative;overflow:hidden}.bar-fill{height:100%;transition:width .25s}.bar-fill.hull{background:linear-gradient(90deg, var(--red), var(--red-bright))}.bar-fill.shield{background:linear-gradient(90deg, #2e8fa0, var(--cyan))}.bar-fill.phaser{background:linear-gradient(90deg, var(--copper-dim), var(--copper-bright))}.torpedo-rack{gap:5px;display:flex}.torpedo-rack .torp{background:var(--copper-dim);opacity:.35;border-radius:2px;flex:1;height:16px}.torpedo-rack .torp.loaded{background:var(--copper-bright);opacity:1;box-shadow:0 0 8px #f0a86080}.target-status{color:var(--text-dim);letter-spacing:1px;font-family:Space Mono,monospace;font-size:11px;line-height:1.6}.target-status .hot{color:var(--red-bright)}.wave-info{color:var(--text-dim);letter-spacing:1px;margin-top:auto;font-family:Space Mono,monospace;font-size:11px}.wave-info .num{color:var(--copper-bright);font-size:16px}.viewport-wrap{border:1px solid var(--panel-edge);background:radial-gradient(circle,#0b1119 0%,#060a10 70%,#04070b 100%);border-radius:4px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.viewport-wrap:before{content:"";pointer-events:none;z-index:3;background:repeating-linear-gradient(0deg,#ffffff04 0,#0000 1px 3px);position:absolute;inset:0}#viewport{cursor:crosshair}.corner-tag{color:var(--text-dim);letter-spacing:1px;z-index:2;font-family:Space Mono,monospace;font-size:10px;position:absolute}.corner-tag.tl{top:10px;left:14px}.corner-tag.tr{text-align:right;top:10px;right:14px}.corner-tag.bl{bottom:10px;left:14px}.corner-tag.br{text-align:right;bottom:10px;right:14px}.footer{background:linear-gradient(180deg, var(--panel), #0a0f16);border:1px solid var(--panel-edge);border-radius:4px;align-items:center;gap:16px;padding:12px 18px;display:flex}.allocator{flex:1;gap:18px;display:flex}.alloc-system{flex-direction:column;flex:1;gap:6px;display:flex}.alloc-system .sys-label{letter-spacing:2px;color:var(--text-dim);justify-content:space-between;font-size:11px;display:flex}.alloc-system .sys-label .pct{color:var(--copper-bright);font-family:Space Mono,monospace}.alloc-row{align-items:center;gap:6px;display:flex}.alloc-btn{background:var(--copper-dim);border:1px solid var(--panel-edge);width:22px;height:22px;color:var(--text);cursor:pointer;border-radius:2px;font-family:Space Mono,monospace;font-size:13px;line-height:1}.alloc-btn:hover{background:var(--copper)}.alloc-btn:active{transform:scale(.92)}.alloc-track{border:1px solid var(--panel-edge);cursor:pointer;background:#050709;border-radius:2px;flex:1;height:8px;transition:border-color .15s;position:relative;overflow:hidden}.alloc-track:hover{border-color:var(--copper)}.alloc-fill{background:linear-gradient(90deg, var(--copper-dim), var(--copper-bright));height:100%;transition:width .2s}.engage-btn{background:radial-gradient(circle at 40% 35%, var(--copper-bright), var(--copper) 60%, var(--copper-dim) 100%);border:2px solid var(--copper-bright);color:#1a0e00;letter-spacing:2px;cursor:pointer;border-radius:50%;width:110px;height:70px;font-family:Rajdhani,sans-serif;font-size:14px;font-weight:700;transition:transform .1s,box-shadow .1s;box-shadow:0 0 24px #d68a4559,inset 0 0 12px #00000040}.engage-btn:hover{box-shadow:0 0 32px #f0a8608c,inset 0 0 12px #00000040}.engage-btn:active{transform:scale(.95)}.hint{color:var(--text-dim);letter-spacing:1px;text-align:center;margin-top:6px;font-family:Space Mono,monospace;font-size:10px}.overlay{z-index:10;text-align:center;background:#040609eb;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:20px;display:flex;position:absolute;inset:0}.overlay.hidden{display:none}.overlay h1{letter-spacing:6px;color:var(--copper-bright);font-size:34px;font-weight:700}.overlay p{color:var(--text-dim);letter-spacing:.5px;max-width:420px;font-size:14px;line-height:1.6}.overlay .stat-line{color:var(--cyan);font-family:Space Mono,monospace;font-size:16px}.overlay button{border:1px solid var(--copper);color:var(--copper-bright);letter-spacing:3px;cursor:pointer;background:0 0;border-radius:2px;padding:14px 34px;font-family:Rajdhani,sans-serif;font-size:13px;font-weight:700;transition:all .15s}.overlay button:hover{background:var(--copper);color:#1a0e00}.joystick,.torp-btn{display:none}body.touch-controls .joystick{border:1px solid var(--panel-edge);touch-action:none;z-index:5;background:#0f16208c;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;display:flex;position:absolute;bottom:18px;left:18px}.joystick-stick{background:radial-gradient(circle at 40% 35%, var(--copper-bright), var(--copper) 70%);border:1px solid var(--copper-bright);pointer-events:none;border-radius:50%;width:42px;height:42px;box-shadow:0 0 14px #d68a4566}body.touch-controls .torp-btn{border:2px solid var(--copper);width:74px;height:74px;color:var(--copper-bright);letter-spacing:1px;touch-action:none;z-index:5;cursor:pointer;background:radial-gradient(circle at 40% 35%,#3a2213,#1a0e00 75%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-family:Space Mono,monospace;font-size:10px;display:flex;position:absolute;bottom:18px;right:18px}.torp-btn:active{border-color:var(--copper-bright);transform:scale(.94)}.torp-btn .icon{font-size:18px;line-height:1}body.touch-controls .corner-tag.bl,body.touch-controls .corner-tag.br{display:none}.boss-bar{z-index:4;pointer-events:none;flex-direction:column;align-items:center;gap:4px;width:min(70%,360px);display:flex;position:absolute;top:34px;left:50%;transform:translate(-50%)}.boss-bar-label{letter-spacing:2px;color:var(--red-bright);text-shadow:0 0 6px #e2564f99;font-family:Space Mono,monospace;font-size:10px}.boss-track{width:100%;height:8px}.boss-fill{background:linear-gradient(90deg, var(--red), var(--red-bright))}.vignette{pointer-events:none;z-index:4;opacity:0;background:radial-gradient(#0000 55%,#c23b3b80 100%);position:absolute;inset:0}.vignette.active{animation:.85s ease-in-out infinite vignettePulse}@keyframes vignettePulse{0%,to{opacity:.22}50%{opacity:.6}}.buff-status{letter-spacing:1px;color:var(--copper-bright);min-height:14px;font-family:Space Mono,monospace;font-size:10px}@media (width<=820px){.console{grid-template-rows:auto 1fr auto;grid-template-columns:1fr}.panel{flex-direction:row;overflow-x:auto}.panel h3{display:none}.stat-block{min-width:140px}.wave-info{margin-top:0}}.starpep-root{background:var(--void);color:var(--text);background-image:radial-gradient(at 50% 30%,#d68a450f,#0000 60%),repeating-linear-gradient(#ffffff03 0 1px,#0000 1px 3px);justify-content:center;align-items:center;width:100vw;height:100vh;font-family:Rajdhani,sans-serif;display:flex;overflow:hidden}.starpep-root>div{justify-content:center;align-items:center;width:100%;display:flex}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
