@keyframes slide-down{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.animate-slide-down{animation:slide-down .24s ease-out}@keyframes float-up-fade{0%{opacity:1;transform:translate(-50%,-50%) scale(.8)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}to{opacity:0;transform:translate(-50%,calc(-50% - 80px)) scale(.9)}}.animate-float-up-fade{animation:float-up-fade 1.2s ease-out forwards}@keyframes button-success-pop{0%{transform:scale(1);box-shadow:0 0 rgba(var(--primary),0)}25%{transform:scale(.92);box-shadow:0 0 20px hsl(var(--primary) / .5)}50%{transform:scale(1.08);box-shadow:0 0 30px hsl(var(--primary) / .7)}to{transform:scale(1);box-shadow:0 0 rgba(var(--primary),0)}}.animate-button-success-pop{animation:button-success-pop .35s ease-out}@keyframes event-slide-in{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.animate-event-slide-in{animation:event-slide-in .3s ease-out forwards}@keyframes milestone-flash{0%{opacity:0;transform:scale(.5)}30%{opacity:1;transform:scale(1.1)}60%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.2)}}.animate-milestone-flash{animation:milestone-flash 1.5s ease-out forwards}@keyframes screen-pulse{0%,to{box-shadow:inset 0 0 hsl(var(--primary) / 0)}50%{box-shadow:inset 0 0 60px 10px hsl(var(--primary) / .3)}}.animate-screen-pulse{animation:screen-pulse .6s ease-out}
