/* tokens.css — the entire design system, defined once.
   No other colors or fonts are permitted elsewhere. System stacks only:
   no web fonts, no CDN. Everything references these custom properties. */

:root {
  /* ---- Palette (locked) ---- */
  --bg: #F7F4EF;      /* warm ivory paper */
  --paper: #FBF9F5;   /* slightly raised surface for cards */
  --ink: #1B1A17;     /* near-black text */
  --accent: #0E5A66;  /* deep ink-teal */
  --muted: #6B6660;   /* captions, labels, secondary text */
  --rule: #E3DDD3;    /* hairline borders */

  /* ---- Type families ---- */
  --font-serif: Georgia, "Times New Roman", "Songti SC", "STSong", serif;
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "Menlo", "Consolas",
    "Liberation Mono", monospace;

  /* ---- Type scale (mobile-first, fluid via clamp on displays) ---- */
  --step-mono: 0.75rem;   /* 12px — labels, EP no., dates */
  --step-0: 1rem;         /* 16px — body */
  --step-1: 1.0625rem;    /* 17px — lead body */
  --step-2: 1.375rem;     /* 22px — EN titles */
  --step-3: 1.75rem;      /* 28px — ZH episode titles */
  --step-featured: 2rem;  /* 32px — featured-card ZH title (bumped on wide) */

  /* ---- Spacing scale ---- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;
  --space-9: 6.5rem;

  /* ---- Layout ---- */
  --measure: 720px;        /* reading column */
  --measure-wide: 1040px;  /* masthead / page frame */
  --gutter: 1.375rem;      /* page side padding at 375px */

  /* ---- Radius & elevation ---- */
  --radius: 6px;
  --shadow: 0 1px 2px rgba(27, 26, 23, 0.04),
    0 10px 30px -18px rgba(27, 26, 23, 0.22);

  /* ---- Hairline ---- */
  --hairline: 1px solid var(--rule);
}
