/* ---
Keyframe Animations
--- */
@keyframes pulsate-glow {
    0%, 100% {
        filter: drop-shadow(0 0 10px var(--color-neon-purple));
    }
    50% {
        filter: drop-shadow(0 0 20px var(--color-neon-purple)) drop-shadow(0 0 30px var(--color-deep-purple));
    }
}

@keyframes fade-in-up {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---
Animation Classes
--- */
.pulsate-glow {
    animation: pulsate-glow 4s ease-in-out infinite;
}

.animate-fade-in-up {
    animation: fade-in-up 0.8s ease-out forwards;
    opacity: 0; /* Start hidden */
}

/* Delay for staggered hero animation */
.hero-tagline.animate-fade-in-up {
    animation-delay: 0.3s;
}

.cta-button.animate-fade-in-up {
    animation-delay: 0.6s;
}

/* ---
Scroll-based Animations
--- */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}
