:root {
  /* Approved Theme Colour Reference v1. */
  --ah-white: #ffffff;
  --ah-sky: #59bce8;
  --ah-sky-light: #e8f7fd;
  --ah-blue: #123f67;
  --ah-blue-deep: #082c4c;
  --ah-gold: #c9a64a;
  --ah-gold-soft: #e3cb8c;
  --ah-gold-light: #f7f0dd;
  --ah-text: #405464;
  --ah-muted: #687b88;
  --ah-background: #f5f9fc;
  --ah-border: #dce8ef;
  --ah-link: #0c6f9e;
  --ah-danger: #a43c45;
  --ah-success: #26745a;

  /* Backwards-compatible aliases from v0.1.0. */
  --ah-navy: var(--ah-blue);
  --ah-deep-navy: var(--ah-blue-deep);
  --ah-ink: var(--ah-text);
  --ah-line: var(--ah-border);
  --ah-mist: var(--ah-sky-light);
  --ah-paper: var(--ah-background);

  /* Typography. */
  --ah-font-sans: Inter, Aptos, "Segoe UI", Arial, sans-serif;
  --ah-font-serif: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --ah-font-display: clamp(3rem, 6.4vw, 6.5rem);
  --ah-font-h1: clamp(2.75rem, 5vw, 5.25rem);
  --ah-font-h2: clamp(2.25rem, 4vw, 4.25rem);
  --ah-font-h3: clamp(1.65rem, 2.6vw, 2.5rem);
  --ah-font-h4: clamp(1.25rem, 1.8vw, 1.65rem);
  --ah-font-body-lg: clamp(1.0625rem, 1.25vw, 1.2rem);
  --ah-font-body: 1rem;
  --ah-font-small: 0.875rem;

  /* Layout and spacing. */
  --ah-container: 1280px;
  --ah-container-wide: 1440px;
  --ah-container-narrow: 960px;
  --ah-gutter: clamp(1.25rem, 4vw, 3rem);
  --ah-shell: min(calc(100% - (2 * var(--ah-gutter))), var(--ah-container-wide));
  --ah-section-xl: clamp(6rem, 10vw, 8rem);
  --ah-section-lg: clamp(5rem, 8vw, 7rem);
  --ah-section-md: clamp(4rem, 6vw, 5.5rem);
  --ah-section-sm: clamp(3rem, 5vw, 4rem);

  /* Surfaces and media. */
  --ah-radius-sm: 4px;
  --ah-radius-md: 12px;
  --ah-radius-lg: 20px;
  --ah-shadow-sm: 0 8px 24px rgba(8, 44, 76, 0.08);
  --ah-shadow: 0 18px 50px rgba(8, 44, 76, 0.12);
  --ah-ratio-landscape: 16 / 9;
  --ah-ratio-editorial: 4 / 3;
  --ah-ratio-card: 3 / 2;
  --ah-ratio-portrait: 4 / 5;

  /* Interaction. */
  --ah-transition-fast: 180ms ease;
  --ah-transition: 350ms cubic-bezier(0.2, 0.7, 0.2, 1);
  --ah-transition-slow: 650ms cubic-bezier(0.2, 0.7, 0.2, 1);
  --ah-header-height: 96px;
  --ah-utility-height: 34px;
  --ah-z-header: 1000;
}
