Blocks page scrolling under the tour. React registers wheel/touch handlers
passively, so this attaches native non-passive listeners on window and
prevents them for the tour's lifetime — the page can't scroll out from
under the hole.
With a scrollTarget (a step whose spotlight had to be viewport-clamped),
the events are still prevented — interaction stays blocked — but their
deltas are forwarded into the target's own scroll pane, so the user can
scroll through a region taller than the screen while the hole tracks it.
Forwarding (rather than just not blocking) matters because the events land
on the tour's fixed shield, whose ancestors never scroll.
Blocks page scrolling under the tour. React registers wheel/touch handlers passively, so this attaches native non-passive listeners on
windowand prevents them for the tour's lifetime — the page can't scroll out from under the hole.With a
scrollTarget(a step whose spotlight had to be viewport-clamped), the events are still prevented — interaction stays blocked — but their deltas are forwarded into the target's own scroll pane, so the user can scroll through a region taller than the screen while the hole tracks it. Forwarding (rather than just not blocking) matters because the events land on the tour's fixed shield, whose ancestors never scroll.