Fix mobile keyboard overlap with VisualViewport
Introduction Bottom‑pinned chat inputs get buried when the mobile keyboard opens. The page visually shrinks, but neither vh nor dvh track the virtual keyboard. Your input ends up underneath the keyboard. To solve this, we can use the VisualViewport API to sync the visual viewport height to a CSS variable. I hit this building Sparka….
