:root{
  /* Colour roles — light mode. Swap these values only to add dark mode. */
  --bg:#FFFFFF;
  --surface:#F5F6F8;
  --surface-sunken:#ECEEF2;
  --border:#E2E5EA;
  --border-input:#C9CDD4;
  --ink:#16181D;
  --text-secondary:#565B63;
  --text-muted:#8A8F98;

  /* i~HD brand blue. Fills only — use --accent-strong for text and links on white. */
  --accent:#125496;
  --accent-hover:#0F477F;
  --accent-active:#0C3A69;
  --accent-strong:#0D3F73;
  --accent-wash:#EAF0F7;

  /* Status. Never expressed with --accent. */
  --success:#1F7A4C; --success-wash:#E8F3ED;
  --warning:#8A5A05; --warning-wash:#FDF3E2;
  --danger:#C42B2B;  --danger-wash:#FBECEC;

  --focus:#16181D;

  /* Type. Source Sans Pro (Adobe kit vok4jbi) or Source Sans 3 (Google Fonts). */
  --font-display:"Source Sans 3",system-ui,sans-serif;
  --font-body:"Source Sans 3",system-ui,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-6:24px; --space-8:32px; --space-12:48px;

  --radius-sm:2px; --radius-md:6px; --radius-lg:12px; --radius-pill:999px;
}

/* Type scale
   display-l  34/38 700   page title
   heading-m  24/30 700   section heading, stat value
   heading-s  17/24 700   card title
   body       15/25 400   body copy, max 68ch
   body-s     13/20 400   help text, meta
   label      12/16 600   field label
   mono-caps  10/14 600   uppercase, letter-spacing .12em

   Breakpoints: sm 640 · md 900 · lg 1200 · xl 1440
   Content max-width 1200px. Gutters 24px mobile / 48px desktop. */

:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}
a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--accent-active)}

@keyframes ihd-shimmer{0%{opacity:.55}50%{opacity:1}100%{opacity:.55}}
@keyframes ihd-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
