*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--font-sans);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, summary, [role="button"], a { -webkit-tap-highlight-color: transparent; }
button, summary { cursor: pointer; }
:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; opacity: var(--disabled-opacity); }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.sr-only {
    position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important;
    margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important; border: 0 !important;
}
.skip-link {
    position: fixed; z-index: 100; left: 16px; top: -80px; padding: 10px 16px;
    background: var(--ink); color: var(--surface); border-radius: var(--radius-sm);
}
.skip-link:focus { top: 16px; }
svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 640px) { .container { width: min(calc(100% - 28px), var(--container)); } }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
