Same-document view-transition-name on the active panel; swap uses
document.startViewTransition when the browser supports it (fade fallback otherwise).
Blocks use IntersectionObserver with a negative root margin (Framer’s “in view” margin).
Each paragraph fades up once; switch tabs to re-run observers on the other panel.
Second view — typography-led, minimal chrome. Production Heydays uses Framer Motion
AnimatePresence + whileInView; this page mirrors the feel without React.
Research, identity, digital — three beats stacked with staggered delays.
Switch back to Home to compare the transition animation.
Tip: Chrome/Edge 111+ show the cross-fade. Safari 18+ supports View Transitions. Firefox may still use instant swap with working scroll reveals.