/* Motion utilities — transform/opacity only */
.motion-ready [data-aos] {
    opacity: 0;
    translate: 0 28px;
    transition:
        opacity 700ms var(--ease-out) var(--reveal-delay, 0ms),
        translate 800ms var(--ease-out) var(--reveal-delay, 0ms);
}

.motion-ready [data-aos="fade-left"] {
    translate: 36px 0;
}

.motion-ready [data-aos="fade-right"] {
    translate: -36px 0;
}

.motion-ready [data-aos].aos-animate,
.motion-ready [data-aos].is-visible {
    opacity: 1;
    translate: 0 0;
}

.motion-ready .brand-signal,
.motion-ready .hero-title,
.motion-ready .hero-subtitle,
.motion-ready .hero-buttons,
.motion-ready .hero-visual {
    opacity: 0;
    transform: translate3d(0, 24px, 0);
}

.motion-ready.page-ready .brand-signal,
.motion-ready.page-ready .hero-title,
.motion-ready.page-ready .hero-subtitle,
.motion-ready.page-ready .hero-buttons,
.motion-ready.page-ready .hero-visual {
    animation: hero-reveal 850ms var(--ease-out) forwards;
}

.motion-ready.page-ready .brand-signal { animation-delay: 40ms; }
.motion-ready.page-ready .hero-title { animation-delay: 120ms; }
.motion-ready.page-ready .hero-subtitle { animation-delay: 220ms; }
.motion-ready.page-ready .hero-buttons { animation-delay: 320ms; }
.motion-ready.page-ready .hero-visual { animation-delay: 180ms; }

@keyframes hero-reveal {
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .motion-ready [data-aos],
    .motion-ready .brand-signal,
    .motion-ready .hero-title,
    .motion-ready .hero-subtitle,
    .motion-ready .hero-buttons,
    .motion-ready .hero-visual {
        opacity: 1 !important;
        filter: none !important;
        translate: none !important;
        transform: none !important;
        animation: none !important;
        transition: none !important;
    }
}
