/* Scroll reveal animations */
[data-animate] {
    opacity: 0;
    transition: opacity var(--transition-slow), transform var(--transition-slow);
}

[data-animate="fade-up"] {
    transform: translateY(40px);
}

[data-animate="fade-in"] {
    transform: none;
}

[data-animate="slide-left"] {
    transform: translateX(-60px);
}

[data-animate="slide-right"] {
    transform: translateX(60px);
}

[data-animate="scale-in"] {
    transform: scale(0.9);
}

/* Visible state */
[data-animate].is-visible {
    opacity: 1;
    transform: translateY(0) translateX(0) scale(1);
}

/* Stagger delays */
[data-animate-delay="100"] { transition-delay: 0.1s; }
[data-animate-delay="200"] { transition-delay: 0.2s; }
[data-animate-delay="300"] { transition-delay: 0.3s; }
[data-animate-delay="400"] { transition-delay: 0.4s; }
[data-animate-delay="500"] { transition-delay: 0.5s; }
[data-animate-delay="600"] { transition-delay: 0.6s; }

/* Mascot bounce */
@keyframes mascotBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-15px); }
}

.mascot--bounce {
    animation: mascotBounce 2s ease-in-out infinite;
}

/* Mascot wave */
@keyframes mascotWave {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(10deg); }
    75% { transform: rotate(-10deg); }
}

.mascot--wave {
    animation: mascotWave 3s ease-in-out infinite;
}

/* Float animation */
@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    33% { transform: translateY(-10px) rotate(2deg); }
    66% { transform: translateY(-5px) rotate(-1deg); }
}

.float {
    animation: float 4s ease-in-out infinite;
}

/* Pulse glow for CTA */
@keyframes pulseGlow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(240, 165, 0, 0.4); }
    50% { box-shadow: 0 0 20px 10px rgba(240, 165, 0, 0); }
}

.btn--pulse {
    animation: pulseGlow 2s ease-in-out infinite;
}
