I'm aware of Sara's solution that uses scroll-marker-group, but that's experimental. Nathalie has a trick https://nathalie-trefz.de/blog/scrollspy that requires the nav to be after the sections that scroll. There's no date on the post, but I'm assuming that its been a few years. Now, though, we can select previous siblings with :has() https://tobiasahlin.com/blog/previous-sibling-css-has/ it should be possible, no?
Experimenting, I scaled from menu navigation and sections back to just the menu siblings and could get menu one to change when hovering menu three, but no luck the other way around.
nav a[href='#three']:has(~ a[href='#one']:hover) { background: blue; }
nav a[href='#three']:has(~ a[href='#one']:hover) { background: blue; }
(this works)
nav a[href='#one']:has(~ a[href='#three']:hover) { background: blue; }
nav a[href='#one']:has(~ a[href='#three']:hover) { background: blue; }