/* Synced from .design-system/aca-tokens.css — edit source, then copy here before deploy. */

:root {
  /* ---- Core brand palette ---- */
  --aca-navy:        #243340;  /* Primary — headings, masthead, primary CTA */
  --aca-navy-light:  #3C5469;  /* Secondary navy — body emphasis, hovers   */
  --aca-sky:         #6EC1E4;  /* Accent — links on dark, highlights        */
  --aca-tan:         #DBC6B5;  /* Warm secondary — chips, dividers          */
  --aca-cream:       #EFE4D1;  /* Warm surface tint                          */
  --aca-brown:       #594A15;  /* Deep warm — eyebrows on light             */
  --aca-light-brown: #847146;  /* Muted warm — labels                        */
  --aca-light-bg:    #E5EEF0;  /* Cool surface tint (sky-derived)            */
  --aca-green:       #61CE70;  /* Brand success / "active"                   */
  --aca-white:       #FFFFFF;

  /* ---- Neutral / ink ramp ---- */
  --ink:        #243340;  /* primary text (= navy)        */
  --ink-2:      #3C5469;  /* secondary text               */
  --ink-muted:  #7A7A7A;  /* tertiary / captions          */
  --surface:    #FFFFFF;
  --surface-2:  #F6F8F9;  /* page / subtle panels         */
  --surface-3:  #E5EEF0;  /* tinted callouts              */
  --border:     #DDE2E6;  /* hairline borders             */
  --border-2:   #C8D0D6;  /* stronger borders             */

  /* ---- Functional status ---- */
  --success:    #1F8A4C;  /* AA on white (brand green is bg-only) */
  --success-bg: #E4F6EA;
  --warning:    #B26A00;
  --warning-bg: #FBEFD9;
  --error:      #C0291F;
  --error-bg:   #FBE7E5;
  --info:       #2563A8;
  --info-bg:    #E4EEF8;

  /* ---- Type ---- */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
               "Helvetica Neue", Arial, sans-serif;
  --font-mono: "SF Mono", Monaco, Menlo, Consolas, "Courier New", monospace;

  --fs-display: 2.5rem;   /* 40 */
  --fs-h1:      2rem;     /* 32 */
  --fs-h2:      1.5rem;   /* 24 */
  --fs-h3:      1.125rem; /* 18 */
  --fs-base:    1rem;     /* 16 */
  --fs-sm:      0.875rem; /* 14 */
  --fs-xs:      0.75rem;  /* 12 */

  --lh-tight:   1.1;
  --lh-snug:    1.3;
  --lh-normal:  1.6;

  --tracking-eyebrow: 0.18em;
  --tracking-label:   0.08em;

  /* ---- Spacing (4px base) ---- */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 20px; --sp-6: 24px; --sp-8: 32px; --sp-10: 40px;
  --sp-12: 48px; --sp-16: 64px; --sp-20: 80px;

  /* ---- Radius (sharp / institutional) ---- */
  --r-xs: 2px;
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 10px;
  --r-pill: 999px;

  /* ---- Shadow (warm low-contrast) ---- */
  --shadow-sm: 0 1px 2px rgba(36,51,64,.06);
  --shadow-md: 0 4px 10px rgba(36,51,64,.08);
  --shadow-lg: 0 14px 30px rgba(36,51,64,.12);

  --maxw: 1180px;
  --ease: cubic-bezier(.4,0,.2,1);
}

/* ============================================================
   Base / reset
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  color: var(--ink-2);
  background: var(--surface-2);
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4 { color: var(--ink); line-height: var(--lh-snug); margin: 0; }
p { margin: 0; }
a { color: var(--aca-navy-light); }
img, svg { display: block; }
code {
  font-family: var(--font-mono);
  font-size: .85em;
  background: var(--surface-3);
  color: var(--aca-navy);
  padding: 2px 6px;
  border-radius: var(--r-xs);
}

/* ---- Reusable primitives ---- */
.eyebrow {
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--aca-light-brown);
}
.rule-tan { height: 3px; background: var(--aca-tan); border: 0; }
.hairline { height: 1px; background: var(--border); border: 0; }
