/* tokens.css — GNStudio.AI design tokens as CSS custom properties.
   Single source of truth for color, type families, radius, shadow, easing.
   Mirrors assets/js/tokens.js (T2) so CSS and JS stay in lockstep. */
:root{
  /* Base — warm bone + true ink */
  --bone:#F4EFE6;
  --paper:#FBF8F1;
  --vellum:#EBE4D4;
  --ink:#0B0F1A;
  --inkAlt:#161B2B;
  --fog:#5C6275;
  --line:rgba(11,15,26,0.10);
  --lineInk:rgba(244,239,230,0.14);

  /* Principle colors — semantic, never decorative */
  --navy:#1E3A8C;   /* P1 · Human-centered AI */
  --sage:#5C7A65;   /* P2 · Ethical responsibility (also italic-emphasis hue) */
  --ochre:#C28B3C;  /* P3 · Access & opportunity */
  --rust:#A03E2A;   /* P4 · Data sovereignty */

  --navyTint:#E5EAF4;
  --sageTint:#E5ECE4;
  --ochreTint:#F4E8D0;
  --rustTint:#F1DCD3;

  /* Accessible ochre for text on light (base ochre fails AA at ~2.6:1) */
  --ochreInk:#8A5E1D;

  /* Type families — fixed system. Serif = Display/Lede, Sans = UI/body, Mono = meta */
  --serif:"Source Serif 4","Newsreader",Georgia,serif;
  --sans:"Inter Tight","Geist","Söhne",system-ui,sans-serif;
  --mono:"JetBrains Mono","Geist Mono",ui-monospace,monospace;

  /* Radius / shadow / easing */
  --rSm:6px;
  --rMd:12px;
  --rLg:20px;
  --rPill:999px;
  --shadowCard:0 1px 0 rgba(11,15,26,0.04), 0 16px 40px -22px rgba(11,15,26,0.20);
  --shadowFloat:0 24px 64px -22px rgba(11,15,26,0.32);
  --ease:cubic-bezier(.2,.7,.2,1);
  --easeOut:cubic-bezier(.16,1,.3,1);
}
