/* Arena joints are local SVG transforms, with no bitmap slicing at the elbows. */
.arena-scene .sprite-motion{animation:none;position:relative}
.combat-rig{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}
.combat-rig .rig-joint{transform-box:view-box;transform-origin:0 0}
.combat-rig .rig-root{transform-origin:110px 190px}
/* SVG joints never run on the compositor, so an idle loop restyles and relayouts every frame: it loops only in the arena;
   portraits and dolls elsewhere (result card, LEVEL UP!, shops) take a couple of breaths and settle until they are redrawn. */
.combat-rig .rig-body{transform-origin:110px 157px;animation:rig-breath 3s ease-in-out 2}
.combat-rig .rig-head{transform-origin:112px 95px;animation:rig-look 5s ease-in-out 2}
.arena-scene .combat-rig :is(.rig-body,.rig-head){animation-iteration-count:infinite}
.combat-rig .rig-thigh{transform:rotate(10deg)}
.combat-rig .rig-shin{transform:rotate(-6deg)}
.combat-rig .rig-back-thigh{transform:rotate(-10deg)}
.combat-rig .rig-back-shin{transform:rotate(8deg)}
.combat-rig .rig-ranged,.combat-rig .rig-dart,.combat-rig .rig-open-hand,.combat-rig .rig-pointing-finger{display:none}
.combat-rig[data-prop="ranged"] .rig-melee,.combat-rig[data-prop="dart"] .rig-melee,.combat-rig[data-prop="magic"] .rig-melee,.combat-rig[data-prop="drink"] .rig-melee,.combat-rig[data-prop="taunt"] .rig-melee{display:none}
.combat-rig[data-prop="ranged"] .rig-ranged,.combat-rig[data-prop="dart"] .rig-dart{display:inline}
.combat-rig[data-prop="ranged"] .rig-shield,.combat-rig[data-prop="magic"] .rig-shield,.combat-rig[data-prop="staff"] .rig-shield{display:none}
.combat-rig[data-prop="ranged"] .rig-open-hand,.combat-rig[data-prop="magic"] .rig-open-hand,.combat-rig[data-prop="staff"] .rig-open-hand,.combat-rig[data-prop="taunt"] .rig-pointing-finger{display:inline}
.combat-rig[data-released="true"] .nocked-arrow,.combat-rig[data-released="true"][data-ranged="javelin"] .rig-ranged,.combat-rig[data-released="true"][data-ranged="throwaxe"] .rig-ranged,.combat-rig[data-released="true"][data-ranged="stone"] .rig-ranged,.combat-rig[data-released="true"] .rig-dart{visibility:hidden}
/* Enchanted weapons wear a stroke aura in the enchant colour (no filter on a swinging joint); tier 9+ gems and
   runes carry a soft halo that breathes only in the arena and never with reduced motion. */
.combat-rig .rig-glow{opacity:.8}
.arena-scene .combat-rig :is(.rig-glow,.rig-aura){animation:rig-glow 1.8s ease-in-out infinite alternate}
@keyframes rig-glow{from{opacity:.35}to{opacity:.9}}
.combat-rig[data-fatigued="true"] .rig-body{animation:rig-exhausted 1.4s ease-in-out infinite}
.combat-rig[data-fatigued="true"] .rig-head{transform:rotate(7deg)}
.combat-rig[data-fatigued="true"] .rig-arm{transform:rotate(15deg)}
.combat-rig[data-fatigued="true"] .rig-forearm{transform:rotate(12deg)}
.turn-animating .rig-joint{animation:none!important}
.arena-scene .fighter-sprite.enemy .sprite-facing{transform:scaleX(-1)}
.arena-scene .fighter-sprite.enemy.facing-flipped .sprite-facing{transform:none}
.arena-scene .defeated .sprite-motion{transform:none;opacity:.8;animation:none}
.arena-scene .defeated .rig-root{transform:translate(12px,20px) rotate(-78deg)}
.arena-scene .defeated .rig-body,.arena-scene .defeated .rig-head,.arena-scene .celebrating .rig-body,.arena-scene .celebrating .rig-head{animation:none}
.arena-scene .defeated .rig-arm{transform:rotate(25deg)}
.arena-scene .defeated .rig-forearm{transform:rotate(40deg)}
.arena-scene .celebrating .rig-arm{transform:rotate(-85deg)}
.arena-scene .celebrating .rig-forearm{transform:rotate(35deg)}
.arena-scene .celebrating .rig-head{transform:rotate(-5deg)}
.arena-scene.turn-animating .damage-number{animation:none;opacity:0;top:2%;left:50%}
.fx-dust,.fx-cast-glow{position:absolute;pointer-events:none;z-index:3}
.fx-dust{width:10px;height:7px;border-radius:50%;background:#e1c291;filter:blur(1px)}
.fx-cast-glow{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle,#fff8db 0, var(--fx-color) 38%,transparent 70%);box-shadow:0 0 12px var(--fx-color);z-index:12}
.turn-animating .health-card .meter>span{transition:none}
/* Verdict: a beaten rival on its knees (.kneeling, head down) or begging (.kneeling.pleading, hands up). Mirrors KNEEL in fighter-motion.js. */
.fighter-sprite.kneeling[data-fighter] .sprite-motion{opacity:1;transform:none}
.fighter-sprite.kneeling .combat-rig .rig-root{transform:translate(0,32px)}
.fighter-sprite.kneeling .combat-rig .rig-body{transform:translate(3px,2px) rotate(14deg);animation:rig-kneel-sob 1.8s ease-in-out infinite}
.fighter-sprite.kneeling .combat-rig .rig-head{transform:rotate(20deg);animation:none}
.fighter-sprite.kneeling .combat-rig .rig-thigh{transform:rotate(5deg)}
.fighter-sprite.kneeling .combat-rig .rig-shin{transform:rotate(85deg)}
.fighter-sprite.kneeling .combat-rig .rig-back-thigh{transform:rotate(-100deg)}
.fighter-sprite.kneeling .combat-rig .rig-back-shin{transform:rotate(100deg)}
.fighter-sprite.kneeling .combat-rig .rig-arm{transform:rotate(22deg)}
.fighter-sprite.kneeling .combat-rig .rig-forearm{transform:rotate(18deg)}
.fighter-sprite.kneeling .combat-rig .rig-back-arm{transform:rotate(14deg)}
.fighter-sprite.kneeling .combat-rig .rig-back-forearm{transform:rotate(10deg)}
.fighter-sprite.kneeling .combat-rig .rig-weapon{transform:rotate(-25deg)}
.fighter-sprite.kneeling.pleading .combat-rig .rig-body{transform:rotate(-2deg);animation:rig-plead 1.1s ease-in-out infinite}
.fighter-sprite.kneeling.pleading .combat-rig .rig-head{transform:rotate(-10deg)}
.fighter-sprite.kneeling.pleading .combat-rig .rig-arm{transform:rotate(-120deg)}
.fighter-sprite.kneeling.pleading .combat-rig .rig-forearm{transform:rotate(0deg)}
.fighter-sprite.kneeling.pleading .combat-rig .rig-back-arm{transform:rotate(-115deg)}
.fighter-sprite.kneeling.pleading .combat-rig .rig-back-forearm{transform:rotate(-10deg)}
.fighter-sprite.kneeling.pleading .combat-rig .rig-melee,.fighter-sprite.kneeling.pleading .combat-rig .rig-shield,.fighter-sprite.kneeling.pleading .combat-rig .rig-ranged{display:none}
.fighter-sprite.kneeling.pleading .combat-rig .rig-open-hand{display:inline}
@keyframes rig-kneel-sob{0%,100%{transform:translate(3px,2px) rotate(14deg)}50%{transform:translate(3px,3.5px) rotate(16.5deg)}}
@keyframes rig-plead{0%,100%{transform:rotate(-2deg)}50%{transform:translateY(1px) rotate(-4deg)}}
@keyframes rig-breath{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.6px) scaleY(1.012)}}
@keyframes rig-look{0%,75%,100%{transform:rotate(0)}85%{transform:rotate(-1.5deg)}}
@keyframes rig-exhausted{0%,100%{transform:translateY(2px) rotate(4deg)}50%{transform:translateY(4px) rotate(6deg)}}
html[data-motion="off"] .combat-rig :is(.rig-joint,.rig-glow,.rig-aura){animation:none!important}html[data-motion="off"] .fx-dust,html[data-motion="off"] .fx-cast-glow{display:none}html[data-motion="off"] .combat-rig[data-fatigued="true"] .rig-body{transform:translateY(3px) rotate(5deg)}

/* Leave headroom above a leaping fighter while keeping the arena pinned. */
@media(max-width:560px){
 .arena-scene.in-battle{height:288px}
 .battle-hud{top:27px}
 .health-card{padding:5px 7px}
 .health-card>div{margin-bottom:0}
 .health-card>div:first-child{line-height:15px;margin-bottom:4px}
 .health-card .hud-resources{margin-top:4px;line-height:12px}
 .health-card .armor-meter{margin-top:3px}
}

.rig-potion{display:none}.combat-rig[data-prop="drink"] .rig-potion{display:inline}.combat-rig[data-prop="tossed"] .rig-melee{display:none}.combat-rig[data-cork="off"] .rig-potion-cork{display:none}
/* 10.10: an ether flask is blue (a potion red: the liquid reads var(--potion)) */
.combat-rig[data-potion="ether"]{--potion:#3f86e8;--potion-dark:#1c3d80}.battle-resources b{font-weight:400}
