/* ============================================================
   base.css — Browser reset and accessibility
   No design decisions. Pure plumbing.
   ============================================================ */

@layer base {

  /* --- Reset --- */
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  :where(ul, ol) { list-style: none; }
  :where(img, svg, video, canvas) { display: block; max-width: 100%; }
  :where(input, button, textarea, select) { font: inherit; color: inherit; }
  :where(button) { cursor: pointer; background: none; border: none; }
  :where(a) { color: inherit; text-decoration: none; }
  :where(table) { border-collapse: collapse; }

  /* --- Document --- */
  html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    min-height: 100dvh;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    line-height: 1.6;
  }

  /* --- Accessibility --- */
  :where(a, button, input, textarea, select):focus-visible {
    outline: 2px solid var(--accent, currentColor);
    outline-offset: 2px;
  }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }

  /* --- Print --- */
  @media print {
    nav, footer, [popover], dialog { display: none; }
    body { background: white; color: black; }
  }
}
