/* hallmark — Crafted with taste. Audited with care. */
:root {
  /* AX/DX core palette */
  --ax-white: oklch(99.4% 0.004 220);
  --ax-cloud: oklch(98.4% 0.004 247);
  --ax-mist: oklch(96.9% 0.008 225);
  --ax-ink: oklch(20.8% 0.027 249);
  --ax-slate: oklch(51.5% 0.028 242);
  --ax-line: oklch(90.8% 0.012 236);
  --ax-line-strong: oklch(82.5% 0.021 233);
  --ax-cyan: oklch(77.3% 0.153 220);
  --ax-cyan-deep: oklch(61.7% 0.132 224);
  --ax-cyan-pale: oklch(96.6% 0.032 218);
  --ax-navy: oklch(24.4% 0.045 226);
  --ax-navy-raised: oklch(29.5% 0.05 226);

  /* Compatibility aliases for the current templates */
  --ax-paper-0: var(--ax-white);
  --ax-paper-1: var(--ax-white);
  --ax-paper-2: var(--ax-cloud);
  --ax-paper-3: var(--ax-mist);
  --ax-card: var(--ax-white);
  --ax-sage: var(--ax-cyan-pale);
  --ax-olive: var(--ax-navy);
  --ax-olive-d: var(--ax-navy);
  --ax-ink-2: var(--ax-slate);
  --ax-line-2: var(--ax-line-strong);
  --ax-terra: var(--ax-cyan);
  --ax-terra-d: var(--ax-cyan-deep);
  --ax-terra-p: var(--ax-cyan-pale);

  /* Semantic colors */
  --color-bg: var(--ax-white);
  --color-bg-subtle: var(--ax-cloud);
  --color-bg-sunken: var(--ax-mist);
  --color-bg-card: var(--ax-white);
  --color-bg-dark: var(--ax-navy);
  --color-bg-accent: var(--ax-cyan-pale);
  --color-bg-mist: var(--ax-mist);
  --color-bg-sage: var(--ax-cyan-pale);
  --color-text: var(--ax-ink);
  --color-text-secondary: var(--ax-slate);
  --color-text-ondark: var(--ax-white);
  --color-link: var(--ax-cyan-deep);
  --color-link-hover: var(--ax-navy);
  --color-border: var(--ax-line);
  --color-border-strong: var(--ax-line-strong);
  --color-border-accent: var(--ax-cyan);
  --color-accent: var(--ax-cyan);
  --color-accent-ink: var(--ax-navy);
  --color-accent-dark: var(--ax-cyan-deep);
  --color-accent-pale: var(--ax-cyan-pale);
  --color-success: oklch(50% 0.11 154);
  --color-warning: oklch(59% 0.13 69);
  --color-danger: oklch(52% 0.17 28);
  --color-info: oklch(55% 0.08 225);

  /* Typography */
  --font-ja: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  --font-display: "Archivo", "Noto Sans JP", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --font-script: var(--font-mono);
  --font-script-ja: var(--font-ja);
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  --weight-display: 800;
  --leading-tight: 1.1;
  --leading-heading: 1.25;
  --leading-body: 1.9;
  --leading-ui: 1.5;
  --tracking-label: 0.12em;
  --tracking-display: -0.01em;

  /* Spacing and shape */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-30: 120px;
  --section-gap: 96px;
  --section-gap-tablet: 80px;
  --section-gap-mobile: 64px;
  --width-wide: 1280px;
  --width-content: 1120px;
  --width-article: 780px;
  --gutter: 40px;
  --gutter-tablet: 32px;
  --gutter-mobile: 20px;
  --radius-none: 0px;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-pill: 999px;
  --border: 1px solid var(--color-border);
  --border-strong: 1px solid var(--color-border-strong);
  --border-accent: 2px solid var(--color-border-accent);

  /* Depth and motion */
  --shadow-header: 0 1px 0 var(--color-border), 0 4px 16px oklch(24.4% 0.045 226 / 0.04);
  --shadow-card: 0 1px 2px oklch(24.4% 0.045 226 / 0.05), 0 10px 30px oklch(24.4% 0.045 226 / 0.05);
  --shadow-card-hover: 0 2px 4px oklch(24.4% 0.045 226 / 0.06), 0 16px 38px oklch(24.4% 0.045 226 / 0.09);
  --shadow-overlay: 0 12px 40px oklch(24.4% 0.045 226 / 0.18);
  --shadow-popover: 0 8px 24px oklch(24.4% 0.045 226 / 0.15);
  --motion-fast: 180ms;
  --motion-base: 280ms;
  --motion-slow: 480ms;
  --ease: cubic-bezier(0.2, 0.6, 0.2, 1);
}
