v2.97.2
The bottom navigation no longer mistakes the Dynamic Island and status area for empty space beneath the app. The bar always stays inside the paintable screen, so its labels cannot be pushed under a black strip.
Cold launch, returning from the background, rotation, resizing, and keyboard dismissal now receive a bounded set of viewport checks. When WebKit needs the same tiny scroll that used to fix the bar manually, the app performs it invisibly and restores the exact page position.
One short email when something meaningful ships. No streaks required.