/* ----------- Aurora blob drift ----------- */
@keyframes floatA {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(80px, 60px) scale(1.08); }
}
@keyframes floatB {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(-60px, 90px) scale(1.12); }
}
@keyframes floatC {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(40px, -70px) scale(1.05); }
}

/* ----------- Hero scroll dot ----------- */
@keyframes scrollDot {
    0%   { transform: translateY(0); opacity: 1; }
    70%  { transform: translateY(12px); opacity: 0; }
    100% { transform: translateY(0); opacity: 0; }
}

/* ----------- Live indicators ----------- */
@keyframes pulseDot {
    0%, 100% { transform: scale(1); opacity: 1; }
    50%      { transform: scale(1.4); opacity: 0.65; }
}

@keyframes barGlow {
    0%, 100% { filter: brightness(1); }
    50%      { filter: brightness(1.35); }
}

/* ----------- Reveal-on-scroll ----------- */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.9s var(--ease-soft),
                transform 0.9s var(--ease-soft);
}
.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger via delay var */
.reveal[data-delay="1"] { transition-delay: 0.08s; }
.reveal[data-delay="2"] { transition-delay: 0.16s; }
.reveal[data-delay="3"] { transition-delay: 0.24s; }
.reveal[data-delay="4"] { transition-delay: 0.32s; }

/* Reduce motion */
@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 { opacity: 1; transform: none; }
}
