/* Hallmark · tokens · genre: editorial · theme: custom, Grid-derived
 * Dark breathing ground · block-lockup wordmark · drifting square field.
 * Axes — paper band: dark (19%) · display style: condensed-heavy caps · accent hue: cool (264)
 * Portable: copy this file into the next project and the system comes with it.
 */

:root {
  /* ── Type ─────────────────────────────────────────────────────────────
     Two families. Anton carries the block lockup only; Archivo carries
     everything that has to be read as text. */
  --font-display: "Anton", "Archivo Narrow", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "Archivo", ui-sans-serif, system-ui, sans-serif;
  --tracking-label: 0.09em;
  --tracking-mark: 0.005em;

  --text-xs:   0.75rem;    /* 12px — label voice */
  --text-sm:   0.875rem;   /* 14px */
  --text-base: 1rem;       /* 16px */
  --text-md:   1.125rem;   /* 18px — lede */
  --text-lg:   1.375rem;   /* 22px — index values */
  --text-mark: clamp(2.5rem, 11vw, 5.5rem);

  --lh-body: 1.55;

  /* ── The lockup ───────────────────────────────────────────────────────
     Measured from Anton's own metrics at runtime, not guessed:
       cap ascent 0.852em · cap descent 0.011em · font ascent 1.182 / descent 0.330
     With line-height 1 the baseline sits 0.926em below the line box top, so the
     cap top is 0.074em below it. Lifting the word by that amount and giving the
     row the cap height exactly registers the solid blocks to the capitals.
     Line-height itself stays at 1 — gate 55 forbids going under it on all-caps. */
  --mark-cap:  0.864em;
  --mark-lift: -0.074em;
  --mark-gap: 0.055em;
  --mark-width: min(100%, 34rem);

  /* ── Colour — dark ground, one signal ink ────────────────────────────
     Per the dark recipe: surfaces get lighter as they raise, the accent
     gains lightness and sheds chroma, nothing is pure black or white. */
  --color-paper:      oklch(19%  0.014 258);  /* the ground */
  --color-paper-2:    oklch(23%  0.014 258);  /* raised — row hover */
  --color-paper-3:    oklch(27%  0.014 258);  /* raised further — pressed */
  --color-breath:     oklch(40%  0.035 262);  /* the lighter tone the ground breathes with */
  --color-ink:        oklch(94%  0.006 258);
  --color-muted:      oklch(70%  0.011 258);
  --color-rule:       oklch(36%  0.013 258);
  --color-accent:     oklch(66%  0.160 264);  /* ultramarine, lifted for the dark ground */
  --color-accent-ink: oklch(19%  0.014 258);  /* type sitting on the accent */
  --color-focus:      oklch(72%  0.150 264);

  /* ── Space (4 pt scale) ──────────────────────────────────────────────── */
  --space-3xs: 0.125rem;
  --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;

  /* Vertical rhythm — fluid, so a one-screen page stays one screen from a
     640 px short viewport up to a 1200 px display. Air scales with the sheet. */
  --rhythm-nav:      clamp(1rem,    2.5vh, 2.5rem);
  --rhythm-page-top: clamp(1.5rem,  6.5vh, 6rem);
  --rhythm-gap:      clamp(1rem,    2.8vh, 2.5rem);
  --rhythm-row:      clamp(0.75rem, 2vh,   1.5rem);

  /* ── Structure ───────────────────────────────────────────────────────── */
  --shell: 80rem;                       /* 1280px */
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --cols: 6;                            /* layout columns — 12 from 60rem up */
  --rule-hair: 1px;
  --rule-ink: 2px;
  --radius-card: 0;                     /* no radius, anywhere */

  /* ── 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: 190ms;
  --dur-long:  420ms;
  --dur-breath: 9s;                     /* one full inhale + exhale */

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

@media (min-width: 60rem) {
  :root { --cols: 12; }
}
