:root {
  color-scheme: light;
  --marble: #f7f4ed;
  --ivory: #efe8de;
  --cobalt: #163b73;
  --cerulean: #507a9b;
  --gold: #ad8440;
  --brass: #7b5c28;
  --navy: #13284f;
  --muted: #45566b;
  --ink: var(--navy);
  --deep-ink: #0b1d40;
  --paper: var(--marble);
  --paper-light: #fffdf8;
  --butter: #e8d6aa;
  --ochre: var(--brass);
  --red: var(--cobalt);
  --mist: #dbe5eb;
  --line: rgba(19,40,79,.19);
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'DM Sans', system-ui, sans-serif;
  --mono: 'DM Mono', monospace;
  --shadow-card: 0 18px 45px rgba(19,40,79,.16);
  --shadow-sm: 0 8px 22px rgba(19,40,79,.12);
  --radius: 6px;
  --radius-sm: 4px;
}
:focus-visible { outline: 3px solid var(--cobalt); outline-offset: 5px; }
[hidden] { display: none !important; }
button, input, select, summary { font: inherit; }
button, a, summary { touch-action: manipulation; }
button { cursor: pointer; }
img { max-width: 100%; }
:where(h1,h2,h3) { text-wrap: balance; }
:where(h1,h2,h3,[id]) { scroll-margin-top: 2rem; }
.skip-link { position: fixed; left: 1rem; top: -10rem; z-index: 999; padding: .8rem 1rem; color: white; background: var(--navy); }
.skip-link:focus { top: 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
