*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; background: var(--ink-0); scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--ink-0);
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; }
img, svg { display: block; max-width: 100%; }
h1, h2, h3, h4, p { margin: 0; }
h1, h2, h3 { color: var(--text-strong); letter-spacing: -0.025em; }
code, pre, .mono { font-family: var(--font-mono); }
::selection { background: rgba(108, 124, 255, 0.32); color: white; }
:focus-visible { outline: 2px solid var(--cobalt-strong); outline-offset: 3px; }
.skip-link {
  position: fixed; top: 10px; left: 10px; z-index: 1000; transform: translateY(-150%);
  background: var(--text-strong); color: var(--ink-0); padding: 9px 13px; border-radius: var(--radius-xs);
}
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.hidden { display: none !important; }
.muted { color: var(--text-muted); }
.faint { color: var(--text-faint); }
.text-cobalt { color: var(--cobalt-strong); }
.text-teal { color: var(--teal); }
.text-coral { color: var(--coral); }
.stack { display: flex; flex-direction: column; gap: var(--space-4); }
.cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.between { justify-content: space-between; }
.page-fade { animation: page-in 260ms var(--ease) both; }
@keyframes page-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
}
