/* Magic Water Drops and Sky Blue Effects */

/* Water drops on the page */
.water-drop {
    position: fixed;
    z-index: 5;
    background: radial-gradient(circle at center, rgba(255, 255, 255, 0.9) 0%, rgba(135, 206, 235, 0.4) 70%, transparent 100%);
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    animation: water-drop-fall 8s ease-in forwards;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.5), inset 0 0 15px rgba(135, 206, 235, 0.6);
    filter: blur(0.5px);
}

@keyframes water-drop-fall {
    0% {
        transform: scale(0.1) translateY(-20px);
        opacity: 0;
    }
    10% {
        opacity: 0.8;
        transform: scale(0.3) translateY(0);
    }
    80% {
        opacity: 0.8;
    }
    100% {
        transform: scale(0.1) translateY(100vh);
        opacity: 0;
    }
}

/* Ripple effect for when drops land */
.water-ripple {
    position: fixed;
    bottom: 10%;
    transform: translate(-50%, -50%);
    width: 10px;
    height: 10px;
    background: transparent;
    border-radius: 50%;
    border: 2px solid rgba(135, 206, 235, 0.7);
    animation: ripple-expand 3s ease-out forwards;
    z-index: 4;
    pointer-events: none;
}

@keyframes ripple-expand {
    0% {
        width: 5px;
        height: 5px;
        opacity: 0.9;
        border-width: 2px;
    }
    100% {
        width: 80px;
        height: 80px;
        opacity: 0;
        border-width: 0.5px;
    }
}

/* Sky shimmer effect */
.sky-shimmer {
    position: fixed;
    z-index: 1;
    width: 150px;
    height: 150px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, transparent 70%);
    opacity: 0;
    border-radius: 50%;
    filter: blur(8px);
    animation: sky-shimmer 6s ease-in-out infinite;
    pointer-events: none;
}

@keyframes sky-shimmer {
    0%, 100% {
        opacity: 0;
        transform: scale(0.8);
    }
    50% {
        opacity: 0.5;
        transform: scale(1.2);
    }
}

/* Cloud wisp effects */
.cloud-wisp {
    position: fixed;
    z-index: 2;
    width: 100px;
    height: 40px;
    background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0) 70%);
    border-radius: 50%;
    filter: blur(5px);
    opacity: 0;
    animation: cloud-float 30s linear infinite;
    pointer-events: none;
}

@keyframes cloud-float {
    0% {
        transform: translateX(-100px) translateY(0);
        opacity: 0;
    }
    10% {
        opacity: 0.7;
    }
    90% {
        opacity: 0.7;
    }
    100% {
        transform: translateX(calc(100vw + 100px)) translateY(20px);
        opacity: 0;
    }
}

/* Rainbow prism effect (appears occasionally) */
.rainbow-prism {
    position: fixed;
    width: 100px;
    height: 100px;
    z-index: 3;
    background: linear-gradient(
        45deg, 
        rgba(255,0,0,0.2), 
        rgba(255,165,0,0.2), 
        rgba(255,255,0,0.2), 
        rgba(0,128,0,0.2), 
        rgba(0,0,255,0.2), 
        rgba(75,0,130,0.2), 
        rgba(238,130,238,0.2)
    );
    filter: blur(5px);
    opacity: 0;
    pointer-events: none;
    animation: rainbow-appear 10s ease-in-out forwards;
    border-radius: 50%;
    mix-blend-mode: screen;
}

@keyframes rainbow-appear {
    0% {
        opacity: 0;
        transform: scale(0.5) rotate(0deg);
    }
    20% {
        opacity: 0.5;
    }
    80% {
        opacity: 0.5;
        transform: scale(1.2) rotate(180deg);
    }
    100% {
        opacity: 0;
        transform: scale(0.5) rotate(360deg);
    }
}

/* Enhanced cake animations */
.elegant-cake {
    position: relative;
}

.elegant-cake::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 30px;
    bottom: -10px;
    left: 0;
    background: radial-gradient(ellipse at center, rgba(135, 206, 235, 0.4) 0%, transparent 70%);
    border-radius: 50%;
    animation: cake-glow 4s infinite alternate;
}

@keyframes cake-glow {
    0% {
        opacity: 0.4;
        transform: scale(0.9);
        filter: blur(5px);
    }
    100% {
        opacity: 0.7;
        transform: scale(1.1);
        filter: blur(7px);
    }
}

/* Auto animation for candle flames */
.candle-flame {
    animation: flicker 0.8s infinite alternate, flame-dance 4s infinite ease-in-out !important;
}

@keyframes flame-dance {
    0%, 100% {
        transform: translateX(-50%) rotate(0deg);
    }
    25% {
        transform: translateX(-45%) rotate(-5deg);
    }
    75% {
        transform: translateX(-55%) rotate(5deg);
    }
}

/* Auto-animation for frosting drips */
.frosting-drip {
    animation: drip-animation 4s infinite ease-in-out !important;
}

.frosting-drip:nth-child(1) { animation-delay: 0s; }
.frosting-drip:nth-child(2) { animation-delay: 0.8s; }
.frosting-drip:nth-child(3) { animation-delay: 1.6s; }
.frosting-drip:nth-child(4) { animation-delay: 2.4s; }
.frosting-drip:nth-child(5) { animation-delay: 3.2s; }

@keyframes drip-animation {
    0%, 100% {
        transform: scaleY(1);
    }
    50% {
        transform: scaleY(1.1);
    }
}

/* Auto-animation for decoration swirls */
.decoration-swirl {
    animation: swirl-glow 3s infinite alternate;
}

.decoration-swirl:nth-child(1) { animation-delay: 0s; }
.decoration-swirl:nth-child(2) { animation-delay: 0.7s; }
.decoration-swirl:nth-child(3) { animation-delay: 1.4s; }
.decoration-swirl:nth-child(4) { animation-delay: 2.1s; }

@keyframes swirl-glow {
    0% {
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    }
    100% {
        box-shadow: 0 2px 8px rgba(135, 206, 235, 0.4), 0 0 12px rgba(70, 130, 180, 0.3);
    }
}

/* Recipient name glow effect */
.recipient-name {
    animation: name-glow 3s infinite alternate;
    text-shadow: 0 0 5px rgba(135, 206, 235, 0.5);
}

@keyframes name-glow {
    0% {
        text-shadow: 0 0 5px rgba(135, 206, 235, 0.5);
    }
    100% {
        text-shadow: 0 0 15px rgba(135, 206, 235, 0.8), 0 0 20px rgba(70, 130, 180, 0.4);
    }
}

/* Message section subtle animation */
.main-message {
    animation: message-pulse 5s infinite alternate;
}

@keyframes message-pulse {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.02);
    }
}
