/* 
 * Amie Theme - Animations & JS States
 * Only contains hidden states for JS-driven reveals and reduced-motion overrides.
 */

/* the section itself stays put (its background must never leave a gap); its content rises in */
html.amie-js .amie-reveal > * {
    opacity: 0;
    transform: translateY(40px);
}

html.amie-js .amie-stagger > * {
    opacity: 0;
    transform: translateY(24px);
}

html.amie-js .amie-hero__eyebrow,
html.amie-js .amie-hero__title,
html.amie-js .amie-hero__sub,
html.amie-js .amie-hero__actions,
html.amie-js .amie-hero__cue {
    opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
    .amie-reveal > *,
    .amie-stagger > *,
    .amie-hero__eyebrow,
    .amie-hero__title,
    .amie-hero__sub,
    .amie-hero__actions,
    .amie-hero__cue {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    .amie-weave,
    .amie-progress {
        display: none !important;
    }
}

/* "Calm mode" (Shuttle -> Effects): no motion for anyone, like reduced motion */
body.fx-calm-on .amie-hero__cue::after,
body.fx-calm-on .amie-book__cover::before,
body.fx-calm-on .amie-badge::before { animation: none; }
html:has(body.fx-calm-on) { scroll-behavior: auto; }
