Comment by mason55
FYI - you aren't handling the "scroll up" case.
To see what I mean, click "Creating a Feature" then start scrolling up. Notice that "Creating a Feature" is still highlighted even though the entire screen is made up of text from the "Software" section.
I probably only noticed this because I recently implemented a similar "active anchor" solution with Intersection Observer.