:root{--paper:#f0f3f2;--muted:#9baab4;--accent:#fa835c;--cyan:#a0e8eb;--line:#c9d8e225;--bg:#121b24;font-family:Arial,Helvetica,sans-serif;color:var(--paper);color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#18222c}button,input,select,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}[hidden]{display:none!important}button,a{touch-action:manipulation}
#world{position:fixed;inset:0;display:block;width:100%;height:100%;outline:none}#vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse,transparent 55%,#08121c35 100%)}#flash{position:fixed;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse,transparent 38%,#ee4c2c 150%);z-index:5;transition:opacity .22s}#speed-lines{position:fixed;inset:0;pointer-events:none;opacity:0;box-shadow:inset 0 0 130px #d8efff35;z-index:4}
#masthead{position:fixed;z-index:12;top:28px;left:42px;right:42px;height:38px;display:flex;justify-content:space-between;align-items:center}.wordmark{display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px;letter-spacing:2px;color:#f0f3f2;text-decoration:none}.logo{display:inline-grid;place-items:center;width:30px;height:30px;transform:skewX(-8deg);background:var(--accent);color:#18232c;font-weight:900;font-size:24px;letter-spacing:-4px;padding-right:3px}.build-tag{font:9px monospace;letter-spacing:1.5px;display:flex;gap:12px;align-items:center;color:#bdcad1}.status-dot{width:5px;height:5px;background:var(--accent);border-radius:50%}.separator{color:#8c9eab}.top-actions{display:flex;gap:8px}.icon-button{display:grid;place-items:center;width:36px;height:36px;background:#15222caa;color:#e3ebef;border:1px solid #d3e7f333;border-radius:3px}.icon-button:hover{background:#31424c}.icon-button svg{width:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.sound-waves{display:none}.sound-on .sound-waves{display:block}.sound-on .sound-slash{display:none}
.screen{position:fixed;inset:0;z-index:8}.menu-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0b1521ed,#0b1521ce 30%,#14243125 72%),linear-gradient(0deg,#101d2bd9,transparent 27%)}.menu-copy{position:absolute;left:7%;top:18%;width:385px}.eyebrow{display:flex;align-items:center;gap:10px;font:9px/1.6 monospace;letter-spacing:2px;color:var(--accent)}.short-line{width:22px;height:1px;background:var(--accent)}h1{font-size:80px;line-height:.92;letter-spacing:-5px;font-weight:900;margin:22px 0 16px}h1>span{display:block;font:700 20px/1.2 Arial,sans-serif;letter-spacing:14px;color:var(--accent);padding:13px 0 0 5px}.tagline{font-size:23px;font-weight:500;letter-spacing:-.6px;margin:17px 0 10px}.intro{font-size:12px;line-height:1.7;color:#a7b7c3;margin:0 0 23px}.operation-card{background:#142331c7;border:1px solid #bcd0df2a;padding:17px;max-width:365px;backdrop-filter:blur(7px)}.operation-head{display:flex;align-items:center;gap:12px;padding-bottom:15px;border-bottom:1px solid var(--line)}.mode-icon{font:32px Arial;color:var(--accent)}.operation-head strong{font-size:15px;font-weight:700;letter-spacing:1px}.operation-head small{display:block;margin-top:5px;font:8px monospace;letter-spacing:1px;color:#91a8b7}.mode-tag{font:8px monospace;letter-spacing:1px;background:#a0e8eb14;color:var(--cyan);padding:6px 7px;margin-left:auto}.difficulty-row{display:flex;align-items:center;gap:6px;padding:14px 0}.difficulty-row>span{font:8px monospace;letter-spacing:1px;margin-right:auto;color:#8fa3b2}.difficulty{padding:6px 10px;font:10px monospace;border:1px solid #96b2c037;background:transparent;color:#9aafbd;border-radius:2px}.difficulty.selected{color:var(--paper);border-color:#f0a38480;background:#ee9f7c1c}.difficulty:hover{border-color:#f0a38480}.primary{display:flex;align-items:center;justify-content:space-between;gap:32px;background:var(--accent);border:1px solid var(--accent);color:#19232c;font-size:11px;letter-spacing:2px;font-weight:800;min-height:51px;padding:0 19px;transition:background .15s,transform .15s}.primary:hover{background:#ffa383;transform:translateY(-1px)}.primary span:last-child{font-size:22px}.primary span:first-child{font-size:11px}.operation-card>.primary{width:100%}.primary svg{width:22px;fill:none;stroke:currentColor}.practice-button{display:grid;grid-template-columns:1fr 22px;text-align:left;width:100%;background:none;color:#d4e0e7;border:0;border-top:1px solid var(--line);padding:14px 0 0;margin-top:14px}.practice-button>span{font:10px monospace;letter-spacing:.8px}.practice-button small{grid-column:1;color:#8aa2b3;margin-top:5px;font-size:10px}.practice-button b{grid-column:2;grid-row:1/3;align-self:center;font-size:20px;font-weight:400;color:var(--cyan)}.practice-button:hover>span{color:var(--cyan)}.text-button{background:none;border:0;color:#b6c8d2;font-size:11px;padding:14px 0;letter-spacing:.4px}.text-button:hover{color:#fff}.text-button span{margin-left:10px}.map-caption{position:absolute;right:6%;bottom:18%;display:flex;align-items:center;gap:22px;background:#15232c99;border-left:2px solid var(--accent);padding:20px 26px;backdrop-filter:blur(5px)}.map-index{font:72px/1 monospace;font-weight:300;letter-spacing:-5px;color:#cddadbb3}.map-caption>div>span{font:8px monospace;letter-spacing:2px;color:var(--accent)}.map-caption strong{display:block;font:700 25px Arial;letter-spacing:1.5px;margin:6px 0}.map-caption p{font-size:10px;color:#a8bdc9;margin:0}.menu-bottom{position:absolute;bottom:30px;left:7%;right:6%;display:flex;gap:36px;border-top:1px solid var(--line);padding-top:20px;justify-content:space-between;font:8px monospace;letter-spacing:1px;color:#a7bac5}.menu-bottom i{display:inline-block;width:5px;height:5px;background:var(--cyan);border-radius:50%;margin-right:7px}.menu-bottom b{padding:0 12px;color:#6d889a;font-weight:400}
.playing #masthead{top:20px;left:28px;right:28px}.playing .build-tag{visibility:hidden}.playing .wordmark{font-size:11px}.playing .logo{width:25px;height:25px;font-size:20px}.playing #vignette{opacity:.6}
#hud{position:fixed;inset:0;pointer-events:none;z-index:6;font-variant-numeric:tabular-nums;text-shadow:0 1px 5px #08131c77}.combat-top{position:absolute;top:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;background:#172530de;border:1px solid #c8dce622;padding:10px 16px;min-width:340px;border-radius:3px}.round-chip{border-right:1px solid #c1d5df2a;padding-right:15px}.round-chip>span{display:block;font:7px monospace;color:#a9bac5;letter-spacing:1.8px}.round-chip>b{font:25px monospace;color:#edf2ef;display:block;margin-top:3px}.round-chip small{font-size:10px;color:#92a9b9}.round-objective{flex:1}.round-objective h2{font-size:11px;font-weight:500;white-space:nowrap;margin:0 0 9px}.progress{display:flex;gap:4px}.progress i{height:2px;width:35px;background:#ffffff22}.progress i.active{background:var(--accent)}.remaining{text-align:right}.remaining>b{font:26px monospace;color:var(--accent);display:block}.remaining>span{font:6px monospace;letter-spacing:1px;color:#9eb4c2;white-space:nowrap}.compass{position:absolute;top:103px;left:50%;transform:translateX(-50%);display:flex;gap:11px;align-items:center;color:#eaf2f4;font:10px monospace}.compass b{font-size:12px;font-weight:500;color:#fff}.compass span{opacity:.75}.compass:before,.compass:after{content:'';display:block;width:35px;border-top:1px solid #e6f2f777}
.radar-wrap{position:absolute;top:77px;left:28px;width:150px;background:#15232dde;border:1px solid #d0e0eb38;border-radius:3px;overflow:hidden}.radar-wrap canvas{display:block;width:148px;height:148px}.radar-wrap>span{display:block;border-top:1px solid var(--line);padding:9px 10px 5px;font:9px monospace;letter-spacing:1px;color:#e0e8ec}.radar-wrap>small{display:block;font:7px monospace;letter-spacing:.35px;padding:0 10px 9px;color:#a2bbc9}.radar-wrap .moving{color:var(--cyan)}.run-clock{position:absolute;top:85px;right:28px;text-align:right}.run-clock>span{display:block;font:7px monospace;color:#e0e9ed;letter-spacing:1.3px}.run-clock>b{display:inline-block;font:30px monospace;color:#fff;margin-top:5px}.run-clock>small{display:block;font:10px monospace;color:#c0d0d8;margin-top:3px}#kill-feed{position:absolute;right:28px;top:180px;display:grid;gap:4px}#kill-feed>div{display:flex;align-items:center;gap:13px;justify-content:flex-end;background:#162630d9;border-right:2px solid var(--accent);padding:8px 11px;font:9px monospace}#kill-feed>div>span:first-child{color:var(--cyan)}#kill-feed>div>b{font-size:14px;font-weight:400;color:#ecf3ed}#kill-feed .headshot>b{color:#ffc281}
#crosshair{--spread:5px;position:absolute;top:50%;left:50%;width:0;height:0;filter:drop-shadow(0 1px 2px #0008);color:#f3f7f3}#crosshair span{position:absolute;width:3px;height:3px;border-radius:50%;background:currentColor;transform:translate(-50%,-50%)}#crosshair i{position:absolute;width:6px;height:1px;background:currentColor;top:-.5px;left:calc(var(--spread) + 3px)}#crosshair i:nth-child(3){left:auto;right:calc(var(--spread) + 3px)}#crosshair i:nth-child(4){left:-.5px;top:calc(var(--spread) + 3px);height:6px;width:1px}#crosshair i:nth-child(5){left:-.5px;top:auto;bottom:calc(var(--spread) + 3px);height:6px;width:1px}#crosshair.on-enemy{color:#ff8a62}#crosshair.aiming i{opacity:0}#hitmarker{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:37px Arial;color:#fff;opacity:0;filter:drop-shadow(0 0 2px #000)}#hitmarker.headshot{color:#ffd18d}#kill-confirm{position:absolute;left:50%;top:calc(50% + 48px);transform:translateX(-50%);text-align:center;opacity:0;transition:opacity .12s}#kill-confirm.visible{opacity:1}#kill-confirm b{display:block;font:9px monospace;letter-spacing:1.5px;color:#fff;text-shadow:0 2px 8px #000}#kill-confirm span{display:block;color:#ffb48e;font:18px monospace;margin-top:6px}
#round-banner{position:absolute;left:50%;top:29%;transform:translateX(-50%);text-align:center;min-width:360px;max-width:70vw;background:linear-gradient(90deg,transparent,#172530bf,transparent);padding:16px 28px;text-shadow:0 2px 8px #0005}#round-banner>span{display:block;font:9px monospace;letter-spacing:3px;color:#ffc4a7}#round-banner>b{display:block;font-size:40px;letter-spacing:-1px;line-height:1.4}#round-banner>small{display:block;font-size:11px;line-height:1.6;color:#d7e3e9}#toast{position:absolute;left:50%;top:20%;transform:translate(-50%,8px);background:#152630e0;border:1px solid #b7dce53b;padding:11px 17px;font:9px monospace;letter-spacing:1px;white-space:nowrap;opacity:0;transition:opacity .15s,transform .15s}#toast.visible{transform:translate(-50%,0);opacity:1}
.stat-label{font:8px monospace;letter-spacing:1.7px;color:#d6e2e9;display:block}.health-panel{position:absolute;left:28px;bottom:40px;width:195px;background:linear-gradient(90deg,#13232dde,transparent);padding:13px 16px;border-radius:3px}.health-panel>div{display:flex;align-items:center;gap:8px;margin-top:5px}.health-cross{color:var(--cyan);font-size:29px}.health-panel b{font:36px monospace;letter-spacing:-1.5px}.health-max{font:10px monospace;color:#a8bfcd;margin-top:12px}.health-panel .health-track{display:block;height:4px;background:#d5e4ee22;margin-top:8px;border-radius:1px;overflow:hidden}.health-track i{display:block;width:100%;height:100%;background:var(--cyan);transition:width .1s}.low-health .health-panel b,.low-health .health-cross{color:#ff947c}.low-health .health-track i{background:#ff795e}.ability-panel{position:absolute;bottom:43px;left:245px;display:flex;gap:10px;align-items:center}.ability-panel>kbd{font:13px monospace;padding:10px;background:#13232ddd;border:1px solid #c2d9e54c;color:#eff8fb}.ability-panel .stat-label{font-size:7px}.ability-panel b{font:10px monospace;display:block;margin:5px 0;color:#f1f6f7}.dash-track{width:80px;height:2px;background:#d2e5ef24}.dash-track i{display:block;background:#f4b795;height:100%;width:100%}.ammo-panel{position:absolute;right:28px;bottom:40px;text-align:right;min-width:150px;padding:12px 16px;background:linear-gradient(270deg,#13232ddd,transparent);border-radius:3px}.ammo-panel>div{display:flex;align-items:baseline;justify-content:flex-end;gap:10px;margin:5px 0}.ammo-panel b{font:44px monospace;letter-spacing:-2px}.ammo-panel #reserve{font:16px monospace;color:#bdd0da}.auto-label{color:var(--accent);margin-left:16px}.ammo-panel>small{font:7px monospace;letter-spacing:.8px;color:#bdd0da}.ammo-panel .reload-track{height:3px;background:#d5eab919;display:block;margin-top:8px}.reload-track i{display:block;background:var(--accent);height:100%;width:0}.low-ammo b{color:#ffac84}
.combat-tip{position:absolute;bottom:59px;left:50%;transform:translateX(-50%);font-size:9px;color:#e0e9ee;background:#152630ae;padding:10px 13px;border-radius:3px;white-space:nowrap;transition:opacity 1s}.combat-tip>span{margin:0 8px;color:#97acb8}.combat-tip.subtle{opacity:0}.controls-strip{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:18px;font-size:8px;color:#d0dfe7;white-space:nowrap}.controls-strip>span{display:flex;gap:5px;align-items:center}kbd{display:inline-block;padding:3px 5px;font:8px monospace;border:1px solid #c0d2dd4a;background:#172b38a8;color:#e6f0f5;border-radius:2px;white-space:nowrap}#pointer-hint{position:absolute;left:50%;bottom:23%;transform:translateX(-50%);font:9px monospace;white-space:nowrap;color:#e1edf3;background:#152630df;padding:10px 14px;border-radius:3px}#practice-badge{position:absolute;right:28px;top:190px;background:#13232ddb;border-right:2px solid var(--cyan);padding:12px 16px;text-align:right}#practice-badge>b{font:9px monospace;letter-spacing:2px;color:var(--cyan);display:block}#practice-badge>span{font:19px monospace;display:block;margin:7px 0}#practice-badge>small{font-size:9px;color:#a9c0cd}
#damage-direction{position:fixed;left:50%;top:50%;width:240px;height:240px;transform:translate(-50%,-50%);z-index:7;pointer-events:none;opacity:0}#damage-direction i{position:absolute;top:0;left:85px;width:70px;height:14px;background:#ff7652;clip-path:polygon(0 100%,50% 0,100% 100%,50% 60%)}
.overlay{position:fixed;inset:0;z-index:11;background:#0b1422b8;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center}.panel{width:420px;max-width:calc(100vw - 40px);max-height:calc(100vh - 100px);overflow:auto;padding:34px;background:linear-gradient(135deg,#1d303ef5,#13212ef5);border:1px solid #c0dce633;box-shadow:0 20px 80px #06101b55;border-radius:4px}.panel.wide{width:500px}.panel h2{font-size:34px;line-height:1.1;letter-spacing:-1px;margin:15px 0;font-weight:500}.panel p{font-size:12px;line-height:1.8;color:#9eb4c3;margin:0 0 23px}.panel .primary{width:100%;margin-top:19px}.secondary{display:flex;align-items:center;justify-content:space-between;background:none;border:1px solid #bbd5e132;color:#d6e5ee;width:100%;padding:15px 18px;font:10px monospace;letter-spacing:1px;margin-top:10px}.secondary:hover{border-color:var(--cyan);color:var(--cyan)}.panel .text-button{margin-right:22px}.muted{color:#8ea4b5}.setting{display:flex;align-items:center;flex-wrap:wrap;font-size:12px;gap:12px;margin:21px 0;color:#d3e1ea}.setting input{width:100%;accent-color:var(--accent);order:2}.setting output{margin-left:auto;font:10px monospace;color:var(--cyan)}.setting select{margin-left:auto;background:#152938;border:1px solid var(--line);padding:8px;color:#d3e1ea;font:11px monospace}.check-setting{display:flex;align-items:center;gap:10px;margin:20px 0;font-size:12px}.check-setting input{accent-color:var(--accent);width:15px;height:15px}.help-row{display:flex;gap:19px;margin:22px 0}.help-row>span{font:12px monospace;color:var(--accent);padding-top:3px}.help-row h3{font-size:14px;font-weight:500;margin:0 0 7px}.help-row p{font-size:11px;line-height:1.8;margin:0}.help-row kbd{font-size:8px}.result-score{display:flex;align-items:center;gap:20px;margin:25px 0 12px}.result-score>b{font:52px monospace;letter-spacing:-3px;color:var(--accent)}.result-score>span{font:9px/1.8 monospace;letter-spacing:2px;color:#a5b9c7;max-width:80px}.personal-best{display:block;font:9px monospace;color:var(--cyan);letter-spacing:1px;margin:8px 0 20px}.result-distance{font:9px monospace;letter-spacing:1px;color:#9fb6c5;padding-bottom:18px}.result-stats{display:flex;justify-content:space-between;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-stats b{display:block;font:23px monospace;margin-bottom:7px}.result-stats span{font:8px monospace;letter-spacing:1px;color:#94adbd}
#error,#mobile-note{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:#13212d}#error h2,#mobile-note h2{font-size:30px;letter-spacing:-1px}#error p,#mobile-note p{max-width:390px;font-size:14px;line-height:1.7;color:#a8bdcc}#mobile-note .secondary{max-width:300px;justify-content:center}#mobile-note .logo{width:50px;height:50px;font-size:39px}
@media(max-height:800px){.menu-copy{top:16%}h1{font-size:68px;margin:15px 0 11px}h1>span{font-size:17px;padding-top:10px}.tagline{font-size:21px;margin:13px 0 8px}.intro{font-size:11px;margin-bottom:16px}.operation-card{padding:14px}.operation-head{padding-bottom:11px}.difficulty-row{padding:11px 0}.primary{min-height:46px}.practice-button{padding-top:11px;margin-top:11px}.menu-bottom{bottom:22px;padding-top:16px}.panel{padding:25px}.panel h2{font-size:30px}.help-row{margin:16px 0}.radar-wrap{width:128px;top:72px}.radar-wrap canvas{width:126px;height:126px}.radar-wrap>span{font-size:8px}.radar-wrap>small{font-size:6px}.combat-tip{bottom:19px;z-index:2}.controls-strip{bottom:18px;opacity:.75}.combat-tip:not(.subtle)~.controls-strip{opacity:0}.map-caption{bottom:18%}}
@media(max-width:1000px){#masthead{left:25px;right:25px}.menu-copy{left:6%;width:350px}.map-caption{right:5%;padding:16px 20px;gap:15px}.map-index{font-size:55px}.map-caption strong{font-size:20px}.map-caption p{font-size:9px}.combat-top{min-width:310px;gap:12px}.round-objective h2{font-size:10px}.ability-panel{left:220px}.health-panel{width:175px}.combat-tip{font-size:8px}.combat-tip>span{margin:0 4px}.menu-bottom{gap:20px;font-size:7px}.build-tag{font-size:8px;letter-spacing:1px}}
@media(max-width:650px){#masthead{left:22px;right:22px}.build-tag{display:none}.menu-copy{left:8%;top:19%;width:84%}.menu-copy h1{font-size:64px}.intro{font-size:12px}.operation-card{max-width:340px}.map-caption{display:none}.menu-bottom{left:8%;right:8%}.menu-bottom>span:last-child{display:none}.menu-bottom>span{font-size:6px}.eyebrow{font-size:8px}.combat-top{top:70px;min-width:300px}.compass{top:144px}.radar-wrap{top:169px;width:100px}.radar-wrap canvas{width:98px;height:98px}.radar-wrap>small{font-size:5px;padding:0 5px 6px}.radar-wrap>span{font-size:7px;padding:7px 5px 5px}.run-clock{top:173px}.health-panel{left:20px;width:150px;bottom:42px}.ammo-panel{right:20px;min-width:120px;bottom:42px}.health-panel b{font-size:31px}.ammo-panel b{font-size:37px}.ability-panel{left:25px;bottom:150px}.combat-tip{font-size:7px;bottom:17px;padding:8px;max-width:95vw}.combat-tip kbd{font-size:6px}.controls-strip{font-size:6px;gap:6px}#round-banner{top:40%;min-width:300px;padding:13px 18px}#round-banner>b{font-size:32px}#round-banner>small{font-size:10px}#toast{top:30%;font-size:8px}#pointer-hint{font-size:8px;white-space:normal;width:300px;text-align:center}#practice-badge{top:270px;padding:10px}#practice-badge>small{max-width:135px;display:block}.panel{padding:24px}}
@media(prefers-reduced-motion:reduce){button,#flash,#toast,.health-track i{transition:none!important}}

/* District equipment and tactical view. */
#heal-flash,#smoke-cover{position:fixed;inset:0;pointer-events:none;z-index:4;opacity:0;transition:opacity .25s}
#heal-flash{background:radial-gradient(ellipse at center,transparent 40%,#4fd4a5 100%)}#smoke-cover{background:radial-gradient(ellipse,#adb5b5f5,#9ca6a5);transition:opacity .12s}#smoke-status.active{color:#b4e0da}
#map-button{pointer-events:auto;width:100%;border:0;border-top:1px solid #bddeea27;color:#a0e8eb;background:#0b18254d;font:9px monospace;padding:8px 9px;text-align:left}#map-button span{font-size:7px;letter-spacing:.7px;margin-left:9px}#map-button:hover{background:#a0e8eb1f}
.equipment-panel{position:absolute;left:28px;bottom:151px;display:flex;gap:8px}.equipment-panel>div{display:grid;grid-template-columns:22px 25px;gap:2px 8px;align-items:center;background:#15252edd;border:1px solid #a8cfcb32;padding:9px 12px;min-width:106px;border-radius:3px}.equipment-panel kbd{grid-row:1/3;text-align:center;color:#a0e8eb}.equipment-panel b{font:22px monospace;line-height:1}.equipment-panel span{font:7px monospace;letter-spacing:.8px;color:#bed1d8;grid-column:2}
#heal-hint{position:absolute;left:28px;bottom:219px;color:#c5f9e4;font:10px monospace;background:#132e28e6;border-left:2px solid #81e8be;padding:10px 12px}#heal-hint kbd{margin-right:8px}
#heal-progress{position:absolute;left:50%;bottom:165px;transform:translateX(-50%);width:340px;background:#142b2bec;border:1px solid #81e8be66;padding:16px 18px;border-radius:3px}#heal-progress>div:first-child{display:flex;justify-content:space-between;align-items:center;font:10px monospace;letter-spacing:1px;color:#b2f8dc}#heal-seconds{font:17px monospace}.healing-track{height:4px;background:#9de8d322;margin:10px 0}.healing-track i{height:100%;display:block;background:#81e8be}#heal-progress small{font:8px/1.6 monospace;color:#bdd5d0;display:block}
#heal-progress:not([hidden])~#pointer-hint,#heal-progress:not([hidden])~#interact-hint{display:none}
#peek-state{position:absolute;top:calc(50% + 90px);left:50%;transform:translateX(-50%);font:9px monospace;letter-spacing:1px;color:#bbeced;background:#122b36c9;padding:7px 12px;border-radius:3px}
#interact-hint{position:absolute;left:50%;bottom:240px;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:13px 17px;background:#17342ee8;border:1px solid #81e8be55;border-radius:3px}#interact-hint kbd{font-size:18px;padding:9px 12px;color:#a1f3d1}#interact-hint b{display:block;font:10px monospace;color:#c2f7df;letter-spacing:1px}#interact-hint span{display:block;font-size:10px;color:#b1d0c5;margin-top:6px}
.map-panel{width:min(720px,90vw);padding:24px;max-height:94vh;overflow:auto}.map-heading{display:flex;align-items:center;justify-content:space-between}.map-heading h2{font-size:27px;margin:8px 0 14px}.map-heading .text-button{margin:0}.map-heading .eyebrow{font-size:8px}.map-panel canvas{width:100%;height:min(63vh,620px);object-fit:contain;background:#111d27;border:1px solid #c0dce62b;display:block}.map-legend{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;font:8px monospace;letter-spacing:.3px;color:#bacfd6;margin:14px 0}.map-legend i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px}.you-dot{background:#a0e8eb}.enemy-dot{background:#ff795c}.medical-legend{color:#81e8be}.map-panel>p{font-size:10px;text-align:center;margin:10px 0 0}.controls-strip{gap:13px}.health-panel{bottom:48px}.ability-panel{bottom:51px}.ammo-panel{bottom:48px}
@media(max-width:1000px){.controls-strip{gap:8px;font-size:7px}.controls-strip kbd{font-size:7px}.equipment-panel{bottom:153px}.map-legend{font-size:7px;gap:9px}}
@media(max-width:650px){.equipment-panel{left:20px;bottom:205px;gap:6px}.equipment-panel>div{padding:7px;min-width:90px}#heal-hint{left:20px;bottom:270px;font-size:8px}#heal-progress{width:300px;bottom:200px}#interact-hint{bottom:290px;min-width:270px}.controls-strip{max-width:96vw;flex-wrap:wrap;justify-content:center;gap:4px 9px;bottom:8px}.map-panel{padding:16px}.map-heading h2{font-size:22px}.map-heading .eyebrow{font-size:7px}#peek-state{top:calc(50% + 70px)}}

/* Mission planning keeps the district visible behind the two compact panels. */
#menu{overflow:auto}.menu-shade{position:fixed;background:linear-gradient(90deg,#0c1620f0,#0c1620b8 32%,#0c162042 57%,#0c1620b0),linear-gradient(0deg,#101d2bec,transparent 45%)}
.menu-layout{position:relative;min-height:calc(100vh - 80px);max-width:1420px;margin:auto;padding:112px 7vw 30px;display:flex;align-items:center;justify-content:space-between;gap:70px}.menu-copy{position:relative;left:auto;top:auto;width:365px;flex-shrink:0}.menu-copy h1{font-size:70px;margin:18px 0 12px}.menu-copy h1>span{font-size:17px;padding-top:10px;letter-spacing:13px}.tagline{font-size:24px;margin:15px 0 9px}.intro{margin-bottom:18px}.operation-card{padding:17px}.menu-bottom{position:relative;left:auto;right:auto;bottom:auto;margin:0 7vw 24px}.difficulty{padding:6px 8px}.difficulty-row>span{font-size:7px}
.armory-label{display:flex;justify-content:space-between;font:8px monospace;letter-spacing:1px;color:#c8d8de;margin:1px 0 9px}.armory-label small{font:8px monospace;letter-spacing:0;color:#90acb9}.loadout-options{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.loadout-option{display:flex;flex-direction:column;text-align:left;gap:5px;border:1px solid #a3bdc22e;background:#0e1e286e;color:#adc0ca;padding:10px 7px}.loadout-option b{font:13px monospace;color:#e0eaed}.loadout-option small{font:7px monospace;white-space:nowrap}.loadout-option.selected{background:#a0e8eb13;border-color:var(--cyan);color:var(--cyan)}.loadout-option:hover{border-color:#e7eeeec0}.loadout-description{font:10px/1.6 Arial;color:#a7bec9;min-height:24px;margin:8px 0 10px}.operation-card>.primary:disabled{cursor:not-allowed;opacity:.55;font-size:9px}.practice-button{margin-top:12px;padding-top:12px}
.mission-board{width:450px;max-width:46vw;flex-shrink:0;background:#13232de8;border:1px solid #b9d0db3d;padding:24px;backdrop-filter:blur(9px);box-shadow:0 20px 70px #07111b40}.board-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px}.board-heading h2{font-size:28px;font-weight:500;letter-spacing:-1px;margin:8px 0 0}.board-heading .eyebrow{font-size:7px;letter-spacing:1.3px}.board-heading>span{font:8px monospace;color:var(--cyan);border:1px solid #a0e8eb44;padding:8px;white-space:nowrap}.mission-list{display:grid;gap:7px}.mission-card{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:12px;width:100%;background:#0d1b25a8;border:1px solid #afc8d426;text-align:left;color:#e1eaed;padding:13px 12px}.mission-card>.mission-number{font:18px monospace;color:#819cae}.mission-card strong{font-size:13px;display:block;font-weight:500}.mission-card small{font:8px monospace;display:block;color:#8eabbc;margin-top:5px}.mission-card .mission-target{font:20px monospace;text-align:right;color:#cee4e7}.mission-card .mission-target small{font-size:6px;letter-spacing:.6px}.mission-card.selected{background:#fa835c12;border-color:#fba17b9c;box-shadow:inset 3px 0 var(--accent)}.mission-card.selected .mission-number{color:var(--accent)}.mission-card.locked{color:#93a8b5}.mission-card.cleared .mission-number{color:#8be0b4}.mission-card:hover{border-color:#bacddc99}.mission-brief{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.brief-heading{display:flex;justify-content:space-between;gap:12px;font:8px monospace;color:var(--cyan)}.brief-heading b{font-weight:400;color:#ffb38f;white-space:nowrap}.mission-brief p{font-size:11px;line-height:1.7;color:#cfdbdf;margin:12px 0 8px}.mission-brief .intel{font-size:10px;color:#93aebc}.brief-foot{border-top:1px solid var(--line);margin-top:15px;padding-top:12px;display:flex;justify-content:space-between;gap:12px;font:7px/1.5 monospace;color:#849daa}.brief-foot span:first-child{color:#b5d3ce}
.combat-top{min-width:460px;gap:18px}.round-objective h2{font-size:12px;font-weight:600;margin-bottom:8px}.objective-track{height:3px;background:#bdd5e326;overflow:hidden}.objective-track i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}.round-objective>small{display:block;font:7px monospace;color:#b6ccd6;margin-top:7px}.remaining>b{font-size:25px;white-space:nowrap}.compass{top:117px}.round-chip small{font-size:9px}.run-clock>span{font-size:7px}.mission-complete{width:520px}.mission-complete h2{font-size:34px}.clear-target{padding:18px 0 24px}.clear-target>b{display:block;font:48px monospace;color:#a0e8d2;letter-spacing:-2px}.clear-target>span{display:block;font:9px monospace;letter-spacing:1px;color:#aec7c7;margin:8px 0 14px}.clear-target .objective-track i{background:#81e8be}.next-brief{margin-top:23px}.next-brief>span{font:8px monospace;letter-spacing:1px;color:#ffad87}.next-brief h3{font-size:21px;font-weight:500;margin:9px 0}.next-brief p{margin-bottom:10px}.next-brief small{font-size:10px;color:#b9d7ce}
#weapon-slots{position:absolute;right:28px;bottom:163px;display:flex;gap:5px;pointer-events:auto}#weapon-slots button{display:flex;align-items:center;gap:7px;background:#13232ddd;border:1px solid #bcd2dc32;color:#a4bccb;padding:8px;font:9px monospace}#weapon-slots button.selected{border-color:var(--cyan);color:#e1f9f3;background:#193a42df}#weapon-slots kbd{font-size:8px}.ammo-panel{min-width:175px}#weapon-mode{letter-spacing:1px}
#scope-overlay{position:fixed;inset:0;background:radial-gradient(circle at center,transparent 0,transparent 24vh,#08121aee 24.3vh);pointer-events:none;z-index:-1}#scope-overlay:before{content:'';position:absolute;width:48vh;height:48vh;border-radius:50%;border:2px solid #17292f;box-shadow:0 0 0 8px #11222b77;left:50%;top:50%;transform:translate(-50%,-50%)}.scope-reticle{position:absolute;left:50%;top:50%;width:46vh;height:46vh;transform:translate(-50%,-50%);border-radius:50%;overflow:hidden}.scope-reticle:before,.scope-reticle:after{content:'';position:absolute;background:#132025b0;left:50%;top:50%;transform:translate(-50%,-50%)}.scope-reticle:before{width:100%;height:1px}.scope-reticle:after{height:100%;width:1px}#scope-overlay>span{position:absolute;left:50%;top:calc(50% + 18vh);transform:translateX(-50%);font:8px monospace;letter-spacing:1.5px;color:#172a31}
@media(max-height:800px) and (min-width:901px){.menu-layout{padding-top:90px;gap:45px}.menu-copy h1{font-size:58px;margin:12px 0 9px}.menu-copy h1>span{font-size:14px;padding-top:8px}.tagline{font-size:21px;margin:12px 0 7px}.intro{font-size:11px;margin-bottom:12px}.operation-card{padding:14px}.mission-board{padding:19px}.board-heading{margin-bottom:14px}.mission-card{padding:10px 11px}.mission-brief{margin-top:15px}.menu-layout{min-height:calc(100vh - 60px)}.menu-bottom{margin-bottom:17px;padding-top:15px}.mission-brief p{margin:9px 0 7px}}
@media(max-width:1100px){.menu-layout{padding-left:5vw;padding-right:5vw;gap:30px}.menu-copy{width:340px}.mission-board{width:410px}.build-tag{font-size:7px}.brief-heading{font-size:7px}}
@media(max-width:900px){.menu-layout{display:grid;grid-template-columns:1fr;justify-items:center;gap:30px;padding:110px 22px 25px}.menu-copy,.mission-board{width:450px;max-width:100%}.operation-card{max-width:none}.menu-copy h1{font-size:62px}.menu-bottom{gap:15px;flex-wrap:wrap;font-size:7px}.mission-board{padding:20px}.combat-top{min-width:350px;gap:12px}.round-objective h2{font-size:10px}.remaining>b{font-size:21px}.round-objective>small{font-size:6px}#weapon-slots{right:20px;bottom:174px;gap:3px}#weapon-slots button{padding:6px;font-size:8px}}
@media(max-width:650px){.build-tag{display:none}.menu-copy{left:auto;top:auto}.combat-top{top:70px;min-width:320px}.compass{top:160px}.radar-wrap{top:190px}.run-clock{top:190px}#weapon-slots{bottom:151px}.equipment-panel{bottom:215px}.controls-strip{font-size:6px}.brief-foot{font-size:6px}}

.magazine-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.magazine-row label{font:8px monospace;letter-spacing:1px;color:#c8d8de}.magazine-row select{min-width:172px;max-width:70%;background:#142a34;color:var(--cyan);border:1px solid #a3bdc24d;border-radius:2px;padding:7px;font:10px monospace}.magazine-row select:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.magazine-note{display:block;font:8px/1.5 monospace;color:#95afbd;margin:6px 0 12px}

.foundry-button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 0 0;margin-top:9px;background:none;border:0;border-top:1px solid #aec8d31f;color:var(--cyan);font:8px monospace;letter-spacing:.6px}.foundry-button:hover{color:#fff}.foundry-button span{font-size:15px}
/* Map selection is part of mission planning, with previews of the actual layouts. */
.map-select-heading{display:flex;justify-content:space-between;align-items:center;color:#d2e3e7;font:9px monospace;letter-spacing:1px;margin-bottom:10px}.map-select-heading small{font:8px monospace;color:#91aebc;letter-spacing:0}.map-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.map-choice{display:block;color:#b7cbd4;background:#0c1b25;border:1px solid #92afbf40;text-decoration:none;overflow:hidden}.map-choice canvas{width:100%;height:65px;display:block;object-fit:cover;opacity:.6}.map-choice>span{display:block;padding:8px}.map-choice b{font:12px Arial;display:block;white-space:nowrap}.map-choice small{display:block;font:6px monospace;letter-spacing:.7px;color:#8ba6b6;margin-top:5px}.map-choice.selected{border-color:#a0e8eb;background:#a0e8eb12}.map-choice.selected canvas{opacity:1}.map-choice.selected small{color:#a0e8eb}.map-choice:hover,.map-choice:focus-visible{border-color:#f3c2a2;outline:none}.map-summary{margin:13px 0 20px;padding-bottom:17px;border-bottom:1px solid var(--line)}.map-summary strong{display:block;font-size:17px;font-weight:500}.map-summary>span{display:block;margin-top:6px;color:#a8c2cd;font:7px monospace;letter-spacing:.5px}.map-summary p{margin:8px 0 0;font:10px/1.5 Arial;color:#a3bac6}.survival-note{margin:0 0 12px;color:#9fd8be;font:9px/1.5 monospace}.health-panel #recovery-state{display:block;color:#b4c9d2;font:7px/1.5 monospace;letter-spacing:.1px;margin-top:8px;min-height:11px}.health-panel #recovery-state.recovering{color:#85efbb}.mission-board{width:470px;max-width:46vw}.menu-layout{align-items:flex-start;padding-top:100px}.menu-copy{padding-top:10px}.board-heading h2{font-size:23px}.board-heading{margin-bottom:12px}.mission-card{padding:10px 11px}.mission-brief{margin-top:14px;padding-top:12px}.mission-brief p{margin:8px 0}.health-panel{bottom:45px}.equipment-panel{bottom:180px}
@media(max-height:820px) and (min-width:901px){.menu-layout{padding-top:84px}.map-choice canvas{height:43px}.map-choice>span{padding:6px 8px}.map-summary{margin:10px 0 14px;padding-bottom:11px}.map-summary p{margin-top:6px}.mission-board{padding:17px}.mission-card{padding:8px 10px}.mission-card small{font-size:7px}.brief-foot{margin-top:10px;padding-top:9px}.mission-brief p{font-size:10px}.menu-copy{padding-top:0}}
@media(max-width:900px){.mission-board{width:450px;max-width:100%}.menu-layout{align-items:start}.map-choice canvas{height:65px}}

/* Frontlines: a consistent combat HUD with map-specific planning and clear tasks. */
:root{--map-accent:#ed986f}
.map-summary{border-left:2px solid var(--map-accent);padding-left:12px}.map-summary strong{color:var(--map-accent)}#map-playstyle{display:block;margin-top:10px;color:#d2e0df;font:8px/1.6 monospace}.map-choice small{font-size:6px;line-height:1.5;white-space:normal}.map-choice canvas{object-fit:contain}.brief-objectives{list-style:none;margin:12px 0;padding:0;display:grid;gap:7px}.brief-objectives li{display:flex;gap:9px;align-items:baseline;color:#dce6e6;font:10px/1.4 Arial}.brief-objectives li>span{color:#ffd093;font:7px monospace;min-width:54px;letter-spacing:.4px}.brief-objectives .exfil>span{color:#99e2b9}.mission-brief .intel{color:#b0c2cb}.map-select-heading small,.mission-card small{color:#b0c2cb}
.assignment-panel{position:absolute;left:28px;top:300px;width:238px;padding:14px;background:linear-gradient(115deg,#11212deb,#11212dba);border:1px solid #f9c88c40;border-left:2px solid #f9c88c;border-radius:3px}.assignment-panel>div:first-child{display:flex;justify-content:space-between;align-items:center;font:8px monospace;letter-spacing:.8px;color:#ffd298}.assignment-panel>div>b{font-weight:400;color:#c1d1d8}.assignment-panel h3{font:600 13px/1.4 Arial;margin:9px 0 8px;color:#eef3f3}.assignment-panel p{margin:0 0 9px;font:8px/1.5 monospace;color:#f9d9ad}.assignment-track{height:3px;background:#ffffff17;overflow:hidden}.assignment-track i{display:block;width:0;height:100%;background:#ffd08c}.assignment-panel>small{display:block;margin-top:9px;font:9px/1.5 Arial;color:#b9cbd3}.assignment-panel.extracting{border-color:#98efb95e;border-left-color:#98efb9}.extracting .assignment-track i{background:#98efb9}.extracting>div:first-child,.extracting p{color:#98efb9}
#objective-waypoint{position:absolute;text-align:center;transform:translate(-50%,-50%);color:#ffd392;filter:drop-shadow(0 1px 3px #000);pointer-events:none;min-width:60px}#objective-waypoint>b{display:block;font:36px/1 monospace;font-weight:400}#objective-waypoint>span{display:block;font:10px monospace;background:#14232ace;border:1px solid #ffd18e55;padding:5px 7px;margin-top:3px;border-radius:2px}#objective-waypoint>small{display:block;margin-top:4px;font:7px monospace;letter-spacing:1px}#objective-waypoint.extraction{color:#99efbc}#objective-waypoint.extraction>span{border-color:#99efbc66}.objective-legend{color:#ffd392}
#hit-detail{position:absolute;left:50%;top:calc(50% + 24px);transform:translateX(-50%);font:8px monospace;letter-spacing:.6px;color:#ffd7a5;text-shadow:0 1px 3px #000;opacity:0}#target-readout{position:absolute;left:50%;top:calc(50% - 62px);transform:translateX(-50%);width:124px;text-align:center}#target-readout>span{font:7px monospace;letter-spacing:1px;color:#f7c59e;background:#14232aca;padding:4px 7px}#target-readout>div{margin:8px auto 0;width:82px;height:3px;background:#24313bd9;box-shadow:0 1px 3px #0005}#target-health{display:block;height:100%;background:#efa476}.equipment-panel>div{min-width:86px;padding:9px;grid-template-columns:20px 23px;gap:2px 5px}.equipment-panel{gap:5px}.controls-strip{gap:11px}.playing .round-objective{min-width:175px}#round-banner>b{font-size:30px}#round-banner{max-width:520px}#round-banner>small{max-width:450px}.combat-top{min-width:390px}
@media(max-height:820px){.assignment-panel{top:270px;width:220px;padding:11px}.assignment-panel>small{font-size:8px}.assignment-panel h3{font-size:12px}.assignment-panel p{font-size:7px}.equipment-panel{bottom:176px}.controls-strip{font-size:7px;gap:7px}.controls-strip kbd{font-size:7px}.brief-objectives{gap:5px;margin:9px 0}.mission-board{padding:17px}.map-summary{margin-bottom:12px}.map-summary p{font-size:9px}.map-summary #map-playstyle{font-size:7px}.menu-layout{padding-bottom:22px}}
@media(min-width:901px){.mission-board{max-height:calc(100vh - 125px);overflow:auto;scrollbar-width:thin;scrollbar-color:#63818b #10202b}.menu-layout{min-height:calc(100vh - 72px)}}
@media(max-width:1000px){.controls-strip{max-width:95vw;flex-wrap:wrap;justify-content:center;gap:4px 8px}.assignment-panel{width:195px}.assignment-panel h3{font-size:11px}}
@media(max-width:650px){.assignment-panel{top:370px;left:20px;width:180px;padding:9px}.assignment-panel>small{display:none}.combat-top{min-width:320px}.playing .round-objective{min-width:120px}.equipment-panel{left:20px;bottom:207px}.equipment-panel>div{min-width:74px;padding:7px}.equipment-panel b{font-size:18px}.equipment-panel span{font-size:6px}.map-summary{padding-left:10px}#round-banner>b{font-size:23px}#objective-waypoint>b{font-size:27px}}

#hitmarker.armored{color:#9bd8ff;filter:drop-shadow(0 0 5px #74bdff)}

#crosshair.shotgun i{display:none}#crosshair.shotgun:after{content:'';position:absolute;width:calc(var(--spread)*2);height:calc(var(--spread)*2);border:1px solid currentColor;border-radius:50%;transform:translate(-50%,-50%);opacity:.75}

#performance-meter{position:absolute;right:28px;bottom:213px;padding:7px 9px;background:#11212dde;border:1px solid #b6d6d633;border-radius:3px;color:#b8e4d9;font:9px monospace;letter-spacing:.2px;pointer-events:none}#target-readout{width:160px}

.weapon-power{font:600 9px/1.8 monospace;letter-spacing:.07em;color:var(--accent);margin:9px 0 0;}

/* Dedicated range controls share the campaign's typography and colour system. */
.training-link{display:grid;grid-template-columns:1fr auto;gap:4px;margin-top:10px;padding:11px 13px;border:1px solid #83d5be70;background:#76c6b014;color:#c9f6e7;text-decoration:none}.training-link>span{font:10px monospace;letter-spacing:1px}.training-link small{grid-column:1;font:9px Arial;color:#a9c8c6}.training-link>b{grid-column:2;grid-row:1/3;align-self:center;font-size:20px}.training-link:hover,.training-link:focus-visible{background:#76c6b028;border-color:#adf3d5}.training-menu h2{font:500 29px Arial;margin:12px 0}.range-intro{font:12px/1.7 Arial;color:#b9cdd3}.range-cards{display:grid;gap:8px;margin:18px 0}.range-card{display:grid;grid-template-columns:27px 1fr;gap:12px;width:100%;text-align:left;border:1px solid #91b1ba3d;background:#0d202ac9;color:#d8e9e9;padding:14px;cursor:pointer}.range-card-number{font:18px monospace;color:#719c9f}.range-card>span>small{display:block;font:8px monospace;letter-spacing:1px;color:#7fcfbb}.range-card>span>b{display:block;font:500 16px Arial;margin:6px 0}.range-card>span>span{display:block;font:11px/1.5 Arial;color:#aec6cd}.range-card.selected{border-color:#a6e8d0;background:#73c4ae12;box-shadow:inset 3px 0 #a6e8d0}.range-card:hover,.range-card:focus-visible{border-color:#d6e9c8}.range-menu-note{border-top:1px solid var(--line);padding-top:16px}.range-menu-note>b{font:8px monospace;letter-spacing:1px;color:#a6e8d0}.range-menu-note p{font:11px/1.7 Arial;color:#a6bdc5}.range-return{display:inline-block;margin-top:12px;color:#cfe5e1;text-decoration:none}.training-world .run-clock{display:none}.training-world #practice-badge{display:none}
#range-hud{position:absolute;right:28px;top:100px;width:245px;padding:16px;background:linear-gradient(120deg,#10242df2,#142b32dc);border:1px solid #86bdaf55;border-top:2px solid #a4e5ce;pointer-events:auto}.range-hud-top{display:flex;justify-content:space-between;align-items:center;font:8px monospace;letter-spacing:1.3px;color:#a4e5ce}#range-title{font:500 17px Arial;margin:12px 0}.range-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px;border-block:1px solid #b4d2d922;padding:13px 0}.range-stats b{display:block;font:23px monospace;color:#edf5e9}.range-stats span{font:7px monospace;letter-spacing:1px;color:#a9c9ce}.range-hud-actions{display:flex;gap:6px;margin-top:13px}.range-hud-actions button{background:#89b6aa13;border:1px solid #89b6aa44;padding:9px 6px;color:#d5eadf;font:8px monospace;cursor:pointer}#range-feedback{font:10px/1.5 monospace;color:#ffce93;margin:13px 0 8px}#range-rules{display:block;font:7px/1.7 monospace;color:#a4c1c5}
.range-panel{width:650px;max-width:92vw;padding:26px}.range-panel h2{font-size:27px;margin:12px 0}.range-panel .range-cards{grid-template-columns:1fr 1fr;margin:16px 0}.range-panel .range-card{padding:11px;grid-template-columns:20px 1fr;gap:7px}.range-panel .range-card>span>b{font-size:13px}.range-panel .range-card>span>span{font-size:10px}.range-settings{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:10px 0}.range-settings .setting{flex:1;min-width:145px;margin:0;font-size:11px}.range-settings .check-setting{margin:0;font-size:11px}.range-settings select{font-size:11px}.range-panel-footer{display:flex;justify-content:space-between;gap:20px}.range-panel-footer .text-button{font-size:10px}.range-note{display:block;font:9px/1.6 Arial;color:#9eb9c0}#range-result{background:#84cdb91a;border-left:2px solid #9be5cc;padding:13px 15px;margin:14px 0}#range-result>b{font:13px monospace;color:#b9f5d9}#range-result p{font:11px/1.6 Arial;color:#d1e4dd;margin:8px 0}#range-record{font:9px monospace;color:#b1c8bd}
@media(max-height:820px){.range-card{padding:11px}.range-card>span>b{font-size:14px}.range-card>span>span{font-size:10px}.training-menu h2{font-size:25px}.range-panel{padding:20px}.range-panel .range-cards{margin:12px 0;gap:6px}.range-panel .range-card>span>span{font-size:9px}.range-panel .range-intro{font-size:10px;margin:8px 0}#range-hud{top:105px;padding:13px;width:230px}.range-stats{gap:8px;padding:9px 0}}
@media(max-width:900px){.range-panel{width:580px}#range-hud{width:210px;right:20px}.range-panel .range-cards{grid-template-columns:1fr 1fr}.training-menu{max-width:100%}}
@media(max-width:650px){#range-hud{top:190px;width:180px;padding:10px}.range-stats b{font-size:18px}.range-hud-actions{flex-direction:column}.range-panel .range-cards{grid-template-columns:1fr}.range-settings{display:grid;gap:12px}.range-panel h2{font-size:22px}}

/* Combat Academy is training with live opponents and its own arena. */
.combat-entry{border-color:#edb87888;background:#b17a2922;color:#f4d5aa;margin:14px 0}.combat-entry small{color:#d1b99a}.combat-links{display:flex;justify-content:space-between;gap:18px;align-items:center}.combat-links a{text-decoration:none}.combat-round-list{display:grid;gap:0;border-block:1px solid var(--line);margin:10px 0 18px}.combat-round-list>div{display:flex;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.combat-round-list>div:last-child{border:0}.combat-round-list>div>b{font:23px monospace;color:#e6b474}.combat-round-list strong{display:block;font:500 14px Arial;color:#e3ebe6}.combat-round-list small{display:block;margin-top:5px;color:#a7bfc7;font:9px monospace}#academy-layout{display:block;width:100%;height:auto;border:1px solid #cfb17d38;margin:15px 0}.combat-training-world .run-clock,.combat-training-world #practice-badge{display:none}.combat-panel-link{display:block;color:#f0c68c;text-decoration:none;padding:8px 0 15px;font-size:10px}
#combat-training-hud{position:absolute;right:28px;top:105px;width:245px;padding:15px;background:linear-gradient(120deg,#15242ff2,#202e34e6);border:1px solid #c9a97566;border-top:2px solid #edbd80;pointer-events:auto}#combat-training-hud .range-hud-top{color:#edbd80}#combat-status{font:500 12px monospace;line-height:1.5;color:#f0d3a9;margin:13px 0}#combat-tip-text{font:11px/1.6 Arial;color:#d1e0df;margin:12px 0}#combat-training-hud>small{display:block;font:8px/1.8 monospace;color:#9fbcc2}#combat-training-hud .range-stats b{font-size:21px}.combat-session-panel{width:500px;max-width:92vw}.combat-session-panel .primary,.combat-session-panel .secondary{width:100%;margin-top:12px}.combat-session-panel h2{font-size:29px}.combat-session-panel .combat-result-note{font:11px/1.7 Arial;color:#a3bdc5;border-top:1px solid var(--line);padding-top:15px}.combat-session-panel .setting{font-size:12px}.combat-training-world .menu-copy h1>span{letter-spacing:8px}
@media(max-height:820px){#combat-training-hud{width:230px;padding:12px}#combat-tip-text{font-size:10px}.combat-round-list>div{padding:9px 0}}
@media(max-width:900px){#combat-training-hud{right:20px;width:205px}}
@media(max-width:650px){#combat-training-hud{top:195px;width:180px;padding:10px}#combat-training-hud>small{display:none}}
.combat-training-world .objective-track{opacity:.35}.combat-training-world .remaining>b{font-variant-numeric:tabular-nums;font-size:25px}.combat-training-world .remaining>span{font-size:7px}.combat-training-world #combat-training-hud .range-stats{grid-template-columns:1fr 1fr;row-gap:12px}#combat-training-hud .range-stats span{font-size:7px}.combat-restart{display:block;margin:18px auto 10px}#combat-refill:disabled{opacity:.55;cursor:default}#combat-training-hud .range-hud-actions{display:grid;gap:7px}.combat-session-panel #combat-leave{color:#f3c78f;border-color:#d5a76b77}
@media(max-height:700px){#combat-tip-text{display:none}}
@media(max-width:650px){.combat-training-world .remaining>b{font-size:20px}}

/* Keep confirmations below the radar, clear of the longer session HUD. */
.combat-training-world #kill-feed{left:28px;right:auto;top:290px}.combat-training-world #kill-feed>div{justify-content:flex-start;border-right:0;border-left:2px solid var(--accent)}
@media(max-width:650px){.combat-training-world #kill-feed{left:20px;top:385px;max-width:180px}.combat-training-world #kill-feed>div{font-size:7px;gap:6px}}

/* Frontline: the replay loop is a first-class mode beside the campaign. */
.game-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 12px}.game-mode-switch button,.frontline-run-choice button{border:1px solid #91b2c244;background:#10212bcc;color:#a6bcc5;text-align:left;padding:12px;font:11px monospace;cursor:pointer}.game-mode-switch small,.frontline-run-choice small{display:block;font:9px/1.5 Arial;margin-top:5px;color:#9bb3bd}.game-mode-switch [aria-pressed="true"],.frontline-run-choice [aria-pressed="true"]{border-color:#b5dab1;background:#9abb7a18;color:#d5edb9;box-shadow:inset 0 -2px #bcdfa3}.map-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.map-choice{display:grid;grid-template-columns:66px 1fr;align-items:center;min-height:65px}.map-choice canvas{width:66px;height:51px;object-fit:contain}.map-choice>span{padding:6px}.map-choice b{font-size:11px}.map-choice small{font-size:6.5px;letter-spacing:.3px}.frontline-brief{border-top:1px solid var(--line);padding-top:18px}.frontline-brief h2{font-size:30px;font-weight:500;letter-spacing:-1px;margin:9px 0}.frontline-brief>p{font-size:12px;line-height:1.7;color:#adbfca;margin:8px 0 14px}.frontline-run-choice{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:15px}.frontline-run-choice b{font-weight:500;font-size:10px}.frontline-rules{margin:17px 0;display:grid;gap:10px}.frontline-rules>div{display:flex;align-items:center;gap:13px}.frontline-rules b{font:18px monospace;color:#d2dcb7;width:38px}.frontline-rules span{font-size:11px;color:#b9cdd4}.frontline-records{padding:14px;background:#0a192380;border:1px solid #8bb1c026}.frontline-records>small{font:8px monospace;letter-spacing:.5px;color:#a4c3b3}.frontline-records>div{display:flex;justify-content:space-between;gap:15px;margin-top:12px}.frontline-records b{display:block;font:21px monospace;color:#e3e9d8}.frontline-records span small{display:block;font:7px monospace;color:#8fa8b2;margin-top:5px}.frontline-seed-note{font-size:11px!important;color:#a9c0c8!important;line-height:1.7!important}.frontline-controls{display:block;font:8px/1.9 monospace;color:#869fa9}.mission-list{max-height:330px;overflow:auto;scrollbar-width:thin}.frontline-session-panel{max-width:600px}.frontline-session-panel .secondary,.frontline-session-panel .primary{width:100%;margin-top:12px}.frontline-session-panel>p{font-size:12px;line-height:1.7;color:#b3c6cd}.frontline-session-panel .result-score{margin:22px 0}.frontline-session-panel .result-score>b{font-size:58px}
#frontline-hud{position:absolute;right:28px;top:155px;width:246px;background:#0b1a25df;border:1px solid #adcbd03b;padding:16px;backdrop-filter:blur(8px);pointer-events:auto}#frontline-hud .range-hud-top{font:8px monospace;color:#bed6c5}#frontline-menu-button{background:transparent;border:1px solid #a2c1bf55;color:#c0d5cd;font:8px monospace;padding:5px;cursor:pointer}#frontline-clock{display:block;font:32px monospace;color:#e2e9db;margin:13px 0}.frontline-live-stats{display:flex;justify-content:space-between;gap:13px}.frontline-live-stats b{display:block;font:20px monospace;color:#cae4c4}.frontline-live-stats small{font:7px monospace;color:#93afb6}#frontline-streak-note{font:8px/1.5 monospace;color:#b3caaf;margin:14px 0 0}@media(max-width:1100px){#frontline-hud{width:206px;right:18px;padding:12px}}@media(max-height:780px){#frontline-hud{top:140px}.frontline-brief{padding-top:12px}.frontline-rules{gap:7px;margin:12px 0}.frontline-records{padding:11px}}

#view-indicator{position:absolute;left:50%;bottom:94px;transform:translateX(-50%);padding:7px 11px;border:1px solid #b7d39744;background:#12232bd9;color:#d6efb0;font:10px monospace;letter-spacing:.8px;white-space:nowrap}#crosshair.cover-blocked{color:#ff986f}#crosshair.cover-blocked:after{content:"COVER";position:absolute;top:25px;left:50%;transform:translateX(-50%);font:9px monospace;letter-spacing:1px;color:#ff986f}

/* Tactical after-action report: data-rich but isolated from the live combat HUD. */
.after-action{margin:18px 0 15px;padding:14px;background:linear-gradient(130deg,#0a1a25b8,#182b35a8);border:1px solid #a8c8cd2b;border-top:2px solid #d98a60}
.debrief-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}
.debrief-heading-copy{display:grid;gap:4px;min-width:0}
.debrief-kicker,.debrief-section-title{font:8px monospace;letter-spacing:1.5px;color:#a9c5c5}
.debrief-mission{font:500 15px Arial;color:#edf2e9}
.debrief-meta{font:7px monospace;letter-spacing:.8px;color:#8faab3}
.debrief-grade{display:grid;justify-items:center;min-width:66px;padding:5px 8px;border:1px solid #e5b27b66;background:#df99531a}
.debrief-grade strong{font:30px monospace;line-height:1;color:#f1bd83}
.debrief-grade small{font:7px monospace;white-space:nowrap;color:#c9b499;margin-top:4px}
.debrief-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 0 14px}
.debrief-metric{min-width:0;padding:9px 7px;background:#b9d7d90b;border:1px solid #a8c8cd20}
.debrief-metric span,.debrief-metric small{display:block;font:7px monospace;letter-spacing:.7px;color:#8eaeb6}
.debrief-metric strong{display:block;font:18px monospace;color:#e9eee2;margin:6px 0 4px;white-space:nowrap}
.debrief-section-title{margin:0 0 8px}
.debrief-weapons{border-top:1px solid #a8c8cd24;padding-top:12px}
.debrief-weapon{margin:10px 0 12px}
.debrief-weapon-top{display:flex;justify-content:space-between;gap:12px;font:9px monospace;color:#dce8df}
.debrief-weapon-top span{color:#a9c7c3;text-align:right}
.debrief-track{height:4px;background:#92b5b324;margin:6px 0 4px;overflow:hidden}
.debrief-track i{display:block;height:100%;background:linear-gradient(90deg,#8fc9ba,#e7b57e)}
.debrief-weapon>small{font:7px monospace;color:#829da8;letter-spacing:.4px}
.debrief-empty{font:10px Arial;color:#91aab4;margin:7px 0}
.debrief-notes{border-top:1px solid #a8c8cd24;padding-top:12px;margin-top:10px}
.debrief-notes p{font:10px/1.5 Arial;color:#b5c9c7;margin:5px 0}
.debrief-footer{border-top:1px solid #a8c8cd24;padding-top:9px;margin-top:10px;font:7px/1.6 monospace;letter-spacing:.5px;color:#829da8}
@media(max-width:520px){.debrief-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.debrief-metric strong{font-size:17px}.after-action{padding:11px}.debrief-weapon-top{font-size:8px}}
