/* ─────────────────────────────────────────────────────────────
   acoco · tokens
   Palette carried over from the original. Scales are new.
   ───────────────────────────────────────────────────────────── */

@font-face {
  font-family: "DM Sans";
  src: url(../assets/fonts/dm-sans-var.woff2) format("woff2-variations");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Denim INK WD";
  src: url(../assets/fonts/denim-ink-500.woff2) format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* Open-source fallback. Only downloaded if Denim INK fails to load,
   so it costs nothing in the normal case. */
@font-face {
  font-family: "Geist";
  src: url(../assets/fonts/geist-var.woff2) format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Mono";
  src: url(../assets/fonts/dm-mono-400.woff2) format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Mono";
  src: url(../assets/fonts/dm-mono-500.woff2) format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

:root {
  /* ── colour ── */
  --ground: #0f0e0d;
  --ink: #f3efe9;
  --ink-2: #c9c1b7;
  --ink-3: #8f857b;   /* from the original palette; unused — every
                         former --ink-3 slot now sits on --ink-2 */
  --card: rgba(255, 255, 255, .04);
  --card-2: rgba(255, 255, 255, .07);
  --line: rgba(243, 239, 233, .12);
  --line-2: rgba(243, 239, 233, .07);
  --accent: #c4501a;
  --accent-hover: #d65a20;
  --accent-text: #e3703c;
  --accent-line: rgba(196, 80, 26, .4);
  --good: #4fa473;

  /* ── type ──
     Geist carries display. DM Sans carries prose.
     DM Mono is reserved for machine-produced values: statuses,
     timestamps, counts, runway, URLs. Never for decoration. */
  --display: "Denim INK WD", "Geist", system-ui, sans-serif;
  --body: "DM Sans", system-ui, sans-serif;
  --mono: "DM Mono", ui-monospace, SFMono-Regular, monospace;

  /* Modular scale, ~1.28 at the top, tightening toward the body. */
  --t-display: clamp(46px, 6.4vw, 82px);   /* h1                      */
  --t-h2: clamp(30px, 3.6vw, 44px);        /* section heads           */
  --t-h3: clamp(24px, 2.4vw, 30px);        /* claim / lead-in         */
  --t-lead: 18px;                          /* ledes                   */
  --t-hero-sub: clamp(17px, 1.5vw, 21px);  /* hero sub only           */
  --t-body-lg: 17px;                       /* day rows, card names    */
  --t-body: 15px;                          /* default prose           */
  --t-small: 13px;                         /* fine print, footer      */
  --t-mono: 12px;                          /* machine values          */
  --t-mono-sm: 11px;

  --lh-tight: 1.04;
  --lh-snug: 1.28;
  --lh-body: 1.55;
  --tr-display: -.03em;
  --tr-mono: .12em;

  /* ── space ──
     One scale. Every gap on the page is a step on it. */
  --s-1: 8px;
  --s-2: 16px;
  --s-3: 32px;
  --s-4: 56px;
  --s-5: 88px;
  --s-6: 128px;
  --s-7: 180px;

  /* Section rhythm, matching the original: 104px top and bottom. */
  --section-y: clamp(64px, 7.2vw, 104px);

  /* ── layout ── */
  --max: 1080px;
  --gutter: clamp(20px, 4.2vw, 60px);
  --measure: 62ch;
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-pill: 999px;

  /* ── motion ── */
  --ease: cubic-bezier(.22, 1, .36, 1);
  --fast: .18s;
  --slow: .5s;
}
