/*
 * Permanent 90% layout scale — header, main, footer, modals all scale together.
 * CSS zoom scales px, rem, and images uniformly (unlike root font-size alone).
 * Do not use background-attachment: fixed on html/body — it stays viewport-locked
 * while browser zoom changes text, which looks like an infinite static backdrop.
 */
html,
body {
    margin: 0;
    padding: 0;
    background-color: #ffffff;
    overflow-x: hidden;
}

.site-scale-root {
    zoom: 0.9;
    width: 100%;
    min-height: 100vh;
}

/* Firefox: zoom is unsupported — scale the whole page block instead. */
@supports not (zoom: 1) {
    .site-scale-root {
        zoom: unset;
        transform: scale(0.9);
        transform-origin: top center;
        width: 111.111111%;
        margin-left: auto;
        margin-right: auto;
        min-height: calc(100vh / 0.9);
    }
}

/* Phones / tablets: native 100% so tap targets and 100vw do not clip. */
@media (max-width: 1023px) {
    .site-scale-root {
        zoom: 1;
        transform: none;
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        min-height: 100vh;
    }
}

.site-chrome--header,
.site-chrome--footer {
    width: 100%;
    flex-shrink: 0;
}
