overflow: hidden vypne klasické scrollování.
Událost wheel zachytí pohyb kolečka myši.
Podle směru (deltaY šipka vpravo 0 = dolů, šipka vlevo 0 = nahoru) se zvýší nebo sníží index aktuální sekce.
scrollIntoView({ behavior: 'smooth' }) skočí na začátek daného containeru.
Proměnná isScrolling brání tomu, aby se při rychlém kolečku přeskočilo více sekcí najednou.
Pokud chceš, aby to bylo úplně „instantní“ bez animace, můžeš dát scrollIntoView({ behavior: 'auto' }).