@layer base {
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { margin: 0; min-height: 100vh; background: var(--color-canvas) var(--texture); color: var(--color-text); font: 400 var(--text-base)/1.6 var(--font-ui); -webkit-font-smoothing: antialiased; font-feature-settings: "kern"; }
  h1, h2, h3, p, ul, ol, figure { margin: 0; }
  ul, ol { padding: 0; list-style: none; }
  a { color: inherit; }
  button, input, select, textarea { font: inherit; color: inherit; }
  :focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; border-radius: 2px; }
  ::selection { background: color-mix(in srgb, var(--color-brand) 22%, transparent); }
  .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .icon { width: 1.125em; height: 1.125em; flex: none; fill: none; stroke: currentColor; stroke-width: var(--icon-stroke); stroke-linecap: round; stroke-linejoin: round; vertical-align: -0.2em; }
  .mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
  .break-anywhere { overflow-wrap: anywhere; }
  .num { font-variant-numeric: tabular-nums lining-nums; }
  .muted { color: var(--color-text-muted); }
  .only-dark { display: none; }
  [data-theme="dark"] .only-dark { display: inline; }
  [data-theme="dark"] .only-light { display: none; }
  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; } }
}

@layer base {
  .hidden { display: none !important; }
}
