body {
    position: relative;
    overflow: hidden;
}

.heart {
    position: absolute;
    color: #ff69b4;
    font-size: 20px;
    animation: fall linear infinite;
    z-index: -1;
    opacity: 0.7;
    animation: fall linear infinite, fade 3s ease-in infinite;
}

@keyframes fall {
    from {
        transform: translateY(-100vh) 
                   rotate(var(--start-rotate, 0deg));
    }
    to {
        transform: translateY(100vh) 
                   rotate(var(--end-rotate, 360deg));
    }
}

@keyframes fade {
    0% { opacity: 0.7; }
    50% { opacity: 0.4; }
    100% { opacity: 0; }
}

/* Explosion animation */
@keyframes explode {
    0% {
        transform: translate(-50%, -50%) scale(0);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(8) rotate(360deg);
        opacity: 0;
    }
}

.explosion-heart {
    position: fixed;
    top: 50%;
    left: 50%;
    animation: explode 1.5s ease-out forwards;
    color: #ff69b4;
    font-size: 30px;
    z-index: 1000;
    pointer-events: none;
}