@keyframes heartFloat{0%{transform:translateY(0) scale(0) rotate(0deg);opacity:0}10%{transform:translateY(-10px) scale(1.2) rotate(10deg);opacity:1}30%{transform:translateY(-40px) scale(1) rotate(-5deg);opacity:1}70%{transform:translateY(-100px) scale(.8) rotate(5deg);opacity:.7}to{transform:translateY(-150px) scale(0) rotate(0deg);opacity:0}}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}@keyframes heartGlow{0%,to{filter:drop-shadow(0 0 5px currentColor)}50%{filter:drop-shadow(0 0 20px currentColor) drop-shadow(0 0 30px currentColor)}}@keyframes reactionBounceIn{0%{transform:scale(0) rotate(-180deg);opacity:0}60%{transform:scale(1.2) rotate(20deg);opacity:1}80%{transform:scale(.9) rotate(-10deg)}to{transform:scale(1) rotate(0deg);opacity:1}}@keyframes reactionHover{0%,to{transform:scale(1) rotate(0deg)}25%{transform:scale(1.1) rotate(-5deg)}75%{transform:scale(1.1) rotate(5deg)}}@keyframes reactionWiggle{0%,to{transform:rotate(0deg)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@keyframes reactionGlow{0%,to{box-shadow:0 0 5px hsla(0,100%,71%,.3)}50%{box-shadow:0 0 20px hsla(0,100%,71%,.6),0 0 30px hsla(0,100%,71%,.4)}}@keyframes counterPop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes numberSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes numberSlideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes buttonPress{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}@keyframes buttonRipple{0%{transform:scale(0);opacity:.6}to{transform:scale(4);opacity:0}}@keyframes progressFill{0%{width:0}to{width:100%}}@keyframes sparkle{0%,to{transform:scale(0) rotate(0deg);opacity:0}50%{transform:scale(1) rotate(180deg);opacity:1}}@keyframes sparkleFloat{0%{transform:translateY(0) translateX(0) rotate(0deg);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100px) translateX(var(--random-x,0)) rotate(1turn);opacity:0}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-2px)}20%,40%,60%,80%{transform:translateX(2px)}}@keyframes jello{0%,to{transform:skewX(0deg) skewY(0deg)}30%{transform:skewX(-12.5deg) skewY(-12.5deg)}40%{transform:skewX(6.25deg) skewY(6.25deg)}50%{transform:skewX(-3.125deg) skewY(-3.125deg)}65%{transform:skewX(1.5625deg) skewY(1.5625deg)}75%{transform:skewX(-.78125deg) skewY(-.78125deg)}}.animate-heart-float{animation:heartFloat 2.5s ease-out forwards}.animate-heart-pulse{animation:heartPulse .6s ease-in-out}.animate-heart-glow{animation:heartGlow 1.5s ease-in-out infinite}.animate-reaction-bounce{animation:reactionBounceIn .6s cubic-bezier(.68,-.55,.265,1.55)}.animate-reaction-hover{animation:reactionHover .3s ease-in-out}.animate-reaction-wiggle{animation:reactionWiggle .5s ease-in-out infinite}.animate-reaction-glow{animation:reactionGlow 1.5s ease-in-out infinite}.animate-counter-pop{animation:counterPop .3s ease-out}.animate-number-up{animation:numberSlideUp .3s ease-out}.animate-number-down{animation:numberSlideDown .3s ease-out}.animate-button-press{animation:buttonPress .1s ease-out}.animate-button-ripple{animation:buttonRipple .6s ease-out}.animate-progress-fill{animation:progressFill .5s linear}.animate-sparkle{animation:sparkle .8s ease-in-out}.animate-sparkle-float{animation:sparkleFloat 2s ease-out forwards}.animate-shake{animation:shake .5s ease-in-out}.animate-jello{animation:jello .9s ease-in-out}.hover-lift{transition:transform .2s ease-out}.hover-lift:hover{transform:translateY(-2px)}.hover-glow{transition:box-shadow .3s ease-out}.hover-glow:hover{box-shadow:0 0 20px hsla(0,100%,71%,.4)}.hover-scale{transition:transform .2s ease-out}.hover-scale:hover{transform:scale(1.05)}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient{background-size:200% 200%;animation:gradientShift 3s ease infinite}@media (max-width:768px){.animate-heart-float{animation-duration:2s}.animate-reaction-bounce{animation-duration:.4s}}@media (prefers-reduced-motion:reduce){.animate-gradient,.animate-heart-float,.animate-heart-glow,.animate-heart-pulse,.animate-jello,.animate-reaction-bounce,.animate-reaction-glow,.animate-reaction-hover,.animate-reaction-wiggle,.animate-shake,.animate-sparkle,.animate-sparkle-float{animation:none}.hover-lift:hover,.hover-scale:hover{transform:none}}:root{--reaction-like:#ff6b6b;--reaction-love:#ff69b4;--reaction-laugh:gold;--reaction-surprise:#4a90e2;--reaction-sad:#87ceeb;--reaction-angry:#ff4500}