.board-wrap{background-image:linear-gradient(#111b1ab8,#111b1ab8),url('assets/trench-field-topdown-phone-v1.jpg')}
.tile.setup-empty{background:transparent;border:1px dashed #d6c88a66;box-shadow:none}
.tile.setup-locked{opacity:.58;filter:saturate(.55) brightness(.76);box-shadow:inset 0 0 0 2px #172019}
.effect-badge{position:absolute;left:6px;bottom:6px;padding:3px 5px;background:#e3bb36;color:#1a211b;border:1px solid #fff0a8;border-radius:2px;font:800 .55rem/1 Arial,sans-serif;letter-spacing:.04em;z-index:2}
.tile.tile-back{background:linear-gradient(145deg,#26342add,#121c16ef);border:1px solid #6c806d;box-shadow:inset 0 0 0 3px #9aa58024,0 3px 0 #0b110dcc}
.fog-mark{display:grid;place-items:center;width:36px;height:36px;margin:auto;border:1px solid #9ba68b;border-radius:50%;color:#d9d6bb;font:700 1.35rem Georgia,serif;opacity:.9}
.tile.traversed{background:transparent;border:1px dashed #c7c1a95c;box-shadow:none}
.footprints{position:absolute;inset:0;display:grid;place-items:center;color:#d7c5a0b8;font:900 1.05rem/1 Arial,sans-serif;letter-spacing:4px;transform:rotate(-66deg);text-shadow:4px 4px #0e1710a8}
.tile.bombed{background:radial-gradient(circle,#191814 0 18%,#3b372b 20%,transparent 47%);border:1px dashed #9c8b6059;box-shadow:none}
.tile.buried{background:radial-gradient(ellipse at center,#4d4033 0 25%,transparent 55%);border:1px dashed #aa967360;box-shadow:none}
.spent-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:3px 5px;background:#151a15d8;color:#d7c58e;border:1px solid #88774f;font:800 .5rem/1 Arial,sans-serif;letter-spacing:.07em}
.tile.active-row.held-die{transform:scale(.86);outline:3px solid #ffe17b;outline-offset:3px;box-shadow:0 0 0 3px #322713,inset 0 0 0 2px #fff1a4;filter:saturate(.72) brightness(.82);z-index:3}
.tile.active-row{touch-action:none}
.tile.touch-drag-source{opacity:.28;filter:brightness(.8) saturate(.62)}
.tile.touch-drag-target{outline:3px solid #ffe17b;outline-offset:-3px;box-shadow:inset 0 0 0 2px #fff3aa,0 0 16px #e6bd4b99;filter:brightness(1.22)}
.touch-drag-ghost{position:fixed!important;z-index:100!important;pointer-events:none!important;margin:0!important;transform:translate(-50%,-50%) rotate(4deg) scale(1.13)!important;opacity:.96;box-shadow:0 9px 18px #020502cc,0 0 0 2px #ffe17b!important;filter:brightness(1.18) saturate(1.18);transition:none!important}
.tile.active-row.unrolled-die,.tile.active-row.rolling-die{background:linear-gradient(145deg,#1e2a21dd,#111811ee);border:1px dashed #d6c88a88;box-shadow:inset 0 0 0 2px #c6b96b24;color:#f3dfa0}
.roll-pip{position:absolute;inset:0;display:grid;place-items:center;font:800 .62rem/1 Arial,sans-serif;letter-spacing:.14em}
.tile.active-row.rolling-die .roll-pip{animation:first-roll .55s linear infinite}
@keyframes first-roll{0%{transform:rotate(0) scale(.85);opacity:.55}50%{transform:rotate(180deg) scale(1.08);opacity:1}100%{transform:rotate(360deg) scale(.85);opacity:.55}}
.tile.active-row.held-die::after{content:'LOCKED';position:absolute;top:6px;left:50%;transform:translateX(-50%);padding:3px 5px;background:#171c17e8;color:#ffe17b;border:1px solid #ffe17b;border-radius:2px;font:800 .5rem/1 Arial,sans-serif;letter-spacing:.08em;z-index:3}
.tile.traversing{outline:3px solid #f4d46d;outline-offset:-4px;box-shadow:0 0 18px #f3c856b5,inset 0 0 0 2px #fff4b3;z-index:4}
.tile.bombed::before{content:'✹';position:absolute;inset:0;display:grid;place-items:center;color:#f1ad32;font:900 2.1rem/1 Arial,sans-serif;text-shadow:0 0 12px #d04b20,0 0 4px #fff;opacity:.88}
.tile.buried::before{content:'⌁';position:absolute;inset:0;display:grid;place-items:center;color:#d7b779;font:900 2rem/1 Georgia,serif;text-shadow:0 1px 2px #16130f}
.tile.bombed .spent-mark,.tile.buried .spent-mark{top:auto;bottom:7px;z-index:1}
.troop-token{margin-top:4px;min-height:43px;display:flex;align-items:center;justify-content:center;border-style:solid;box-shadow:0 -5px 15px #0008}
.board{position:relative}
.board.setup-board{margin-right:0}
.active-row-value{position:absolute;z-index:6;display:flex;align-items:center;gap:5px;min-width:62px;color:#fff4c2;font:800 .58rem/1 Arial,sans-serif;letter-spacing:.04em;transform:translateY(-50%);text-shadow:0 1px 3px #000}
.active-row-value small{display:block;margin-top:3px;color:#d7d8c1;font:700 .48rem/1 Arial,sans-serif;letter-spacing:.02em}
.active-value-coin{display:grid;width:29px;height:29px;place-items:center;border:2px solid #ffe27a;border-radius:50%;background:radial-gradient(circle at 34% 27%,#fff8b6 0 9%,#ffd84d 22%,#c78213 63%,#74400a 100%);box-shadow:0 2px 0 #63370a,0 3px 8px #000a;color:#422a05;font:800 .68rem/1 system-ui,sans-serif;text-shadow:none}
.tile.aftermath{background-image:url('assets/terrain-aftermath-v1.png');background-size:200% 200%;background-repeat:no-repeat;border:1px solid #1d251d;box-shadow:inset 0 0 0 1px #b8a77733}
.tile.aftermath-crossed{background-position:0 0}
.tile.aftermath-blast{background-position:100% 0}
.tile.aftermath-cache{background-position:0 100%}
.tile.aftermath-pushed{background-position:100% 100%}
.tile.aftermath::before,.tile.aftermath .spent-mark{content:none;display:none}
.tile.persistent-tile{box-shadow:0 0 0 2px #e0bd5a,0 0 16px #dcae4266}
.tile.open.intel-revealed{opacity:.48;border:1px dashed #e3c66a;box-shadow:inset 0 0 0 2px #e3c66a55,0 0 12px #e3c66a44;filter:saturate(.6)}
.tile.open.intel-revealed .effect-badge{opacity:.82}
.tile.open.intel-revealed .available-coin{opacity:1;filter:saturate(1.4);animation:coin-hover 1.8s ease-in-out infinite}
.collapsed-tile{overflow:hidden}
.spent-card{position:absolute;right:6px;bottom:6px;z-index:3;width:38%;aspect-ratio:1;border:1px solid #e4c061;border-radius:2px;background-image:url('assets/tile-characters.png');background-size:300% 200%;background-repeat:no-repeat;box-shadow:0 2px 5px #080d08b8}
.spent-card.face-bomb{background-position:0 0}.spent-card.face-left{background-position:50% 0}.spent-card.face-right{background-position:100% 0}.spent-card.face-bury{background-position:0 100%}.spent-card.face-double{background-position:50% 100%}.spent-card.face-blank{background-position:100% 100%}
.available-coin{position:absolute;top:50%;left:50%;z-index:2;display:grid;width:32px;height:32px;place-items:center;border:2px solid #ffe27a;border-radius:50%;color:#422a05;font:800 .72rem/1 system-ui,sans-serif;text-shadow:0 1px 0 #fffac799;background:radial-gradient(circle at 34% 27%,#fff8b6 0 9%,#ffd84d 22%,#c78213 63%,#74400a 100%);box-shadow:0 3px 0 #63370a,0 5px 12px #0000008c,0 0 16px #ffcb376b;transform:translate(-50%,-50%);animation:coin-hover 1.8s ease-in-out infinite}
.coin-tin{border-color:#d8e0df!important;background:radial-gradient(circle at 34% 27%,#fbffff 0 9%,#c7d0cf 25%,#7f8d8c 64%,#424b4b 100%)!important;box-shadow:0 3px 0 #4e5b59,0 5px 12px #0000008c,0 0 14px #bdcfcd66!important;color:#20302e!important}
.coin-silver{border-color:#f4fdff!important;background:radial-gradient(circle at 34% 27%,#ffffff 0 9%,#e0edf1 25%,#a5bbc3 64%,#657985 100%)!important;box-shadow:0 3px 0 #566b75,0 5px 12px #0000008c,0 0 16px #c9edf488!important;color:#223942!important}
.coin-copper{border-color:#ffc18a!important;background:radial-gradient(circle at 34% 27%,#fff0c6 0 9%,#e69457 25%,#b6572f 64%,#68301f 100%)!important;box-shadow:0 3px 0 #70331f,0 5px 12px #0000008c,0 0 16px #e87f475f!important;color:#35150c!important}
.coin-gold{border-color:#ffe27a!important;background:radial-gradient(circle at 34% 27%,#fff8b6 0 9%,#ffd84d 22%,#c78213 63%,#74400a 100%)!important;box-shadow:0 3px 0 #63370a,0 5px 12px #0000008c,0 0 16px #ffcb376b!important;color:#422a05!important}
.coin-diamond{border-color:#d8ffff!important;background:radial-gradient(circle at 34% 27%,#ffffff 0 9%,#c8fcff 25%,#78d9e7 58%,#327b9b 100%)!important;box-shadow:0 3px 0 #286782,0 5px 12px #0000008c,0 0 19px #9cf5ff99!important;color:#133c56!important}
.board-actions{justify-content:flex-end;flex-wrap:nowrap!important}
.board-actions>span{min-width:0!important;flex:1 1 auto!important}
.board-actions .roll-die-button,.board-actions .lock-row-button{width:62px;height:56px;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;flex:0 0 62px!important;margin:0!important}
.board-actions .roll-die-button img{display:block;width:100%;height:100%;object-fit:contain;filter:brightness(1.58) contrast(1.22) saturate(1.12) drop-shadow(0 0 4px #fff0b0aa) drop-shadow(0 2px 3px #0009)}
.board-actions .roll-die-button:not(:disabled) img{animation:roll-die-nudge 1.65s ease-in-out infinite}
.board-actions .roll-die-button:hover:not(:disabled){transform:translateY(-2px) scale(1.04)}
.board-actions .roll-die-button:focus-visible{outline:2px solid #ffe17b;outline-offset:2px;border-radius:50%}
.board-actions .lock-row-button img{display:block;width:100%;height:100%;object-fit:contain;filter:brightness(1.24) contrast(1.14) saturate(1.05) drop-shadow(0 2px 3px #0009)}
.board-actions .lock-row-button:not(:disabled) img{animation:lock-row-nudge 2.15s ease-in-out infinite}
.board-actions .lock-row-button:hover:not(:disabled){transform:translateY(-2px) scale(1.04)}
.board-actions .lock-row-button:focus-visible{outline:2px solid #ffe17b;outline-offset:2px;border-radius:50%}
@keyframes roll-die-nudge{0%,100%{transform:translateY(1px) rotate(-3deg) scale(.97)}50%{transform:translateY(-5px) rotate(3deg) scale(1.04)}}
@keyframes lock-row-nudge{0%,100%{transform:translateY(1px) rotate(0) scale(.97)}50%{transform:translateY(-3px) rotate(2deg) scale(1.03)}}
@keyframes coin-hover{0%,100%{transform:translate(-50%,calc(-50% - 2px)) rotate(-7deg)}50%{transform:translate(-50%,calc(-50% + 3px)) rotate(7deg)}}
.troop-overlay{position:absolute;z-index:8;width:66%;aspect-ratio:1;pointer-events:none;background:url('assets/away-troop.png') center/contain no-repeat;filter:drop-shadow(0 5px 3px #081009cc);transform:translate(-50%,-50%);animation:troop-route .85s linear forwards}
.troop-overlay.stopped{animation:troop-hit .58s ease-in forwards}
.troop-overlay.pushed{animation:troop-route 1.08s cubic-bezier(.18,.72,.35,1) forwards;filter:drop-shadow(0 0 9px #f0c655) brightness(1.25)}
@keyframes troop-route{to{transform:translate(-50%,-50%) translate(var(--move-x),var(--move-y))}}
@keyframes troop-hit{0%{transform:translate(-50%,-50%) scale(1);filter:drop-shadow(0 5px 3px #081009cc) brightness(1)}45%{transform:translate(-50%,-50%) scale(1.2);filter:drop-shadow(0 0 15px #ffbd55) brightness(2)}100%{transform:translate(-50%,-50%) scale(.28);opacity:0;filter:brightness(.4)}}
@media(prefers-reduced-motion:reduce){.troop-overlay{animation:none;transform:translate(-50%,-50%) translate(var(--move-x),var(--move-y))}}
.header-actions{display:flex;gap:7px;align-items:center}
.game-header{position:relative;display:flex;flex-direction:column;align-items:center;gap:0}
.game-logo{display:block;width:min(100%,920px);max-height:270px;object-fit:contain;object-position:center}
.game-header .header-actions{position:absolute;top:9px;right:6px;margin:0}
.hud-icon{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #c89f47;border-radius:50%;background:#172019e8;color:#ffe5a2;font:700 1rem/1 Arial,sans-serif;box-shadow:0 2px 0 #050806,0 2px 8px #000b}
.hud-icon:hover:not(:disabled){background:#4e3519;color:#fff6ca;transform:translateY(-1px)}
.quick-play{border-color:#e39c4a;background:#6b281d;color:#fff0bf}
#soundToggle[aria-pressed="true"]{background:#71351d;color:#ffe89d;border-color:#ffc45c;box-shadow:0 0 12px #e6663b88}
.battle-hud{display:grid!important;grid-template-columns:minmax(130px,1fr) minmax(210px,1.35fr) minmax(130px,1fr);gap:0;align-items:stretch;margin:14px 0 18px;padding:5px;background:linear-gradient(90deg,#251713,#161c17 27% 73%,#1b2824);border:1px solid #a77a36;border-radius:2px;box-shadow:0 4px 0 #070a08,0 12px 24px #0008;color:#f7e7b1;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",Arial,sans-serif;letter-spacing:.05em}
.battle-hud .score-team{display:flex!important;align-items:center;gap:9px;min-width:0;padding:8px 12px;background:linear-gradient(135deg,#66291f99,#31181366)}
.battle-hud .home-team{justify-content:flex-end;text-align:right;background:linear-gradient(225deg,#264038aa,#10251f66)}
.battle-hud .score-crest{display:grid;width:35px;height:35px;place-items:center;border:1px solid #d99b47;border-radius:50%;background:#120f0bb8;color:#f5be55;font:1.25rem/1 Georgia,serif;box-shadow:inset 0 0 0 3px #2b1d13,0 1px 5px #000}
.battle-hud .home-team .score-crest{border-color:#9ed0c1;color:#d6fff0;background:#10251fb8;box-shadow:inset 0 0 0 3px #17372f,0 1px 5px #000}
.battle-hud .score-team span{display:block;color:#f2c77a;font:800 .56rem/1 Arial,sans-serif;letter-spacing:.12em}
.battle-hud .home-team span{color:#bde8d9}
.battle-hud .score-team strong{display:block;margin-top:3px;color:#fff2bd;font-size:1.9rem;line-height:.9;font-variant-numeric:tabular-nums;text-shadow:0 2px 0 #4b2813}
.battle-hud .home-team strong{text-shadow:0 2px 0 #17382e}
.battle-hud .battle-status{display:flex;min-width:0;flex-direction:column;justify-content:center;align-items:center;padding:7px 14px;text-align:center;border-inline:1px solid #a77a3670;background:radial-gradient(ellipse at center,#9d722228,transparent 68%)}
.battle-hud .hud-kicker{color:#e0a94d;font:800 .52rem/1 Arial,sans-serif;letter-spacing:.2em}
.battle-hud #status{margin-top:3px;color:#f7eed0;font-size:clamp(.72rem,1.8vw,.95rem);line-height:1.1;letter-spacing:.04em}
.battle-hud #troops{margin-top:4px;color:#fdca5a;font-size:.76rem;line-height:1;letter-spacing:.1em;text-transform:uppercase}
body{background:#101714;overflow-x:hidden}
main{position:relative;z-index:1}
.battle-smoke{position:fixed;inset:0;z-index:20;overflow:hidden;pointer-events:none;opacity:.8}
.battle-smoke span{position:absolute;bottom:-32vh;width:32vw;height:66vh;border-radius:48% 52% 45% 55%;background:radial-gradient(ellipse at 50% 72%,#d7d9cbba 0 7%,#adb3a18f 19%,#71786c52 42%,transparent 71%);filter:blur(13px);animation:smoke-rise 21s ease-in infinite}
.battle-smoke span:nth-child(1){left:-8vw;animation-delay:-5s;animation-duration:25s}
.battle-smoke span:nth-child(2){left:18vw;width:25vw;animation-delay:-13s;animation-duration:19s}
.battle-smoke span:nth-child(3){left:48vw;width:36vw;animation-delay:-8s;animation-duration:28s}
.battle-smoke span:nth-child(4){left:78vw;width:24vw;animation-delay:-18s;animation-duration:22s}
@keyframes smoke-rise{0%{transform:translate3d(-4vw,34vh,0) scale(.62);opacity:0}9%{opacity:.72}58%{opacity:.48}100%{transform:translate3d(8vw,-120vh,0) scale(1.38);opacity:0}}
@media(prefers-reduced-motion:reduce){.battle-smoke span{animation:none;opacity:.32;transform:translate3d(0,-30vh,0) scale(.9)}}
.tile.resolving{z-index:5;animation:tile-reveal .22s ease-out both}
.tile.resolving .coin{opacity:1;background:#dcb342;color:#1b170c;border:1px solid #fff1a6;box-shadow:0 0 12px #ffe27b;animation:coin-appear .42s ease-out both}
.tile.resolve-bomb{animation:tile-reveal .22s ease-out both,bomb-warning .45s steps(2,end) infinite}
.tile.resolve-bury{animation:tile-reveal .22s ease-out both,bury-action .47s ease-in both}
.tile.resolve-left{animation:tile-reveal .22s ease-out both,push-left-action .47s ease-in both}
.tile.resolve-right{animation:tile-reveal .22s ease-out both,push-right-action .47s ease-in both}
.tile.resolve-double{animation:tile-reveal .22s ease-out both,double-action .47s ease-in-out both}
.tile.fresh-aftermath{animation:terrain-remain .55s ease-out both}
.tile.fresh-collapse .spent-card{animation:tile-collapse .38s ease-out both}
.tile.arming-shove{outline:3px solid #f4cd54;outline-offset:-4px;box-shadow:inset 0 0 0 2px #fff0a8,inset 0 -4px #9b6a1d;animation:shove-arm 1s ease-in-out infinite}
.coin-flight{position:absolute;z-index:22;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 33% 28%,#fff7bd 0 9%,#e3b73f 13% 62%,#7e5212 64%);border:2px solid #fff0a5;color:#35200a;font:900 .72rem/1 Arial,sans-serif;box-shadow:0 0 18px #ffe482,0 4px 0 #65400d;transform:translate(-50%,-50%);animation:coin-to-score 1.35s cubic-bezier(.18,.78,.25,1) forwards}
@keyframes tile-reveal{from{transform:rotateY(88deg) scale(.82);filter:brightness(1.8)}to{transform:rotateY(0) scale(1);filter:brightness(1)}}
@keyframes terrain-remain{from{opacity:.1;filter:brightness(2.5) saturate(.35);transform:scale(.92)}to{opacity:1;filter:none;transform:scale(1)}}
@keyframes tile-collapse{from{right:50%;bottom:50%;width:92%;transform:translate(50%,50%) scale(1);opacity:1}to{right:6px;bottom:6px;width:38%;transform:none;opacity:.9}}
@keyframes coin-appear{from{transform:scale(.25);opacity:0}70%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}
@keyframes bomb-warning{50%{filter:brightness(2.1) saturate(1.8)}}
@keyframes bury-action{to{transform:translateY(9px) scale(.78);filter:brightness(.55)}}
@keyframes push-left-action{to{transform:translateX(-13px);filter:brightness(1.3)}}
@keyframes push-right-action{to{transform:translateX(13px);filter:brightness(1.3)}}
@keyframes double-action{50%{transform:scale(1.12);filter:brightness(1.9)}}
@keyframes shove-arm{50%{filter:brightness(1.35);transform:scale(.97)}}
@keyframes coin-to-score{0%,34%{transform:translate(-50%,-50%) translate(0,-10px) scale(1.15);opacity:1}18%{transform:translate(-50%,-50%) translate(0,-22px) scale(1.28)}100%{transform:translate(-50%,-50%) translate(var(--coin-x),var(--coin-y)) scale(.42);opacity:.2}}
@media(prefers-reduced-motion:reduce){.tile.resolving,.tile.resolving .coin,.tile.aftermath,.coin-flight,.available-coin,.board-actions .roll-die-button img,.board-actions .lock-row-button img{animation:none}.coin-flight{transform:translate(-50%,-50%) translate(var(--coin-x),var(--coin-y))}}
@media(max-width:640px){.board.setup-board{margin-right:0}.active-row-value{min-width:44px;gap:3px;font-size:.48rem}.active-row-value small{display:none}.active-value-coin{width:25px;height:25px;font-size:.6rem}}
@media(max-width:640px){.game-logo{max-height:190px}.game-header .header-actions{top:3px;right:0}.hud-icon{width:32px;height:32px;font-size:.87rem}.battle-hud{grid-template-columns:1fr 1.25fr 1fr}.battle-hud .score-team{padding:7px 6px;gap:4px}.battle-hud .score-crest{width:28px;height:28px;font-size:1rem}.battle-hud .score-team span{font-size:.44rem}.battle-hud .score-team strong{font-size:1.45rem}.battle-hud .battle-status{padding:6px 4px}.battle-hud #troops{font-size:.61rem}}

/* The route selector is a real trench: five exits line up exactly with the five board lanes. */
.deployments{grid-template-columns:1fr;gap:7px;margin-top:13px;padding-top:10px;border-top:1px solid #9c8f6c66}
.launcher-trench{position:relative;height:clamp(86px,15vw,132px);margin:0;overflow:hidden;background:linear-gradient(90deg,#08100822,#08100800 18% 82%,#08100822),url('assets/trench-launch-exits-v1.png') center 55%/cover no-repeat;touch-action:none;cursor:ew-resize;outline:none}
.launcher-trench::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#050b0711 0 55%,#060b09aa 100%)}
.launcher-trench:focus-visible{box-shadow:inset 0 0 0 2px #ffe17b}
.trench-exit-target{position:absolute;z-index:1;left:calc(10% + var(--mark) * 20%);top:49%;width:54px;height:40px;transform:translate(-50%,-50%);pointer-events:none}
.trench-exit-target::after{content:'';position:absolute;inset:8px;border-radius:50%;border:1px solid #f9dc7544;box-shadow:0 0 14px #e8bd4655;opacity:.38}
.route-signal{position:absolute;z-index:3;left:calc(10% + var(--lane) * 20%);top:44%;width:22px;height:22px;border:2px solid #ffdf72;border-radius:50%;background:radial-gradient(circle at 38% 35%,#fff6bd 0 13%,#efbd3f 24%,#8f541b 56%,#211407 100%);box-shadow:0 0 0 4px #311d0a88,0 0 18px 6px #ecae3b99;transform:translate(-50%,-50%);transition:left .36s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.route-signal::after{content:'';position:absolute;inset:-8px;border:1px solid #ffd66d99;border-radius:50%;animation:route-pulse 1.6s ease-out infinite}
@keyframes route-pulse{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.3);opacity:0}}
.squad-staging{min-height:62px;padding:0 11px;color:#f5edcf}
.squad-field{position:relative;height:62px}
.reserve-count{position:absolute;z-index:5;left:1px;bottom:0;width:43px;display:flex;flex-direction:column;align-items:center;color:#ffe98e;font:900 .52rem/1 Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 2px 3px #000}
.reserve-count i{display:block;width:39px;height:40px;margin-bottom:1px;background:radial-gradient(ellipse at center bottom,#c7923655 0 41%,transparent 70%),url('assets/away-troop.png') center bottom/contain no-repeat;filter:brightness(1.28) saturate(1.18) contrast(1.16) drop-shadow(0 2px 2px #000) drop-shadow(0 0 5px #e5b84d88)}
.reserve-count b{white-space:nowrap;font-weight:800}
.squad-line{position:absolute;z-index:2;left:45px;bottom:9px;display:flex;align-items:end;gap:clamp(2px,1.3vw,8px);height:32px;overflow:hidden}
.queued-troop{display:block;flex:0 0 25px;height:31px;background:url('assets/away-troop.png') center bottom/contain no-repeat;filter:brightness(.52) saturate(.52) drop-shadow(0 2px 2px #000);opacity:.66}
.approach-track{position:absolute;left:45px;right:47%;top:29px;height:7px;border-top:1px solid #786743;border-bottom:1px solid #080c08;background:repeating-linear-gradient(90deg,#3f4936 0 11px,#1c251c 11px 15px);box-shadow:inset 0 1px #9c8b5b44,0 1px #030603}
.approach-troop{position:absolute;z-index:4;left:45px;bottom:8px;width:32px;height:37px;background:url('assets/away-troop.png') center/contain no-repeat;filter:drop-shadow(0 2px 2px #000) brightness(1.18);animation:troop-to-launch 10s linear both}
.approach-troop b{position:absolute;top:-6px;left:50%;padding:2px 3px;background:#1e2219cc;color:#ffdc76;font:800 .5rem/1 Arial,sans-serif;transform:translateX(-50%);font-variant-numeric:tabular-nums}
@keyframes troop-to-launch{0%{left:45px;bottom:8px}12%{left:48px;bottom:26px}100%{left:calc(50% - 16px);bottom:26px}}
@media(prefers-reduced-motion:reduce){.route-signal,.approach-troop{transition:none}.route-signal::after{animation:none}.approach-troop{animation:none;left:calc(50% - 16px);bottom:26px}}
@media(max-width:440px){.launcher-trench{height:88px}.trench-exit-target{width:42px}.squad-staging{padding-inline:6px}.queued-troop{flex-basis:21px;height:27px}}
