html, body { margin: 0; height: 100%; background: #0f1626; overflow: hidden; }
/* The game scales its layout to fit whatever size this canvas is. On
   phones 100vh counts the space behind the address bar too, which hid the
   buttons; dvh is only what's visible (100vh is for older browsers). */
canvas { display: block; width: 100vw; height: 100vh; height: 100dvh; outline: none; }
/* Shown while the game downloads, in the game's own black and white. */
#loading {
  position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; background: #000; color: #fff; font: 18px monospace;
}
#loading .bar { width: min(320px, 80vw); height: 16px; border: 3px double #fff; padding: 2px; }
#loading .fill { width: 0; height: 100%; background: #fff; }
/* Read by screen readers and AI agents, not shown: the game itself is a canvas. */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
