Clients
Phones are the play surface.
These are requirements. Fine-tuning after install includes checking them on a real device before you claim they work.
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">- Do not globally disable zoom
- Root:
width: 100%,height: 100vh, thenheight: 100dvh,overflow: hidden env(safe-area-inset-*)on critical controls- Gameplay must not require document scrolling
- Recalculate on
resize,visualViewport.resize, andorientationchange - Canvas: CSS size ≠ backing store; cap
devicePixelRatioat 2; do not replace the node - Pointer Events;
touch-action: noneonly on the playfield - Primary targets at least 44×44 CSS pixels; no hover-only controls
- One
requestAnimationFrameloop; pause rendering while hidden without leaving the room - Report Safari and Android Chrome only if you actually tested them