/* ===================================
   Animations — v2.0 (minimal, tasteful)
   =================================== */

/* Scroll indicator pulse */
.scroll-indicator {
    animation: pulse-fade 2.5s ease-in-out infinite;
}

@keyframes pulse-fade {
    0%, 100% { opacity: 0.4; transform: translateX(-50%) translateY(0); }
    50% { opacity: 1; transform: translateX(-50%) translateY(6px); }
}

/* Card hover — handled in style.css */

/* Focus ring animation */
@keyframes focus-ring {
    0% { box-shadow: 0 0 0 0 var(--color-primary-glow); }
    100% { box-shadow: 0 0 0 4px var(--color-primary-glow); }
}

/* Reveal animation for elements entering viewport */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), 
                transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger children */
.reveal:nth-child(1) { transition-delay: 0s; }
.reveal:nth-child(2) { transition-delay: 0.1s; }
.reveal:nth-child(3) { transition-delay: 0.2s; }
.reveal:nth-child(4) { transition-delay: 0.15s; }
.reveal:nth-child(5) { transition-delay: 0.2s; }
.reveal:nth-child(6) { transition-delay: 0.25s; }

/* Stat number gradient shimmer on appear */
@keyframes gradient-shift {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}
