/* Expanded game UI: the arena owns the screen; detail lives in menus. */
button,select,input { font:inherit; }
select,input[type=number] { background:#071321;color:var(--text);border:1px solid var(--line-bright);border-radius:8px;padding:9px;width:100%; }
label { color:var(--muted);font-size:12px; }
.topbar { min-height:64px; }
.screen { min-height:calc(100vh - 65px); }
.hero-panel { min-height:660px; }
.hero-wordmark { font-size:clamp(42px,5.1vw,78px); }
.restored-logo-mark { width:70px;height:62px; }
.title-screen { align-items:stretch;padding-top:20px; }
.briefing-panel { display:flex;flex-direction:column;justify-content:center; }
.setup-row { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;max-width:650px; }
.setup-row label { display:grid;gap:7px;font-size:10px;text-transform:uppercase;letter-spacing:.1em; }
.setup-description { color:var(--muted);font-size:12px;line-height:1.5;margin:10px 0 0;max-width:590px;min-height:36px; }
.utility-actions { display:flex;gap:8px;flex-wrap:wrap;margin-top:14px; }
.small-button { border:1px solid var(--line-bright);background:rgba(6,16,28,.85);color:var(--muted);border-radius:9px;padding:9px 12px;cursor:pointer;font-size:11px; }
.small-button:hover { color:var(--cyan);border-color:var(--cyan); }
.loadout-options { display:grid;gap:8px; }
.choice-card { border:1px solid var(--line-bright);background:rgba(6,17,29,.9);color:var(--text);border-radius:12px;padding:15px;text-align:left;cursor:pointer; }
.choice-card strong { display:block;font-size:14px; }
.choice-card p { margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5; }
.choice-card.selected { border-color:var(--cyan);box-shadow:inset 3px 0 var(--cyan);background:rgba(43,217,255,.08); }
.choice-card:disabled { cursor:default;opacity:.4; }
.combat-screen { padding-top:14px;padding-bottom:10px; }
.combat-header { margin-bottom:10px; }
.stat-block { min-height:76px;padding:11px 16px; }
.combat-layout { grid-template-columns:176px minmax(0,1fr);gap:12px; }
.left-rail .hull-card,.right-rail { display:none; }
.rail-card { padding:14px; }
.power-card { grid-template-columns:26px minmax(0,1fr) 22px;gap:7px;padding:8px; }
.power-icon { width:26px;height:26px; }
.combo-card .setting-note,.power-panel .setting-note { font-size:10px;margin:8px 0 0;line-height:1.4; }
.combo-number { font-size:32px;letter-spacing:-.03em; }
.combo-caption { font-size:10px; }
.arena { height:clamp(360px,calc(100vh - 315px),820px); }
.arena-frame { padding:9px; }
.arena-toolbar { min-height:33px; }
.boost-strip { border:0;background:none;padding:2px;letter-spacing:.04em; }
.boss-figure { width:180px;height:185px;opacity:.72;animation:enemyIdle 4s ease-in-out infinite; }
.boss-figure.cloaked { opacity:.14; }
.boss-figure.armored .enemy-image { filter:drop-shadow(0 0 24px #8ee4ff) saturate(.6); }
.boss-figure.volatile .enemy-image { filter:drop-shadow(0 0 24px #ff823d); }
.boss-figure.regenerative .enemy-image { filter:drop-shadow(0 0 22px #72f2b0); }
.enemy-echo { position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0;filter:brightness(1.7) hue-rotate(30deg); }
.phase-echo .enemy-echo.left { animation:echoLeft .8s ease-out; }
.phase-echo .enemy-echo.right { animation:echoRight .8s ease-out; }
.word-card { max-width:none;z-index:4;transition:left .14s ease;will-change:top;min-width:114px; }
.word-card.selected { z-index:40!important;box-shadow:0 0 0 3px #07111d,0 0 0 5px var(--cyan),0 0 40px rgba(43,217,255,.4);background:#092034;opacity:1; }
.word-card.weakpoint { border-color:var(--orange);border-top:3px solid var(--orange); }
.word-card.corrupted { border-style:dotted;border-color:var(--violet); }
.word-card.risk-target { border:2px solid var(--danger);border-radius:0 14px 0 14px;background:linear-gradient(135deg,#401225,#100d1d); }
.word-card.accelerated .lead-letter { background:var(--danger);color:#fff; }
.word-meta { font-size:8px;gap:9px; }
.word-text { font-size:18px;white-space:nowrap; }
.special-target .word-text,.risk-target .word-text { font-size:16px; }
.word-reward { font-size:8px;color:var(--muted);letter-spacing:.02em;margin-top:5px; }
.word-card.selected .word-reward { color:#c4e9fa; }
#wordLayer { position:absolute;inset:0;z-index:5;pointer-events:none; }
#fxLayer { position:absolute;inset:0;z-index:50;pointer-events:none; }
.target-banner { z-index:3;top:6px;left:10px;right:auto;max-width:75%;text-align:left;background:rgba(5,12,22,.76);padding:7px 10px;border-radius:7px;font-size:9px; }
.target-banner { transform:none;bottom:auto;min-width:0; }
.input-dock { z-index:60;bottom:10px;padding:10px 14px; }
.typing-track { font-size:22px;min-height:27px; }
.input-status span { font-size:10px; }
.lock-timer { margin-top:6px; }
.command-panel { z-index:80; }
.combat-footer { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px; }
.combat-footer p { margin:0;color:var(--muted);font-size:10px; }
.footer-buttons { display:flex;gap:6px; }
.threat-inline { height:3px;margin:0 5px 5px;background:#273344;overflow:hidden;border-radius:5px; }
.threat-inline span { display:block;height:100%;background:linear-gradient(90deg,var(--violet),var(--danger));transition:width .12s; }
.attack-warning { position:absolute;right:12px;top:12px;z-index:65;background:#391121;border:1px solid var(--danger);color:#ffcfda;font-size:11px;padding:10px 12px;border-radius:9px;max-width:265px;pointer-events:none; }
.attack-warning small { display:block;margin-top:4px;font-size:9px; }
.warning-ring { position:absolute;left:50%;top:20px;width:185px;height:185px;border:3px solid var(--danger);border-radius:50%;transform:translateX(-50%);z-index:2;pointer-events:none;animation:warningPulse .6s ease-in-out infinite alternate; }
.hazard-note { position:absolute;left:12px;bottom:114px;font-size:10px;color:var(--orange);background:#091420;border:1px solid var(--line);border-radius:8px;padding:8px 10px;z-index:3;pointer-events:none; }
.hazard-blackout { background:#02060c; }
.hazard-blackout::before { opacity:.04; }
.hazard-blackout .boss-figure { opacity:.12; }
.hazard-gravity::before { animation:gravityGrid 1s linear infinite; }
.last-stand { box-shadow:inset 0 0 0 2px var(--danger),inset 0 0 90px rgba(255,82,110,.2); }
.ghost-pace { font-size:9px;color:var(--violet); }
.ghost-mark { height:2px;background:var(--violet);width:0;opacity:.8; }
.modal-backdrop { position:fixed;inset:0;z-index:150;background:rgba(0,5,12,.84);backdrop-filter:blur(9px);display:grid;place-items:center;padding:24px; }
.modal-backdrop:not([open]) { display:none; }
dialog.modal-backdrop { width:100%;max-width:none;height:100%;max-height:none;margin:0;border:0;color:var(--text); }
dialog.modal-backdrop::backdrop { background:rgba(0,5,12,.6); }
.modal { width:min(900px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid var(--line-bright);border-radius:20px;background:linear-gradient(145deg,#0e2134,#050c16);padding:28px;box-shadow:0 30px 100px #0008; }
.modal-heading { display:flex;justify-content:space-between;align-items:center;margin-bottom:18px; }
.modal-heading h2 { margin:0;font-size:26px;letter-spacing:-.04em; }
.modal p { line-height:1.5; }
.modal-intro { color:var(--muted);font-size:13px;margin-top:0; }
.choice-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 20px; }
.route-grid { grid-template-columns:repeat(2,1fr); }
.modal-label { color:var(--cyan);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase; }
.modal-actions { display:flex;justify-content:flex-end;gap:10px;margin-top:18px; }
.form-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
.form-grid label { display:grid;gap:8px; }
.check-row { display:flex;align-items:center;gap:10px;margin:15px 0;color:var(--text);font-size:13px; }
.check-row input { accent-color:var(--cyan); }
.setting-note { margin:8px 0;color:var(--muted);font-size:11px; }
.help-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.help-item { padding:14px;border:1px solid var(--line);border-radius:12px; }
.help-item b { color:var(--cyan);font-size:13px; }
.help-item p { color:var(--muted);font-size:12px;margin:7px 0 0; }
.table-wrap { overflow:auto; }
table { width:100%;border-collapse:collapse;font-size:12px; }
th,td { padding:11px 9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap; }
th { color:var(--muted);font-size:10px;text-transform:uppercase; }
.record-note { font-size:11px;color:var(--muted); }
.result-details { margin:16px 0;color:var(--muted); }
.result-details summary { cursor:pointer;font-size:12px; }
.detail-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0; }
.detail-grid div { padding:12px;border:1px solid var(--line);border-radius:8px;font-size:11px; }
.detail-grid b { color:var(--text);display:block;font-size:18px;margin-bottom:5px; }
.outcome-panel { width:min(900px,100%);padding:34px; }
.result-grade { display:inline-block;padding:7px 15px;border:1px solid var(--cyan);color:var(--cyan);border-radius:9px;font-size:21px;font-weight:950;margin:14px 0 0; }
.results-grid { margin:20px 0; }
.unlock-notice { color:var(--green);font-size:12px; }
.large-words .word-text { font-size:21px; }
.large-words .special-target .word-text,.large-words .risk-target .word-text { font-size:19px; }
.large-words .word-meta,.large-words .word-reward { font-size:10px; }
.colorblind { --green:#ffc56e;--danger:#f6a8ff;--violet:#cab5ff;--orange:#ffe079; }
.theme-ember { --cyan:#ffb45b;--violet:#ff866d; }
.theme-aurora { --cyan:#84f9c8;--violet:#b7a2ff; }
.fx-minimal .spark { display:none; }
.fx-plasma .spark { border-radius:50%;box-shadow:0 0 9px var(--spark); }
.enemyVariant-prismatic .enemy-image { filter:hue-rotate(45deg) drop-shadow(0 0 22px var(--violet)); }
.reduced-motion *, .reduced-motion *::before,.reduced-motion *::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
@keyframes enemyIdle { 0%,100%{transform:translateX(-50%) translateY(0) rotateY(-2deg);}50%{transform:translateX(-50%) translateY(-5px) rotateY(2deg);} }
@keyframes warningPulse { from{opacity:.35;box-shadow:0 0 10px var(--danger);}to{opacity:.8;box-shadow:0 0 26px var(--danger);} }
@keyframes gravityGrid { from{background-position:0 0;}to{background-position:0 80px;} }
@keyframes echoLeft { 0%{opacity:.4;transform:translateX(0);}100%{opacity:0;transform:translateX(-110px) rotateY(40deg);} }
@keyframes echoRight { 0%{opacity:.4;transform:translateX(0);}100%{opacity:0;transform:translateX(110px) rotateY(-40deg);} }
@media(max-width:1180px) { .combat-layout{grid-template-columns:155px minmax(0,1fr)} .arena{height:calc(100vh - 315px);min-height:360px;} .hero-panel{padding:28px;} }
@media(max-width:960px) { .combat-layout{grid-template-columns:135px minmax(0,1fr)} .side-rail{display:grid;grid-template-columns:1fr;} .power-deck{grid-template-columns:1fr;} .power-count{display:grid;} .power-card{grid-template-columns:24px 1fr auto;padding:7px;gap:5px;} .briefing-panel{display:none;} .hero-panel{min-height:620px;} }
@media(max-height:800px) and (min-width:960px) { .hero-panel{min-height:0;padding:28px;} .hero-logo{margin:18px 0 10px;} .hero-wordmark{font-size:56px;} .briefing-item{padding:8px 11px;} .briefing-item p{font-size:10px;line-height:1.4;} .briefing-list{gap:7px;margin-bottom:10px;} .loadout-options{gap:6px;} .loadout-options .choice-card{padding:10px;} .loadout-options .choice-card strong{font-size:12px;} .loadout-options .choice-card p{font-size:10px;margin-top:4px;} .briefing-panel{padding:19px;} .title-screen{padding-top:15px;padding-bottom:15px;} .hero-actions{margin-top:14px;} .setup-row{margin-top:12px;} .difficulty-picker{margin-top:10px;} }
@media(max-width:700px) { .combat-layout{grid-template-columns:1fr;} .left-rail{display:none;} .form-grid,.choice-grid,.route-grid,.help-grid{grid-template-columns:1fr;} .modal{padding:20px;} .arena-toolbar{flex-wrap:wrap;} .combat-footer p{display:none;} }

/* The combat model and its health are one readable, reserved stage. */
.enemy-stage { position:absolute;left:50%;top:26px;transform:translateX(-50%);width:clamp(250px,27vw,340px);z-index:2;pointer-events:none; }
.enemy-stage .boss-figure { position:relative;left:auto;top:auto;width:100%;height:clamp(150px,calc((100vh - 315px)*.44),270px); }
.enemy-stage .boss-figure:not(.real-3d) { transform:none;animation:none; }
.boss-figure.real-3d,.boss-figure.real-3d.arriving,.boss-figure.real-3d.dying,.boss-figure.real-3d.attacking,.boss-figure.real-3d.hit,.boss-figure.real-3d.charging,.boss-figure.real-3d.powered { transform:none;animation:none!important;opacity:1;filter:none;transition:opacity .25s;will-change:auto; }
.boss-figure.real-3d::after { display:none; }
.boss-figure.real-3d .enemy-image,.boss-figure.real-3d .enemy-echo { display:none; }
.boss-figure canvas { display:block;width:100%;height:100%; }
.boss-figure.real-3d.cloaked { opacity:.25; }
.enemyVariant-prismatic .boss-figure canvas { filter:hue-rotate(45deg); }
.enemy-health-panel { margin:0 16px;padding:8px 12px 9px;border:1px solid #33506b;border-top:2px solid #f48167;border-radius:9px;background:linear-gradient(145deg,#102437f5,#080f1ff5);box-shadow:0 4px 18px #0008; }
.enemy-health-heading { display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#a8bfd5;letter-spacing:.08em; }
.enemy-health-heading b { color:#fff;font-variant-numeric:tabular-nums; }
.enemy-health-panel .boss-name { font-size:12px;letter-spacing:.08em;margin:4px 0; }
.enemy-health-panel .boss-phase { font-size:9px;margin-top:5px;line-height:1.4;min-height:10px;color:#b7c4de; }
.enemy-health-panel .boss-track { height:8px;margin-top:4px;position:relative;background:#030812;border:1px solid #435064; }
.boss-trail { position:absolute;inset:0 auto 0 0;width:100%;background:#ffd49b; }
.enemy-health-panel .boss-fill { position:relative;transition:width .09s linear;background:linear-gradient(90deg,#ff5e79,#ffa15a);box-shadow:0 0 12px #ff71564d; }
.warning-ring { top:42px;width:220px;height:170px;border-width:1px; }
.pace-block { border:1px solid #257187;background:linear-gradient(120deg,#0c3042,#0d172e);text-align:left; }
.pace-main { display:flex;align-items:baseline;gap:8px; }
.pace-main>span { font-size:30px;font-weight:950;font-variant-numeric:tabular-nums;line-height:1.15; }
.pace-main small { font-size:11px;color:#8bcddd;letter-spacing:.08em; }
.pace-main b { margin-left:auto;font-size:13px;color:#ffca83;white-space:nowrap; }
.pace-detail { font-size:8px;color:#a4bbce;letter-spacing:.04em;margin-top:5px; }
.pace-boosted { border-color:#4ce3dd;box-shadow:inset 0 -2px #4ce3dd66; }
.showcase-layout { display:grid;grid-template-columns:245px 1fr;gap:20px; }
.showcase-layout label { display:grid;gap:8px; }
.showcase-layout .check-row { display:flex; }
.showcase-actions { display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:16px 0; }
.showcase-actions button { text-transform:capitalize; }
.showcase-viewport { height:360px;min-width:0;background:radial-gradient(ellipse at 50% 50%,#183754,#060e1b 75%);border:1px solid #365674;border-radius:14px; }
.showcase-viewport canvas { width:100%;height:100%;display:block; }

/* Mission brief has its own warm field-manual identity. */
.briefing-panel { position:relative;border:1px solid #9e724c;border-top:4px solid #ffbe70;background:linear-gradient(145deg,#3b2b27f5,#162135fa 55%,#131725fc);box-shadow:0 14px 35px #0005,inset 0 0 55px #e78e3010;justify-content:flex-start; }
.briefing-panel .panel-heading { padding-bottom:12px;border-bottom:1px solid #ba8c5350;margin-bottom:12px; }
.briefing-panel .panel-heading h2 { color:#ffce96;font-size:20px;letter-spacing:-.02em; }
.briefing-panel .panel-heading>span { background:#ffbc6d;color:#221c19;border-radius:4px;padding:5px 7px;font-weight:950; }
.brief-intro { font-size:11px;font-weight:850;letter-spacing:.09em;color:#fff0d9;line-height:1.7;margin:0 0 16px; }
.brief-intro span { font-size:10px;font-weight:400;letter-spacing:0;color:#d1bead; }
.briefing-item { --brief-color:#61e2f5;background:#071b2bc7;border:1px solid #426378;border-left:3px solid var(--brief-color); }
.briefing-item:nth-child(2) { --brief-color:#ffbe70;background:#30231fc7;border-color:#805a3d; }
.briefing-item:nth-child(3) { --brief-color:#c7a4ff;background:#231c38c7;border-color:#645177; }
.briefing-item:nth-child(4) { --brief-color:#80e8af;background:#112c2ac7;border-color:#42695b; }
.briefing-index { background:var(--brief-color);color:#0d1827;box-shadow:none;font-weight:950;border:none; }
.briefing-item strong { color:var(--brief-color); }
.briefing-item p { color:#c3c8d3; }
.briefing-panel .loadout { padding-top:15px;border-top:1px solid #b3885540; }
.briefing-panel .choice-card { background:#0c1624c9;border-color:#465b72; }
.briefing-panel .loadout-options { grid-template-columns:repeat(3,minmax(0,1fr));gap:7px; }
.briefing-panel .loadout-options .choice-card { padding:11px; }
.briefing-panel .loadout-options .choice-card strong { font-size:12px; }
.briefing-panel .loadout-options .choice-card p { font-size:10px;line-height:1.45; }
.briefing-panel .choice-card[data-kit=assault] strong { color:#ffbf87; }
.briefing-panel .choice-card[data-kit=support] strong { color:#a8e1bf; }
.briefing-panel .choice-card.selected { border-color:#ffbb71;box-shadow:inset 3px 0 #ffbb71;background:#3b2a24c9; }
@media(max-height:800px) { .brief-intro{margin-bottom:10px;font-size:10px;} .briefing-panel .panel-heading{margin-bottom:8px;padding-bottom:8px;} .briefing-panel .panel-heading h2{font-size:18px;} .briefing-panel .loadout{padding-top:10px;} }
@media(max-width:960px) { .enemy-stage{width:250px;} .pace-main b{font-size:10px;} .showcase-layout{grid-template-columns:1fr;} .showcase-viewport{height:300px;} }

/* Abilities live among the targets, not in a separate command deck. */
.combat-layout { grid-template-columns:160px minmax(0,1fr); }
.capital-letter { color:#ffe39b!important;background:#89662d42;border-bottom:2px solid #ffcf76;border-radius:3px;padding:0 1px;font-weight:950; }
.capital-letter.typed,.capital-letter.typed-preview { color:var(--cyan)!important;background:none;border-color:transparent; }
.case-hint { color:#ffdc98;font-size:8px;letter-spacing:.06em;margin-top:5px; }
.power-word::before { content:'POWER WORD'; }
.ability-fx-layer { position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden; }
.ability-effect { --ability:#72e9bd;position:absolute;inset:0;animation:abilityFade 1.4s ease both; }
.ability-freeze { --ability:#b1e7ff;background:radial-gradient(ellipse,#82ceff12,transparent 65%); }
.ability-bomb { --ability:#ff9d68;background:radial-gradient(ellipse,#ff643126,transparent 65%); }
.ability-rocket { --ability:#ffa862; }
.ability-overdrive { --ability:#ffe47a;box-shadow:inset 0 0 70px #ffc14a30; }
.ability-shield { --ability:#76d7ff; }
.ability-ring { position:absolute;left:50%;top:35%;width:120px;height:120px;margin:-60px;border:2px solid var(--ability);border-radius:50%;box-shadow:0 0 24px color-mix(in srgb,var(--ability) 40%,transparent);animation:abilityShock 1.2s ease-out both; }
.ability-ring.secondary { animation-delay:.2s; }
.ability-glyph { position:absolute;left:50%;top:27%;font-size:32px;transform:translateX(-50%);filter:drop-shadow(0 0 12px var(--ability));animation:abilityGlyph 1.3s ease both; }
.ability-announcement { position:absolute;left:50%;top:7%;transform:translateX(-50%);font-size:10px;font-weight:950;letter-spacing:.12em;color:var(--ability);padding:8px 12px;border:1px solid var(--ability);border-radius:7px;background:#071526ed;white-space:nowrap; }
.ability-particle { position:absolute;left:50%;top:35%;width:6px;height:6px;background:var(--ability);color:var(--ability);font-style:normal;border-radius:50%;animation:abilityParticle 1.15s ease-out var(--delay) both;box-shadow:0 0 10px var(--ability); }
.ability-repair .ability-particle,.ability-freeze .ability-particle { width:auto;height:auto;background:none;box-shadow:none;font-size:15px; }
.ability-freeze .ability-ring { border-radius:25%;transform:rotate(45deg); }
.ability-overdrive .ability-ring { border-style:dashed; }
.ability-shield .ability-ring { border-width:5px; }
.overdriven { box-shadow:inset 0 0 0 1px #ffdd7399,inset 0 0 50px #ffc95712; }
.pilot-block.shielded { border-color:#75d7ff;box-shadow:inset 3px 0 #75d7ff,0 0 15px #75d7ff24; }
.pilot-block.repairing { animation:hullRepair 1.2s ease; }
.pilot-block.shield-charging { animation:hullShield 1.2s ease; }
.combat-paused .ability-effect,.combat-paused .ability-effect *,.combat-paused .pilot-block,.combat-paused .victory-copy,.combat-paused .victory-grid,.combat-paused .victory-fallback { animation-play-state:paused!important; }

/* A defeated enemy owns the screen until its destruction is complete. */
.cinematic-hidden { visibility:hidden; }
.encounter-victory { position:fixed;inset:0;z-index:100;overflow:hidden;background:radial-gradient(ellipse at 50% 34%,#193f5a,#070f1e 58%,#03070f);color:#eefaff; }
.victory-grid { position:absolute;inset:0;background-image:linear-gradient(#62d8fc0b 1px,transparent 1px),linear-gradient(90deg,#62d8fc0b 1px,transparent 1px);background-size:64px 64px;transform:perspective(650px) rotateX(52deg) scale(1.7);opacity:.6;animation:victoryGrid 3.8s linear; }
.victory-viewport { position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(94vw,960px);height:64vh; }
.victory-viewport canvas { width:100%;height:100%;display:block; }
.victory-copy { position:absolute;left:20px;right:20px;bottom:6vh;text-align:center;animation:victoryConfirm .8s .3s both; }
.victory-kicker { font-size:11px;color:#89efd4;letter-spacing:.35em;font-weight:950; }
.victory-copy h2 { margin:10px 0;font-size:clamp(35px,5.2vw,78px);letter-spacing:-.04em;line-height:1;color:#fff;text-shadow:0 0 35px #72e8ff44; }
#defeatedName { color:#ffc68e;letter-spacing:.19em;font-size:14px;font-weight:900;margin:13px 0 20px; }
.victory-rewards { font-size:10px;color:#a5c5dc;letter-spacing:.12em; }
.victory-unlock { min-height:18px;color:#82f0cb;font-size:11px;margin:14px 0; }
.victory-copy small { font-size:9px;color:#849eaf;letter-spacing:.05em; }
.victory-progress { width:220px;height:3px;background:#24384b;margin:18px auto 10px; }
.victory-progress span { display:block;height:100%;background:#74dfff; }
.victory-fallback { width:100%;height:100%;object-fit:contain;animation:victoryFallback 3.8s ease both; }

/* Field requisition: clear categories, metrics, selection and route. */
.requisition-modal { width:min(1130px,100%);background:linear-gradient(145deg,#112b3c,#081321 55%,#151628);border-top:3px solid #ffc47e; }
.requisition-modal .modal-heading h2 { font-size:23px;letter-spacing:.12em;color:#ffce95; }
.requisition-summary { display:flex;justify-content:space-between;gap:18px;padding:14px 17px;background:#091522;border:1px solid #34516a;border-radius:10px; }
.requisition-summary span { display:block;font-size:8px;letter-spacing:.12em;color:#8da9bf;margin-bottom:5px; }
.requisition-summary b { font-size:15px;color:#eaf8ff; }
.tier-unlock { font-size:10px!important;color:#a2e2c5;background:#0d342a7a;padding:9px 12px;border-left:2px solid #77dfac;margin:12px 0 17px; }
.upgrade-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 22px; }
.upgrade-card { --upgrade:#79dcf5;position:relative;display:flex;flex-direction:column;min-height:220px;gap:9px;padding:17px;text-align:left;border:1px solid #40556e;border-top:3px solid var(--upgrade);border-radius:13px;background:linear-gradient(145deg,#142b3d,#091321);color:#e5f4ff;cursor:pointer;transition:transform .18s,box-shadow .18s; }
.upgrade-card[data-category=recovery] { --upgrade:#82e0ae;background:linear-gradient(145deg,#173b32,#091e22); }
.upgrade-card[data-category=firepower] { --upgrade:#ffad77;background:linear-gradient(145deg,#3b2b29,#1a1625); }
.upgrade-card[data-category=defense] { --upgrade:#91bfff;background:linear-gradient(145deg,#243553,#0c1629); }
.upgrade-card[data-category=abilities] { --upgrade:#c4a1ff;background:linear-gradient(145deg,#322b50,#14192d); }
.upgrade-card:hover { transform:translateY(-3px);box-shadow:0 12px 22px #0005; }
.upgrade-card.selected { border-color:var(--upgrade);box-shadow:0 0 0 2px color-mix(in srgb,var(--upgrade) 30%,transparent),inset 0 0 30px color-mix(in srgb,var(--upgrade) 7%,transparent); }
.upgrade-category { color:var(--upgrade,#91bdcf);font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase; }
.upgrade-icon { color:var(--upgrade);font-size:30px;height:38px;display:grid;align-content:center; }
.upgrade-card strong { font-size:15px;line-height:1.2; }
.upgrade-metric { color:var(--upgrade);font-size:10px;letter-spacing:.03em; }
.upgrade-card p { color:#aec2d3;font-size:11px;line-height:1.5;margin:0;flex:1; }
.upgrade-stack { color:#8ba5ba;font-size:8px; }
.upgrade-select { display:block;padding-top:10px;border-top:1px solid #778eac30;font-size:9px;font-weight:950;color:#9eb3c5; }
.selected .upgrade-select { color:var(--upgrade); }
.route-card { background:#0a1728; }
.route-card.selected { border-color:#ffba78;box-shadow:inset 3px 0 #ffba78; }
.route-card strong { margin-top:9px; }
.requisition-selection { color:#e9d7bb;font-size:10px;letter-spacing:.06em; }
.requisition-modal h3 { font-size:10px;color:#8de2fb;letter-spacing:.1em;margin:12px 0; }
.requisition-modal .modal-actions { position:sticky;bottom:-20px;background:linear-gradient(#091525ee,#091525);padding:12px 0 4px;z-index:2; }
.requisition-modal .modal-actions .requisition-selection { flex:1;align-self:center;margin:0; }
.unlock-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0; }
.unlock-tile { padding:13px;border:1px solid #344858;background:#081521;border-radius:10px; }
.unlock-tile.earned { border-color:#52bca0;background:#102b28; }
.unlock-tile strong { font-size:12px;display:block;color:#d9eaff;margin-bottom:7px; }
.unlock-tile small { display:block;color:#8ca8ba;font-size:10px; }
.unlock-tile.earned small { color:#8fe2bb; }
.unlock-bar { height:3px;background:#263a4e;margin-top:10px; }
.unlock-bar span { display:block;height:100%;background:#6bd8b3; }
.tier-map { display:flex;gap:8px;margin:15px 0;flex-wrap:wrap; }
.tier-map div { flex:1;min-width:120px;border:1px solid #455670;border-radius:7px;padding:10px;color:#b4cce1;font-size:10px; }
.tier-map b { display:block;color:#ffcb8f;margin-bottom:8px; }
.tier-map span { line-height:1.6; }
.theme-void { --cyan:#bca7ff;--violet:#ef9cff; }
.theme-solar { --cyan:#ffd479;--violet:#ff987d; }
.fx-orbital .spark { border-radius:50%;background:transparent;border:2px solid var(--spark);width:9px;height:9px; }
.enemyVariant-chrome .boss-figure canvas { filter:saturate(.55) brightness(1.15); }
.enemyVariant-obsidian .boss-figure canvas { filter:hue-rotate(35deg) contrast(1.2); }
@keyframes abilityFade { 0%,70%{opacity:1;}100%{opacity:0;} }
@keyframes abilityShock { 0%{scale:.2;opacity:1;}100%{scale:3.5;opacity:0;} }
@keyframes abilityGlyph { 0%{opacity:0;scale:.7;}20%,65%{opacity:1;scale:1;}100%{opacity:0;scale:1.2;} }
@keyframes abilityParticle { from{transform:rotate(var(--angle)) translateX(25px);opacity:1;}to{transform:rotate(var(--angle)) translateX(200px) rotate(90deg);opacity:0;} }
@keyframes hullRepair { 30%{box-shadow:0 0 35px #69f7a366,inset 0 0 25px #69f7a344;border-color:#8cffbb;} }
@keyframes hullShield { 30%{box-shadow:0 0 40px #76d7ff80,inset 0 0 30px #76d7ff40;border-color:#bdefff;} }
@keyframes victoryConfirm { from{opacity:0;transform:translateY(25px);}to{opacity:1;transform:none;} }
@keyframes victoryGrid { from{background-position:0 0;}to{background-position:0 140px;} }
@keyframes victoryFallback { 0%,25%{filter:brightness(1);opacity:1;transform:scale(1);}65%{filter:brightness(2);opacity:.6;transform:scale(.95) rotate(5deg);}100%{opacity:0;transform:translateY(80px) scale(.6);} }
@media(max-height:780px) { .requisition-modal{padding:20px;} .upgrade-card{min-height:195px;padding:13px;gap:7px;} .upgrade-icon{height:26px;font-size:24px;} .upgrade-grid{margin:10px 0 16px;} .requisition-summary{padding:10px 14px;} .victory-copy{bottom:4vh;} .victory-copy h2{font-size:clamp(35px,4.8vw,62px);} }
@media(max-height:720px) and (min-width:1001px) { .requisition-modal .modal-heading{margin-bottom:12px;} .requisition-modal .tier-unlock{margin:10px 0;padding:7px 10px;} .requisition-modal .upgrade-card{min-height:174px;gap:6px;padding:11px;} .requisition-modal .upgrade-card p{font-size:10px;line-height:1.4;} .requisition-modal .upgrade-icon{height:23px;} .requisition-modal .route-card{padding:12px;} .requisition-modal .route-card p{font-size:10px;line-height:1.4;margin-top:6px;} .requisition-modal .requisition-selection{margin:8px 0;} .requisition-modal .modal-actions{margin-top:8px;} }
@media(max-width:1000px) { .upgrade-grid{grid-template-columns:1fr 1fr;} .combat-layout{grid-template-columns:140px minmax(0,1fr);} }
@media(max-width:700px) { .combat-layout{grid-template-columns:1fr;} .unlock-grid{grid-template-columns:1fr;} }
