Plan
Sitemap, page templates and the CMS structure agreed before a single section is built.
The section holds still while its contents travel sideways, so vertical scrolling drives horizontal movement. The distance is measured from the real content width, not a guessed number, so it stays correct when the text wraps or the window changes.
Travel distance comes from scrollWidth minus the stage width, recalculated on every refresh. Most tutorials hardcode a percentage, which breaks the moment a heading wraps onto two lines.
The tween is tied to scroll position with a small scrub value, so it tracks the finger or wheel with a touch of lag. Easing is set to none, because the scroll already provides the timing.
Rather than freezing the panels, it becomes a normal swipeable row with scroll snapping. The content is still reachable, it just does not hijack the page.