.victory-effect{position:fixed;inset:0;z-index:180;overflow:hidden;pointer-events:none;contain:strict}.victory-effect>span{position:absolute;display:block}.victory-effect i{font-style:normal}@keyframes vfx-arc-x{0%{translate:0 0}to{translate:var(--dx) 0}}@keyframes vfx-arc-y{0%{transform:translateY(0);opacity:1;animation-timing-function:cubic-bezier(.15,.75,.35,1)}38%{transform:translateY(var(--peak));animation-timing-function:cubic-bezier(.45,0,.85,.5)}85%{opacity:1}to{transform:translateY(calc(var(--peak) + 55vh + var(--drop)));opacity:0}}@keyframes vfx-fall{0%{transform:translateY(0)}to{transform:translateY(calc(100vh + var(--size, 3rem) * 3))}}@keyframes vfx-drift{0%{translate:0 0}to{translate:var(--drift) 0}}@keyframes vfx-sway{0%{translate:-1.2vw 0}to{translate:1.2vw 0}}@keyframes vfx-fade-in-out{0%{opacity:0}20%,70%{opacity:1}to{opacity:0}}.vfx-confetti__piece{bottom:-1.5rem;width:0;height:0;animation:vfx-arc-x 2.4s cubic-bezier(.1,.7,.35,1) var(--delay) both,vfx-arc-y 2.4s linear var(--delay) both}.vfx-confetti__piece:before{content:"";position:absolute;left:-.28rem;top:-.45rem;width:.55rem;height:.9rem;border-radius:2px;background:var(--c);box-shadow:inset 0 -.2rem #00000024;animation:vfx-flutter var(--spin) linear var(--delay) infinite}.vfx-confetti__piece--ribbon:before{width:.3rem;height:1.35rem;border-radius:999px}.vfx-confetti__piece--circle:before{width:.6rem;height:.6rem;border-radius:50%}.vfx-confetti__piece--square:before{width:.7rem;height:.7rem}@keyframes vfx-flutter{0%{transform:rotate3d(1,.35,.2,0)}to{transform:rotate3d(1,.35,.2,360deg)}}.vfx-firework{width:0;height:0}.vfx-firework__rocket{position:absolute;left:-.1rem;top:0;width:.2rem;height:1.4rem;border-radius:999px;background:linear-gradient(to bottom,#fff,var(--c) 40%,transparent);box-shadow:0 0 .6rem var(--c);opacity:0;animation:vfx-rocket .52s cubic-bezier(.2,.7,.4,1) var(--delay) both}@keyframes vfx-rocket{0%{transform:translateY(var(--rise));opacity:1}90%{opacity:1}to{transform:translateY(0);opacity:0}}.vfx-firework__flash{position:absolute;left:-3.5rem;top:-3.5rem;width:7rem;height:7rem;border-radius:50%;background:radial-gradient(circle,#fff 0 8%,color-mix(in srgb,var(--c) 70%,transparent) 28%,transparent 68%);opacity:0;animation:vfx-flash .7s ease-out calc(var(--delay) + .48s) both}@keyframes vfx-flash{0%{transform:scale(.2);opacity:.9}to{transform:scale(1.7);opacity:0}}.vfx-firework__burst{position:absolute;left:0;top:0;animation:vfx-droop 1.4s ease-in calc(var(--delay) + .48s) both}@keyframes vfx-droop{0%{transform:translateY(0)}to{transform:translateY(7vh)}}.vfx-firework__spark{position:absolute;left:0;top:-.09rem;width:1.4rem;height:.18rem;border-radius:999px;transform-origin:0 50%;background:linear-gradient(90deg,transparent,var(--c) 55%,#fff);box-shadow:0 0 .4rem var(--c);opacity:0;animation:vfx-spark 1.3s cubic-bezier(.1,.8,.3,1) calc(var(--delay) + .48s) both}@keyframes vfx-spark{0%{transform:translate(0) scaleX(.3);opacity:1}60%{opacity:1}to{transform:translate(var(--r)) scaleX(.6);opacity:0}}.vfx-tile{top:calc(var(--size) * -1.6);width:var(--size);height:var(--size);perspective:30rem;animation:vfx-fall var(--dur) cubic-bezier(.4,0,.9,.7) var(--delay) both,vfx-drift var(--dur) ease-in-out var(--delay) both}.vfx-tile i{display:grid;place-items:center;width:100%;height:100%;border-radius:.3rem;background:var(--tile-bg);color:#fff;font-size:calc(var(--size) * .5);font-weight:900;box-shadow:inset 0 .15rem #ffffff59,inset 0 -.2rem #0003,0 .4rem .8rem -.3rem #00000080;animation:vfx-tile-flip var(--dur) ease-in-out var(--delay) both}.vfx-tile--correct{--tile-bg: var(--tile-correct, #6aaa64)}.vfx-tile--present{--tile-bg: var(--tile-present, #c9b458)}.vfx-tile--absent{--tile-bg: #787c7e}@keyframes vfx-tile-flip{0%{transform:rotate(-10deg) rotateX(0)}to{transform:rotate(14deg) rotateX(var(--flip))}}.vfx-nova__core,.vfx-nova__rays,.vfx-nova__ring,.vfx-nova__spark{left:50%;top:50%;border-radius:50%}.vfx-nova__rays{width:110vmax;height:110vmax;margin:-55vmax 0 0 -55vmax;background:repeating-conic-gradient(from 0deg,rgb(255 255 255 / .24) 0deg 3deg,transparent 3deg 15deg);-webkit-mask:radial-gradient(circle,transparent 4%,#000 14%,transparent 50%);mask:radial-gradient(circle,transparent 4%,#000 14%,transparent 50%);opacity:0;animation:vfx-nova-rays 2.2s ease-out both}@keyframes vfx-nova-rays{0%{transform:scale(.3) rotate(0);opacity:0}20%{opacity:1}to{transform:scale(1) rotate(35deg);opacity:0}}.vfx-nova__core{width:30vmin;height:30vmin;margin:-15vmin 0 0 -15vmin;background:radial-gradient(circle,#fff 0 16%,rgb(255 246 214 / .9) 28%,color-mix(in srgb,var(--tile-present, #c9b458) 60%,transparent) 48%,transparent 70%);opacity:0;animation:vfx-nova-core 1.2s cubic-bezier(.2,.8,.3,1) both}@keyframes vfx-nova-core{0%{transform:scale(0);opacity:.75}to{transform:scale(2.6);opacity:0}}.vfx-nova__ring{width:20vmin;height:20vmin;margin:-10vmin 0 0 -10vmin;border:.3rem solid var(--c);box-shadow:0 0 1rem var(--c),inset 0 0 1rem var(--c);opacity:0;animation:vfx-nova-ring 1.3s cubic-bezier(.15,.7,.3,1) var(--delay) both}@keyframes vfx-nova-ring{0%{transform:scale(.1);opacity:1}to{transform:scale(6);opacity:0}}.vfx-nova__spark{width:.5rem;height:.5rem;margin:-.25rem 0 0 -.25rem;background:var(--c);box-shadow:0 0 .6rem .1rem var(--c);opacity:0;animation:vfx-nova-spark 1.5s cubic-bezier(.1,.75,.3,1) var(--delay) both}@keyframes vfx-nova-spark{0%{transform:translate(0) scale(1.2);opacity:1}70%{opacity:1}to{transform:translate(var(--r)) scale(.3);opacity:0}}.vfx-balloon{bottom:calc(var(--size) * -2.6);width:var(--size);height:calc(var(--size) * 1.2);animation:vfx-balloon-rise var(--dur) cubic-bezier(.35,0,.65,1) var(--delay) both,vfx-sway var(--sway) ease-in-out var(--delay) infinite alternate}@keyframes vfx-balloon-rise{0%{transform:translateY(0)}to{transform:translateY(calc(-100vh - var(--size) * 3))}}.vfx-balloon:before{content:"";position:absolute;inset:0;border-radius:50% 50% 48% 52%/56% 56% 44% 44%;background:radial-gradient(circle at 32% 26%,rgb(255 255 255 / .75) 0 7%,transparent 20%),radial-gradient(circle at 50% 45%,var(--c) 0 55%,color-mix(in srgb,var(--c) 68%,#000) 100%);box-shadow:inset -.3rem -.4rem .8rem #0000002e;transform-origin:50% 100%;animation:vfx-balloon-tilt var(--sway) ease-in-out var(--delay) infinite alternate}.vfx-balloon:after{content:"";position:absolute;top:100%;left:calc(50% - 1px);width:2px;height:calc(var(--size) * 1.2);background:linear-gradient(color-mix(in srgb,var(--c) 55%,#888),transparent)}@keyframes vfx-balloon-tilt{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}.vfx-jackpot__glow{inset:0 0 auto;height:38vh;background:linear-gradient(180deg,rgb(255 200 60 / .38),transparent);opacity:0;animation:vfx-fade-in-out 2.7s ease-in-out both}.vfx-coin{top:calc(var(--size) * -1.5);width:var(--size);height:var(--size);perspective:20rem;animation:vfx-fall var(--dur) cubic-bezier(.45,0,.9,.6) var(--delay) both}.vfx-coin i{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff7cc,#ffd54a 35%,#e0a106 70%,#a86b00);color:#a86b00;font-size:calc(var(--size) * .5);font-weight:900;box-shadow:inset 0 0 0 calc(var(--size) * .07) #f7c948,inset 0 0 0 calc(var(--size) * .11) #b8860b,0 .3rem .6rem -.2rem #00000073;animation:vfx-coin-flip var(--flip) linear var(--delay) infinite}@keyframes vfx-coin-flip{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}.vfx-shooting-star{width:var(--len);height:.14rem;border-radius:999px;background:linear-gradient(90deg,transparent,rgb(255 255 255 / .25) 40%,#fff);rotate:150deg;transform-origin:100% 50%;opacity:0;animation:vfx-shoot .9s cubic-bezier(.3,.1,.4,1) var(--delay) both}.vfx-shooting-star:after{content:"";position:absolute;right:-.2rem;top:50%;width:.4rem;height:.4rem;margin-top:-.2rem;border-radius:50%;background:#fff;box-shadow:0 0 .6rem .2rem #c8e6ffe6}@keyframes vfx-shoot{0%{transform:translate(0);opacity:0}15%{opacity:1}to{transform:translate(60vmax);opacity:0}}.vfx-twinkle{width:var(--size);height:var(--size);color:var(--c);font-size:var(--size);line-height:1;text-align:center;text-shadow:0 0 .35em var(--c),0 0 .1em #fff;opacity:0;animation:vfx-twinkle 1.1s ease-in-out var(--delay) both}@keyframes vfx-twinkle{0%{transform:scale(0) rotate(0);opacity:0}45%{transform:scale(1.1) rotate(90deg);opacity:1}to{transform:scale(0) rotate(180deg);opacity:0}}.vfx-emoji{bottom:-3rem;font-size:var(--size);line-height:1;animation:vfx-arc-x 2.4s cubic-bezier(.2,.6,.4,1) var(--delay) both,vfx-arc-y 2.4s linear var(--delay) both}.vfx-emoji i{display:block;animation:vfx-emoji-spin 2.4s ease-out var(--delay) both}@keyframes vfx-emoji-spin{0%{transform:rotate(0) scale(.5)}20%{transform:rotate(calc(var(--spin) * .3)) scale(1.15)}to{transform:rotate(var(--spin)) scale(1)}}.vfx-bubble{bottom:calc(var(--size) * -1.2);width:var(--size);height:var(--size);border-radius:50%;background:radial-gradient(circle at 30% 28%,rgb(255 255 255 / .9) 0 6%,transparent 16%),radial-gradient(circle,transparent 56%,rgb(150 220 255 / .3) 70%,rgb(255 160 230 / .4) 84%,rgb(255 255 255 / .65) 100%);box-shadow:inset 0 0 0 1px #78aadc73,0 0 .6rem #96dcff40;opacity:0;animation:vfx-bubble-rise var(--dur) cubic-bezier(.25,.6,.4,1) var(--delay) both,vfx-sway var(--wobble) ease-in-out var(--delay) infinite alternate}@keyframes vfx-bubble-rise{0%{transform:translateY(0) scale(.6);opacity:0}10%{opacity:1}88%{transform:translateY(var(--rise)) scale(1);opacity:1}to{transform:translateY(var(--rise)) scale(1.45);opacity:0}}.vfx-neon__frame{--neon: var(--tile-correct, #6aaa64);inset:.6rem;border:.18rem solid color-mix(in srgb,var(--neon) 45%,#fff);border-radius:1.1rem;box-shadow:0 0 .6rem var(--neon),0 0 1.8rem var(--neon),inset 0 0 .8rem var(--neon),inset 0 0 2.5rem color-mix(in srgb,var(--neon) 45%,transparent);opacity:0;animation:vfx-neon-pulse 1.9s ease-in-out both}.vfx-neon__frame--inner{--neon: #ff2bd6;inset:1.4rem;border-radius:.8rem;animation-delay:.15s}@keyframes vfx-neon-pulse{0%{opacity:0}12%{opacity:1}30%{opacity:.35}48%{opacity:1}to{opacity:0}}.vfx-neon__ring{left:50%;top:50%;width:40vmin;height:40vmin;margin:-20vmin 0 0 -20vmin;border:.2rem solid color-mix(in srgb,var(--tile-present, #c9b458) 50%,#fff);border-radius:50%;box-shadow:0 0 1rem var(--tile-present, #c9b458),inset 0 0 1rem var(--tile-present, #c9b458);opacity:0;animation:vfx-neon-ring 1.4s cubic-bezier(.2,.7,.3,1) .1s both}@keyframes vfx-neon-ring{0%{transform:scale(.2);opacity:1}to{transform:scale(3.2);opacity:0}}.vfx-neon__sweep{left:0;right:0;top:0;height:.2rem;background:linear-gradient(90deg,transparent,#fff 20% 80%,transparent);box-shadow:0 0 1.2rem .35rem var(--tile-correct, #6aaa64);opacity:0;animation:vfx-neon-sweep 1.5s cubic-bezier(.5,0,.5,1) .2s both}@keyframes vfx-neon-sweep{0%{transform:translateY(-2vh);opacity:0}10%,90%{opacity:1}to{transform:translateY(100vh);opacity:0}}@media(prefers-reduced-motion:reduce){.victory-effect{display:none}}
