[data-reveal] {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 600ms var(--ease-artful), transform 600ms var(--ease-artful);
}

[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

.hero .title-reveal {
    animation: fadeRise 700ms var(--ease-artful) both;
}

.hero .subtitle-reveal {
    animation: fadeRise 700ms 120ms var(--ease-artful) both;
}

.hero .cta-reveal {
    animation: fadeRise 700ms 240ms var(--ease-artful) both;
}

@keyframes fadeRise {
    from {
        opacity: 0;
        transform: translateY(16px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
    }

    [data-reveal] {
        opacity: 1;
        transform: none;
    }
}