:root{
  /* --- base: warm paper --- */
  --cream-50:#FDFBF7;
  --cream-100:#F8F3EA;
  --cream-200:#F0E9DB;
  --cream-300:#E4DACA;
  --paper-white:#FFFFFF;

  /* --- base: ink (cool navy, never pure black) --- */
  --ink-900:#141D29;
  --ink-800:#1C2836;
  --ink-700:#2B3A4C;
  --ink-500:#55637A;
  --ink-400:#7A869A;
  --ink-300:#A3ADBC;
  --ink-200:#C9D0DA;

  /* --- base: gold = light / ルミナ --- */
  --gold-700:#8C6522;
  --gold-600:#A87A2E;
  --gold-500:#C4972F;
  --gold-400:#DCB55C;
  --gold-300:#E9CE8F;
  --gold-200:#F3E3BF;
  --gold-100:#FAF1DC;

  /* --- base: semantic hues (muted, editorial) --- */
  --sage-600:#3F7D5E;
  --sage-100:#E6EFE9;
  --clay-600:#B05F33;
  --clay-100:#F6E9E0;
  --rust-600:#A8443A;
  --rust-100:#F6E5E3;
  --slate-600:#3D6480;
  --slate-100:#E6EDF3;

  /* --- semantic aliases --- */
  --bg-page:var(--cream-50);
  --bg-page-alt:var(--cream-100);
  --bg-inverse:var(--ink-900);
  --surface-card:var(--paper-white);
  --surface-card-alt:var(--cream-100);
  --surface-sunken:var(--cream-200);
  --surface-gold:var(--gold-100);

  --text-heading:var(--ink-900);
  --text-body:var(--ink-700);
  --text-muted:var(--ink-500);
  --text-faint:var(--ink-400);
  --text-inverse:var(--cream-50);
  --text-accent:var(--gold-600);
  --text-link:var(--gold-700);
  --text-link-hover:var(--ink-900);

  --border-hairline:#E8E0D2;
  --border-default:var(--cream-300);
  --border-strong:var(--ink-200);
  --border-accent:var(--gold-400);
  --border-inverse:rgba(250,241,220,.18);

  --accent:var(--gold-500);
  --accent-strong:var(--gold-600);
  --accent-soft:var(--gold-100);
  --accent-rule:linear-gradient(90deg,var(--gold-500),var(--gold-300) 60%,transparent);

  --action-fill:var(--ink-900);
  --action-fill-hover:var(--ink-700);
  --action-fill-active:var(--ink-800);
  --action-fill-text:var(--cream-50);

  --status-success:var(--sage-600);
  --status-success-bg:var(--sage-100);
  --status-warning:var(--clay-600);
  --status-warning-bg:var(--clay-100);
  --status-danger:var(--rust-600);
  --status-danger-bg:var(--rust-100);
  --status-info:var(--slate-600);
  --status-info-bg:var(--slate-100);

  --focus-ring:0 0 0 3px rgba(196,151,47,.32);
}
