/* ════════════════════════════════════════════════════════════════
   V2 ANIMATIONS CSS - PHAENOMENA
   Shared across V2 pages. Caricato dopo home2.css.
   ════════════════════════════════════════════════════════════════ */

/* Reveal on scroll */
[data-reveal] {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}
[data-reveal].is-revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Reveal direzioni */
[data-reveal="left"] {
    transform: translateX(-32px);
}
[data-reveal="left"].is-revealed {
    transform: translateX(0);
}
[data-reveal="right"] {
    transform: translateX(32px);
}
[data-reveal="right"].is-revealed {
    transform: translateX(0);
}
[data-reveal="zoom"] {
    transform: scale(0.95);
    transform-origin: center;
}
[data-reveal="zoom"].is-revealed {
    transform: scale(1);
}

/* Stagger items (figli di un [data-stagger]) */
[data-stagger-item] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}
[data-stagger-item].is-revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Counter: nessuno stato iniziale particolare; il JS sostituisce il contenuto */
[data-counter] {
    font-variant-numeric: tabular-nums;
}

/* Rispetta utenti con motion ridotto */
@media (prefers-reduced-motion: reduce) {
    [data-reveal],
    [data-stagger-item] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
