Scroll to reveal
Each card below starts hidden and animates in when it scrolls into view.
First reveal
Fades and slides up as it enters the viewport, driven by IntersectionObserver toggling a class with a CSS transition.
Second reveal
The same entrance, staggered down the page so it is comfortably below the initial fold.
Third reveal
A deterministic reproduction target: hidden at load, revealed on scroll, settling to full opacity.
Fourth reveal
The clone should hide these on load and reveal them on scroll, then the gate verifies it.
Fifth reveal
Content is never lost: a force-reveal timer guarantees everything appears even without scrolling.