.reveal-line {
    overflow: hidden;
}

.reveal-line > span {
    /* display: block; */
}

.has-motion .reveal-line > span {
    transform: translateY(110%);
    will-change: transform;
}

.image-reveal {
    overflow: hidden;
}

.image-reveal img {
    transform: scale(1);
}

.has-motion .image-reveal img {
    clip-path: inset(0 0 100% 0);
    transform: scale(1.08);
    will-change: clip-path, transform;
}

.site-loader.is-hidden {
    pointer-events: none;
}

.site-loader.is-hidden .site-loader__inner {
    opacity: 0;
    transform: translateY(-20px);
    transition: opacity 600ms ease, transform 600ms ease;
}

.site-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
    transition: opacity 700ms ease, visibility 700ms ease;
}

.stack-card {
    will-change: transform, filter;
}

.stack-card__media img,
.hero__media {
    will-change: transform;
}

.site-header__inner,
.mobile-menu__panel,
.product-card,
.work-card,
.testimonial-track,
.cursor {
    will-change: transform;
}

@keyframes scrollPulse {
    0%,
    100% {
        transform: scaleY(1);
        opacity: 0.8;
    }
    50% {
        transform: scaleY(1.18);
        opacity: 1;
    }
}

@keyframes marqueeMove {
    from {
        transform: translate3d(0, 0, 0);
    }
    to {
        transform: translate3d(-50%, 0, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }

    .reveal-line > span,
    .image-reveal img,
    .hero__media,
    .hero__poster {
        transform: none !important;
        clip-path: inset(0 0 0 0) !important;
    }
}
