:root{color-scheme:dark;--ink:#101719;--paper:#f5eddf;--muted:#b6b4a9;--gold:#ecc386;--line:#ffffff24}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif}body{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.6;cursor:wait}.hidden{display:none!important}#world,#world canvas,#lobbyArt,#vignette,#damageFlash{position:fixed;inset:0;width:100%;height:100%}#world canvas{display:block;touch-action:none}#lobbyArt{background:linear-gradient(90deg,#0c151a 0%,#0c151af2 23%,#0c151a6e 52%,#0c151a14 80%),url('./assets/alamo-key-art.png') center/cover;transition:opacity .5s;pointer-events:none}body.playing #lobbyArt,body.paused #lobbyArt,body.over #lobbyArt{opacity:0}#vignette{pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,#05101466 100%)}#damageFlash{pointer-events:none;background:radial-gradient(ellipse,transparent 35%,#b73928a6);opacity:0;z-index:4}.masthead{position:fixed;top:0;left:0;right:0;z-index:6;display:flex;justify-content:space-between;align-items:center;padding:24px 32px;pointer-events:none}.masthead>*{pointer-events:auto}.brand{color:var(--paper);text-decoration:none;display:flex;align-items:center;gap:12px;font-size:20px;font-weight:800;letter-spacing:.14em}.brand-mark{border:1px solid var(--gold);color:var(--gold);width:42px;height:44px;display:grid;place-items:center;font-family:Georgia,serif;font-weight:400;font-size:30px;letter-spacing:0}.brand-sub{display:block;font-size:10px;letter-spacing:.37em;margin-top:3px}.header-right{display:flex;gap:12px;align-items:center}.edition{font-size:12px;color:var(--muted);letter-spacing:.15em;margin-right:18px}.quiet{background:#1017198c;border:1px solid var(--line);padding:10px 14px;border-radius:3px;font-size:14px;backdrop-filter:blur(10px)}.quiet:hover{background:#ffffff16}.loadout{position:absolute;z-index:3;left:5.5vw;top:112px;width:400px;bottom:0;overflow:auto;padding:0 6px 24px;scrollbar-width:thin}.eyebrow{font-size:12px;letter-spacing:.15em;font-weight:700;color:var(--gold);line-height:1.5}h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:56px;line-height:1.02;letter-spacing:-.04em;margin:14px 0 15px}p.intro{font-size:16px;color:#ceccc4;line-height:1.6;margin:0 0 23px}fieldset{padding:0;border:0;margin:0 0 20px}legend{display:flex;gap:12px;align-items:center;font-size:14px;font-weight:bold;margin-bottom:10px;letter-spacing:.02em}legend span{font-size:12px;color:var(--gold);font-weight:400}.side-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{background:#142128ba;border:1px solid var(--line);border-radius:4px;text-align:left;padding:13px 14px;position:relative;transition:background .15s,border .15s}.choice:hover{background:#26383dcf}.choice.selected{border-color:var(--gold);background:#66513759}.choice strong{display:block;font-size:16px;font-weight:600}.choice small{display:block;color:#ceccc4;font-size:12px;margin-top:6px}.side-symbol{float:right;color:var(--gold);font-size:20px}.weapon-list{display:grid;gap:6px}.weapon-choice{display:grid;grid-template-columns:62px 1fr auto;align-items:center;min-height:57px;padding:9px 12px}.weapon-icon{font-size:13px;color:var(--gold);letter-spacing:.06em;border-right:1px solid var(--line);margin-right:10px}.weapon-choice small{margin:3px 0 0}.weapon-trait{font-size:12px;color:var(--muted)}.position-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.position-choice{display:flex;gap:9px;align-items:center;font-size:13px;min-height:41px;padding:10px}.position-choice span{font-size:12px;color:var(--gold);font-weight:bold}.primary{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:var(--gold);color:#171b1a;padding:16px 19px;border-radius:3px;font-weight:700;font-size:16px;transition:background .15s}.primary:hover{background:#fbd69e}.primary span{font-size:23px;font-weight:400}.fineprint{font-size:12px;color:var(--muted);line-height:1.55;margin-top:13px}.preview-note{position:absolute;bottom:38px;right:45px;z-index:2;text-align:right}.preview-note p{font-family:Georgia,serif;font-size:29px;line-height:1.3;margin:10px 0;text-shadow:0 2px 15px #000}.top-stats{position:fixed;top:105px;left:34px;display:flex;gap:28px;pointer-events:none}.top-stats small,.health-panel>small,.ammo-panel>span{font-size:12px;letter-spacing:.15em;color:#e1e0d6;text-shadow:0 1px 4px #000}.top-stats strong{display:block;font-size:28px;font-weight:500;margin-top:5px;text-shadow:0 2px 5px #000}.map-panel{position:fixed;top:105px;right:30px;background:#101a20bf;border:1px solid #ffffff22;padding:10px 12px 12px;width:190px;border-radius:3px;backdrop-filter:blur(8px)}.map-panel>div{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.1em;color:var(--gold)}#minimap{width:164px;height:134px;display:block}.map-panel>small{font-size:14px}.bottom-hud{position:fixed;left:34px;right:34px;bottom:58px;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.bottom-hud button{pointer-events:auto}.health-panel{min-width:220px}.health-line{display:flex;align-items:center;gap:15px;margin:7px 0 15px}.health-line strong{font-size:34px;font-weight:500;text-shadow:0 2px 5px #000}.health-track{background:#101719a6;width:130px;height:6px}.health-track span{display:block;width:100%;height:100%;background:#f5eddc}.position-shortcuts{display:flex;gap:5px}.position-shortcuts button{border:1px solid #ffffff48;background:#101719c2;width:39px;height:35px;font-size:14px;border-radius:2px}.position-shortcuts button.selected{color:var(--ink);background:var(--gold);border-color:var(--gold)}.ammo-panel{text-align:right;min-width:200px}.ammo-line{display:flex;gap:10px;align-items:baseline;justify-content:flex-end;margin-top:5px;text-shadow:0 2px 5px #000}.ammo-line>strong{font-size:54px;font-weight:500}.ammo-line>span{font-size:25px;color:#d4d3c9}.ammo-line small{font-size:10px;color:var(--muted);letter-spacing:.05em}#weaponShortcuts{display:flex;gap:5px;justify-content:flex-end;margin-bottom:14px}#weaponShortcuts button{font-size:12px;border:1px solid #ffffff35;background:#101719b5;padding:8px 10px;border-radius:2px}#weaponShortcuts button.selected{border-color:var(--gold);color:var(--gold)}#reloadTrack{height:3px;width:160px;float:right;background:#ffffff18;margin-top:5px}#reloadTrack span{display:block;height:100%;background:var(--gold);width:0}.control-hint{position:fixed;bottom:19px;left:0;right:0;text-align:center;font-size:12px;letter-spacing:.03em;color:#e7e0d4;text-shadow:0 1px 5px #000;pointer-events:none}#crosshair{position:fixed;left:50%;top:50%;width:0;height:0;pointer-events:none;filter:drop-shadow(0 1px 1px #000)}#crosshair i{position:absolute;background:#fffbd9;width:2px;height:7px;left:-1px;top:-15px}#crosshair i:nth-child(2){top:8px}#crosshair i:nth-child(3){transform:rotate(90deg);left:-13px;top:-3px}#crosshair i:nth-child(4){transform:rotate(90deg);left:11px;top:-3px}#crosshair b{position:absolute;width:3px;height:3px;background:#fffbd9;left:-1.5px;top:-1.5px;border-radius:50%}#hitMarker{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);font-size:42px;color:#f2d29c;opacity:0;pointer-events:none}#scope{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 0 29vh,#061014e8 29.4vh);z-index:1}.scope-ring{position:absolute;width:58vh;height:58vh;border:2px solid #091016;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%}.scope-h{position:absolute;left:calc(50% - 29vh);width:58vh;top:50%;height:1px;background:#101419}.scope-v{position:absolute;top:calc(50% - 29vh);height:58vh;left:50%;width:1px;background:#101419}#announcement{position:fixed;left:50%;top:28%;transform:translateX(-50%);text-align:center;color:#fff7e4;font-size:22px;text-shadow:0 2px 9px #000;pointer-events:none;white-space:nowrap}.overlay{position:fixed;inset:0;background:#071119a6;backdrop-filter:blur(7px);display:grid;place-items:center;z-index:10;padding:20px}.modal,dialog{background:#142025;border:1px solid #465057;padding:34px;max-width:460px;width:100%;border-radius:5px;box-shadow:0 25px 100px #0006}.modal h2,dialog h2{font-family:Georgia,serif;font-size:38px;font-weight:400;margin:12px 0 15px}.modal p,dialog p{color:#cdcfc9;line-height:1.6;font-size:16px}.secondary{border:1px solid var(--line);padding:13px;width:100%;margin-top:10px;background:transparent;border-radius:3px;font-size:14px}.secondary:hover{background:#ffffff0a}.result-grid{display:flex;gap:40px;margin:25px 0}.result-grid small{font-size:12px;color:var(--muted)}.result-grid strong{display:block;font-size:37px;margin-top:6px;font-weight:500}dialog{color:var(--paper);max-height:90vh;overflow:auto;z-index:20}dialog::backdrop{background:#071119bc;backdrop-filter:blur(6px)}.dialog-close{position:absolute;top:10px;right:14px;background:none;border:0;font-size:28px;padding:5px 10px}dl{display:grid;grid-template-columns:130px 1fr;gap:14px;font-size:14px;line-height:1.4}dt{color:var(--gold)}dd{margin:0}.touch-controls{display:none;position:fixed;bottom:114px;right:18px;gap:8px;align-items:flex-end;z-index:5}.touch-controls button{min-width:52px;min-height:45px;background:#101719b5;border:1px solid #f3cc89aa;border-radius:6px;font-size:13px;padding:10px;touch-action:none}#touchFire{width:75px;height:75px;border-radius:50%;background:#86602fc9;font-weight:bold}body.playing .masthead{background:linear-gradient(#08121b66,transparent)}
.top-stats,.map-panel,.bottom-hud,#announcement,#hitMarker,.control-hint{z-index:2}#touchAim.selected{background:#b48b4fc9;color:#fff8e7}
@media(max-height:850px) and (min-width:761px){.loadout{top:94px;width:380px}h1{font-size:44px;margin:9px 0}.intro{margin-bottom:16px!important}fieldset{margin-bottom:14px}.weapon-choice{min-height:51px}}
@media(max-width:760px){.masthead{padding:16px}.brand{font-size:17px;gap:9px}.brand-mark{height:38px;width:34px;font-size:25px}.header-right{gap:6px}.quiet{font-size:12px;padding:10px}.edition{display:none}.loadout{left:0;top:88px;padding:0 22px 24px;width:min(460px,100%);bottom:0}h1{font-size:44px}.preview-note{display:none}#lobbyArt{background-position:60% center;background-image:linear-gradient(90deg,#0c151af5 0%,#0c151ade 45%,#0c151a80),url('./assets/alamo-key-art.png')}.top-stats{top:88px;left:18px;gap:18px}.top-stats strong{font-size:23px}.top-stats small{font-size:10px}.map-panel{top:85px;right:15px;width:145px;padding:8px}.map-panel>div{font-size:10px}#minimap{width:126px;height:103px}.map-panel>small{font-size:12px}.bottom-hud{left:18px;right:18px;bottom:38px}.health-panel{min-width:0}.health-track{width:75px}.health-line{gap:8px}.health-line strong{font-size:27px}.ammo-panel{min-width:0}.ammo-line>strong{font-size:40px}.ammo-line>span{font-size:20px}.ammo-line small{display:none}#weaponShortcuts{gap:3px}#weaponShortcuts button{padding:7px;font-size:11px}.position-shortcuts button{width:32px;height:32px}.control-hint{font-size:10px;bottom:10px;padding:0 10px}.modal,dialog{padding:26px}dl{grid-template-columns:108px 1fr;font-size:13px}#announcement{font-size:18px;top:40%}}
@media(pointer:coarse){.touch-controls{display:flex}.control-hint{display:none}.bottom-hud{bottom:20px}.position-shortcuts button{width:42px;height:42px}#weaponShortcuts button{min-height:42px}.touch-controls button{min-height:48px}}

/* The start screen now shows the actual playable geometry, not the old artwork. */
#lobbyArt{background:linear-gradient(90deg,#0c151afc 0%,#0c151ae8 28%,#0c151a5c 51%,transparent 70%)}
.dimensions-dialog{max-width:1200px;width:calc(100% - 32px);padding:30px}.dimensions-dialog>p{max-width:850px}.dimensions-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(360px,1.15fr);gap:24px;align-items:start}#dimensionMap{width:100%;height:auto;display:block;border:1px solid #ffffff1a}.dimension-table-wrap{overflow-x:auto}.dimensions-dialog table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.5}.dimensions-dialog th,.dimensions-dialog td{padding:10px 8px;border-bottom:1px solid #ffffff1c;text-align:left;vertical-align:top}.dimensions-dialog thead th{color:var(--gold);font-size:12px;font-weight:600}.dimensions-dialog tbody th{font-weight:500}.source-note{font-size:13px!important}.plan-sources{padding-left:18px;font-size:13px;line-height:1.7}.plan-sources li{margin:7px 0}.plan-sources a{color:var(--gold)}.preview-note p{font-size:26px}
@media(max-width:1000px){.edition{display:none}}
@media(max-width:760px){#lobbyArt{background:linear-gradient(90deg,#0c151aef,#0c151abf 80%,#0c151a44)}.dimensions-grid{grid-template-columns:1fr}.dimensions-dialog{padding:24px 16px}#mapButton{font-size:11px;max-width:92px;padding:7px}.header-right{gap:4px}.masthead{padding:12px}.brand{font-size:15px}.brand-mark{display:none}.dimensions-dialog h2{font-size:32px}.preview-note{display:none}}

.wave-status{position:fixed;top:178px;left:34px;color:#eee2ca;font-size:12px;text-shadow:0 1px 5px #000;z-index:2;pointer-events:none}.map-legend{display:flex;gap:8px;font-size:10px!important;letter-spacing:0!important;margin-top:8px}.map-legend span:first-child{color:#97d8a5}.map-legend span:last-child{color:#efa285}.top-stats{gap:24px}#crosshair.friendly i,#crosshair.friendly b{background:#99dfa6}
@media(max-width:760px){.top-stats{gap:13px}.top-stats strong{font-size:20px}.top-stats small{font-size:9px}.wave-status{left:18px;top:145px;font-size:10px;width:160px;line-height:1.5}.map-legend{font-size:8px!important;gap:5px}}

.asset-credits{margin-top:20px;border-top:1px solid var(--line);padding-top:15px;font-size:13px}.asset-credits summary{cursor:pointer;color:var(--gold)}.asset-credits p{font-size:12px;line-height:1.6}.asset-credits a{color:var(--gold)}
@media(max-width:430px){.top-stats{display:grid;grid-template-columns:65px 65px;gap:10px 13px}.top-stats strong{margin-top:3px}.wave-status{top:207px;width:150px}#announcement{white-space:normal;width:85%;font-size:16px}}

#hud{pointer-events:none}#hud button{pointer-events:auto}#captureMouse{display:none}body.playing #captureMouse{display:block}#world canvas{outline:none}

#moralePanel{position:fixed;left:34px;top:209px;z-index:2;pointer-events:none;width:226px;background:#101a208f;border:1px solid #ffffff20;padding:10px 12px;border-radius:3px}#moralePanel>small{font-size:10px;letter-spacing:.1em;color:#dfd7c5}#moraleBars>div{display:grid;grid-template-columns:15px 68px 1fr;gap:8px;align-items:center;margin-top:8px;font-size:11px}#moraleBars i{height:4px;background:#ffffff20}#moraleBars b{display:block;height:100%}#moraleBars small{font-size:10px;color:#d5cbb9}#targetInfo{position:fixed;left:50%;top:61%;transform:translateX(-50%);z-index:3;color:#f7e7bd;font-size:14px;text-shadow:0 1px 4px #000;pointer-events:none;text-align:center}.realism-notes{margin:18px 0;font-size:13px;color:#ddd5c7}.realism-notes summary{cursor:pointer;color:var(--gold)}.realism-notes p,.realism-notes li{font-size:13px;line-height:1.65}.realism-notes a{color:var(--gold)}.realism-notes table{border-collapse:collapse;font-size:12px}.realism-notes th,.realism-notes td{padding:7px;border-bottom:1px solid #ffffff24;text-align:left;vertical-align:top}#helpDialog{max-width:680px}
@media(max-width:760px){#moralePanel{left:18px;top:190px;width:170px;padding:8px}#moraleBars>div{grid-template-columns:12px 44px 1fr;gap:5px}#moralePanel>small{font-size:8px}#captureMouse{font-size:10px;max-width:80px;padding:7px}.wave-status{max-width:165px}#targetInfo{font-size:12px;width:85%}}
@media(max-width:430px){#moralePanel{top:251px;width:150px}#moraleBars>div{grid-template-columns:12px 35px 1fr}#moraleBars small{font-size:9px}.masthead{align-items:flex-start}.header-right{flex-wrap:wrap;justify-content:flex-end;max-width:240px;gap:3px}.header-right .quiet{font-size:10px;padding:7px}.brand{margin-top:7px}}

#scope,#scope *{pointer-events:none!important}
.acog-reticle,.acog-label{display:none}
#scope.acog{background:radial-gradient(circle at center,transparent 0 31vmin,#080d10 31.5vmin)}
#scope.acog .scope-h,#scope.acog .scope-v{display:none}
#scope.acog .scope-ring{width:64vmin;height:64vmin;border:1.2vmin solid #10171b;box-shadow:0 0 0 2px #435056,inset 0 0 14px 5px #0913168c}
#scope.acog .acog-reticle{display:block;position:absolute;width:64vmin;height:64vmin;left:50%;top:50%;transform:translate(-50%,-50%);overflow:visible}
.acog-stadia{fill:none;stroke:#141b1b;stroke-width:.6;filter:drop-shadow(0 0 1px #e2e6cf)}
.acog-chevron{fill:none;stroke:#ff4435;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 1px #310300)}
#scope.acog .acog-label{display:block;position:absolute;left:50%;top:calc(50% + 25vmin);transform:translateX(-50%);font-size:14px;letter-spacing:.16em;color:#dedfcf;text-shadow:0 1px 4px #000}
#regionPanel{position:fixed;right:30px;top:330px;width:338px;z-index:3;background:#0d181fe8;border:1px solid #ffffff30;border-radius:3px;pointer-events:none;backdrop-filter:blur(8px);font-variant-numeric:tabular-nums}
#regionPanel summary{padding:11px 12px;font-size:10px;letter-spacing:.1em;color:var(--gold);cursor:pointer;pointer-events:auto;user-select:none}
#regionPanel summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#regionPanel table{width:calc(100% - 16px);margin:0 8px;border-collapse:collapse;font-size:12px;text-align:right}
#regionPanel th,#regionPanel td{padding:7px 6px;border-bottom:1px solid #ffffff13;font-weight:400}
#regionPanel thead th{font-size:10px;color:#cfcfc4;text-align:center}
#regionPanel thead th:first-child,#regionPanel tbody th{text-align:left}
#regionPanel thead tr:first-child th{color:#f5eddf}
#regionPanel td:nth-child(2){color:var(--gold)}
#regionPanel .current-region{background:#e8bd7c17}
#regionPanel .current-region th{color:var(--gold);box-shadow:inset 2px 0 var(--gold)}
#regionPanel p{margin:9px 12px 11px;font-size:10px;line-height:1.5;color:#b6b4a9}
@media(max-width:760px){#regionPanel{top:256px;right:15px;width:min(338px,calc(100vw - 30px))}#regionPanel:not([open]){width:auto}#regionPanel summary{font-size:9px;padding:10px}#regionPanel th,#regionPanel td{padding:6px}}
@media(max-height:660px) and (min-width:761px){#regionPanel{top:330px;max-height:calc(100vh - 345px);overflow:auto;pointer-events:auto}#regionPanel:not([open]){width:auto;max-height:none}}

.quality-control select{font:inherit;font-size:12px;color:var(--paper);background:#152329;border:1px solid var(--line);padding:10px 7px;border-radius:3px;cursor:pointer}
#commandStatus{position:fixed;left:34px;top:365px;z-index:3;font-size:12px;color:#ead9b9;padding:8px 0;text-shadow:0 1px 5px #000;pointer-events:none}
#moralePanel{width:290px}#moralePanel>small{font-size:11px}#moraleBars>div{grid-template-columns:16px 66px 1fr}#moraleBars small{font-size:12px}
#movementStatus{font-size:11px;letter-spacing:.07em;color:var(--gold);margin-left:12px}
#incomingWarning{position:fixed;top:21%;left:50%;transform:translateX(-50%);padding:11px 18px;border:1px solid #eeaa65;background:#3c1a10de;color:#ffe0ad;font-size:14px;letter-spacing:.08em;z-index:4;opacity:0;transition:opacity .12s;pointer-events:none;white-space:nowrap}
#incomingWarning.visible{opacity:1}.touch-movement{display:none;position:fixed;left:18px;bottom:180px;grid-template-columns:repeat(3,44px);gap:5px;z-index:5}.touch-movement button{border:1px solid #ecc38690;background:#101a20c9;border-radius:4px;min-height:44px;pointer-events:auto;touch-action:none}.touch-movement button:first-child{grid-column:2}.touch-movement button:nth-child(2){grid-column:1}
@media(pointer:coarse){.touch-movement{display:grid}}
@media(max-width:1300px){.edition{display:none}.header-right{gap:5px}.quiet{padding:9px;font-size:12px}}
@media(max-width:760px){#moralePanel{width:205px}#moraleBars>div{grid-template-columns:12px 37px 1fr;gap:4px}#moraleBars small{font-size:10px}#moralePanel>small{font-size:9px}#commandStatus{left:18px;top:329px;font-size:10px;max-width:205px}#incomingWarning{top:43%;font-size:12px}.quality-control select{font-size:10px;padding:7px;max-width:112px}.header-right{flex-wrap:wrap;justify-content:flex-end;max-width:62%}}
@media(max-width:430px){#commandStatus{top:386px}#moralePanel{width:185px}#moraleBars small{font-size:9px}#moraleBars>div{grid-template-columns:12px 31px 1fr}}

/* Keep the walkable fort legible at its real scale. */
.courtyard-choice{grid-column:1 / -1}.position-shortcuts .courtyard-shortcut{width:76px;font-size:12px}
.map-panel{width:246px}#minimap{width:220px;height:190px}.map-panel>small{display:block;font-size:13px;margin:0 0 7px}.map-zoom{float:right;background:#192930;border:1px solid #ecc38666;color:var(--gold);font-size:10px;padding:4px 7px;border-radius:2px}.map-legend{padding-top:5px!important;font-size:10px!important;letter-spacing:0!important}#regionPanel{top:390px}
.touch-movement{display:grid;left:34px;bottom:187px;grid-template-columns:repeat(3,40px);gap:4px}.touch-movement:after{content:'HOLD TO MOVE';grid-column:1 / -1;font-size:9px;text-align:center;color:#e2d5bc;letter-spacing:.08em;text-shadow:0 1px 3px #000}.touch-movement button{min-height:35px;font-size:11px}.touch-movement button:active{background:#80673ec9}
@media(max-width:760px){.map-panel{width:158px;top:110px}#minimap{width:140px;height:120px}.map-panel>small{font-size:11px}.map-legend{font-size:9px!important}#regionPanel{top:315px}.touch-movement{left:18px;bottom:166px}.position-shortcuts .courtyard-shortcut{width:64px;font-size:11px}}
@media(max-height:660px) and (min-width:761px){.map-panel{top:100px;width:200px}#minimap{width:174px;height:144px}#regionPanel{top:352px;max-height:calc(100vh - 365px)}.touch-movement{left:275px;bottom:62px}#commandStatus{top:350px}}
@media(max-height:530px){.touch-movement{display:none}}

/* Keep injury legible around the scope while leaving its center clear. */
#damageFlash{background:radial-gradient(ellipse at center,transparent 27%,#780e1233 48%,#930d1cd9 86%,#47030cf5 100%);box-shadow:inset 0 0 10vmin 2vmin #780817b3;transition:opacity .08s}
#damageNotice,#healthWarning{position:fixed;left:50%;transform:translateX(-50%);z-index:5;pointer-events:none;text-align:center;width:max-content;max-width:min(670px,90vw);line-height:1.45;padding:8px 13px;border-radius:3px;font-size:14px;text-shadow:0 1px 3px #000}
#damageNotice{bottom:26%;background:#44121aea;border:1px solid #ee8c86;color:#ffe5df}
#healthWarning{bottom:19%;background:#320d15e8;border:1px solid #f29289;color:#ffcec4;font-weight:700;letter-spacing:.04em}
.whiskey-button{display:block;margin:0 0 10px;padding:8px 12px;border:1px solid #d8b77e;background:#20322be8;color:#f7dfab;font-size:14px;border-radius:3px;min-height:36px}
.whiskey-button:disabled{opacity:.6;cursor:default}.whiskey-button:enabled:hover{background:#3c4b31}
.map-legend .whiskey-legend{color:#efd08c}
#endOverlay .modal{max-width:620px;max-height:calc(100vh - 40px);overflow-y:auto}
#deathDetails{background:#0d161bc9;border:1px solid #a15a5355;padding:14px;border-radius:3px}
#deathDetails h3{font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:#e4baab;margin:0 0 10px}
#damageHistory{margin:0;padding-left:18px;font-size:14px;line-height:1.6;color:#d6c8bd}#damageHistory li{padding:3px 0}.fatal-hit{color:#ffb9a8}
.touch-movement{bottom:232px}
@media(max-width:760px){.touch-movement{bottom:215px}.whiskey-button{font-size:12px;padding:7px 9px}#damageNotice,#healthWarning{max-width:90vw;font-size:13px}#healthWarning{bottom:24%}#damageNotice{bottom:32%}.map-legend{flex-wrap:wrap}}
@media(max-height:660px) and (min-width:761px){.touch-movement{bottom:62px}}
.sniper-label{position:absolute;left:50%;top:calc(50% + 24vh);transform:translateX(-50%);font-size:14px;letter-spacing:.12em;color:#e6dfc9;text-shadow:0 1px 4px #000}#scope.acog .sniper-label{display:none}
#companyPanel{position:fixed;left:34px;top:405px;z-index:3;width:425px;background:#101c23eb;border:1px solid #c1a17666;border-radius:3px;font-size:12px;pointer-events:auto;max-height:calc(100vh - 425px);overflow:auto}
#companyPanel summary{cursor:pointer;padding:10px 12px;color:#e9cb95;font-size:13px;letter-spacing:.06em}#companyPanel:not([open]){width:auto}
#armyOverview{white-space:pre-line;padding:0 12px 10px;line-height:1.6;color:#e3d6bf}
#companyPanel table{width:100%;border-collapse:collapse}#companyPanel th,#companyPanel td{text-align:left;padding:7px 8px;border-top:1px solid #ffffff18;font-weight:400}#companyPanel thead th{color:#aebbc0}.company-broken{color:#e6a486}
#companyFootnote{padding:0 12px 10px;line-height:1.55;color:#bbc6c5}
@media(max-width:760px){#companyPanel{top:405px;left:18px;max-width:calc(100vw - 36px);max-height:calc(100vh - 445px)}}
@media(max-height:660px){#companyPanel{top:195px;max-height:calc(100vh - 240px)}}

.fire-mode{display:block;pointer-events:auto;border:1px solid #ddbd85;background:#14232deb;color:#f1d7a5;font:inherit;font-size:14px;padding:7px 10px;margin-bottom:8px;border-radius:3px;cursor:pointer}.fire-mode:hover{background:#3b4b50}#scope.m4-scope .sniper-label{color:#f0d5a4}

.victory-tribute{margin:18px 0;background:#182020;border:1px solid #9e8559;border-radius:8px;overflow:hidden}.victory-tribute img{display:block;width:100%;height:auto}.victory-tribute figcaption{padding:12px;display:grid;gap:7px}.victory-tribute figcaption span{font-size:12px;color:#c2b7a4}.victory-tribute a{color:#ecd295;font-size:12px}#endOverlay{overflow-y:auto}#endOverlay .modal{margin:auto;max-height:calc(100dvh - 32px);overflow-y:auto}

/* Location is deliberately separate from the direction of the view. */
.navigation-panel{position:fixed;left:50%;top:96px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:10px 16px;background:#101a20d9;border:1px solid #ecc38666;border-radius:4px;z-index:3;pointer-events:none;min-width:284px;text-shadow:0 1px 3px #000}.navigation-panel svg{width:66px;height:66px;overflow:visible}.navigation-panel circle{fill:none;stroke:#ecc38666}.navigation-panel svg text{fill:#f5eddf;font:11px Arial;text-anchor:middle}.navigation-panel path{fill:#ecc386}.navigation-panel small{font-size:9px;letter-spacing:.16em;color:#b6b4a9}.navigation-panel strong{display:block;font-size:20px;letter-spacing:.055em;margin:3px 0}.navigation-panel span{font-size:10px;color:#d2c5ab;letter-spacing:.08em}.navigation-panel b{display:block;font-size:11px;margin-top:5px;letter-spacing:.04em;color:#ecc386}.field-actions{position:fixed;left:50%;bottom:66px;transform:translateX(-50%);text-align:center;z-index:3;max-width:320px;pointer-events:auto}.field-actions>span{display:block;font-size:10px;letter-spacing:.07em;text-shadow:0 1px 5px #000;background:#101a20c9;padding:6px}.field-actions button{font-size:11px;background:#142025dc;border:1px solid #b5c0b33d;border-radius:3px;padding:8px;margin:3px 2px}.field-actions button:disabled{opacity:.55;cursor:default}.field-actions small{display:block;background:#142025be;color:#a3dfdf;font-size:10px;padding:4px}#reserveAmmo.empty{color:#ffac8b}.ammo-legend{color:#94e6e2}.carry-note{font-size:11px;line-height:1.45;color:#d1c6af;margin:8px 0 0}#opticPower{margin-left:6px}
@media(max-width:1050px){.navigation-panel{top:88px;min-width:224px;padding:8px}.navigation-panel svg{width:46px;height:46px}.navigation-panel strong{font-size:16px}.navigation-panel b{font-size:10px}}
@media(max-width:760px){.navigation-panel{top:66px;left:16px;right:16px;transform:none;min-width:0;padding:5px 10px}.navigation-panel svg{width:44px;height:44px}.navigation-panel strong{display:inline;margin-right:7px;font-size:15px}.navigation-panel small{display:none}.navigation-panel b{margin-top:4px}.top-stats,.map-panel{top:137px}.field-actions{bottom:164px;max-width:265px;width:265px}.field-actions button{padding:7px;font-size:10px}#regionPanel{top:352px}.map-panel{width:160px}.navigation-panel span{font-size:9px}}

.variant-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#c9c1b1;margin-top:8px}.variant-label select{background:#142025;color:#eee4cf;border:1px solid #ffffff30;border-radius:3px;padding:7px;font:inherit}.m145-scope .scope-v{background:linear-gradient(to bottom,transparent 40%,#101419 40%)}.m145-scope .scope-h{height:2px;width:24vh;left:calc(50% - 12vh)}

.victory-tribute video{display:block;width:100%;max-height:46vh;background:#101719;border-radius:4px}.victory-tribute figcaption{line-height:1.5}

/* Historical / Arcade additions preserve the existing battlefield HUD. */
.mode-picker .choice{min-height:70px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px}.choice:disabled{opacity:.42;cursor:not-allowed}#warriorSelect{width:100%;padding:13px;background:#182325;color:#f4edde;border:1px solid #627070;border-radius:5px;font:inherit;font-size:16px}
.active-game-mode{position:absolute;top:98px;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:.10em;color:#e6c483;text-align:center;white-space:nowrap}.arcade-hud{position:absolute;left:24px;top:290px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:330px;padding:10px 12px;background:rgba(12,22,23,.93);border:1px solid #6e684b;pointer-events:auto}.arcade-hud strong{color:#edcc83;font-size:23px}.arcade-hud button,.field-actions #cannonButton{font:inherit;font-size:13px;padding:8px;border:1px solid #53635e;background:#162527;color:#f4e9d1;border-radius:4px;cursor:pointer}.arcade-hud button:disabled{opacity:.45}.field-actions{max-width:300px}.field-actions #cannonButton{white-space:normal;text-align:left;max-width:100%;line-height:1.4}
.arsenal-dialog{background:#102124;color:#eee8da;border:1px solid #85764f;border-radius:10px;width:min(680px,92vw);max-height:88vh;padding:28px;font-size:16px}.arsenal-dialog::backdrop,.mexican-intro::backdrop{background:rgba(0,7,11,.83);backdrop-filter:blur(5px)}.arsenal-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.arsenal-dialog h2{font-size:34px;margin:20px 0 8px}.arsenal-dialog p{line-height:1.5;color:#b7c8c6}.arsenal-dialog #shopCash{font-size:32px;color:#f1cf88}.shop-item{width:100%;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px 14px;margin:10px 0;background:#1c3436;border:1px solid #526761;color:#fff1d7;border-radius:6px;text-align:left;cursor:pointer}.shop-item strong{font-size:17px;display:block}.shop-item small{font-size:14px;display:block;margin-top:6px;color:#bacbc6}.shop-item b{white-space:nowrap;color:#f0cb7e;font-size:18px}.shop-item:disabled{opacity:.52;cursor:default}.shop-item:not(:disabled):hover{background:#28494b;border-color:#e1ba75}.arsenal-dialog>small{display:block;line-height:1.5;font-size:14px}.mexican-intro{padding:0;width:min(980px,94vw);max-height:90vh;background:#101c24;color:#f8eee2;border:1px solid #897356;border-radius:10px;overflow:auto}.mexican-intro img{display:block;width:100%;height:auto}.mexican-intro>div{padding:22px 28px}.mexican-intro h2{margin:9px 0;font-size:30px}.mexican-intro p{font-size:14px;color:#b9c5cb}.mexican-intro .primary{max-width:340px}.hidden{display:none!important}
@media(max-width:760px){.active-game-mode{top:112px;font-size:11px}.arcade-hud{left:12px;top:235px;max-width:230px;padding:7px}.arcade-hud strong{font-size:19px}.arcade-hud button{font-size:12px;padding:6px}.arsenal-dialog{padding:18px}.shop-item{padding:12px 10px}.shop-item strong{font-size:15px}.shop-item b{font-size:16px}.field-actions{max-width:220px}.mexican-intro>div{padding:17px}}

.active-game-mode{position:fixed;top:190px;z-index:3;pointer-events:none}.arcade-hud{position:fixed;left:50%;top:215px;transform:translateX(-50%);z-index:3;max-width:none;white-space:nowrap}.mode-picker .carry-note,#arcadeLoadoutNote{font-size:14px;line-height:1.5}#weaponShortcuts{flex-wrap:wrap;justify-content:flex-end;max-width:330px}
@media(max-width:1050px) and (min-width:761px){.active-game-mode{top:162px}.arcade-hud{top:187px}}
@media(max-width:760px){.active-game-mode{top:121px;font-size:11px}.arcade-hud{top:auto;bottom:342px;left:50%;max-width:300px;width:max-content;justify-content:center;gap:6px;white-space:normal}.field-actions{bottom:157px}#weaponShortcuts{max-width:170px}.arsenal-top{align-items:flex-start}}

#strikeFlash{position:fixed;inset:0;z-index:4;background:radial-gradient(ellipse at center,#fff5d7,#ffc978);opacity:0;pointer-events:none;mix-blend-mode:screen}.support-choice{display:flex;align-items:center;gap:6px;font-size:12px;letter-spacing:.08em}.support-choice select,#assaultKitSelect{background:#12282c;color:#f2e7cb;border:1px solid #657769;border-radius:4px;padding:9px;font-size:14px}#assaultKitSelect{width:100%;font-size:16px;padding:13px}.arcade-hud{flex-wrap:wrap;max-width:min(620px,94vw);justify-content:center}.arcade-hud #rampageTimer{flex-basis:100%;text-align:center;color:#ffb882;font-size:13px;letter-spacing:.1em}#shopItems{max-height:52vh;overflow:auto;padding-right:5px}.arsenal-dialog .shop-item small{line-height:1.45}.field-actions #cannonButton{max-width:265px}.arcade-hud button{font-size:14px}
@media(max-width:1050px){.arcade-hud{max-width:410px}}@media(max-width:760px){.arcade-hud{max-width:320px;width:calc(100vw - 30px);bottom:360px}.support-choice select{max-width:205px;font-size:13px}.arcade-hud #rampageTimer{font-size:12px}.arcade-hud button{font-size:12px}#shopItems{max-height:48vh}}
@media(prefers-reduced-motion:reduce){#strikeFlash{display:none}}

#performanceStatus{position:fixed;right:18px;bottom:5px;color:#bbc7c7;opacity:.8;font:11px/1.2 system-ui;z-index:4;pointer-events:none;text-shadow:0 1px 3px #000}.quality-control select{max-width:220px}body.playing #performanceStatus{bottom:6px}@media(max-width:760px){#performanceStatus{right:8px;bottom:3px;font-size:9px;max-width:70vw;text-align:right}.quality-control select{max-width:135px}}

/* Keep the loading menu on a clean backdrop; the live fort appears on deploy. */
body:not(.playing):not(.paused):not(.over) #world{visibility:hidden}
/* Share the menu geometry so artwork always clears its scrollbar. */
:root{--lobby-menu-left:5.5vw;--lobby-menu-width:400px;--lobby-art-gap:32px}
@media(max-height:850px) and (min-width:761px){:root{--lobby-menu-width:380px}}
@media(min-width:761px){.loadout{left:var(--lobby-menu-left);width:var(--lobby-menu-width);scrollbar-gutter:stable}#lobbyArt{left:calc(var(--lobby-menu-left) + var(--lobby-menu-width) + var(--lobby-art-gap));right:32px;top:112px;bottom:118px;width:auto;height:auto;background:url('./assets/alamo-opening-tribute.webp') center/contain no-repeat}.preview-note p{font-size:22px}.preview-note{bottom:28px;right:32px}}
@media(max-width:760px){#lobbyArt{display:none}}
.top-stats .army-kills{display:block;margin-top:6px;font-size:12px;letter-spacing:.025em;color:#ecc386;line-height:1.4}
#regionPanel #armyKillTotals{font-size:12px;color:#ecc386;border-top:1px solid #ffffff30;padding-top:9px}
.cannon-roster{width:100%;border-collapse:collapse;font-size:14px}.cannon-roster th,.cannon-roster td{padding:8px;text-align:left;border-bottom:1px solid #ffffff24}.history-notes p{font-size:14px;line-height:1.6}.music-volume{display:flex;gap:16px;align-items:center;margin:20px 0}.music-volume input{max-width:180px}
.header-right{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 190px)}
.arcade-starter{padding:16px;border:1px solid #ecc38666;border-radius:4px;background:#17262f}.arcade-starter>strong{display:block;font-size:24px;color:var(--paper)}.arcade-starter>small{display:block;margin:6px 0 14px;font-size:14px;color:#ceccc4}.starter-fire-modes{display:flex;gap:8px}.starter-fire-modes button{flex:1;padding:12px 8px;border:1px solid #ecc38666;border-radius:3px;background:#101719;color:var(--paper);font-size:15px}.starter-fire-modes button.selected{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:700}.arcade-starter p{margin:12px 0 0;font-size:14px;color:#ceccc4}.arcade-starter kbd{padding:2px 6px;border:1px solid #ecc38677;border-radius:3px;color:var(--gold);font:700 14px Arial,sans-serif}
#fireMode{padding:11px 15px;border-width:2px;min-width:238px;text-align:left}#fireModeLabel{display:block;font-size:18px;font-weight:700;letter-spacing:.04em}#fireModeHint{display:block;margin-top:5px;font-size:13px;font-weight:700;color:#fff6e4;letter-spacing:.025em}
.mexican-intro{max-width:980px}.mexican-intro .mexican-intro-caption{border-top:1px solid #897356;text-align:center;background:#111d26}.mexican-intro-caption h2{font-size:clamp(24px,3.4vw,36px);margin:0 0 8px}.mexican-intro-caption p{font-size:18px;color:#f1d7a5;margin:0 0 18px}.mexican-intro-actions{display:flex;align-items:stretch;justify-content:center;gap:12px}.mexican-intro-actions .primary,.mexican-intro-actions .secondary{width:auto;flex:1;max-width:340px;margin:0}.mexican-intro-actions .primary{min-height:50px}
@media(max-width:760px){#fireMode{min-width:0;max-width:220px;padding:9px 11px}#fireModeLabel{font-size:16px}#fireModeHint{font-size:12px}.mexican-intro-actions{flex-direction:column}.mexican-intro-actions .primary,.mexican-intro-actions .secondary{max-width:none;width:100%}.mexican-intro-caption p{font-size:16px}}
@media(max-width:760px){.top-stats .army-kills{font-size:10px;max-width:110px}.top-stats{gap:10px}.wave-status{top:225px}.history-notes{overflow-x:auto}#musicToggle{font-size:10px}}

@media(min-width:761px){.wave-status{top:190px}#moralePanel{top:218px}.top-stats{gap:18px}.top-stats .army-kills{max-width:130px}}
@media(max-width:760px){#moralePanel{top:263px}#commandStatus{top:412px}.wave-status{top:230px;width:200px}}
@media(max-width:430px){.top-stats{grid-template-columns:95px 95px;gap:7px 10px}.wave-status{top:282px}#moralePanel{top:318px}#commandStatus{top:465px}}
