/* V12 -- bounded per-actor animated beats, always tied to a recorded encounter */
.scene-stage.v12-choreography{isolation:isolate;overflow:hidden}
.v12-choreography .scene-actor{transform-origin:50% 90%}
.v12-choreography .scene-character{animation-duration:var(--scene-duration,3200ms);animation-timing-function:cubic-bezier(.25,.1,.25,1);animation-iteration-count:1;animation-fill-mode:both;animation-delay:var(--v12-beat,0s)}
.v12-sprint .scene-character{animation-name:v12-sprint}
.v12-dodge .scene-character{animation-name:v12-dodge}
.v12-vault .scene-character{animation-name:v12-vault}
.v12-pivot .scene-character{animation-name:v12-pivot}
.v12-slide .scene-character{animation-name:v12-slide}
.v12-impact .scene-character{animation-name:v12-impact}
.v12-sport .scene-character{animation-name:v12-sport}
.v12-creature .scene-character{animation-name:v12-creature}
.v12-body-vehicle .scene-character{animation-name:v12-vehicle}
.v12-body-horse .scene-character{animation-name:v12-horse}
.v12-body-aquatic .scene-character{animation-name:v12-aquatic}
.v12-body-mascot .scene-character{animation-name:v12-mascot}
.v12-encounter-prop{position:absolute;left:50%;bottom:8%;max-width:45%;transform:translateX(-50%);border:1px solid #c1a67b72;padding:3px 9px;background:#12232ab5;border-radius:3px;color:#f9dba9;font-size:10px;text-transform:uppercase;letter-spacing:.08em;pointer-events:none}
.v12-action-cue{display:block;margin-top:7px;font-size:10px;letter-spacing:.11em;color:#efb777;font-weight:800}
@keyframes v12-sprint{0%,100%{transform:translateX(0)}35%{transform:translateX(16px)}68%{transform:translateX(-6px)}}
@keyframes v12-dodge{0%,100%{transform:translateX(0) skewX(0)}32%{transform:translateX(-22px) skewX(8deg)}62%{transform:translateX(10px)}}
@keyframes v12-vault{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-24px) rotate(-10deg)}72%{transform:translateY(-4px) rotate(3deg)}}
@keyframes v12-pivot{0%,100%{transform:rotate(0)}35%{transform:rotate(13deg)}67%{transform:rotate(-16deg)}}
@keyframes v12-slide{0%,100%{transform:translate(0,0)}35%{transform:translate(-25px,4px) rotate(-8deg)}68%{transform:translate(12px,0)}}
@keyframes v12-impact{0%,100%{transform:translate(0)}35%{transform:translateX(9px)}46%{transform:translateX(-13px) rotate(-8deg)}64%{transform:translateX(3px)}}
@keyframes v12-sport{0%,100%{transform:translateX(0) rotate(0)}33%{transform:translateX(-9px) rotate(-8deg)}55%{transform:translateX(15px) rotate(8deg)}}
@keyframes v12-creature{0%,100%{transform:translateY(0)}40%{transform:translateY(-11px)}}
@keyframes v12-vehicle{0%,100%{transform:translateX(0) rotate(0)}30%{transform:translateX(25px) rotate(4deg)}65%{transform:translateX(-12px) rotate(-3deg)}}
@keyframes v12-horse{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-15px) rotate(-5deg)}50%{transform:translateY(-4px)}75%{transform:translateY(-12px)}}
@keyframes v12-aquatic{0%,100%{transform:translateY(0)}50%{transform:translateY(12px) rotate(8deg)}}
@keyframes v12-mascot{0%,100%{transform:rotate(0)}35%{transform:rotate(12deg)}60%{transform:rotate(-10deg)}}
@media(prefers-reduced-motion:reduce){.v12-choreography .scene-character{animation:none!important}.v12-encounter-prop{transition:none!important}}