720b1f0c40
- Keyboard: the 60ms timer in batch106 sampled the viewport MID-animation (clientHeight/visualViewport temporarily inconsistent) and over-lifted -> gap. Reverted to reading clientHeight-visualViewport LIVE on every vv resize, which is correct and self-adapting (unit test: residual=46 flush on the device). - Budge: reverted the file <input> back to display:none (the position:fixed;left:50% hack overflowed the viewport horizontally). - Config back to resize:native to match the installed build (works, no rebuild). - Added test/keyboard-lift.test.js (5/5 pass) verifying the lift math against real device numbers. Build marker -> 2026-07-18-batch107. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>