/* Explain: Base reset and typography defaults with noise overlay. */
* {
    box-sizing: border-box;
}

html {
    background: var(--background-color);
}

body {
    overflow-x: hidden;
}

[x-cloak] {
    display: none !important;
}

/* Remove default link outlines but keep focus-visible */
a:focus-visible, button:focus-visible {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* Site-wide fine grain for a tactile, printed-poster finish */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    opacity: 0.035;
    mix-blend-mode: multiply;
    background-image: var(--noise-url);
    background-size: 200px 200px;
}