/* tokens.css
 * Derived verbatim from docs/design-system.md. Do not invent values here.
 * Every token below maps to a line in that document; if you need a value that
 * is not present, add it to the document first, then add it here.
 */

:root {
  /* --- Section 4: warm monochrome canvas ------------------------------- */
  --canvas: #F7F6F3;
  --canvas-pure: #FFFFFF;
  --surface: #FFFFFF;
  --surface-alt: #F9F9F8;

  --border: #EAEAEA;
  --border-soft: rgba(0, 0, 0, 0.06);

  /* Section 3: body text is never absolute black. */
  --ink: #111111;
  --ink-body: #2F3437;
  --ink-muted: #787774;

  /* Section 4: muted pastel spot colours, background / foreground pairs. */
  --pastel-red-bg: #FDEBEC;
  --pastel-red-fg: #9F2F2D;
  --pastel-blue-bg: #E1F3FE;
  --pastel-blue-fg: #1F6C9F;
  --pastel-green-bg: #EDF3EC;
  --pastel-green-fg: #346538;
  --pastel-yellow-bg: #FBF3DB;
  --pastel-yellow-fg: #956400;

  /* --- Section 3: typography ------------------------------------------- */
  /* Self-hosted substitutes for the document's first choices. SF Pro,
   * Lyon Text and Switzer have no free licence, so the freely available
   * member of each stack is loaded and the documented fallback chain sits
   * behind it. Inter / Roboto / Open Sans remain banned. */
  --font-sans: 'Geist', 'SF Pro Display', 'Helvetica Neue', system-ui, sans-serif;
  --font-serif: 'Newsreader', 'Lyon Text', 'Playfair Display', 'Instrument Serif', serif;
  --font-mono: 'JetBrains Mono', 'Geist Mono', 'SF Mono', ui-monospace, monospace;

  /* Section 8: macro whitespace, then a constrained measure. */
  --section-y: clamp(6rem, 4rem + 8vw, 8rem);
  --measure-text: 44rem;
  --measure-wide: 64rem;

  /* --- Section 5: radii are crisp and small ---------------------------- */
  --radius-sm: 4px;
  --radius-control: 6px;
  --radius-card: 12px;
  --radius-pill: 9999px;

  --pad-card: clamp(1.5rem, 1rem + 2vw, 2.5rem);
  --pad-control: 0.7rem 1.15rem;

  /* --- Section 7: motion is invisible ---------------------------------- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-reveal: 600ms;
  --dur-hover: 200ms;
  --stagger-step: 80ms;
  --stagger-step-fast: 40ms;

  /* Section 2: shadows are practically non-existent, below 0.05 alpha. */
  --shadow-rest: 0 0 0 rgba(0, 0, 0, 0);
  --shadow-hover: 0 2px 8px rgba(0, 0, 0, 0.04);

  /* Section 7: ambient layer is capped very low. */
  --ambient-opacity: 0.03;
}
