.bg-light    { background: var(--color-bg-surface); }
.u-no-scroll { overflow: hidden !important; }
.u-muted     { color: var(--color-text-secondary) !important; }
.u-mt-xl     { margin-top: var(--space-6); }
.u-mb-xl     { margin-bottom: var(--space-6); }

/* ── Motion utilities ───────────────────────────────────────────────────── */
[data-reveal] {
    opacity: 0;
    transform: translate3d(0, 28px, 0) scale(0.985);
    filter: blur(8px);
    transition:
        opacity 0.78s ease,
        transform 0.78s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.78s ease;
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform, filter;
}
[data-reveal].is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
}

.reveal-delay-1 { --reveal-delay: 90ms; }
.reveal-delay-2 { --reveal-delay: 180ms; }
.reveal-delay-3 { --reveal-delay: 270ms; }

.hero-copy {
    animation: hero-slide-in 0.92s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.hero-visual {
    animation:
        hero-slide-in 1.02s cubic-bezier(0.16, 1, 0.3, 1) 0.10s both,
        premium-float 7.4s ease-in-out 1.25s infinite;

    max-width: 620px;
    margin-inline: auto;
}

@keyframes hero-slide-in {
    from {
        opacity: 0;
        transform: translate3d(0, 32px, 0) scale(0.985);
        filter: blur(10px);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
        filter: blur(0);
    }
}
@keyframes premium-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}


@media (max-width: 768px) {
    .hero-capital-visual {
        width: min(92vw, 560px);
    }
}

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

    [data-reveal],
    [data-reveal].is-visible,
    .hero-copy,
    .hero-visual {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        animation: none !important;
        transition: none !important;
    }

    .home-marquee-track,
    .hero-sheen {
        animation: none !important;
        transform: none !important;
    }
}
