/* V14 is an in-game animation system, not a separate prototype. */
.v14-performer{position:absolute;z-index:3;left:-1%;bottom:7%;width:clamp(136px,38vw,210px);aspect-ratio:480/500;pointer-events:none;transform-origin:48% 85%;filter:drop-shadow(0 13px 8px #000b);will-change:transform}
.v14-performer-shadow{position:absolute;left:20%;bottom:4%;height:8%;width:52%;border-radius:50%;background:#050716a8;filter:blur(9px)}
.v14-framebox{position:absolute;inset:0;overflow:hidden}
.v14-frames{position:absolute;top:0;left:0;width:800%;height:100%;max-width:none;animation:v14FrameSteps .90s steps(8,end) infinite;object-fit:fill}
.v14-performer[data-motion="run"] .v14-frames{animation-duration:.65s}
.v14-performer[data-motion="leap"] .v14-frames{animation-duration:.55s;animation-iteration-count:1;animation-fill-mode:forwards}
.v14-performer[data-motion="land"] .v14-frames{animation-duration:.34s;animation-iteration-count:1;animation-fill-mode:forwards}
.v14-performer[data-motion="hurt"] .v14-frames{animation-duration:.46s;animation-iteration-count:1}
.v14-performer[data-motion="run"]{animation:v14Dash .45s cubic-bezier(.19,.12,.48,1) both}
.v14-performer[data-motion="leap"]{animation:v14Leap .62s cubic-bezier(.28,.16,.52,1) both}
.v14-performer[data-motion="land"]{animation:v14Landing .34s cubic-bezier(.15,.6,.5,1) both}
.v14-performer[data-motion="charge"]{animation:v14Charge .36s ease-in-out infinite alternate}
.v14-performer[data-motion="idle"]{animation:v14Breathe 2.5s ease-in-out infinite alternate}
.v14-performer.v14-still{bottom:6%;width:clamp(108px,34vw,180px);height:70%;display:flex;align-items:flex-end}
.v14-other-sprite{width:100%;max-height:100%;object-fit:contain;mask-image:radial-gradient(ellipse at center,#000 48%,transparent 87%);animation:v14Breathe 2.8s ease-in-out infinite alternate}
.v14-entry{margin:15px 12px;padding:14px;background:linear-gradient(115deg,#27214b,#16243c);border:1px solid #b59af188;border-radius:12px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 20px #0005}
.v14-entry>div{flex:1;min-width:0}.v14-entry small{font-size:9px;color:#eac1f4;letter-spacing:.04em}.v14-entry b{display:block;font-size:14px;margin:4px 0}.v14-entry p{margin:0;color:#c8d0e5;font-size:10px;line-height:1.5}
.v14-entry button{min-width:108px;background:linear-gradient(#f1d394,#b17c41);color:#16132c;border:0;border-radius:8px;padding:9px 8px;font-size:11px;font-weight:800}
@keyframes v14FrameSteps{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@keyframes v14Breathe{from{transform:translateY(1px) scale(1)}to{transform:translateY(-3px) scale(1.015)}}
@keyframes v14Charge{from{transform:translateY(1px) scale(.97)}to{transform:translateY(5px) scale(1.03)}}
@keyframes v14Dash{0%{transform:translate(0,0) scale(1)}65%{transform:translate(48%,-12%) scale(1.06)}100%{transform:translate(62%,-16%) scale(1.07)}}
@keyframes v14Leap{0%{transform:translate(62%,-16%) scale(1.07)}50%{transform:translate(80%,-38%) rotate(-5deg) scale(1.1)}100%{transform:translate(83%,-19%) rotate(3deg) scale(1.08)}}
@keyframes v14Landing{0%{transform:translate(83%,-19%) scale(1.08)}30%{transform:translate(66%,7%) scale(.95,1.03)}65%{transform:translate(25%,4%) scale(1.03,.96)}100%{transform:translate(0,0) scale(1)}}
@media(max-height:740px){.v14-performer{width:clamp(104px,30vw,175px);bottom:6%}.v14-entry{flex-direction:column;align-items:stretch}.v14-entry button{width:100%}}
@media(prefers-reduced-motion:reduce){.v14-performer,.v14-frames{animation:none!important}}

/* Keep the performer and its opponents on separate halves of the narrow battlefield. */
.v14-arena-wolf .v12-monsters{left:30%;right:2%;gap:5px}
.v14-arena-wolf .v12-foe{max-width:100%}
.v14-arena-wolf .v12-foe-portrait{width:116%}
.v14-arena-wolf .v12-foe.boss .v12-foe-portrait{width:125%}
@media(max-width:370px){.v14-arena-wolf .v12-monsters{left:34%;right:1%}.v14-performer{left:-5%;width:37vw}}
