/* ============================================================
   FINAL CTA + FOOTER — smooth fade-in from the bottom
   On first entry the closing sentence, Download button and footer
   slide up and fade in together for a clean, professional finish.
   Once shown, they stay visible for the rest of the session.
   ============================================================ */

/* FINALE GATE
   The closing CTA *and* the footer stay fully hidden + non-interactive
   until the op2 wiring narrative has genuinely finished. The op1 scene
   adds `body.story-final` at its handoff, which fades both in together.
   This makes it impossible for the Download button / footer to surface
   over the op2 stage during a fast / inertial scroll. */

#finalCta {
  opacity: 0;
  transform: translateY(56px);
  transition:
    opacity 0.9s ease,
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
  pointer-events: none;
}

.site-footer {
  opacity: 0;
  transform: translateY(40px);
  transition:
    opacity 0.9s ease,
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
  pointer-events: none;
}

/* Revealed together once the story completes (or instantly when returning
   from a subpage — `.revealed` is kept for backward compatibility). */
body.story-final #finalCta,
#finalCta.revealed {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

body.story-final .site-footer {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
