/* Opening scenes and Corruption's counters share the pausable battle clock. */
.opening-cutscene{--opening-reveal:0;--opening-progress:0;--opening-caption:0;position:absolute;inset:0;z-index:12;container-type:inline-size;overflow:hidden;pointer-events:none;visibility:hidden;opacity:var(--opening-reveal);perspective:1300px;transform-style:preserve-3d;background:radial-gradient(ellipse at 50% 45%,#392259,#120c26 70%)}
.team-scene[data-battle-state=intro-corruption] .opening-villain,.team-scene[data-battle-state=intro-summon] .opening-summon{visibility:visible}
.team-scene:is([data-battle-state=intro-corruption],[data-battle-state=intro-summon]) .battle-hud,.team-scene:is([data-battle-state=intro-corruption],[data-battle-state=intro-summon]) .battle-console{visibility:hidden}
.opening-art,.summon-background{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;transform:translate3d(calc(var(--team-x)*-8px),calc(var(--team-y)*-5px),-20px) scale(calc(1.035 + var(--opening-progress)*.035))}
.summon-background{filter:brightness(.46) saturate(.8)}
.opening-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,#080515e8,transparent 45%,#08051550),radial-gradient(ellipse at 50% 20%,transparent 35%,#12061c55)}
.opening-worlds{position:absolute;left:4%;right:4%;top:5%;z-index:2;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;transform:translate3d(calc(var(--team-x)*6px),calc(var(--team-y)*4px),16px)}
.opening-world{--world-reveal:0;display:flex;align-items:center;gap:5px;padding:5px 8px;background:linear-gradient(135deg,#161225e8,#291226e6);border:1px solid var(--member-color);border-radius:3px;color:white;font:700 11px/1.2 system-ui,sans-serif;box-shadow:0 3px 0 #060712,3px 8px 12px #04061599;opacity:var(--world-reveal);transform:translate3d(calc(var(--world-break,0px)*var(--world-direction,1)),calc(var(--world-break,0px)*.4),0) rotateZ(calc(var(--world-tilt,0deg)*var(--world-direction,1)))}
.opening-world .team-brand-icon{width:14px;height:14px}
.opening-dialogue.lifted-speech{position:absolute;left:7%;right:7%;bottom:7%;z-index:6;width:auto;opacity:var(--opening-caption);transform:translate3d(calc(var(--team-x)*8px),calc((1 - var(--opening-caption))*14px + var(--opening-lift,0px)),24px) rotateX(-2deg);transform-origin:50% 70%}
.opening-dialogue.lifted-speech p{display:block;margin:0;padding:17px 23px 21px;transform:translateZ(16px)}
.opening-speaker{display:block;font:750 12px/1.4 ui-monospace,monospace;letter-spacing:.11em;color:#e6ceff;margin-bottom:9px;text-shadow:0 2px 0 #351442}
.opening-dialogue strong{display:block;color:#fff;font:850 clamp(25px,3.4cqw,42px)/1.12 system-ui,sans-serif;letter-spacing:.005em;text-wrap:balance;text-shadow:0 2px 0 #4b2564,1px 4px 0 #2f1247,3px 7px 0 #220b33,5px 12px 8px #080315cc}
.opening-dialogue .summon-lead{display:block;margin-bottom:5px;font-size:.62em;font-weight:650;line-height:1.25;text-shadow:0 2px 0 #361746,2px 4px 5px #17061a}
.opening-villain .opening-dialogue{background:linear-gradient(145deg,#733d87,#4c225f 64%,#301333);border-color:#f2aed8}
.opening-villain.opening-art-fallback{background:#170b26 url('/assets/corruption-cutscene-point.webp') 50% 35%/58% auto no-repeat}
/* A foreground leader and two rows of complete hero silhouettes share one camera move. */
.summon-heroes{position:absolute;inset:0;z-index:3;transform-style:preserve-3d}
.summon-hero{--summon-reveal:0;--summon-scale:1.18;--summon-depth:0px;--summon-sheet:url('/assets/super-team-vector-victory-front.webp');position:absolute;left:var(--summon-x);bottom:var(--summon-bottom);width:var(--summon-size);aspect-ratio:1;z-index:var(--summon-order,2);opacity:var(--summon-reveal);transform:translate3d(calc(-50% + var(--team-x)*6px),calc((1 - var(--summon-reveal))*18px + var(--summon-float,0px) + var(--team-y)*4px),var(--summon-depth)) scale(var(--summon-scale));transform-origin:50% 88%;will-change:transform,opacity}
.summon-hero:before{content:'';position:absolute;inset:4% -5% -8%;z-index:-1;background:radial-gradient(ellipse at 50% 80%,color-mix(in srgb,var(--member-color) 20%,transparent),transparent 68%)}
.summon-pose{position:absolute;inset:0;display:block;background-image:var(--summon-sheet);background-size:200% 200%;background-position:var(--sprite-x) var(--sprite-y);background-repeat:no-repeat}
.summon-hero:is(.team-tripo,.team-pixverse,.team-magnific,.team-reactor){--summon-sheet:url('/assets/super-team-vector-victory-back.webp')}
.finale-art-ready .summon-hero:is(.team-higgsfield,.team-elevenlabs,.team-openart){--summon-sheet:url('/assets/super-team-finale-front.webp')}
.finale-art-ready .summon-hero:is(.team-tripo,.team-pixverse,.team-magnific,.team-reactor){--summon-sheet:url('/assets/super-team-finale-back.webp')}
.summon-hero.team-tencentcloud{--summon-sheet:url('/assets/tencent-cloud-character.webp')}
.summon-hero.team-tencentcloud .summon-pose{background-size:191.4504% 200%;background-position:0% 100%}
.summon-cloud-ready .summon-hero.team-tencentcloud .summon-pose{background-image:url('/assets/fighters/tencentcloud-idle.webp');background-size:contain;background-position:center}
.summon-company{position:absolute;left:50%;top:101%;display:flex;align-items:center;justify-content:center;gap:6px;transform:translateX(-50%);white-space:nowrap;color:#f8f4ff;font:700 14px/1.25 system-ui,sans-serif;text-shadow:0 2px 0 #151029,0 4px 9px #040514}
.summon-company .team-brand-icon{width:19px;height:19px;flex-shrink:0}
.summon-hero.team-tripo{--summon-x:13.5%;--summon-bottom:54%;--summon-size:19%;--summon-order:1}
.summon-hero.team-pixverse{--summon-x:32%;--summon-bottom:54%;--summon-size:18%;--summon-order:1}
.summon-hero.team-magnific{--summon-x:68%;--summon-bottom:54%;--summon-size:18%;--summon-order:1}
.summon-hero.team-reactor{--summon-x:86.5%;--summon-bottom:53%;--summon-size:20%;--summon-order:1}
.summon-hero.team-higgsfield{--summon-x:13.5%;--summon-bottom:31%;--summon-size:19.5%}
.summon-hero.team-elevenlabs{--summon-x:30.5%;--summon-bottom:31%;--summon-size:18.5%}
.summon-hero.team-openart{--summon-x:69.5%;--summon-bottom:31%;--summon-size:18.5%}
.summon-hero.team-tencentcloud{--summon-x:86.5%;--summon-bottom:31%;--summon-size:19.5%}
.summon-editor{position:absolute;left:50%;bottom:20%;width:38%;aspect-ratio:1;z-index:4;transform:translate3d(calc(-50% + var(--team-x)*14px),calc(var(--opening-lift,0px)*-.4 + var(--team-y)*8px),calc(24px + var(--summon-forward,0)*70px)) scale(calc(.83 + var(--summon-forward,0)*.31));transform-origin:50% 85%;background:url('/assets/editor-finale-detail.webp') center/contain no-repeat;will-change:transform}
.summon-editor img{display:block;width:100%;height:100%;object-fit:contain}
.opening-art[hidden],.summon-editor img[hidden]{display:none}
.summon-editor.summon-art-ready{background:none}
.opening-summon .opening-dialogue{bottom:5%}
.opening-summon .summon-background{transform:translate3d(calc(var(--team-x)*-8px),calc(var(--team-y)*-5px),-30px) scale(calc(1.12 - var(--summon-forward,0)*.08));filter:brightness(.32) saturate(.9)}
/* Abstract streaks and shrinking rings converge behind the leader's shoulders. */
.summon-warp{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;mix-blend-mode:screen}
.summon-warp-core{position:absolute;left:50%;top:43%;width:47%;aspect-ratio:1;border-radius:50%;background:radial-gradient(ellipse,#d9fcff80 0,#72dfff55 12%,#a675f126 38%,transparent 66%);opacity:calc(.35 + var(--summon-pulse,0)*.35);transform:translate(-50%,-50%) scale(calc(.9 + var(--summon-pulse,0)*.12))}
.summon-light-streaks,.summon-light-rings{position:absolute;inset:0}
.summon-light-streak{position:absolute;left:0;top:0;width:120px;height:2px;opacity:var(--streak-opacity,0);background:linear-gradient(90deg,transparent,var(--streak-color) 40%,#f2ffff 80%,transparent);box-shadow:0 0 8px var(--streak-color);transform:translate3d(var(--streak-x,0px),var(--streak-y,0px),0) translate(-50%,-50%) rotate(var(--streak-angle,0deg)) scaleX(var(--streak-scale,.5));transform-origin:center;will-change:transform,opacity}
.summon-light-ring{position:absolute;left:50%;top:43%;width:95%;aspect-ratio:1.5;border:1px solid #aceeff;border-radius:50%;box-shadow:0 0 10px #a487fa55,inset 0 0 9px #a1e9ff33;opacity:var(--ring-opacity,0);transform:translate(-50%,-50%) scale(var(--ring-scale,1));will-change:transform,opacity}

.team-corruption .team-sprite-pull,.team-corruption .team-sprite-dump{opacity:0;background-size:var(--counter-art-size,100%) auto;background-position:center bottom}
.team-corruption .team-sprite-pull{background-image:url('/assets/corruption-data-pull.webp')}
.team-corruption .team-sprite-dump{background-image:url('/assets/corruption-data-dump.webp')}
.team-corruption[data-enemy-pose=data-pull][data-pull-art=ready] .team-sprite-idle,.team-corruption[data-enemy-pose=data-dump][data-dump-art=ready] .team-sprite-idle{opacity:0}
.team-corruption[data-enemy-pose=data-pull][data-pull-art=ready] .team-sprite-pull,.team-corruption[data-enemy-pose=data-dump][data-dump-art=ready] .team-sprite-dump{opacity:var(--enemy-fade)}
.corruption-assault{position:absolute;inset:0;z-index:4;pointer-events:none;visibility:hidden}
.team-scene:is([data-battle-state=data-pull],[data-battle-state=data-dump]) .corruption-assault{visibility:visible}
.data-tether{position:absolute;left:var(--data-x,0px);top:var(--data-y,0px);width:var(--data-length,0px);height:2px;transform:rotate(var(--data-angle,0deg));transform-origin:0 50%;background:repeating-linear-gradient(90deg,#ffccd9 0 6px,#fd315a 6px 23px,transparent 23px 30px);background-position:var(--data-flow,0px) 0;box-shadow:0 0 8px #ff3767;opacity:var(--data-opacity,0)}
.data-packet{position:absolute;left:var(--data-x,0px);top:var(--data-y,0px);width:clamp(9px,1.5cqw,19px);aspect-ratio:1.4;border:1px solid #ffa9c7;border-top:3px solid #fd4871;background:linear-gradient(135deg,#b1195266,#55144bd9);box-shadow:2px 4px 0 #4f0b35,0 0 8px #ff376788;transform:translate(-50%,-50%) rotate(var(--data-angle,0deg)) scale(var(--data-scale,1));opacity:var(--data-opacity,0)}
.data-impact{position:absolute;left:var(--data-x,0px);top:var(--data-y,0px);width:clamp(24px,5cqw,66px);aspect-ratio:1;border:2px solid #ffa4bd;border-radius:50%;background:radial-gradient(circle,#ffcde488,#ff376955 35%,transparent 70%);box-shadow:0 0 15px #ff376788;transform:translate(-50%,-50%) scale(var(--data-scale,1));opacity:var(--data-opacity,0)}
.corruption-move-name{position:absolute;left:5%;bottom:28%;z-index:5;margin:0;padding:7px 11px;border-left:3px solid #ff4773;background:linear-gradient(90deg,#221025e6,#21102a70);transform:translate3d(0,calc((1 - var(--counter-title,0))*8px),20px);opacity:var(--counter-title,0);color:#fff;text-shadow:0 2px 0 #5b163e,2px 4px 5px #080615}
.corruption-move-name small{display:block;font:700 8px/1.4 ui-monospace,monospace;letter-spacing:.06em;color:#ffb8cf;margin-bottom:3px}
.corruption-move-name strong{font:850 italic clamp(20px,2.5cqw,31px)/1.15 system-ui,sans-serif;letter-spacing:.02em}
.team-damage{position:absolute;left:var(--data-x,0px);top:var(--data-y,0px);transform:translate(-50%,-50%) translateY(var(--data-rise,0px));opacity:var(--data-opacity,0);white-space:nowrap;font:850 italic clamp(22px,3cqw,38px)/1.2 system-ui,sans-serif;color:#ffe2e9;text-shadow:0 2px 0 #9a174b,2px 5px 0 #3e1139,4px 9px 7px #090315}
.team-scene:is([data-battle-state=data-pull],[data-battle-state=data-dump]) .team-character-float{animation-play-state:paused!important}
.team-character.is-hit .team-character-action{filter:brightness(calc(1 + var(--counter-hit,0)*.6)) drop-shadow(0 0 4px #ff718580)}
@media(min-width:761px){
  .summon-hero:is(.team-tripo,.team-pixverse,.team-magnific,.team-reactor) .summon-company{top:-6%}
}
@media(min-width:761px) and (max-width:1050px){
  .opening-dialogue strong{font-size:26px}.opening-dialogue.lifted-speech p{padding:17px 19px 20px}.opening-speaker{font-size:11px}
  .opening-summon .opening-dialogue strong{font-size:clamp(20px,2.8cqw,26px)}
  .opening-summon .opening-dialogue .summon-lead{font-size:max(14px,.62em)}
  .summon-company{font-size:12px;gap:4px}.summon-company .team-brand-icon{width:17px;height:17px}
}
@media(max-width:760px){
  .opening-art{top:13%;height:48%;object-fit:contain;transform:translate3d(calc(var(--team-x)*-3px),0,0) scale(1.02)}
  .opening-worlds{left:5%;right:5%;top:4%;gap:5px}.opening-world{font-size:9px;padding:4px 5px;gap:3px}.opening-world .team-brand-icon{width:11px;height:11px}
  .opening-dialogue.lifted-speech{left:7%;right:7%;bottom:7%;transform:translate3d(0,var(--opening-lift,0px),8px);border-radius:7px}
  .opening-dialogue.lifted-speech p{padding:14px 14px 18px;transform:translateZ(8px)}
  .opening-speaker{font-size:10px;letter-spacing:.03em;margin-bottom:8px}
  .opening-dialogue strong{font-size:clamp(23px,6.6cqw,28px);line-height:1.18;text-shadow:0 2px 0 #4b2564,1px 4px 0 #2f1247,3px 7px 6px #080315cc}
  .opening-dialogue .summon-lead{font-size:.68em;line-height:1.3}
  .summon-hero.team-tripo{--summon-x:16%;--summon-bottom:69%;--summon-size:22%}
  .summon-hero.team-pixverse{--summon-x:38%;--summon-bottom:69%;--summon-size:22%}
  .summon-hero.team-magnific{--summon-x:62%;--summon-bottom:69%;--summon-size:22%}
  .summon-hero.team-reactor{--summon-x:84%;--summon-bottom:69%;--summon-size:22%}
  .summon-hero.team-higgsfield{--summon-x:16%;--summon-bottom:48%;--summon-size:24%}
  .summon-hero.team-elevenlabs{--summon-x:35%;--summon-bottom:48%;--summon-size:24%}
  .summon-hero.team-openart{--summon-x:65%;--summon-bottom:48%;--summon-size:24%}
  .summon-hero.team-tencentcloud{--summon-x:84%;--summon-bottom:48%;--summon-size:24%}
  .summon-company{top:98%}.summon-company>span{display:none}.summon-company .team-brand-icon{width:18px;height:18px}
  .summon-editor{bottom:27%;width:42%}
  .summon-warp-core{width:76%}
  .opening-summon .opening-dialogue{bottom:5%}
  .corruption-move-name{left:4%;top:40%;bottom:auto;padding:6px 7px}.corruption-move-name small{font-size:6px}.corruption-move-name strong{font-size:18px}
}
@media(prefers-reduced-motion:reduce){
  .opening-cutscene{perspective:none}.opening-art,.opening-worlds,.opening-world,.opening-dialogue.lifted-speech,.opening-dialogue.lifted-speech p,.corruption-move-name{transform:none}
  .summon-editor{transform:translateX(-50%) scale(1.08);will-change:auto}
  .summon-hero{transform:translateX(-50%) scale(.92);will-change:auto}
  .summon-background{transform:none!important}.summon-warp-core{transform:translate(-50%,-50%);opacity:.45}
  .summon-light-streaks,.summon-light-rings{display:none}
  .team-character.is-hit .team-character-action{filter:none}
  .data-tethers,.data-packets,.data-impacts{display:none}
}
