/*
 * Carpenteria 3P - Animazioni viewport v3
 * File: /css/animazioni.css
 *
 * Impostazioni globali:
 * - durata standard: 850ms
 * - distanza standard: 42px
 * - distanza "long": 110px
 *
 * Effetti:
 * fade
 * fade-up
 * fade-down
 * fade-left
 * fade-right
 * fade-in-long-up
 * fade-in-long-down
 * fade-in-long-left
 * fade-in-long-right
 * zoom
 */

:root {
    --c3p-motion-duration: 850ms;
    --c3p-motion-distance: 42px;
    --c3p-motion-distance-long: 110px;
    --c3p-motion-easing: cubic-bezier(0.22, 1, 0.36, 1);
}

html.c3p-motion-enabled [data-c3p-animate] {
    --c3p-delay: 0ms;

    opacity: 0;

    transition-property: opacity, transform;
    transition-duration: var(--c3p-motion-duration);
    transition-delay: var(--c3p-delay);
    transition-timing-function: var(--c3p-motion-easing);

    backface-visibility: hidden;
    will-change: opacity, transform;
}

/* Fade semplice */
html.c3p-motion-enabled [data-c3p-animate="fade"] {
    transform: none;
}

/* Entrate standard */
html.c3p-motion-enabled [data-c3p-animate="fade-up"] {
    transform: translate3d(0, var(--c3p-motion-distance), 0);
}

html.c3p-motion-enabled [data-c3p-animate="fade-down"] {
    transform: translate3d(0, calc(var(--c3p-motion-distance) * -1), 0);
}

html.c3p-motion-enabled [data-c3p-animate="fade-left"] {
    transform: translate3d(calc(var(--c3p-motion-distance) * -1), 0, 0);
}

html.c3p-motion-enabled [data-c3p-animate="fade-right"] {
    transform: translate3d(var(--c3p-motion-distance), 0, 0);
}

/* Entrate "long": partono da piu lontano */
html.c3p-motion-enabled [data-c3p-animate="fade-in-long-up"] {
    transform: translate3d(0, var(--c3p-motion-distance-long), 0);
}

html.c3p-motion-enabled [data-c3p-animate="fade-in-long-down"] {
    transform: translate3d(0, calc(var(--c3p-motion-distance-long) * -1), 0);
}

html.c3p-motion-enabled [data-c3p-animate="fade-in-long-left"] {
    transform: translate3d(calc(var(--c3p-motion-distance-long) * -1), 0, 0);
}

html.c3p-motion-enabled [data-c3p-animate="fade-in-long-right"] {
    transform: translate3d(var(--c3p-motion-distance-long), 0, 0);
}

/* Zoom leggero */
html.c3p-motion-enabled [data-c3p-animate="zoom"] {
    transform: scale(0.96);
    transform-origin: center center;
}

/* Stato finale */
html.c3p-motion-enabled [data-c3p-animate].is-c3p-visible {
    opacity: 1;
    transform: none;
    will-change: auto;
}

/* Fallback di sicurezza */
html.c3p-motion-fallback [data-c3p-animate] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
}

/* Accessibilita */
@media (prefers-reduced-motion: reduce) {
    html.c3p-motion-enabled [data-c3p-animate],
    html.c3p-motion-enabled [data-c3p-animate].is-c3p-visible {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        will-change: auto !important;
    }
}
