visualViewport.resize fires on pinch-zoom, not just window-size change. The previous viewport-override would re-assert initial-scale=1.0 on every pinch event, snapping the user's zoom back to 1.0 instantly. Restrict the listener to orientationchange + initial settle timers so pinch-zoom is left alone after page load. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>