/* ════════════════════════════════════════════════════════════════════════════
   IMungro — Page Reveal Animation (v2.3.4)
   Gentle, calm page transitions: subtle fade + slight upward drift.
   The body content starts invisible, then eases in over ~0.6s.
   Each major content block fades in with a staggered delay for a
   layered, unhurried reveal — never flashy, always calm.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Initial hidden state ──────────────────────────────────────────────────── */
.im-reveal-ready .im-site-content {
    opacity: 0;
}

.im-reveal-ready .im-header {
    opacity: 0;
    transform: translateY(-12px);
}

/* ── Reveal animation ──────────────────────────────────────────────────────── */
.im-reveal-active .im-site-content {
    opacity: 1;
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.im-reveal-active .im-header {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.6s cubic-bezier(0.22, 0.61, 0.36, 1),
                transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ── Staggered child elements ──────────────────────────────────────────────── */
.im-reveal-active .im-site-content > * {
    animation: im-reveal-children 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.im-reveal-active .im-site-content > *:nth-child(1) { animation-delay: 0.05s; }
.im-reveal-active .im-site-content > *:nth-child(2) { animation-delay: 0.12s; }
.im-reveal-active .im-site-content > *:nth-child(3) { animation-delay: 0.19s; }
.im-reveal-active .im-site-content > *:nth-child(4) { animation-delay: 0.26s; }
.im-reveal-active .im-site-content > *:nth-child(5) { animation-delay: 0.33s; }
.im-reveal-active .im-site-content > *:nth-child(6) { animation-delay: 0.40s; }

@keyframes im-reveal-children {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ── Buy page specific ────────────────────────────────────────────────────── */
.im-reveal-ready body.im-buy-page-active .im-buy-page { opacity: 0; }
.im-reveal-active body.im-buy-page-active .im-buy-page {
    opacity: 1;
    transition: opacity 0.6s ease;
}

/* ── Page curtain (instant fade for preloader-less pages) ──────────────────── */
#im-page-curtain {
    position: fixed;
    inset: 0;
    z-index: 9998;
    background: var(--im-color-background, #0d1b2a);
    pointer-events: none;
    opacity: 1;
    transition: opacity 0.5s ease;
}
#im-page-curtain.im-curtain-lifted {
    opacity: 0;
}

/* ── Exclude sample reader modal from reveal animation ────────────────────── */
/* The modal uses position:fixed; any transform on a parent creates a containing
   block that constrains it. Exclude it from the staggered reveal animation. */
.im-reveal-active .im-site-content > .im-sample-modal {
    animation: none !important;
    transform: none !important;
}

/* ── Respect reduced motion ───────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .im-reveal-ready .im-site-content,
    .im-reveal-ready .im-header {
        opacity: 1 !important;
        transform: none !important;
    }
    .im-reveal-active .im-site-content > * {
        animation: none !important;
    }
}
