:root {
  /* Colors — rebranded to Howard University's official palette (verified
     2026-07-26 against ouc.howard.edu/our-services/creative-branding-multimedia/colors-typography):
     Dark Midnight Blue #003A63 (primary, must stay dominant per brand
     guide), Crimson #E51937 (secondary, guide caps it at <=30% of any
     color scheme), Celtic Blue #2A6EBB (secondary blue), Gold Foil
     #C79316/Sunglow #FFC82E (accent — decorative only; too light for AA
     text use, see the darkened gold accents below), Japanese Violet
     #5C3160, Granite Gray #5F6062, Cultured #F5F5F0. Token *names* are
     kept stable (still --color-azure-action, --color-teal-pulse, etc.)
     so every var() reference in index.html keeps working unchanged —
     only the underlying hex values moved to the Howard palette. */
  --color-ink-black: #221f1c;
  --color-paper-white: #f5f5f0;
  --color-pure-white: #ffffff;
  --color-stone-gray: #5f6062;
  --color-pebble: #8b8e91;
  --color-slate-edge: #12202b;
  --color-azure-action: #2a6ebb;
  /* Hero gradient: Dark Midnight Blue -> Celtic Blue for the first 70% of
     the ramp, Crimson only in the final stretch, so blue reads as the
     dominant hue across the sweep and crimson stays a minority accent
     (Howard's brand guide: blue dominant, red <=30% of any color scheme).
     Contrast-verified in evals/test_hero_contrast.py against every stop. */
  --gradient-azure-action: linear-gradient(120deg in oklab, rgb(0, 58, 99) 0%, rgb(42, 110, 187) 70%, rgb(229, 25, 55) 100%);
  --color-teal-pulse: #8a5f0b;
  --color-mint-wash: #dce9f7;
  --color-peach-wash: #fbeecb;
  --color-lavender-wash: #fbdfe2;
  --color-teal-mist: #e3edf7;
  --color-coral-marker: #e51937;
  --color-amber-marker: #97690b;
  --color-orchid-marker: #5c3160;
  --color-forest-edge: #1a3a12;
  --color-signal-green: #3a6b2a;
  --color-live-lime: #7efa55;

  /* Typography — Font Families */
  --font-perfectlynineties: 'perfectlyNineties', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-haffer: 'haffer', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-ui-monospace: 'ui-monospace', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

  /* Typography — Scale */
  --text-eyebrow: 10px;
  --leading-eyebrow: 1.4;
  --tracking-eyebrow: 1px;
  --text-caption: 12px;
  --leading-caption: 1.4;
  --text-body-sm: 14px;
  --leading-body-sm: 1.5;
  --text-body: 16px;
  --leading-body: 1.5;
  --text-subheading: 18px;
  --leading-subheading: 1.5;
  --text-heading-sm: 24px;
  --leading-heading-sm: 1.4;
  --tracking-heading-sm: -0.6px;
  --text-heading: 30px;
  --leading-heading: 1.25;
  --tracking-heading: 0.6px;
  --text-heading-lg: 48px;
  --leading-heading-lg: 1.2;
  --tracking-heading-lg: 0.96px;
  --text-display: 72px;
  --leading-display: 1;
  --tracking-display: 1.44px;
  --text-hero-mark: 96px;
  --leading-hero-mark: 1;
  --tracking-hero-mark: -2.4px;

  /* Typography — Weights */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  --font-weight-black: 900;

  /* Spacing */
  --spacing-unit: 4px;
  --spacing-4: 4px;
  --spacing-8: 8px;
  --spacing-12: 12px;
  --spacing-16: 16px;
  --spacing-20: 20px;
  --spacing-24: 24px;
  --spacing-32: 32px;
  --spacing-40: 40px;
  --spacing-48: 48px;
  --spacing-52: 52px;
  --spacing-64: 64px;
  --spacing-80: 80px;
  --spacing-96: 96px;
  --spacing-128: 128px;
  --spacing-192: 192px;
  --spacing-240: 240px;

  /* Layout */
  --page-max-width: 1200px;
  --section-gap: 64px;
  --card-padding: 16px;
  --element-gap: 8px;

  /* Border Radius */
  --radius-md: 4px;
  --radius-lg: 8px;
  --radius-xl: 14px;
  --radius-2xl: 18px;
  --radius-2xl-2: 22px;
  --radius-3xl: 32px;
  --radius-3xl-2: 40px;
  --radius-full: 9999px;

  /* Named Radii */
  --radius-pills: 9999px;
  --radius-inputs: 8px;
  --radius-buttons: 8px;
  --radius-nav-pills: 8px;
  --radius-large-cards: 18px;
  --radius-small-cards: 14px;
  --radius-feature-blocks: 18px;

  /* Shadows */
  --shadow-subtle: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px;
  --shadow-subtle-2: oklab(0.241527 0.00279061 0.00670661 / 0.065) 0px 0px 0px 1px, rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px;
  --shadow-subtle-3: rgba(0, 0, 0, 0.08) 0px 1px 2px 0px;
  --shadow-md: rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.1) 0px 4px 6px -4px;
  --shadow-subtle-4: rgba(0, 0, 0, 0.2) 0px -2px 0px 0px inset;
  --shadow-md-2: oklab(0 0 0 / 0.065) 0px 10px 15px -3px, oklab(0 0 0 / 0.065) 0px 4px 6px -4px;
  --shadow-sm: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.1) 0px 2px 4px -2px;
  --shadow-subtle-5: rgba(0, 0, 0, 0.15) 0px 1px 2px 0px;
  --shadow-subtle-6: rgb(212, 212, 212) 0px 1px 0px 0px, rgb(208, 208, 208) 0px 4px 0px 0px, rgba(0, 0, 0, 0.1) 0px 4px 4px 0px, rgba(0, 0, 0, 0.12) 0px 8px 16px -4px;
  --shadow-subtle-7: oklab(0.241527 0.00279061 0.00670661 / 0.1) 0px 0px 0px 1px, oklab(0 0 0 / 0.25) 0px 25px 50px -12px;
  --shadow-xl: rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.1) 0px 8px 10px -6px;
  --shadow-subtle-8: rgba(0, 0, 0, 0.15) 0px 1px 2px 0px, rgba(0, 0, 0, 0.04) 0px 0px 0px 3px;
  --shadow-subtle-9: oklab(0 0 0 / 0.065) 0px 1px 3px 0px, oklab(0 0 0 / 0.065) 0px 1px 2px -1px;
  --shadow-xl-2: oklab(0 0 0 / 0.15) 0px 25px 50px -12px;

  /* Surfaces */
  --surface-canvas: #f5f5f0;
  --surface-card: #ffffff;
  --surface-pastel-wash: #dce9f7;
  --surface-gradient-sky: #2a6ebb;
}