:root {

  /* "Quiet Editorial Ma" — washi paper off-white + sumi ink + a single
     muted indigo (藍, ai) accent. Indigo chosen specifically to avoid
     dwelloryx's terracotta and cvuplifted's plum — not used elsewhere
     in this batch. */

  --brand: #211F1B;
  --brand-strong: #17140F;
  --brand-soft: #4B473F;
  --brand-tint: rgba(33, 31, 27, 0.05);
  --brand-rgb: 33, 31, 27;

  --accent: #26415E;
  --accent-soft: #3C5D82;
  --accent-tint: rgba(38, 65, 94, 0.08);
  --accent-rgb: 38, 65, 94;
  --accent-ink: #1B2E42;

  --ink: #211F1B;
  --ink-soft: #4B473F;
  --muted: #8D8579;
  --line: #E1DACB;
  --line-soft: #EBE6DA;
  --surface: #FFFFFF;
  --surface-2: #F0ECE1;
  --surface-3: #E8E2D3;

  --bg: #F7F4EC;
  --bg-rgb: 247, 244, 236;

  --night: #17140F;
  --night-2: #211D16;
  --night-rgb: 23, 20, 15;

  --white: #FFFFFF;
  --white-rgb: 255, 255, 255;

  --ok: #3E6B52;
  --warn: #8D5A2B;

  /* System Japanese font stacks — no self-hosted JP webfont on purpose:
     Noto Sans/Serif JP full charset runs tens of MB per weight, and every
     real JP user device already ships a native serif/gothic pair
     (Hiragino on macOS/iOS, Yu Gothic/Mincho on Windows, Noto Sans JP on
     Android/ChromeOS) — self-hosting would only serve a redundant,
     heavier duplicate. This is the more authentic, and stricter-offline,
     choice: zero font network requests at all, not even to a local
     woff2 that still costs load time. */
  --font-head: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;
  --font-head-display: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;
  --font-body: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", "Hiragino Sans", sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", monospace;

  --radius-sm: 0.15rem;
  --radius: 0.2rem;
  --radius-lg: 0.3rem;
  --radius-xl: 0.4rem;
  --shadow-sm: 0 4px 14px rgba(23, 20, 15, 0.05);
  --shadow: 0 18px 40px rgba(23, 20, 15, 0.06);
  --shadow-lg: 0 30px 70px rgba(23, 20, 15, 0.10);

  --container: 1120px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --topbar-h: calc(4.6rem + var(--safe-top));

  --space-3xs: 0.25rem;
  --space-2xs: 0.375rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 2.5rem;
  --space-3xl: 3.5rem;

  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
}
