/* SAKATA MONSTERS V21 — THE SUMMONING THEATER
   One continuous art-directed stage, layered parallax, readable cinematic timing.
   Actual draw/ownership/economy remains in game_v19.js. */
#game:has(.v20-evo-veil){isolation:isolate}
#gacha-root .v21-scene{position:fixed!important;inset:0!important;z-index:1!important;display:block!important;overflow:hidden!important;background:#070b17!important;color:#f8ebd3!important;font-family:'Hiragino Mincho ProN','Yu Mincho',Georgia,serif!important;isolation:isolate!important;user-select:none;touch-action:pan-y}
.v21-scene *{box-sizing:border-box}
.v21-world,.v21-cam,.v21-front-vignette,.v21-shockwave,.v21-canvas{position:absolute;inset:0;pointer-events:none}
.v21-world{transform:scale(1);transition:transform 2400ms cubic-bezier(.18,.6,.18,1),filter 1800ms ease;will-change:transform}
.v21-background{position:absolute;inset:-4%;background:linear-gradient(180deg,rgba(2,4,16,.6),rgba(7,9,21,.08) 31%,rgba(3,5,14,.28) 59%,rgba(4,5,12,.91) 100%),url('assets/summon_chamber.webp') center 47%/cover no-repeat;transform:scale(1.075);filter:saturate(.91) contrast(1.13);animation:v21-environment-drift 16s ease-in-out infinite alternate}
.v21-mist{position:absolute;inset:35% -25% -10%;background:radial-gradient(ellipse at 51% 36%,#a6b5e62c,transparent 52%),linear-gradient(7deg,#d2c0a119,transparent 57%);filter:blur(19px);animation:v21-mist-drift 7s ease-in-out infinite alternate}
.v21-lightwell{position:absolute;left:10%;width:80%;top:4%;height:65%;background:linear-gradient(180deg,#6c90c121,#746cad0c 58%,transparent);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);opacity:.47;transform-origin:50% 0;animation:v21-light-breathe 6s ease-in-out infinite alternate}
.v21-wall-chains{position:absolute;inset:0;background:repeating-linear-gradient(88deg,transparent 0 49px,#baa77c0b 50px,#2a22350b 51px,transparent 52px);mask-image:linear-gradient(180deg,black,transparent 65%);opacity:.43}
.v21-cam{transition:transform 1900ms cubic-bezier(.2,.8,.2,1);transform-origin:50% 43%;will-change:transform}
.v21-back-ring{position:absolute;left:50%;top:39%;width:min(88vw,440px);aspect-ratio:1;border-radius:50%;border:2px solid #a7bce157;box-shadow:inset 0 0 26px #8390c84a,0 0 29px #3b518c4c;transform:translate(-50%,-50%);animation:v21-ring-rotation 26s linear infinite}
.v21-back-ring:before,.v21-back-ring:after{content:'';position:absolute;border-radius:50%;inset:4%;border:1px solid #c3b78a77}.v21-back-ring:after{inset:11%;border-style:dotted;border-width:3px;opacity:.65}
.v21-markers{position:absolute;inset:0}.v21-markers i{font-style:normal;position:absolute;left:50%;top:50%;font-size:14px;line-height:1;color:#d9d4b7;text-shadow:0 0 7px #9cbcff;transform:rotate(calc(var(--i)*30deg)) translateY(calc(-1*min(42vw,211px))) rotate(calc(var(--i)*-30deg));opacity:.7}
.v21-inner-ring{position:absolute;left:50%;top:39%;width:min(61vw,316px);aspect-ratio:1;border:1px dashed #e1c58369;border-radius:50%;box-shadow:0 0 24px #d4a35d21,inset 0 0 45px #a8bfe414;transform:translate(-50%,-50%);animation:v21-ring-reverse 16s linear infinite}
.v21-inner-ring:before,.v21-inner-ring:after{content:'';position:absolute;inset:8%;border:1px solid #b4abc565;border-radius:50%}.v21-inner-ring:after{inset:20%;border-style:dotted}
.v21-door{position:absolute;left:50%;top:36%;width:min(59vw,305px);height:min(57vh,444px);transform:translate(-50%,-50%) perspective(500px) rotateX(-2deg);filter:drop-shadow(0 9px 30px #000)}
.v21-door-left,.v21-door-right{position:absolute;top:7%;bottom:8%;width:50%;border:3px double #c2ad7e75;background:linear-gradient(120deg,#111625e7,#111522ef 39%,#423b406d 50%,#111522ed 69%,#0c111ff1);box-shadow:inset 0 0 30px #06050e,inset 0 0 0 9px #c4af8430;transition:transform 1600ms cubic-bezier(.3,.9,.1,1),opacity 1300ms}
.v21-door-left{left:0;border-radius:42% 2px 0 0 / 16% 0 0 0;transform-origin:0 50%}
.v21-door-right{right:0;border-radius:2px 42% 0 0 / 0 16% 0 0;transform-origin:100% 50%}
.v21-door-symbol{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);font-size:56px;color:#c5af8899;text-shadow:0 0 21px #dcba7c;transition:opacity 400ms}
.v21-floor-circle{position:absolute;left:50%;top:66%;width:min(86vw,420px);height:16%;border:2px solid #c0a87877;box-shadow:0 0 33px #bd985149,inset 0 0 34px #a7aacc26;border-radius:50%;transform:translateX(-50%) rotateX(70deg);animation:v21-floor-breathe 3.8s ease-in-out infinite}
.v21-floor-circle:after{content:'';position:absolute;inset:10%;border:5px dotted #d5c9b081;border-radius:50%}
.v21-core-shadow{position:absolute;left:50%;top:45%;width:55vw;height:40vh;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#ad9fde34 0%,#5c72aa25 23%,transparent 70%);filter:blur(15px);animation:v21-light-breathe 2.3s ease-in-out infinite alternate}
.v21-crystal-box{position:absolute;left:50%;top:39%;width:min(32vw,154px);height:42%;max-height:340px;transform:translate(-50%,-50%);transition:transform 1.1s ease,opacity .6s ease;filter:drop-shadow(0 0 20px #957bcc88);animation:v21-crystal-floating 2.6s ease-in-out infinite alternate}
.v21-crystal{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 18px #bdaaff)}
.v21-crack-lines{stroke-dasharray:700;stroke-dashoffset:700;transition:stroke-dashoffset .85s ease;filter:drop-shadow(0 0 7px #fff4dc)}
.v21-crystal-glyph{filter:drop-shadow(0 0 9px #fffbd5);animation:v21-light-breathe 1.5s ease-in-out infinite alternate}
.v21-core-shards{position:absolute;inset:0}.v21-core-shards i{position:absolute;left:50%;top:48%;width:6px;height:27px;opacity:0;border-radius:0 5px 0 0;background:linear-gradient(#f4e5bf,#9984c2,transparent);--dist:calc(68px + mod(var(--i)*23,87)*1px)}
.v21-near-shards{position:absolute;inset:0;opacity:0;transition:opacity 200ms}.v21-near-shards i{position:absolute;width:clamp(4px,3vw,16px);height:clamp(12px,6vw,34px);background:linear-gradient(145deg,#fff5d9,#927ec8 47%,transparent);top:42%;left:50%;clip-path:polygon(30% 0,100% 32%,49% 100%,0 72%);transform:rotate(var(--r));animation:v21-shard-drift 2.9s ease-out infinite;animation-delay:calc(var(--i)*-140ms)}
.v21-beast-stage{position:absolute;left:50%;top:43%;width:min(99vw,520px);height:min(60vh,480px);transform:translate(-50%,-50%);opacity:0;transition:opacity 1050ms ease,transform 1600ms cubic-bezier(.22,.8,.2,1);z-index:2}
.v21-beast-image{position:absolute;left:50%;top:50%;width:min(95vw,440px);height:100%;object-fit:contain;transform:translate(-50%,-50%) scale(.8);opacity:0;filter:brightness(.64) contrast(1.05) drop-shadow(0 14px 22px #050816e6);transition:opacity 1100ms ease,transform 1800ms cubic-bezier(.2,.9,.2,1),filter 1600ms ease;mask-image:radial-gradient(ellipse 82% 83% at 50% 50%,black 64%,transparent 94%)}
.v21-wolf-motion{position:absolute;left:50%;top:53%;height:min(43vh,300px);width:min(43vh,300px);transform:translate(-50%,-50%) scale(.66);background:url('assets/motion_v14/idle.webp') 0 0 / 800% 100% no-repeat;image-rendering:auto;opacity:0;filter:brightness(.76) drop-shadow(0 15px 15px #000);animation:v21-wolf-idle 850ms steps(8) infinite;transition:opacity 500ms,transform 1350ms cubic-bezier(.2,.9,.2,1)}
.v21-beast-eyes{position:absolute;left:50%;top:40%;width:60px;height:24px;transform:translate(-50%,-50%);opacity:0;transition:opacity .8s;z-index:5}.v21-beast-eyes i{position:absolute;top:10px;width:11px;height:6px;background:#d2e5ff;box-shadow:0 0 12px 5px #799fff;border-radius:100%}.v21-beast-eyes i:first-child{left:8px;transform:rotate(14deg)}.v21-beast-eyes i:last-child{right:8px;transform:rotate(-14deg)}
.v21-electric-trace{position:absolute;inset:10%;border-radius:50%;background:conic-gradient(from 90deg,transparent 0 18%,#a7d1ff80 20%,transparent 23% 60%,#8caefa70 63%,transparent 66%);filter:blur(18px);opacity:0;transition:opacity 600ms}
.v21-front-vignette{z-index:4;background:linear-gradient(180deg,#05071396 0%,transparent 19%,transparent 57%,#050914c7 76%,#050914f5 100%),linear-gradient(90deg,#02040ab8,transparent 19%,transparent 80%,#02040ab8)}
.v21-canvas{z-index:5;width:100%;height:100%;opacity:.7}
.v21-shockwave{z-index:6;opacity:0;background:radial-gradient(circle at 50% 41%,transparent 0 16%,#e5d09a99 17%,transparent 18%,transparent 100%);pointer-events:none}
.v21-hud{position:absolute;z-index:13;top:calc(16px + env(safe-area-inset-top));left:19px;right:21px;display:flex;justify-content:space-between;align-items:start;gap:10px;text-shadow:0 2px 7px #000}
.v21-signature{display:flex;flex-direction:column;line-height:1}.v21-signature b{font-size:20px;letter-spacing:.15em;font-family:Georgia,serif;color:#ebd1a0}.v21-signature small{font:9px Georgia,serif;letter-spacing:.48em;padding-top:5px;color:#b6b8ce}
.v21-theater-tag{text-align:right;font:9px Georgia,serif;letter-spacing:.15em;color:#bbb3b8}.v21-theater-tag strong{display:block;color:#f2dbaf;font-size:12px;font-weight:700;margin-top:8px;letter-spacing:.08em}
.v21-progress{position:absolute;top:calc(78px + env(safe-area-inset-top));left:20px;right:20px;display:flex;gap:5px;z-index:13}.v21-progress i{height:3px;flex:1;border-radius:3px;background:#6c709268;transition:background .45s,box-shadow .45s}.v21-progress i.done{background:linear-gradient(90deg,#a9bbe4,#f2d597);box-shadow:0 0 8px #e8d39d7c}
.v21-caption{position:absolute;z-index:12;bottom:calc(18% + env(safe-area-inset-bottom));left:16px;right:16px;text-align:center;pointer-events:none}.v21-caption p{margin:0;font-size:clamp(16px,4.5vw,21px);line-height:1.65;letter-spacing:.08em;color:#ffefd6;text-shadow:0 3px 10px #000,0 0 20px #000}
.v21-rank-interlude{position:absolute;z-index:10;left:0;right:0;top:28%;display:grid;justify-items:center;opacity:0;transform:scale(1.3);transition:transform .7s cubic-bezier(.16,.8,.2,1),opacity .65s;pointer-events:none;text-shadow:0 0 20px #000}.v21-rank-interlude small{font:10px Georgia,serif;letter-spacing:.36em;color:#ffe4b5}.v21-rank-interlude strong{font:900 clamp(52px,22vw,100px) Georgia,serif;letter-spacing:.09em;line-height:1.2;background:linear-gradient(110deg,#ffffff,#f2d086 42%,#fff,#987944 86%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 8px 7px #000)}
.v21-contract{position:absolute;z-index:15;left:20px;right:20px;bottom:calc(13% + env(safe-area-inset-bottom));text-align:center;padding:13px 13px 12px;border:1px solid #d5b8739c;border-radius:14px;background:linear-gradient(125deg,#0a1023ed,#141023ee 58%,#16100fed);box-shadow:0 4px 31px #000b,0 0 20px #c4a56b33}.v21-contract[hidden]{display:none!important}.v21-contract>span{display:block;font:10px Georgia,serif;letter-spacing:.16em;color:#edc87b}.v21-contract h2{font-size:clamp(25px,8vw,35px);margin:3px 0;color:#fff0d1;text-shadow:0 2px 7px #000}.v21-contract p{font-size:11px;color:#d6ccdb;margin:4px 0 10px}.v21-contract button{display:block;width:100%;font-weight:900;color:#281c15;background:linear-gradient(125deg,#fdf0c8,#ddbd7e 45%,#d3a363);border-radius:12px;border:1px solid #fff3cb;padding:13px 8px;font-size:14px;min-height:48px}
.v21-haruno{position:absolute;z-index:14;bottom:calc(67px + env(safe-area-inset-bottom));left:4px;display:flex;align-items:flex-end;gap:0;max-width:min(85vw,380px);transition:transform 850ms,opacity 500ms;transform:translateX(0)}.v21-haruno img{object-fit:contain;object-position:center bottom;width:clamp(66px,22vw,106px);height:clamp(97px,27vw,140px);filter:drop-shadow(0 2px 14px #000);animation:v21-guide-sway 1700ms ease-in-out infinite alternate}.v21-haruno span{align-self:center;max-width:225px;border:1px solid #b99e68ad;background:#080b16d9;color:#fff2d5;border-radius:13px 13px 13px 3px;padding:9px 11px;font:700 11px/1.55 'Hiragino Kaku Gothic ProN',sans-serif;text-shadow:0 2px 4px #000}
.v21-demo-label{position:absolute;z-index:14;top:calc(91px + env(safe-area-inset-top));left:20px;font:9px Georgia,serif;letter-spacing:.1em;border:1px solid #d7bd8d65;padding:5px 8px;border-radius:5px;color:#f8d89a;background:#080b14b5}
.v21-skip{position:absolute;z-index:17;right:15px;bottom:calc(17px + env(safe-area-inset-bottom));border:1px solid #b8a88c88!important;border-radius:24px!important;background:#0a1120d9!important;color:#eee2d1!important;min-height:43px!important;padding:10px 15px!important;font:800 12px 'Hiragino Kaku Gothic ProN',sans-serif!important}
.v21-scene[data-phase="seals"] .v21-world{transform:scale(1.035)}
.v21-scene[data-phase="seals"] .v21-back-ring{animation-duration:8s;border-color:#e4c592}
.v21-scene[data-phase="seals"] .v21-inner-ring{animation-duration:5s;box-shadow:0 0 34px #e0c49152}
.v21-scene[data-phase="fracture"] .v21-world{transform:scale(1.09)}
.v21-scene[data-phase="fracture"] .v21-crack-lines,.v21-scene[data-phase="silence"] .v21-crack-lines,.v21-scene[data-phase="ascension"] .v21-crack-lines{stroke-dashoffset:0}
.v21-scene[data-phase="fracture"] .v21-crystal-box{transform:translate(-50%,-50%) scale(1.1)}
.v21-scene[data-phase="silence"] .v21-world{filter:brightness(.45) saturate(.6)}
.v21-scene[data-phase="silence"] .v21-crystal-box{filter:drop-shadow(0 0 35px #fff3c1)}
.v21-scene[data-phase="silence"] .v21-beast-eyes{opacity:1;z-index:8;transform:translate(-50%,-50%) scale(.55)}
.v21-scene[data-phase="ascension"] .v21-rank-interlude{opacity:1;transform:scale(1)}
.v21-scene[data-phase="ascension"] .v21-inner-ring{border-color:#f2cc86;box-shadow:0 0 38px #c99ced,inset 0 0 45px #b88fe599}
.v21-scene[data-phase="ascension"] .v21-crack-lines{stroke:#fff3cf}
.v21-scene[data-phase="secret"] .v21-world{filter:hue-rotate(140deg) brightness(.5) saturate(.7)}
.v21-scene[data-phase="secret"] .v21-back-ring,.v21-scene[data-phase="secret"] .v21-inner-ring{animation-direction:reverse;border-color:#fa5757}
.v21-scene[data-phase="secret"] .v21-rank-interlude{opacity:1;transform:scale(1)}
.v21-scene[data-phase="secret"] .v21-rank-interlude strong{background:linear-gradient(135deg,#fff,#eb6767,#f5c7b0);-webkit-background-clip:text;background-clip:text}
.v21-scene[data-phase="secret"] .v21-crystal{filter:drop-shadow(0 0 20px #df384c)}
.v21-scene[data-phase="shatter"] .v21-shockwave{animation:v21-wave 1s ease-out forwards}
.v21-scene[data-phase="shatter"] .v21-core-shards i{animation:v21-core-fragments 1.2s ease-out forwards;animation-delay:calc(var(--i)*25ms)}
.v21-scene[data-phase="shatter"] .v21-crystal-box{transform:translate(-50%,-50%) scale(1.45);opacity:0}
.v21-scene[data-phase="shatter"] .v21-near-shards,.v21-scene[data-phase="entrance"] .v21-near-shards,.v21-scene[data-phase="landing"] .v21-near-shards{opacity:.8}
.v21-scene:is([data-phase="shatter"],[data-phase="entrance"],[data-phase="landing"],[data-phase="identity"],[data-phase="standard"]) .v21-door-left{transform:perspective(500px) rotateY(-67deg)}
.v21-scene:is([data-phase="shatter"],[data-phase="entrance"],[data-phase="landing"],[data-phase="identity"],[data-phase="standard"]) .v21-door-right{transform:perspective(500px) rotateY(67deg)}
.v21-scene:is([data-phase="shatter"],[data-phase="entrance"],[data-phase="landing"],[data-phase="identity"],[data-phase="standard"]) .v21-door-symbol{opacity:0}
.v21-scene:is([data-phase="entrance"],[data-phase="landing"],[data-phase="identity"],[data-phase="standard"]) .v21-crystal-box{opacity:0}
.v21-scene:is([data-phase="entrance"],[data-phase="landing"],[data-phase="identity"],[data-phase="standard"]) .v21-beast-stage{opacity:1}
.v21-scene[data-phase="entrance"] .v21-world{transform:scale(1.11)}
.v21-scene[data-phase="entrance"] .v21-beast-image{opacity:.65;filter:brightness(.12) contrast(1.2);transform:translate(-50%,-50%) scale(.65)}
.v21-scene[data-phase="entrance"] .v21-wolf-motion{opacity:.85;transform:translate(-50%,-50%) scale(.78)}
.v21-scene[data-phase="entrance"] .v21-electric-trace{opacity:.35}
.v21-scene[data-phase="landing"] .v21-world{transform:scale(1.16)}
.v21-scene[data-phase="landing"] .v21-beast-image{opacity:1;filter:brightness(.95) contrast(1.04) drop-shadow(0 14px 22px #000);transform:translate(-50%,-50%) scale(1.05)}
.v21-scene[data-phase="landing"] .v21-wolf-motion{opacity:0;transform:translate(-50%,-50%) scale(1.22)}
.v21-scene[data-phase="landing"] .v21-electric-trace{opacity:.7}
.v21-scene[data-phase="identity"] .v21-world,.v21-scene[data-phase="standard"] .v21-world{transform:scale(1.09)}
.v21-scene[data-phase="identity"] .v21-beast-image,.v21-scene[data-phase="standard"] .v21-beast-image{opacity:1;filter:brightness(1) contrast(1.03) drop-shadow(0 12px 18px #03060c);transform:translate(-50%,-50%) scale(1.08)}
.v21-scene[data-phase="standard"] .v21-beast-stage{opacity:1}
.v21-scene[data-phase="identity"] .v21-haruno,.v21-scene[data-phase="standard"] .v21-haruno{transform:translateX(-122%);opacity:0}
.v21-scene[data-phase="entrance"] .v21-haruno,.v21-scene[data-phase="landing"] .v21-haruno{opacity:0;transform:translateX(-110%)}
.v21-scene[data-phase="identity"] .v21-caption,.v21-scene[data-phase="standard"] .v21-caption{opacity:0}
.v21-scene[data-phase="identity"] .v21-beast-stage,.v21-scene[data-phase="standard"] .v21-beast-stage{transform:translate(-50%,-62%)}
.v21-scene[data-phase="identity"] .v21-front-vignette,.v21-scene[data-phase="standard"] .v21-front-vignette{background:linear-gradient(180deg,#050713a1,transparent 19%,transparent 60%,#050914e0 93%),linear-gradient(90deg,#02040aa8,transparent 18%,transparent 80%,#02040aa8)}
@keyframes v21-environment-drift{to{transform:scale(1.13) translateY(-1%)}}
@keyframes v21-mist-drift{to{transform:translateX(6%)}}
@keyframes v21-light-breathe{to{opacity:.84;transform:scale(1.1)}}
@keyframes v21-ring-rotation{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes v21-ring-reverse{to{transform:translate(-50%,-50%) rotate(-360deg)}}
@keyframes v21-floor-breathe{50%{opacity:.7;transform:translateX(-50%) rotateX(70deg) scale(1.08)}}
@keyframes v21-crystal-floating{to{margin-top:-10px}}
@keyframes v21-guide-sway{to{transform:rotate(2deg) translateY(-3px)}}
@keyframes v21-wolf-idle{to{background-position-x:100%}}
@keyframes v21-shard-drift{0%{opacity:.9;transform:rotate(var(--r)) translateX(0)}100%{opacity:0;transform:rotate(var(--r)) translateX(190px)}}
@keyframes v21-core-fragments{0%{opacity:1;transform:rotate(var(--a)) translateY(-6px)}30%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateY(-190px) scale(.4)}}
@keyframes v21-wave{0%{opacity:0;transform:scale(.5)}23%{opacity:.8}100%{opacity:0;transform:scale(2.7)}}
/* Evolution: preserve original monster colors and shading. All glow lives BEHIND the artwork. */
.v20-evo-veil .v20-evo-before,.v20-evo-veil .v20-evo-after{filter:drop-shadow(0 10px 15px #02040aab)!important;-webkit-mask-image:radial-gradient(ellipse 78% 82% at 50% 50%,#000 65%,transparent 98%)!important;mask-image:radial-gradient(ellipse 78% 82% at 50% 50%,#000 65%,transparent 98%)!important}
.v20-evo-veil .v20-evo-after{filter:brightness(1) contrast(1.02) drop-shadow(0 10px 16px #02040bcc)!important}
.v20-evo-veil[data-phase="fracture"] .v20-evo-before{animation:v21-evo-old-out .85s ease-in both!important}
.v20-evo-veil[data-phase="morph"] .v20-evo-after{animation:v21-evo-new-in 1.35s cubic-bezier(.18,.8,.2,1) both!important}
.v20-evo-veil[data-phase="complete"] .v20-evo-after{animation:v21-evo-soft-idle 4.5s ease-in-out infinite alternate!important;opacity:1!important;filter:brightness(1) contrast(1.02) drop-shadow(0 12px 16px #02040c)!important}
.v20-evo-veil .v20-evo-flash{display:none!important}
.v20-evo-veil .v20-evo-halo{box-shadow:0 0 22px var(--v20-evo-accent),inset 0 0 13px #fff2!important}
.v20-evo-veil[data-phase="complete"] .v20-evo-halo{opacity:.35!important}
.v20-evo-veil .v20-evo-lightning{font-size:90px!important;text-shadow:0 0 15px var(--v20-evo-accent)!important}
.v20-evo-veil[data-phase="complete"] .v20-evo-orbit{height:48%!important;top:7%!important}
.v20-evo-veil[data-phase="complete"] .v20-evo-narrative{bottom:calc(85px + env(safe-area-inset-bottom))!important}
@keyframes v21-evo-old-out{0%{opacity:1;transform:scale(.85);filter:brightness(1)}60%{opacity:.85;transform:scale(.95);filter:brightness(.8)}100%{opacity:0;transform:scale(.86);filter:brightness(.55) blur(3px)}}
@keyframes v21-evo-new-in{0%{opacity:0;transform:scale(.62) translateY(30px);filter:brightness(.35) blur(5px)}45%{opacity:1;transform:scale(.94) translateY(0);filter:brightness(.85) blur(1px)}100%{opacity:1;transform:scale(.94);filter:brightness(1) contrast(1.02)}}
@keyframes v21-evo-soft-idle{from{transform:scale(.94) translateY(0)}to{transform:scale(.96) translateY(-5px)}}
@media(max-height:740px){.v21-beast-stage{top:40%;height:56vh}.v21-rank-interlude{top:25%}.v21-caption{bottom:22%}.v21-contract{bottom:calc(11% + env(safe-area-inset-bottom));padding:8px 10px}.v21-contract h2{font-size:25px}.v21-haruno{bottom:calc(62px + env(safe-area-inset-bottom))}.v21-haruno img{height:85px}.v21-haruno span{font-size:10px}.v20-evo-veil[data-phase="complete"] .v20-evo-orbit{height:37%!important;top:7%!important}.v20-evo-veil[data-phase="complete"] .v20-evo-narrative{bottom:calc(71px + env(safe-area-inset-bottom))!important}}
@media(max-width:350px){.v21-signature b{font-size:16px}.v21-theater-tag{font-size:8px}.v21-caption p{font-size:15px}.v21-contract h2{font-size:23px}.v21-haruno img{width:64px}.v21-haruno span{max-width:165px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.v21-scene *,.v20-evo-veil *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* Differentiated sprite action: running from the opened seal, then jumping and landing. */
.v21-scene[data-phase="entrance"] .v21-wolf-motion{background-image:url('assets/motion_v14/run.webp');animation-duration:680ms;transform:translate(-50%,-50%) scale(.65)}
.v21-scene[data-phase="landing"] .v21-wolf-motion{background-image:url('assets/motion_v14/leap.webp');opacity:.7;animation-duration:720ms;animation-iteration-count:1;transform:translate(-50%,-56%) scale(1.0)}
.v21-scene[data-phase="landing"] .v21-beast-image{transition-delay:210ms}
.v21-scene[data-phase="identity"] .v21-electric-trace{opacity:.24}
.v21-scene[data-tier="SR"] .v21-crystal{filter:drop-shadow(0 0 18px #8ccbf6)}
.v21-scene[data-tier="SSR"] .v21-crystal{filter:drop-shadow(0 0 22px #c68ffc)}
.v21-scene[data-tier="UR"] .v21-crystal{filter:drop-shadow(0 0 22px #ffd7a8)}
