body {
  /* デフォルト本文: ゴシック（Geist Sans → システムSansフォールバック） */
  font-family:
    var(--font-geist-sans),
    ui-sans-serif,
    system-ui,
    -apple-system,
    Segoe UI,
    Roboto,
    Noto Sans,
    Helvetica Neue,
    Arial,
    "Apple Color Emoji",
    "Segoe UI Emoji",
    "Segoe UI Symbol";
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  strong {
    color: var(--primary);
  }
}
/* 見出しはShippori Mincho（明朝）でブランド感を演出 */
:root h1,
:root h2,
:root h3,
.heading-serif {
  font-family:
    var(--font-shippori-mincho), ui-serif, Georgia, Cambria, "Times New Roman",
    Times, serif;
}

:root {
  --background: oklch(0.2178 0 0);
  --foreground: oklch(0.9702 0 0);
  --card: oklch(0.2686 0 0);
  --card-foreground: oklch(0.9702 0 0);
  --popover: oklch(0.2686 0 0);
  --popover-foreground: oklch(0.9702 0 0);
  --primary: oklch(0.624 0.195 30.834);
  --primary-foreground: oklch(1 0 0);
  --secondary: oklch(0.36 0 0);
  --secondary-foreground: oklch(0.9702 0 0);
  --muted: oklch(0.3211 0 0);
  --muted-foreground: oklch(0.7668 0 0);
  --accent: oklch(0.36 0 0);
  --accent-foreground: oklch(0.9702 0 0);
  --destructive: oklch(0.665 0.184 32.282);
  --destructive-foreground: oklch(1 0 0);
  --border: oklch(0.36 0 0);
  --input: oklch(0.3211 0 0);
  --ring: oklch(0.624 0.195 30.834);
  --chart-1: oklch(0.624 0.195 30.834);
  --chart-2: oklch(0.7002 0.1488 246.6596);
  --chart-3: oklch(0.7185 0.1417 144.8887);
  --chart-4: oklch(0.8622 0.1681 88.3067);
  --chart-5: oklch(0.5763 0.1939 321.5895);
  --sidebar: oklch(0.2178 0 0);
  --sidebar-foreground: oklch(0.9702 0 0);
  --sidebar-primary: oklch(0.624 0.195 30.834);
  --sidebar-primary-foreground: oklch(1 0 0);
  --sidebar-accent: oklch(0.36 0 0);
  --sidebar-accent-foreground: oklch(0.9702 0 0);
  --sidebar-border: oklch(0.36 0 0);
  --sidebar-ring: oklch(0.624 0.195 30.834);
  --font-sans: ui-sans-serif, system-ui, sans-serif;
  --font-serif: ui-serif, Georgia, Cambria, Times New Roman, Times, serif;
  --font-mono:
    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono,
    Courier New, monospace;
  --radius: 0.5rem;
  --shadow-x: 0px;
  --shadow-y: 4px;
  --shadow-blur: 10px;
  --shadow-spread: 0px;
  --shadow-opacity: 0.3;
  --shadow-color: #000000;
  --shadow-2xs: 0px 4px 10px 0px hsl(0 0% 0% / 0.15);
  --shadow-xs: 0px 4px 10px 0px hsl(0 0% 0% / 0.15);
  --shadow-sm:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 1px 2px -1px hsl(0 0% 0% / 0.3);
  --shadow:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 1px 2px -1px hsl(0 0% 0% / 0.3);
  --shadow-md:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 2px 4px -1px hsl(0 0% 0% / 0.3);
  --shadow-lg:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 4px 6px -1px hsl(0 0% 0% / 0.3);
  --shadow-xl:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 8px 10px -1px hsl(0 0% 0% / 0.3);
  --shadow-2xl: 0px 4px 10px 0px hsl(0 0% 0% / 0.75);
}

.dark {
  --background: oklch(0.2178 0 0);
  --foreground: oklch(0.9702 0 0);
  --card: oklch(0.2686 0 0);
  --card-foreground: oklch(0.9702 0 0);
  --popover: oklch(0.2686 0 0);
  --popover-foreground: oklch(0.9702 0 0);
  --primary: oklch(0.624 0.195 30.834);
  --primary-foreground: oklch(1 0 0);
  --secondary: oklch(0.36 0 0);
  --secondary-foreground: oklch(0.9702 0 0);
  --muted: oklch(0.3211 0 0);
  --muted-foreground: oklch(0.7668 0 0);
  --accent: oklch(0.36 0 0);
  --accent-foreground: oklch(0.9702 0 0);
  --destructive: oklch(0.665 0.184 32.282);
  --destructive-foreground: oklch(1 0 0);
  --border: oklch(0.36 0 0);
  --input: oklch(0.3211 0 0);
  --ring: oklch(0.624 0.195 30.834);
  --chart-1: oklch(0.624 0.195 30.834);
  --chart-2: oklch(0.7002 0.1488 246.6596);
  --chart-3: oklch(0.7185 0.1417 144.8887);
  --chart-4: oklch(0.8622 0.1681 88.3067);
  --chart-5: oklch(0.5763 0.1939 321.5895);
  --sidebar: oklch(0.2178 0 0);
  --sidebar-foreground: oklch(0.9702 0 0);
  --sidebar-primary: oklch(0.624 0.195 30.834);
  --sidebar-primary-foreground: oklch(1 0 0);
  --sidebar-accent: oklch(0.36 0 0);
  --sidebar-accent-foreground: oklch(0.9702 0 0);
  --sidebar-border: oklch(0.36 0 0);
  --sidebar-ring: oklch(0.624 0.195 30.834);
  --font-sans: ui-sans-serif, system-ui, sans-serif;
  --font-serif: ui-serif, Georgia, Cambria, Times New Roman, Times, serif;
  --font-mono:
    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono,
    Courier New, monospace;
  --radius: 0.5rem;
  --shadow-x: 0px;
  --shadow-y: 4px;
  --shadow-blur: 10px;
  --shadow-spread: 0px;
  --shadow-opacity: 0.3;
  --shadow-color: #000000;
  --shadow-2xs: 0px 4px 10px 0px hsl(0 0% 0% / 0.15);
  --shadow-xs: 0px 4px 10px 0px hsl(0 0% 0% / 0.15);
  --shadow-sm:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 1px 2px -1px hsl(0 0% 0% / 0.3);
  --shadow:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 1px 2px -1px hsl(0 0% 0% / 0.3);
  --shadow-md:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 2px 4px -1px hsl(0 0% 0% / 0.3);
  --shadow-lg:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 4px 6px -1px hsl(0 0% 0% / 0.3);
  --shadow-xl:
    0px 4px 10px 0px hsl(0 0% 0% / 0.3), 0px 8px 10px -1px hsl(0 0% 0% / 0.3);
  --shadow-2xl: 0px 4px 10px 0px hsl(0 0% 0% / 0.75);
}
