/* One stable two-thumb deck, shared by pointer and keyboard input. */
.combat-deck { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:16px 48px 50px 60px; gap:6px; }
.combat-deck .actions { display:contents!important; }
.thumb-label { font-size:10px; color:#74634b; letter-spacing:1px; align-self:center; }
.left-thumb { grid-column:1/7; }.right-thumb { grid-column:7/13; text-align:right; }
.combat-deck .movement { position:static; grid-column:1/7; grid-row:3; display:grid; gap:4px; z-index:auto; }
.combat-deck .movement button { min-width:0; min-height:48px; font-size:14px; border-radius:12px; padding:4px; }
.combat-deck .movement button.danger { background:#fae1d4; border:2px solid #c05649; color:#8e302a; }
.combat-deck .movement button.danger::after { content:'!'; margin-left:3px; }
.combat-deck .movement button.opening { background:#f6dc88; border:2px solid #bd8c24; color:#644411; }
.combat-deck .movement button.selected { box-shadow:inset 0 -4px 0 #314d2e55; }
.combat-deck .action { min-width:0; min-height:0; margin:0; padding:5px; border-radius:12px; display:grid; grid-template-columns:26px minmax(0,1fr); grid-template-rows:1fr 1fr; text-align:left; column-gap:3px; }
.combat-deck .action-icon { grid-row:1/3; align-self:center; margin:0; }
.combat-deck .action-icon svg { width:24px; height:24px; }
.combat-deck .action strong { font-size:12px; align-self:end; line-height:17px; }
.combat-deck .action small { font-size:9px; align-self:start; line-height:13px; margin:0; }
.combat-deck .action kbd { display:none; }
.combat-deck [data-action="potion"] { grid-column:1/5; grid-row:2; }
.combat-deck [data-action="awaken"] { grid-column:5/9; grid-row:2; }
.combat-deck [data-action="support"] { grid-column:9/13; grid-row:2; }
body.in-game .combat-deck [data-action="dodge"] { grid-column:1/4; grid-row:4; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0; }
.combat-deck [data-action="dodge"] .action-icon { display:none; }
body.in-game .combat-deck [data-action="dodge"] strong,body.in-game .combat-deck [data-action="dodge"] small { align-self:center; }
.combat-deck [data-action="guard"] { grid-column:4/7; grid-row:4; }
.combat-deck [data-action="strike"] { grid-column:7/13; grid-row:3/5; padding:12px 12px 25px; background:linear-gradient(145deg,#fff3cc,#e4bc65); border:2px solid #ad8037; border-radius:24px 24px 30px 20px; box-shadow:0 4px 0 #8e6f3e; grid-template-columns:38px minmax(0,1fr); }
.combat-deck [data-action="strike"] strong { font-size:20px; line-height:26px; }
.combat-deck [data-action="strike"] small { font-size:11px; line-height:18px; }
.combat-deck [data-action="strike"] .action-icon svg { width:34px; height:34px; }
.combat-deck [data-action="strike"] .timing-track { left:12px; right:12px; bottom:10px; height:12px; }
.combat-deck .cooldown { border-radius:inherit; font-size:22px; }
.combat-deck .action:disabled { opacity:.66; }
.combat-deck .action:active:not(:disabled) { transform:translateY(2px); }
.tactical-arena .actors,.tactical-arena .fx { bottom:6px; --tactical-clearance:140px; }
.tactical-arena .lane-zones { bottom:4px; }
.encounter-progress { position:absolute; top:6px; left:12px; right:12px; font-size:12px; color:#fff4cc; font-weight:800; letter-spacing:1px; text-shadow:0 1px 4px #17210c; z-index:8; }
body.in-game .tactical-arena .boss-hud { top:27px; }
body.in-game .tactical-arena .telegraph { top:78px; }
.boss-arrival .stage-message { font-size:clamp(20px,5vw,40px); white-space:nowrap; text-shadow:0 2px 6px #401906; }
.boss-actor.arriving .body { opacity:.35; filter:brightness(.2); }
.boss-enter .body { animation:boss-enter .7s ease-out; }
@keyframes boss-enter { from { opacity:0; transform:scale(1.6); filter:brightness(3); } to { opacity:1; transform:scale(1); } }
.tactical-arena .boss-actor.minion-actor { width:78%!important; max-width:600px; }
.minion-pack { display:flex; justify-content:center; align-items:center; gap:8px; height:100%; }
.minion { position:relative; display:block; flex:1 1 0; max-width:66px; min-width:0; transition:opacity .2s,transform .2s; filter:hue-rotate(var(--minion-hue)); }
.minion-body { display:block; position:relative; height:clamp(22px,5vw,55px); border-radius:55% 55% 38% 38%; border:2px solid #54794b; background:radial-gradient(ellipse at 28% 24%,#e6ffb6 0 5%,#9ad780 20%,#65a669 70%); box-shadow:inset -4px -5px 0 #477d5744,0 6px 4px #253e3444; animation:minion-bob .8s ease-in-out infinite alternate; animation-delay:var(--minion-delay); }
.minion-body::before { content:''; position:absolute; left:20%; top:-6px; width:9px; height:12px; background:#b6ee93; border:1px solid #54794b; transform:rotate(-25deg); border-radius:80% 0; }
.minion-eyes { position:absolute; left:25%; right:25%; top:37%; height:7px; border-left:4px solid #1e3736; border-right:4px solid #1e3736; }
.minion-body::after { content:''; position:absolute; width:6px; height:4px; border-bottom:2px solid #324538; border-radius:50%; left:calc(50% - 3px); top:60%; }
.minion-health { display:block; height:4px; margin-top:7px; background:#293f33b0; border-radius:3px; overflow:hidden; }
.minion-health i { display:block; height:100%; background:#c5f293; }
.minion.front .minion-body { box-shadow:0 0 0 2px #fff3b5,0 6px 7px #27372c66; }
.minion.defeated { opacity:.16; transform:scale(.5) translateY(10px); }
.minion.defeated .minion-body { animation:none; }
.minion-actor.casting .minion.front .minion-body { animation:minion-charge .25s infinite alternate; }
.minion-actor.impact .minion.front { filter:brightness(1.6); }
@keyframes minion-bob { to { transform:translateY(-4px) scale(.98,1.05); } }
@keyframes minion-charge { to { transform:translateY(-6px) scale(1.12,.9); filter:brightness(1.3); } }
@media(max-width:820px) and (orientation:portrait), (max-width:1100px) and (max-height:500px) and (orientation:landscape) {
 body.in-game .combat-deck { grid-template-rows:13px 44px 48px 54px; gap:5px; }
 body.in-game .combat-deck .action { min-height:0; padding:3px; }
 body.in-game .combat-deck .action strong { font-size:11px; }
 body.in-game .combat-deck .action small { font-size:8px; }
 body.in-game .combat-deck [data-action="strike"] { padding:8px 8px 25px; }
 body.in-game .combat-deck [data-action="strike"] strong { font-size:18px; line-height:24px; }
 body.in-game .combat-deck [data-action="strike"] small { font-size:10px; }
 body.in-game .thumb-label { font-size:8px; letter-spacing:.5px; }
 body.in-game .tactical-arena .actors,body.in-game .tactical-arena .fx { --tactical-clearance:107px; }
 body.in-game .tactical-arena .telegraph { top:61px; }
 body.in-game .encounter-progress { font-size:10px; top:6px; }
 body.in-game.in-battle .player-heading { min-height:20px; }
 body.in-game.in-battle .player-heading strong { display:none; }
 body.in-game.in-battle .player-heading small { font-size:9px; line-height:16px; }
 body.in-game.in-battle .growth-button { min-height:24px; height:24px; padding:2px 6px; }
 body.in-game.in-battle .resources { margin:2px 0 4px; }
 body.in-game.in-battle .control-foot { margin-top:5px; }
 body.in-game.in-battle .control-foot > span { max-width:68%; }
 .minion-pack { gap:5px; }
}
@media(max-height:620px) and (orientation:portrait) {
 body.in-game.in-battle .player-heading { display:none; }
 body.in-game .combat-deck { grid-template-rows:10px 44px 46px 48px; gap:4px; }
 body.in-game .tactical-arena .actors,body.in-game .tactical-arena .fx { --tactical-clearance:96px; }
}
@media(prefers-reduced-motion:reduce) { .minion-body,.minion-actor.casting .minion.front .minion-body,.boss-enter .body { animation:none; } }
@media(max-width:1100px) and (max-height:500px) and (orientation:landscape) {
 body.in-game .battle-column { grid-template-columns:minmax(0,1fr) minmax(310px,40%); }
 body.in-game.in-battle .player-heading { display:none; }
 body.in-game .combat-deck { grid-template-rows:10px 44px 46px 48px; gap:4px; }
 body.in-game .control-foot > span { display:none; }
}
@media(min-width:821px) and (min-height:501px) {
 body.in-game.in-battle .arena { height:clamp(220px,calc(100dvh - 570px),440px); }
}
