
.end .sm-mot{display:none;color:var(--fn-mot,#F5AE00)}
.end.dit .sm-mot{display:inline-block;white-space:pre}
.end .mo-end{isolation:isolate;overflow:visible;position:relative;transition:transform .45s cubic-bezier(.23,1,.32,1)}
.end .mo-end>img,.end .mo-end>canvas{z-index:1;transition:filter .25s ease}
.end .mo-end.super>canvas,.end .mo-end.super>img{filter:var(--fn-teinte,none)}
.end[data-fn=super]{--fn-mot:#F5AE00;--fn-c1:#F5AE00;--fn-c2:#FFC21F;--fn-c3:#FFE9A8;--fn-halo:rgba(245,174,0,.42);--fn-p:#FFE08A;--fn-fl:255,235,170;--fn-teinte:drop-shadow(0 0 10px rgba(255,200,40,.85))}
.end[data-fn=turbo]{--fn-mot:#FF7D98;--fn-halo:rgba(255,92,128,.4);--fn-p:#FFF4F6;--fn-fl:255,214,224;--fn-teinte:drop-shadow(0 0 10px rgba(255,110,140,.8))}
.end[data-fn=giga]{--fn-mot:#FFA552;--fn-halo:rgba(255,165,82,.3);--fn-fl:255,236,214;--fn-teinte:drop-shadow(0 0 8px rgba(255,170,90,.6))}
.end[data-fn=hyper]{--fn-mot:#5CCBFF;--fn-halo:rgba(70,180,255,.45);--fn-p:#9DE3FF;--fn-fl:200,240,255;--fn-teinte:drop-shadow(0 0 10px rgba(90,200,255,.85))}
.end[data-fn=ultra]{--fn-mot:#FF4D5E;--fn-c1:#0B0920;--fn-c2:#2B0B26;--fn-c3:#FF3B4E;--fn-halo:rgba(255,59,78,.34);--fn-p:#FF3B4E;--fn-fl:255,90,104;--fn-teinte:drop-shadow(0 0 12px rgba(255,59,78,.75))}
.end[data-fn=mega]{--fn-mot:#8CFF6B;--fn-halo:rgba(120,255,100,.36);--fn-p:#C8FFB8;--fn-fl:214,255,200;--fn-teinte:drop-shadow(0 0 10px rgba(130,255,100,.8))}


.fn-aura{position:absolute;left:50%;bottom:-6%;width:128%;height:128%;margin-left:-64%;z-index:0;pointer-events:none;transform-origin:50% 90%;opacity:0;filter:blur(7px)}
.fn-aura svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.fn-aura path{transform-origin:50% 100%;transform-box:view-box}
.fn-aura .a1{fill:var(--fn-c1);opacity:.5;animation:fn-f1 .46s ease-in-out infinite alternate}
.fn-aura .a2{fill:var(--fn-c2);opacity:.55;animation:fn-f2 .34s ease-in-out infinite alternate}
.fn-aura .a3{fill:var(--fn-c3);opacity:.55;animation:fn-f1 .28s ease-in-out infinite alternate-reverse}
.end[data-fn=ultra] .fn-aura{filter:blur(5px)}.end[data-fn=ultra] .fn-aura .a1{opacity:.85}.end[data-fn=ultra] .fn-aura .a2{opacity:.8}.end[data-fn=ultra] .fn-aura .a3{opacity:.4}
.mo-end.super .fn-aura{opacity:0}.end[data-fn=super] .mo-end.super .fn-aura,.end[data-fn=ultra] .mo-end.super .fn-aura{opacity:1}
@keyframes fn-f1{from{transform:scale(.96,.92) skewX(-2deg)}to{transform:scale(1.03,1.06) skewX(2deg)}}
@keyframes fn-f2{from{transform:scale(1.02,1.04) skewX(2.5deg)}to{transform:scale(.97,.93) skewX(-2.5deg)}}


.fn-halo{position:absolute;inset:-22%;z-index:-1;border-radius:50%;background:radial-gradient(circle,var(--fn-halo,transparent),transparent 68%);opacity:0;pointer-events:none}
.mo-end.super .fn-halo{opacity:1}
.fn-p{position:absolute;bottom:4%;width:6px;height:18px;border-radius:9px;background:var(--fn-p,#FFE08A);opacity:0;z-index:0;pointer-events:none}
.end[data-fn=super] .mo-end:is(.charge,.super) .fn-p{animation:fn-mont 1s linear infinite}
.end[data-fn=ultra] .fn-p{width:4px;height:26px;border-radius:2px}
.end[data-fn=ultra] .mo-end:is(.charge,.super) .fn-p{animation:fn-mont .7s linear infinite}
.end[data-fn=turbo] .fn-p{width:42%;height:auto;aspect-ratio:1;border-radius:50%;bottom:34%;margin-left:-21%;z-index:2;filter:blur(4px);background:radial-gradient(circle,#fff 0 22%,rgba(255,236,241,.85) 45%,transparent 70%)}
.end[data-fn=turbo] .mo-end:is(.charge,.super) .fn-p{animation:fn-vap 1.1s ease-out infinite}
.end[data-fn=mega] .fn-p{width:5px;height:5px;border-radius:50%;bottom:50%;box-shadow:0 0 8px 2px rgba(140,255,107,.8)}
.end[data-fn=mega] .mo-end:is(.charge,.super) .fn-p{animation:fn-saut .6s steps(3,end) infinite}
.end[data-fn=hyper] .fn-p{width:22%;height:3px;border-radius:3px;bottom:50%;opacity:0;background:linear-gradient(90deg,transparent,var(--fn-p))}
.end[data-fn=hyper] .mo-end:is(.charge,.super) .fn-p{animation:fn-vent .9s cubic-bezier(.55,0,.45,1) infinite}
@keyframes fn-mont{0%{transform:translateY(0) scaleY(.6);opacity:0}15%{opacity:.95}100%{transform:translateY(-230%) translateY(-120px) scaleY(1.2);opacity:0}}
@keyframes fn-vap{0%{transform:translateY(0) scale(.45);opacity:0}18%{opacity:1}100%{transform:translateY(-110%) scale(1.45);opacity:0}}
@keyframes fn-saut{0%{transform:translate(0,0);opacity:0}34%{transform:translate(-14px,-40px);opacity:1}67%{transform:translate(12px,-70px);opacity:.8}100%{transform:translate(-6px,-96px);opacity:0}}
@keyframes fn-vent{0%{transform:translate(-120%,-40px) rotate(-12deg);opacity:0}40%{opacity:1}100%{transform:translate(60%,30px) rotate(10deg);opacity:0}}


.fn-orbe{position:absolute;left:70%;top:60%;width:27%;aspect-ratio:1;margin:-13.5% 0 0 -13.5%;z-index:2;border-radius:50%;opacity:0;pointer-events:none;background:radial-gradient(circle at 46% 44%,#fff 0 18%,#BFF0FF 30%,#3DB6FF 58%,rgba(30,120,255,.15) 72%,transparent 74%);box-shadow:0 0 28px 8px rgba(80,190,255,.65)}
.fn-orbe::before,.fn-orbe::after{content:"";position:absolute;inset:-8%;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 20%,rgba(255,255,255,.95) 26%,transparent 34% 60%,rgba(190,240,255,.9) 66%,transparent 74%);animation:fn-tour .5s linear infinite}
.fn-orbe::after{inset:6%;animation-duration:.36s;animation-direction:reverse;opacity:.8}
.end[data-fn=hyper] .mo-end.super .fn-orbe{opacity:1;animation:fn-pulse .5s ease-in-out infinite alternate}
@keyframes fn-tour{to{transform:rotate(360deg)}}
@keyframes fn-pulse{from{transform:scale(.94)}to{transform:scale(1.06)}}


.fn-fu{position:absolute;left:calc(50% + var(--x));top:calc(50% + var(--y));width:46%;aspect-ratio:1;margin:-23% 0 0 -23%;border-radius:50%;z-index:2;opacity:0;pointer-events:none;background:radial-gradient(circle,#fff 0 35%,rgba(238,240,255,.85) 55%,transparent 70%);filter:blur(2px)}
.end[data-fn=giga] .mo-end.super .fn-fu{animation:fn-pouf .9s cubic-bezier(.23,1,.32,1) var(--d) both}
@keyframes fn-pouf{0%{transform:scale(.3);opacity:0}25%{transform:scale(1);opacity:1}100%{transform:scale(1.5);opacity:0}}


.fn-onde{position:absolute;left:50%;bottom:-2%;width:90%;height:22%;margin-left:-45%;border-radius:50%;border:2px solid rgba(255,59,78,.75);opacity:0;z-index:0;pointer-events:none}
.end[data-fn=ultra] .mo-end.super .fn-onde{animation:fn-onde 1.65s cubic-bezier(.23,1,.32,1) infinite}
@keyframes fn-onde{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.9);opacity:0}}
.fn-voile{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at var(--fx,75%) 55%,rgba(60,0,12,.5),rgba(4,2,16,.55) 60%);opacity:0}
.end[data-fn=ultra]:has(.mo-end.super) .fn-voile{opacity:1}
.end>div:not(.fn-voile):not(.fn-flash){position:relative;z-index:1}


.fn-eclairs{position:absolute;inset:-14%;z-index:2;pointer-events:none;opacity:0}
.fn-eclairs svg{width:100%;height:100%;overflow:visible}
.fn-eclairs path{fill:none;stroke:#D6FFC8;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px #6BFF4A);opacity:0;animation:fn-cr .62s steps(1,end) infinite}
.end[data-fn=mega] .mo-end:is(.charge,.super) .fn-eclairs{opacity:1}
@keyframes fn-cr{0%{opacity:0}12%{opacity:1}24%{opacity:.15}36%{opacity:1}48%,100%{opacity:0}}

.fn-flash{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle at var(--fx,75%) 50%,#fff,rgba(var(--fn-fl,255,235,170),.75) 22%,rgba(var(--fn-fl,255,235,170),0) 62%);opacity:0}

@media (prefers-reduced-motion:reduce){
 .fn-aura path,.fn-p,.fn-orbe,.fn-orbe::before,.fn-orbe::after,.fn-onde,.fn-eclairs path{animation:none!important}
 .fn-p,.fn-fu,.fn-onde{display:none}
 .end[data-fn=mega] .mo-end.super .fn-eclairs path{opacity:.9}
}
