.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.1)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 20px 4px rgba(239,68,68,.2)}}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slide-up .5s ease-out forwards}@keyframes confetti-fall{0%{transform:translateY(-100%) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}.animate-shake{animation:shake .5s ease-in-out}@keyframes count-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-count{animation:count-up .3s ease-out}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}@keyframes wiggle{0%,to{transform:rotate(0deg)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.animate-wiggle{animation:wiggle .5s ease-in-out}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.text-shimmer{background:linear-gradient(90deg,#e8112d,#52bdec,#093,#e8112d);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 4s linear infinite}@keyframes ticker-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.animate-ticker{animation:ticker-scroll 30s linear infinite}.animate-ticker:hover{animation-play-state:paused}