/* ============================================================================
   AURELIA — animations
   Reveal-on-scroll · stagger · marquee · float · page enter
   Respects prefers-reduced-motion. JS adds .is-revealed when in view;
   without JS, elements are visible by default (safe no-JS fallback).
   ========================================================================== */

/* Page enter */
.page-enter {
    animation: pageIn 0.7s var(--ease-lux) both;
}
@keyframes pageIn {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Reveal on scroll */
.reveal, .stagger > * {
    opacity: 1;
    transform: none;
}
html.js .reveal, html.js .stagger > * {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity 0.8s var(--ease-lux), transform 0.8s var(--ease-lux);
    transition-delay: var(--d, 0s);
}
html.js .reveal.is-revealed, html.js .stagger > .is-revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger children */
.stagger > *:nth-child(2) { --d: 0.08s; }
.stagger > *:nth-child(3) { --d: 0.16s; }
.stagger > *:nth-child(4) { --d: 0.24s; }
.stagger > *:nth-child(5) { --d: 0.32s; }
.stagger > *:nth-child(6) { --d: 0.4s; }

/* Marquee */
@keyframes marqueeLux {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* Floating hero card */
@keyframes floatLux {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}

/* Image reveal (slight rise for hero media) */
.hero-media {
    animation: riseIn 1s var(--ease-lux) 0.15s both;
}
@keyframes riseIn {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Counter shimmer — subtle gold pulse on stats */
.stat-value { position: relative; }

/* ============================================================================
   REDUCED MOTION
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    html.js .reveal, html.js .stagger > * {
        opacity: 1;
        transform: none;
    }
    .marquee-track { animation: none; }
    .hero-card { animation: none; }
}
