*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; background: var(--paper); }
body { margin: 0; min-height: 100vh; background: var(--paper); color: var(--ink); font: 400 15px/1.55 var(--font-body); letter-spacing: -.012em; -webkit-font-smoothing: antialiased; }
button, select { font: inherit; }
button { color: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
a { color: inherit; text-decoration: none; }
svg { display: block; width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--ink); font-family: var(--font-display); letter-spacing: -.045em; }
h1 { margin-bottom: 0; font-size: clamp(1.55rem, 2vw, 2rem); line-height: 1.15; font-weight: 700; }
h2 { margin-bottom: .5rem; font-size: clamp(1.6rem, 2.2vw, 2.2rem); line-height: 1.17; font-weight: 700; }
h3 { margin-bottom: .5rem; font-size: 1.17rem; line-height: 1.28; font-weight: 700; }
p { color: var(--ink-soft); }
::selection { color: var(--forest-deep); background: var(--lime); }
[hidden] { display: none !important; }
.skip-link { position: fixed; z-index: 100; top: 1rem; left: 1rem; transform: translateY(-160%); border-radius: .7rem; padding: .75rem 1rem; background: var(--ink); color: var(--surface); font-weight: 700; }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; overflow: hidden; clip: rect(0,0,0,0); width: 1px; height: 1px; white-space: nowrap; clip-path: inset(50%); }
