@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-20px) rotate(5deg); }
}

@keyframes teddyRain {
    0% { transform: translateY(-100vh) rotate(0deg); }
    100% { transform: translateY(100vh) rotate(360deg); }
}

@keyframes wave {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-20deg); }
    75% { transform: rotate(20deg); }
}

@keyframes heartbeat {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

.gradient-bg {
    background: linear-gradient(
        135deg,
        #c14c96 0%,
        #b1587c 25%,
        #FFE5F1 50%,
        #dd7ea9 75%,
        #ab4f9c 100%
    );
    animation: gradient 15s ease infinite;
    background-size: 400% 400%;
}

@keyframes gradient {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.teddy-rain {
    position: fixed;
    pointer-events: none;
    animation: teddyRain linear infinite;
    filter: drop-shadow(0 0 5px rgba(255, 182, 193, 0.5));
}

.floating { animation: float 3s ease-in-out infinite; }
.waving { animation: wave 2s ease-in-out infinite; }
.heartbeat { animation: heartbeat 1.5s ease-in-out infinite; }

.kawaii-shadow {
    filter: drop-shadow(0 0 10px rgba(255, 182, 193, 0.8));
}

.glass-effect {
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 20px;
}