/* Shared foundations: palette, typography, layout, and accessible defaults. */
:root {
  color-scheme: light;
  --paper: #f7f8f4;
  --ink: #172c35;
  --muted: #56666b;
  --line: #dce2dc;
  --accent: #285d4b;
  --lime: #d5edab;
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 32px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-sans); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-weight: 500; line-height: 1.16; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
::selection { background: var(--lime); color: var(--ink); }
:focus-visible { outline: 3px solid #598b68; outline-offset: 6px; border-radius: 2px; }
.container { width: min(1120px, calc(100% - 96px)); margin-inline: auto; }
.eyebrow { color: var(--accent); font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .13em; line-height: 1.5; text-transform: uppercase; }
.section-border { border-top: 1px solid var(--line); }
.skip-link { position: absolute; top: 12px; left: 12px; z-index: 5; transform: translateY(-180%); padding: 10px 16px; background: var(--ink); color: white; }
.skip-link:focus { transform: translateY(0); }
@media (max-width: 640px) { .container { width: calc(100% - 40px); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
