/* Choreograph the existing adventurer. The opponent is a system emoji, no image download. */
.vitality-summary{gap:16px}
.warrior-scene{flex-basis:190px;height:142px;border:1px solid #796449;border-radius:10px;background:#191b13}
.warrior-scene .warrior{left:34px;top:43px}
.warrior-scene .ground{left:12px;width:162px;bottom:8px}
.battle-title{position:absolute;left:9px;top:8px;font-size:10px;color:var(--gold);letter-spacing:.1em}
.battle-monster{position:absolute;right:11px;bottom:14px;font:43px/1 "Apple Color Emoji","Segoe UI Emoji",sans-serif;transform-origin:50% 100%;z-index:2}
.battle-cue{position:absolute;right:12px;top:34px;font-size:11px;font-weight:800;color:var(--gold);z-index:10}
.warrior-scene .scene-spark{left:94px;top:65px}
.warrior-scene .scene-spirit{left:29px;top:54px}
.warrior-scene .scene-sweat{left:76px;right:auto;top:57px}
.hp-value>strong{font-size:38px}
.motion-toggle{min-width:44px;min-height:36px;font-size:10px}
.vitality-options button:disabled{cursor:default}
.vitality-options button.is-selected:disabled{opacity:1}
/* Stop the old five-band walking loops before applying the combat choreography. */
.warrior-scene[data-battle] .warrior,.warrior-scene[data-battle] .arm-right,.warrior-scene[data-battle] .cape,.warrior-scene[data-battle] .boot-left{animation:none;transform:none}
.warrior-scene[data-battle] .scene-spark{display:none}
.warrior-scene[data-battle] .battle-cue{animation:battle-cue 3.2s ease-out infinite}
.warrior-scene[data-battle] .warrior{animation:combat-stance 3.2s ease-in-out infinite}
.warrior-scene[data-battle="10"] .warrior{animation:combat-charge 2.8s ease-in-out infinite}
.warrior-scene[data-battle="10"] .arm-right{animation:combat-slash 2.8s ease-in-out infinite}
.warrior-scene[data-battle="10"] .battle-monster{animation:monster-defeated 2.8s ease-in-out infinite}
.warrior-scene[data-battle="10"] .scene-spark{display:block;animation:combat-impact 2.8s infinite}
.warrior-scene[data-battle="9"] .warrior{animation:combat-charge 3.2s ease-in-out infinite}
.warrior-scene[data-battle="9"] .arm-right{animation:combat-slash 3.2s ease-in-out infinite}
.warrior-scene[data-battle="9"] .battle-monster{animation:monster-recoil 3.2s ease-in-out infinite}
.warrior-scene[data-battle="8"] .arm-right{animation:combat-combo 3.2s ease-in-out infinite}
.warrior-scene[data-battle="8"] .battle-monster{animation:monster-combo 3.2s ease-in-out infinite}
.warrior-scene[data-battle="7"] .warrior{animation:combat-parry 3.2s ease-in-out infinite}
.warrior-scene[data-battle="7"] .shield{animation:shield-block 3.2s ease-in-out infinite}
.warrior-scene[data-battle="7"] .arm-right{animation:combat-slash 3.2s ease-in-out infinite}
.warrior-scene[data-battle="7"] .battle-monster{animation:monster-lunge 3.2s ease-in-out infinite}
.warrior-scene[data-battle="6"] .warrior{animation:combat-dodge 3.2s ease-in-out infinite}
.warrior-scene[data-battle="6"] .arm-right{animation:combat-slash 3.2s ease-in-out infinite}
.warrior-scene[data-battle="6"] .battle-monster{animation:monster-lunge 3.2s ease-in-out infinite}
.warrior-scene[data-battle="5"] .warrior{animation:combat-trade 3.2s ease-in-out infinite}
.warrior-scene[data-battle="5"] .arm-right{animation:combat-slash 3.2s ease-in-out infinite}
.warrior-scene[data-battle="5"] .battle-monster{animation:monster-trade 3.2s ease-in-out infinite}
.warrior-scene[data-battle="4"] .warrior{animation:combat-block 3.2s ease-in-out infinite}
.warrior-scene[data-battle="4"] .shield{animation:shield-block 3.2s ease-in-out infinite;transform:translate(28px,-8px)}
.warrior-scene[data-battle="4"] .battle-monster{animation:monster-lunge 3.2s ease-in-out infinite}
.warrior-scene[data-battle="3"] .warrior{animation:combat-retreat 3.8s ease-in-out infinite;transform:translate(-6px,5px) rotate(-12deg)}
.warrior-scene[data-battle="3"] .battle-monster{animation:monster-lunge 3.8s ease-in-out infinite}
.warrior-scene[data-battle="2"] .warrior{animation:combat-wounded 4s ease-in-out infinite;transform:translateY(13px) rotate(18deg)}
.warrior-scene[data-battle="2"] .arm-right{transform:rotate(28deg)}
.warrior-scene[data-battle="2"] .boot-left{transform:rotate(-65deg);transform-origin:top}
.warrior-scene[data-battle="2"] .battle-monster{animation:monster-taunt 4s ease-in-out infinite}
.warrior-scene[data-battle="1"] .warrior{animation:combat-crawl 4.5s ease-in-out infinite;transform:translate(20px,3px) rotate(-65deg)}
.warrior-scene[data-battle="1"] .scene-spirit,.warrior-scene[data-battle="0"] .scene-spirit{display:block;animation:rescue-spirit 4s infinite}
.warrior-scene[data-battle="0"] .warrior{animation:none;transform:translate(25px,-3px) rotate(-85deg)}
.warrior-scene[data-battle="0"] .eyes{height:2px}
.warrior-scene[data-battle="0"] .battle-monster{font-size:30px;opacity:.6;animation:monster-taunt 5s infinite}
.warrior-scene[data-battle="waiting"] .warrior{animation:none;transform:translateY(4px)}
.warrior-scene[data-battle="waiting"] .battle-monster,.warrior-scene[data-battle="waiting"] .battle-cue{display:none}
.warrior-scene[data-battle="1"] .bandage,.warrior-scene[data-battle="2"] .bandage,.warrior-scene[data-battle="3"] .bandage,.warrior-scene[data-battle="4"] .bandage{display:block!important}
@keyframes combat-stance{50%{transform:translateY(2px)}}
@keyframes combat-charge{0%,18%,80%,100%{transform:translateX(0)}35%,52%{transform:translate(30px,-4px) rotate(7deg)}}
@keyframes combat-slash{0%,25%,70%,100%{transform:rotate(-15deg)}42%,53%{transform:rotate(80deg)}}
@keyframes combat-combo{0%,15%,80%,100%{transform:rotate(-20deg)}30%,58%{transform:rotate(85deg)}43%{transform:rotate(-30deg)}}
@keyframes monster-recoil{0%,38%,100%{transform:none}48%,63%{transform:translate(13px,-6px) rotate(18deg)}}
@keyframes monster-defeated{0%,34%,100%{transform:none;opacity:1}53%,72%{transform:translate(20px,8px) rotate(85deg);opacity:.2}85%{transform:translate(25px,0);opacity:0}}
@keyframes monster-combo{0%,22%,85%,100%{transform:none}33%,62%{transform:translateX(12px) rotate(14deg)}45%{transform:translateX(3px)}}
@keyframes monster-lunge{0%,10%,65%,100%{transform:none}25%,38%{transform:translateX(-30px) rotate(-12deg)}}
@keyframes combat-parry{0%,100%{transform:none}25%{transform:translateX(-5px)}48%,60%{transform:translateX(15px)}}
@keyframes combat-dodge{0%,100%{transform:none}25%,36%{transform:translate(-12px,5px) rotate(-20deg)}54%{transform:translateX(18px)}}
@keyframes combat-trade{0%,100%{transform:none}25%{transform:translate(-8px,3px) rotate(-12deg)}50%{transform:translateX(17px)}}
@keyframes monster-trade{0%,100%{transform:none}24%{transform:translateX(-25px)}54%{transform:translateX(9px) rotate(15deg)}}
@keyframes combat-block{0%,100%{transform:rotate(-5deg)}28%,39%{transform:translate(-7px,6px) rotate(-13deg)}}
@keyframes shield-block{0%,100%{transform:translate(28px,-8px)}27%,39%{transform:translate(30px,-12px) rotate(-12deg)}}
@keyframes combat-retreat{0%,100%{transform:translate(-6px,5px) rotate(-12deg)}30%,65%{transform:translate(-15px,9px) rotate(-22deg)}}
@keyframes combat-wounded{0%,100%{transform:translateY(13px) rotate(18deg)}50%{transform:translateY(16px) rotate(23deg)}}
@keyframes combat-crawl{0%,100%{transform:translate(20px,3px) rotate(-65deg)}50%{transform:translate(14px,4px) rotate(-70deg)}}
@keyframes monster-taunt{50%{transform:translateY(-4px) rotate(5deg)}}
@keyframes combat-impact{0%,30%,75%,100%{opacity:0}44%,55%{opacity:1;transform:scale(1.3)}}
@keyframes battle-cue{0%,15%,90%,100%{opacity:.35}35%,65%{opacity:1;transform:translateY(-3px)}}
@media(min-width:721px) and (max-width:980px){.vitality-summary{flex-wrap:wrap}.warrior-scene{flex-basis:100%}.warrior-scene .warrior{left:calc(50% - 65px)}.battle-monster{right:calc(50% - 78px)}.battle-cue{right:calc(50% - 77px)}.warrior-scene .ground{left:calc(50% - 81px)}.party-hp{flex-basis:100%}}
@media(max-width:720px){.warrior-scene{flex-basis:150px;height:135px}.warrior-scene .warrior{left:24px;top:37px}.warrior-scene .ground{width:130px}.battle-monster{right:3px;font-size:36px}.battle-cue{right:6px}.battle-title{font-size:9px}.hp-value{flex-wrap:wrap;gap:3px}.hp-value>strong{font-size:32px}.motion-toggle{margin-left:4px}.vitality-summary{gap:10px}}
@media(max-width:360px){.warrior-scene{flex-basis:138px}.hp-value>strong{font-size:29px}.motion-toggle{margin-left:0}.vitality-summary{gap:8px}}
/* Paused/reduced motion uses each band's still pose, including injury severity. */
.warrior-scene.is-paused *{animation:none!important}
@media(prefers-reduced-motion:reduce){.warrior-scene *{animation:none!important;transition:none!important}}
.warrior-scene[data-battle]:not([data-battle="0"]):not([data-battle="1"]) .scene-spirit{display:none}
.warrior-scene[data-battle]:not([data-battle="0"]) .eyes{height:5px;top:12px}
