:root {
  --font-stack-fallback:
    'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'Meiryo', sans-serif;

  /*
   * Default: Gen Interface JP — UI typeface blending Inter with Noto Sans JP.
   * https://gen.typesetting.jp/
   * Switch via themeConfig.font: inter | gen-interface-jp
   * Ellipsis (…) routing via themeConfig.ellipsisFont: cjk | latin
   */
  --font-family-sans: 'Gen Interface JP', var(--font-stack-fallback);
  --font-family-display: 'Gen Interface JP Display', var(--font-family-sans);

  /* Fullwidth opening punctuation pull (e.g. TOC labels starting with 「) */
  --cjk-open-pull: 0.375em;

  --slidev-theme-primary: oklch(37.9% 0.146 265.522);

  --color-blue-50: oklch(0.97 0.014 254.604);
  --color-blue-100: oklch(0.932 0.032 255.585);
  --color-blue-200: oklch(0.882 0.059 254.128);
  --color-blue-300: oklch(0.809 0.105 251.813);
  --color-blue-400: oklch(0.707 0.165 254.624);
  --color-blue-500: oklch(0.623 0.214 259.815);
  --color-blue-600: oklch(0.546 0.245 262.881);
  --color-blue-700: oklch(0.488 0.243 264.376);
  --color-blue-800: oklch(0.424 0.199 265.638);
  --color-blue-900: oklch(0.379 0.146 265.522);
  --color-blue-950: oklch(0.282 0.091 267.935);

  --color-amber-50: oklch(0.987 0.022 95.277);
  --color-amber-100: oklch(0.962 0.059 95.617);
  --color-amber-200: oklch(0.924 0.12 95.746);
  --color-amber-300: oklch(0.879 0.169 91.605);
  --color-amber-400: oklch(0.828 0.189 84.429);
  --color-amber-500: oklch(0.769 0.188 70.08);
  --color-amber-600: oklch(0.666 0.179 58.318);
  --color-amber-700: oklch(0.555 0.163 48.998);
  --color-amber-800: oklch(0.473 0.137 46.201);
  --color-amber-900: oklch(0.414 0.112 45.904);
  --color-amber-950: oklch(0.279 0.077 45.635);

  --color-neutral-50: oklch(0.985 0 0);
  --color-neutral-100: oklch(0.97 0 0);
  --color-neutral-200: oklch(0.922 0 0);
  --color-neutral-300: oklch(0.87 0 0);
  --color-neutral-400: oklch(0.708 0 0);
  --color-neutral-500: oklch(0.556 0 0);
  --color-neutral-600: oklch(0.439 0 0);
  --color-neutral-700: oklch(0.371 0 0);
  --color-neutral-800: oklch(0.269 0 0);
  --color-neutral-900: oklch(0.205 0 0);
  --color-neutral-950: oklch(0.145 0 0);

  --color-gray-50: oklch(0.985 0.002 247.839);
  --color-gray-100: oklch(0.967 0.003 264.542);
  --color-gray-200: oklch(0.928 0.006 264.531);
  --color-gray-300: oklch(0.872 0.01 258.338);
  --color-gray-400: oklch(0.707 0.022 261.325);
  --color-gray-500: oklch(0.551 0.027 264.364);
  --color-gray-600: oklch(0.446 0.03 256.802);
  --color-gray-700: oklch(0.373 0.034 259.733);
  --color-gray-800: oklch(0.278 0.033 256.848);
  --color-gray-900: oklch(0.21 0.034 264.665);
  --color-gray-950: oklch(0.13 0.028 261.692);

  --color-black: #000;
  --color-white: #fff;

  /*
	 * Spacing scale — values match Tailwind's default spacing scale.
	 * https://tailwindcss.com/docs/customizing-spacing
	 * 1 unit = 0.25rem = 4px
	 */
  --size-0: 0px;
  --size-px: 1px;
  --size-0\.5: 0.125rem;
  --size-1: 0.25rem;
  --size-1\.5: 0.375rem;
  --size-2: 0.5rem;
  --size-2\.5: 0.625rem;
  --size-3: 0.75rem;
  --size-3\.5: 0.875rem;
  --size-4: 1rem;
  --size-5: 1.25rem;
  --size-6: 1.5rem;
  --size-7: 1.75rem;
  --size-8: 2rem;
  --size-9: 2.25rem;
  --size-10: 2.5rem;
  --size-11: 2.75rem;
  --size-12: 3rem;
  --size-14: 3.5rem;
  --size-16: 4rem;
  --size-20: 5rem;
  --size-24: 6rem;
  --size-28: 7rem;
  --size-32: 8rem;
  --size-36: 9rem;
  --size-40: 10rem;
  --size-44: 11rem;
  --size-48: 12rem;
  --size-52: 13rem;
  --size-56: 14rem;
  --size-60: 15rem;
  --size-64: 16rem;
  --size-72: 18rem;
  --size-80: 20rem;
  --size-96: 24rem;

  /*
   * Typography scale — matches Tailwind CSS font-size
   * https://tailwindcss.com/docs/font-size
   */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 1.875rem;
  --text-4xl: 2.25rem;
  --text-5xl: 3rem;
  --text-6xl: 3.75rem;
}

/* Gen Interface JP + CJK ellipsis (Noto Sans JP glyph) */
body[style*='--slidev-theme-ellipsisFont: cjk']:not([style*='--slidev-theme-font: inter']) {
  --font-family-sans: 'Cobalt Ellipsis CJK', 'Gen Interface JP', var(--font-stack-fallback);
}

/* Gen Interface JP + Latin ellipsis (Inter glyph) */
body[style*='--slidev-theme-ellipsisFont: latin']:not([style*='--slidev-theme-font: inter']) {
  --font-family-sans: 'Cobalt Ellipsis Latin', 'Gen Interface JP', var(--font-stack-fallback);
}

/* Inter font stack */
body[style*='--slidev-theme-font: inter'] {
  --font-family-sans: 'Inter Variable', 'Noto Sans JP Variable', var(--font-stack-fallback);
  --font-family-display: var(--font-family-sans);
  --cjk-open-pull: 0.28em;
}

/* Inter + CJK ellipsis */
body[style*='--slidev-theme-font: inter'][style*='--slidev-theme-ellipsisFont: cjk'] {
  --font-family-sans:
    'Cobalt Ellipsis CJK', 'Inter Variable', 'Noto Sans JP Variable', var(--font-stack-fallback);
}

/* Inter + Latin ellipsis */
body[style*='--slidev-theme-font: inter'][style*='--slidev-theme-ellipsisFont: latin'] {
  --font-family-sans:
    'Cobalt Ellipsis Latin', 'Inter Variable', 'Noto Sans JP Variable', var(--font-stack-fallback);
}
