/* Shared foundations; page styles contain only the page-specific layout. */
:root {
  --font-body: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-size-body: 1rem;
  --font-size-label: .875rem;
  --font-size-meta: .8125rem;
  --focus-ring: #476e9f;
}
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
body { font-family: var(--font-body); font-size: var(--font-size-body); }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
img { max-width: 100%; }
[hidden] { display: none !important; }
:where(a, button, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--focus-ring); outline-offset: 4px;
}
:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus-visible {
  outline: none;
}
:where(p, li, dd, td, th, label) { overflow-wrap: anywhere; }
input, select, textarea { min-width: 0; }
textarea { resize: vertical; }
@media (prefers-color-scheme: dark) { :root { --focus-ring: #a8c6ed; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
