NOTE: This demo requires a browser that supports the IntersectionObserver API and CSS Grid. Works best on desktop-sized viewports.