v3.9.0
The iPhone navigation now occupies its own row in the application shell. It no longer depends on WebKit's fixed-position viewport, which can remain one Dynamic Island inset too short and leave a black strip below an otherwise complete bar.
The page content now scrolls inside one explicit region above the bar. Route changes, task details, More, voice rooms, and other overlays all lock and restore that same region without fixing the whole document underneath them.
Miracle now discards stale keyboard dimensions after focus leaves an editor, the app resumes, or a route changes. Installed mode no longer jiggles the page to repair navigation, and the structural layout begins before JavaScript paints the first frame.
The regression suite now protects the shell hierarchy and stale-viewport lifecycle instead of merely checking for the words bottom zero. An iOS 26.5 pixel test also verifies that navigation paint, not page background, reaches the final physical row.
One short email when something meaningful ships. No streaks required.