*{box-sizing:border-box}body{margin:0;background:#171b1c;color:#f1eee6;font-family:Arial,Helvetica,sans-serif;overflow:hidden}canvas{display:block}#game,#shade,#hurt{position:fixed;inset:0}#game canvas{width:100%;height:100%;cursor:crosshair;touch-action:none}#shade{pointer-events:none;background:radial-gradient(ellipse,transparent 45%,#07101577);z-index:1}header{position:fixed;top:25px;left:32px;right:32px;display:flex;justify-content:space-between;z-index:3;pointer-events:none}.brand{font-weight:900;letter-spacing:5px;font-size:19px}.brand small{display:block;letter-spacing:2px;font-size:10px;margin-top:6px;color:#c3b59d}.mission{text-align:right;font-size:12px;letter-spacing:2px}.mission span{display:block;font-size:10px;color:#bcbdb3;margin-top:8px}#menu{position:fixed;inset:0;padding:105px 6vw 25px;background:linear-gradient(90deg,#0c151aef,#101719c9 65%,#10171977);z-index:4;overflow:auto}.eyebrow{font-size:12px;letter-spacing:2px;color:#d7b681}h1{font-size:clamp(50px,6vw,88px);letter-spacing:-4px;margin:12px 0 0;line-height:1;font-weight:900}h1 span{color:#d6b477}.subtitle{letter-spacing:9px;font-size:12px;margin:12px 0 25px}.deploy-grid{display:grid;grid-template-columns:minmax(300px,1.1fr) minmax(340px,.9fr);gap:6vw;max-width:1100px}.brief>span,.panel>span{font-size:12px;letter-spacing:2px;color:#c5ac84}h2{font-size:28px;margin:16px 0}h3{font-size:18px}p{font-size:16px;color:#c9cacc;line-height:1.6}.mode-tabs{display:flex;gap:5px;margin-bottom:24px}.mode-tabs button{padding:12px;font-size:11px;min-width:0;flex:1;text-align:center;letter-spacing:1px;background:#ffffff0a;color:#b8c0be;border:1px solid #ffffff22}.mode-tabs button[aria-pressed=true]{color:#efd3a6;border-color:#ad8f60;background:#d2ae7a16}button{border:0;background:#d0ae73;color:#121b1d;font-weight:800;letter-spacing:1.5px;padding:18px 20px;cursor:pointer;font-size:13px;text-align:left}button:hover{filter:brightness(1.15)}button:disabled{opacity:.5;cursor:wait}button span{float:right}.options{display:flex;gap:18px;margin:24px 0;font-size:12px;align-items:center;flex-wrap:wrap}.options label{display:flex;gap:8px;align-items:center}input{accent-color:#d0ae73}input[type=range]{width:90px}select{background:#1e2a2d;color:#eee;border:1px solid #ffffff30;padding:5px}.hint{font-size:12px;color:#aab3b2;line-height:1.8}#story-steps{padding-left:21px;color:#b9c5c3;font-size:14px;line-height:1.9}#classes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}#classes button{background:#18262ccc;border:1px solid #ffffff25;min-height:94px;color:#e2e9e7;font-size:12px;letter-spacing:1px;padding:17px 15px}#classes button[aria-pressed=true]{background:#b99b6330;border-color:#d3b27b}#classes span{float:none;display:block;font-size:12px;font-weight:normal;letter-spacing:0;line-height:1.5;margin-top:10px;color:#b9c1bd}#loadout-info{padding:15px 0 22px;min-height:130px}#loadout-name{font-size:14px;letter-spacing:1px}#loadout-info p{font-size:14px;margin:10px 0}#loadout-stats{font-size:12px;color:#b6c4bc}#start{width:100%}footer{margin-top:24px;font-size:10px;letter-spacing:1px;color:#899795}a{color:#b9bba9}#network-panel{border-top:1px solid #ffffff30;padding-top:5px}#network-panel p{font-size:13px}#network-panel label{font-size:12px;color:#c8cabd;display:block;margin-top:12px}textarea{display:block;width:100%;resize:vertical;margin:8px 0;padding:10px;background:#111d23;color:#d0dbd6;border:1px solid #ffffff30;font:12px monospace}.small{font-size:11px;padding:12px;letter-spacing:1px}.net-actions{display:flex;gap:10px}#netstatus{color:#e4c48b!important}#hud{position:fixed;inset:0;z-index:2;pointer-events:none;text-shadow:0 2px 5px #000}#compass{position:absolute;top:32px;left:50%;transform:translateX(-50%);font-size:13px;letter-spacing:4px}#objective{position:absolute;top:105px;left:32px;width:265px}#objective>span,#squad>span,#vitals>span{font-size:11px;letter-spacing:2px;color:#dbbd88}#objective strong{display:block;font-size:17px;margin:12px 0}#objective small{font-size:12px;color:#ddded4;display:block;margin-top:9px}.track{height:3px;background:#ffffff30}.track i{display:block;height:100%;width:0;background:#d6b477}#squad{position:absolute;left:32px;top:245px;width:200px}#squad p{margin:9px 0;color:#b7d1c6;font-size:12px}#squad b{float:right;font-size:10px;font-weight:normal;color:#ddd}#squad small{font-size:11px;color:#c8b280}#squad em{font-style:normal}#cross,#hit{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#ffffffaa}#cross{width:16px;height:16px}#cross i{position:absolute;background:#dce2d8aa;width:1px;height:4px;left:8px}#cross i:nth-child(1){top:0}#cross i:nth-child(2){bottom:0}#cross i:nth-child(3){left:0;top:8px;width:4px;height:1px}#cross i:nth-child(4){left:auto;right:0;top:8px;width:4px;height:1px}#hit{color:#ffe1ac;opacity:0;font-size:26px}#notice{position:absolute;top:64%;text-align:center;width:100%;font-size:13px;letter-spacing:1px}#interact{position:absolute;top:58%;width:100%;text-align:center;font-size:15px;color:#f1d49b;white-space:pre-line;line-height:1.45}
#revive{position:absolute;left:50%;top:58%;transform:translateX(-50%);font-size:13px;letter-spacing:.08em;font-weight:bold;color:#9fd2ff;text-shadow:0 1px 3px #000;text-align:center;white-space:nowrap}#session{margin:8px 0;font-size:12px;color:#9fd2ff}#session[hidden]{display:none}#flashed{position:fixed;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:5}#squad-label[hidden]{display:none}#squad-note{min-height:14px;margin:0 0 6px;font-size:11px;color:#f1d49b}#matehud{display:block;margin-top:6px;font-size:11px;letter-spacing:.06em;color:#9fd2ff}#matehud[hidden]{display:none}#fullmap{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;gap:34px;background:#0a1113e0}#fullmap[hidden]{display:none}#bigmap{height:86vh;width:auto;border:1px solid #ffffff30;background:#10191b}#maplegend{width:360px;white-space:pre-line;font-size:12px;line-height:1.75;letter-spacing:.04em;color:#f1eee6}body.fullmap #cross,body.fullmap #interact{visibility:hidden}
kbd{display:inline-block;min-width:16px;padding:1px 5px;border-radius:3px;font:bold 10px/1.3 Arial,Helvetica,sans-serif;color:#171b1c;background:#f1d49b;text-align:center;vertical-align:1px}#radio{position:absolute;left:50%;bottom:105px;transform:translateX(-50%);width:min(440px,45vw,max(260px,calc(100vw - 920px)));text-align:center;opacity:0}#radio>span{font-size:10px;color:#c6b584;letter-spacing:3px}#radio p{font-size:14px;margin:7px 0;color:#e0e6df}#lookhint{position:absolute;top:78px;right:30px;font-size:11px;color:#c4cfcd}#map{position:absolute;bottom:65px;left:32px;border:1px solid #ffffff35;border-radius:50%;background:#101c20ad}#vitals{position:absolute;left:225px;bottom:82px;width:100px}#vitals strong{font-size:32px;display:block;margin:8px 0}#vitals small{font-size:10px;display:block;margin-top:10px}#reserve{font-size:27px;color:#b0b5aa}#controls{position:absolute;bottom:22px;width:100%;text-align:center;font-size:10px;letter-spacing:.5px;color:#ccc;padding:0 20px}#hurt{z-index:3;pointer-events:none;box-shadow:inset 0 0 180px #a21b12;opacity:0}#pause,#end{position:fixed;inset:0;background:#071016ba;backdrop-filter:blur(8px);z-index:6;display:grid;place-items:center}[hidden]{display:none!important}.panel{width:min(450px,90vw);padding:38px;border:1px solid #ffffff30;background:#152025e8}.panel h2{font-size:34px}.panel button{display:block;margin-top:18px;width:100%}.secondary{background:transparent;border:1px solid #788080;color:#eee}#leaveask{position:fixed;top:22%;left:50%;transform:translateX(-50%);z-index:9;padding:14px 22px;background:#5c0b0bee;border:1px solid #ff6b6b;color:#fff;font-size:16px;font-weight:800;letter-spacing:1.5px;text-align:center;white-space:pre-line;pointer-events:none}
#bounds{position:absolute;top:34%;left:50%;transform:translateX(-50%);padding:14px 22px;background:#5c0b0bd9;border:1px solid #ff6b6b;color:#fff;font-size:16px;font-weight:800;letter-spacing:1.5px;text-align:center}#decision{position:absolute;top:26%;left:50%;transform:translateX(-50%);width:min(520px,86vw);padding:20px 24px;background:#0e171bf0;border:1px solid #f2c14e;text-align:center}#decision strong{font-size:20px;letter-spacing:2px;color:#f2c14e}#decision p{margin:12px 0;font-size:15px;color:#eef0ea}#decision small{font-size:12px;color:#c7cbc2;letter-spacing:1px}#error{position:absolute;z-index:9;background:#242424;padding:40px;inset:20%;line-height:1.6}@media(max-width:900px){.deploy-grid{grid-template-columns:1fr;gap:20px;max-width:620px}#menu{padding:95px 30px 25px}h1{font-size:60px}.mission{display:none}#squad{display:none}#radio{bottom:240px;width:75vw}#vitals{left:210px}#compass{left:auto;right:25px;transform:none}#lookhint{top:60px}#controls{font-size:9px;line-height:1.8}#objective{width:235px}}@media(max-height:750px) and (min-width:901px){#menu{padding-top:82px}h1{font-size:55px}.subtitle{margin-bottom:15px}.options{margin:16px 0}#classes button{min-height:85px}#loadout-info{min-height:100px}}
body.in-play,body.in-play #game canvas,body.in-play *{cursor:none!important}
#optic{position:absolute;inset:0;background:radial-gradient(circle at center,transparent 0,transparent 27vh,#0a1014eb 27.3vh,#0a1014f5 28vh);pointer-events:none}#optic i{position:absolute;left:50%;top:calc(50% - 27vh);height:54vh;width:1px;background:linear-gradient(#121716 0 48%,#b7371f 48% 52%,#121716 52%)}#optic b{position:absolute;top:50%;left:calc(50% - 27vh);width:54vh;height:1px;background:#121716}#optic span{position:absolute;top:calc(50% + 22vh);left:calc(50% + 5vh);font-size:12px;color:#c2d1c7}

/* Compact combat HUD. Tactical detail is available on demand. */
body.in-play header{display:none}#squad,#map,#controls{display:none}body.tactical #squad,body.tactical #map,body.tactical #controls{display:block}#objective{top:28px;left:28px;width:255px}#objective>span{font-size:10px}#objective strong{font-size:15px;margin:8px 0}#objective small{font-size:11px}#objective .track{height:2px;max-width:170px}#vitals{left:28px;bottom:32px;width:100px}#vitals>span,#stance{display:none!important}#vitals strong{font-size:25px}#vitals strong:before{content:'＋ ';font-size:17px;color:#b2c2b6}#compass{top:30px;font-size:11px}#radio{bottom:36px}#radio p{font-size:13px}#lookhint{display:none}#session-controls{position:absolute;right:26px;top:26px;display:flex;gap:14px;align-items:center;text-shadow:none;pointer-events:auto}#session-controls button{background:#0f181a77;border:1px solid #ffffff24;color:#d6dfd9;font-size:11px;padding:8px 10px;letter-spacing:0}#session-controls span{font-size:10px;color:#b6c4ba}body.tactical #map{bottom:125px}body.tactical #squad{top:185px}body.tactical #controls{bottom:10px}#capture-screen{position:fixed;inset:0;z-index:8;background:#081319e8;backdrop-filter:blur(8px);display:grid;place-items:center}#capture-screen .panel{width:min(530px,90vw)}#capture-status{font-size:13px;color:#d0b37e}#pause .panel{max-height:90vh;overflow:auto}#fullscreen{background:transparent;color:#dfc492;border:1px solid #ffffff30;padding:9px;font-size:10px}@media(max-width:800px){#session-controls{top:16px;right:15px;gap:6px}#session-controls span{display:none}#compass{top:65px}#objective{top:26px;left:20px;width:220px}#radio{bottom:130px;width:70vw}}

body.tactical #stance{display:block!important}body.solo #squad{display:none!important}body.tactical #vitals{bottom:38px}
#hit{font-size:26px;line-height:1;color:#ece8de;text-shadow:0 0 2px #000b;transition:opacity .08s}#hit.head{color:#ff5a47}
#killalert{position:absolute;left:50%;top:calc(50% + 30px);transform:translateX(-50%);font-size:11px;letter-spacing:2px;color:#e9e4d6;text-shadow:0 0 3px #000c;opacity:0;transition:opacity .25s;pointer-events:none;white-space:nowrap}

.map-tabs{margin-top:6px}#maploading{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:rgba(18,21,22,.92);color:#f1d49b;font:bold 15px/1 Arial,Helvetica,sans-serif;letter-spacing:.3em}#maploading[hidden]{display:none}
#squad-entry{width:7.5em;padding:8px 10px;background:#0f1213;border:1px solid #ffffff50;color:#f1eee6;font:700 18px/1 'Courier New',monospace;letter-spacing:.3em;text-transform:uppercase;text-align:center}#squad-entry::placeholder{letter-spacing:.1em;color:#7d8078;font-size:13px}#squad-code{margin:12px 0 4px;font:700 44px/1 'Courier New',monospace;letter-spacing:.35em;color:#f0b84a}#squad-code small{display:block;margin-top:6px;font:400 12px/1.3 Arial,Helvetica,sans-serif;letter-spacing:0;color:#c8cabd}#manual-row{margin:8px 0 0}#manual-link{color:#c8cabd;font-size:12px}#manual{margin-top:8px;padding-top:6px;border-top:1px dashed #ffffff30}
/* Build 40: the panel (F.17): the bottom-right corner. Icons and numbers, the key on each icon. */
#panel{position:absolute;right:24px;bottom:22px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-variant-numeric:tabular-nums}body.tactical #panel{bottom:46px}
#panel-row{display:flex;align-items:stretch;gap:6px}#panel.down #panel-row{opacity:.4}
#ambushhud{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:2px 7px;padding-right:2px}#ambushhud[hidden]{display:none}#points{font-size:32px;line-height:1;font-weight:800;color:#f2c14e}#ambushhud>span{font-size:11px;letter-spacing:2px;color:#dbbd88}#pointsgain{font-size:13px;font-weight:700;color:#f2c14e;opacity:0;transition:opacity .25s;white-space:nowrap}
#matehud{flex-basis:100%;order:-1;margin:0;text-align:right;font-size:11px;letter-spacing:.06em;color:#9fd2ff;white-space:nowrap}#matehud[hidden]{display:none}
#kit{display:grid;grid-template-columns:24px repeat(3,54px);grid-template-rows:47px 47px;gap:4px}
.slot{position:relative;background:#0b1012c7;border:1px solid #ffffff2b;border-radius:4px;color:#ece7d9}.slot .ico{position:absolute;left:50%;top:50%;width:30px;height:30px;transform:translate(-50%,-44%);fill:currentColor}
.slot kbd{position:absolute;left:3px;top:3px;z-index:1}.slot b{position:absolute;right:5px;bottom:1px;font-size:16px;line-height:1.15;font-weight:800;text-shadow:0 1px 2px #000,0 0 3px #000}
.slot.chosen{border-color:#f2c14e;background:#201a08d1}.slot.empty .ico{opacity:.3}.slot.empty b{color:#ff8a7a}.slot.live{border-color:#fff;background:#3a3420d9}
#slot-swap{grid-column:2;grid-row:1}#slot-knife{grid-column:3;grid-row:1}#slot-dressing{grid-column:4;grid-row:1}#slot-frag{grid-column:2;grid-row:2}#slot-smoke{grid-column:3;grid-row:2}#slot-flash{grid-column:4;grid-row:2}
#key-item{grid-column:1;grid-row:2;align-self:center;justify-self:end;min-width:0;padding:1px 2px;font-size:8px;letter-spacing:0}
#slot-swap .ico{width:34px;height:34px;transform:translate(-36%,-60%)}#slot-swap:not([data-gun=sidearm]) .i-sidearm,#slot-swap[data-gun=sidearm] .i-rifle{display:none}
#slot-swap b{right:auto;left:5px;font-size:13px}#swap-reserve{position:absolute;right:5px;bottom:2px;font-size:10px;color:#b9bdb2;text-shadow:0 1px 2px #000}#swap-reserve:before{content:'/ ';color:#7d8078}
#ammo{position:relative;min-width:196px;padding:6px 10px 6px 12px;background:#0b1012c7;border:1px solid #ffffff2b;border-radius:4px;display:flex;flex-direction:column;justify-content:space-between}
.gun-top{display:flex;justify-content:flex-end;align-items:baseline;gap:8px;white-space:nowrap}#weaponname{font-size:11px;font-weight:700;letter-spacing:1.2px;color:#f1eee6}#calibre{font-size:10px;letter-spacing:.6px;color:#a9ada3}
.gun-mid{display:flex;align-items:center;justify-content:flex-end;gap:8px}#gun-icon{width:84px;height:28px;flex:none;fill:#cfc9b8;margin-right:auto}#gun-icon use{display:none}
#gun-icon[data-gun=assault] .g-assault,#gun-icon[data-gun=medic] .g-medic,#gun-icon[data-gun=marksman] .g-marksman,#gun-icon[data-gun=support] .g-support,#gun-icon[data-gun=sidearm] .g-sidearm{display:inline}
#rounds{font-size:46px;line-height:44px;font-weight:800;letter-spacing:-.5px;color:#fff;min-width:54px;text-align:right}#reserve{font-size:19px;font-weight:700;color:#b9bdb2;min-width:44px;text-align:left;align-self:flex-end;padding-bottom:5px;white-space:nowrap}#reserve:before{content:'/';margin-right:4px;color:#7d8078;font-weight:400}
#ammo.low #rounds{color:#f2c14e}#ammo.empty #rounds{color:#ff6b5b}#ammo.dry #reserve{color:#ff8a7a}
.gun-bot{display:flex;justify-content:flex-end;align-items:center;gap:6px;height:15px;font-size:10px;font-weight:700;letter-spacing:1.2px;white-space:nowrap}#reload{color:#f2c14e}#ammo.out #reload,#ammo.empty #reload{color:#ff6b5b}#reloadleft{color:#dbbd88;min-width:1.8em;text-align:right}#reloadleft:empty{display:none}
#reloadbar{display:none;width:46px;height:3px;background:#ffffff33;border-radius:2px;overflow:hidden}#ammo.reloading #reloadbar{display:block}#reloadfill{display:block;height:100%;width:0;background:#f2c14e}
#firepips{display:inline-flex;gap:2px;margin-left:auto}#firepips i{width:3px;height:9px;border-radius:1.5px 1.5px 0 0;background:#cfc9b8}#ammo.semi #firepips i+i{display:none}#firemode{color:#cfc9b8}#key-reload.urge{background:#ff6b5b;color:#fff}
#shop{display:grid;grid-template-columns:repeat(4,auto);justify-content:end;justify-items:end;gap:4px}#shop[hidden]{display:none}#buy-rifle{grid-row:1;grid-column:1/4}#buy-mag{grid-row:1;grid-column:4}#buy-dressing{grid-row:2;grid-column:1}#buy-frag{grid-row:2;grid-column:2}#buy-smoke{grid-row:2;grid-column:3}#buy-flash{grid-row:2;grid-column:4}.buy{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 7px 0 4px;background:#0b1012d9;border:1px solid #f2c14e;border-radius:4px;color:#f2c14e;font-size:13px;font-weight:800;white-space:nowrap}.buy[hidden]{display:none}
.buy .ico{width:18px;height:18px;fill:currentColor}.buy em{font-style:normal;font-size:10px;letter-spacing:1px;color:#f1eee6}.buy.short{border-color:#ffffff40;color:#a9ada3}.buy.short kbd{background:#8f8a7c}.buy.short em{color:#a9ada3}.buy.full{border-color:#ffffff26;color:#7d8078}.buy.full kbd{background:#5d5a52}.buy.full b{font-size:10px;letter-spacing:1px}
