/* All progression is written by the pausable battle clock. No independent animation. */
.champion-effects{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:visible}
.frequency-wave,.paint-flight,.paint-splash{position:absolute;left:var(--power-x,0px);top:var(--power-y,0px);opacity:var(--power-alpha,0);transform:translate(-50%,-50%) rotate(var(--power-angle,0deg)) scale(var(--power-scale,1));transform-origin:center;pointer-events:none;will-change:transform,opacity}
.frequency-wave{width:clamp(42px,7vw,91px);height:clamp(42px,7vw,91px);overflow:visible;filter:drop-shadow(0 0 3px currentColor)}
.frequency-wave path{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.frequency-wave[data-frequency='2']{stroke-dasharray:6 4}
.frequency-wave[data-frequency='4'] path{stroke-width:4}
.frequency-wave[data-frequency='8'] path{stroke-width:2}
.frequency-wave[data-frequency='11'] path{stroke-width:3.5}
.paint-flight{width:clamp(12px,2vw,27px);height:clamp(9px,1.5vw,21px);border-radius:var(--paint-shape,30% 65% 40% 60%);background:radial-gradient(ellipse at 30% 25%,#fff9,transparent 40%),currentColor;box-shadow:4px 1px 0 -2px currentColor,10px 4px 0 -4px currentColor}
.paint-flight:after{content:'';position:absolute;left:65%;top:38%;width:150%;height:25%;border-radius:50%;background:linear-gradient(90deg,currentColor,transparent)}
.paint-splash{width:clamp(20px,3.5vw,47px);height:clamp(21px,3.5vw,47px);background:currentColor;clip-path:polygon(49% 0,57% 29%,76% 10%,70% 35%,99% 27%,79% 48%,100% 65%,72% 64%,82% 91%,59% 73%,49% 100%,41% 75%,15% 94%,29% 64%,0 66%,24% 48%,0 31%,32% 34%,25% 7%,44% 28%);border-radius:var(--paint-shape,45%)}
.paint-splash:after{content:'';position:absolute;inset:32%;border-radius:45%;background:#fff5}
.paint-foreground{z-index:9;filter:drop-shadow(2px 4px 2px #10051a66);width:clamp(25px,4vw,52px);height:clamp(25px,4vw,52px)}
.champion-effects[data-active=none]{visibility:hidden}
.eleven-snap-pose{position:absolute;inset:0;background:url('/assets/fighters/elevenlabs-snap.png') center/contain no-repeat;opacity:0;pointer-events:none}
.team-character.team-elevenlabs[data-fighter-snap-detail=ready][data-sonic-pose=snap] .eleven-snap-pose{opacity:var(--sonic-pose,0);transform:scaleX(var(--sonic-turn-scale,1))}
.team-character.team-elevenlabs[data-fighter-snap-detail=ready][data-sonic-pose=snap] .team-sprite{opacity:calc(1 - var(--sonic-pose,0));transform:scaleX(var(--sonic-turn-scale,1))}
/* The atlas remains visible if the optional turn pose cannot decode. */
.team-character.team-elevenlabs[data-sonic-pose=snap]:not([data-fighter-snap-detail=ready]) .team-sprite{transform:scaleX(var(--sonic-turn-scale,1)) rotate(calc(var(--sonic-pose,0)*7deg))}
.eleven-snap-spark{position:absolute;left:67%;top:34%;width:18%;aspect-ratio:1;background:#f7e7ff;clip-path:polygon(50% 0,58% 37%,88% 15%,66% 44%,100% 50%,65% 57%,88% 85%,57% 65%,50% 100%,43% 64%,12% 86%,36% 56%,0 50%,36% 43%,12% 14%,43% 36%);opacity:var(--sonic-snap,0);transform:scale(var(--sonic-snap-size,1));filter:drop-shadow(0 0 5px #d3a0ff);pointer-events:none}
@media(max-width:600px){.frequency-wave{width:44px;height:44px}.frequency-wave path{stroke-width:2}.paint-foreground:nth-last-child(1){display:none}.paint-foreground{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){.champion-effects,.eleven-snap-spark{display:none}.team-character.team-elevenlabs[data-sonic-pose=snap] .team-sprite,.team-character.team-elevenlabs .eleven-snap-pose{transform:none!important}}
/* Team-combo bolts carry the same sound and paint identities. */
.combo-projectile[data-kind=elevenlabs]{background:none;border:3px solid #c69aff;border-radius:50%;width:42px;height:52px;box-shadow:none}
.combo-projectile[data-kind=elevenlabs] i{inset:-7px -12px;border:2px solid #86e7ff;border-radius:50%}
.combo-projectile[data-kind=elevenlabs] b{inset:8px 5px;border:2px solid #ffb5e8;border-radius:50%;opacity:.85}
.combo-projectile[data-kind=openart]{border:0;border-radius:31% 65% 39% 61%;background:conic-gradient(#ff637f,#ffc447,#70e6c4,#709cff,#d78bff,#ff637f);width:38px;height:27px;box-shadow:5px 6px 0 -3px #ffc447,-9px -4px 0 -5px #70e6c4}
.combo-projectile[data-kind=openart] i,.combo-projectile[data-kind=openart] b{border:0;background:#ff637f;inset:auto;left:120%;top:50%;width:9px;height:7px;border-radius:44%}
.combo-projectile[data-kind=openart] b{left:150%;top:80%;background:#70e6c4;width:6px;height:6px;opacity:.85}
