Very well, that’s how. A quick look reveals that each scene is a section, the assets are linked with data attributes, and the rest is fancy combinations of TweenJS and Three.js animations, coordinated by /assets/js/main.min.js (which also handles the invisible history).
It's plain HTML5. That scrolling behavior isn't a freebie. The scroll bar you see is actually for an empty div. There's an attached scroll event handler that they're likely using to run the animation.