.app-shell{max-width:1280px;padding:36px 40px 64px}.battle-intro{margin-bottom:28px}.battle-intro h1{font-size:42px;letter-spacing:-1px;line-height:1.2;margin:14px 0}.battle-intro>p:last-child{color:var(--tot-muted);font-size:16px}.game-view{background:transparent;border:0;box-shadow:none}.launch-strip{background:var(--tot-surface);color:var(--tot-ink);border-color:var(--tot-line);padding:20px 24px;border-radius:16px}.launch-strip .eyebrow{color:var(--tot-blue)}.launch-strip p{color:var(--tot-muted);font-size:15px}.launch-strip>div{display:none}.launch-strip .outline-button{background:transparent;color:var(--tot-ink);border-color:var(--tot-control-line)}.match-settings{background:var(--tot-surface);border-color:var(--tot-line)}.match-settings summary{color:var(--tot-ink)}.setup{background:var(--tot-surface);color:var(--tot-ink)}.setup small{color:var(--tot-muted)}.setup select,.setup input,.controls select{background:var(--tot-surface);color:var(--tot-ink);border:1px solid var(--tot-control-line);border-radius:10px;min-height:44px}.solid-button{background:var(--tot-blue);color:#fff;border:1px solid var(--tot-blue);box-shadow:none;border-radius:12px}.outline-button{color:var(--tot-ink);background:var(--tot-surface);border:1px solid var(--tot-control-line);border-radius:12px;box-shadow:none;min-height:44px}.battle-panel{background:linear-gradient(140deg,#fffefa,#e9ece7);border:1px solid #b9c2c8;border-radius:20px 20px 0 0;overflow:hidden;min-height:480px}.battle-panel::before,.battle-panel::after{display:none}#battle{background:none;min-height:480px;height:480px}.battle-hud{top:20px;background:#fffefaed;color:var(--tot-ink);border:1px solid var(--tot-line);box-shadow:0 4px 14px #13243a06;max-width:34%;border-radius:12px;padding:14px 16px}.blue-hud{left:20px;border-left:4px solid var(--tot-blue)}.orange-hud{right:20px;border-right:4px solid var(--tot-orange)}.battle-hud>span:first-child{font-size:17px}.hud-chip{color:var(--tot-muted);font-size:11px;line-height:1.5}.battle-hud>span:last-child{font-size:12px;color:var(--tot-muted)}.wind-station{background:#fffefaeb;color:var(--tot-ink);border:1px solid var(--tot-line);box-shadow:none;top:20px;padding:10px 14px}.wind-station strong{color:var(--tot-ink)}.wind-station-kicker,#wind-station-copy{color:var(--tot-muted)}.match-source{background:var(--tot-surface-soft);color:var(--tot-blue);border-inline:1px solid var(--tot-line)}.status-banner{background:var(--tot-surface);color:var(--tot-muted);border:1px solid var(--tot-line);border-radius:0 0 16px 16px;font-size:13px}.loading-panel{background:var(--tot-blue-soft);color:var(--tot-ink)}.loading-panel p{color:var(--tot-muted)}.controls{background:var(--tot-surface);border:1px solid var(--tot-line);border-radius:14px;padding:16px;margin:16px 0;flex-wrap:wrap}.controls button{min-height:44px}.current-shot,.advanced-panel{margin:24px 0;background:var(--tot-surface);border-color:var(--tot-line)}.cockpit-columns{gap:24px}.pilot{border-color:var(--tot-line);background:var(--tot-surface)}.pilot-heading{background:var(--tot-surface-soft);color:var(--tot-ink);border-color:var(--tot-line)}.provenance,.comparison-panel{background:var(--tot-surface);border-color:var(--tot-line);color:var(--tot-ink);border-radius:18px}.provenance p{color:var(--tot-muted)}.provenance a,.nft-binding a{color:var(--tot-blue)}.provenance{margin:24px 0}.comparison-panel{margin:24px 0}.nft-binding{background:var(--tot-blue-soft)}.battle-intro+.game-view .eyebrow{color:var(--tot-blue)}
@media(max-width:1023px){.app-shell{padding:28px 24px}.wind-station{top:130px}.battle-hud{max-width:43%}}
@media(max-width:760px){.app-shell{padding:28px 16px}.battle-intro h1{font-size:34px}.battle-panel,#battle{height:420px;min-height:420px}.battle-hud{top:12px;padding:10px;max-width:45%}.blue-hud{left:10px}.orange-hud{right:10px}.battle-hud>span:first-child{font-size:14px}.hud-chip{font-size:10px}.wind-station{top:130px;max-width:75%;font-size:11px}.wind-station strong{font-size:15px}.launch-strip{padding:16px}.controls{gap:10px}.cockpit-columns{gap:16px}.current-shot,.advanced-panel{padding:18px}.setup{padding:16px}.setup label{min-width:0;max-width:100%}.setup select{max-width:100%}}

.export-panel{padding:24px;margin:20px 0;border:1px solid var(--tot-control-line);border-radius:16px;background:var(--tot-surface)}.export-panel>div{display:flex;justify-content:space-between;gap:12px;align-items:center}.export-panel p{font-size:14px;color:var(--tot-muted);line-height:1.6}.export-panel button{min-height:44px;padding:8px 16px;border:1px solid var(--tot-control-line);border-radius:10px;background:var(--tot-surface);color:var(--tot-ink);margin-left:12px}.export-panel textarea{width:100%;min-height:180px;margin-top:12px;resize:vertical;font:12px ui-monospace,monospace}.export-panel summary{min-height:44px;align-content:center;cursor:pointer}

.observatory-disclosure{margin:24px 0;border:1px solid var(--tot-line);border-radius:16px;background:var(--tot-surface)}.observatory-disclosure>summary{padding:22px;cursor:pointer;font-weight:650;color:var(--tot-ink);min-height:64px}.observatory-disclosure>.unified-lab{padding:24px}.battle-intro{margin-bottom:20px}.battle-intro h1{font-size:38px}.battle-panel{box-shadow:inset 0 0 60px #f9f9f080}.comparison-panel h2{font-size:20px}.comparison-panel{padding:24px}.current-shot .decision-grid{max-width:620px}.provenance h2{font-size:22px}.provenance{line-height:1.8}@media(max-width:760px){.observatory-disclosure>.unified-lab{padding:12px}.observatory-disclosure>summary{font-size:14px}.battle-intro h1{font-size:32px}}

/* Match setup is a form grid, not a wrapping toolbar. */
.match-settings{overflow:hidden}
.match-settings .setup{display:grid;gap:24px;padding:20px;align-items:stretch}
.setup-rivals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.setup .player-choice{min-width:0;padding:16px;display:grid;grid-template-rows:auto 1fr;align-content:start}
.setup .player-choice small{line-height:1.6;margin-top:8px}
.setup-params{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}
.setup label{min-width:0;gap:8px;align-content:start}
.setup input,.setup select{width:100%;max-width:none;min-width:0;height:44px;box-sizing:border-box}
.setup-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--tot-line);padding-top:20px}
.setup-actions button{min-height:44px;margin:0}
@media(max-width:900px){.setup-params{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.match-settings .setup{padding:16px;gap:20px}.setup-rivals{gap:12px}.setup .player-choice{padding:12px}.setup-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.setup-actions button{white-space:normal}}
@media(max-width:460px){.setup-rivals,.setup-params{grid-template-columns:minmax(0,1fr)}}
.brain-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:24px;padding:36px;background:var(--tot-instrument);color:var(--tot-instrument-ink);line-height:1.8}
.brain-fallback a{color:#a8ded1;text-decoration:underline;min-height:44px;display:flex;align-items:center}
.brain-wrap:has(.brain-fallback) .brain-status{display:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
