*, *::before, *::after { box-sizing: border-box; }
html { color: var(--gs-color-ink); background: var(--gs-color-paper); scroll-behavior: smooth; }
body { margin: 0; min-width: 20rem; overflow-x: clip; font-family: var(--gs-font-sans); font-size: var(--gs-text-base); line-height: 1.6; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body.gs-menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: 0.2em; }
button, input, select, textarea { font: inherit; }
button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"]) { outline-offset: 0.2rem; }
:focus-visible { outline: 0.125rem solid var(--gs-color-focus); }
.gs-container { width: min(100% - (2 * var(--gs-gutter)), var(--gs-container)); margin-inline: auto; }
.gs-stack > * + * { margin-block-start: var(--gs-space-6); }
.gs-site-main { min-height: 50vh; }
.gs-page-shell { padding-block: var(--gs-space-16); }
.gs-heading-xl, .gs-heading-lg { margin: 0; font-family: var(--gs-font-serif); font-weight: 400; line-height: 1.05; }
.gs-heading-xl { font-size: var(--gs-text-xl); }
.gs-heading-lg { font-size: clamp(1.75rem, 3vw, 3rem); }
.gs-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.gs-skip-link { position: fixed; z-index: 1000; inset: var(--gs-space-3) auto auto var(--gs-space-3); padding: var(--gs-space-3) var(--gs-space-4); background: var(--gs-color-ink); color: var(--gs-color-surface); transform: translateY(-150%); }
.gs-skip-link:focus { transform: translateY(0); }
