/* ============================================
   NovaCore - Animations
   ============================================ */

/* Fade Up */
.animate-fade-up {
    opacity: 0;
    transform: translateY(30px);
    animation: fadeUp 0.8s ease forwards;
}
.delay-1 { animation-delay: 0.15s; }
.delay-2 { animation-delay: 0.3s; }
.delay-3 { animation-delay: 0.45s; }
.delay-4 { animation-delay: 0.6s; }

@keyframes fadeUp {
    to { opacity: 1; transform: translateY(0); }
}

/* Card entrance */
.feature-card, .category-card, .testimonial-card, .script-card {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.feature-card.visible, .category-card.visible,
.testimonial-card.visible, .script-card.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Glow pulse */
@keyframes glowPulse {
    0%, 100% { box-shadow: 0 0 20px rgba(139, 92, 246, 0.3); }
    50% { box-shadow: 0 0 40px rgba(139, 92, 246, 0.6); }
}
.btn-glow { animation: glowPulse 3s ease-in-out infinite; }

/* Float animation */
@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* Scroll indicator */
@keyframes scrollAnim {
    0% { opacity: 0; transform: translateY(0); }
    50% { opacity: 1; }
    100% { opacity: 0; transform: translateY(10px); }
}
.scroll-wheel {
    width: 4px;
    height: 8px;
    background: var(--accent);
    border-radius: 2px;
    animation: scrollAnim 1.5s ease-in-out infinite;
}

/* Gradient shift */
@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Spin */
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Hero glow animations */
@keyframes heroGlow1 {
    0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.3; }
    50% { transform: translate(-50%, -50%) scale(1.3); opacity: 0.15; }
}
@keyframes heroGlow2 {
    0%, 100% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.2; }
    50% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.35; }
}

.hero-glow-1 { animation: heroGlow1 8s ease-in-out infinite; }
.hero-glow-2 { animation: heroGlow2 10s ease-in-out infinite; }
.hero-glow-3 { animation: heroGlow1 12s ease-in-out infinite 2s; }

/* CTA decoration */
.cta-deco-icon {
    font-size: 8rem;
    opacity: 0.05;
    animation: float 6s ease-in-out infinite;
}
