@keyframes confetti-burst{0%{transform:translate(-50%,-50%) rotate(0deg) scale(1);opacity:1}15%{transform:translate(calc(-50% + cos(var(--angle)) * var(--velocity) * .4),calc(-50% + sin(var(--angle)) * var(--velocity) * .4)) rotate(calc(var(--rotation) * .3)) scale(1.1);opacity:1}to{transform:translate(calc(-50% + cos(var(--angle)) * var(--velocity)),calc(-50% + sin(var(--angle)) * var(--velocity) + 300px)) rotate(var(--rotation)) scale(.2);opacity:0}}@keyframes firework-particle{0%{transform:translate(-50%,-50%) scale(1);opacity:1}10%{transform:translate(calc(-50% + cos(var(--angle)) * var(--velocity) * .3),calc(-50% + sin(var(--angle)) * var(--velocity) * .3)) scale(1.2);opacity:1}to{transform:translate(calc(-50% + cos(var(--angle)) * var(--velocity)),calc(-50% + sin(var(--angle)) * var(--velocity) + 150px)) scale(0);opacity:0}}@keyframes trophy-bounce{0%,20%,50%,80%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-10px) scale(1.1)}60%{transform:translateY(-5px) scale(1.05)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(34,197,94,.3)}50%{box-shadow:0 0 30px rgba(34,197,94,.6),0 0 50px rgba(34,197,94,.3)}}@keyframes celebration-glow{0%,to{box-shadow:0 0 20px rgba(255,215,0,.3),0 0 40px rgba(255,215,0,.2)}50%{box-shadow:0 0 30px rgba(255,215,0,.6),0 0 60px rgba(255,215,0,.4),0 0 100px rgba(255,215,0,.2)}}@keyframes click-effect{0%{transform:translate(-50%,-50%) scale(.8);opacity:.6}30%{transform:translate(-50%,-50%) scale(.3);opacity:1}to{transform:translate(-50%,-50%) scale(0);opacity:0}}.animate-click:after{border:3px solid rgba(59,130,246,.8);border-radius:9999px;animation:click-effect 1.5s ease-out 25s infinite}.animate-click:after,.animate-double-click:after,.animate-double-click:before{content:"";position:absolute;left:50%;top:50%;width:120%;height:120%;transform:translate(-50%,-50%) scale(0);opacity:0;pointer-events:none}.animate-double-click:after,.animate-double-click:before{border:3px solid hsl(var(--foreground));border-radius:9999px}.animate-double-click:before{animation:click-effect 2s ease-out 0s infinite}.animate-double-click:after{animation:click-effect 2s ease-out .2s infinite}@keyframes cta-text-pulse{0%,to{text-shadow:0 0 0 rgba(255,255,255,0);filter:brightness(1)}50%{text-shadow:0 0 10px rgba(255,255,255,.8),0 0 18px rgba(34,197,94,.5);filter:brightness(1.5)}}@keyframes tutorial-pulse-brightness{0%,to{filter:brightness(1)}50%{filter:brightness(1.5)}}@keyframes tutorial-pulse-darken{0%,to{filter:brightness(1)}50%{filter:brightness(.85)}}.animate-tutorial-pulse{animation:tutorial-pulse-darken 3s ease-in-out infinite}.dark .animate-tutorial-pulse{animation:tutorial-pulse-brightness 3s ease-in-out infinite}@keyframes cta-shake{0%,50%{transform:rotate(0deg)}74%{transform:rotate(3deg)}78%{transform:rotate(-3deg)}82%{transform:rotate(3deg)}86%{transform:rotate(-3deg)}90%{transform:rotate(2deg)}94%{transform:rotate(-2deg)}98%{transform:rotate(1deg)}to{transform:rotate(0deg)}}.animate-cta-sequence{position:relative;--cta-rainbow-delay:5s;--cta-glow-delay:10s;--cta-shake-delay:17s;--cta-rainbow-grow-delay:60s;transform-origin:center center;animation:pulse-glow 2.6s ease-in-out var(--cta-glow-delay) infinite normal,cta-text-pulse 2.6s ease-in-out var(--cta-glow-delay) infinite normal,cta-shake 2.8s ease-in-out var(--cta-shake-delay) infinite normal}@keyframes cta-rainbow-reveal{0%{opacity:0}to{opacity:1}}@property --cta-rainbow-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes cta-rainbow-spin{to{--cta-rainbow-angle:360deg}}@keyframes cta-rainbow-thickness-reveal{0%{padding:0;inset:0;opacity:0}to{padding:2px;inset:0;opacity:1}}@keyframes grow-cta-rainbow-thickness{0%{padding:2px;inset:0}50%{padding:11px;inset:-9px}to{padding:2px;inset:0}}.animate-cta-rainbow{position:relative;isolation:isolate;z-index:1000}.animate-cta-rainbow--slow{--rainbow-duration:4.5s}.animate-cta-rainbow--fast{--rainbow-duration:2.2s}.animate-cta-rainbow:before{content:none;animation:none}.animate-cta-rainbow:after{content:"";position:absolute;width:auto;height:auto;border-radius:inherit;pointer-events:none;background:conic-gradient(from var(--cta-rainbow-angle),#fd004c,#fe9000,#fff020,#3edf4b,#3363ff,#b102b7,#fd004c);animation:cta-rainbow-spin var(--rainbow-duration,1.5s) linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;opacity:.9}.animate-cta-sequence.animate-cta-rainbow:after{opacity:0;padding:0;animation-name:cta-rainbow-spin,cta-rainbow-reveal,cta-rainbow-thickness-reveal,grow-cta-rainbow-thickness;animation-duration:var(--rainbow-duration,1.5s),1ms,1s,10s;animation-timing-function:linear,step-end,ease,ease-in-out;animation-delay:var(--cta-rainbow-delay),var(--cta-rainbow-delay),var(--cta-rainbow-delay),var(--cta-rainbow-grow-delay);animation-iteration-count:infinite,1,1,infinite;animation-fill-mode:none,forwards,forwards,none}.animate-cta-sequence.animate-cta-rainbow:before{content:none;animation:none;opacity:0}@property --shine-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes shine-rotate{0%{--shine-angle:0deg}to{--shine-angle:360deg}}@keyframes sheen-pan{0%{background-position:200%}to{background-position:-200%}}.shiny-border-mask{position:absolute;inset:0;pointer-events:none;border-radius:inherit;padding:2px;background:conic-gradient(from calc(var(--shine-angle) - 45deg) at 50% 50%,transparent 0deg,rgba(255,255,255,.3) 15deg,rgba(255,255,255,.9) 30deg,rgba(255,255,255,.3) 45deg,transparent 60deg,transparent 1turn);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;animation:shine-rotate 3s linear infinite}@property --text-shine-pos{syntax:"<percentage>";inherits:false;initial-value:-30%}@keyframes text-shine-sweep{0%,5%{--text-shine-pos:-30%}95%,to{--text-shine-pos:130%}}@keyframes text-shine-sweep-reverse{0%,5%{--text-shine-pos:170%}95%,to{--text-shine-pos:-70%}}.shiny-text{position:relative;z-index:1;--stroke-width:3px;--shimmer-color-1:rgba(255,255,255,0.4);--shimmer-color-2:rgba(255,255,255,1);--shimmer-color-3:rgba(255,255,255,0.4)}.shiny-text:before{content:attr(data-text);position:absolute;inset:0;z-index:-1;pointer-events:none;-webkit-text-stroke:var(--stroke-width) transparent;-webkit-text-fill-color:transparent;background:linear-gradient(100deg,transparent 0,transparent calc(var(--text-shine-pos) - 15%),var(--shimmer-color-1) calc(var(--text-shine-pos) - 8%),var(--shimmer-color-2) var(--text-shine-pos),var(--shimmer-color-3) calc(var(--text-shine-pos) + 8%),transparent calc(var(--text-shine-pos) + 15%),transparent 100%);-webkit-background-clip:text;background-clip:text;animation:text-shine-sweep 3s ease-in-out 1.6s infinite}.shiny-text-delay-1{position:relative;z-index:1;--stroke-width:2px;--shimmer-color-1:rgba(255,255,255,0.4);--shimmer-color-2:rgba(255,255,255,1);--shimmer-color-3:rgba(255,255,255,0.4)}.shiny-text-delay-1:before{content:attr(data-text);position:absolute;inset:0;z-index:-1;pointer-events:none;-webkit-text-stroke:var(--stroke-width) transparent;-webkit-text-fill-color:transparent;background:linear-gradient(100deg,transparent 0,transparent calc(var(--text-shine-pos) - 15%),var(--shimmer-color-1) calc(var(--text-shine-pos) - 8%),var(--shimmer-color-2) var(--text-shine-pos),var(--shimmer-color-3) calc(var(--text-shine-pos) + 8%),transparent calc(var(--text-shine-pos) + 15%),transparent 100%);-webkit-background-clip:text;background-clip:text;animation:text-shine-sweep-reverse 3s ease-in-out 2.8s infinite}.shiny-text-delay-2{position:relative;z-index:1;--stroke-width:2px;--shimmer-color-1:rgba(255,255,255,0.4);--shimmer-color-2:rgba(255,255,255,1);--shimmer-color-3:rgba(255,255,255,0.4)}.shiny-text-delay-2:before{content:attr(data-text);position:absolute;inset:0;z-index:-1;pointer-events:none;-webkit-text-stroke:var(--stroke-width) transparent;-webkit-text-fill-color:transparent;background:linear-gradient(100deg,transparent 0,transparent calc(var(--text-shine-pos) - 15%),var(--shimmer-color-1) calc(var(--text-shine-pos) - 8%),var(--shimmer-color-2) var(--text-shine-pos),var(--shimmer-color-3) calc(var(--text-shine-pos) + 8%),transparent calc(var(--text-shine-pos) + 15%),transparent 100%);-webkit-background-clip:text;background-clip:text;animation:text-shine-sweep-reverse 3s ease-in-out 3.5s infinite}@keyframes emoji-glow{0%,40%{filter:brightness(1) drop-shadow(0 0 0 transparent)}50%{filter:brightness(1.3) drop-shadow(0 0 8px rgba(255,255,255,.8))}60%,to{filter:brightness(1) drop-shadow(0 0 0 transparent)}}.animate-emoji-glow{animation:emoji-glow 3s ease-in-out 2.1s infinite}@property --sweep-pos{syntax:"<percentage>";inherits:false;initial-value:-30%}@keyframes shine-sweep{0%{--sweep-pos:-30%}10%{--sweep-pos:130%}15.1%,to{--sweep-pos:200%}}.cell-shine-complete{inset:-2px;padding:3px;z-index:10;background:linear-gradient(135deg,transparent calc(var(--sweep-pos) - 15%),rgba(255,255,255,.5) calc(var(--sweep-pos) - 5%),rgba(255,255,255,1) var(--sweep-pos),rgba(255,255,255,.5) calc(var(--sweep-pos) + 5%),transparent calc(var(--sweep-pos) + 15%));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}.cell-shine-complete,.cell-shine-complete:after{position:absolute;pointer-events:none;border-radius:inherit;animation:shine-sweep var(--shimmer-cycle,3s) ease-out calc(var(--cell-shine-delay, 0s) + .8s) infinite}.cell-shine-complete:after{content:"";inset:-4px;background:linear-gradient(135deg,transparent calc(var(--sweep-pos) - 20%),rgba(255,255,255,.4) calc(var(--sweep-pos) - 8%),rgba(255,255,255,.7) var(--sweep-pos),rgba(255,255,255,.4) calc(var(--sweep-pos) + 8%),transparent calc(var(--sweep-pos) + 20%));filter:blur(5px);opacity:.6}