89667c401893a0deba7adc885c7d53092208c657
viewport-fit=cover was already on, so the canvas was full-bleed and the iPhone status bar landed directly on the scoreboard. Keeping the canvas full-bleed — the stands running to the screen edges is the look — and moving the HUD instead: a hidden probe div carries env(safe-area-inset-*), which env() only exposes to CSS, render.js converts it to logical canvas px at the same scale fitViewport just applied, and the scoreboard shifts down while the rack and the draw meter lift up. Body height also goes to 100dvh so iOS's dynamic toolbars stop leaving a strip unused at the bottom. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Languages
JavaScript
75.2%
Python
15.8%
HTML
7.3%
Shell
1.4%
Swift
0.2%