/* Hallmark · tokens · career-landing
 * theme: custom (tuned) · vibe: "certification dashboard, cool paper, one signal"
 * axes: light / geometric-sans / cool
 */

:root {
  /* ---- Colour ------------------------------------------------------------
   * Five values are locked by the brief. Three are derived: the brief's sage
   * (#8E938C) measures 2.69:1 on the ground, which fails WCAG AA for text and
   * the 3:1 UI-boundary floor. It keeps the hairlines; --color-muted and
   * --color-border carry text and control edges at the same 137° hue.
   * Measured on --color-paper: ink 12.63 · accent 5.46 · shipped 5.25
   *                            muted 5.11 · border 3.97 · hairline 2.69
   * -------------------------------------------------------------------- */
  --color-paper:     oklch(94.7% 0.007 116);   /* #EDEEE9  ground            */
  --color-paper-2:   oklch(91%   0.008 116);   /* #E1E2DC  panels, fields    */
  --color-ink:       oklch(27.6% 0.026 235);   /* #1B2A33  body + display    */
  --color-shipped:   oklch(48.5% 0.083 183);   /* #0F6E63  matrix state ONLY */
  --color-accent:    oklch(50.1% 0.209 270);   /* #3B4FD8  interactive ONLY  */
  --color-focus:     oklch(50.1% 0.209 270);   /* = accent                   */
  --color-muted:     oklch(50%   0.014 137);   /* #60655D  secondary text    */
  --color-border:    oklch(56%   0.014 137);   /* #71766E  control edges     */
  --color-hairline:  oklch(65.7% 0.012 137);   /* #8E938C  rules, never text */
  --color-accent-ink: oklch(94.7% 0.007 116);  /* text on an accent fill     */

  /* ---- Type --------------------------------------------------------------
   * Two families. No mono — the matrix carries the technical register
   * structurally, and tabular-nums covers figure alignment.
   * -------------------------------------------------------------------- */
  --font-display: "Archivo", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "Public Sans", ui-sans-serif, system-ui, sans-serif;
  --font-display-width: 125%;   /* Archivo's wdth axis — Expanded */

  /* Scale: 1.25 from a 17px body.
   * --text-sm breaks the ratio (13.6px → 14px) to hold the accessibility floor. */
  --text-sm:      0.875rem;    /* 14.0px */
  --text-base:    1.0625rem;   /* 17.0px */
  --text-md:      1.328rem;    /* 21.3px */
  --text-2xl:     2.594rem;    /* 41.5px */
  --text-display: clamp(2rem, 6vw + 0.4rem, 4.5rem);

  --leading-display: 1.06;
  --leading-body:    1.6;
  --measure:         68ch;

  /* ---- Space · 4pt -------------------------------------------------- */
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;
  --page-gutter: clamp(1.25rem, 5vw, 5rem);
  --page-max:    78rem;

  /* ---- Rules + radius ----------------------------------------------- */
  --rule-hairline: 1px;
  --rule-heavy:    2px;
  --radius-control: 2px;

  /* ---- Motion -------------------------------------------------------- */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms;
  --dur-short: 220ms;
  --dur-long:  420ms;

  /* ---- Depth --------------------------------------------------------- */
  --z-base: 1;
  --z-raised: 10;
  --z-sticky: 200;
}
