/* =========================================================================
   RovoMedia — base.css
   Foundation layer ONLY: reset, box-sizing, the <body> canvas, default
   body typography, base heading styles, default link styling, focus,
   code/pre defaults, and a screen-reader-only accessibility utility.
   No composition, no layout, no route-specific rules — those belong to
   home.css / interior.css.

   Milestone 2a (additive-only, NOT yet linked into any route's <head>):
   these rules are COPIED (not moved) from assets/styles.css and from
   index.html's inline <style> block — today's two actual sources of this
   foundation styling (home has no design-system.css/styles.css load at
   all; evidence/services load styles.css after design-system.css, so
   styles.css's declarations currently win the cascade). Canonical load
   order this file is built for: design-system.css, then base.css, then
   home.css/interior.css, then site-shell.css (site-shell.css last so no
   composition sheet can win protected shell properties by source order).
   See .agents/execplans/css-ownership-and-visual-parity.md and
   docs/evidence/css-ownership/PROVENANCE-MATRIX.md for the full audit
   this extraction is based on.

   Deliberately NOT included here (see the Milestone 2a report for the
   reasoning behind each):
   - Universal `margin: 0` element reset — only the homepage's inline
     block does this; styles.css does not, and about/work/services'
     current spacing does not assume it. Adding it here would be a real,
     unverified behavior change once this file is wired in later, not a
     "genuinely shared" foundation.
   - body `background-image` — home has none, styles.css's legacy gradient
     and design-system.css's own gradient differ; this is decorative,
     per-route composition, not a foundation rule to centralize.
   - Explicit heading `margin` — styles.css's own three near-duplicate
     :root/heading sections disagree with each other (24px/16px/12px vs.
     0), so no single "current" value exists to preserve; left to
     composition layers / design-system.css's own existing h1–h4 rule.
   - `.skip` (skip-to-content link) — already owned by site-shell.css,
     which owns the header per the canonical architecture; not duplicated
     here.
   - A universal `prefers-reduced-motion` disable — design-system.css
     already defines one (`@media (prefers-reduced-motion: reduce) { *,
     *::before, *::after { ... } }`) that will apply to every route once
     this file is wired in after design-system.css; duplicating it here
     would be redundant, not additive.
   - img/video/svg baseline rules — no bare, unscoped media-element
     defaults exist in styles.css or the homepage's inline block today
     (only class-scoped `object-fit` rules, which are composition); there
     is nothing to copy without inventing new rules from scratch, which is
     out of this sub-task's "copy, don't invent" scope.
   ========================================================================= */

/* ---- Reset / box-sizing (source: styles.css:134-135) ---- */
* { box-sizing: border-box; }
html, body { height: 100%; }

/* ---- Canvas & default body typography
   (source: styles.css:136-142 converged with index.html inline :74-87 —
   background-color/font-weight/font-synthesis/font-variant-numeric/
   color/line-height all agree across design-system.css, the homepage's
   inline block, and styles.css's own later "Site refresh 2026-03" /
   "V2 internal-page shell" :root blocks; only the file's FIRST, oldest
   :root block disagrees, which is why it's treated as superseded legacy
   here rather than authoritative.) ---- */
body {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: var(--weight-regular);
  font-synthesis: none;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: var(--leading-normal);
  background-color: var(--paper);
}

/* ---- Base headings (source: index.html inline :88, converged with
   styles.css's later "Site refresh 2026-03" block :1438-1446, which
   overrides the file's earlier, divergent h1 font-weight:700) ---- */
h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  color: var(--depth);
}

/* ---- Default paragraph rhythm (source: styles.css:679, identical to
   design-system.css's own existing p rule) ---- */
p { margin: 0 0 16px 0; }

/* ---- Default link styling (source: styles.css:161-162) ---- */
a { color: var(--ink); text-decoration: none; text-underline-offset: 2px; }
a:hover { text-decoration: underline; }

/* ---- Semantic default: abbreviations (source: styles.css:168-172) ---- */
abbr[title] {
  text-decoration: underline dotted;
  text-underline-offset: 2px;
  cursor: help;
}

/* ---- Code / pre baseline (source: styles.css:951-954) ---- */
code, pre { font-family: var(--font-mono); font-synthesis: none; }

/* ---- Focus-visible treatment (source: styles.css:946-949 /
   index.html inline :91 — identical value in both) ---- */
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }

/* ---- Selection (source: styles.css:2583 / index.html inline :92 —
   identical value in both) ---- */
::selection { background: var(--color-accent-tint); }

/* ---- Accessibility: screen-reader-only utility
   (source: index.html inline :195, the homepage's ".sr" class) ---- */
.sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
