:root {
  /* Color — monochrome-first, one restrained accent (SPEC §4) */
  --tf-ink: #141414;
  --tf-paper: #ffffff;
  --tf-paper-soft: #f6f6f4;
  --tf-gray-700: #3a3a3a;
  --tf-gray-500: #5f5f5f;
  --tf-gray-300: #c9c9c7;
  --tf-gray-100: #ececea;
  --tf-accent: #7a1f1f;
  --tf-accent-ink: #ffffff;

  /* Type */
  --tf-font-display: "Old Standard TT", Georgia, "Times New Roman", serif;
  --tf-font-body: "Public Sans", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --tf-font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;

  --tf-size-root: 18px;
  --tf-h1: clamp(2.5rem, 1.6rem + 3.5vw, 4.5rem);
  --tf-h2: clamp(1.9rem, 1.5rem + 1.6vw, 2.75rem);
  --tf-h3: clamp(1.4rem, 1.2rem + 0.8vw, 1.85rem);
  --tf-lede: clamp(1.15rem, 1.05rem + 0.4vw, 1.4rem);

  /* Space (8px base rhythm) */
  --tf-space-1: 0.5rem;
  --tf-space-2: 1rem;
  --tf-space-3: 1.5rem;
  --tf-space-4: 2.5rem;
  --tf-space-5: 4rem;
  --tf-space-6: 6rem;

  /* Layout */
  --tf-content-width: 42rem;
  --tf-page-width: 76rem;
  --tf-rule: 1px solid var(--tf-gray-300);
  --tf-radius: 2px;
}

@media (max-width: 640px) {
  :root {
    --tf-size-root: 17px;
  }
}
