/* ============================================================
   OliverDeck — BASE · RESET
   Minimal, opinionated normalize. Kept tiny on purpose.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
  font-family: var(--od-font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--od-color-text-primary);
  background: var(--od-color-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
img, svg, video { max-width: 100%; display: block; }
input, textarea, select, button { font: inherit; }
:where(h1, h2, h3, h4, h5, h6, p, figure) { margin: 0; }

/* Single, consistent focus-visible ring across the whole system. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--od-focus-color);
  outline-offset: 2px;
  border-radius: var(--r-xs);
}

/* Respect reduced-motion everywhere — one global guard. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
