:root {
  /* Brand navy ramp — anchored at Penn Blue #121541 */
  --brand-25: #F8F9FC;
  --brand-50: #F1F2F9;
  --brand-100: #DDDFE9;
  --brand-200: #B4B7D4;
  --brand-300: #8488B6;
  --brand-400: #5558A0;
  --brand-500: #2A2D78;
  --brand-600: #121541;
  --brand-700: #0E1034;
  --brand-800: #0A0C28;
  --brand-900: #06081C;
  --brand-950: #03040E;

  /* Accent yellow ramp — anchored at Aureolin #F7EC33 */
  --accent-25: #FFFDE8;
  --accent-50: #FEF8B8;
  --accent-100: #FDF17D;
  --accent-200: #FCEB55;
  --accent-300: #FDE033;
  --accent-400: #F7EC33;
  --accent-500: #E0D420;
  --accent-600: #B8AC10;
  --accent-700: #8A7F0A;
  --accent-800: #5A5405;
  --accent-900: #2E2B02;

  /* Supporting palette */
  --dodger-blue: #1E96FC;
  --signal-red:  #FF331F;
  --pine-green:  #17301C;
  --humus:       #484538;

  /* Neutrals — Untitled UI ramp */
  --neutral-25: #FCFCFD;
  --neutral-50: #F9FAFB;
  --neutral-100: #F2F4F7;
  --neutral-200: #EAECF0;
  --neutral-300: #D0D5DD;
  --neutral-400: #98A2B3;
  --neutral-500: #667085;
  --neutral-600: #475467;
  --neutral-700: #344054;
  --neutral-800: #1D2939;
  --neutral-900: #101828;
  --neutral-950: #0C111D;

  /* Semantic */
  --success-500: #17B26A;
  --warning-500: #F79009;
  --error-500:   #F04438;

  /* Type */
  --font-body: 'Inter', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Radius */
  --r-xs: 2px;
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 8px;
  --r-xl: 12px;
  --r-2xl: 16px;
  --r-3xl: 24px;
  --r-full: 9999px;

  /* Spacing scale */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-8: 32px;
  --s-10: 40px;
  --s-12: 48px;
  --s-16: 64px;
  --s-20: 80px;
  --s-24: 96px;

  /* Shadow */
  --shadow-xs: 0 1px 2px rgba(16,24,40,.05);
  --shadow-sm: 0 1px 3px rgba(16,24,40,.10), 0 1px 2px -1px rgba(16,24,40,.10);
  --shadow-md: 0 4px 6px -1px rgba(16,24,40,.08), 0 2px 4px -2px rgba(16,24,40,.06);
  --shadow-lg: 0 12px 16px -4px rgba(16,24,40,.08), 0 4px 6px -2px rgba(16,24,40,.03);
  --shadow-xl: 0 20px 24px -4px rgba(16,24,40,.08), 0 8px 8px -4px rgba(16,24,40,.03);
  --shadow-2xl: 0 24px 48px -12px rgba(16,24,40,.18);
  --shadow-3xl: 0 32px 64px -12px rgba(16,24,40,.14);

  /* Semantic surfaces */
  --bg-primary: #FFFFFF;
  --bg-secondary: #F9FAFB;
  --bg-tertiary: #F2F4F7;
  --bg-canvas: #FCFCFD;
  --bg-brand-solid: #121541;
  --bg-brand-subtle: #F1F2F9;
  --text-primary: #101828;
  --text-secondary: #344054;
  --text-tertiary: #475467;
  --text-quaternary: #667085;
  --text-brand: #121541;
  --text-on-brand: #FFFFFF;
  --border-primary: #D0D5DD;
  --border-secondary: #EAECF0;
  --border-tertiary: #F2F4F7;
  --border-brand: #2A2D78;
}
