@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');
@font-face {
  font-family: 'Raid Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/public/assets/fonts/roboto-condensed-cyrillic.woff2) format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Raid Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/public/assets/fonts/roboto-condensed-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
.wallet-panel,.chain-leaderboard{margin-top:20px;padding:16px;background:#1b1e20;border:1px solid #454038;border-radius:10px}.wallet-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.wallet-heading h2{font-size:23px;margin:0}.chain-badge{font-size:9px;letter-spacing:1px;color:#b4d6ad;border:1px solid #52664c;padding:5px 7px;border-radius:4px}.wallet-actions{display:flex;flex-wrap:wrap;gap:8px}.wallet-actions button{flex:1 1 140px;font-size:12px;min-height:42px}.wallet-note{font-size:11px;line-height:1.6;color:#a1a69f}.wallet-status{font-size:12px;color:#edbf78;overflow-wrap:anywhere;min-height:1em;margin-bottom:0}.wallet-address{font-family:monospace;color:#ece5d7}.save-state{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:11px;margin:14px 0}.save-state a{color:#b9d8aa}.save-conflict{padding:12px;border:1px solid #b58a4b;background:#32291e;margin:12px 0}.wallet-error{color:#edac8e;font-size:12px}.chain-ranks{list-style:none;padding:0;margin:14px 0}.chain-ranks li{display:flex;align-items:center;gap:12px;padding:12px 5px;border-bottom:1px solid #3e3b34}.chain-ranks li>span{color:#c49f6d;font-size:12px;min-width:24px}.chain-ranks b{font-size:12px}.chain-ranks li>div{margin-left:auto;text-align:right}.chain-ranks strong,.chain-ranks small{display:block}.chain-ranks strong{color:#f0bd65;font-size:15px}.chain-ranks small{color:#999c96;margin-top:4px;font-size:10px}.chain-ranks .own-rank{background:#2c3528;border-color:#637453;padding-inline:9px;border-radius:5px}.local-records{margin:22px 0;color:#b9b1a3}.local-records summary{cursor:pointer;padding-block:10px}
*{box-sizing:border-box}body{margin:0;background:#090b0d;color:#dedbd3;font:13px Inter,Arial,sans-serif}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #414039;background:#242626;border-radius:4px;padding:10px}button:disabled{cursor:default;opacity:.4}button:focus-visible{outline:2px solid #f59e0b;outline-offset:2px}#app{width:100%;max-width:480px;height:100vh;height:100dvh;margin:0 auto;display:flex;flex-direction:column;background:#121316;box-shadow:0 0 100px #000}header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid #35322c;padding-top:max(18px,env(safe-area-inset-top))}header small{font-size:8px;letter-spacing:2px;color:#9b988e;display:block;margin-bottom:5px}header strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px}header strong span{color:#f59e0b}header>b{color:#efba63;background:#2b2118;padding:9px}main{padding:20px;overflow:auto;flex:1;min-height:0}nav{display:flex;flex-shrink:0;background:#191b1d;border-top:1px solid #3d382e;padding-bottom:env(safe-area-inset-bottom)}nav button{flex:1;border:0;border-radius:0;background:none;color:#817f77;font-size:10px;letter-spacing:2px;padding:12px}nav b{display:block;font-size:22px;margin-bottom:4px}.active{color:#f6b143!important;background:#34291b!important}nav .active{border-top:2px solid #f59e0b}.eyebrow{color:#bc985e;font-size:9px;letter-spacing:2px}h1{font-family:'Barlow Condensed',Impact,sans-serif;font-weight:700;text-transform:uppercase;font-size:37px;line-height:1.06;margin:14px 0 18px}h1 em{font-style:normal;color:#e3ae62}h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px;margin:7px 0}p{line-height:1.6;color:#aaa79e}.hero-scene{position:relative;background:linear-gradient(165deg,#585040,#272522 45%,#181b1d);height:165px;overflow:hidden;border:1px solid #575040;margin-bottom:18px}.hero-scene>span{position:absolute;top:12px;left:14px;font-size:8px;letter-spacing:3px}.hero-scene>div{position:absolute;bottom:12px;left:14px;font-size:8px;letter-spacing:2px;color:#b1a58b}.vehicle{width:100%;height:135px;filter:drop-shadow(0 12px 10px #0009)}.hero-scene .vehicle{margin-top:20px}.switch{display:flex;gap:6px;margin-bottom:20px}.switch button{flex:1}.sectionline{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:12px 0 8px;font-size:10px;letter-spacing:.6px}.sectionline small{color:#8f8c81;font-size:9px}.sectionline button{padding:5px}.mission{display:flex;width:100%;align-items:center;text-align:left;gap:14px;background:linear-gradient(110deg,#282624,#1b1d1f);border:1px solid #3b3831;padding:13px;margin:8px 0}.mission span:last-child{margin-left:auto;color:#c4a168}.mission small{display:block;margin-top:5px;color:#928e81;font-size:10px}.number{font:26px 'Barlow Condensed',Impact;color:#987b54}.primary{background:#e5a12e;color:#171717;border:0;font-weight:700;padding:13px;width:100%}.enemy{background:linear-gradient(140deg,#322a21,#1b1e21);border:1px solid #494136;padding:12px}.enemy>small{color:#bc9d6c;font-size:8px;letter-spacing:2px}.enemy .vehicle{height:65px}.enemy h2{font-size:23px}.bar{height:5px;background:#343332;overflow:hidden}.bar i{height:100%;display:block;background:#c66b42;transition:width .2s}.health i{background:#91ab69}.charge i{background:#efad3a}.skills{display:flex;gap:6px;margin:12px 0}.skills button{flex:1;min-width:0;padding:0;background:#252728;overflow:hidden}.skills button:disabled{opacity:.85}.skills .hero-portrait>svg{width:100%;height:52px;object-fit:cover}.skills b{font-size:10px;display:block}.skills small{font-size:8px;display:block;margin:3px}.board{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;padding:7px;background:#090b0d;border:1px solid #3b3a36;border-radius:6px;touch-action:manipulation}.tile{aspect-ratio:1;padding:0;font-size:25px;position:relative;box-shadow:inset 0 2px #ffffff13;border-radius:5px}.tile:disabled{opacity:1}.c0{background:#4c2d23;border-color:#81503b}.c1{background:#283c2c;border-color:#476449}.c2{background:#233c46;border-color:#44636d}.c3{background:#3a2d45;border-color:#645071}.selected{outline:2px solid #ffcb66;transform:scale(.92)}sup{position:absolute;right:0;top:0;font-size:13px;background:#151719;border-radius:3px}.log{min-height:30px;font-size:11px;margin:10px 0}.muted{color:#88887f;font-size:10px}.merc{display:flex;gap:13px;border:1px solid #3d3a32;background:#222324;padding:12px;margin:12px 0}.merc svg{width:78px;height:90px;flex-shrink:0}.merc small{display:block;color:#b09b76;font-size:8px}.merc p{font-size:11px;margin:5px 0 9px}.merc button{padding:7px;font-size:10px;margin:2px}.legend{border-color:#b58834;background:linear-gradient(140deg,#40331b,#222324)}.stat{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:25px;background:#29241b}.stat strong{font:50px 'Barlow Condensed';color:#efb65b}.stat span{grid-row:2;font-size:10px;letter-spacing:2px}.result{padding:15px;background:#30291c;border:1px solid #a67f3d}@media(max-height:750px){main{padding:12px 16px}.enemy .vehicle{display:none}.skills .hero-portrait>svg{height:38px}.tile{font-size:22px}h1{font-size:30px}.hero-scene{height:120px}.hero-scene .vehicle{height:95px}.mission{padding:10px}.switch{margin-bottom:12px}}
.board{touch-action:none;user-select:none;-webkit-user-select:none}.tile.dragging{z-index:5;pointer-events:none;filter:brightness(1.35);box-shadow:0 8px 20px #000a}.skills .hero-hp{font-size:10px;color:#c3deab}.skills .health{margin:3px 5px;height:4px}.skills .targeted{border-color:#ed895a;box-shadow:0 0 0 1px #b76542}.skills .fallen{filter:grayscale(1);opacity:.35}.combat-hit-label{position:fixed;z-index:1000;pointer-events:none;font-size:16px;font-weight:800;text-shadow:0 2px 5px #000;white-space:nowrap}.combat-damage-shot{position:fixed;z-index:999;width:12px;height:12px;border-radius:50%;background:#ee9851;box-shadow:0 0 15px #f59e0b;pointer-events:none}.combat-wave{position:fixed;inset:0;z-index:1001;display:grid;place-items:center;pointer-events:none}.combat-wave-band{background:#1d211ff0;border-block:2px solid #bd8c45;width:100%;text-align:center;padding:25px;color:#efb45f}.combat-wave-band strong,.combat-wave-band span{display:block;margin:8px}.armor-shard{position:fixed;z-index:1000;background:#abc6ce;width:12px;height:20px;pointer-events:none}.bomb-burst{position:fixed;z-index:1000;color:#ffad35;font-size:50px;pointer-events:none}.chain-lightning{position:fixed;z-index:1000;pointer-events:none}.chain-lightning path{fill:none;stroke:#bbecff;stroke-width:3;filter:drop-shadow(0 0 3px #6bcfff)}
/* Machined resource tiles: bevels, enamel, staggered light sweeps. */
.board{gap:6px;padding:10px;border-radius:15px;border:1px solid #686350;background:radial-gradient(ellipse at 50% 0,#40403980,transparent 70%),#101416;box-shadow:inset 0 2px 2px #ffffff13,inset 0 -3px 6px #0009,0 12px 30px #0005;isolation:isolate}.tile{display:grid;place-items:center;min-width:0;overflow:hidden;border-radius:10px;border:1px solid var(--rim);color:var(--ink);background:radial-gradient(ellipse at 30% 8%,var(--lit),transparent 70%),linear-gradient(155deg,var(--base),var(--deep));box-shadow:inset 0 2px 1px #ffffff45,inset 2px 0 2px #ffffff0c,inset 0 -4px 2px #0006,0 3px 3px #0008;transition:border-color .15s}.c0{--lit:#e49a60;--base:#ad502f;--deep:#4b201e;--rim:#d58a60;--ink:#ffe3a5}.c1{--lit:#9dcf88;--base:#4e895d;--deep:#1c3a33;--rim:#8eb795;--ink:#e2ffc0}.c2{--lit:#8acddd;--base:#387c9d;--deep:#17364e;--rim:#8ac6de;--ink:#d2faff}.c3{--lit:#bb9add;--base:#7653a3;--deep:#352145;--rim:#b399cb;--ink:#ffe7a1}.tile::before{content:'';position:absolute;inset:4px;border-radius:6px;border:1px solid #ffffff14;pointer-events:none}.tile::after{content:'';position:absolute;inset:-90% -70%;background:linear-gradient(115deg,transparent 39%,#ffffff04 42%,#fff8 48%,#ffffff12 53%,transparent 58%);transform:translateX(-65%) rotate(10deg);animation:enamel-sweep 6.8s ease-in-out infinite;animation-delay:var(--idle-delay);pointer-events:none;mix-blend-mode:screen}.tile:nth-child(4n){--idle-delay:-1.2s}.tile:nth-child(4n+1){--idle-delay:-3.5s}.tile:nth-child(4n+2){--idle-delay:-5.1s}.tile:nth-child(4n+3){--idle-delay:-6.2s}.tile .resource-art{width:82%;height:82%;fill:currentColor;stroke:var(--deep);stroke-width:1.4;stroke-linejoin:round;position:relative;filter:drop-shadow(0 3px 1px #0008);animation:rune-breathe 3.8s ease-in-out infinite;animation-delay:var(--idle-delay);pointer-events:none}.resource-art .engraving{fill:none;stroke:var(--deep);stroke-width:2.6;opacity:.65}.resource-art .light{fill:#fff7cf;stroke:none}.resource-art .cutout{fill:var(--deep);stroke:none}.resource-art .frost{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round}.tile.selected{outline:2px solid #fff1b1;outline-offset:1px;box-shadow:0 0 20px #fbd66c99,inset 0 0 15px #fff4}.chain-lock{position:absolute;inset:0;display:grid;place-items:center;background:#10151a42;z-index:3;pointer-events:none}.chain-lock svg{width:100%;height:100%;filter:drop-shadow(1px 3px 1px #000)}.dynamite{position:absolute;right:2px;top:2px;background:linear-gradient(#bd5446,#60251f);border:1px solid #f3a37c;border-radius:5px;padding:1px 4px;font-size:10px;color:#ffe3ad;z-index:4;box-shadow:0 2px 5px #0008}.dynamite.urgent{animation:bomb-warning .75s ease-in-out infinite}.skills button{position:relative;border-radius:9px;background:linear-gradient(145deg,#39403c,#191e20);box-shadow:inset 0 1px #fff2,0 3px 8px #0005}.skills .ready{border-color:#ffd278;animation:hero-ready 1.8s ease-in-out infinite;box-shadow:0 0 16px #efbb6040}.skills .charge{height:5px}.skills .charge i{background:linear-gradient(90deg,#b17a2a,#ffe39a);box-shadow:0 0 7px #f6cc80}.skills .health i{background:linear-gradient(90deg,#4e8c61,#c2e79a)}.enemy{border-radius:12px;box-shadow:inset 0 1px #fff1,0 8px 20px #0003}.enemy .bar i{background:linear-gradient(90deg,#943e2a,#ed9c63)}
@keyframes rune-breathe{0%,100%{transform:scale(.96);filter:drop-shadow(0 3px 1px #0008)}50%{transform:scale(1.045);filter:drop-shadow(0 0 5px currentColor)}}@keyframes enamel-sweep{0%,45%{transform:translateX(-65%) rotate(10deg);opacity:0}50%{opacity:.7}72%{transform:translateX(65%) rotate(10deg);opacity:0}100%{transform:translateX(65%) rotate(10deg);opacity:0}}@keyframes hero-ready{50%{filter:brightness(1.2);box-shadow:0 0 18px #efbb6070}}@keyframes bomb-warning{50%{filter:brightness(1.5);box-shadow:0 0 12px #ff634d}}
.battle-result{color:#f0e7d5;width:min(370px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto;padding:28px 24px 22px;text-align:center;border:1px solid #bfa06b;border-radius:20px;background:radial-gradient(ellipse at 50% 0,#66533780,transparent 65%),linear-gradient(155deg,#292d2b,#14191b);box-shadow:inset 0 1px #fff4,0 30px 100px #000c;animation:result-arrive .35s cubic-bezier(.16,1,.3,1)}.battle-result::backdrop{background:#070c11bd;backdrop-filter:blur(7px)}.battle-result h2{font-size:35px;text-transform:uppercase;margin:14px 0 8px;line-height:1.05}.battle-result p{font-size:12px;color:#b7b8ae;margin:12px 0 20px}.result-emblem{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 22px;border-radius:50%;border:1px solid #d9b675;color:#ffe1a2;font-size:52px;background:radial-gradient(circle,#caa25c4d,#272b27);box-shadow:0 0 0 7px #d9ac5710,0 0 45px #f1bb5130;text-shadow:0 0 20px #ffc866}.defeat .result-emblem{color:#efaa89;border-color:#a5654c;box-shadow:0 0 40px #dc653929}.result-loot{padding:17px;margin-bottom:16px;background:linear-gradient(110deg,#b48c3d15,#c29e4f28,#b48c3d15);border-block:1px solid #c8a35f42}.result-loot span{font-size:8px;letter-spacing:2px;color:#c6b38b;display:block}.result-loot strong{font:700 44px 'Barlow Condensed',sans-serif;color:#ffda87}.result-loot i{font-size:24px;font-style:normal}.rescued{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #786541;background:#0e15164d;border-radius:9px;padding:10px;margin-bottom:20px}.rescued svg{width:58px;height:64px;border-radius:5px}.rescued small,.rescued span,.rescued b{display:block}.rescued small{font-size:8px;letter-spacing:1px;color:#e7bc71}.rescued b{font-size:20px;margin:4px 0}.rescued span{font-size:10px;color:#a9ae9e}.battle-result .primary{border-radius:8px;background:linear-gradient(#f5c970,#d89732);box-shadow:inset 0 1px #fff7,0 5px 18px #0004;min-height:48px}.result-footnote{display:block;font-size:9px;color:#8d948a;margin-top:14px}@keyframes result-arrive{from{opacity:0;transform:translateY(18px) scale(.93)}to{opacity:1;transform:none}}.match-spark{position:fixed;z-index:900;width:5px;height:5px;border-radius:50%;pointer-events:none;background:var(--spark);box-shadow:0 0 7px var(--spark)}.match-ring{position:fixed;z-index:900;border:2px solid #ffe6b3;border-radius:50%;width:30px;height:30px;pointer-events:none}
@media(prefers-reduced-motion:reduce){.tile::after,.tile .resource-art,.skills .ready,.dynamite.urgent,.battle-result{animation:none!important}}
.battle-main{padding:10px 16px;scrollbar-width:thin}.battle-main>.sectionline:first-child{margin-top:0}.battle-main .enemy{padding:9px 12px}.battle-main .enemy h2{font-size:22px;margin:4px 0}.battle-main .enemy .vehicle{height:42px}.battle-main .enemy .sectionline{margin:5px 0;font-size:9px}.battle-main .skills{margin:8px 0 12px}.battle-main .skills .hero-portrait>svg{height:38px}.battle-main .skills b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}.battle-main .board{width:min(100%,calc(100dvh - 440px));min-width:220px;aspect-ratio:1;margin-inline:auto;grid-template-rows:repeat(6,minmax(0,1fr));gap:5px;padding:8px}.battle-main .tile{aspect-ratio:auto;min-height:0}.battle-main .log{min-height:20px;margin:8px 0 4px;font-size:10px}.battle-main>.muted{font-size:9px}@media(max-height:740px){.battle-main .enemy .vehicle{display:none}.battle-main .board{width:min(100%,calc(100dvh - 390px))}} 
/* Chosen direction: colored metal shapes, shared by tiles and mercenaries. */
.c0{--lit:#ce9978;--base:#a36146;--deep:#432a24;--rim:#b48062;--ink:#edc6a5}.c1{--lit:#a9b39a;--base:#73866a;--deep:#283c33;--rim:#8eaa90;--ink:#d5dfbf}.c2{--lit:#aac1c5;--base:#648d9a;--deep:#293d49;--rim:#86a9b4;--ink:#d5e6e5}.c3{--lit:#ba9faf;--base:#8a6d87;--deep:#3d303f;--rim:#ac8da8;--ink:#e5d2de}
.board .tile{background:radial-gradient(ellipse at 50% 70%,#ffffff07,transparent 70%),#191d1f;border:1px solid #383d3b;border-radius:7px;box-shadow:inset 0 2px 5px #0007,0 1px #ffffff09;overflow:visible}.board .tile::before,.board .tile::after{display:none}.shape-art{width:100%;height:100%;overflow:visible;pointer-events:none;filter:drop-shadow(0 3px 2px #0009)}.shape-edge{fill:var(--deep);stroke:var(--rim);stroke-width:1.2;stroke-linejoin:round}.shape-face{fill:var(--base);stroke:var(--lit);stroke-width:1.4;stroke-linejoin:round}.shape-grain{fill:none;stroke:var(--ink);stroke-width:.8;opacity:.3}.board .shape-art{width:92%;height:92%;animation:metal-light 7s ease-in-out infinite;animation-delay:var(--idle-delay)}@keyframes metal-light{0%,70%,100%{filter:drop-shadow(0 3px 2px #0009) brightness(1)}80%{filter:drop-shadow(0 3px 2px #0009) brightness(1.16)}}.board .tile.selected{outline:2px solid var(--ink);background:var(--deep);box-shadow:0 0 14px #ffffff15}.skills button{border-color:var(--rim);background:linear-gradient(160deg,var(--deep),#171d1e 85%);box-shadow:inset 0 2px var(--base),0 3px 8px #0005}.skills button>svg{opacity:.85}.affinity-badges{display:flex;align-items:center;gap:3px}.affinity{display:inline-flex;width:25px;height:25px}.skills .affinity-badges{position:absolute;top:3px;left:3px;padding:2px;border-radius:4px;background:#111719c9;pointer-events:none}.skills .affinity{width:18px;height:18px}.skills .affinity svg,.battle-main .skills .affinity svg{width:100%;height:100%}.skills .charge i{background:var(--rim);box-shadow:none}.skills .targeted{border-color:var(--rim);box-shadow:inset 0 2px var(--base),0 3px 8px #0005}.skills .targeted::after{content:'⌖';position:absolute;top:3px;right:3px;font-size:15px;line-height:16px;color:#ffe1bb;background:#161919d9;border-radius:3px;padding:1px 2px}.skills .ready{border-color:var(--ink);animation:none;box-shadow:0 0 10px color-mix(in srgb,var(--base) 40%,transparent),inset 0 -2px var(--rim)}.skills .dual-affinity{background:linear-gradient(120deg,#432a24,#3d303f);border-left-color:#b48062;border-right-color:#ac8da8}.merc{border-color:var(--rim);background:linear-gradient(120deg,var(--deep),#1c2223 80%)}.merc .affinity-badges{margin-bottom:5px}.merc .affinity svg{width:100%;height:100%;flex:none}.merc.legend{background:linear-gradient(120deg,#432a24,#3d303f);border-color:#b59a6c}.skills .fallen{filter:grayscale(1);opacity:.35}@media(prefers-reduced-motion:reduce){.board .shape-art{animation:none}}
.board{position:relative}.fall-layer{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:8;contain:layout paint}.fall-piece{position:absolute;display:grid;place-items:center;transform-origin:50% 85%;will-change:transform;pointer-events:none}.fall-piece .shape-art{width:92%;height:92%;animation:none}.fall-piece .chain-lock{border-radius:6px}.board .tile.dragging{z-index:9}
/* Realistic resource cutouts; hit areas remain square, visible sockets are removed. */
.c0{--lit:#d6a07b;--base:#a3653e;--deep:#453023;--rim:#ba825b;--ink:#eac9a4}.c1{--lit:#afba93;--base:#74805e;--deep:#303b2c;--rim:#93a17c;--ink:#dce3c9}.c2{--lit:#d9c282;--base:#a88a3e;--deep:#423c26;--rim:#c2a85d;--ink:#f1e1b4}.c3{--lit:#b2b6b4;--base:#737d7d;--deep:#313a3d;--rim:#94a3a6;--ink:#d9dddb}
.battle-main .board{background:radial-gradient(ellipse at 50% 30%,#303733,#171d1d 75%);border:1px solid #4c5046;box-shadow:inset 0 2px 12px #0006,0 8px 22px #0004;gap:3px;padding:7px;border-radius:12px}.board .tile,.board .tile:hover,.board .tile.dragging{border:0;background:transparent;box-shadow:none;border-radius:0;padding:0}.board .tile::before,.board .tile::after{display:none}.resource-sprite{display:block;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 3px 2px #0009)}.board .tile .resource-sprite,.fall-piece .resource-sprite{width:100%;height:100%;animation:none;object-fit:contain}.board .tile.selected{outline:0;transform:scale(.94);background:transparent;box-shadow:none}.board .tile.selected .resource-sprite,.board .tile:focus-visible .resource-sprite{filter:drop-shadow(0 0 3px #f8d88c) drop-shadow(0 3px 2px #0009)}.board .tile.dragging .resource-sprite{filter:drop-shadow(0 6px 4px #000a) brightness(1.1)}.affinity .resource-sprite{width:100%;height:100%;object-fit:contain}.skills .affinity{width:22px;height:22px}.skills .affinity-badges{padding:1px;background:#111719b3}.merc .affinity{width:30px;height:30px}.skills .dual-affinity{background:linear-gradient(120deg,#453023,#313a3d);border-left-color:#ba825b;border-right-color:#94a3a6}.merc.legend{background:linear-gradient(120deg,#453023,#313a3d)}
/* Give each object breathing room; intrinsic image dimensions cannot expand cells. */
.battle-main .board{padding:12px;gap:4px;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr))}.board .tile{min-width:0;min-height:0;position:relative}.board .tile .resource-sprite,.fall-piece .resource-sprite{position:absolute;inset:0;margin:auto;width:84%;height:84%;max-width:84%;max-height:84%;object-fit:contain;filter:drop-shadow(0 2px 1px #0008)}
/* Board-only comparison modes. View 1 intentionally inherits every original rule. */
.battle-main .board:is([data-board-view="2"],[data-board-view="3"]){gap:6px;background:linear-gradient(140deg,#32383c,#20262b 48%,#292f33);box-shadow:inset 0 1px 0 #ffffff18,inset 0 -2px 4px #0008,0 8px 22px #0004;border-color:#50565a}
.board:is([data-board-view="2"],[data-board-view="3"]) .tile{border-radius:10px;background:#16191e;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 3px 6px rgba(0,0,0,.85);isolation:isolate}
.board:is([data-board-view="2"],[data-board-view="3"]) .tile .resource-sprite,.board:is([data-board-view="2"],[data-board-view="3"]) .fall-piece .resource-sprite{filter:drop-shadow(0 5px 5px rgba(0,0,0,.8))}
.board:is([data-board-view="2"],[data-board-view="3"]) .tile.selected{transform:none;outline:1px solid #c8b991;outline-offset:1px}
/* View 3: tactile steel keys with independent instrument lighting. */
.board[data-board-view="3"] .tile.c0{--slot-marker:239,68,68;--slot-glow:.35}
.board[data-board-view="3"] .tile.c1{--slot-marker:34,197,94;--slot-glow:.32}
.board[data-board-view="3"] .tile.c2{--slot-marker:234,179,8;--slot-glow:.35}
.board[data-board-view="3"] .tile.c3{--slot-marker:56,189,248;--slot-glow:.32}
.board[data-board-view="3"] .tile{border-radius:8px;box-shadow:inset 0 1.5px 1px rgba(255,255,255,.22),inset 0 -2px 4px rgba(0,0,0,.8),0 3px 5px rgba(0,0,0,.65)}
.board[data-board-view="3"] .tile::after{content:'';display:block;position:absolute;inset:1px;border-radius:7px;background:radial-gradient(ellipse 95% 45% at 50% 100%,rgba(var(--slot-marker),var(--slot-glow)) 0%,rgba(var(--slot-marker),.18) 45%,transparent 100%);box-shadow:none;opacity:1;transform:none;animation:none;mix-blend-mode:normal;pointer-events:none;z-index:-1}
.board[data-board-view="3"] .tile::before{display:none}
.board[data-board-view="3"] .tile .resource-sprite,.board[data-board-view="3"] .fall-piece .resource-sprite{width:90%;height:90%;max-width:90%;max-height:90%}
/* The sockets supply depth on phones. Keep moving resource bitmaps free of blur passes. */
@media (pointer:coarse){
 /* Keep stationary sockets on composited layers as the two swapped sprites move. */
 .battle-main .board[data-board-view="3"]{will-change:transform}
 .battle-main .board[data-board-view="3"] .tile{
  will-change:transform;
  box-shadow:none;
  border-top-color:#54595d;
  border-bottom-color:#090c10;
 }
 .battle-main .board[data-board-view="3"] :is(.tile,.fall-piece) .resource-sprite{filter:none}
 .battle-main .board .match-link path{filter:none}
}
/* Juice layers: all transformations belong to sprites and transient overlays. */
.header-controls{display:flex;gap:8px;align-items:center}.header-controls b{color:#efba63;background:#2b2118;padding:9px}.header-controls button{padding:6px;background:#1c2324;border-color:#424944;font-size:17px}.board .tile.drag-source,.board .tile.drag-target,.board .tile.queued-cell{outline:1px solid #f0d8a2;outline-offset:1px;transform:none;filter:none}.board .tile.drag-source img{z-index:12}.board .tile.drag-target img{z-index:11}.board .tile.drag-source{z-index:12}.board .tile.drag-target{z-index:11}.board .tile.queued-cell{outline-style:dashed}.board .tile.selected{transform:none}.board .tile.match-live::before{content:'';display:block;position:absolute;inset:auto 25% 2px;height:2px;border:0;background:rgb(var(--slot-marker));box-shadow:0 0 10px 2px rgba(var(--slot-marker),.9);z-index:1}.board .tile.match-live::after{filter:brightness(2)}.match-link{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:20;overflow:visible}.match-link path{fill:none;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 4px #fff)}.juice-frame{position:absolute;inset:-1px;border:2px solid #b99b6f;border-radius:inherit;pointer-events:none;z-index:30}.board[data-heat="2"]{box-shadow:inset 0 0 12px #b9863933,0 0 12px #bb8b4544}.board[data-heat="3"]{box-shadow:inset 0 0 15px #dc713b44,0 0 18px #e7793f77}.board[data-heat="4"]{box-shadow:inset 0 0 18px #e33c3244,0 0 23px #df473d99}.enemy{position:relative}.enemy.hit-flash::after{content:'';position:absolute;inset:0;border-radius:inherit;background:#ffddc8a0;box-shadow:inset 0 0 18px #e05b50;pointer-events:none}.board .fall-layer{z-index:15}@media(prefers-reduced-motion:reduce){.enemy.hit-flash::after{background:#d8bf9830}.board[data-heat]{box-shadow:inset 0 1px #ffffff18}}
.impact-chip{position:fixed;width:7px;height:4px;background:linear-gradient(#e2d3b7,#787269);border:1px solid #55544d;z-index:1000;pointer-events:none}
/* Match power uses light, motion and symbols; no text plaques cover the board. */
.resource-beam{position:absolute;height:5px;margin-top:-2.5px;transform-origin:0 50%;background:linear-gradient(0deg,var(--beam-color),#fff4d0,var(--beam-color));box-shadow:0 0 10px 3px var(--beam-color);border-radius:50%;pointer-events:none;z-index:22}.critical-flare{position:absolute;width:76px;height:76px;background:radial-gradient(circle,#fff5cc 0%,#ffe1a8b3 13%,#ed923d77 33%,#b944201a 58%,transparent 72%);pointer-events:none;z-index:22}.board.led-overload .tile::before{content:'';display:block;position:absolute;inset:auto 25% 2px;height:2px;border:0;background:rgb(var(--slot-marker));box-shadow:0 0 10px 3px rgba(var(--slot-marker),.95);z-index:1}.board.led-overload .tile::after{filter:brightness(2.6)}.cascade-multiplier{position:fixed;z-index:1001;pointer-events:none;font-family:'Barlow Condensed',Impact,sans-serif;font-weight:800;line-height:1;letter-spacing:-1px;text-shadow:2px 2px 0 #141617,-1px -1px 0 #141617,0 3px 2px #0009;background:none;border:0;padding:0;transform:translate(-50%,-50%)}.shot-trail{position:fixed;width:4px;height:4px;border-radius:50%;z-index:999;pointer-events:none}
/* Shared trap overlays: fixed, readable hardware over untouched resource PNGs. */
.chain-lock{background:linear-gradient(135deg,#07101515,#07101544);overflow:hidden}
.chain-lock svg{filter:drop-shadow(0 2px 1px #000c)}
.tile .dynamite{display:block;right:0;top:0;width:46%;height:65%;padding:0;border:0;border-radius:0;background:none;box-shadow:none;filter:drop-shadow(0 2px 2px #000);pointer-events:none}
.dynamite svg{display:block;width:100%;height:100%}
.dynamite b{position:absolute;right:1px;top:0;display:grid;place-items:center;min-width:15px;height:17px;border:1px solid #b4a78c;border-radius:3px;background:#191b18;color:#ffdb8c;font:bold 13px/1 ui-monospace,monospace;box-shadow:0 1px 3px #000}
.dynamite.urgent b{background:#6f2119;color:#fff1c2;border-color:#ff9266;box-shadow:0 0 7px #e96a3c80}
.effects-preview #app{height:auto;min-height:100dvh;max-width:560px}
.effects-preview main{overflow:visible;padding:24px 20px}
.effects-preview a{color:#d5ac6b}.effects-preview .eyebrow{margin-top:24px;line-height:1.7}
.effects-preview h1{font-size:30px;margin:8px 0}
.effects-preview .board{margin:20px 0;pointer-events:none}
.effects-preview .tile{aspect-ratio:1;position:relative;padding:0}
.effects-preview *{animation:none!important;transition:none!important}
.trap-note{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #ffffff12}
.trap-note>span{color:#d5ac6b;font:24px 'Barlow Condensed',sans-serif;min-width:18px}
.trap-note p{margin:5px 0 0;font-size:12px;line-height:1.55}
.effects-preview details{margin-top:24px;font-size:12px;line-height:1.6}
.effects-preview summary{cursor:pointer;color:#d5ac6b}
/* Perimeter-only restraints and clock detonators: one overlay per cell. */
.cell-clamp,.cell-bomb,.cell-oil{position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:inherit}
.cell-clamp{border:3px solid #81733d;background:repeating-linear-gradient(135deg,#ae944f 0 4px,#202526 4px 8px);mask:linear-gradient(#000 0 0);box-shadow:inset 0 0 0 1px #111}
.cell-clamp{background:none;border:0}
.cell-clamp::before{content:'';position:absolute;inset:1px;border:3px solid transparent;border-image:repeating-linear-gradient(135deg,#92804b 0 4px,#242725 4px 8px) 3;opacity:.85}
.cell-clamp svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 2px 1px #000)}
.cell-bomb{--alarm:#e99538;border:1.5px solid var(--alarm);box-shadow:inset 0 0 7px #e9953838,0 0 3px var(--alarm);color:var(--alarm)}
.detonator{position:absolute;width:55%;height:65%;right:-1px;top:-1px;filter:drop-shadow(0 2px 2px #000)}
.detonator svg{width:100%;height:100%;overflow:visible}
.fuse-spark{filter:drop-shadow(0 0 2px #ffaf3d);animation:fuse-glow 1.4s ease-in-out infinite}
.danger-2{--alarm:#ff4436;animation:threat-pulse 1s ease-in-out infinite}
.danger-1{--alarm:#ff3026;animation:threat-critical .45s ease-in-out infinite}
.danger-1 .detonator{animation:detonator-flash .3s steps(2,end) infinite}
.tile:has(.danger-1) .resource-sprite{animation:danger-tremor .16s linear infinite}
.cell-oil{background:radial-gradient(ellipse at 30% 95%,#50663cb0,transparent 55%),linear-gradient(0deg,#191124 3%,#34233de8 16%,#232e25a8 28%,transparent 48%);box-shadow:inset 3px -3px 5px #211726,inset -3px 0 4px #333e28}
.cell-oil::after{content:'';position:absolute;left:8%;right:9%;bottom:14%;height:6%;border-radius:50%;border-top:1px solid #82915f88;box-shadow:0 -2px 3px #74577d55}
.cell-oil i{position:absolute;bottom:9%;left:20%;width:7px;height:5px;border-radius:50%;background:#292332;border-top:1px solid #94a573;box-shadow:0 1px 2px #000}
.cell-oil i+i{left:65%;bottom:22%;width:5px;height:4px}
.cell-oil b{position:absolute;bottom:1px;right:2px;border:1px solid #6d7853;border-radius:3px;padding:1px 3px;background:#1e2420;color:#c6d290;font:bold 11px/1.1 monospace;z-index:1}
@keyframes fuse-glow{50%{opacity:.6;filter:drop-shadow(0 0 4px #ffaf3d)}}
@keyframes threat-pulse{50%{box-shadow:inset 0 0 12px #ff443680,0 0 5px #ff4436}}
@keyframes threat-critical{0%,100%{background:#ff291710;box-shadow:inset 0 0 7px #ff302650}50%{background:#ff29175c;box-shadow:inset 0 0 16px #ff3026a0,0 0 6px #ff3026}}
@keyframes detonator-flash{50%{filter:brightness(1.7) drop-shadow(0 0 3px #ff693c)}}
@keyframes danger-tremor{25%{translate:1px 0}75%{translate:-1px 0}}
.effects-preview.preview-motion .fuse-spark{animation:fuse-glow 1.4s ease-in-out infinite!important}
.effects-preview.preview-motion .danger-2{animation:threat-pulse 1s ease-in-out infinite!important}
.effects-preview.preview-motion .danger-1{animation:threat-critical .45s ease-in-out infinite!important}
.effects-preview.preview-motion .danger-1 .detonator{animation:detonator-flash .3s steps(2,end) infinite!important}
.effects-preview.preview-motion .tile:has(.danger-1) .resource-sprite{animation:danger-tremor .16s linear infinite!important}
@media(prefers-reduced-motion:reduce){.cell-bomb,.cell-bomb *,.tile:has(.danger-1) .resource-sprite,.effects-preview.preview-motion .cell-bomb,.effects-preview.preview-motion .cell-bomb *,.effects-preview.preview-motion .tile:has(.danger-1) .resource-sprite{animation:none!important}}

.tile:has(.cell-clamp){cursor:not-allowed}
/* Battle hierarchy: enemy, board, thumb-accessible party. */
.battle-main .board{width:min(100%,max(240px,calc(100dvh - 460px)));margin:10px auto 0}
.battle-main .skills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0 0}
.skills .c0{--hero-color:#ef4444}.skills .c1{--hero-color:#22c55e}.skills .c2{--hero-color:#eab308}.skills .c3{--hero-color:#38bdf8}
.battle-main .skills button{display:flex;flex-direction:column;position:relative;border:1px solid var(--hero-color);border-radius:8px;background:linear-gradient(150deg,#303638,#14191c);box-shadow:inset 0 1px #ffffff25,0 3px 7px #0007;opacity:1;min-height:148px;padding:0}
.battle-main .skills .dual-affinity{border:1px solid transparent;background:linear-gradient(#252c30,#151a1d) padding-box,linear-gradient(90deg,#ef4444 0%,#ef4444 35%,#38bdf8 65%,#38bdf8 100%) border-box}
.battle-main .hero-portrait{display:block;width:100%;height:72px;background:linear-gradient(135deg,#343a3a,#151b1d);overflow:hidden}
.battle-main .skills .hero-portrait svg{display:block;width:100%;height:100%;opacity:1}
.battle-main .hero-name{display:flex;align-items:center;gap:2px;width:100%;padding:4px 3px 1px;min-height:24px}
.battle-main .hero-name b{flex:1;min-width:0;font-family:'Barlow Condensed',Arial,sans-serif;font-size:12px;line-height:15px;padding:0;text-align:left}
.battle-main .skills .affinity-badges{position:static;flex-shrink:0;gap:1px;padding:0;background:none}
.battle-main .skills .affinity{width:16px;height:16px;border-radius:50%;background:#0b1013;border:1px solid #5b6262;padding:1px}
.battle-main .skills .hero-hp{font-size:9px;margin:2px 0;color:#d0dcc6}
.battle-main .skills .health{flex:none;margin:2px 5px 4px;width:calc(100% - 10px);height:3px}
.battle-main .skills .hero-charge{display:block;width:100%;margin-top:auto;padding:0 5px 5px}
.battle-main .skills .hero-charge small{font:10px/13px ui-monospace,monospace;color:#d2d4cd;margin:0 0 3px}
.battle-main .skills .charge{height:4px;border-radius:2px}.battle-main .skills .charge i{background:var(--hero-color);box-shadow:0 0 5px var(--hero-color)}
.battle-main .skills .dual-affinity .charge i{background:linear-gradient(90deg,#ef4444,#38bdf8)}
.skills .targeted::after{display:none}
.battle-main .skills .targeted::before{display:none}
.sniper-mark{position:absolute;top:6px;right:4px;width:23px;height:23px;border-radius:50%;background:#170c0bc9;color:#ef4444;filter:drop-shadow(0 0 4px #ef4444);animation:sniper-alert 1s ease-in-out infinite;z-index:3}
.battle-main .skills .sniper-mark svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2}
@keyframes sniper-alert{50%{filter:drop-shadow(0 0 7px #ef4444);opacity:.65}}
.battle-main .skills .ready{box-shadow:0 5px 12px #efb63738,inset 0 1px #ffffff25}
.ultimate-action{display:flex;align-items:center;justify-content:center;width:100%;min-height:30px;margin-top:auto;background:linear-gradient(#ffd879,#e4a32b);color:#211708;font:bold 12px 'Barlow Condensed',Arial,sans-serif;box-shadow:0 -2px 10px #ffcb4b40}
.battle-main .skills .fallen{opacity:.4;filter:grayscale(1)}
@media(max-width:360px){.battle-main{padding-inline:10px}.battle-main .hero-name{flex-wrap:wrap;justify-content:center}.battle-main .hero-name b{flex-basis:100%;text-align:center}.battle-main .skills{gap:4px}}
@media(prefers-reduced-motion:reduce){.sniper-mark{animation:none}}
.battle-main .enemy{position:relative;padding:8px 10px}
.battle-main .enemy .vehicle{display:none}
.battle-main .enemy h2{font-size:20px;margin:3px 0}
.battle-main .board{width:min(100%,max(240px,calc(100dvh - 510px)))}
/* Keep the enemy visible without pushing the party below the viewport. */
.battle-main .enemy .vehicle{display:block;position:absolute;top:7px;right:10px;width:100px;height:44px;pointer-events:none}
.battle-main .enemy>small,.battle-main .enemy h2{padding-right:105px}
.battle-main .enemy h2{min-height:24px;font-size:18px}
.trap-coach{position:fixed;inset:0;margin:auto;width:min(350px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:22px;background:linear-gradient(145deg,#303334,#171c1f);color:#e8e3d7;border:1px solid #a58b54;border-radius:14px;box-shadow:0 20px 70px #000b;text-align:center}
.trap-coach::backdrop{background:#060a0dd9}
.trap-coach>small{font-size:9px;letter-spacing:2px;color:#c9ad78}
.trap-coach h2{margin:14px 0 8px;font-size:28px}
.trap-coach p{font-size:13px;line-height:1.65;color:#d0cec5;margin:0 0 20px}
.trap-coach .coach-sample{display:grid;grid-template-columns:1fr;width:90px;height:90px;padding:8px;margin:18px auto 0;pointer-events:none}
.trap-coach .tile{width:100%;height:100%}
.trap-coach .primary{border-radius:7px;min-height:46px}
.header-controls select{max-width:82px;min-height:34px;background:#1c2426;color:#d7d7cf;border:1px solid #485150;border-radius:5px;font:11px Inter,Arial,sans-serif;padding:4px}
header:has([data-language]){gap:8px;padding-inline:12px}header:has([data-language]) strong{font-size:19px}
header:has([data-language]) .header-controls{gap:5px}header:has([data-language]) small{letter-spacing:1px;font-size:7px}
.squad-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.squad-heading h1{font-size:28px;margin:5px 0 0}.squad-heading>span{font:18px 'Barlow Condensed',sans-serif;color:#bfa47b}
.squad-dock{position:sticky;top:-20px;z-index:12;background:#121619f5;padding:10px 0;border-bottom:1px solid #54503d;backdrop-filter:blur(8px)}
.squad-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.squad-slot{position:relative;min-width:0;padding:0 0 7px;border-radius:8px;background:#20272a;border:1px solid #596362;overflow:hidden}
.squad-slot>svg{display:block;width:100%;height:72px}.squad-slot>b{display:block;font:600 12px 'Barlow Condensed',sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 2px}
.slot-number{position:absolute;top:4px;left:4px;background:#101719e8;border:1px solid #717566;border-radius:3px;min-width:17px;padding:1px;font:11px monospace;color:#d7c4a1}
.slot-meta{display:flex;gap:4px;justify-content:center;align-items:center;font-size:9px;color:#abae9e}.slot-meta .affinity{width:14px;height:14px}.slot-meta .affinity-badges{gap:1px}
.squad-slot.slot-selected{border:2px solid #edbd66;background:#383024;box-shadow:0 0 12px #edbd6630}.squad-slot.slot-selected .slot-number{background:#edbd66;color:#201c17}
.squad-instruction{font-size:12px;line-height:1.5;margin:10px 0 0;color:#bbb8aa;min-height:36px}.squad-instruction strong{color:#efc27a}.squad-cancel{padding:4px 0;border:0;background:none;text-decoration:underline;color:#a9aba5;font-size:11px;margin-top:5px}
.roster-card{display:flex;gap:10px;padding:12px 10px;margin:8px 0;background:linear-gradient(120deg,#252c2d,#1a2023);border:1px solid #414b4b;border-radius:9px}
.roster-portrait{width:60px;flex-shrink:0}.roster-portrait>svg{width:60px;height:66px;border-radius:5px}.roster-portrait .affinity-badges{justify-content:center;margin-top:4px}.roster-portrait .affinity{width:18px;height:18px}
.roster-info{flex:1;min-width:0}.roster-title{display:flex;gap:6px;align-items:center;justify-content:space-between}.roster-title h2{font-size:20px;margin:0}.roster-title small{font-size:9px;color:#aaa58f;white-space:nowrap}
.roster-status{font-size:10px;color:#bcaa79}.roster-info p{font-size:11px;line-height:1.5;margin:6px 0 10px}.roster-actions{display:flex;gap:5px;align-items:center}.roster-actions button{padding:8px 6px;font-size:10px;min-height:36px}.roster-actions .equip-action{flex:1;background:#b98c42;color:#15191b;font-weight:600;border-color:#d1a458}.roster-actions button:disabled{opacity:.45;cursor:default}.roster-actions small{font-size:10px;color:#a8a48f}.roster-locked .roster-portrait{filter:grayscale(.9);opacity:.5}.squad-battle-note{font-size:11px;border-left:2px solid #b89552;padding-left:8px}.squad-notice{font-size:12px;color:#d3b77a}
@media(max-width:360px){.squad-slot>svg{height:60px}.roster-card{padding:9px 7px;gap:8px}.roster-portrait,.roster-portrait>svg{width:46px}.roster-title h2{font-size:18px}}

.battle-main .skills .charge{height:8px;border-radius:3px}.battle-main .skills .hero-charge{padding:9px 5px 7px}

/* Compact camp: every fighter appears once, shared inspection below. */
.squad-main{padding:10px 14px;overflow:hidden}
.squad-grid-screen{height:100%;display:flex;flex-direction:column;gap:9px;min-height:0}
.squad-grid-screen .squad-heading{margin:0;flex:none}.squad-grid-screen .squad-heading h1{font-size:25px;margin:3px 0 0}
.squad-grid-screen section>h2{font:600 12px 'Barlow Condensed',sans-serif;letter-spacing:1px;color:#a6afa9;margin:0 0 6px;display:flex;justify-content:space-between}
.token-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.reserve-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.squad-token.c0{--token:#ef4444}.squad-token.c1{--token:#22c55e}.squad-token.c2{--token:#eab308}.squad-token.c3{--token:#38bdf8}
.squad-token{position:relative;min-width:0;padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--token) 55%,#3b4243);border-radius:8px;background:radial-gradient(ellipse at 50% 110%,color-mix(in srgb,var(--token) 25%,transparent),transparent 65%),#20272a;box-shadow:inset 0 1px #ffffff20,0 3px 6px #0005}
.token-portrait{display:block;height:72px}.token-portrait>svg{display:block;width:100%;height:100%}.squad-token>b{display:block;padding:6px 1px;font:600 14px 'Barlow Condensed',Arial,sans-serif;white-space:nowrap}
.token-level{position:absolute;top:4px;left:3px;font:9px/14px ui-monospace,monospace;background:#11181ce8;border:1px solid #667064;border-radius:3px;padding:0 3px;z-index:2;color:#e0dfcf}.token-level i{font-style:normal;color:#80e596;margin-left:2px}
.squad-token .affinity-badges{position:absolute;right:3px;top:4px;display:flex;flex-direction:column;gap:2px}.squad-token .affinity{width:18px;height:18px;border-radius:50%;background:#101719;border:1px solid #7c8178;padding:1px}
.squad-token.legend-token{border-color:#c6a269;background:radial-gradient(ellipse at 50% 110%,#bd9d514d,transparent 65%),#25272a}
.squad-token.inspected{border-color:#ffe09a;outline:1px solid #ffe09a;outline-offset:1px;box-shadow:0 0 13px #e9b65d50}.squad-token.locked-token .token-portrait{filter:grayscale(.8);opacity:.5}.token-lock{position:absolute;bottom:29px;left:5px;font-size:12px}
.rotation-hint{font-size:11px;line-height:1.35;min-height:15px;margin:0;color:#d2b783}
.fighter-dossier{margin-top:auto;padding:12px;border-radius:10px;border:1px solid #756343;background:linear-gradient(140deg,#302d25,#1b2327);flex:none}
.dossier-title{display:flex;justify-content:space-between;align-items:center;gap:6px}.dossier-title h2{font:600 24px 'Barlow Condensed',sans-serif;margin:0}.dossier-title>span{font:11px monospace;color:#cfb57f}
.dossier-stats{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:5px;font-size:11px}.dossier-stats b{color:#c7dfba}.dossier-stats small{width:100%;font-size:10px;color:#b1b9b3}
.dossier-ability{font-size:11px;line-height:1.4;color:#c9cdc7;margin:8px 0}.dossier-ability strong{font-weight:500;white-space:nowrap;color:#d9bd86}
.dossier-actions{display:flex;gap:6px;align-items:stretch}.dossier-actions button{flex:1;padding:9px 4px;font-size:10px;font-weight:700;min-height:38px}.upgrade-action{background:#435d42;border-color:#6c9061;color:#edf5dd}.recruit-action{background:#d8a349;border-color:#f3c877;color:#1c201c}.dossier-actions>span{flex:1;align-self:center;text-align:center;font-size:10px;color:#afb9a6}.dossier-actions button:disabled{opacity:.4}.upgrade-gain{display:block;font-size:10px;color:#98ad90;margin-top:5px}.dossier-battle-note{display:block;font-size:9px;line-height:1.3;margin-top:5px;color:#bfa773}
.awaiting-recruit .squad-token{animation:recruit-pulse 1s ease-in-out infinite}@keyframes recruit-pulse{50%{border-color:#ffe09a;box-shadow:0 0 12px #e9b65d70}}
@media(max-height:760px){.squad-grid-screen{gap:7px}.token-portrait{height:56px}.squad-token>b{font-size:13px;padding:5px 1px}.fighter-dossier{padding:9px}.dossier-title h2{font-size:21px}.squad-grid-screen .squad-heading h1{font-size:22px}.squad-main{padding-block:8px}}
@media(max-height:670px){.squad-grid-screen{gap:5px}.token-portrait{height:46px}.squad-token>b{padding:4px 1px}.squad-grid-screen .eyebrow{display:none}.fighter-dossier{padding:8px}.dossier-ability{margin:5px 0}.dossier-actions button{padding:6px 3px;min-height:32px}.dossier-title h2{font-size:19px}.rotation-hint{font-size:10px}.token-level{font-size:8px;padding:0 2px}.squad-main{padding-inline:10px}}
@media(prefers-reduced-motion:reduce){.awaiting-recruit .squad-token{animation:none;outline:1px solid #ffe09a}}
@media(min-height:800px){.squad-grid-screen .token-portrait{height:92px}.squad-grid-screen{gap:12px}}
@media(max-height:620px){#app:has(.squad-main)>header{padding-block:8px}#app:has(.squad-main)>header strong{font-size:15px}#app:has(.squad-main)>header small{display:none}.squad-grid-screen{gap:4px}.squad-grid-screen section>h2{margin-bottom:4px}.squad-grid-screen .squad-heading h1{font-size:19px}.squad-main .dossier-stats{gap:2px 8px}.squad-main .dossier-ability{font-size:10px;line-height:1.3}.squad-main .dossier-title h2{font-size:18px}.squad-main .upgrade-gain{margin-top:3px}.squad-main .token-portrait{height:42px}}
.fighter-portrait-art{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.fighter-dossier:has(.dossier-full-art){position:relative;padding-right:110px;min-height:185px}
.dossier-full-art{position:absolute;right:5px;bottom:8px;top:8px;margin:auto;height:calc(100% - 16px);width:98px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 5px #0008)}
.fighter-dossier:has(.dossier-full-art) .dossier-actions{flex-wrap:wrap}.fighter-dossier:has(.dossier-full-art) .dossier-actions>span{flex-basis:100%}
.battle-main .enemy.has-scene{padding:0;overflow:hidden;display:flex;flex-direction:column}
.battle-main .enemy.has-scene>small{display:none}.battle-main .enemy.has-scene h2{padding:6px 10px;margin:0;font-size:17px;min-height:0}
.enemy-scene{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;display:block}
.battle-main .enemy.has-scene .sectionline{padding:0 10px;margin:5px 0}.battle-main .enemy.has-scene>.bar{margin:0 10px 7px}
.battle-main:has(.enemy-scene) .board{width:min(100%,max(235px,calc(100dvh - 590px)));}
@media(max-height:700px){.fighter-dossier:has(.dossier-full-art){padding-right:83px;min-height:0}.dossier-full-art{width:74px}.fighter-dossier:has(.dossier-full-art) .dossier-actions>span{display:none}}
.battle-main .enemy.has-scene h2{position:absolute;top:0;left:0;right:0;z-index:1;background:linear-gradient(#0e131be6,#0e131b10);text-shadow:0 1px 3px #000;padding:7px 10px 16px;pointer-events:none}
.battle-main:has(.enemy-scene) .hero-portrait{height:60px}.battle-main:has(.enemy-scene) .skills button{min-height:132px}
/* Close-combat composition: keep masks and raised weapons in view. */
.enemy-scene{object-fit:cover;object-position:50% 40%;aspect-ratio:16/9}
.battle-main .enemy.has-scene h2{top:auto;bottom:34px;padding:12px 10px 5px;background:linear-gradient(transparent,#0e131bdd)}
/* Economy: compact resource ledger and readable stage readiness. */
.squad-totals{display:grid;justify-items:end;gap:4px;white-space:nowrap}.squad-totals small{color:#eac473;font-weight:800}
.token-cards{display:block;font-size:10px;line-height:15px;color:#d6c7a5;margin:0 2px 3px}
.power-good{color:#74d98a}.power-close{color:#e6be60}.power-low{color:#ef7770}
.squad-power{font-weight:800;color:#eac473;margin:8px 0}
.tile.c4{--glow:#c8ab63;--led:#e8c879;--tint:rgba(200,171,99,.35)}
.tile.c4 .resource-art{width:85%;height:85%}
.map-power{font-weight:800;color:#eac473;margin:0 0 10px}
.board[data-board-view="3"] .tile.c4{--slot-marker:200,171,99;--slot-glow:.35}
.tile.c4 .resource-sprite{width:85%;height:85%}
.crate-ledger{display:flex;gap:8px;align-items:center;font-size:11px;color:#baa884;margin-top:8px}.crate-ledger button{margin-left:auto;font-size:11px;padding:6px 10px}
.crate-rewards{box-sizing:border-box;width:min(360px,calc(100vw - 28px));max-height:90dvh;overflow:auto;border:1px solid #aa8950;border-radius:16px;background:linear-gradient(140deg,#282b25,#121819);color:#e9e2d4;padding:22px;text-align:center;box-shadow:0 20px 80px #000b}.crate-rewards::backdrop{background:#050909c9;backdrop-filter:blur(4px)}.crate-rewards h2{font-size:30px;margin:6px 0}.crate-rewards>small{color:#d6b878;letter-spacing:2px;font-size:10px}.crate-rewards p{font-size:12px;color:#babbaa;line-height:1.5}.crate-reward-icon{height:100px;display:grid;place-items:center;background:radial-gradient(ellipse,#a98c3e33,transparent 65%)}.crate-reward-icon img{width:115px;height:100px;filter:drop-shadow(0 8px 8px #0009)}.crate-bolts{display:flex;align-items:center;justify-content:space-between;border:1px solid #79633d;border-radius:8px;padding:13px;background:#99712a19;margin:14px 0 10px}.crate-bolts strong{font-size:26px;color:#f4c86d}.crate-card-list article{display:flex;align-items:center;gap:14px;padding:12px;background:#111819;border:1px solid #4e6751;border-radius:8px;text-align:left;margin:8px 0}.crate-card-list article div{display:grid;gap:5px}.crate-card-list b{font-size:20px}.crate-card-list span{font-size:12px}.crate-card-list small{font-size:11px;color:#adc29c}.crate-card-list .crate-card-symbol{font-size:35px}.crate-rewards .primary{width:100%;border-radius:8px;margin-top:5px}.crate-saved{font-size:11px!important}
.crate-preview{display:block;overflow:auto;min-height:100vh;background:#101516}.crate-preview>main{max-width:880px;margin:0 auto;padding:24px;overflow:visible}.crate-preview>main>small{display:block;margin-top:20px;letter-spacing:2px;color:#bd9e66}.crate-preview h1{margin:10px 0}.crate-preview h2{font-size:22px}.crate-preview p{font-size:13px;line-height:1.6;color:#c0bdaf}.crate-preview a{color:#e1b96f}.crate-demo-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.crate-preview .board{width:100%;margin:20px 0}.crate-preview .demo-neighbor{outline:2px solid #f5c876;box-shadow:0 0 12px #e5a63466!important}.crate-preview .demo-crate{outline:2px solid #94b776}.crate-example{width:100%;max-height:none;box-shadow:none}.crate-preview details{margin:24px 0;padding:15px;border:1px solid #4c5146;border-radius:8px}@media(max-width:600px){.crate-demo-columns{grid-template-columns:1fr}.crate-preview>main{padding:18px}}
.crate-card-portrait{width:58px;height:68px;object-fit:cover;border:1px solid #82764c;border-radius:5px}
.loot-flyout,.loot-crate-shard{position:fixed;z-index:1100;pointer-events:none}.loot-flyout{display:flex;align-items:center;gap:8px;padding:8px 12px;background:linear-gradient(#30352c,#141b18);border:1px solid #c5a15c;border-radius:9px;color:#ffe1a0;box-shadow:0 0 18px #edbd4d55,0 5px 18px #0008;max-width:235px}.loot-flyout.bolts{font-size:23px}.loot-flyout.card img{width:45px;height:49px;object-fit:cover;border-radius:4px}.loot-flyout.card b{display:block;font-size:15px}.loot-flyout.card small{display:block;color:#c4d4b0;margin-top:4px;font-size:11px}.crate-ledger{position:relative}.loot-history:not([hidden]){display:grid;gap:5px;position:absolute;right:0;bottom:36px;max-height:180px;overflow:auto;z-index:25;background:#141c19;border:1px solid #8d7544;padding:12px;border-radius:8px;box-shadow:0 6px 18px #0008}.loot-history span{white-space:nowrap}
/* Fallen fighters remain legible, but all resource/ultimate lighting is off. */
.battle-main .skills button.fallen,
.battle-main .skills button.fallen.dual-affinity{
 --hero-color:#555b5b;border:1px solid #414646;background:#171c1d;
 box-shadow:none;filter:grayscale(1);opacity:.7;animation:none;cursor:default;
}
.battle-main .skills button.fallen .hero-portrait{background:#131718;opacity:.45}
.battle-main .skills button.fallen .hero-name,
.battle-main .skills button.fallen .hero-hp{color:#969c99}
.battle-main .skills button.fallen .affinity-badges{opacity:.35}
.battle-main .skills button.fallen .bar{background:#282e2e}
.battle-main .skills button.fallen .bar i{width:0!important;background:#555b5b}
.battle-main .skills button.fallen *,
.battle-main .skills button.fallen::before,
.battle-main .skills button.fallen::after{box-shadow:none!important;text-shadow:none!important;animation:none!important}
.battle-main .skills button.fallen .hero-charge small{color:#a3aaa6;font-size:9px;letter-spacing:1px}
/* Dossier v2: meaningful card goals and a continuous, two-column inspection panel. */
.squad-main{overflow-y:auto}.squad-grid-screen{height:auto;min-height:100%;gap:8px}
.squad-grid-screen .token-portrait{height:64px}.squad-token>b{padding:4px 1px}
.card-meter{display:block;height:3px;border-radius:2px;background:#343d38;overflow:hidden;margin:3px 7px 6px}.card-meter i{display:block;height:100%;background:#a7be84;border-radius:inherit}
.token-tier{display:block;color:#edc16d;font-size:10px;font-weight:800;line-height:22px}.token-cards{margin-bottom:0;line-height:13px}
.fighter-dossier.dossier-v2:has(.dossier-full-art){display:grid;grid-template-columns:minmax(0,64fr) minmax(0,36fr);padding:0;margin-top:0;min-height:280px;overflow:hidden;flex:1;background:linear-gradient(110deg,#232b29,#121818);border-color:#7b704f}
.dossier-details{padding:12px 10px;min-width:0;position:relative;z-index:1}.dossier-v2 .dossier-title{justify-content:flex-start;align-items:center;gap:5px;flex-wrap:wrap}.dossier-v2 .dossier-title h2{font-size:26px;line-height:1.05}.dossier-v2 .dossier-level{display:inline-block;padding:4px 6px;border:1px solid #747d70;border-radius:4px;background:linear-gradient(#414944,#252d2a);font:9px ui-monospace,monospace;color:#e0dfc9;white-space:nowrap}
.dossier-resource{display:flex;align-items:center;gap:5px;font-size:10px;color:#b8ccb7;margin:7px 0}.dossier-resource .affinity-badges{flex:none}.dossier-resource .affinity{width:18px;height:18px}.dossier-resource>span{line-height:1.2}
.dossier-stat-tiles{display:grid;grid-template-columns:1fr 1fr;gap:5px}.dossier-stat-tiles>div{border:1px solid #444f44;background:#10191788;border-radius:5px;padding:7px 6px;font-size:9px;color:#b1b9ab}.dossier-stat-tiles b{display:block;font-size:17px;white-space:nowrap;color:#eee9d9;margin-top:3px}.dossier-stat-tiles em{font-size:12px;color:#8ee1a2;font-style:normal}
.dossier-card-status{font-size:11px;margin-top:9px;padding:8px;background:#10171688;border:1px solid #485345;border-radius:5px}.dossier-card-status .card-meter{margin:6px 0;height:4px}.dossier-card-status small{display:block;font-size:10px;line-height:1.35;color:#bac6ae}.premium-status b{color:#edc16d;display:block;margin-bottom:5px}
.dossier-v2 .dossier-ability{font-size:11px;margin:8px 0;line-height:1.3}.dossier-v2 .dossier-actions{display:flex;flex-direction:column;gap:5px}.dossier-v2 .dossier-actions button{flex:auto;font-size:10px;line-height:1.4;min-height:36px;border-radius:5px;padding:8px 5px}.dossier-v2 .dossier-actions button:disabled{opacity:1;background:#29342d;border-color:#465145;color:#a9b7a9;cursor:default}.dossier-v2 .resource-short{color:#ff977c!important}.dossier-v2 .upgrade-action small{display:block;font-size:10px;color:#ffb493;margin-top:3px;font-weight:500}.dossier-v2 .dossier-actions>.in-squad-label{display:block;flex-basis:auto;padding-top:3px;font-size:10px}.dossier-max{font-size:12px;color:#d6c087;padding:8px 0}
.dossier-figure{position:relative;min-width:0;overflow:hidden;background:#000;border-left:1px solid #38423b;display:flex;align-items:center}.dossier-v2 .dossier-full-art{position:static;inset:auto;display:block;margin:0;width:100%;height:100%;max-height:390px;object-fit:contain;filter:none}
@media(max-height:760px){.squad-grid-screen{gap:6px}.squad-grid-screen .token-portrait{height:48px}.dossier-details{padding:9px 8px}.dossier-v2 .dossier-title h2{font-size:23px}.dossier-v2 .dossier-ability{font-size:10px;margin:6px 0}.dossier-card-status{margin-top:6px;padding:6px}.dossier-stat-tiles>div{padding:5px}.dossier-v2 .dossier-actions button{min-height:32px;padding:6px 4px}}
@media(max-height:670px){.squad-grid-screen .token-portrait{height:40px}.squad-grid-screen{min-height:0}.fighter-dossier.dossier-v2:has(.dossier-full-art){min-height:260px}}
.squad-grid-screen .token-portrait{height:56px}.dossier-details{padding:9px 10px}.dossier-card-status{padding:6px;margin-top:7px}.dossier-v2 .dossier-ability{font-size:10px;line-height:1.3;margin:6px 0}.dossier-v2 .dossier-actions button{padding:7px 5px}
/* Fit the full vertical figure; crop black side margins, not head or boots. */
.dossier-v2 .dossier-full-art{position:absolute;left:50%;top:0;right:auto;bottom:auto;transform:translateX(-50%);width:auto;max-width:none;height:100%;max-height:none;object-fit:contain}
@media(max-height:760px){.squad-grid-screen .token-portrait{height:46px}.dossier-details{padding:8px}}
@media(max-height:670px){.squad-grid-screen .token-portrait{height:38px}}
/* Dossier v3: intact full-body on the left, compact details on the right. */
.squad-grid-screen{min-height:0}
.fighter-dossier.dossier-v2:has(.dossier-full-art){--dossier-inset:10px;grid-template-columns:minmax(0,44fr) minmax(0,56fr);grid-template-rows:auto auto 1fr;grid-template-areas:"identity details" "meta details" "figure details";flex:0 0 auto;min-height:260px;height:auto;background:#080a0c;overflow:hidden}
.dossier-v2 .dossier-figure{grid-area:figure;border:0;background:transparent;min-height:0;overflow:visible;align-self:stretch}
.dossier-v2 .dossier-full-art{position:absolute;inset:0;transform:none;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;object-fit:contain;object-position:center bottom;mix-blend-mode:lighten}
.dossier-v2 .dossier-details{grid-area:details;padding:10px 9px 10px 3px;display:flex;flex-direction:column;justify-content:flex-start;gap:7px}
.dossier-v2 .dossier-title{grid-area:identity;min-width:0;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:4px 6px;padding:var(--dossier-inset) 3px 6px var(--dossier-inset);text-align:left}
.dossier-v2 .dossier-title h2{font-family:'Raid Condensed',sans-serif;font-size:22px}
.dossier-heading-meta{grid-area:meta;display:flex;align-items:center;align-self:start;gap:4px 5px;flex-wrap:wrap;padding:0 3px 4px var(--dossier-inset)}
.dossier-heading-meta .affinity-badges{display:flex;gap:3px}.dossier-heading-meta .affinity{width:17px;height:17px}
.dossier-v2 .dossier-stat-tiles>div{padding:5px 4px;font-size:9px}.dossier-v2 .dossier-stat-tiles b{font-size:15px;margin-top:2px}.dossier-v2 .dossier-stat-tiles em{font-size:11px}
.dossier-v2 .dossier-card-status{display:block;padding:0;margin:0;border:0;border-radius:0;background:none;font-size:10px;line-height:1.4;color:#bec8b6}.dossier-v2 .dossier-card-status>div{display:inline}.dossier-v2 .dossier-card-status b{display:inline;margin:0}.card-status-note{color:#a8b09f}.dossier-v2 .dossier-ability{margin:0;font-size:10px;line-height:1.35;color:#c6c9c1}
.dossier-v2 .dossier-actions{gap:4px}.dossier-v2 .dossier-actions button{min-height:32px;padding:6px 4px;font-size:10px}.dossier-v2 .dossier-actions>.in-squad-label{padding-top:0;line-height:14px}
.squad-grid-screen .token-portrait{height:auto;aspect-ratio:1;overflow:hidden}.squad-grid-screen .reserve-grid .token-portrait{aspect-ratio:4/3}.squad-grid-screen .token-portrait .fighter-portrait-art{object-fit:cover;object-position:center 18%}
@media(max-width:360px){
 .fighter-dossier.dossier-v2:has(.dossier-full-art){--dossier-inset:8px}
 .dossier-v2 .dossier-title{column-gap:4px;padding-right:1px}
 .dossier-v2 .dossier-title h2{font-size:18px}
 .dossier-v2 .dossier-details{padding-right:7px;gap:6px}
 .dossier-v2 .dossier-stat-tiles b{font-size:14px}
 .dossier-v2 .dossier-level{font-size:8px;padding:3px 4px}
}
.dossier-v2 .dossier-actions{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:4px;min-width:0;width:100%}
.dossier-v2 .dossier-actions button{width:100%;min-width:0;box-sizing:border-box}.dossier-v2 .dossier-actions>.in-squad-label{justify-self:center;white-space:nowrap}
.fighter-dossier.dossier-v2:has(.dossier-full-art) .dossier-actions>.in-squad-label{display:block;grid-column:1;justify-self:center;flex-basis:auto}
/* Let the action dock grow for upgrade, supplies and reserve recruitment. */
.fighter-dossier.dossier-v2:has(.dossier-full-art){height:auto;min-height:0;max-height:none}
.dossier-v2 .dossier-details{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;min-height:0;padding-top:var(--dossier-inset);padding-bottom:10px}
.dossier-copy{display:flex;flex-direction:column;gap:7px;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#465044 transparent}
.dossier-v2 .dossier-actions{grid-template-rows:none;grid-auto-rows:auto;gap:6px;align-content:end;align-self:end;height:auto;margin:0}
.dossier-v2 .dossier-actions>*{min-width:0;width:100%;height:auto;min-height:34px;margin:0;box-sizing:border-box}
.dossier-v2 .dossier-actions button{height:auto;min-height:34px;max-height:none;padding:7px 6px;display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1.25}
.dossier-v2 .dossier-actions .upgrade-action{min-height:50px}
.dossier-title .in-squad-label{display:inline-flex;align-items:center;border:1px solid #415b49;border-radius:4px;padding:3px;background:#17251d;color:#9acfa9;font:600 10px/1.2 'Raid Condensed',sans-serif;white-space:nowrap}
.dossier-v2 .dossier-actions .dossier-max{display:grid;place-items:center;padding:0}
.fighter-dossier.dossier-v2:has(.dossier-full-art) .dossier-actions>.in-squad-label{grid-row:2;display:grid;place-items:center;align-self:stretch;justify-self:stretch;padding:0;height:34px;width:100%}
.dossier-v2 .dossier-details{grid-template-columns:minmax(0,1fr)}
.dossier-v2 .dossier-actions{justify-self:stretch;grid-column:1;max-width:100%}
header strong{color:#e7e7e2}header strong span{color:#f59e0b}
.raid-map{padding:12px 14px}
.layered-enemy{position:relative;isolation:isolate;width:100%;aspect-ratio:16/7;overflow:hidden;background:#161a18}.layered-enemy img{display:block;position:absolute}.scene-background{inset:0;width:100%;height:100%;object-fit:cover;filter:blur(.6px) saturate(.8)}.scene-vehicle{width:78%;height:100%;object-fit:contain;right:0;bottom:-5%;filter:drop-shadow(0 10px 8px #000b)}.scene-raiders{position:absolute;inset:0;z-index:2;display:flex;justify-content:center;align-items:end}.scene-raiders img{position:relative;width:42%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 7px 5px #0009)}.scene-raiders.count-1 img{width:60%}.scene-raiders.count-3 img{width:34%;height:90%;margin-inline:-3%}.scene-raiders.count-3 img:nth-child(2){height:100%;z-index:1}.scene-dust{position:absolute;inset:0;background:linear-gradient(0deg,#b29b7355,transparent 35%),linear-gradient(90deg,#0b101745,transparent 70%);z-index:3;pointer-events:none}
.raid-banner{position:relative;overflow:hidden;border:1px solid #5a5543;border-radius:9px;height:112px;margin-bottom:10px}.raid-banner .raid-landscape{display:block;width:100%;height:100%;object-fit:cover;object-position:center 62%;filter:saturate(.85) brightness(.9)}
.sector-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.sector-tabs button{padding:7px 3px;min-width:0;text-align:left;border-radius:6px;background:#191f20}.sector-tabs b{font-size:10px;display:block;white-space:nowrap}.sector-tabs small{display:block;font-size:9px;line-height:1.3;color:#a2aaa1;margin-top:4px}.selected-sector{border-color:#dcaa4c!important;background:#382e1c!important}.fury-tab{display:block;width:100%;text-align:left;font-size:10px;margin:7px 0;padding:7px 9px;border-radius:5px}.stage-list{display:grid;gap:6px}.raid-mission{margin:0;min-height:74px;padding:8px 9px;gap:8px;align-items:center}.raid-mission:disabled{opacity:.68}.raid-mission .number{font-size:23px;min-width:27px}.stage-info{flex:1;min-width:0}.stage-info>b{font-size:14px;display:block;line-height:1.2}.stage-badges{display:flex;flex-wrap:wrap;gap:3px 5px;margin:4px 0}.stage-badges small{font-size:8px;border:1px solid #424a42;border-radius:3px;padding:1px 3px;line-height:1.3;color:#c1c9b7}.stage-footer{display:flex;justify-content:space-between;gap:4px;flex-wrap:wrap}.stage-footer small{font-size:9px;line-height:1.2}.stage-state{font-size:12px}.endless-card{margin-top:12px;padding:16px;background:#1c2524;border:1px solid #63583b;border-radius:8px}.endless-card>p:first-child{margin-top:0}.endless-card>strong{color:#eac47b}.endless-card p{font-size:12px;line-height:1.5}.endless-card .primary{width:100%;font-size:12px}
.squad-token.legend-token .token-tier{position:absolute;top:25px;left:4px;font-size:8px;line-height:12px;background:#18160fe8;padding:1px 3px;border-radius:3px}
@media(max-height:740px){.raid-map{padding:8px 12px}.raid-banner{height:80px;margin-bottom:7px}.raid-mission{min-height:67px;padding:6px 8px}.sector-tabs button{padding-block:5px}.stage-list{gap:4px}}
.raid-mission .stage-footer .power-good{color:#74d98a}.raid-mission .stage-footer .power-close{color:#e6be60}.raid-mission .stage-footer .power-low{color:#ef7770}
.voice-option{border:1px solid #5e624f;border-radius:8px;background:#17201d;padding:16px;margin:14px 0}.voice-option>small{color:#d0b574}.voice-option h2{margin:6px 0}.voice-option button{font-size:12px;margin-bottom:4px}.voice-option [aria-pressed="true"]{border-color:#d4b267;color:#f4d397}
/* Compact, consistent header controls and readable campaign navigation. */
header:has([data-language]) .header-controls{gap:10px;flex-shrink:0}
.header-controls .language-control,.header-controls [data-mute]{height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:#1b2023;display:inline-flex;align-items:center;justify-content:center;margin:0}
.header-controls .language-control{position:relative;width:51px;font-size:11px;font-weight:700}
.language-control summary{display:grid;place-items:center;width:100%;height:100%;list-style:none;cursor:pointer}
.language-control summary::-webkit-details-marker{display:none}
.language-control summary[aria-disabled="true"]{opacity:.5;cursor:default}
.language-control .language-menu{position:absolute;top:calc(100% + 5px);right:-1px;z-index:3;display:grid;gap:2px;width:150px;padding:4px;background:#181d20;border:1px solid #525751;border-radius:7px;box-shadow:0 6px 16px #0009}
.header-controls .language-menu button{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;min-height:40px;color:#e4e6de;background:transparent;border:0;font:600 13px/1.25 Arial,sans-serif}
.header-controls .language-menu button[aria-pressed="true"]{color:#ffd17b;background:#342b1e}
.language-menu button:focus-visible,.language-control summary:focus-visible{outline:2px solid #f59e0b;outline-offset:-2px}

.header-controls [data-mute]{width:36px;min-width:36px;padding:7px;color:#d7dce0}
.ui-icon{width:20px;height:20px;display:inline-block;flex-shrink:0;vertical-align:middle}

.raid-map .raid-banner{margin-bottom:14px}
.sector-tabs{gap:10px}
.fury-tab{margin-top:12px}

.raid-mission .stage-footer{align-items:center}
.raid-mission .stage-footer .stage-reward{display:inline-flex;align-items:center;gap:4px;margin-left:auto;color:#f59e0b;font-size:14px;font-weight:750;white-space:nowrap}
.stage-reward .ui-icon{width:17px;height:17px}
@media(max-width:360px){header:has([data-language]) strong{font-size:16px}header:has([data-language]){padding-inline:8px}}
.match-sound-test{margin:6px 0 10px;color:#bab8a9;font-size:11px}.match-sound-test summary{cursor:pointer}.match-sound-test>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.match-sound-test select,#match-choice{max-width:100%;min-width:0;background:#1b2023;color:#e3dbc9;border:1px solid #61604e;border-radius:6px;padding:7px;font-size:11px}.match-sound-test button{font-size:11px;padding:6px}.match-sound-test a{align-self:center;color:#e5b25e}

/* Same name/resource rows for every fighter, including dual-resource legends. */
.battle-main .skills .hero-name{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:15px 16px;justify-items:center;align-items:center;gap:2px;height:38px;min-height:38px;flex:none;padding:3px 2px 2px}
.battle-main .skills .hero-name b{display:block;width:100%;font-size:12px;line-height:15px;white-space:nowrap;text-align:center;overflow:hidden;text-overflow:ellipsis;margin:0}
.battle-main .skills .hero-name .affinity-badges{display:flex;position:static;gap:3px;height:16px;margin:0;padding:0;justify-content:center}
.battle-main .skills .hero-name .affinity{width:16px;height:16px;flex:0 0 16px}
/* Staged enemy silhouettes, shared by the preview and actual combat. */
 .composed-scene{--car-x:51%;--car-width:51%;--car-bottom:18%}
.composed-scene.layout-solo{--car-x:57%;--car-width:49%;--car-bottom:18%}
.composed-scene.layout-trio{--car-x:51%;--car-width:55%;--car-bottom:20%}
.composed-scene.vehicle-veh_dozer{--car-width:61%;--car-bottom:18%}
.composed-scene.vehicle-veh_guntruck{--car-width:56%;--car-bottom:18%}
.composed-scene .scene-vehicle-rig{position:absolute;left:var(--car-x);bottom:var(--car-bottom);width:var(--car-width);aspect-ratio:16/9;transform:translateX(-50%)}
.composed-scene .scene-vehicle-rig .scene-vehicle{position:absolute;inset:0;width:100%;height:100%;max-width:none;transform:none;filter:saturate(.85) brightness(.9);object-fit:contain}
.composed-scene .scene-grounding{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:blur(.65px)}
.no-car .scene-vehicle-rig{visibility:hidden}
.composed-scene .scene-raiders{display:block}
.composed-scene .scene-raiders img{position:absolute;left:var(--person-x);bottom:var(--person-bottom);height:var(--person-height);width:auto;max-width:none;margin:0;transform:translateX(-50%);z-index:var(--person-z);filter:drop-shadow(0 3px 2px #0008)}
.composed-scene .scene-dust{background:linear-gradient(0deg,#a08b6326,transparent 22%);opacity:.65}
.battle-main .enemy.layered-card{padding:0;overflow:hidden}
.enemy.layered-card>small{display:none}
.enemy.layered-card h2{position:static;margin:0;padding:5px 9px;font-size:16px;line-height:20px}
.enemy.layered-card .sectionline{padding:0 9px;margin:5px 0}
.enemy.layered-card>.bar{margin:0 9px 7px}
.battle-main:has(.layered-card) .board{width:min(100%,max(235px,calc(100dvh - 590px)))}
.battle-main:has(.layered-card) .hero-portrait{height:60px}
.battle-main:has(.layered-card) .skills button{min-height:142px}
.battle-main:has(.layered-card) .skills{margin-top:6px}

/* Refinery pavement is below the pipework: seat the tires on the lower apron. */
.composed-scene.background-bg_refinery{--car-bottom:10%}
/* Separate the focal plane without changing approved composition or source art. */
.composed-scene .scene-background{filter:blur(1.1px) saturate(.55) brightness(.72) contrast(.9)}
.composed-scene .scene-vehicle-rig .scene-vehicle{filter:saturate(.7) brightness(.82) contrast(.94) blur(.2px)}
.composed-scene .scene-raiders img{filter:brightness(1.13) contrast(1.06) saturate(1.04) drop-shadow(0 -.6px .7px #c6e0e65c) drop-shadow(0 3px 2px #000b)}
.composed-scene .scene-depth{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#20364725,#172e402e 65%,transparent);pointer-events:none}
/* Wallet and the single Scrap counter live in the global header on every tab. */
.wallet-control{max-width:100%}
.wallet-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:7px 10px;border:1px solid #9b702c;border-radius:8px;background:#2b2418;color:#f2bd62;font:600 11px/1.2 Inter,Arial,sans-serif;white-space:nowrap;cursor:pointer;list-style:none}
.wallet-pill::-webkit-details-marker{display:none}.wallet-pill:focus-visible{outline:2px solid #f59e0b;outline-offset:2px}
.wallet-pill.connected{border-color:#435b49;background:#1b2621;color:#d4e2d7;font-variant-numeric:tabular-nums}
.wallet-dot{width:6px;height:6px;border-radius:50%;background:#72d795;box-shadow:0 0 6px #72d79533}.wallet-chevron{color:#92a797}
/* Keep the full address and actions inside the game header at every width. */
.wallet-menu{position:absolute;right:8px;top:calc(100% + 4px);z-index:2;width:min(240px,calc(100% - 16px));display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:10px;border:1px solid #53604f;border-radius:9px;background:#17201d;box-shadow:0 8px 24px #0009;white-space:normal}
.wallet-menu-network{font-size:9px;letter-spacing:1px;color:#d8ae64}.wallet-menu-address{font:10px/1.4 ui-monospace,monospace;overflow-wrap:anywhere;color:#b5c3b8;margin-bottom:3px}
.wallet-menu button{min-height:36px;font-size:11px;padding:7px;text-align:left}
#app>header{position:relative;z-index:50;flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 12px;padding:9px 12px;padding-top:max(9px,env(safe-area-inset-top))}
.header-account{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;min-width:0}
.header-wallet{min-width:0}
.header-account [data-bolts-counter]{display:inline-flex;align-items:center;gap:6px;height:34px;margin:0;padding:0 9px;border:1px solid #f59e0b55;border-radius:8px;background:#292217;color:#f59e0b;font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
.header-wallet-status{position:absolute;top:calc(100% + 4px);right:8px;z-index:1;width:max-content;max-width:calc(100% - 16px);pointer-events:none;white-space:normal;margin:0;padding:9px 11px;border:1px solid #74603b;border-radius:7px;background:#22241d;box-shadow:0 6px 18px #0007;color:#dfbf87;font:11px/1.4 Inter,Arial,sans-serif;overflow-wrap:anywhere}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.wallet-pill .cloud-status{display:inline-flex;align-items:center;border-left:1px solid #53634e;padding-left:6px;color:#e6b462}
.cloud-status svg{width:18px;height:18px;flex:none}
.wallet-pill .cloud-status-saved{color:#7cdea2}.wallet-pill .cloud-status-offline,.wallet-pill .cloud-status-expired,.wallet-pill .cloud-status-conflict{color:#ffa47c}
.wallet-menu-status{font-size:11px;line-height:1.4;color:#a8c4ac;margin:1px 0 5px}
.dossier-heading-meta .affinity{background:transparent;border:0;box-shadow:none}
@media(min-width:440px){
 #app>header{gap:7px 12px}
 .header-account{gap:12px}
 #app>header .header-controls{gap:6px}
 #app>header .header-controls .language-control{width:42px}
 #app>header .header-controls [data-mute]{width:32px;min-width:32px}
}
/* Premium actions share the dossier dock; no second framed purchase panel. */
.dossier-v2.dossier-nft .dossier-details{display:flex;flex-direction:column;gap:9px}
.dossier-nft .dossier-copy{flex:none;overflow:visible}
.dossier-nft .dossier-actions{height:auto;display:flex;flex-direction:column;gap:5px;margin-top:auto;align-self:stretch}
.fighter-dossier.dossier-nft .dossier-actions{flex-wrap:nowrap;align-content:stretch}
.dossier-nft .dossier-actions>*{height:auto;flex:none}
.dossier-nft .dossier-actions>button{height:auto;max-height:none;flex:none}
.dossier-nft .dossier-actions>.upgrade-action{min-height:50px}
.dossier-nft .dossier-actions>.recruit-action{min-height:34px}
.nft-shop{display:grid;gap:5px;min-width:0;width:100%;box-sizing:border-box}
.nft-shop p,.dossier-copy .nft-rule{margin:0;line-height:1.4}
.dossier-copy .nft-rule{font-size:10px;color:#e8bd70}
.nft-network{font-size:8px;font-weight:700;letter-spacing:.1em;color:#bca16f}
.nft-shop .nft-price{font-size:10px;color:#e3d8c4}.nft-price strong{font-weight:700;color:#f1d39e}.nft-fee{color:#a7b0aa}
.nft-buttons{display:flex;align-items:stretch;gap:5px}
.dossier-nft .nft-shop button{height:auto;min-height:38px;max-height:none;padding:7px 5px;line-height:1.25;font-size:10px;white-space:normal}
.nft-buttons [data-nft="buy"]{flex:1.5}.nft-buttons [data-nft="refresh"]{flex:1}
.dossier-nft .nft-shop button.primary{background:#e7a52d;border-color:#f1bc57;color:#191b17;font-weight:800}
.dossier-nft .nft-shop button:disabled{opacity:.55;cursor:default}
.nft-owned-row{display:flex;align-items:center;gap:6px;justify-content:space-between}.nft-owned{font-size:10px;color:#a1d9a9;white-space:nowrap;font-weight:700}
.dossier-nft .nft-owned-row button{width:auto;min-height:28px;font-size:9px;padding:4px 7px}
.nft-shop a{font-size:9px;color:#bcaa7d}.nft-status{font-size:10px;color:#c5c8b9;overflow-wrap:anywhere}.nft-status:empty{display:none}

.cloud-leaderboard{margin-top:16px}.leaderboard-mode{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:700;letter-spacing:2px;color:#e8aa32;font-size:12px}.leaderboard-count{color:#a5aa9e;font-size:11px}.leaderboard-empty{padding:20px 0;color:#d8c8a8;font-size:14px;line-height:1.6}.personal-rank{border-top:1px solid #637453;padding-top:8px}.cloud-leaderboard .wallet-heading h2{font-size:22px}.cloud-leaderboard .wallet-heading button{flex-shrink:0;font-size:11px}

/* Supplies use the existing account/dossier surfaces, with no shop tab. */
/* Supplies and daily rewards share one compact sheet. */
.header-account [data-bolts-counter] i{font-style:normal;border-left:1px solid #e8aa3255;padding-left:7px;font-size:19px}
.daily-drop,.get-supply{border:1px solid #b98931;color:#efb747;background:#292217;border-radius:7px;font-size:11px;padding:8px 11px}
.daily-drop{margin:0;white-space:nowrap;font-size:10px;line-height:1.2;padding:6px 8px;min-height:30px}
.daily-drop:disabled{color:#b7b1a2;border-color:#514b3e}
.dossier-v2 .dossier-actions .get-supply{align-self:stretch;margin:0;min-height:36px;font-size:11px}

.supply-sheet{box-sizing:border-box;width:min(460px,calc(100% - 20px));max-height:90dvh;overflow:auto;padding:18px;border:1px solid #b98931;border-radius:16px;background:#141819;color:#e9e5d9;text-align:left;margin:auto}
.supply-sheet::backdrop{background:#000b}
.supply-heading{display:flex;gap:12px;align-items:center;justify-content:space-between}
.supply-heading h2{font-size:27px;line-height:1;margin:0}
.supply-heading button{font-size:24px;min-width:36px;padding:4px;background:transparent}
.supply-subtitle{display:flex;align-items:flex-start;gap:8px;margin:12px 0}
.supply-subtitle .chain-badge{flex:none;padding:4px 5px;font-size:8px;line-height:1.3}
.supply-subtitle .wallet-note{margin:0;font-size:10px;line-height:1.45}
.supply-packs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.supply-pack{border:1px solid #57584c;border-radius:9px;padding:12px 10px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;grid-row:span 6;gap:8px;min-width:0}
.supply-pack>*{min-width:0}
.supply-pack h3{margin:0;font-size:21px;line-height:1.05;overflow-wrap:anywhere;hyphens:auto}
.supply-pack strong{font-size:16px;color:#edb747;line-height:1.4}
.supply-pack p{margin:0;font-size:12px;line-height:1.4}
.supply-pack>small{color:#adb4a8;font-size:10px;line-height:1.3}
.supply-pack>b{font-size:13px;line-height:1.4;margin-top:4px}
.supply-pack .primary{font-size:11px;padding:10px 5px;white-space:normal;min-height:42px;margin:0}
.supply-sheet .payment-status,.repair-offer .payment-status{margin:10px 0;padding:8px 10px;border-inline-start:2px solid #d9a64a;background:#25231c;color:#f0d39f}
.best-value{border-color:#b98931;background:#272218}.best-value>small{color:#c7e39a}
.supply-receipt{padding:14px;margin:14px 0 4px;border:1px solid #c6a057;border-radius:10px;background:linear-gradient(125deg,#343c25,#1b3026);box-shadow:inset 0 1px #e6c06b2b}
.supply-receipt-heading{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;margin-bottom:12px}
.supply-sheet .supply-receipt-heading [role=status]{flex:1 1 140px;font-size:14px;font-weight:700;line-height:1.3;margin:0;color:#e2edce}
.supply-receipt-heading>strong{display:inline-flex;align-items:center;gap:5px;font-size:23px;line-height:1.1;color:#ffd17c;white-space:nowrap}
.supply-receipt ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.supply-receipt li{min-width:0;display:flex;gap:8px;align-items:center;background:#0a191b75;border:1px solid #91ad7a38;border-radius:7px;padding:8px}
.supply-hero-portrait{display:block;width:36px;height:36px;flex:none;object-fit:cover;object-position:center 18%;border-radius:5px;border:1px solid #b49c62;filter:none}
.supply-hero-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.supply-hero-copy b{font-size:11px;line-height:1.3;overflow-wrap:anywhere;color:#f2eedc}.supply-hero-copy span{font-size:11px;color:#b4cea7;line-height:1.2}
.repair-offer{border:1px solid #b98931;background:#282217;padding:14px;border-radius:10px;margin:12px 0}
.repair-offer h3{font-size:19px;margin:0 0 8px;color:#edb747}.repair-offer p{font-size:11px;line-height:1.5}.repair-offer .primary{font-size:13px;width:100%}
.battle-result{max-height:90dvh;overflow:auto}.supply-sheet [role=status]{font-size:12px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:480px){.supply-sheet{margin:auto auto 10px;border-radius:16px 16px 10px 10px}}
@media(max-width:340px){.supply-sheet{padding:14px}.supply-packs{grid-template-columns:1fr}.supply-receipt ul{grid-template-columns:1fr}.daily-drop{font-size:9px;padding-inline:6px}}

/* One compact global bar; battle space belongs to the scene, board and squad. */
#app>header{height:calc(50px + env(safe-area-inset-top));min-height:calc(50px + env(safe-area-inset-top));display:flex;flex-wrap:nowrap;gap:6px;padding:6px 8px;padding-top:calc(6px + env(safe-area-inset-top))}
#app>header .app-brand{flex:1 1 auto;min-width:0;white-space:nowrap}
#app>header .app-brand strong{display:block;font-size:17px;line-height:19px;letter-spacing:-.35px}
#app>header .app-brand small{font-size:8px;line-height:10px;letter-spacing:0;margin:0 0 1px}
#app.in-battle>header .app-brand small{display:none}
#app>header .header-controls,#app>header .header-account{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;flex:none}
#app>header .header-account{grid-column:auto}
#app>header .wallet-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;height:34px;line-height:1;padding:0 12px;font-size:11px;gap:4px;color:#e8edf2}
#app>header .wallet-pill.connected{padding-inline:6px;font-size:9px}
#app>header .wallet-dot{width:4px;height:4px;flex:none}
#app>header .wallet-chevron{display:none}
#app>header .wallet-pill .cloud-status{padding-left:4px}
#app>header .cloud-status svg{width:12px;height:12px}
#app>header .header-controls .language-control{width:26px;height:34px;flex:none;font-size:9px;border-radius:6px}
#app>header .header-controls [data-mute]{width:26px;min-width:26px;height:34px;padding:5px;border-radius:6px}
#app>header .header-controls [data-mute] .ui-icon{width:16px;height:16px}
#app>header [data-bolts-counter]{height:34px;padding:0 6px;gap:4px;font-size:12px;border-radius:6px}
#app>header [data-bolts-counter] .ui-icon{width:15px;height:15px}
#app>header [data-bolts-counter] i{font-size:15px;padding-left:4px}
#app>nav{height:calc(54px + env(safe-area-inset-bottom));min-height:calc(54px + env(safe-area-inset-bottom));padding:0 0 env(safe-area-inset-bottom);gap:0}
#app>nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:0;padding:4px 0;font-size:9px;line-height:11px;letter-spacing:1.1px;border-top:2px solid transparent}
#app>nav .ui-icon{width:20px;height:20px;flex:none}
#app>nav .active{border-top-color:#f59e0b}
@media(max-width:360px){
 #app>header{padding-inline:6px;gap:4px}
 #app>header .app-brand strong{font-size:14px;line-height:16px;letter-spacing:-.4px}
 #app>header .app-brand small{display:none}
 #app>header .header-controls,#app>header .header-account{gap:4px}
 #app>header .wallet-pill{font-size:10px;gap:3px}
 #app>header .wallet-pill.connected{font-size:8px;padding-inline:4px}
 #app>header .header-controls .language-control{width:24px}
 #app>header .header-controls [data-mute]{width:24px;min-width:24px}
 #app>header [data-bolts-counter]{font-size:11px;padding-inline:4px;gap:3px}
}

/* Four rows fill a portrait viewport, with no log or navigation below the squad. */
#app.in-battle .battle-main{
 --party-height:clamp(158px,22dvh,204px);--enemy-min:132px;
 --board-size:min(calc(min(100vw,480px) - 16px),calc(100dvh - 50px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 62px - var(--party-height) - var(--enemy-min)));
 display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:28px minmax(var(--enemy-min),1fr) var(--board-size) var(--party-height);gap:6px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));overflow:hidden;min-height:0;
}
.battle-toolbar{display:flex;align-items:center;gap:5px;min-width:0;position:relative;z-index:5;color:#c4c7b9;font-size:9px;line-height:12px}
.battle-toolbar .battle-back{padding:5px 6px;border-color:#454b43;background:#1a211f;font-size:9px;line-height:14px;white-space:nowrap}
.battle-crates,.battle-loot>button{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.battle-crates{border:1px solid #474b3d;border-radius:4px;padding:5px;color:#c5b486}
.battle-loot{position:relative}.battle-loot>button{padding:5px;border-color:#474b3d;color:#d7b16e;font-size:9px;line-height:12px;background:#242319}
.battle-loot>button:disabled{opacity:.65}.battle-loot .ui-icon{width:12px;height:12px}
.battle-progress{margin-left:auto;text-align:right;display:inline-flex;align-items:center;flex:none;gap:4px;white-space:nowrap;font-size:12px;font-weight:700;line-height:1;letter-spacing:.04em;color:#d4d8dd}
.battle-sector-short{display:none}
@media(max-width:380px){.battle-sector-full{display:none}.battle-sector-short{display:inline}}
.battle-loot .loot-history{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;max-height:180px;overflow:auto;padding:10px;border:1px solid #7c6b44;border-radius:7px;background:#18201e;box-shadow:0 8px 25px #0009;color:#ead8ac;z-index:6}
.battle-loot .loot-history>span{display:block;margin:4px 0;font-size:11px}
.battle-loot .loot-history[hidden]{display:none}
#app.in-battle .enemy.layered-card{display:grid;grid-template-rows:minmax(0,1fr) 24px 4px;position:relative;min-width:0;min-height:0;margin:0;padding:0;overflow:hidden}
#app.in-battle .enemy.layered-card h2{position:absolute;inset:0 0 auto;z-index:4;padding:7px 9px 18px;margin:0;min-height:0;font-size:17px;line-height:19px;background:linear-gradient(#090d13c9,transparent);text-shadow:0 1px 5px #000;pointer-events:none}
#app.in-battle .enemy.layered-card .layered-enemy{grid-row:1;height:100%;min-height:0;aspect-ratio:auto}
#app.in-battle .enemy.layered-card .sectionline{grid-row:2;padding:0 9px;margin:0;min-height:0;font-size:9px;line-height:12px;gap:6px;align-items:center}
#app.in-battle .enemy.layered-card .sectionline b{font-size:10px;white-space:nowrap}
#app.in-battle .enemy.layered-card .sectionline>span{text-align:right;font-size:10px;line-height:1.2}
#app.in-battle .enemy.layered-card>.bar{grid-row:3;width:100%;height:4px;margin:0;border-radius:0}
#app.in-battle .board{width:var(--board-size);height:var(--board-size);min-width:0;min-height:0;max-width:100%;margin:0;justify-self:center;align-self:center;aspect-ratio:1;grid-template-rows:repeat(6,minmax(0,1fr));gap:3px;padding:6px}
#app.in-battle .skills{height:100%;min-height:0;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0}
#app.in-battle .skills button{height:100%;min-height:0;min-width:0;display:grid;grid-template-rows:70% 30%;padding:0;overflow:hidden;background:#090b0e;border:1px solid var(--hero-color);border-radius:8px;opacity:1;box-shadow:0 3px 8px #0007}
#app.in-battle .skills .hero-portrait{position:relative;display:block;width:100%;height:100%;min-height:0;overflow:hidden;background:#12171b}
#app.in-battle .skills .hero-portrait .fighter-portrait-art{width:100%;height:100%;display:block;object-fit:cover;object-position:center 22%;filter:none}
#app.in-battle .skills .hero-name{position:absolute;left:0;right:0;bottom:0;height:29px;min-height:0;display:flex;align-items:flex-end;justify-content:center;padding:10px 3px 4px;background:linear-gradient(to top,#090b0e 12%,#090b0ee6 52%,transparent)}
#app.in-battle .skills .hero-name b{width:100%;font:800 13px/15px Inter,Arial,sans-serif;color:#fff;text-shadow:0 1px 3px #000;margin:0;padding:0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app.in-battle .skills .affinity-badges{position:absolute;top:4px;right:4px;left:auto;display:flex;gap:2px;height:22px;margin:0;padding:0;background:none;z-index:2}
#app.in-battle .skills .affinity{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 22px;padding:2px;border-radius:50%;border:1px solid #8a92836b;background:#080d13df;box-shadow:0 2px 5px #0008}
#app.in-battle .skills .hero-vitals{display:grid;grid-template-rows:12px minmax(22px,24px);gap:3px;align-content:center;min-height:0;padding:3px 5px;background:#090b0e}
#app.in-battle .skills .hero-health{display:block;position:relative;width:100%;height:12px}
#app.in-battle .skills .hero-health .health{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;border-radius:3px;background:#172e22}
#app.in-battle .skills .hero-health .health i{display:block;height:100%;background:linear-gradient(90deg,#286b44,#459c61);box-shadow:none}
#app.in-battle .skills .hero-hp{position:absolute;inset:0;z-index:1;font:700 8.5px/12px Inter,Arial,sans-serif;color:#fff;text-shadow:0 1px 2px #000;margin:0;white-space:nowrap}
#app.in-battle .skills .hero-charge{position:relative;display:grid;place-items:center;width:100%;height:24px;min-height:22px;margin:0;padding:0;border:1px solid #4e5650;border-radius:4px;overflow:hidden;background:#131c20}
#app.in-battle .skills .hero-charge .charge{position:absolute;inset:0;width:100%;height:100%;margin:0;border-radius:0;background:transparent}
#app.in-battle .skills .hero-charge .charge i{display:block;height:100%;background:var(--hero-color);opacity:.5;box-shadow:none}
#app.in-battle .skills .hero-charge small{display:flex;align-items:center;justify-content:center;gap:3px;white-space:nowrap;z-index:1;position:relative;width:100%;margin:0;padding:0;font:700 10px/20px Inter,Arial,sans-serif;color:#dfe5de;text-align:center}
#app.in-battle .skills .ultimate-action{height:24px;min-height:22px;width:100%;display:flex;align-items:center;justify-content:center;gap:3px;padding:0;margin:0;border:1px solid #ffdf8d;border-radius:4px;background:linear-gradient(#ffda76,#efa72a);font:800 10px/22px 'Barlow Condensed',Arial,sans-serif;letter-spacing:.15px;color:#171c15;white-space:nowrap;box-shadow:0 0 12px #ffc34c55}
#app.in-battle .skills .ready{border-color:#ffd27b;box-shadow:0 0 10px #edac4340}
#app.in-battle .skills .fallen{opacity:1;filter:none;border-color:#404849;background:#090b0e;box-shadow:none}
#app.in-battle .skills .fallen .hero-portrait{filter:grayscale(1);opacity:.6}
#app.in-battle .skills .fallen .hero-charge small{font-size:8px;color:#a6aca7}
#app.in-battle .skills .sniper-mark{left:4px;right:auto;top:4px}
@media(max-height:700px){#app.in-battle .battle-main{--enemy-min:108px}}
@media(max-width:360px){.battle-toolbar{gap:4px;font-size:8px}.battle-toolbar .battle-back,.battle-loot>button{font-size:8px;padding-inline:4px}.battle-crates{padding-inline:4px}#app.in-battle .skills{gap:4px}#app.in-battle .skills .hero-name b{font-size:11px}#app.in-battle .skills .hero-vitals{padding-inline:3px}#app.in-battle .skills .hero-hp{font-size:8px}}

/* Fog stays behind the vehicle; the complete rig, including tire shadows, scales together. */
.composed-scene .scene-vehicle-rig{width:calc(var(--car-width) * 1.2);bottom:min(var(--car-bottom),8%);max-height:92%;z-index:1;opacity:1}
.composed-scene .scene-vehicle-rig .scene-vehicle{opacity:1;filter:saturate(1.03) brightness(1.05) contrast(1.16) drop-shadow(0 3px 2px #0008)}
.composed-scene .scene-depth{z-index:0}
.composed-scene .scene-dust{z-index:0;opacity:.2}

/* Victory: one trophy, a complete loot receipt, and a single primary action. */
.battle-result.victory{width:min(382px,calc(100vw - 24px));padding:18px 20px 16px;border:1px solid #ad8148;border-radius:18px;background:radial-gradient(ellipse at 50% 0,#b4772633,transparent 52%),linear-gradient(155deg,#202522,#0d1215 70%);box-shadow:inset 0 1px #ffe3ae33,inset 0 0 40px #0004,0 24px 90px #000d}
.victory-trophy{display:block;width:144px;height:144px;object-fit:contain;margin:-6px auto 0;filter:drop-shadow(0 3px 4px #0009) drop-shadow(0 0 16px #ef9b2d40)}
.victory .eyebrow{display:block;font-size:8px;line-height:12px;letter-spacing:1.5px;color:#d8b47d}
.battle-result.victory h2{font-size:40px;line-height:1;margin:7px 0 6px;letter-spacing:.015em;color:#fff3d9;text-shadow:0 2px 8px #0008}
.battle-result.victory #result-description{font-size:11px;line-height:16px;margin:0 0 16px;color:#b9c0b8}
.victory-loot{border:1px solid rgba(245,158,11,.28);border-radius:12px;padding:14px;background:radial-gradient(ellipse at 50% 0,#74502129,transparent 65%),linear-gradient(145deg,#13191b,#0a1013);box-shadow:inset 0 1px #ffe6b00d,0 5px 16px #0003}
.victory-total>span{display:block;font-size:9px;font-weight:700;line-height:13px;letter-spacing:.12em;color:#c9ae7c}
.victory-total strong{display:flex;align-items:center;justify-content:center;gap:10px;margin:3px 0 12px;font:800 52px/1 'Barlow Condensed',Arial,sans-serif;font-variant-numeric:tabular-nums;color:#ffc75f;text-shadow:0 2px 12px #f59e0b25}
/* Match the visible numeral center, which sits below this font's line-box center. */
.victory-total .ui-icon{width:31px;height:31px;flex:none;transform:translateY(3px);filter:drop-shadow(0 2px 4px #f59e0b25)}
.victory-breakdown{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #bca06a26;padding-top:10px}
.victory-breakdown>div{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.victory-breakdown>div+div{border-left:1px solid #bca06a26}
.victory-breakdown span{font-size:8px;line-height:12px;font-weight:600;letter-spacing:.07em;color:#9fa69b}
.victory-breakdown b{font-size:16px;line-height:20px;color:#e9debd;font-variant-numeric:tabular-nums}
.victory-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;text-align:left}
.victory-card{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:8px;padding:9px;border:1px solid #a78a503b;border-radius:8px;background:linear-gradient(135deg,#28302a,#151d20);box-shadow:inset 0 1px #ffffff08;min-width:0}
.victory-card:only-child{grid-column:1/-1}
.victory-card-portrait{width:48px;height:48px;overflow:hidden;border:1px solid #b6965c;border-radius:6px;background:#111a1b;box-shadow:0 2px 6px #0007}
.victory-card-portrait .fighter-portrait-art{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:none}
.victory-card-title{min-width:0;display:flex;flex-direction:column;gap:4px}
.victory-card-title b{font-size:14px;line-height:16px;color:#fff2da;overflow-wrap:anywhere}
.victory-card-title>span{font-size:10px;line-height:13px;color:#e5bd74}
.victory-card-progress{grid-column:1/-1;display:flex;flex-direction:column;gap:5px;min-width:0}
.victory-card-progress>span{font-size:10px;line-height:14px;color:#d1dacb;font-variant-numeric:tabular-nums}
.victory-card-progress .card-meter{height:4px;width:100%;margin:0;background:#070d0e;border:0}
.victory-card-progress .card-meter i{background:linear-gradient(90deg,#a27934,#f6c66c)}
.victory-card.new-recruit{border-color:#80b17b80}
.victory-card-progress>small{font-size:8px;font-weight:700;letter-spacing:.06em;color:#a2dda0}
.victory-actions{display:grid;gap:6px;margin-top:16px}
.battle-result.victory .primary{min-height:50px;padding:13px 8px;border:1px solid #ffce6f;border-radius:8px;background:linear-gradient(180deg,#ffcf70 0,#f4b43f 48%,#d99223 100%);box-shadow:inset 0 2px #fff3c67a,inset 0 -3px #9b5d214d,0 4px 0 #68451e,0 8px 18px #0007;color:#201b10;font-size:14px;font-weight:800;line-height:20px;letter-spacing:.06em}
.battle-result.victory .primary:active{transform:translateY(2px);box-shadow:inset 0 1px #fff3c67a,0 2px 0 #68451e,0 5px 12px #0007}
.victory-camp{justify-self:center;padding:9px 12px 0;border:0;background:none;color:#a9afa6;font-size:11px;line-height:16px}
.battle-result.victory .victory-repair-note{font-size:10px;line-height:15px;margin:12px 0 0;color:#afc8ac}
.battle-result.victory .victory-sync{font-size:11px;line-height:16px;margin:0 0 4px;color:#e6b86c}
@media(max-height:700px){.battle-result.victory{padding-top:12px}.victory-trophy{width:112px;height:112px}.battle-result.victory h2{font-size:36px}.battle-result.victory #result-description{margin-bottom:12px}}
@media(max-width:350px){.battle-result.victory{padding-inline:14px}.victory-loot{padding:10px}.victory-card{gap:6px;padding:7px}.battle-result.victory h2{font-size:30px}.victory-card-title b{font-size:12px;white-space:nowrap;overflow-wrap:normal}}

/* Campaign showroom: the same raiders, vehicles and supply crate as combat. */
.supply-crate-icon{display:inline-block;width:20px;height:20px;flex:0 0 20px;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 2px 2px #0008)}
.daily-drop{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding-block:4px}
.raid-map{
 /* Reserve the same four stage rows below the cover in both modes. */
 --map-gap:6px;--list-gap:5px;--stage-pad:clamp(4px,calc(4dvh - 22px),10px);--stage-info-gap:2px;
 --stage-height:calc(21px + 22px + 24px + 2 * var(--stage-info-gap) + 2 * var(--stage-pad) + 2px);
 --list-height:calc(4 * var(--stage-height) + 3 * var(--list-gap));
 --cover-height:clamp(80px,calc(100% - 50px - 40px - 3 * var(--map-gap) - var(--list-height)),238px);
 display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--cover-height) auto 40px auto;
 align-content:start;gap:var(--map-gap);padding:8px 12px;
}
.raid-map .raid-banner{--cover-glow:#d78d3855;height:auto;min-height:0;margin:0;border:1px solid #736044;border-radius:10px;isolation:isolate;background:#11191b;box-shadow:inset 0 1px #f7d69733,0 5px 15px #0005}
.raid-map .sector-cover-1{--cover-glow:#e96d325e;border-color:#795039}
.raid-map .sector-cover-2{--cover-glow:#93b97c40;border-color:#556853}
.raid-map .sector-cover-3{--cover-glow:#e65d4352;border-color:#784a40}
.raid-map .sector-cover-fury{--cover-glow:#d59a5066;border-color:#8a6c43}
.raid-map .raid-banner::after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,#0b1219e8 0,#0b1219a6 30%,transparent 64%),linear-gradient(0deg,#080d14c9,transparent 45%)}
.raid-map .raid-landscape{filter:saturate(.8) brightness(.75);object-position:center 60%}
.raid-cover-glow{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 76% 55%,var(--cover-glow),transparent 65%)}
.raid-cover-art{position:absolute;inset:0;z-index:2;pointer-events:none}
.raid-cover-vehicle{position:absolute;right:16%;bottom:1%;width:64%;height:83%;object-fit:contain;object-position:right bottom;filter:contrast(1.1) drop-shadow(0 7px 4px #000d)}
.raid-cover-leader{position:absolute;right:0;bottom:-32%;width:40%;height:110%;object-fit:contain;object-position:center bottom;filter:contrast(1.05) drop-shadow(-5px 3px 5px #000b) drop-shadow(0 0 5px var(--cover-glow))}
.raid-cover-tools{position:absolute;z-index:4;inset:7px 7px auto;display:flex;align-items:center;gap:5px}
.raid-cover-title{flex:1;min-width:0;margin:0;font:700 15px/1.08 'Barlow Condensed',Arial,sans-serif;color:#fff1d7;letter-spacing:.03em;text-shadow:0 1px 4px #000,0 1px 8px #000}
.raid-cover-title small{display:inline-block;font:700 10px/1.1 Inter,Arial,sans-serif;white-space:nowrap;color:#ebc48b}
.raid-squad-power,.raid-cover-boss{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid #ae8c535e;border-radius:5px;background:#101619df;color:#f3c370;line-height:1;white-space:nowrap}
.raid-squad-power{font-size:13px}.raid-squad-power small{font-size:8px}.raid-squad-power .ui-icon,.raid-cover-boss .ui-icon{width:14px;height:14px}
.raid-cover-boss{position:absolute;z-index:4;left:8px;bottom:8px;letter-spacing:.07em;font-size:11px}
.raid-cover-tools .daily-drop{min-height:30px;padding:3px 7px;color:#ffcf7f;background:#211b10f2}
.raid-cover-tools .daily-drop:disabled{opacity:1;color:#d2c5ad;background:#171b1ded}
.raid-map .sector-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.raid-map .sector-tabs>button{min-width:0;position:relative;display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:8px clamp(3px,1vw,6px);border:1px solid #41494d;border-top:2px solid #657074;border-radius:6px;background:linear-gradient(160deg,#2a3235,#141a1e 70%);box-shadow:inset 0 1px #ffffff0b,0 2px 5px #0004;text-align:left}
.raid-map .sector-tabs .selected-sector{border-color:#8e6c36!important;border-top-color:#f59e0b!important;background:linear-gradient(155deg,#413522,#1c2020 80%)!important;box-shadow:inset 0 1px #ffda8b24,0 0 12px #f59e0b10}
.sector-label{display:flex;align-items:center;justify-content:space-between;gap:2px;font-size:8px;line-height:12px;letter-spacing:.08em;color:#acb6b7;white-space:nowrap}
.sector-label .ui-icon{width:11px;height:11px;color:#859196}
.raid-map .sector-tabs b{display:block;margin-top:2px;font:600 clamp(12px,3.6vw,15px)/1.12 'Raid Condensed',sans-serif;white-space:normal;overflow-wrap:anywhere;color:#e3e8e3}
.raid-map .sector-tabs .selected-sector .sector-label{color:#efc980}
.raid-map .sector-tabs .selected-sector b{color:#fff1d0}
.raid-map .fury-tab{position:relative;overflow:hidden;display:flex;align-items:center;gap:9px;height:40px;min-height:0;width:100%;margin:0;padding:7px 11px 7px 17px;border:1px solid #59605b;border-radius:6px;background:repeating-linear-gradient(135deg,#ffffff03 0 1px,transparent 1px 6px),linear-gradient(110deg,#30332d,#171e22 75%);box-shadow:inset 0 1px #d0cfaa14,0 2px 6px #0005}
.raid-map .fury-tab::before{content:'';position:absolute;inset:0 auto 0 0;width:6px;border-right:1px solid #b49a5c55;background:repeating-linear-gradient(135deg,#ac823c 0 5px,#1b2427 5px 10px)}
.raid-map .fury-tab.selected-sector{border-color:#b08945!important;background:repeating-linear-gradient(135deg,#ffffff03 0 1px,transparent 1px 6px),linear-gradient(110deg,#413829,#202726)!important}
.fury-mark{display:flex;color:#e4b363}.fury-mark .ui-icon{width:25px;height:25px}
.fury-tab>b{font:700 17px/20px 'Barlow Condensed',Arial,sans-serif;letter-spacing:.07em;color:#e7e3d7;white-space:nowrap}
.fury-tab>.ui-icon{width:12px;height:12px;color:#9aa9aa}
.fury-record{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid #817b625c;border-radius:4px;color:#ecce91;background:#131819;font-size:11px;font-weight:750;white-space:nowrap}
.fury-record .ui-icon{width:12px;height:12px}
.raid-map .stage-list{gap:var(--list-gap)}
.raid-map .raid-mission{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:9px;padding:var(--stage-pad) 8px;margin:0;min-height:0;position:relative;overflow:hidden;border:1px solid #434a4b;border-radius:8px;background:linear-gradient(115deg,#252b2c,#141a1f 68%);box-shadow:inset 0 1px #ffffff09,0 3px 8px #0004}
.raid-map .raid-mission span{margin:0;color:inherit}
.raid-map .raid-mission small{margin:0;line-height:1.2}
.raid-map .raid-mission:disabled{opacity:1}
.raid-map .raid-mission.current-mission{border-color:#b38945;background:linear-gradient(115deg,#393226,#191e20 68%);box-shadow:inset 3px 0 #e5ab43,inset 0 1px #f8c57020,0 3px 12px #0005}
.raid-map .raid-mission.boss-mission{border-color:#935b43;background:radial-gradient(ellipse at 0 50%,#833b2638,transparent 65%),linear-gradient(115deg,#2c2724,#1b1a1d);box-shadow:inset 0 1px #eab35f19,0 0 12px #c766341c}
.raid-map .raid-mission.boss-mission.current-mission{border-color:#d49a47;box-shadow:inset 3px 0 #e5ab43,0 0 14px #d67a3233}
.raid-map .mission-art{position:relative;width:68px;height:68px;display:block}
.mission-preview{display:block;position:relative;width:68px;height:68px;overflow:hidden;border:1px solid #6a7473;border-radius:5px;clip-path:polygon(0 0,87% 0,100% 13%,100% 100%,0 100%);background:#0c1214}
.mission-preview img{position:absolute;display:block;pointer-events:none}
.mission-landscape{inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6) saturate(.6)}
.mission-vehicle{width:93px;height:53px;object-fit:contain;right:-23px;bottom:0;filter:drop-shadow(0 2px 2px #000)}
.mission-raider{width:74px;height:99px;object-fit:contain;left:-19px;bottom:-25px;filter:contrast(1.1) drop-shadow(3px 1px 3px #000b)}
.mission-preview::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#080d12b3,transparent 45%)}
.raid-map .mission-art .number{position:absolute;left:3px;bottom:2px;min-width:0;padding:0 3px;font:700 16px/19px 'Barlow Condensed',Arial,sans-serif;color:#f7dcaa;text-shadow:0 1px 3px #000}
.raid-map .current-mission .mission-preview{border-color:#cba259}
.raid-map .boss-mission .mission-preview{border-color:#a56f4c}
.raid-map .locked-mission .mission-preview{filter:saturate(.7) brightness(.82)}
.raid-map .stage-info{display:flex;flex-direction:column;gap:var(--stage-info-gap);min-width:0}
.raid-map .mission-title{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0}
.mission-title>b{font:700 20px/21px 'Barlow Condensed',Arial,sans-serif;color:#ede9db;min-width:0}
.raid-map .locked-mission .mission-title>b{color:#c7ceca}
.raid-map .raid-mission .boss-badge{display:inline-flex;align-items:center;gap:3px;border:1px solid #a46c444d;border-radius:3px;padding:2px 4px;font-size:8px;line-height:10px;font-weight:700;letter-spacing:.06em;color:#efbd80;background:#44291e70;flex:none}
.boss-badge .ui-icon{width:12px;height:12px}
.raid-map .mission-details{display:flex;align-items:center;flex-wrap:wrap;gap:2px 5px;min-width:0}
.raid-map .mechanic-badge,.raid-map .mission-supply{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 5px;border:1px solid #434a47;border-radius:5px;background:#101517;white-space:nowrap}
.mechanic-badge>.ui-icon{width:16px;height:16px}
.mechanic-armor>.ui-icon{color:#94a3b8}.mechanic-chains>.ui-icon{color:#f59e0b}.mechanic-bombs>.ui-icon{color:#ef4444}.mechanic-oil>.ui-icon{color:#91a778}
.raid-map .mission-supply{gap:3px;color:#e5c48a;font-size:11px;font-weight:700}.mission-supply>.ui-icon{width:16px;height:16px}
.raid-map .mission-footer{display:flex;align-items:center;gap:5px;min-width:0}
.raid-map .mission-footer .mission-power{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:800;line-height:1;white-space:nowrap}
.mission-power>.ui-icon{display:block;width:15px;height:15px}
.raid-map .mission-power.power-good{color:#93cda0}.raid-map .mission-power.power-close{color:#ddba75}.raid-map .mission-power.power-low{color:#d5917d}
.raid-map .raid-mission .mission-reward{display:inline-flex;align-items:center;gap:3px;margin-left:auto;color:#e4b664;font-size:12px;font-weight:700;white-space:nowrap}
.mission-reward>.ui-icon{width:13px;height:13px}
.raid-map .stage-action{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:24px;flex:none;padding:3px 7px;border-radius:4px;font-size:12px;line-height:14px;font-weight:800;white-space:nowrap}
.stage-action>.ui-icon,.endless-card .primary>.ui-icon{width:12px;height:12px}
.raid-map .raid-mission .raid-action{color:#231d11;background:linear-gradient(#f5c76a,#dba03c);border:1px solid #efc477;box-shadow:inset 0 1px #ffe5a880,0 2px 3px #0006;letter-spacing:.06em}
.raid-map .raid-mission .replay-action{margin-left:auto;padding-inline:5px;border:1px solid #64736666;background:#28362d70;color:#c9dfc5;font-size:12px;font-weight:700}
.replay-action>.ui-icon:last-child{color:#e4b664}
.raid-map .raid-mission .locked-action{color:#839298;padding:3px}
.raid-map .locked-action>.ui-icon{width:16px;height:16px}
.raid-map .endless-card{margin-top:0;border:1px solid #716249;background:radial-gradient(ellipse at 100% 0,#85602f33,transparent 70%),linear-gradient(135deg,#242a29,#121a1f);box-shadow:inset 0 1px #d3c59512}
.endless-card .primary{display:inline-flex;align-items:center;justify-content:center;gap:4px}
.raid-map:lang(ru) :is(.raid-cover-title,.raid-cover-title small,.sector-tabs b,.mission-title>b,.fury-tab>b){
 font-family:'Raid Condensed','Arial Narrow',sans-serif;
}
.raid-map:lang(ru) .raid-cover-title{font-size:13px;font-weight:650;letter-spacing:.01em}
.raid-map:lang(ru) .sector-tabs>button{padding-inline:clamp(3px,1vw,6px)}
.raid-map:lang(ru) .sector-tabs b{font-size:clamp(11.5px,3.2vw,14px);line-height:1.12}
@media(max-width:360px){.raid-map{padding-inline:8px}.raid-map .sector-tabs{gap:3px}.raid-map .sector-tabs>button{padding-inline:3px}.raid-squad-power{gap:2px;padding-inline:4px}.raid-cover-tools{gap:3px}.raid-cover-title{font-size:13px}}
@media(max-width:340px){
 .raid-map:lang(ru) .sector-tabs{gap:2px}
 .raid-map:lang(ru) .sector-tabs>button{padding-inline:2px}
 .raid-map:lang(ru) .sector-tabs b{font-size:11px;letter-spacing:-.02em}
}
@media(max-height:720px){
 .raid-map{--map-gap:4px;--list-gap:4px;--stage-pad:2px;--stage-info-gap:1px;padding-block:5px}
}

/* Fury Road instrument panel */
.ranking{--brass:#eab863;--steel:#9fa8a7;color:#e9e7dc}
.rank-heading,.rank-board header,.rank-card footer,.rank-driver{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rank-heading{justify-content:space-between;margin-bottom:10px;border-bottom:2px solid #705d40}
.rank-heading h1{font-size:clamp(22px,6vw,32px);line-height:1;margin:6px 0 10px;letter-spacing:.04em}
.rank-heading>span,.rank-stats small,.rank-board header small{color:var(--steel);font:700 10px/1.2 monospace;letter-spacing:.06em}
.rank-card,.rank-board{border:1px solid #65645c;background:#191c1e;box-shadow:inset 0 1px #97928355,0 3px 8px #0004}
.rank-card{background:repeating-linear-gradient(125deg,#ffffff03 0 1px,transparent 1px 4px),linear-gradient(115deg,#363735,#16191b 75%);border-top:3px solid #938263}
.rank-stats{display:grid;grid-template-columns:1.1fr .75fr 1.15fr;padding:13px 0}
.rank-stats>div{min-width:0;padding:0 clamp(6px,2vw,16px);border-right:1px solid #646256}
.rank-stats>div:last-child{border:0}
.rank-stats small{display:block;line-height:16px}
.rank-stats strong{display:block;margin-top:4px;color:#ffe6ac;font:700 clamp(16px,4.4vw,21px)/1.2 Arial,sans-serif;font-variant-numeric:tabular-nums}
.rank-stats .rank-km{display:flex;align-items:baseline;gap:4px}
.rank-card footer{padding:7px 10px;font-size:12px;background:#101315;border-top:1px solid #484942;color:#bbbfbc;gap:5px}
.rank-card .rank-guest{justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:10px}
.rank-guest button{flex:none}.rank-guest .rank-save-state{line-height:1.35}
.ranking button{min-height:32px;padding:5px 9px;border:1px solid #6b6658;border-radius:3px;background:#292c2b;color:#efe5d0;font-size:12px;font-weight:700}
.ranking button:focus{outline:none}.ranking button:focus-visible{box-shadow:0 0 0 2px #181a19,0 0 0 4px #ffd185}
.rank-board{margin-top:12px;padding:10px}
.rank-board header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border-bottom:1px solid #494a43;padding:0 0 9px}
.rank-board header h2{margin:0;font:700 16px/1.2 Arial,sans-serif;letter-spacing:.03em}
.rank-board header small{display:block;margin:4px 0 0;letter-spacing:.025em}
.rank-board [data-wallet="refresh"]{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.rank-board [data-wallet="refresh"] svg{width:15px;height:15px;flex:none}
.rank-list{list-style:none;margin:0;padding:0}
.rank-list li{--metal:#666d70;display:grid;grid-template-columns:minmax(28px,auto) minmax(0,1fr) auto auto;align-items:center;gap:clamp(4px,1.4vw,12px);border-left:3px solid var(--metal);border-bottom:1px solid #373b3b;padding:9px 6px;background:linear-gradient(100deg,#ffffff06,transparent 48%);font:600 clamp(11px,2.7vw,14px)/1.3 monospace}
.rank-list [data-place="1"]{--metal:#efc25d}.rank-list [data-place="2"]{--metal:#c4ced4}.rank-list [data-place="3"]{--metal:#d49669}
.rank-number{color:var(--metal)}.rank-driver{gap:3px 5px}.rank-driver b{overflow-wrap:anywhere}
.rank-you,.rank-goliath{font:800 9px/1.4 monospace;padding:1px 4px;color:#171a17;background:#8ad2ac}.rank-goliath{background:#dfbc72}
.rank-distance{color:#ffdda0;background:#373227;padding:4px}.rank-points{color:#c3c8c6;text-align:right}
.rank-list .own-rank{background-color:#24332b}.rank-break{text-align:center;color:#bfaa83;letter-spacing:5px}
.rank-empty{display:grid;justify-items:center;text-align:center;padding:20px 10px;background:radial-gradient(ellipse at center,#353026,transparent 68%)}
.rank-emblem{display:block;width:clamp(130px,36vw,168px);height:98px;object-fit:contain}
.rank-empty p{font-weight:650;margin:12px 0 14px}
.rank-empty button{display:inline-flex;justify-content:center;align-items:center;padding:12px 24px;background:#d8ae62;color:#201b14;font-weight:800;letter-spacing:.05em}
.rank-card a{color:var(--brass)}
.rank-distance{font-size:clamp(13px,3.6vw,17px);white-space:nowrap}

/* Squad inventory and fighter dossier */
.squad-main{container-type:inline-size}
.squad-grid-screen{height:100%;display:grid;align-content:start;grid-template-rows:max-content repeat(2,minmax(min-content,calc(25cqw + 4.8em))) max-content max-content}
/* Spend spare height on portraits; keep names, descriptions and actions at their natural size. */
.squad-grid-screen>.active-zone,.squad-grid-screen>.reserve-zone,
.squad-grid-screen .squad-token{display:flex;flex-direction:column}
.squad-grid-screen .token-grid{flex:1;min-height:0}
.squad-grid-screen .token-portrait,.squad-grid-screen .reserve-grid .token-portrait{width:100%;aspect-ratio:auto;min-height:44px;flex:1;position:relative}
.squad-grid-screen .token-portrait .fighter-portrait-art{position:absolute;inset:0}
.squad-grid-screen .squad-token>b,.squad-grid-screen .token-cards,
.squad-grid-screen .rotation-hint{flex:none}
.squad-token .token-cards{display:flex;align-items:center;justify-content:center;gap:4px;height:20px;margin:0;padding:0 0 2px;color:#d6c7a5;font:600 11px/14px Arial,sans-serif;font-variant-numeric:tabular-nums}
.token-cards{--label-icon-size:16px}

.upgrade-cost .ui-icon,.victory-card-progress .ui-icon,.supply-hero-copy .ui-icon,.crate-summary .ui-icon{width:16px;height:16px;vertical-align:middle}
.dossier-ultimate{padding:8px;border:1px solid #404640;border-left:2px solid #b79353;border-radius:4px;background:#171d1f}
.dossier-ultimate h3{display:flex;align-items:center;gap:4px;margin:0 0 4px;font:700 10px/1.3 Arial,sans-serif;letter-spacing:.045em;color:#ecc17a}
.dossier-ultimate h3 .ui-icon{width:15px;height:15px}
.dossier-ultimate p{margin:0;color:#e1e5e2;font:400 12px/1.4 Arial,sans-serif}
.dossier-v2 .dossier-actions .upgrade-action{flex-flow:row wrap;gap:5px 8px;min-height:46px;font-size:13px;font-weight:800}
.upgrade-label,.upgrade-cost,.upgrade-cost b{display:inline-flex;align-items:center;justify-content:center;gap:4px}
.upgrade-cost{flex-wrap:wrap}.upgrade-cost b{padding:3px 6px;border-radius:4px;background:#20282b;color:#d4e2ed;border:1px solid #526069;font:700 13px/1.2 Arial,sans-serif;white-space:nowrap}
.upgrade-cost .cost-bolts{color:#ffc461;border-color:#75613e}
.upgrade-cost .resource-short{background:#451f20;border-color:#9e5048}
.dossier-v2 .dossier-actions .get-supply{flex-direction:row;gap:6px}
@media(max-height:800px){
 .squad-grid-screen{gap:4px}
 .squad-grid-screen section>h2{margin-bottom:3px}
 .squad-grid-screen .squad-token>b{padding-block:2px}
 .fighter-dossier.dossier-v2:has(.dossier-full-art){--dossier-inset:7px}
 .squad-grid-screen .dossier-details{padding-block:var(--dossier-inset);gap:5px}
 .squad-grid-screen .dossier-copy,.squad-grid-screen .dossier-actions{gap:4px}
 .squad-grid-screen .dossier-ultimate{padding:5px}
 .dossier-v2 .dossier-actions:has(.get-supply):has(.recruit-action){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .dossier-v2 .dossier-actions .upgrade-action,.dossier-v2 .dossier-actions .nft-shop{grid-column:1/-1}
}

.icon-label{display:inline-flex;align-items:center;justify-content:center;gap:var(--label-gap,3px);vertical-align:middle;max-width:100%;text-align:center}
.icon-label>.ui-icon,.icon-label>.supply-crate-icon{display:block;flex:none;width:var(--label-icon-size,1.4em);height:var(--label-icon-size,1.4em);object-fit:contain}
/* Align the visible height of digits and capitals with the icon. */
.icon-label-text{display:block;min-width:0;text-align:center;line-height:1.2;text-box:trim-both cap alphabetic}
.battle-back{--label-gap:2px;--label-icon-size:12px}
.battle-back .ui-icon{transform:rotate(180deg)}
.battle-crates{--label-icon-size:16px}
.enemy-attack-readout{display:flex;align-items:center;justify-content:center}
.enemy-attack-readout .ui-icon,.combat-hit-label .ui-icon{color:#b4c3cb}
.combat-hit-label .ui-icon,.loot-flyout .ui-icon{width:14px;height:14px;vertical-align:middle}
.hero-charge,.ultimate-action,.battle-loot>button{--label-icon-size:12px}
.hero-charge .ui-icon{color:#efbd64}
.loot-history .ui-icon,.loot-flyout .ui-icon{color:#f3b552}
