html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    overflow: hidden;
    /* No pull-to-refresh / rubber-band bounce around the game. */
    overscroll-behavior: none;
    color: rgba(255, 255, 255, 0.87);
    background-color: #000000;
    -webkit-tap-highlight-color: transparent;
}

/* Pin the body so iOS Safari can't scroll the page behind the game. */
body {
    position: fixed;
    inset: 0;
}

#app {
    width: 100%;
    height: 100vh;
    /* Dynamic viewport height: tracks the real visible area as mobile browser
       chrome (address bar) shows/hides. Falls back to 100vh where unsupported. */
    height: 100dvh;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

#game-container {
    width: 100%;
    height: 100%;
    position: relative;
}

canvas {
    image-rendering: pixelated;
    image-rendering: crisp-edges;
    display: block;
    /* The game owns all gestures inside the canvas — no browser pan/zoom/double-tap. */
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
}
