How the buttons work
film.scrollToTime(seconds) scrolls the page to a moment in the video.
Captions get data-active and a --progress variable, the bar uses
--video-progress, and the active chapter comes from
vidscroll-enter events. The element keeps your content as ordinary children,
so page CSS styles it as usual.
Train animation: “30 second animation assignment” by roenais.