:root {
  /* ── brand ─────────────────────────────────────────── */
  --ink: #14120f;
  --paper: #f4f2ee;
  --accent: #d8431b;
  --info: #1f5fd8;
  --success: #3f8f6c;

  /* ── ink scale (opaque tints of --ink on paper) ─────── */
  --ink-90: #2b2822;
  --ink-70: #4a453f;
  --ink-55: #6f6a63;
  --ink-45: #8d877f;
  --ink-35: #9a948c;
  --ink-30: #a8a29a;
  --ink-25: #b3ada4;
  --ink-20: #c4bdb4;

  /* ── surfaces ──────────────────────────────────────── */
  --surface: #ffffff;
  --surface-soft: #fbfaf8;
  --surface-sunken: #f7f5f1;
  --surface-tint: #f2efe9;

  /* ── hairlines ─────────────────────────────────────── */
  --line: rgba(20, 18, 15, 0.09);
  --line-soft: rgba(20, 18, 15, 0.07);
  --line-strong: rgba(20, 18, 15, 0.14);
  --line-bold: rgba(20, 18, 15, 0.18);

  /* ── on dark (ink) surfaces ────────────────────────── */
  --onink: #f4f2ee;
  --onink-80: rgba(244, 242, 238, 0.8);
  --onink-65: rgba(244, 242, 238, 0.65);
  --onink-55: rgba(244, 242, 238, 0.55);
  --onink-50: rgba(244, 242, 238, 0.5);
  --onink-45: rgba(244, 242, 238, 0.45);
  --onink-line: rgba(244, 242, 238, 0.16);
  --onink-line-strong: rgba(244, 242, 238, 0.28);

  /* ── semantic aliases ──────────────────────────────── */
  --text-strong: var(--ink);
  --text-body: var(--ink-90);
  --text-secondary: var(--ink-70);
  --text-muted: var(--ink-55);
  --text-faint: var(--ink-45);
  --text-placeholder: var(--ink-35);
  --text-eyebrow: var(--ink-45);
  --text-on-accent: #ffffff;
  --text-on-ink: var(--paper);

  --bg-page: var(--paper);
  --bg-inverse: var(--ink);
  --surface-card: var(--surface);
  --surface-field: var(--surface-soft);

  --border-hairline: var(--line);
  --border-control: var(--line-strong);
  --border-control-hover: var(--ink-25);
  --border-emphasis: var(--line-bold);

  /* status */
  --status-urgent: var(--accent);
  --status-neutral: var(--ink-90);
  --status-void: var(--ink-45);

  /* third-party sign-in marks (from src/lib/mock/auth.ts) */
  --brand-kakao: #fee500;
}
