/* Permanent palette: only black, white and deep cobalt, plus their neutral mixes. */
:root {
  color-scheme: light dark;
  --color-black: rgb(0, 0, 0);
  --color-white: rgb(255, 255, 255);
  --color-cobalt: rgb(44, 52, 128);
  --color-background: var(--color-white);
  --color-background-secondary: color-mix(in srgb, var(--color-black) 4%, var(--color-white));
  --color-text: var(--color-black);
  --color-text-muted: color-mix(in srgb, var(--color-black) 65%, var(--color-white));
  --color-accent: var(--color-cobalt);
  --color-accent-hover: color-mix(in srgb, var(--color-cobalt) 86%, var(--color-black));
  --color-accent-active: color-mix(in srgb, var(--color-cobalt) 72%, var(--color-black));
  --color-on-accent: var(--color-white);
  --color-accent-text: var(--color-cobalt);
  --color-border: color-mix(in srgb, var(--color-black) 15%, var(--color-white));
  --color-control-border: color-mix(in srgb, var(--color-black) 48%, var(--color-white));
  --color-surface: var(--color-white);
  --color-surface-raised: var(--color-background-secondary);
  --color-focus-ring: var(--color-cobalt);
  --color-focus-halo: var(--color-white);
  --color-overlay: color-mix(in srgb, var(--color-black) 12%, transparent);
  --shadow-card: 0 16px 40px color-mix(in srgb, var(--color-black) 8%, transparent);
  --shadow-floating: 0 4px 20px color-mix(in srgb, var(--color-black) 12%, transparent);
  --radius-control: .7rem;
  --radius-card: 1.4rem;
  --radius-pill: 999px;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --content-width: 90rem;
  --reading-width: 53rem;
  --touch-target: 44px;
  --motion-duration: 160ms;
  --motion-easing: ease-out;
  --z-content: 0;
  --z-header: 10;
  --z-guide: 20;
  --z-skip-link: 30;
  /* Compatibility aliases let existing and future components share the same source. */
  --bg: var(--color-background);
  --fg: var(--color-text);
  --muted: var(--color-text-muted);
  --card: var(--color-surface-raised);
  --accent: var(--color-accent);
  --border: var(--color-border);
}
@media (prefers-color-scheme: dark) {
  :root {
    --color-background: var(--color-black);
    --color-background-secondary: color-mix(in srgb, var(--color-white) 7%, var(--color-black));
    --color-text: var(--color-white);
    --color-text-muted: color-mix(in srgb, var(--color-white) 72%, var(--color-black));
    --color-border: color-mix(in srgb, var(--color-white) 20%, var(--color-black));
    --color-control-border: color-mix(in srgb, var(--color-white) 48%, var(--color-black));
    --color-surface: var(--color-black);
    --color-surface-raised: var(--color-background-secondary);
    /* Cobalt stays exact on fills; neutral text and an outer halo keep dark UI readable. */
    --color-accent-text: var(--color-white);
    --color-focus-halo: var(--color-white);
    --shadow-card: 0 16px 40px color-mix(in srgb, var(--color-black) 45%, transparent);
    --shadow-floating: 0 4px 20px color-mix(in srgb, var(--color-black) 50%, transparent);
  }
}
@media (prefers-reduced-motion: reduce) {
  :root { --motion-duration: 0ms; }
}
/* Primitive scales → semantic roles above → component sizing below. */
:root {
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, monospace;
  --type-small: .875rem;
  --type-body: clamp(1rem, .95rem + .2vw, 1.125rem);
  --type-heading: clamp(1.8rem, 5vw, 4rem);
  --line-body: 1.55;
  --line-heading: 1.15;
  --space-5: 1.25rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --layout-gutter: clamp(1rem, 4vw, 4rem);
  --motion-duration-slow: 300ms;
  --avatar-panel-width: 46rem;
  --avatar-panel-height: 42dvh;
  --avatar-visual-size: 4rem;
  --avatar-bubble-space: var(--space-3);
  --avatar-launcher-height: var(--touch-target);
}
