@font-face{font-family:Inter;src:url('/assets/fonts/inter-cyrillic-wght-normal.woff2');font-display:swap}
:root{color-scheme:dark;--bg:#101513;--line:#b9cdaa25;--ink:#e8ede3;--muted:#9aa994;--green:#c9df94;--blue:#92d4ec;--orange:#edb676}
.controls-heading{position:sticky;top:-24px;z-index:1;background:#1b281e;margin:-24px -24px 0;padding:24px 24px 12px;border-bottom:1px solid var(--line)}
.controls-dialog{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#070e0bd9;backdrop-filter:blur(6px)}.controls-card{width:min(660px,100%);max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;padding:24px;background:#1b281e;border:1px solid #81976077;border-radius:12px}.controls-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.controls-heading h2{font-size:22px;margin:0}.controls-card p{color:var(--muted);font-size:11px;line-height:1.7}.controls-card table{width:100%;border-collapse:collapse;font-size:12px}.controls-card th,.controls-card td{text-align:left;border-bottom:1px solid var(--line);padding:7px 8px}.controls-card td:last-child{color:var(--blue)}.controls-card td:nth-child(2){color:var(--green)}.binding-editor{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0}.binding-editor label{display:grid;gap:6px;color:var(--muted);font-size:11px}.binding-editor select{background:#111c15;color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:8px}.controls-card button{font-size:11px}#binding-status{min-height:34px;color:var(--orange)}#keyboard-readout{display:block;background:#0d1811;padding:13px;border:1px solid var(--line);min-height:44px;color:var(--green);font:12px/1.6 ui-monospace,monospace}
.aim-controls,.training-controls{max-width:1100px;margin:14px auto;display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;padding:14px 18px;background:#1a271d;border:1px solid var(--line);border-radius:7px;color:var(--muted);font-size:11px}.aim-controls b{color:var(--green)}.aim-controls select,.training-controls select{margin-left:8px;background:#101c15;color:var(--ink);border:1px solid var(--line);padding:7px;border-radius:4px}.training-controls small{flex-basis:100%;line-height:1.6}.training-controls button{font-size:11px}.duel-alert{grid-column:1/-1;margin:0;border:1px solid #eab77b55;background:#573d252b;padding:9px;color:#edca91;font:10px/1.6 ui-monospace,monospace}.death-report{margin-top:14px;border-top:1px solid var(--line);text-align:left}.death-report p{margin:10px 0;line-height:1.6}.death-report b,.death-report span{display:block}.death-report b{color:var(--orange)}.death-report span{font-size:11px;color:var(--muted)}.replay-stop{position:fixed;top:58px;right:25px;z-index:12;border-color:#e2be76;color:#f1d697;background:#283022}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#29362955,transparent 65%),var(--bg);color:var(--ink);font:13px Inter,system-ui,sans-serif}[hidden]{display:none!important}button,select,input{font:inherit}button,a,summary,select{outline-offset:4px}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible,input:focus-visible{outline:2px solid var(--green)}a{color:var(--muted);text-decoration:none}a:hover{color:var(--green)}button{cursor:pointer;border:1px solid var(--line);border-radius:6px;background:#263227;color:var(--ink);padding:9px 13px;transition:background .15s}button:hover{background:#394734}button:disabled{opacity:.4;cursor:default}button[aria-pressed=true]{border-color:#a8bf7066;color:var(--green)}
.arcade{width:100%;max-width:1900px;min-width:760px;margin:auto;padding:14px 22px 20px}header{display:flex;justify-content:space-between;align-items:center;height:20px;font-size:11px;color:var(--muted)}header>span{font:10px ui-monospace,monospace;letter-spacing:1px}header i{font-style:normal;padding:0 8px;color:#63775c}.online-dot{display:inline-block;width:5px;height:5px;margin:0 5px;background:var(--green);border-radius:50%}.title{display:flex;justify-content:space-between;align-items:center;gap:24px;height:52px;margin:4px 0 8px}.title .eyebrow{display:none}h1{display:flex;align-items:baseline;gap:18px;margin:0;font-size:27px;letter-spacing:-1px}h1 span{font-size:12px;letter-spacing:0;color:var(--muted);font-weight:400}.toolbar{display:flex;gap:8px;font-size:12px}#pause{min-width:94px;border-color:#9ab86b77;color:var(--green)}.eyebrow{font:9px ui-monospace,monospace;color:var(--muted);letter-spacing:1px}
/* Scale the original-aspect battlefield to desktop height; status no longer steals height. */
.console{width:min(100%,calc((100dvh - 260px)*var(--field-ratio,1.214286) + 276px));margin:auto;padding:12px;background:linear-gradient(130deg,#283225,#1a241b);border:1px solid #7d926950;border-radius:9px;box-shadow:0 20px 60px #0006,inset 0 1px #fff1}.battle-layout{position:relative;padding-right:240px}.screen{min-width:0;padding:5px;background:#0b110e;border:1px solid #798d6288;border-radius:3px;box-shadow:0 0 0 2px #050b0770,inset 0 0 0 2px #303c2c}canvas{display:block;width:100%;height:auto;aspect-ratio:auto;image-rendering:pixelated;background:#121b12}.screen-caption{display:flex;justify-content:space-between;gap:10px;padding:7px 4px 2px;font:9px ui-monospace,monospace;letter-spacing:1px;color:#84977b}.side-panel{position:absolute;right:0;top:0;bottom:0;width:224px;overflow:auto;scrollbar-width:thin;scrollbar-color:#526a45 transparent;padding:3px 7px;display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:14px 12px}
.hud{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:13px 10px}.hud b{display:block;font:600 15px ui-monospace,monospace;margin:6px 0;color:var(--green)}.hud small{display:block;color:var(--muted);font-size:10px;line-height:1.7}.score-card{grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:11px}.hud .score-card b{font-size:30px;color:#edf0e5;margin:4px 0}.hud .player-two b,.p2-color{color:var(--blue)}.base-status{grid-column:1/-1;border-block:1px solid var(--line);padding:10px 0}.hud .base-status b{display:inline-block;font:500 12px Inter,system-ui,sans-serif;margin:0 0 0 12px}.hud .base-status small{margin-top:4px}.stage-info>b,.enemy-reserve>b{display:block;font:600 25px ui-monospace,monospace;margin:4px 0}.stage-info>span:last-child{display:block;color:var(--green);font-size:11px}.enemy-reserve>b{color:var(--orange)}.enemy-pips{display:grid;grid-template-columns:repeat(7,8px);gap:3px;margin:7px 0}.enemy-pips i{display:block;width:7px;height:9px;border-inline:2px solid #787452;background:#b8a783}.enemy-pips i.active{background:var(--orange);border-color:#b9884b}.enemy-reserve small{font-size:9px;color:var(--muted)}.side-difficulty{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--line);font-size:11px}.attack-panel{grid-column:1/-1;padding:12px 10px;background:#101c1355;border-left:2px solid var(--orange);border-radius:3px}.attack-panel>b{display:block;font-size:12px;color:#f0c892;font-weight:550}.attack-panel small{display:block;font:10px/1.8 ui-monospace,monospace;color:#b8bda3;margin-top:5px}.mission{grid-column:1/-1;margin:0;color:var(--muted);font-size:11px;line-height:1.65}.coop-actions{grid-column:1/-1;display:grid;gap:6px}.coop-actions button{font-size:10px;padding:7px}.game-notices{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:27px;margin:7px 3px 0;font:11px ui-monospace,monospace;color:#b2c09f}.game-notices p{margin:0;line-height:1.5}#freeze{color:var(--blue);white-space:nowrap}
.field-order{grid-column:1/-1;display:grid;grid-template-columns:31px 1fr;gap:9px;align-items:center;padding:9px;border:1px solid #c9df9430;background:#c9df9408;border-radius:4px}.field-order>span{display:grid;place-items:center;width:29px;height:29px;border:1px solid #c9df9450;border-radius:50%;color:var(--green);font:700 16px ui-monospace,monospace}.field-order small{display:block;color:#7f9378;font:8px ui-monospace,monospace;letter-spacing:.08em}.field-order b{display:block;margin:2px 0;color:#d9e7bd;font-size:11px}.field-order p{margin:0;color:var(--muted);font:9px/1.5 ui-monospace,monospace}.field-order.is-complete{border-color:#c9df9470;background:#a7c76a18}.field-order.is-complete>span{background:var(--green);color:#142015}.field-order.is-failed{border-color:#ba806844;opacity:.75}.field-order.is-failed>span{color:#d69b7b;border-color:#ba806866}
.base-status{position:relative;padding-left:29px}.base-status::before{content:'';position:absolute;left:0;top:10px;width:20px;height:20px;border:2px solid #94a895;background:radial-gradient(circle,#d9eead 0 3px,#253d2f 4px 8px,#526e59 9px);box-shadow:inset 0 0 0 4px #243a2a,0 0 0 2px #0a130d}.base-status.is-fortified::before{border-color:#b5e9e5;box-shadow:inset 0 0 0 4px #254648,0 0 0 2px #0a130d}.base-status.is-threat b{color:var(--orange)}.base-status.is-threat::before{border-color:#eab078;box-shadow:inset 0 0 0 4px #593a2b,0 0 0 2px #0a130d}.base-status.is-destroyed b{color:#b58d79}.base-status.is-destroyed::before{border-color:#6b5a50;background:#25221e;box-shadow:inset 0 0 0 4px #3a2e28,0 0 0 2px #0a130d}
.control-bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 17px;margin:12px auto 0;font-size:10px;color:var(--muted)}.control-bar p{margin:0}.control-bar b{color:var(--green)}.control-bar p span{color:#576f4f;margin:0 7px}.control-bar button{font-size:10px;padding:6px 9px}.pad-assignment{font-size:10px}.pad-assignment select{background:#1c291d;border:1px solid var(--line);border-radius:4px;padding:5px;font-size:10px;color:var(--ink);margin-left:5px}#gamepad-status{font-size:9px;color:#7f9474}.help{text-align:center;color:var(--muted);font-size:10px;line-height:1.7;margin:10px 0}
/* Menu remains independently scrollable on shorter laptop screens. */
body:has(.arcade:not([data-state=playing])){overflow:hidden}#overlay{position:fixed;inset:0;z-index:10;padding:20px;display:grid;place-items:center;background:#070e0bc4;backdrop-filter:blur(6px)}.menu-card{width:min(480px,100%);max-height:calc(100dvh - 40px);overflow:auto;scrollbar-width:thin;padding:25px 28px;text-align:center;background:linear-gradient(145deg,#293526,#162118);border:1px solid #9bb78255;border-radius:13px;box-shadow:0 30px 100px #0009}.badge{font:9px ui-monospace,monospace;letter-spacing:3px;color:var(--green)}.menu-card h2{font-size:32px;line-height:1.12;letter-spacing:-1.2px;margin:16px 0 12px}.menu-card>p{max-width:350px;margin:0 auto 16px;color:#abbca0;font-size:12px;line-height:1.65}.segments{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;background:#0c150e;border:1px solid var(--line);border-radius:8px}.segments button{font-size:12px;background:transparent;border-color:transparent}.segments button[aria-pressed=true]{background:#415334;color:#e0edbf;border-color:#8da16855}.setup{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:15px 0;text-align:left}.wide{grid-column:1/-1}.setup label{font-size:11px;color:var(--muted)}.setup select{display:block;width:100%;margin-top:5px;padding:9px;background:#1d2a20;color:var(--ink);border:1px solid #70866788;border-radius:6px;font-size:12px}.setup-note{margin:0;font-size:11px;line-height:1.7;color:#9bae91}.loadout-setup{font-size:11px;color:var(--muted);padding:8px 0;border-top:1px solid var(--line)}.loadout-setup summary{cursor:pointer;color:#d8e3c4}.loadouts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.loadout-setup small{display:block;font-size:10px;margin-top:9px}.menu-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.menu-actions .primary{width:100%;background:var(--green);border-color:#d9edb0;color:#213218;font-weight:650;padding:13px}.menu-actions .primary:hover{background:#dcf0b4}.menu-actions>button:not(.primary){font-size:11px;padding:8px;background:transparent;color:var(--muted)}.menu-foot{display:block;font-size:10px;color:#889d7c;margin-top:14px}.menu-bottom{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:14px;font-size:10px}.menu-sound{font-size:10px;padding:6px 8px;background:transparent}.volume{font-size:9px;color:var(--muted);display:grid;gap:4px;text-align:left}.volume input{width:88px;accent-color:var(--green);cursor:pointer}.results{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-block:1px solid var(--line);padding:18px 0;margin:20px 0;font:20px ui-monospace,monospace;color:var(--green)}.results small{font:10px/1.7 Inter,system-ui,sans-serif;display:block;color:var(--muted);margin-top:4px}
.field-manual{max-width:1100px;margin:38px auto 0;border-top:1px solid var(--line);padding-top:22px}.manual-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.manual-heading h2{font-size:19px;letter-spacing:-.5px;margin:0}.enemy-logic{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.enemy-logic article{padding:18px 15px;background:#21301c33;border:1px solid var(--line);border-radius:7px}.enemy-logic h3{font-size:13px;margin:12px 0 5px}.enemy-logic article>span{font:10px ui-monospace,monospace;color:var(--orange)}.enemy-logic p{font-size:11px;line-height:1.7;color:var(--muted);margin-bottom:0}.enemy{display:block;position:relative;width:21px;height:25px;background:#c5a164;border:5px solid #65583d;box-shadow:inset 0 0 0 2px #e4cf9f}.enemy:before{content:'';position:absolute;left:4px;top:-10px;width:3px;height:9px;background:#e6d5b0}.enemy.scout{background:#e5a178;border-color:#71492f}.enemy.gunner{background:#cb8ca0;border-color:#6d4354}.enemy.heavy{background:#b1b9c0;border-color:#4b555a}.game-guide{border-block:1px solid var(--line);margin-top:22px;color:var(--muted);line-height:1.8}.game-guide summary{display:flex;justify-content:space-between;list-style:none;padding:17px 0;color:#dbe5cd;cursor:pointer}.game-guide summary::-webkit-details-marker{display:none}.bonus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:10px 0}.bonus-grid p{font-size:11px;margin:0}.bonus-grid b{display:block;font-size:13px;color:var(--green);margin-bottom:5px}.rules{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;font-size:11px}.rules b{color:#d0e0c6}footer{max-width:1100px;margin:20px auto 0;display:flex;justify-content:space-between;font-size:10px;color:#829675}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.arcade:fullscreen{max-width:none;overflow:auto;background:var(--bg);padding:10px 18px}.arcade:fullscreen header,.arcade:fullscreen .field-manual,.arcade:fullscreen footer,.arcade:fullscreen .help{display:none}.arcade:fullscreen .title{height:38px;margin:0 0 8px}.arcade:fullscreen .console{width:min(100%,calc((100dvh - 200px)*var(--field-ratio,1.214286) + 276px))}
@media(max-height:760px){.side-panel{gap:10px}.hud{gap:8px}.score-card{padding-bottom:6px}.hud .score-card b{font-size:25px}.base-status{padding:7px 0}.attack-panel{padding:8px}.mission{font-size:10px}.menu-card{padding:18px 25px}.menu-card h2{font-size:27px;margin:12px 0}.setup{gap:9px;margin:12px 0}.menu-foot{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.arcade[data-field=wide]{--field-ratio:1.533333;max-width:2200px}
.arena-name{display:block;margin-top:5px;padding:10px 8px;border:1px solid var(--line);border-radius:6px;color:var(--green);font-size:11px}
.operation-status{grid-column:1/-1;margin:0;border-block:1px solid var(--line);padding:10px 0;color:var(--orange);font:10px ui-monospace,monospace}
.tactical-legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin:18px 0 0;padding:15px 18px;background:#1c291d55;border-left:2px solid #a79975;color:var(--muted);font-size:10px}.tactical-legend b{color:var(--orange);font:600 12px ui-monospace,monospace;margin-right:5px}.tactical-legend p{flex-basis:100%;margin:0;font-size:11px;line-height:1.7}
/* Desktop-first play view: spend the viewport on the arena, not page chrome. */
.arcade[data-view=expanded]{max-width:none;padding:8px 12px}
.arcade[data-view=expanded] header{display:none}
.arcade[data-view=expanded] .title{height:36px;margin:0 0 6px;gap:12px}
.arcade[data-view=expanded] h1{font-size:20px;gap:12px}
.arcade[data-view=expanded] h1 span{font-size:10px}
.arcade[data-view=expanded] .toolbar{font-size:11px;gap:6px}
.arcade[data-view=expanded] .toolbar button{padding:7px 10px}
.arcade[data-view=expanded] .console{width:min(100%,calc((100dvh - 134px)*var(--field-ratio,1.214286) + 206px));padding:6px;border-radius:5px}
.arcade[data-view=expanded] .battle-layout{padding-right:184px}
.arcade[data-view=expanded] .screen{padding:3px}
.arcade[data-view=expanded] .screen-caption{display:none}
.arcade[data-view=expanded] .side-panel{width:174px;padding:3px;gap:10px 8px}
.arcade[data-view=expanded] .hud{gap:8px}
.arcade[data-view=expanded] .hud b{font-size:13px}
.arcade[data-view=expanded] .player-one>.eyebrow,.arcade[data-view=expanded] .player-two>.eyebrow{font-size:8px;letter-spacing:.5px;white-space:nowrap}
.arcade[data-view=expanded] .hud .score-card b{font-size:26px}
.arcade[data-view=expanded] .score-card{padding-bottom:7px}
.arcade[data-view=expanded] .base-status{padding:7px 0}
.arcade[data-view=expanded] .base-status b{margin-left:6px;font-size:11px}
.arcade[data-view=expanded] .attack-panel{padding:9px 7px}
.arcade[data-view=expanded] .game-notices{min-height:18px;margin:4px 2px 0;font-size:10px}
.arcade[data-view=expanded] .control-bar{margin-top:4px;gap:5px 10px}
.arcade[data-view=expanded] .help{margin:7px 0}
.arcade[data-view=expanded] .field-manual{margin-top:24px}
.arcade[data-view=expanded]:fullscreen .console{width:min(100%,calc((100dvh - 134px)*var(--field-ratio,1.214286) + 206px))}
.arcade[data-field=duel]{--field-ratio:1.526316}
.weapon-card{margin-top:9px;padding-top:8px;border-top:1px solid var(--line);min-width:0}.weapon-card strong{display:block;color:var(--weapon-color,var(--green));font:600 11px ui-monospace,monospace;overflow-wrap:anywhere}.weapon-card progress{display:block;width:100%;height:4px;margin:6px 0;border:0;accent-color:var(--weapon-color,var(--green))}.weapon-card small:last-child{color:var(--orange);margin-top:5px}.weapon-card small{min-height:17px}
.arcade[data-mode=duel] #operation-setting{grid-column:1/-1}
.arcade[data-mode=duel] .enemy-logic,.arcade[data-mode=duel] .tactical-legend,.arcade[data-mode=duel] .game-guide{display:none}
.duel-guide{display:none;color:var(--muted);font-size:12px;line-height:1.8}.arcade[data-mode=duel] .duel-guide{display:block}.duel-guide h3{color:var(--green);font-size:18px}.arsenal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.arsenal article{padding:14px;background:#24302466;border:1px solid var(--line);border-top:2px solid var(--buff-color);border-radius:6px}.arsenal b{display:block;color:var(--buff-color,#ebc28a);font-size:13px;margin-bottom:7px}.arsenal small{display:block;font:9px ui-monospace,monospace;letter-spacing:1.5px;margin-bottom:8px}.arsenal span{display:block;clear:both;font-size:11px}.buff-preview{float:right;width:80px;height:64px;margin:-6px -6px 8px 8px;image-rendering:pixelated;background:#0e171499;border-radius:4px}.arsenal-rule{padding:14px 18px;border-left:2px solid var(--green);background:#24302444}.arsenal-rule b{color:var(--green)}
.results{display:block}.result-table{width:100%;border-collapse:collapse;text-align:right;font:12px ui-monospace,monospace}.result-table th,.result-table td{padding:9px 6px;border-bottom:1px solid var(--line)}.result-table th:first-child{text-align:left;color:var(--muted);font-weight:400}.result-table thead th{font-size:10px;color:var(--green)}.round-score{display:grid;grid-template-columns:1fr 1fr;gap:15px;font:600 28px ui-monospace,monospace}.round-score b:last-child{color:var(--blue)}#hunt-status{color:var(--orange);font-size:10px}
