.fxl{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}.fl{position:absolute;bottom:90px;font-size:30px;animation:flo 3s ease-out forwards;opacity:0}
@keyframes flo{0%{transform:translate(0,0) scale(.4);opacity:0}12%{opacity:1}100%{transform:translate(var(--x),-62vh) scale(var(--s));opacity:0}}
.fxb{position:fixed;left:50%;top:14px;transform:translateX(-50%);z-index:80;max-width:92vw;background:linear-gradient(180deg,var(--ac2),var(--ac3));color:var(--on);font-weight:800;padding:10px 18px;border-radius:14px;box-shadow:0 10px 40px #000a;animation:bin .5s cubic-bezier(.2,1.4,.4,1)}.fxb.out{opacity:0;transition:opacity .6s}
@keyframes bin{from{transform:translate(-50%,-80px);opacity:0}}
.fxg{position:fixed;z-index:90;pointer-events:none;color:#fff;font-family:inherit}
.fxg.out{opacity:0;transition:opacity .55s}
.fxg.stage{left:0;bottom:calc(14vh + 20px);width:min(100%,520px);height:min(46vh,360px);animation:sfly 4.6s cubic-bezier(.3,.7,.4,1) both}
.fxg.stage .mw{position:absolute;left:10px;bottom:48px;width:var(--sz);height:var(--sz)}
.fxg .mb{width:100%;height:100%;transform-origin:50% 100%;animation:mpop 1s cubic-bezier(.2,1.6,.4,1) both,mbob 1.1s 1s ease-in-out infinite}
.fxg .mb.hop{animation:mhop .6s cubic-bezier(.3,1.6,.5,1) both,mbob 1.1s .6s ease-in-out infinite}
.gimg{width:100%;height:100%;object-fit:contain;display:block;overflow:visible}.fxg .gimg{filter:drop-shadow(0 8px 10px rgba(0,0,0,.55))}.gemo{font-size:min(30vw,30vh);line-height:1;display:block;text-align:center}
.fxg .glow{position:absolute;inset:-35%;border-radius:50%;background:radial-gradient(circle,#ffd45e88 0,#ffb30033 40%,transparent 68%);animation:gglow 1.4s ease-in-out infinite alternate}
.fxg .gb{position:absolute;left:10px;bottom:0;display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:99px;background:linear-gradient(90deg,#2b1f06f2,#141007ee);border:1.5px solid var(--ac2);box-shadow:0 6px 24px #000a,0 0 18px var(--ac2)55;max-width:94vw;animation:gbin .6s .25s cubic-bezier(.2,1.4,.4,1) both}
.gb .av{width:38px;height:38px;border-radius:50%;background:#3b2a05;display:grid;place-items:center;font-size:22px}.gtx{display:flex;flex-direction:column;line-height:1.2;font-size:14px;min-width:0}.gtx b{color:#fff;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46vw}.gtx span{color:#d9c895}.gtx em{font-style:normal;color:var(--ac2);font-weight:800}
.cmb{font-size:30px;font-weight:900;font-style:italic;color:#ffd45e;text-shadow:0 2px 0 #7a4a00,0 0 14px #ffb300;padding-left:4px}.cmb b{font-size:1.15em}.cmb.pop{animation:cpop .5s cubic-bezier(.2,2,.4,1)}
.fxg .gm{position:absolute;left:14px;bottom:-26px;font-size:13px;color:#ffe8a3;max-width:90vw;text-shadow:0 1px 6px #000}
.fxg.stage.t3 .gb,.fxg.stage.t4 .gb{border-color:#ffe08a;box-shadow:0 6px 24px #000a,0 0 28px #ffcf4acc}
.spk{position:absolute;left:calc(10px + 60px);bottom:calc(48px + 70px);color:#ffe08a;opacity:0;text-shadow:0 0 8px #ffb300;animation:spk 1.6s ease-out infinite}
.fxg.full{inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at 50% 46%,#5a3500f0,#14052af7 72%);animation:gin .45s ease-out;overflow:hidden;padding:20px}
.fxg.full .rays{position:absolute;left:50%;top:46%;width:230vmax;height:230vmax;margin:-115vmax 0 0 -115vmax;background:repeating-conic-gradient(from 0deg,#ffd45e33 0 7deg,transparent 7deg 20deg);animation:rot 14s linear infinite;-webkit-mask:radial-gradient(circle,#000 0,transparent 42%);mask:radial-gradient(circle,#000 0,transparent 42%)}
.fxg.full .mw{position:relative;width:min(62vmin,640px);height:min(62vmin,640px);perspective:900px}
.fxg.full .mb{animation:mbig 1.4s cubic-bezier(.2,1.5,.4,1) both,mspin 3.2s 1.4s ease-in-out infinite}.fxg.full .mb.hop{animation:mhop .6s cubic-bezier(.3,1.6,.5,1) both,mspin 3.2s .6s ease-in-out infinite}
.fxg.full .gb{position:relative;left:auto;bottom:auto;margin-top:2.5vh;padding:10px 26px 10px 10px;transform:scale(1.35);animation:gbin .7s .5s cubic-bezier(.2,1.4,.4,1) both}
.fxg.full .spk{left:50%;bottom:50%}.fxg.full .gm{position:relative;left:auto;bottom:auto;margin-top:5vh;font-size:min(4.2vw,2.8vh)}
.fxg.rm *{animation:none!important}.fxg.rm .mb{animation:none!important}.fxg.rm{animation:gin .3s!important}
.cf{position:absolute;top:-60px;animation:cfall linear forwards;pointer-events:none}
@keyframes gin{from{opacity:0}}
@keyframes sfly{0%{transform:translate(-110%,40px)}14%{transform:translate(0,0)}100%{transform:translate(0,0)}}
@keyframes mpop{0%{transform:translate(-30vw,80px) scale(.2,.2) rotate(-40deg)}35%{transform:translate(0,-60px) scale(1.15,.85) rotate(8deg)}50%{transform:scale(.88,1.18)}65%{transform:scale(1.08,.92)}80%{transform:scale(.97,1.04)}100%{transform:none}}
@keyframes mbig{0%{transform:scale(0) rotate(-30deg)}55%{transform:scale(1.15,.9)}75%{transform:scale(.94,1.08)}100%{transform:none}}
@keyframes mhop{0%{transform:scale(1.2,.8)}40%{transform:translateY(-34px) scale(.92,1.12)}70%{transform:scale(1.08,.94)}100%{transform:none}}
@keyframes mbob{0%,100%{transform:translateY(0) scale(1,1)}25%{transform:translateY(-14px) scale(.97,1.04)}50%{transform:translateY(0) scale(1.05,.95)}}
@keyframes mspin{0%,100%{transform:rotateY(-14deg) translateY(0)}50%{transform:rotateY(14deg) translateY(-2vmin) scale(1.03)}}
@keyframes gglow{from{opacity:.55;transform:scale(.92)}to{opacity:1;transform:scale(1.08)}}
@keyframes gbin{0%{transform:translateX(-120%) scale(.6);opacity:0}100%{opacity:1}}.fxg.full .gb{--k:1}
@keyframes cpop{0%{transform:scale(.4)}60%{transform:scale(1.6) rotate(-6deg)}100%{transform:scale(1)}}
@keyframes spk{0%{transform:translate(0,0) scale(.2);opacity:0}15%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(1.1) rotate(160deg);opacity:0}}
@keyframes rot{to{transform:rotate(360deg)}}
@keyframes cfall{to{transform:translateY(112vh) rotate(540deg)}}
#fxsnd{position:fixed;left:8px;bottom:8px;z-index:95;width:34px;height:34px;border-radius:50%;border:1px solid var(--ac2)66;background:#000a;color:var(--ac2);font-size:16px;cursor:pointer}
#credit{text-align:center;font-size:12px;color:var(--mut);opacity:.8;padding:14px 10px 18px;letter-spacing:.4px}#credit b{color:var(--ac2);font-weight:600}
@media print{#credit{display:none}}

.fxg.full.pk-halloween{background:radial-gradient(circle at 50% 46%,rgba(120,40,160,.92),rgba(18,6,30,.97) 72%)}.fxg.full.pk-halloween .rays{background:repeating-conic-gradient(from 0deg,rgba(255,150,40,.22) 0 7deg,transparent 7deg 20deg)}
.fxg.full.pk-christmas{background:radial-gradient(circle at 50% 46%,rgba(20,110,70,.92),rgba(8,24,30,.97) 72%)}.fxg.full.pk-christmas .rays{background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.2) 0 7deg,transparent 7deg 20deg)}
.fxg.pk-halloween .gb{border-color:#ff9a2e;box-shadow:0 6px 24px #000a,0 0 22px rgba(255,140,30,.45)}.fxg.pk-christmas .gb{border-color:#ff5a6a;box-shadow:0 6px 24px #000a,0 0 22px rgba(255,80,100,.4)}
.fxg.pk-halloween .glow{background:radial-gradient(circle,rgba(255,140,30,.5) 0,rgba(150,60,220,.2) 42%,transparent 68%)}.fxg.pk-christmas .glow{background:radial-gradient(circle,rgba(255,255,255,.45) 0,rgba(80,200,140,.2) 42%,transparent 68%)}
.fxg .gb{background:linear-gradient(90deg,rgba(30,22,48,.96),rgba(14,11,24,.94));border:1.5px solid var(--ac)}
