/* ─────────────────────────────────────
   tokens.css — shared dark editorial system
   Source: Dembrandt extracts + contrast pass (design/)
───────────────────────────────────── */

:root {
  /* Surfaces */
  --jl-bg: #0d0c0b;
  --jl-bg-warm: #131210;
  --jl-bg-elevated: #1a1815;

  /* Text */
  --jl-text: #ddd8d0;
  --jl-text-soft: #8c8580;
  /* Was #3d3a36 / #514d49 — failed AA on --jl-bg; ≥4.5:1 for micro labels */
  --jl-text-dim: #8a837c;
  --jl-text-label: #8c8580;

  /* Lines */
  --jl-rule: #353230;
  --jl-rule-subtle: #2a2724;

  /* Brand */
  --jl-accent: #e07a38;
  --jl-accent-soft: rgba(224, 122, 56, 0.18);
  --jl-link: #9ec4d6;
  --jl-focus: #e07a38;
  --jl-on-accent: #ffffff;

  /* Type */
  --jl-serif: 'Lora', Georgia, serif;
  --jl-mono: 'DM Mono', 'Courier New', monospace;
  --jl-sans: 'DM Sans', system-ui, sans-serif;

  /* Type scale (homepage + article chrome) */
  --jl-text-display: clamp(2.4rem, 3.8vw, 4rem);
  --jl-text-title: clamp(1.05rem, 1.7vw, 1.5rem);
  --jl-text-body: 0.95rem;
  --jl-text-meta: 0.76rem;
  --jl-text-label-size: 0.6rem;
  --jl-text-micro: 0.54rem;

  /* Spacing ladder */
  --jl-space-1: 0.5rem;
  --jl-space-2: 0.75rem;
  --jl-space-3: 1rem;
  --jl-space-4: 1.5rem;
  --jl-space-5: 2rem;
  --jl-space-6: 3rem;
  --jl-space-7: 4rem;
  --jl-gutter: clamp(1.5rem, 3.5vw, 3rem);

  /* Motion */
  --jl-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --jl-duration: 0.22s;

  /* Per-project hover accents (homepage list) */
  --jl-project-1: var(--jl-accent);
  --jl-project-2: #a78bfa;
  --jl-project-3: #f0407a;
  --jl-project-4: #4ade80;
  --jl-project-5: #facc15;
  --jl-project-6: #22d3ee;
}
