html,body{height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none}body{touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}:root{--pad-face: #1c2737;--pad-edge: #51637c;--pad-ink: #dfe9f5;--pad-lit: #e9eef6;--pad-lit-ink: #16202e}.run{position:relative;height:100%;display:flex;flex-direction:column;gap:8px;padding:6px calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left))}.run-bar{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:0 2px}.run-bar h1{margin:0;font-size:.95rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.run-help{margin-left:auto;width:40px;height:40px;flex:0 0 auto;border:1px solid var(--pad-edge);border-radius:50%;background:var(--pad-face);color:var(--accent);font:inherit;font-size:1.1rem;font-weight:700;cursor:pointer}.run-help:hover,.run-help:focus-visible{border-color:var(--accent)}#game-shell{position:relative;flex:1 1 auto;min-height:0;aspect-ratio:auto;background:none;border:none}#game-shell canvas{border-radius:12px}.readout{position:absolute;top:8px;left:8px;z-index:1;margin:0;padding:8px 10px;border-radius:8px;background:#101826cc;color:var(--pad-ink);font-family:monospace;font-size:clamp(9px,1.5vw,13px);line-height:1.5;white-space:pre;pointer-events:none}.pad{flex:0 0 auto;display:flex;align-items:stretch;gap:8px;height:clamp(86px,19dvh,150px);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.pad-btn{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;padding:0;border:2px solid var(--pad-edge);border-radius:16px;background:var(--pad-face);color:var(--pad-ink);font-family:monospace;font-weight:700;cursor:pointer;touch-action:none;will-change:transform;transition:transform .14s ease-out,background-color 90ms linear,color 90ms linear}.pad-btn.is-down{transition-duration:0s}.pad-btn-jump{flex:1.4 1 0}.pad-stick{position:absolute;right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));width:clamp(104px,24vmin,156px);aspect-ratio:1;border:2px solid #51637c99;border-radius:50%;background:#10182655;touch-action:none;cursor:grab;opacity:.85}.pad-stick.is-live{border-color:var(--accent);opacity:1;cursor:grabbing}.pad-stick-knob{position:absolute;left:50%;top:50%;width:44%;height:44%;margin:-22% 0 0 -22%;border-radius:50%;border:2px solid var(--pad-edge);background:#2b3648cc;transition:transform 90ms ease-out;pointer-events:none}.pad-stick.is-live .pad-stick-knob{background:var(--pad-lit);border-color:var(--pad-lit);transition:none}.pad-stick-note{position:absolute;left:0;right:0;bottom:7%;text-align:center;font-family:monospace;font-size:clamp(8px,2vw,11px);font-weight:400;letter-spacing:.06em;color:var(--pad-ink);opacity:.55;pointer-events:none}.pad-glyph{font-size:clamp(18px,4.4vw,26px);line-height:1.1}.pad-note{font-size:clamp(9px,2.4vw,12px);font-weight:400;opacity:.75;letter-spacing:.06em}.pad-btn.is-down,.pad-btn.is-flash,.pad-btn.is-on{background:var(--pad-lit);color:var(--pad-lit-ink);border-color:var(--pad-lit)}.pad-btn.is-down{transform:scale(.96)}.pad-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pad-ring{position:absolute;inset:-6px;border:3px solid var(--assist, #fff);border-radius:20px;opacity:0;pointer-events:none}@media(min-width:900px)and (min-height:640px){.pad{height:clamp(84px,13dvh,112px)}}@media(orientation:landscape)and (max-height:560px){.run{gap:4px;padding-top:0}.run-bar{position:absolute;top:6px;right:calc(10px + env(safe-area-inset-right));z-index:2;padding:0}.run-bar h1{display:none}.run-help{width:34px;height:34px;font-size:1rem;opacity:.8}.pad{height:clamp(56px,21dvh,76px)}.pad-glyph{font-size:17px}.pad-note{font-size:9px}}.sheet{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.sheet{width:min(560px,100vw);max-height:88dvh;margin:auto;padding:0;border:1px solid #2b3648;border-radius:16px;background:var(--panel);color:var(--text);overflow:auto;overscroll-behavior:contain}.sheet::backdrop{background:#070b12cc}.sheet-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:18px}.sheet-head{display:flex;align-items:center;gap:12px}.sheet-head h2{margin:0;font-size:1.15rem}.sheet-head .tag{font-size:.75rem;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:2px 8px;vertical-align:middle;margin-left:6px;white-space:nowrap}.sheet-close{margin-left:auto;width:36px;height:36px;flex:0 0 auto;border:1px solid var(--pad-edge);border-radius:50%;background:transparent;color:var(--text);font:inherit;font-size:1.3rem;line-height:1;cursor:pointer}.sheet section{display:flex;flex-direction:column;gap:8px}.sheet h3{margin:0;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.sheet p{margin:0;font-size:.9rem;line-height:1.45;color:var(--muted)}.sheet a{color:var(--accent)}.sheet-keys{margin:0;padding-left:18px;font-size:.9rem;line-height:1.7;color:var(--muted)}.sheet-keys b{color:var(--text);font-family:monospace}.sheet-foot{border-top:1px solid #2b3648;padding-top:14px;display:flex;flex-direction:column;gap:6px;font-size:.82rem}.throttle:hover,.throttle:focus-within,.throttle:active{opacity:1}.throttle input[type=range]{writing-mode:vertical-lr;direction:rtl;width:44px;height:100%;margin:0;accent-color:var(--accent);touch-action:none}.throttle input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.shipviz{display:flex;justify-content:center}.shipviz svg{width:min(340px,100%);height:auto;overflow:visible;font-family:monospace;touch-action:none}@media(max-width:699px){.shipviz svg{width:min(272px,100%)}}.shipviz text{fill:var(--muted);font-size:10px;letter-spacing:.08em;text-anchor:middle;pointer-events:none}.shipviz .dial-label,.shipviz .mount-label{fill:var(--text);font-weight:700}.shipviz .dial-label tspan{fill:var(--accent)}.shipviz .mount-state{fill:#7dff8a;font-size:9px;text-transform:uppercase}.shipviz .mount-state.is-off{fill:var(--muted)}.shipviz .mount-state.is-hurt{fill:#ffb057}.shipviz .mount-state.is-out{fill:#ff5d5d}.shipviz .reactor{font-size:9.5px}.shipviz .reactor tspan{fill:var(--accent);font-weight:700}.shipviz .dial-hit,.shipviz .mount-hit{fill:transparent}.shipviz .dial-hit{cursor:grab}.shipviz .dial.is-drag .dial-hit{cursor:grabbing}.shipviz .dial-ring{fill:#0b1018aa;stroke:var(--pad-edge);stroke-width:2}.shipviz .dial-ticks line{stroke:var(--pad-edge);stroke-width:2;stroke-linecap:round}.shipviz .dial-barrel{fill:#8fa3c8}.shipviz .dial-tip{fill:#ffb057}.shipviz .dial-knob{fill:var(--accent);stroke:#0b1018;stroke-width:2}.shipviz .dial.is-off .dial-arm{opacity:.35}.shipviz .dial.is-drag .dial-ring,.shipviz .dial:focus-visible .dial-ring{stroke:var(--accent);stroke-width:3}.shipviz .dial:focus-visible,.shipviz .mount:focus-visible{outline:none}.shipviz .mount-hit{cursor:pointer}.shipviz .mount-core{fill:#6e7f9e;stroke:#7dff8a;stroke-width:2.5;cursor:pointer}.shipviz .mount-core-cannon{fill:#7dff8a;stroke:#2f8a3a}.shipviz .mount.is-off .mount-core{fill:#2b3648;stroke:var(--pad-edge)}.shipviz .mount:focus-visible .mount-core{stroke:var(--accent)}.legend{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;font-size:.88rem;color:var(--muted)}.legend li{display:flex;align-items:center;gap:8px}.legend .swatch{width:16px;height:16px;flex:0 0 auto;border-radius:5px;border:1px solid #ffffff22}.segmented{display:flex;gap:6px;background:#161c27;border-radius:10px;padding:6px}.segmented label{flex:1 1 0}.segmented input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.segmented span{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid transparent;border-radius:8px;color:var(--muted);font-size:.88rem;cursor:pointer}.segmented input:checked+span{background:var(--pad-face);border-color:var(--accent);color:var(--text);font-weight:600}.segmented input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.settings{display:flex;flex-direction:column;gap:12px;background:#161c27;border-radius:10px;padding:12px 14px;font-size:.85rem;color:var(--muted)}.settings label{display:flex;align-items:center;gap:10px}.settings input[type=range]{accent-color:var(--accent);flex:1 1 auto;min-width:0;height:28px}.settings output{color:var(--text);font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}.settings-name{flex:0 0 6.5rem}.sheet .note{font-size:.78rem}@media(max-width:560px){.sheet{width:100vw;max-width:100vw;max-height:92dvh;margin:auto 0 0;border-radius:16px 16px 0 0;border-bottom:none}.sheet-body{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}.run-full{padding:0;gap:0;background:#070a12}.run-full #game-shell{position:absolute;inset:0}.run-full #game-shell canvas{border-radius:0}.run-full .run-bar{position:absolute;top:calc(8px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));z-index:3;padding:0;pointer-events:none}.run-full .run-bar h1{display:block;font-size:.78rem;opacity:.55}.run-full .run-help{pointer-events:auto;width:36px;height:36px;font-size:1rem;background:#10182699;opacity:.8}.run-full .hud{position:absolute;inset:0 0 auto;height:36px;pointer-events:none;font-family:monospace}.hud-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:baseline;gap:10px;white-space:nowrap}#hud-score{font-size:1.05rem;font-weight:700;color:#fff3c4;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px #0d1420}#hud-dist{font-size:.8rem;color:var(--pad-ink);font-variant-numeric:tabular-nums}.hud-chips{position:absolute;right:calc(50% + 84px);top:50%;transform:translateY(-50%);display:flex;gap:6px}.hud-chip{display:flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid #51637c66;border-radius:999px;background:#10182699;color:var(--pad-ink);font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.hud-chip[hidden]{display:none}.hud-shield{color:#35e0ff}.hud-combo{color:#ffd23f}.hud-boss{color:#ff6b6b;border-color:#ff6b6b88}.hud-vault{color:#ff9a3d;border-color:#ff9a3d77}@media(max-width:560px){.run-full .run-bar h1{display:none}.hud-chips{right:auto;left:50%;top:calc(100% + 6px);transform:translate(-50%)}}.run-full .pad{position:absolute;inset:0;z-index:2;display:block;height:auto;pointer-events:none}.run-full .pad>*{pointer-events:auto}.pad-icon,.hud-icon{display:block;width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.hud-icon{width:13px;height:13px}.pad-icon .ic-fill,.hud-icon .ic-fill{fill:currentColor;stroke:none}.pad-pause{position:absolute;left:50%;transform:translate(-50%);bottom:calc(14px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;border:1px solid #51637c99;border-radius:50%;background:#10182699;color:var(--pad-ink);cursor:pointer;opacity:.8}.pad-pause:hover,.pad-pause:focus-visible,.pad-pause.is-down{opacity:1;border-color:var(--accent);color:var(--accent)}.pad-pause.is-down{transform:scale(.94)}.pad-pause:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pad-missile{--stick: clamp(104px, 24vmin, 156px);position:absolute;right:calc(14px + env(safe-area-inset-right) + (var(--stick) - 52px) / 2);bottom:calc(26px + env(safe-area-inset-bottom) + var(--stick));display:flex;align-items:center;justify-content:center;gap:5px;width:52px;height:52px;padding:0;border:1px solid #51637c99;border-radius:50%;background:#10182699;color:var(--pad-ink);font-family:monospace;font-weight:700;cursor:pointer;opacity:.8}.pad-missile-glyph{color:#ffd23f}.pad-missile output{font-size:.95rem;font-variant-numeric:tabular-nums}.pad-missile:hover,.pad-missile:focus-visible,.pad-missile.is-down,.pad-missile.is-on{opacity:1;border-color:#ffd23f}.pad-missile.is-on{background:#ffd23f;color:var(--pad-lit-ink)}.pad-missile.is-on .pad-missile-glyph{color:var(--pad-lit-ink)}.pad-missile.is-down{transform:scale(.94)}.pad-missile:focus-visible{outline:2px solid #ffd23f;outline-offset:2px}.pad-missile.is-spent{opacity:.35;cursor:default}.systems{display:flex;gap:12px;font-family:monospace;font-size:10.5px;letter-spacing:.06em;color:var(--pad-ink);opacity:.85;pointer-events:none}.systems .sys{display:flex;align-items:center;gap:5px}.systems .sys i{width:7px;height:7px;border-radius:50%;background:#7dff8a}.systems .sys.is-hurt i{background:#ffb057}.systems .sys.is-out i{background:#ff5d5d}.systems .sys.is-hurt{color:#ffb057}.systems .sys.is-out{color:#ff9d9d}.target-banner{position:absolute;top:calc(46px + env(safe-area-inset-top));left:50%;transform:translate(-50%);max-width:min(92vw,460px);padding:8px 14px;border:1px solid #ffd23f;border-radius:999px;background:#101826e6;color:#ffd23f;font-family:monospace;font-size:clamp(10px,2.6vw,13px);font-weight:700;letter-spacing:.06em;text-align:center;white-space:nowrap;pointer-events:none}.target-banner[hidden]{display:none}.run-full.is-targeting #game-shell{cursor:crosshair}.pad-pulse{bottom:calc(88px + env(safe-area-inset-bottom) + var(--stick))}.pad-pulse-glyph{color:#35e0ff}.pad-pulse output{font-size:.8rem;color:#9fd8ff}.pad-pulse:hover,.pad-pulse:focus-visible,.pad-pulse.is-down{border-color:#35e0ff}.pad-pulse.is-spent{opacity:.45}.shipviz .dial[data-weapon=beam] .dial-tip{fill:#7dff8a}.shipviz .dial[data-weapon=scatter] .dial-tip{fill:#ff9a3d}.shipviz .dial[data-weapon=drone] .dial-tip{fill:#35e0ff}.shipviz #mount-cannon[data-weapon=beam] .mount-core{fill:#7dff8a}.shipviz #mount-cannon[data-weapon=scatter] .mount-core{fill:#ff9a3d}.shipviz #mount-cannon[data-weapon=drone] .mount-core{fill:#35e0ff}.install{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:7px;width:min(88vw,340px);padding:12px 14px 14px;border:1px solid #ffd23f;border-radius:14px;background:#101826f0;pointer-events:auto}.install[hidden]{display:none}.install-title{margin:0 0 3px;font-family:monospace;font-size:13px;font-weight:700;letter-spacing:.08em;text-align:center;color:#ffd23f}.install button[hidden]{display:none}.install button{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid #51637c99;border-radius:9px;background:#16213699;color:#dfe9f5;font-family:monospace;font-size:12.5px;cursor:pointer}.install button b{font-weight:700;letter-spacing:.06em}.install button span{color:#8fd0ff;font-variant-numeric:tabular-nums}.install button:hover,.install button:focus-visible{border-color:#ffd23f;background:#1c2a44}.install .install-scrap span{color:#9aa7bd}.ship-defs{position:absolute;width:0;height:0;overflow:hidden}.install-ship{position:relative;margin:2px 0 0}.install-hull{display:block;width:100%;height:auto;opacity:.92}.install .install-mount{position:absolute;left:var(--mx);top:var(--my);transform:translate(-50%,-7px);display:flex;flex-direction:column;align-items:center;gap:1px;padding:0;border:0;background:transparent;font-size:10px;line-height:1.15;white-space:nowrap}.install .install-mount.is-above{transform:translate(-50%,calc(-100% + 7px))}.install .install-mount.is-above .install-pip{order:1}.install .install-mount.is-low b{margin-top:26px}.install .install-mount.is-port-edge{align-items:flex-start;transform:translate(-7px,-7px)}.install .install-mount.is-starboard-edge{align-items:flex-end;transform:translate(calc(-100% + 7px),-7px)}.install .install-mount b,.install .install-mount span{display:block;padding:0 6px;background:#101826d9}.install .install-mount b{padding-top:2px;border-radius:7px 7px 0 0;font-size:9px;letter-spacing:.08em}.install .install-mount span{color:#8fd0ff}.install .install-mount .install-next{padding-bottom:2px;border-radius:0 0 7px 7px;color:#dfe9f5}.install-pip{display:block;width:14px;height:14px;margin:1px 0;border-radius:50%;border:2px solid #8fd0ff;background:#16213699;box-sizing:border-box}.install .install-mount[data-fit=upgrade] .install-pip{border-color:#ffd23f;background:#ffd23f55;animation:install-breathe 1.4s ease-in-out infinite}.install .install-mount[data-fit=upgrade] .install-next{color:#ffd23f}.install .install-mount[data-recommended=true] .install-pip{background:#ffd23f;box-shadow:0 0 0 3px #ffd23f44;animation-duration:.9s}.install .install-mount[data-fit=maxed] .install-pip{border-color:#51637c;background:#2b3648;animation:none}.install .install-mount[data-fit=maxed]{opacity:.6;cursor:default}.install .install-mount:hover:not(:disabled) .install-pip,.install .install-mount:focus-visible .install-pip{box-shadow:0 0 0 3px #ffd23f88}@keyframes install-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}.install .install-upgrade{flex-direction:column;align-items:center;gap:2px;border-color:#ffd23f;background:#ffd23f1f;color:#ffd23f}.install .install-upgrade span{color:#ffe28a}.install .install-upgrade:hover,.install .install-upgrade:focus-visible{background:#ffd23f;color:#16202e}.install .install-upgrade:hover span,.install .install-upgrade:focus-visible span{color:#16202e}.station{width:min(90vw,330px);gap:6px}.station button:disabled{opacity:.4;cursor:default}.station-mods{display:flex;gap:6px}.station-mods button{flex:1 1 0;flex-direction:column;align-items:center;gap:2px;padding:7px 4px;font-size:11px}.station-mods button span{font-size:10px}.console{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:hidden}.console::backdrop{background:#070a12b3}.console-body{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;outline:none;padding:12px}.console-ship{width:min(88vw,520px)}.console-ship svg{display:block;width:100%;height:auto}.console-stats{font-family:monospace;font-size:13px;letter-spacing:.08em;color:var(--pad-ink);font-variant-numeric:tabular-nums;opacity:.9}.console-resume{margin-top:4px;padding:9px 22px;border:1px solid #ffd23f;border-radius:999px;background:#10182699;color:#ffd23f;font-family:monospace;font-size:12.5px;font-weight:700;letter-spacing:.08em;cursor:pointer}.console-resume:hover,.console-resume:focus-visible{background:#ffd23f;color:#16202e}.console-pilot{width:clamp(64px,14vmin,96px);height:auto;aspect-ratio:1;flex:0 0 auto;border-radius:50%;border:2px solid rgba(81,99,124,.6);object-fit:cover;background:#101826}.console-pilot.brief-map{width:clamp(112px,30vmin,200px);aspect-ratio:16 / 9;border-radius:8px}@media(max-width:480px){.brief-head.brief-head-map{flex-direction:column;align-items:stretch;gap:10px}.brief-head-map .console-pilot.brief-map{width:100%}}.run-fodder{background:#0f1a12}.run-fodder #game-shell{cursor:crosshair}.run-fodder .hud-core{flex-direction:column;align-items:center;gap:1px}#hud-mission{font-size:.92rem;font-weight:700;letter-spacing:.08em;color:#fff3c4;text-shadow:0 1px 4px #0d1420}#hud-objective{font-size:.72rem;color:var(--pad-ink);opacity:.85;white-space:nowrap}.run-fodder .hud-chips{right:calc(50% + 150px)}.hud-left{color:#ff9d9d}.hud-huts{color:#ffb057}.hud-tanks{color:#cfd6b0}.hud-hostages{color:#7dff8a}.hud-kills{color:#ffd23f}@media(max-width:560px){#hud-objective{display:none}.run-fodder .hud-chips{right:auto}}.roster{position:absolute;left:calc(12px + env(safe-area-inset-left));bottom:calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:5px;max-width:44vw}.roster-chip{display:flex;align-items:center;gap:6px;min-height:38px;padding:3px 9px 3px 5px;border:1px solid #51637c99;border-radius:999px;background:#10182699;color:var(--pad-ink);font-family:monospace;font-size:11.5px;text-align:left;cursor:pointer;opacity:.92}.roster-chip .roster-portrait{width:30px;height:30px;flex:0 0 30px;object-fit:contain;border-radius:50%;background:radial-gradient(circle at 50% 35%,#54735c,#182722 78%);border:1px solid #a0cfb389}.roster-chip .roster-drone{margin-left:auto;color:#9bfaff;font-size:11px;text-shadow:0 0 7px #41e3f0}.roster-chip .roster-drone.is-lost{color:#8a95a0;text-shadow:none;opacity:.4}.roster-chip .roster-skill{flex:0 0 auto;color:#c0f8a7;font:700 9px/1 monospace;white-space:nowrap;text-shadow:0 0 6px #7de27b88}.roster-chip .roster-skill[data-state=charging],.roster-chip .roster-skill[data-state=waiting]{color:#ffd47a;text-shadow:none}.roster-chip .roster-skill[data-state=spent]{color:#8a95a0;text-shadow:none}.roster-chip .roster-skill[hidden]{display:none}.roster-chip .roster-key{font-size:9px;opacity:.55;min-width:1ch}.roster-chip .roster-rank{font-style:normal;font-size:9.5px;letter-spacing:.08em;color:#8fd0ff;min-width:2.6em}.roster-chip .roster-launcher{font-style:normal;font-size:10px;letter-spacing:.04em;color:#ffd23f}.roster-chip b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-chip.is-leader{border-color:#ffd23f}.roster-chip.is-leader b{color:#fff3c4}.roster-chip.is-idle{opacity:.55;border-style:dashed}.roster-chip.is-dead{opacity:.4;text-decoration:line-through;cursor:default}.roster-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pad-fire{position:absolute;right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:78px;height:78px;padding:0;border:2px solid #ff9d9d99;border-radius:50%;background:#10182699;color:#ff9d9d;font-family:monospace;font-size:11px;font-weight:700;letter-spacing:.12em;cursor:pointer;opacity:.85;touch-action:none}.pad-fire.is-down,.pad-fire.is-on{background:#ff6b6b;border-color:#ff6b6b;color:#16202e;opacity:1}.pad-fire:focus-visible{outline:2px solid #ff9d9d;outline-offset:2px}.run-fodder .pad-missile{right:calc(27px + env(safe-area-inset-right))}.run-fodder .pad-grenade{bottom:calc(106px + env(safe-area-inset-bottom))}.run-fodder .pad-rocket{bottom:calc(168px + env(safe-area-inset-bottom))}.pad-grenade .pad-icon{color:#7dff8a}.pad-rocket .pad-icon{color:#ff9a3d}.run-fodder .pad-missile:hover,.run-fodder .pad-missile:focus-visible,.run-fodder .pad-missile.is-down{border-color:var(--accent)}.brief .sheet-body{gap:14px}.run-fodder~.brief,.run-fodder~.boothill{width:min(760px,100vw)}.brief-cast-label{margin:2px 0 -6px;color:#9fb8a2;font:700 11px/1.2 monospace;letter-spacing:.16em}.brief-head{display:flex;align-items:center;gap:14px}.brief-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.brief-name{font-size:1.2rem;color:var(--text)}.brief-theatre{font-family:monospace;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.brief-objective{font-family:monospace;font-size:.92rem;color:#fff3c4}.brief-squad{margin:0;padding:0;list-style:none;display:flex;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:8px}.brief-squad .brief-recruit{display:flex;gap:10px;min-width:0;padding:9px;border:1px solid #51637c99;border-radius:12px;background:linear-gradient(135deg,#1a2c2c,#19243a);font-family:monospace;font-size:12px;color:var(--pad-ink)}.brief-recruit>img{flex:0 0 76px;width:76px;height:76px;object-fit:contain;border-radius:10px;background:radial-gradient(circle at 50% 35%,#516c56,#18231e 76%)}.brief-recruit-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.brief-recruit-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.brief-recruit-head b{color:#f8f3de;font-size:13px}.brief-recruit-head span{color:#bce1b2;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.brief-personality,.brief-lore,.brief-skill{margin:0;line-height:1.35}.brief-personality{color:#c9d2e1}.brief-lore{color:#aebec5;font-size:11px}.brief-skill{color:#ffd47a}.brief-stats{font-family:monospace;font-size:.85rem;line-height:1.5;color:var(--muted)}.brief-stats:empty{display:none}.brief-fallen{color:#ff9d9d}.brief-go{align-self:center;position:sticky;bottom:0;z-index:1;margin-top:4px;padding:12px 34px;border:2px solid #ffd23f;border-radius:999px;background:#10182699;color:#ffd23f;font-family:monospace;font-size:1rem;font-weight:700;letter-spacing:.12em;cursor:pointer}.brief-go:hover,.brief-go:focus-visible{background:#ffd23f;color:#16202e;outline:none}.help-new{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid #51637c99;border-radius:9px;background:#16213699;color:#dfe9f5;font-family:monospace;font-size:12.5px;cursor:pointer}.help-new[hidden]{display:none}.help-new span{color:#9aa7bd}.help-new:hover,.help-new:focus-visible{border-color:#ff9d9d}.boothill{width:min(640px,100vw)}.hill{border-radius:12px;overflow:hidden;background:linear-gradient(#1c2a3d,#24344a 55%,#1a2536)}.hill-svg{display:block;width:100%;height:auto}.hill-ground{fill:#3f7a3a}.grave image{filter:drop-shadow(0 2px 2px #142217a8)}.memorial-grid:not(:empty){display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:9px;max-height:min(46dvh,340px);overflow-y:auto;padding:8px 2px}.memorial-card{min-width:0;padding:8px;border:1px solid #66788a;border-radius:10px;background:linear-gradient(#243348,#182132);text-align:center}.memorial-stone{position:relative;width:124px;height:145px;margin:auto}.memorial-stone img{display:block;width:100%;height:100%;object-fit:contain}.memorial-stone .memorial-portrait{position:absolute;top:0;right:-8px;width:40px;height:40px;border:2px solid #b3c1cf;border-radius:50%;background:#293a43}.memorial-inscription{position:absolute;top:39%;left:18%;width:64%;display:flex;flex-direction:column;align-items:center;gap:2px;color:#182332;text-shadow:0 1px #dbe5f0aa;font:700 11px/1.1 monospace;overflow-wrap:anywhere}.memorial-inscription b{font-size:12px}.memorial-card p{margin:1px 0 4px;font:italic 11px/1.25 Georgia,serif;color:#e5e1d5}.memorial-card small{color:#aab8c9;font:10px/1.2 monospace}.hill-queue{display:flex;align-items:center;gap:0;padding:2px 10px 6px;background:#35683a;overflow:hidden}.recruit{flex:0 0 auto;width:44px;height:44px;object-fit:contain;border-radius:50%;border:1px solid #b9dbb586;background:radial-gradient(circle at 50% 30%,#66865a,#1c362b 78%)}.hill-count{margin-left:auto;padding-left:8px;font-family:monospace;font-size:11px;color:#dfe9f5;white-space:nowrap}@media(max-width:560px){.roster{max-width:52vw}.roster-chip{font-size:10.5px;min-height:34px}.roster-chip .roster-portrait{width:26px;height:26px;flex-basis:26px}}
