/* FUZ Engine Motion 1.2.0 */

.fuz-motion {
    --fuz-motion-duration: 0.8s;
    --fuz-motion-delay: 0s;
    --fuz-motion-distance: 24px;
    --fuz-motion-ease: cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}

.fuz-motion[data-fuz-motion-ready="1"] {
    transition:
        opacity var(--fuz-motion-duration) var(--fuz-motion-ease),
        transform var(--fuz-motion-duration) var(--fuz-motion-ease);
    transition-delay: var(--fuz-motion-delay);
}

.fuz-motion--reveal-up {
    opacity: 0;
    transform: translate3d(0, var(--fuz-motion-distance), 0);
}

.fuz-motion--reveal-up.is-inview {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.fuz-motion--reveal-down {
    opacity: 0;
    transform: translate3d(0, calc(var(--fuz-motion-distance) * -1), 0);
}

.fuz-motion--reveal-down.is-inview {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.fuz-motion--reveal-left {
    opacity: 0;
    transform: translate3d(var(--fuz-motion-distance), 0, 0);
}

.fuz-motion--reveal-left.is-inview {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.fuz-motion--reveal-right {
    opacity: 0;
    transform: translate3d(calc(var(--fuz-motion-distance) * -1), 0, 0);
}

.fuz-motion--reveal-right.is-inview {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.fuz-motion--fade-in {
    opacity: 0;
    transform: none;
}

.fuz-motion--fade-in.is-inview {
    opacity: 1;
}

.fuz-motion--scale-in {
    opacity: 0;
    transform: scale(0.96);
}

.fuz-motion--scale-in.is-inview {
    opacity: 1;
    transform: scale(1);
}

.fuz-motion--hero-settle {
    opacity: 1;
    transform: translate3d(0, 8px, 0) scale(1.02);
    animation: fuzHeroSettle 900ms cubic-bezier(.22, 1, .36, 1) forwards;
}

@keyframes fuzHeroSettle {
    from {
        transform: translate3d(0, 8px, 0) scale(1.02);
    }
    to {
        transform: translate3d(0, 0, 0) scale(1);
    }
}

.fuz-motion--hover-lift {
    transition:
        transform 0.45s cubic-bezier(.22, 1, .36, 1),
        box-shadow 0.35s ease;
}

.fuz-motion--hover-lift:hover,
.fuz-motion--hover-lift:focus-visible {
    transform: translate3d(0, -2px, 0);
}

.fuz-motion-debug {
    outline: 1px dashed rgba(200, 60, 60, 0.4);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .fuz-motion,
    .fuz-motion[data-fuz-motion-ready="1"] {
        transition: none !important;
        animation: none !important;
    }

    .fuz-motion--reveal-up,
    .fuz-motion--reveal-down,
    .fuz-motion--reveal-left,
    .fuz-motion--reveal-right,
    .fuz-motion--fade-in,
    .fuz-motion--scale-in {
        opacity: 1 !important;
        transform: none !important;
    }

    .fuz-motion--hero-settle,
    .fuz-motion--hover-lift {
        transform: none !important;
        animation: none !important;
    }
}
