/*
  Factory Design System — structure.css
  THE SHARED STRUCTURAL FLOOR.

  This file is the non-negotiable layer every factory site inherits,
  no matter what brand.md it ships with. It contains ONLY brand-agnostic
  structural primitives:
    - the 8px spacing scale (--space-*)
    - the modular type-SIZE scale (--text-*) — sizes only, no families
    - breakpoint reference tokens
    - structural resets (box-sizing)

  It holds NO colors, NO font-family values, and NO radius/shadow
  "character" tokens — those are identity, not structure, and live in
  theme-default.css (the overridable layer) or a venture's own brand.md.

  NON-NEGOTIABLE. A venture's brand.md may ADD sizes on top of this
  scale (e.g. a --text-3xl for an oversized hero, or a --space-9 for an
  unusually generous section gap) but may never REDEFINE an existing
  --space-* or --text-* value, and may never break the underlying 8px
  rhythm. This file does not change per venture. See README.md for the
  full three-layer model (structure -> default theme -> brand identity).
*/

*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
  /* ---------------------------------------------------------------
     SPACING — 8px base rhythm (non-negotiable)
     Source artifacts drift slightly off-grid in places (9px, 13px
     row padding) because they were hand-tuned per-build; the factory
     system snaps to a clean 8px scale so every site inherits the
     same rhythm without per-site drift.
  --------------------------------------------------------------- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 32px;
  --space-6: 48px;
  --space-7: 64px;
  --space-8: 96px;

  /* ---------------------------------------------------------------
     TYPE SCALE — sizes only, no families
     Modular scale (~1.25 ratio), rounded to values seen in the
     source artifacts (11 / 13.5 / 15.5 / 19 / 25 / 40 / 56). Font
     families are a brand/identity decision and live in
     theme-default.css (default) or brand.md (per venture); this
     file only fixes the rhythm of sizes so components line up
     across ventures regardless of which typeface is loaded.
  --------------------------------------------------------------- */
  --text-2xs: 11px;   /* mono labels, eyebrows, chips, footers */
  --text-xs: 12.5px;  /* timestamps, captions */
  --text-sm: 13.5px;  /* secondary body */
  --text-base: 15.5px;/* primary body copy */
  --text-md: 19px;    /* lede / intro paragraph */
  --text-lg: 25px;    /* card headline */
  --text-xl: 40px;    /* page h1, mobile */
  --text-2xl: 56px;   /* page h1, desktop */

  /* ---------------------------------------------------------------
     BREAKPOINTS
     Reference values only — CSS custom properties cannot be used
     inside an @media condition, so components.css (and any venture
     layout built on top of this file) must still hardcode these two
     numbers inside @media rules. Keep any new @media rule in sync
     with these values rather than inventing a third breakpoint.
  --------------------------------------------------------------- */
  --breakpoint-sm: 480px; /* mobile-tight adjustments */
  --breakpoint-md: 700px; /* desktop-scale type kicks in */
}
