body {
  margin: 0;
  padding: 0;
  color: #222222;
  background-color: #e0e0e0;
  /* Mobile: stop the page itself from scrolling/zooming so touch goes to the
     canvas, and respect notches/home-indicator via env(safe-area-inset-*). */
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  overscroll-behavior: none;
}

#app {
  position: relative;
  width: 100%;
  /* 100dvh tracks the *dynamic* viewport (mobile URL bars show/hide). */
  height: 100dvh;
  overflow: hidden;
  /* Neutral fallback for the one frame before the in-engine background paints.
     The canvas fills the whole viewport and its background bleeds edge-to-edge,
     so there is no surrounding frame to theme. */
  background: #e0e0e0;
}

/* The canvas fills the viewport (sized by Phaser's Scale.EXPAND; see game/main.ts). */
#game-container {
  position: absolute;
  inset: 0;
}
