@keyframes pulse-glow{0%,to{filter:brightness();transform:scale(1)}50%{filter:brightness(1.2);transform:scale(1.05)}}@keyframes float-up{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-100px)scale(0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes bounce-in{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}.celebration-glow{animation:2s ease-in-out infinite pulse-glow}.particle-float{animation:3s ease-out infinite float-up}.shimmer-effect{background:linear-gradient(90deg,#0000,#fff6,#0000) 0 0/1000px 100%;animation:2s infinite shimmer}.bounce-enter{animation:.6s cubic-bezier(.68,-.55,.265,1.55) bounce-in}.achievement-glow{position:relative}.achievement-glow:before{content:"";border-radius:inherit;opacity:.7;filter:blur(8px);z-index:-1;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1,#f9ca24) 0 0/400% 400%;animation:3s infinite gradient-shift;position:absolute;inset:-2px}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.streak-fire{filter:drop-shadow(0 0 10px #ff6b0080);position:relative}.streak-fire:after{content:"";background:radial-gradient(#ff6b004d 0%,#0000 70%);width:80%;height:20px;animation:1.5s ease-in-out infinite fire-flicker;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}@keyframes fire-flicker{0%,to{opacity:.5;transform:translate(-50%)scaleX(1)}50%{opacity:.8;transform:translate(-50%)scaleX(1.1)}}.celebration-text{-webkit-text-fill-color:transparent;background:linear-gradient(45deg,#f093fb 0%,#f5576c 100%);-webkit-background-clip:text;background-clip:text;position:relative}.celebration-text:after{content:attr(data-text);z-index:-1;-webkit-text-fill-color:transparent;background:linear-gradient(45deg,#667eea 0%,#764ba2 100%);-webkit-background-clip:text;background-clip:text;animation:3s ease-in-out infinite text-shimmer;position:absolute;top:0;left:0}@keyframes text-shimmer{0%,to{opacity:0}50%{opacity:1}}
