/* Hallmark tokens · theme: Cobalt (modern-minimal)
 * axes: paper-band light (cool) · display grotesk-sans · accent cool (electric cobalt, hue 256)
 */
:root {
  /* Colour — light surface */
  --color-paper:        oklch(98.5% 0.004 250);
  --color-paper-2:      oklch(96.5% 0.006 250);
  --color-rule:         oklch(89% 0.010 252);
  --color-rule-2:       oklch(80% 0.014 254);
  --color-muted:        oklch(48% 0.016 257);
  --color-ink-2:        oklch(34% 0.018 257);
  --color-ink:          oklch(24% 0.020 258);
  --color-accent:       oklch(58% 0.20 256);
  --color-accent-strong: oklch(49% 0.20 258);
  --color-accent-ink:   oklch(98.5% 0.004 250);
  --color-accent-wash:  oklch(95% 0.03 256);
  --color-focus:        oklch(52% 0.22 258);

  /* Colour — graphite surface (code card, the one dark band) */
  --color-graphite:        oklch(22% 0.016 260);
  --color-graphite-2:      oklch(27% 0.018 260);
  --color-graphite-rule:   oklch(36% 0.018 260);
  --color-on-graphite:     oklch(94% 0.006 252);
  --color-on-graphite-muted: oklch(72% 0.014 255);
  --color-accent-on-dark:  oklch(76% 0.13 254);
  --color-backdrop:        oklch(24% 0.02 258 / 0.42);

  /* Type */
  --font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-mono:    "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --text-sm:      0.8125rem;
  --text-base:    1rem;
  --text-md:      1.25rem;
  --text-xl:      clamp(1.75rem, 1.6vw + 1.25rem, 2.25rem);
  --text-display: clamp(2.5rem, 4vw + 1.25rem, 4.5rem);

  /* Space — 4pt scale */
  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;
  --page-gutter: clamp(1rem, 4vw, 2.5rem);
  --page-max:    72rem;

  /* Shape */
  --radius-sm: 6px;
  --radius-md: 10px;
  --rule-hair: 1px;
  --shadow-whisper: 0 1px 2px oklch(24% 0.02 258 / 0.05);
  --shadow-dialog:  0 16px 40px -16px oklch(24% 0.02 258 / 0.28);

  /* Motion */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms;
  --dur-short: 220ms;
  --dur-long:  420ms;

  /* Layers */
  --z-raised: 10;
  --z-sticky: 200;
  --z-modal:  400;
}

/* Dark — follows the system setting unless the visitor picks a theme. Same hue anchor; only lightness and chroma move. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-paper:        oklch(16% 0.014 258);
    --color-paper-2:      oklch(19.5% 0.016 258);
    --color-rule:         oklch(28% 0.018 258);
    --color-rule-2:       oklch(38% 0.020 258);
    --color-muted:        oklch(70% 0.016 256);
    --color-ink-2:        oklch(86% 0.010 254);
    --color-ink:          oklch(95% 0.006 252);
    --color-accent:       oklch(68% 0.17 255);
    --color-accent-strong: oklch(77% 0.12 254);
    --color-accent-ink:   oklch(17% 0.02 258);
    --color-accent-wash:  oklch(26% 0.05 257);
    --color-focus:        oklch(78% 0.13 254);

    /* Raised surfaces sit lighter than the page */
    --color-graphite:      oklch(21% 0.018 260);
    --color-graphite-2:    oklch(25% 0.020 260);
    --color-graphite-rule: oklch(33% 0.020 260);
    --color-backdrop:      oklch(8% 0.01 258 / 0.6);

    --shadow-whisper: 0 1px 2px oklch(8% 0.01 258 / 0.3);
    --shadow-dialog:  0 16px 40px -16px oklch(8% 0.01 258 / 0.6);
  }
}
:root[data-theme="dark"] {
  --color-paper:        oklch(16% 0.014 258);
  --color-paper-2:      oklch(19.5% 0.016 258);
  --color-rule:         oklch(28% 0.018 258);
  --color-rule-2:       oklch(38% 0.020 258);
  --color-muted:        oklch(70% 0.016 256);
  --color-ink-2:        oklch(86% 0.010 254);
  --color-ink:          oklch(95% 0.006 252);
  --color-accent:       oklch(68% 0.17 255);
  --color-accent-strong: oklch(77% 0.12 254);
  --color-accent-ink:   oklch(17% 0.02 258);
  --color-accent-wash:  oklch(26% 0.05 257);
  --color-focus:        oklch(78% 0.13 254);

  /* Raised surfaces sit lighter than the page */
  --color-graphite:      oklch(21% 0.018 260);
  --color-graphite-2:    oklch(25% 0.020 260);
  --color-graphite-rule: oklch(33% 0.020 260);
  --color-backdrop:      oklch(8% 0.01 258 / 0.6);

  --shadow-whisper: 0 1px 2px oklch(8% 0.01 258 / 0.3);
  --shadow-dialog:  0 16px 40px -16px oklch(8% 0.01 258 / 0.6);
}
