/* ====================================
   Scroll reveal & entrance animations
   ==================================== */

/* Hero entrance (on page load, JS-driven delays) */
.anim-in {
    opacity: 0;
    transform: translateY(24px);
    animation: anim-fade-up 0.95s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes anim-fade-up {
    to { opacity: 1; transform: translateY(0); }
}

/* Section-level scroll reveal */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition:
        opacity 0.95s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal.in-view {
    opacity: 1;
    transform: translateY(0);
}

/* Grid child stagger */
.stagger-in > * {
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.stagger-in.in-view > * { opacity: 1; transform: translateY(0); }
.stagger-in.in-view > *:nth-child(1) { transition-delay: 40ms; }
.stagger-in.in-view > *:nth-child(2) { transition-delay: 130ms; }
.stagger-in.in-view > *:nth-child(3) { transition-delay: 220ms; }
.stagger-in.in-view > *:nth-child(4) { transition-delay: 310ms; }
.stagger-in.in-view > *:nth-child(5) { transition-delay: 400ms; }
.stagger-in.in-view > *:nth-child(6) { transition-delay: 490ms; }
.stagger-in.in-view > *:nth-child(7) { transition-delay: 570ms; }
.stagger-in.in-view > *:nth-child(8) { transition-delay: 640ms; }

/* Animazioni sempre attive (il rispetto per prefers-reduced-motion è stato rimosso su richiesta) */
