/* Moneko Design Tokens — the single source of truth for every surface. */
:root {
  color-scheme: light;

  /* Primitive palette */
  --color-cream-paper: #fffaf2;
  --color-mist-paper: #f4f8f7;
  --color-warm-surface: #fffefd;
  --color-graphite-ink: #3d4b52;
  --color-quiet-ink: #56656a;
  --color-paper-edge: #d8e3e5;
  --color-sky-after-rain: #365768;
  --color-summer-sky: #6598b2;
  --color-sky-wash: #e9f5f7;
  --color-autumn-peach: #ff9d8e;
  --color-peach-wash: #ffe8e2;
  --color-spring-garden: #82cfbe;
  --color-garden-wash: #dff6ef;
  --color-summer-sun: #ffd875;
  --color-sun-ink: #5f4d1f;
  --color-success: #287861;
  --color-warning: #8a6419;
  --color-danger: #a94f48;

  /* Stable legacy aliases while Phase-specific CSS migrates. */
  --cream: var(--color-cream-paper);
  --paper: var(--color-mist-paper);
  --surface: var(--color-warm-surface);
  --ink: var(--color-graphite-ink);
  --muted: var(--color-quiet-ink);
  --line: var(--color-paper-edge);
  --grape: var(--color-sky-after-rain);
  --grape-deep: var(--color-sky-after-rain);
  --lavender: #cbe7ef;
  --lavender-soft: var(--color-sky-wash);
  --peach: var(--color-autumn-peach);
  --peach-soft: var(--color-peach-wash);
  --mint: var(--color-success);
  --mint-soft: var(--color-garden-wash);
  --butter: var(--color-summer-sun);
  --blue: #86b9e9;

  /* Semantic roles */
  --text-primary: var(--ink);
  --text-secondary: var(--color-quiet-ink);
  --text-tertiary: var(--color-quiet-ink);
  --text-on-accent: #fffdf8;
  --action-primary: var(--grape-deep);
  --action-primary-hover: color-mix(in srgb, var(--grape-deep) 88%, black);
  --action-primary-shadow: color-mix(in srgb, var(--grape-deep) 78%, black);
  --action-secondary-text: var(--grape-deep);
  --selection-border: var(--grape-deep);
  --selection-wash: var(--theme-soft);
  --surface-raised: color-mix(in srgb, var(--surface) 96%, var(--theme-soft));
  --surface-soft: color-mix(in srgb, var(--theme-soft) 62%, var(--surface));
  --status-success: var(--color-success);
  --status-warning: var(--color-warning);
  --status-danger: var(--color-danger);
  --focus-ring: var(--action-primary);

  /* Space, shape, depth */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --radius-tag: 12px;
  --radius-control: 16px;
  --radius-button: 20px;
  --radius-card: 26px;
  --radius-hero: 40px;
  --radius-pill: 999px;
  --control-hit-size: 44px;
  --control-hit-mobile: 54px;
  --icon-size-control: 18px;
  --type-micro: 12px;
  --type-label: 12px;
  --type-body: 15px;
  --line-compact: 1.45;
  --shadow-paper: 0 7px 14px rgba(63, 96, 108, .08), 0 18px 45px rgba(47, 72, 80, .08);
  --shadow: var(--shadow-paper);
  --radius: var(--radius-card);

  /* Motion */
  --duration-instant: 50ms;
  --duration-fast: 120ms;
  --duration-normal: 200ms;
  --duration-moderate: 300ms;
  --duration-slow: 420ms;
  --duration-deliberate: 600ms;
  --ease-standard: cubic-bezier(.2, 0, 0, 1);
  --ease-decelerate: cubic-bezier(0, 0, .2, 1);
  --ease-accelerate: cubic-bezier(.3, 0, 1, .3);
  --ease-paper: cubic-bezier(.16, 1, .3, 1);
  --ease-linear: linear;
  --ease-spring: var(--ease-paper);
}

html[data-moneko-theme="mint"] { --paper:#f2f7f3; --cream:#fffaf0; --surface:#fffef9; --line:#d6e4db; --grape:#426b56; --grape-deep:#426b56; --lavender:#cfe5d5; --lavender-soft:#eaf4ec; --theme-sidebar:#fffaf0; --theme-panel:#fffef9; --theme-soft:#eaf4ec; --theme-mid:#cfe5d5; --theme-hero:#dceedd; --theme-shadow:#bfd6c3; --theme-dot:#b7cdbd; --theme-accent:#426b56; }
html[data-moneko-theme="sky"] { --paper:#f1f8fa; --cream:#fffaf2; --surface:#fffefe; --line:#d3e4e9; --grape:#416779; --grape-deep:#416779; --lavender:#cce4ed; --lavender-soft:#eaf5f8; --theme-sidebar:#f8fcfb; --theme-panel:#fffefe; --theme-soft:#eaf5f8; --theme-mid:#cce4ed; --theme-hero:#d9edf4; --theme-shadow:#bad8e2; --theme-dot:#bdd5dc; --theme-accent:#416779; }
html[data-moneko-theme="peach"] { --paper:#fff6ef; --cream:#fff9ef; --surface:#fffdf9; --line:#ecdcd2; --grape:#89513e; --grape-deep:#89513e; --lavender:#f0d3c5; --lavender-soft:#faebe3; --theme-sidebar:#fff9ef; --theme-panel:#fffdf9; --theme-soft:#faebe3; --theme-mid:#f0d3c5; --theme-hero:#f7d9c7; --theme-shadow:#e8bfa9; --theme-dot:#dec5b8; --theme-accent:#89513e; }
html[data-moneko-theme="butter"] { --paper:#fffaf0; --cream:#fff9e9; --surface:#fffef9; --line:#eadfbe; --grape:#715514; --grape-deep:#715514; --lavender:#eddda5; --lavender-soft:#faf2d6; --theme-sidebar:#fff9e9; --theme-panel:#fffef9; --theme-soft:#faf2d6; --theme-mid:#eddda5; --theme-hero:#f7e7a8; --theme-shadow:#dfca78; --theme-dot:#d8c99c; --theme-accent:#715514; }
html[data-moneko-theme="oat"] { --paper:#f7f2e9; --cream:#fbf5e9; --surface:#fffdf8; --line:#ded5c8; --grape:#615545; --grape-deep:#615545; --lavender:#ded3c3; --lavender-soft:#f0e9de; --theme-sidebar:#fbf5e9; --theme-panel:#fffdf8; --theme-soft:#f0e9de; --theme-mid:#ded3c3; --theme-hero:#e9dfcf; --theme-shadow:#d1c3ae; --theme-dot:#cec5b8; --theme-accent:#615545; }
html[data-moneko-theme="rose"] { --paper:#fff6f5; --cream:#fff9f2; --surface:#fffdfb; --line:#ead8d9; --grape:#7a4d54; --grape-deep:#7a4d54; --lavender:#ead0d2; --lavender-soft:#f8e9e9; --theme-sidebar:#fff9f2; --theme-panel:#fffdfb; --theme-soft:#f8e9e9; --theme-mid:#efd7d7; --theme-hero:#efd7d7; --theme-shadow:#dcbcbc; --theme-dot:#d8c1c2; --theme-accent:#7a4d54; }
