/* Persistent sprite layer follows the painted floor; the logical grid remains clickable. */
.battle-units, .battle-ground-fx { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.battle-ground-fx { z-index:1; image-rendering:pixelated; border-radius:inherit; }
.battle-units { z-index:2; }
.battle-units .scene-unit { position:absolute; right:auto; bottom:auto; margin:0; padding:3px; pointer-events:auto; animation:none; will-change:transform; }
.battle-body { position:absolute; inset:0; pointer-events:none; }
.battle-body .combatant-token { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); }
.scene-unit .damage-pop { animation:none; }
.scene-unit .combatant-base { background:rgba(12,19,22,.28); box-shadow:0 0 0 1.5px color-mix(in srgb,var(--ring) 80%,transparent); }
.scene-unit .combatant-base::after { content:''; position:absolute; left:43%; width:14%; height:3px; background:var(--ring); top:2px; }
.scene-unit.combatant--player .combatant-base::after { top:auto; bottom:2px; }
.scene-recall { position:absolute; left:50%; top:57%; width:32px; height:32px; background-size:32px auto; background-position:0 -32px; image-rendering:pixelated; pointer-events:none; }
.battle-board[data-scene-paused="true"] * { animation-play-state:paused!important; }
.battle-board[data-motion-scene="true"] .scene-unit:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
@media(prefers-reduced-motion:reduce) {
 .scene-unit .combatant-aura, .scene-unit .combatant-shine, .shiny-star { animation:none; }
}
