body {
    margin: 0;
    padding: 0;
    color: rgba(255, 255, 255, 0.87);
    background-color: #1a0d30;
}

#app {
    width: 100%;
    /* 100vh on iOS Safari is the LARGE viewport (as if the URL bar and bottom toolbar
       were hidden), so a full-height scene renders taller than the visible area and its
       top/bottom get occluded by the browser chrome. 100dvh tracks the ACTUAL visible
       viewport, so Scale.FIT letterboxes the whole scene into what the player can see. */
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Give Phaser's Scale.FIT a concrete parent box to measure (the visible viewport),
   instead of letting #game-container collapse to the canvas size. */
#game-container {
    width: 100%;
    height: 100%;
}
