/* ExecRecon token system.
   Colour, type family, layout maxima and line heights are INHERITED verbatim
   from the approved kit at output/brand-kits/execrecon/tokens.css. They are an
   authority, not a starting point, and nothing below re-values them.

   Everything else here is derived by sitemark-system/scripts/tokens.py
   (--brand <kit tokens.css> --ratio perfect-fourth --font 17): the type scale,
   spacing, radius, elevation, motion and the semantic z-index scale.

   The generator's derived colour ramp (--brand-50..950, --on-brand-*) was
   REMOVED before shipping. The kit closes colour: it names six palette values
   and thirteen roles. Every ramp step the generator produced sat within 24/255
   of an approved value -- #282828 beside Charcoal #171717, #ffffff beside
   Paper #F4F3EF, #050505 beside Obsidian #080808 -- which is a near-miss, not
   a new colour. The hairline and tint tokens at the foot of this file are
   transparencies of approved colours over approved grounds, not new values. */

@font-face { font-family: 'Archivo'; src: url('./identity/fonts/Archivo-variable.woff2') format('woff2'); font-style: normal; font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('./identity/fonts/JetBrainsMono-variable.woff2') format('woff2'); font-style: normal; font-weight: 100 800; font-display: swap; }

:root {
  /* ---- inherited from the approved kit, unchanged ---- */
  --color-obsidian: #080808;
  --color-charcoal: #171717;
  --color-paper: #F4F3EF;
  --color-heritage-gold: #D2AA52;
  --color-luminous-gold: #F0C766;
  --color-champagne: #F4E2B3;
  --background: #080808;
  --surface: #171717;
  --text: #F4F3EF;
  --text-muted: #CAC7BF;
  --text-accent: #D2AA52;
  --mark-accent: #D2AA52;
  --button-background: #D2AA52;
  --button-hover: #F0C766;
  --button-text: #080808;
  --focus: #F4E2B3;
  --border: #5E5745;
  --light-surface: #F4F3EF;
  --text-on-light: #080808;
  --content-max: 1200px;
  --reading-max: 68ch;
  --gutter: clamp(20px, 5vw, 80px);
  --section-space: clamp(64px, 8vw, 112px);
  --radius: 4px;
  --font-display: 'Archivo', sans-serif;
  --font-body: 'Archivo', sans-serif;
  --font-label: 'JetBrains Mono', monospace;
  --line-body: 1.65;
  --line-heading: 1.06;

  /* ---- derived: type scale, perfect fourth (1.333) from 17px ---- */
  --text-xs: 0.598rem;
  --text-sm: 0.797rem;
  --text-base: 1.062rem;
  --text-lg: 1.416rem;
  --text-xl: 1.888rem;
  --text-2xl: 2.517rem;
  --text-3xl: 3.355rem;
  --text-4xl: 4.472rem;
  --text-5xl: 5.961rem;

  /* ---- derived: spacing ---- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;

  /* ---- derived: radius ---- */
  --radius-none: 0;
  --radius-sm: 2px;
  --radius-md: 6px;
  --radius-lg: 12px;
  --radius-full: 9999px;

  /* ---- derived: elevation ---- */
  --elev-0: none;
  --elev-1: 0 1px 2px rgb(0 0 0 / .06);
  --elev-2: 0 2px 6px rgb(0 0 0 / .08);
  --elev-3: 0 8px 24px rgb(0 0 0 / .10);

  /* ---- derived: motion ---- */
  --motion-instant: 80ms;
  --motion-fast: 150ms;
  --motion-base: 220ms;
  --motion-slow: 320ms;
  --motion-ease-out: cubic-bezier(.22,.61,.36,1);
  --motion-ease-in: cubic-bezier(.55,.06,.68,.19);
  --motion-ease-standard: cubic-bezier(.4,0,.2,1);

  /* ---- derived: semantic z-index ---- */
  --z-base: 0;
  --z-dropdown: 10;
  --z-sticky: 20;
  --z-modal-backdrop: 30;
  --z-modal: 40;
  --z-toast: 50;
  --z-tooltip: 60;

  /* ---- derived: transparencies of approved colours, not new colours ----
     Each is one approved value carried at a stated strength over an approved
     ground. No hex below is anything but a kit value.

     The two --*-strong values carry component boundaries, not decoration: the
     quiet action's border on Obsidian, and the border of every form control on
     Paper. Both controls have a transparent background, so the border is the
     only thing that says a control is there, and WCAG 1.4.11 asks for 3:1
     against the adjacent ground. They shipped at 34% and 40%, which measure
     2.81:1 (#585857 on #080808) and 2.70:1 (#969593 on #F4F3EF) -- both below
     the floor. They are now 38% and 46%: 3.24:1 (#626160) and 3.24:1 (#878785).
     Nothing else changed; these are still transparencies of the same two
     approved values over the same two approved grounds.

     The plain --rule-* pair stays at 17% and 16%. Those draw section and list
     separators, which carry no information and identify no control, so 1.4.11
     does not apply to them and raising them would flatten the page. */
  --rule-on-dark: color-mix(in srgb, #F4F3EF 17%, transparent);
  --rule-on-dark-strong: color-mix(in srgb, #F4F3EF 38%, transparent);
  --inset-on-dark: color-mix(in srgb, #F4F3EF 4%, transparent);
  --rule-on-paper: color-mix(in srgb, #080808 16%, transparent);
  --rule-on-paper-strong: color-mix(in srgb, #080808 46%, transparent);
  --text-muted-on-paper: color-mix(in srgb, #080808 74%, #F4F3EF);
}
