*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; min-height: 100vh; background: var(--bg); color: var(--text);
  font: 400 14px/20px var(--font); font-feature-settings: "cv11", "ss01"; -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-underline-offset: 2px; }
h1 { font-size: 24px; line-height: 32px; font-weight: 600; letter-spacing: -.02em; margin: 0; }
h2 { font-size: 16px; line-height: 24px; font-weight: 600; margin: 28px 0 12px; }
h3 { font-size: 14px; line-height: 20px; font-weight: 600; margin: 0; }
p { margin: 0; }
small { font-size: 12px; line-height: 16px; }
code { background: var(--bg-muted); padding: 1px 5px; border-radius: var(--r-chip); font-size: 12.5px; }
img { max-width: 100%; }
select, input, button, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--text); outline-offset: 2px; border-radius: var(--r-chip); }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.muted { color: var(--text-3); }
.small { font-size: 13px; line-height: 18px; }
.num { font-variant-numeric: tabular-nums; }
.row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.spacer { flex: 1; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
