/* Kotodama product theme — Artova dark-violet.
   Canonical contract. Copies live next to each surface that cannot import this path. */
:root {
  color-scheme: dark;
  --ink: #fafafa;
  --ink-soft: rgba(250, 250, 250, 0.78);
  --muted: #cfcfcf;
  --deep: #000000;
  --deep-mid: #08060f;
  --paper: #05040a;
  --surface: #120c1c;
  --panel: rgba(8, 6, 16, 0.72);
  --accent: #7630f7;
  --accent-bright: #a22cfc;
  --accent-hover: #8b3dff;
  --accent-soft: rgba(118, 48, 247, 0.16);
  --accent-glow: rgba(118, 48, 247, 0.42);
  --teal: #c44bff;
  --teal-glow: rgba(196, 75, 255, 0.35);
  --line: rgba(250, 250, 250, 0.12);
  --font-display: "Plus Jakarta Sans", "Noto Sans SC", sans-serif;
  --font-body: "Noto Sans SC", "Plus Jakarta Sans", "PingFang SC", sans-serif;
  --font-mono: "JetBrains Mono", "SF Mono", "Cascadia Code", Menlo, Consolas,
    monospace;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 96px;
  --shadow-sm: 0 4px 16px rgba(118, 48, 247, 0.28);
  --shadow-md: 0 10px 36px rgba(162, 44, 252, 0.42);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 150ms;
  --dur-mid: 280ms;
  --dur-enter: 450ms;
  --danger: #f07167;
  --warn: #e0b86a;
  --ok: #86efac;
  --text: var(--ink);
  --bg: var(--paper);
  --sfb-chrome: #161022;
  --sfb-panel: #120c1c;
  --sfb-code-bg: #0c0814;
  --code-fg: #e8edf7;
  --code-gutter-fg: #8b8499;
  --code-gutter-bg: #161022;
  --code-chrome: #1a1428;
  --tok-com: #8b8499;
  --tok-kw: #c4b5fd;
  --tok-str: #f0abfc;
  --tok-num: #fbbf24;
  --tok-type: #a5b4fc;
  --tok-prop: #e9d5ff;
}

/* Washi paper + violet ink — same accent family, inverted surfaces */
html[data-theme="light"] {
  color-scheme: light;
  --ink: #1c1230;
  --ink-soft: rgba(28, 18, 48, 0.72);
  --muted: #6b5f7a;
  --deep: #f3eef8;
  --deep-mid: #ebe4f4;
  --paper: #f7f3fb;
  --surface: #ffffff;
  --panel: rgba(255, 255, 255, 0.86);
  --accent: #6b21e8;
  --accent-bright: #7c3aed;
  --accent-hover: #5b16d4;
  --accent-soft: rgba(107, 33, 232, 0.1);
  --accent-glow: rgba(107, 33, 232, 0.2);
  --teal: #9333ea;
  --teal-glow: rgba(147, 51, 234, 0.2);
  --line: rgba(28, 18, 48, 0.12);
  --shadow-sm: 0 4px 16px rgba(107, 33, 232, 0.1);
  --shadow-md: 0 12px 32px rgba(107, 33, 232, 0.14);
  --sfb-chrome: #efe8f6;
  --sfb-panel: #ffffff;
  --sfb-code-bg: #f4eef9;
  --code-fg: #2a1848;
  --code-gutter-fg: #8b7a9e;
  --code-gutter-bg: #efe8f6;
  --code-chrome: #e8dff2;
  --tok-com: #8b7a9e;
  --tok-kw: #6b21e8;
  --tok-str: #a21caf;
  --tok-num: #b45309;
  --tok-type: #4338ca;
  --tok-prop: #7c3aed;
}
