@keyframes flyingHeart{0%{transform:translateY(0) scale(.5) rotate(0);opacity:0}10%{opacity:1;transform:translateY(-20px) scale(1) rotate(10deg)}50%{transform:translateY(-100px) scale(1.2) rotate(-5deg);opacity:.8}80%{transform:translateY(-200px) scale(.8) rotate(15deg);opacity:.4}to{transform:translateY(-300px) scale(.3) rotate(0);opacity:0}}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes heartFloat{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.flying-heart{animation:flyingHeart 3s ease-out forwards,heartPulse .5s ease-in-out infinite,heartFloat 2s ease-in-out infinite;filter:drop-shadow(0 4px 8px rgba(255,182,193,.4));text-shadow:0 0 10px rgba(255,105,180,.6)}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}.heart-sparkle{position:absolute;width:4px;height:4px;background:radial-gradient(circle,gold,#ffb347);border-radius:50%;animation:sparkle 1.5s ease-in-out infinite}@keyframes popupSlideIn{0%{transform:scale(.5) translateY(50px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.congratulations-popup{animation:popupSlideIn .5s ease-out}@keyframes confetti{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.confetti-piece{position:fixed;width:8px;height:8px;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1,#96ceb4,#feca57);animation:confetti 3s linear infinite}
