/* Single source of truth for colour and type. Every page links this first.
   No other file may contain a raw brand colour or a font-family name. */

:root {
  /* Brand */
  --brand-700: #0C24C4;   /* primary hover/pressed */
  --brand-600: #1834D4;   /* PRIMARY: CTAs, links, active states */
  --brand-500: #2048E8;   /* floating buttons, bright accents */
  --brand-logo: #0C28D0;  /* logo mark only */
  --brand-400: #4078F4;   /* AI/sparkle icons, small highlights */
  --brand-200: #A0C0F8;   /* focus ring, input focus border */
  --brand-100: #E6EFFA;   /* soft highlight, selected row, chat bubble */
  --brand-50:  #F0F5FD;   /* tinted section background */

  /* Display ink (headings on light bg) */
  --ink-display: #0C1C78;
  --ink-display-accent: #0C24B4;  /* highlighted words in headings */
  --ink-chat: #10277E;

  /* Light neutrals */
  --bg: #FFFFFF;
  --surface: #F5F7FC;
  --surface-2: #EDF4FA;
  --border: #E3EAF4;
  --text-strong: #0F1626;
  --text: #1A2438;
  --text-nav: #484848;
  --text-muted: #64728C;       /* was #6C7A94 — 4.04:1 on --surface failed AA; now 4.53:1 */
  --text-subtle: #98A4B8;
  --text-eyebrow: #6B6B68;

  /* Dark hero + dark panels */
  --hero-start: #2039A5;
  --hero-mid: #223A9E;
  --hero-violet: #352C8F;
  --hero-deep: #0E1A49;
  --hero-end: #040916;
  --dark-surface: #1B2750;
  --dark-surface-2: #283770;
  --dark-chip: #192140;
  --dark-chip-muted: #18203B;
  --dark-chip-text: #728ABA;   /* was #6078A8 — 3.56:1 on --dark-chip failed AA; now 4.55:1 */
  --dark-text-muted: #939CC2;

  /* Semantic */
  --danger: #CC342C;

  /* Derived — the brief's component recipes, kept here so no other file holds a raw colour */
  --hero-glow: rgba(53, 44, 143, .85);        /* violet radial in the hero background */
  --glass-bg: rgba(27, 39, 80, .7);           /* dark glass panel = --dark-surface at 70% */
  --shadow-brand: 0 4px 14px rgba(24, 52, 212, .25);
  --on-dark: #FFFFFF;                          /* text on the dark hero */
  --on-dark-muted: rgba(255, 255, 255, .78);   /* hero subhead */
}

:root {
  --font-display: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-body: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* Fluid scale */
  --fs-h1: clamp(2.5rem, 1.6rem + 3.6vw, 4.5rem);
  --fs-h2: clamp(2rem, 1.4rem + 2.4vw, 3.5rem);
  --fs-h3: clamp(1.375rem, 1.1rem + 1vw, 2rem);
  --fs-lg: 1.25rem;
  --fs-base: 1.0625rem;
  --fs-sm: 0.9375rem;
  --fs-xs: 0.8125rem;

  --lh-tight: 1.05;   /* H1/H2 */
  --lh-snug: 1.25;    /* H3, card titles */
  --lh-body: 1.6;

  --tracking-display: -0.025em;  /* H1/H2 */
  --tracking-eyebrow: 0.2em;     /* uppercase labels */
}

/* Base — the only place font families are assigned */
body {
  font-family: var(--font-body);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, button, .btn, .eyebrow, .logotype { font-family: var(--font-display); }
input, select, textarea { font-family: inherit; }
