/**
 * Base rules that every page gets, loaded before anything else.
 *
 * Two things live here, both about scrolling.
 *
 * 1. Nothing in Atmos scrolls horizontally. A sideways scrollbar is always a
 *    layout bug — some element overflowing its container — and letting the page
 *    scroll to reveal it hides the bug instead of showing it. Clipping at the
 *    root means an overflow shows up as clipped content, which gets fixed,
 *    rather than as a stray scrollbar, which doesn't.
 *
 * 2. No elastic overscroll. In a browser tab the rubber-band at the end of a
 *    scroll is a familiar OS affordance. Inside the desktop app it isn't — the
 *    window has no address bar or page chrome, so the whole UI visibly peeling
 *    away from the edge reads as the app coming apart. `overscroll-behavior`
 *    stops the bounce and also stops scroll chaining out of nested panels.
 *
 * Anything that genuinely needs to scroll sideways (wide tables, code) does it
 * in its own container with its own `overflow-x: auto`, never on the page.
 */

html {
    overflow-x: hidden;
    overscroll-behavior: none;
}

body {
    overflow-x: hidden;
    overscroll-behavior: none;
    /* Belt and braces: a child with a fixed width wider than the viewport would
       otherwise still stretch the body box even with overflow clipped. */
    max-width: 100%;
}
