:root{--bg:#0a1120;--bg-deep:#060b16;--panel:#0f1a2e;--panel-2:#132139;--line:#22324f;--text:#dce6f5;--dim:#7d8aa5;--teal:#3fd8c8;--orange:#f2933c;--danger:#e8466a;--good:#5fe08a;--mono:ui-monospace, "JetBrains Mono", "SF Mono", Consolas, monospace;--sans:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:var(--bg-deep);height:100%;color:var(--text);font-family:var(--sans);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}.app{background:var(--bg);border-left:1px solid var(--line);border-right:1px solid var(--line);flex-direction:column;max-width:520px;height:100dvh;margin:0 auto;display:flex}.hud{border-bottom:1px solid var(--line);padding:10px 16px 8px}.hud-top{justify-content:space-between;align-items:center;display:flex}.eyebrow{letter-spacing:.16em;color:var(--dim);font-size:11px}.hud h1{margin:2px 0 0;font-size:22px;font-weight:700}.hud h1 .sub{color:var(--dim);font-size:16px;font-weight:400}.timer{background:0 0;border:0;padding:0}.timer.urgent svg{animation:.5s ease-in-out infinite alternate pulse}@keyframes pulse{to{transform:scale(1.06)}}.objective{align-items:center;gap:10px;margin-top:6px;display:flex}.objective .bar{background:#1b2a44;border-radius:3px;flex:1;height:6px;overflow:hidden}.objective .fill{height:100%;transition:width .3s}.objective .pct{font-family:var(--mono);color:var(--teal);font-size:12px}.layers{gap:6px;margin-top:8px;display:flex}.layers button{border:1px solid var(--line);color:var(--dim);background:0 0;border-radius:999px;padding:3px 10px;font-size:12px}.layers button.on{border-color:var(--teal);color:var(--teal);background:#3fd8c814}.board-wrap{flex:1;min-height:0;position:relative}.board{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.board svg{display:block}.hz-label,.exit-label,.ship-name,.vel-tag,.ghost-tag,.fx-text{font-family:var(--mono);pointer-events:none}.hz-label{letter-spacing:.04px;font-size:.2px}.exit-label{letter-spacing:.03px;opacity:.8;font-size:.2px}.ship-name{letter-spacing:.02px;font-size:.19px;font-weight:600}.vel-tag{font-size:.18px}.ghost-tag{letter-spacing:.02px;font-size:.19px;font-weight:700}.fx-text{font-size:.34px;font-weight:800}.cam-buttons{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.cam-buttons button{border:1px solid var(--line);background:#0f1a2ed9;border-radius:8px;width:36px;height:36px;font-size:18px}.cam-buttons button.on{border-color:var(--teal);color:var(--teal)}.focus-card,.help{border:1px solid var(--line);background:#0a1120eb;border-radius:10px;padding:10px 12px;font-size:13px;position:absolute;top:10px;left:12px;right:60px}.help{color:var(--text);line-height:1.4}.help .dismiss{color:var(--dim);margin-top:4px;font-size:11px;display:block}.fc-head{font-family:var(--mono);letter-spacing:.08em;justify-content:space-between;font-weight:700;display:flex}.fc-faction{color:var(--dim);font-weight:400}.fc-role{color:var(--dim);margin:2px 0 6px}.fc-grid{grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px;display:grid}.fc-grid span{color:var(--dim);font-family:var(--mono);letter-spacing:.08em}.fc-grid b{font-weight:500}.gameover{border:1px solid var(--line);text-align:center;background:#0a1120f2;border-radius:14px;padding:18px;position:absolute;inset:auto 16px 16px}.go-title{font-size:26px;font-weight:800}.go-title.won{color:var(--good)}.go-title.lost{color:var(--danger)}.go-reason{color:var(--dim);margin:4px 0 12px}.go-row{color:var(--dim);justify-content:center;align-items:center;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.go-row button{background:var(--panel);border:1px solid var(--line);border-radius:6px;width:34px;height:30px}.go-row button.on{border-color:var(--orange);color:var(--orange)}.controls{border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));flex-direction:column;gap:8px;display:flex}.watching{text-align:center;color:var(--dim);padding:24px 0}.stock{grid-template-columns:repeat(5,1fr);display:grid}.stat{flex-direction:column;display:flex}.stat .label{letter-spacing:.16em;color:var(--dim);font-size:10px}.stat .value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.stat.warn .value{color:var(--orange)}.stat.dim .value{color:#3a4a66}.queue{align-items:center;gap:8px;display:flex}.queue-label{letter-spacing:.16em;color:var(--dim);width:58px;font-size:10px}.slot{height:30px;font-family:var(--mono);letter-spacing:.12em;border-radius:6px;flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.slot.filled{color:var(--teal);background:#133744;border:1px solid #1e5560}.slot.empty{border:1px dashed var(--line)}.weapons{gap:6px;display:flex}.chip{background:var(--panel);border:1px solid var(--line);text-align:left;border-radius:8px;flex-direction:column;flex:1;align-items:flex-start;min-width:0;padding:5px 8px;display:flex}.chip b{font-family:var(--mono);letter-spacing:.1em;font-size:11px}.chip span{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.chip.has-target span{color:var(--orange)}.chip.armed{border-color:var(--teal);background:#3fd8c81a}.chip.armed b{color:var(--teal)}.chip:disabled{opacity:.4}.hand{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;display:flex}.card .icon{color:var(--text);font-size:24px;line-height:1}.card .name{font-family:var(--mono);letter-spacing:.06em;font-size:11px;font-weight:700}.card .sub{color:var(--dim);white-space:nowrap;font-size:10px}.card.picked{border-color:var(--teal)}.card.picked .icon{color:var(--teal)}.card:disabled{opacity:.35}.lock{background:var(--teal);color:#062420;height:48px;font-family:var(--mono);letter-spacing:.3em;border:0;border-radius:10px;width:100%;font-size:18px;font-weight:800}.lock:disabled{color:#5d8a90;background:#1d3b44}@media (height<=700px){.card .sub{display:none}.card{padding:6px 2px}.lock{height:42px}}.chip.toggle b{align-items:center;gap:6px;display:flex}.chip .led{border:1.5px solid var(--dim);border-radius:50%;flex:none;width:8px;height:8px}.chip.armed .led{background:var(--teal);border-color:var(--teal);box-shadow:0 0 6px var(--teal)}.chip.has-target:not(.armed){border-color:#f2933c8c}.report{border:1px solid var(--line);background:#0a1120eb;border-radius:10px;padding:8px 12px;font-size:13px;line-height:1.45;position:absolute;top:10px;left:12px;right:60px}.report-title{font-family:var(--mono);letter-spacing:.16em;color:var(--dim);justify-content:space-between;align-items:center;margin-bottom:2px;font-size:10px;display:flex}.report-line:before{content:"› ";color:var(--dim)}.report-line.good{color:var(--teal)}.report-line.bad{color:#ff7a8f}.report-line.info{color:var(--text)}.hud .eyebrow .exit{color:var(--dim);background:0 0;border:0;padding:0 8px 0 0;font-size:16px;line-height:1}.timer:disabled{cursor:default}.pilots{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.pilot{color:var(--text);border:1px solid;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;display:inline-flex}.pilot i{border-radius:50%;width:6px;height:6px}.pilot b{color:var(--good);font-weight:700}.pilot.me{background:#ffffff0f;font-weight:600}.pilot.out{opacity:.45;text-decoration:line-through}.share{border:1px solid var(--line);color:var(--teal);background:0 0;border-radius:999px;margin-left:auto;padding:2px 10px;font-size:12px}.banner{z-index:5;border-radius:10px;padding:10px 12px;font-size:13px;position:absolute;bottom:12px;left:12px;right:12px}.banner.danger{border:1px solid var(--danger);color:#ffb3c1;background:#e8466a26}.banner.static{margin:6px 0;position:static}.lock.secondary{border:1px solid var(--line);color:var(--text);background:0 0;font-size:15px}.menu{justify-content:center}.menu-body{padding:24px 20px calc(24px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;display:flex;overflow-y:auto}.menu .title{letter-spacing:.02em;margin:0;font-size:40px}.tagline{color:var(--dim);margin:-6px 0 6px}.field{flex-direction:column;gap:6px;display:flex}.field input{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;font-size:16px}.field input:focus{border-color:var(--teal);outline:none}.seg{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.seg.small{grid-template-columns:repeat(4,1fr)}.seg button{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.seg button span{color:var(--dim);font-size:11px}.seg button.on{border-color:var(--teal);background:#3fd8c814}.fineprint{color:var(--dim);font-size:12px;line-height:1.4}.card{position:relative}.card .count{font-family:var(--mono);color:var(--teal);font-size:10px;position:absolute;top:3px;right:5px}.replay-btn{font:inherit;letter-spacing:.12em;color:var(--accent,#3fd8c8);background:0 0;border:1px solid;border-radius:6px;min-height:28px;padding:4px 8px}.report-actions{gap:6px;display:flex}.flag-btn{color:var(--orange)}.flag-btn.sent{color:var(--dim)}.flag-form{gap:6px;margin:6px 0 4px;display:flex}.flag-form input{background:var(--panel);border:1px solid var(--line);min-width:0;color:var(--text);border-radius:6px;flex:1;padding:6px 8px;font-size:16px}.flag-form input:focus{border-color:var(--orange);outline:none}.replay-bar{pointer-events:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;bottom:12px;left:12px;right:84px}.replay-phase{font-family:var(--mono);letter-spacing:.18em;color:#e8eefc;border:1px solid var(--line);background:#0a1120d9;border-radius:8px;padding:6px 10px;font-size:12px}.replay-bar button{pointer-events:auto;font-family:var(--mono);letter-spacing:.12em;color:#e8eefc;border:1px solid var(--line);background:#0a1120d9;border-radius:8px;min-height:36px;padding:8px 12px;font-size:12px}.layers button,.share,button.exit{position:relative}.layers button:after,.share:after{content:"";position:absolute;inset:-10px -3px}button.exit{color:inherit;background:0 0;border:0;margin-left:-2px;padding:0 10px 0 2px;font-size:20px;line-height:1}button.exit:after{content:"";position:absolute;inset:-14px -10px -14px -12px}.cam-buttons button{width:44px;height:44px}.seg button{min-height:44px}.banner.warn{color:#f7e2a0;background:#f2c94c1f;border:1px solid #f2c94c}@media (width>=900px) and (height>=520px){.app:not(.menu){border:0;grid-template:"board hud""board controls"1fr/1fr 400px;max-width:none;display:grid}.app:not(.menu) .hud{border-left:1px solid var(--line);grid-area:hud}.app:not(.menu) .board-wrap{grid-area:board}.app:not(.menu) .controls{border-left:1px solid var(--line);border-top:0;grid-area:controls;overflow-y:auto}.focus-card,.help,.report{width:440px;right:auto}.banner,.replay-bar{width:480px;right:auto}.gameover{width:420px;left:50%;right:auto;transform:translate(-50%)}}
