/* Disable double-tap zoom; preserve scrolling, pinch zoom and game-specific gestures. */
:where(*) { touch-action: manipulation; }

.blackstar-menu { position: fixed; inset: 0; overflow: auto; display: flex; flex-direction: column; color: #eff2e9; background: #0b141c; }
.bs-hero { position: fixed; inset: 0; background: linear-gradient(90deg, #050d14a6, transparent 65%), url('./site/hero-d4a1c5dd9c63.webp') center / cover no-repeat; pointer-events: none; }
.bs-header, .bs-menu-content, .bs-footer { flex-shrink: 0; position: relative; z-index: 1; }
.bs-header { display: flex; align-items: center; justify-content: space-between; padding: 30px 42px; }
.bs-home { color: #eff2e9; font-size: 12px; text-decoration: none; }
.bs-music-toggle { position: fixed; top: 24px; right: 28px; z-index: 40; min-height: 40px; padding: 9px 13px; border: 1px solid #82998c88; border-radius: 3px; color: #eaf2dd; background: #0b202be8; font: 12px monospace; cursor: pointer; }
.bs-music-toggle[aria-pressed="true"] { color: #bec9c8; }
.bs-music-toggle:focus-visible { outline: 2px solid #d8f176; outline-offset: 3px; }
.screen-head { flex-direction: column; align-items: flex-start; gap: 16px; padding-right: 0; }
.screen-head .back-button { min-height: 40px; white-space: nowrap; }
#hud .hud-score { margin-right: 130px; }
.bs-menu-content { width: min(440px, 44vw); margin: clamp(28px, 6vh, 72px) 0 36px 7vw; }
.bs-title { margin: 0 0 28px; font-family: Impact, 'Arial Narrow', sans-serif; font-size: clamp(58px, 7.5vw, 106px); font-weight: 400; letter-spacing: -2px; line-height: 1; }
.bs-title > span { display: block; margin-bottom: 14px; font: 11px monospace; letter-spacing: 9px; }
.bs-actions { display: grid; gap: 12px; }
.bs-action { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 66px; padding: 18px 24px; border: 1px solid transparent; border-radius: 3px; font-size: 13px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; text-align: left; transition: background .15s, transform .15s; }
.bs-action > span { font-size: 23px; font-weight: 400; }
.bs-solo { color: #eff2e9; border-color: #b4c4c180; background: #0b1b27ed; }
.bs-action .bs-action-copy { display: grid; gap: 8px; font-size: 13px; }
.bs-action-copy strong { font-weight: 700; }
.bs-action-copy small { color: #b5c7ca; font: 10px/1.5 monospace; letter-spacing: 0; text-transform: none; }
.bs-solo:hover { background: #21343e; }
.bs-ranking { display: grid; gap: 14px; width: 100%; margin-top: 20px; padding: 18px 24px; border: 1px solid #8ba1a258; border-radius: 3px; text-align: left; color: #eff2e9; background: #081924ed; }
.bs-ranking-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; font: 700 12px/1.4 monospace; text-transform: uppercase; letter-spacing: .08em; }
.bs-ranking-heading small { color: #abc0c4; font: 10px/1.4 monospace; text-transform: none; letter-spacing: 0; }
.bs-ranking-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; }
.bs-ranking-summary strong { font: 600 28px/1.1 system-ui; color: #d8f176; }
.bs-ranking-summary small { color: #bfd0d3; font: 11px/1.5 monospace; }
.bs-ranking-link { color: #dce8d2; font: 11px/1.4 monospace; }
.bs-ranking-link > span { float: right; }
.bs-ranking:hover { background: #18333f; border-color: #d8f176; }
.bs-campaign { color: #eff2e9; border-color: #eff2e957; background: #11212ac4; }
.bs-online { color: #142014; background: #d8f176; }
.bs-campaign:hover { background: #21343e; }
.bs-online:hover { background: #e6ff91; }
.bs-action:hover { transform: translateX(3px); }
.blackstar-menu button:focus-visible, .bs-home:focus-visible { outline: 2px solid #eff2e9; outline-offset: 5px; }
.bs-footer { display: flex; flex-shrink: 0; gap: 26px; margin-top: auto; padding: 0 7vw 24px; }
.bs-footer button { border: 0; padding: 8px 0; color: #c0cece; background: none; font-size: 11px; }
.bs-footer button:hover, .bs-home:hover { color: #d8f176; }
.bs-party { background: #0b1b27f5; }
@media (max-width: 700px) {
  .bs-music-toggle { top: 14px; right: 12px; min-height: 36px; padding: 8px 10px; font-size: 11px; }
  #hud .hud-score { margin-right: 0; margin-top: 48px; }
  .bs-header { padding: 24px; }
  .bs-hero { background-image: linear-gradient(0deg, #08131be8, #08131b80 60%, #08131b40), url('./site/hero-d4a1c5dd9c63.webp'); background-position: 65% center; }
  .bs-menu-content { width: auto; margin: min(9vh, 76px) 24px 32px; }
  .bs-title { font-size: clamp(54px, 14vw, 88px); margin-bottom: 28px; }
  .bs-action { min-height: 62px; }
  .bs-footer { padding: 0 24px 24px; }
}

/* Online scenes use a compact reader, with art, dialogue and controls in flow.
   Full-screen caption percentages must never apply to this small side panel. */
#cinematic.cine-nonblocking {
  top: 130px; right: 16px; bottom: auto; left: auto;
  width: min(430px, calc(100vw - 32px)) !important; height: auto !important;
  max-height: calc(100dvh - 240px); display: flex; flex-direction: column;
  overflow: hidden; pointer-events: none;
}
#cinematic.cine-nonblocking .cine-stage {
  position: relative; inset: auto; flex: 0 0 auto; width: 100%; height: 110px;
  opacity: .65; filter: none;
}
#cinematic.cine-nonblocking .cine-caption,
#cinematic.cine-nonblocking.composed-scene .cine-caption {
  position: relative; inset: auto; flex: 1 1 auto; min-height: 0; max-height: none;
  width: 100%; margin: 0; padding: 12px 14px; overflow: hidden;
  display: flex; flex-direction: column; border-radius: 0; background: #07141bf5;
}
#cinematic.cine-nonblocking .cine-caption > small { font: 600 12px/1.4 monospace; }
#cinematic.cine-nonblocking .cine-caption > p[data-cine-text] {
  flex: 1 1 auto; min-height: 0; margin: 6px 0 10px;
  font-size: calc(16px * var(--caption-size, 1)) !important; line-height: 1.4;
  white-space: pre-wrap; overflow-wrap: anywhere; overflow: auto; scrollbar-width: thin;
}
#cinematic.cine-nonblocking .cine-controls {
  position: static; flex: 0 0 auto; display: flex; flex-wrap: wrap;
  justify-content: flex-start; gap: 6px; margin: 0;
}
#cinematic.cine-nonblocking .cine-controls button { min-height: 34px; padding: 7px 9px; font-size: 10px; }
@media (max-height: 600px) {
  #cinematic.cine-nonblocking { top: 90px; max-height: calc(100dvh - 185px); }
  #cinematic.cine-nonblocking .cine-stage { display: none; }
}
@media (max-height: 600px) {
  .bs-header { padding-top: 18px; padding-bottom: 18px; }
  .bs-menu-content { margin-top: 15px; margin-bottom: 30px; }
  .bs-title { margin-bottom: 20px; font-size: 64px; }
  .bs-action { min-height: 52px; padding: 12px 20px; }
  .bs-footer { position: relative; left: auto; bottom: auto; padding: 0 7vw 18px; }
}

/* Fireteam lobby and the continuous match-start presentation. */
.fireteam-lobby .party-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;margin-top:28px}
.fireteam-lobby .party-panel{padding:28px;border:1px solid #56758866;background:linear-gradient(145deg,#183442ed,#0b1c29f5);box-shadow:0 14px 45px #0004;border-radius:8px;min-width:0}
.fireteam-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.fireteam-heading h2{margin:8px 0 0;font-size:22px}.party-readiness{color:#bfe6ca;background:#244f3f66;padding:8px 10px;border:1px solid #7cae8a66;border-radius:4px;font:11px monospace;white-space:nowrap}
.fireteam-lobby .participants{padding:0;margin:24px 0;list-style:none}.fireteam-lobby .participants li{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid #69849533;min-width:0}.player-number{font:14px monospace;color:#89a5b5}.player-name{flex:1;min-width:0;overflow-wrap:anywhere;font-size:17px}.participants small{display:block;font:10px/1.6 monospace;color:#95b2c0;margin-top:4px;letter-spacing:.07em}.player-status{font:10px monospace;color:#c1c6cb;max-width:100px;text-align:right}.player-status.is-ready{color:#bde9c7}.empty-slot{color:#8ba3b0}.party-invitation{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.fireteam-lobby .party-code{display:block;margin:8px 0 0;font:clamp(18px,2vw,27px) monospace;letter-spacing:.04em;color:#ecddad;overflow-wrap:anywhere}.party-invitation button{font-size:11px;padding:12px 16px}
.mission-readiness h2{font-size:clamp(24px,3vw,36px);margin:14px 0;line-height:1.15}.mission-readiness .body-copy{line-height:1.7;color:#b9ccd6}.fireteam-lobby .connection-status{margin:24px 0;padding:14px;border-left:3px solid #afc9be;background:#08172277;color:#d5e5dd;font-size:13px;line-height:1.5}.mission-readiness .online-actions{display:grid;gap:12px}.mission-readiness button{width:100%;margin:0}.fireteam-lobby button:disabled{opacity:.45;cursor:default}
.party-launch-overlay{position:fixed;inset:0;z-index:45;background:#05121de8;backdrop-filter:blur(10px);display:grid;place-items:center;padding:24px;overflow:auto}.party-launch-card{text-align:center;width:min(520px,100%);padding:38px 26px;border:1px solid #7997a770;background:linear-gradient(145deg,#193747,#0b1b28);border-radius:10px;box-shadow:0 22px 90px #0008}.party-launch-card h2{font-size:clamp(22px,3vw,32px);margin:24px 0 16px}.party-launch-card p{color:#b9ccd6;line-height:1.65;min-height:3.3em}.launch-spinner{width:46px;height:46px;border:2px solid #80999d33;border-top-color:#e2d4a5;border-radius:50%;margin:26px auto;animation:party-launch-spin 1.2s linear infinite}.launch-steps{list-style:none;padding:0;display:flex;justify-content:center;gap:18px;margin:28px 0;font:11px/1.6 monospace;color:#8ba3b0}.launch-steps li{flex:1;border-top:2px solid #45627066;padding-top:10px}.launch-steps .current{color:#ecddad;border-color:#ecddad}.launch-steps .complete{color:#bde9c7;border-color:#7cae8a}.party-launch-card button{margin-top:8px}
@keyframes party-launch-spin{to{transform:rotate(360deg)}}
@media(max-width:800px){.fireteam-lobby .party-layout{grid-template-columns:1fr}.fireteam-lobby .party-panel{padding:20px}.fireteam-heading h2{font-size:19px}.player-name{font-size:15px}.party-launch-card{padding:28px 18px}.launch-steps{gap:10px}}
@media(prefers-reduced-motion:reduce){.launch-spinner{animation:none;border-top-color:#ecddad}}

/* Public room directory and in-room setup. */
.room-browser-top{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:30px 0}.room-browser-top h2{font-size:clamp(22px,3vw,34px);line-height:1.2;margin:0 0 12px}.room-browser-top .body-copy{color:#a9c1cc;margin:0}.room-browser-top>button{flex-shrink:0;min-width:205px;margin:0}.room-code-form{display:flex;align-items:center;gap:14px;padding:22px 24px;background:#193342a8;border:1px solid #69849544;border-radius:8px}.room-code-form label{font-size:14px;white-space:nowrap}.room-code-form input{min-width:0;flex:1}.room-code-form button{margin:0;white-space:nowrap}.room-list-heading{display:flex;justify-content:space-between;align-items:center;margin-top:30px}.room-list-heading h2{font-size:20px}.room-list-heading button{margin:0;font-size:12px}.public-fireteam{display:flex;align-items:center;gap:22px;padding:24px;background:#112a37b8;border:1px solid #69849544;border-radius:8px;margin:12px 0}.room-emblem{font-size:32px;color:#eddda8;background:#294855;padding:18px;border-radius:6px}.public-fireteam-copy{flex:1;min-width:0;overflow-wrap:anywhere}.public-fireteam h3{font-size:19px;margin:0 0 8px}.public-fireteam p{margin:0 0 7px;font-size:14px;color:#b7cdd7}.public-fireteam small{font:11px monospace;color:#90aeba}.public-fireteam button{margin:0;flex-shrink:0}.room-empty{text-align:center;padding:48px 24px;background:#10263399;border:1px dashed #69849566;border-radius:8px;color:#afc6d0}.room-empty>span{font-size:32px;color:#e2d4a5}.room-empty h3{color:#e8eff2;font-size:21px}.room-empty p{font-size:14px;line-height:1.6;max-width:420px;margin:12px auto}.room-settings{border:0;padding:0;margin:24px 0;min-width:0}.room-settings .field{margin:16px 0}.room-settings:disabled{opacity:.8}.room-settings details{margin-top:20px;border-top:1px solid #69849544;padding-top:18px}.room-settings summary{cursor:pointer;color:#ddce9c;font:14px/1.5 monospace;min-height:32px}.room-advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.room-settings input,.room-settings select,.room-visibility select{width:100%;min-width:0}.room-visibility{display:flex;align-items:center;gap:10px;width:100%;font-size:12px;color:#a9c1cc;border-top:1px solid #69849533;padding-top:16px}.room-visibility select{width:auto;flex:1;max-width:180px}.participants select{max-width:180px;min-width:0;font-size:12px;padding:10px 8px}.participants .closed-slot{opacity:.55}.computer-slot .player-number{color:#e1cb8b}.computer-slot .player-name{color:#ecdcad}.fireteam-roster>[data-fill-computers]{font-size:12px;padding:10px 0;margin:0 0 24px;text-align:left}.room-settings .small-note{margin-bottom:0}.room-browser a{color:#e5d5a4}
@media(max-width:700px){.room-browser-top{align-items:stretch;flex-direction:column;gap:20px}.room-browser-top>button{width:100%}.room-code-form{flex-wrap:wrap;padding:16px;gap:12px}.room-code-form label{width:100%}.room-code-form input{width:100%;flex:auto}.room-code-form button{width:100%}.public-fireteam{gap:12px;padding:16px;flex-wrap:wrap}.room-emblem{font-size:22px;padding:12px}.public-fireteam-copy{flex:1}.public-fireteam h3{font-size:16px}.public-fireteam button{width:100%}.room-advanced-grid{grid-template-columns:1fr}.fireteam-lobby .participants li{gap:10px;flex-wrap:wrap}.participants select{max-width:none;margin-left:24px;width:calc(100% - 24px)}.participants .player-name{min-width:110px}.room-browser{padding-bottom:40px}}
@media(max-width:700px){.fireteam-lobby .screen-head h1,.room-browser .screen-head h1{font-size:32px}}

.room-presets{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}
.room-presets button{display:flex;flex-direction:column;align-items:flex-start;gap:9px;text-align:left;padding:18px;border:1px solid #587282;background:#102a38;color:#dce8e7;border-radius:6px}
.room-presets button[aria-pressed=true]{border-color:#d8ef8b;background:#25433c;box-shadow:inset 3px 0 #d8ef8b}
.room-presets strong{font-size:17px}.room-presets small{font-size:12px;line-height:1.5;color:#b7cdd0}.room-settings .room-presets{margin:0 0 22px}.bs-footer{flex-wrap:wrap}
@media(max-width:700px){.room-presets{grid-template-columns:1fr}.room-presets button{padding:16px}.bs-footer{gap:12px 20px}}

/* Read-only story theatre. */
.review-endings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.review-ending { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 24px; color: #e8eee8; background: #102530; border: 1px solid #6e8a975e; text-align: left; }
.review-ending-rescued { border-color: #bfdc8a99; background: linear-gradient(130deg, #233c34, #102530); }
.review-ending > small { color: #b8cbbd; font: 10px/1.5 monospace; text-transform: uppercase; letter-spacing: .1em; }
.review-ending > strong { font: 600 24px/1.2 system-ui; }
.review-ending > span { color: #b9cdd0; font: 13px/1.6 system-ui; }
.review-ending > b { margin-top: auto; padding-top: 6px; color: #d8f176; font: 12px/1.5 monospace; }
.review-ending:hover, .review-ending:focus-visible { border-color: #d8f176; background: #233e44; outline-color: #d8f176; }
.review-rescue-note { padding: 16px 20px; margin: 0 0 28px; border-left: 2px solid #d8f176; background: #142f3588; color: #bdd0d0; font: 13px/1.7 system-ui; }
@media(max-width:600px) { .review-endings { grid-template-columns: 1fr; } .review-ending { padding: 20px; } }
.review-stats{display:flex;gap:36px;flex-wrap:wrap;padding:24px 0;margin-bottom:20px;border-top:1px solid #738d993e;border-bottom:1px solid #738d993e;font:10px/1.5 monospace;letter-spacing:.1em;color:#b7c9ce}
.review-stats b{display:block;font:600 29px/1.5 system-ui;color:#e5eee9}
.review-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:20px;margin:20px 0}
.review-filters label{display:flex;flex-direction:column;gap:9px;color:#b9c9cb;font:11px/1.4 monospace}
.review-filters select{min-height:42px;padding:10px 12px;background:#10232f;border:1px solid #597582;color:#e2ebeb}
.review-filters .review-check{flex-direction:row;align-items:center;min-height:42px}
.review-actions{display:flex;align-items:center;gap:24px;margin:25px 0}
.review-actions>span{max-width:530px;font-size:13px;line-height:1.6;color:#a9c0c6}
.review-scene-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0 30px}
.review-scene{display:flex;align-items:center;text-align:left;gap:15px;border:1px solid #58758555;background:linear-gradient(115deg,#152936dd,#0c1d28ec);padding:18px;color:#dfe8e6;cursor:pointer;min-height:106px}
.review-scene:hover,.review-scene:focus-visible,.review-scene.selected{background:#243c48;border-color:#c5dba8;outline-color:#c5dba8}
.review-scene>span:nth-child(2){display:flex;flex-direction:column;gap:7px;min-width:0}
.review-scene small{font:9px monospace;letter-spacing:.1em;color:#acc1c6}
.review-scene strong{font:600 16px/1.3 system-ui}
.review-scene>span>span{font:10px/1.4 monospace;color:#95b0bd;overflow-wrap:anywhere}
.review-number{font:17px monospace;color:#789aa9;min-width:25px}
.review-play-icon{margin-left:auto;white-space:nowrap;font:10px monospace;color:#d2deb6}
.review-player-bar{position:fixed;top:10px;left:4%;right:4%;z-index:90;display:flex;justify-content:center;align-items:center;gap:14px;color:#d9e3df;background:#06111ef5;padding:8px 12px;border:1px solid #7b9cac5c;box-shadow:0 5px 20px #0007;font:11px/1.4 monospace}
.review-player-bar button{padding:10px;color:#d7e4e6;background:#19323f;border:1px solid #739cac66;font:10px monospace;cursor:pointer}
.review-player-bar button:disabled{opacity:.35;cursor:default}
.review-player-bar button:focus-visible{outline:2px solid #e4d7a4}
.review-player-bar span{flex:1;text-align:center}

/* Operator selection uses current cinematic identities and authored loadout sheets. */
.deployment-screen .play-layout{grid-template-columns:minmax(0,1fr) 300px;gap:28px}
.operator-roster{min-width:0}
.operator-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.operator-choice{position:relative;display:flex;align-items:center;gap:8px;overflow:hidden;padding:0;text-align:left;min-width:0;min-height:84px;background:#102430;border:1px solid #4b62706b;color:#e4e9e4;cursor:pointer}
.operator-choice.selected{border-color:var(--operator-color);box-shadow:inset 0 -3px var(--operator-color);background:#213b42}
.operator-choice:focus-visible,.deployment-equipment select:focus-visible{outline:2px solid #d8f176;outline-offset:3px}
.operator-choice>span:last-child{position:relative;min-width:0;padding:12px 6px 12px 0}
.operator-choice strong{display:block;font:700 clamp(12px,1.2vw,18px)/1.5 system-ui;letter-spacing:.1em}
.operator-choice small{display:block;font:8px/1.5 monospace;letter-spacing:.04em;color:#afc0c6}
.operator-figure{display:block;position:relative;overflow:hidden;aspect-ratio:var(--figure-ratio);flex-shrink:0}
.operator-figure>img{display:block;position:absolute;top:0;left:calc(var(--frame) * -100%);width:500%;height:auto;max-width:none;object-fit:contain;user-select:none}
.operator-choice .operator-thumbnail{width:56px;height:84px;aspect-ratio:auto}
.operator-choice .operator-thumbnail>img{height:auto;top:-4px}
.operator-showcase{display:grid;grid-template-columns:minmax(190px,1fr) minmax(170px,.85fr);gap:14px;min-height:570px;border:1px solid #4d66705e;background:radial-gradient(ellipse at 90% 20%,#30444855,transparent 65%),#0b1c27;overflow:hidden}
.operator-dossier{padding:28px 0 24px 26px;min-width:0}
.operator-dossier h2{font:700 clamp(36px,4.5vw,68px)/1 system-ui;letter-spacing:-.03em;margin:12px 0;color:var(--operator-color)}
.operator-real-name{font:11px/1.6 monospace;letter-spacing:.18em;color:#c4d2d1;margin-bottom:22px}
.operator-dossier .body-copy{font-size:13px;line-height:1.7;color:#aebfc6}
.operator-dossier .operator-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-top:1px solid #607d8844;border-bottom:1px solid #607d8844;padding:16px 0;margin:22px 0}
.operator-numbers b{font:600 23px/1.3 system-ui;color:#e8eeea}
.operator-numbers small{display:block;font:8px/1.6 monospace;color:#93aeb9;letter-spacing:.07em}
.operator-trait{margin:20px 0}.operator-trait strong{display:block;font:600 14px/1.7 monospace;color:var(--operator-color);margin:8px 0}
.operator-trait p{font-size:12px;line-height:1.75;color:#a6bac4}
.operator-fullbody{position:relative;display:flex;justify-content:center;align-items:center;background:#101c23;overflow:hidden}
.operator-fullbody .operator-figure{height:100%;max-height:690px;min-height:570px}
.operator-render-label{position:absolute;bottom:0;left:0;right:0;padding:12px 10px;background:#081821e8;text-align:center;font:9px/1.6 monospace;letter-spacing:.05em;color:#c6d6d7}
.operator-suits .suit-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.operator-suits .ghost-button{padding:8px 10px;margin:0;min-height:36px;font-size:9px;border:1px solid #526e7d77}
.operator-suits .active{border-color:var(--operator-color);color:var(--operator-color)}.operator-suits button:disabled{opacity:.4;cursor:not-allowed}
.deployment-equipment{margin-top:16px;padding:20px 22px;background:#112531;border:1px solid #4d66705e}
.deployment-kit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.deployment-kit-grid label{font:9px/1.6 monospace;color:#a9c0cb;letter-spacing:.08em;min-width:0}
.deployment-kit-grid select{display:block;width:100%;min-width:0;margin-top:8px;padding:11px 6px;min-height:44px;font:10px/1.3 monospace;color:#e4ebe6;background:#0b1b27;border:1px solid #607b8b88}
.deployment-equipment .small-note{margin:10px 0 0;line-height:1.7}
.armory-operator-preview{height:390px;display:flex;justify-content:center;background:radial-gradient(ellipse,#2a3a40,#091924);border:1px solid #58728255;margin-bottom:22px;overflow:hidden}.armory-operator-preview .operator-figure{height:100%}
.story-review .screen-head{padding-right:145px}.story-review .screen-head h1{font-size:clamp(30px,4vw,56px)}.story-review .body-copy{max-width:690px}.story-review{padding-bottom:40px}.review-player-bar{z-index:95}.review-scene-list button{min-width:0}.review-filters select{max-width:100%}
@media(max-width:1200px){.operator-choice small{display:none}.operator-picker{gap:6px}.operator-showcase{grid-template-columns:minmax(160px,1fr) minmax(160px,.8fr)}.operator-dossier{padding-left:18px}.deployment-screen .play-layout{gap:20px;grid-template-columns:minmax(0,1fr) 270px}.deployment-kit-grid{grid-template-columns:1fr}}
@media(max-width:950px){.deployment-screen .play-layout{grid-template-columns:1fr}.operator-showcase{grid-template-columns:1fr 1fr;min-height:540px}.operator-fullbody .operator-figure{min-height:540px;height:540px}.operator-picker{gap:10px}.operator-choice small{display:block}.deployment-kit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.operator-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.operator-choice{min-height:72px}.operator-choice strong{font-size:16px}.operator-choice .operator-thumbnail{height:72px;width:52px}.operator-showcase{display:flex;flex-direction:column-reverse;gap:0}.operator-fullbody{height:420px;min-height:0}.operator-fullbody .operator-figure{height:420px;min-height:0;max-height:none}.operator-dossier{padding:22px}.operator-dossier h2{font-size:48px}.operator-dossier .operator-numbers{grid-template-columns:repeat(3,1fr)}.operator-dossier .operator-numbers b{font-size:23px}.operator-dossier .operator-numbers small{font-size:9px}.deployment-kit-grid{grid-template-columns:1fr}.deployment-equipment{padding:18px}.deployment-equipment select{font-size:12px}.story-review .screen-head{padding-right:0}.review-stats{gap:20px}.review-stats b{font-size:22px}.review-scene-list{grid-template-columns:1fr}.review-scene{gap:10px;padding:14px}.review-scene strong{font-size:14px}.review-play-icon{display:none}.review-actions{flex-direction:column;align-items:stretch;gap:12px}.review-player-bar{left:8px;right:8px;top:8px;gap:6px;flex-wrap:wrap}.review-player-bar button{font-size:9px;padding:8px}.review-player-bar span{font-size:9px;order:-1;flex-basis:100%}.review-filters label{width:100%}.review-filters{gap:12px}}
.operator-figure{mask-image:linear-gradient(90deg,transparent,#000 5%,#000 89%,transparent 95%,transparent)}

/* Damage and ring-outs stay readable while the camera frames the arena. */
.brawl-roster{position:absolute;left:50%;top:132px;transform:translateX(-50%);display:flex;gap:8px;max-width:calc(100% - 32px);pointer-events:none}
.brawl-roster[hidden]{display:none}
.brawl-card{min-width:110px;padding:8px 12px;background:#071b28eb;border-bottom:3px solid var(--fighter-color);border-radius:8px;display:grid;gap:3px;text-align:center}
.brawl-card.is-you{outline:1px solid var(--fighter-color)}
.brawl-card small{font-size:10px;color:var(--fighter-color);white-space:nowrap}
.brawl-card strong{font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums}
.brawl-card span{font-size:9px;color:#d0ddd9}
@media(max-width:700px){.brawl-roster{top:155px;gap:4px;width:calc(100% - 20px)}.brawl-card{min-width:0;flex:1;padding:5px 3px}.brawl-card small{font-size:8px}.brawl-card strong{font-size:23px}.brawl-card span{font-size:8px}}
.brawl-hud .mission-progress{display:none}
@media(max-width:700px){
  #hud.brawl-hud .hud-score{display:none}
  .brawl-hud .mission-hud{max-width:calc(100vw - 128px)}
  .brawl-hud .match-hud{top:104px;padding:6px 14px;white-space:nowrap}
  .brawl-hud .kill-feed{top:230px;font-size:9px}
}

.battle-selection{margin:18px 0;padding:16px;border:1px solid #395360;background:#0b202bc9;border-radius:8px}
.battle-selection h2{font-size:14px;letter-spacing:1.5px;margin:0 0 12px}
.battle-fighter-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.battle-fighter-picker button{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:9px 6px;background:#132b38;border:2px solid #3c5360;border-radius:6px}
.battle-fighter-picker button[aria-pressed=true]{border-color:#d8f176;background:#263d3b;box-shadow:inset 0 -3px #d8f176}
.battle-fighter-picker .operator-figure{--fighter-height:170px;width:calc(var(--fighter-height) * var(--figure-ratio));height:var(--fighter-height);max-width:100%;flex:none}
.battle-fighter-picker strong{font-size:12px;letter-spacing:1px}
.battle-fighter-picker small{font-size:10px;line-height:1.4;color:#b6ccc8}
.fighter-badge{display:inline-block;padding:3px 6px;border-radius:4px;background:var(--fighter-color);color:#09202b;font:bold 14px monospace;margin-right:4px}
.brawl-card{min-width:122px}
.brawl-card.is-you{outline:2px solid var(--fighter-color);box-shadow:0 0 12px #d8f17622}
@media(max-width:700px){.battle-selection{padding:12px}.battle-fighter-picker{gap:5px}.battle-fighter-picker .operator-figure{--fighter-height:120px}.battle-fighter-picker strong{font-size:10px}.battle-fighter-picker small{font-size:9px}.brawl-card{min-width:0}.fighter-badge{font-size:11px;padding:2px 3px;margin-right:2px}}

.battle-kit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 18px}
.battle-kit label,.battle-rules label{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:11px;font-weight:bold;color:#dce8df}
.battle-kit select,.battle-rules select{min-width:0;width:100%;font-size:11px}
.battle-kit small{font-size:10px;line-height:1.5;font-weight:normal;color:#aec5c8}
.kit-title{margin-top:20px!important}
.battle-rules{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;border-top:1px solid #3a5360;padding-top:15px;margin:16px 0}
.battle-rules p{grid-column:1/-1;margin:0}
.battle-verdict{display:flex;justify-content:space-between;align-items:center;gap:28px;border-left:5px solid var(--verdict-color);background:#102735;padding:24px;margin:20px 0;--verdict-color:#7ddcff}
.battle-verdict.is-win{--verdict-color:#d8f176}.battle-verdict.is-loss{--verdict-color:#ff9994}.battle-verdict.is-draw{--verdict-color:#ffe075}
.battle-verdict h1{font:700 clamp(32px,5vw,64px)/1.1 system-ui;color:var(--verdict-color);margin:10px 0}
.battle-verdict p{font-size:14px;line-height:1.6;max-width:680px;color:#c6d8d6;margin-bottom:0}
.battle-place{min-width:170px;text-align:center;border-left:1px solid #48606c;padding-left:25px}
.battle-place small{display:block;font:10px monospace;letter-spacing:1px;color:#b2c9c8}.battle-place strong{display:block;font:700 29px/1.5 system-ui;color:var(--verdict-color);white-space:nowrap}
.battle-personal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:20px 0 30px}.battle-personal>div{padding:16px;background:#112b38;border:1px solid #36515e}.battle-personal strong{display:block;font:700 28px system-ui}.battle-personal small{display:block;font:10px/1.6 monospace;color:#aec7c9;margin-top:5px}
.battle-table-wrap{overflow:auto;border:1px solid #385360;margin:15px 0}.battle-table{width:100%;border-collapse:collapse;white-space:nowrap}.battle-table th{text-align:left;font:10px monospace;letter-spacing:1px;background:#142f3e;padding:14px}.battle-table td{padding:14px;border-top:1px solid #36505d;font-size:13px}.battle-table td small{display:block;color:#a9c3c6;font:10px/1.6 monospace;margin-top:5px}.battle-table tr.is-you{background:#213a3f;box-shadow:inset 4px 0 var(--fighter-color)}
.battle-report h2{font-size:17px;letter-spacing:1px}.battle-report-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:25px 0}.battle-report-actions p{flex-basis:100%}
#battle-spectator-actions{pointer-events:auto;position:absolute;top:42%;left:50%;transform:translateX(-50%);width:min(400px,calc(100% - 32px));padding:20px;text-align:center;background:#081b29ee;border:1px solid #79979d;box-shadow:0 12px 55px #0007}
#battle-spectator-actions p{font:13px/1.6 Arial;margin:0 0 16px}
@media(max-width:700px){.battle-kit{grid-template-columns:1fr;gap:12px}.battle-kit small{font-size:11px}.battle-verdict{display:block;padding:18px}.battle-verdict h1{font-size:32px}.battle-place{margin-top:20px;border-left:0;border-top:1px solid #48606c;padding:15px 0 0;text-align:left}.battle-personal{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.battle-personal>div{padding:12px}.battle-personal strong{font-size:23px}.battle-report-actions{align-items:stretch;flex-direction:column}.battle-table td,.battle-table th{padding:10px}}
.mission-readiness .battle-kit{grid-template-columns:1fr}.battle-rules-panel .battle-rules{border-top:0;padding-top:0;margin-top:0}
/* Quick battle party flow. */
.room-presets{grid-template-columns:repeat(3,minmax(0,1fr))}
.room-browser [data-practice-setup]{margin-top:38px;scroll-margin-top:25px}
.team-choice{margin:0 0 22px;padding:16px;background:#0c2231;border:1px solid #486779;border-radius:6px}
.team-choice label{display:flex;align-items:center;gap:16px;font:700 12px monospace;letter-spacing:1px}
.team-choice select{flex:1;min-width:0;max-width:230px}
.team-choice p{margin-bottom:0}
.participants .team-label{font-weight:bold;letter-spacing:.8px}
.fireteam-lobby .participants [data-bot-team]{max-width:125px}
.battle-countdown{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;pointer-events:none;color:#e8f6d1;text-shadow:0 3px 18px #00131f;z-index:4}
.battle-countdown small{font:700 15px monospace;letter-spacing:5px}
.battle-countdown strong{font:900 clamp(80px,16vw,150px)/1 sans-serif;color:#d8ef8b}
.battle-countdown span{font:700 12px monospace;padding:9px 14px;background:#071b28e8;border:1px solid #94bba7;white-space:nowrap}
.battle-countdown[hidden]{display:none}
.battle-report-actions{padding:14px 0;border-bottom:1px solid #48606c;margin:0 0 22px}
@media(max-width:700px){.room-presets{grid-template-columns:1fr}.fireteam-lobby .participants [data-bot-team]{max-width:none}.battle-countdown{top:48%}.battle-countdown strong{font-size:85px}.battle-countdown span{font-size:10px}.team-choice label{align-items:stretch;flex-direction:column;gap:10px}.team-choice select{max-width:none}.battle-report-actions{gap:8px}.battle-report-actions button{margin:0;padding:14px}}
