:root {
  color-scheme: light;

  /* Brand palette: porcelain surfaces, plum structure, muted brass accents. */
  --aabha-plum-950: #281a2c;
  --aabha-plum-900: #2d1f32;
  --aabha-plum-800: #54375b;
  --aabha-plum-700: #5b4564;
  --aabha-plum-600: #76517d;
  --aabha-plum-300: #b8a7b5;
  --aabha-plum-250: #b8aabc;
  --aabha-plum-200: #d4c5d1;
  --aabha-plum-150: #e4dce6;
  --aabha-plum-100: #eee8ef;
  --aabha-plum-075: #f3edf4;
  --aabha-plum-050: #f6f1f4;
  --aabha-porcelain-100: #f7f3f5;
  --aabha-porcelain-075: #f8f5f7;
  --aabha-porcelain-050: #faf8f8;
  --aabha-porcelain-025: #fcfbfa;
  --aabha-white: #ffffff;
  --aabha-brass-700: #746d56;
  --aabha-brass-600: #ac8147;
  --aabha-brass-300: #dec9a6;

  /* Semantic colour roles. Components use these names, not raw palette values. */
  --aabha-color-text: var(--aabha-plum-950);
  --aabha-color-text-muted: #5e5061;
  --aabha-color-text-inverse: #f8f4f6;
  --aabha-color-text-inverse-strong: #fdfafb;
  --aabha-color-text-inverse-muted: #e4dbe6;
  --aabha-color-text-inverse-subtle: #cdbfd0;
  --aabha-color-brand: var(--aabha-plum-600);
  --aabha-color-brand-strong: var(--aabha-plum-800);
  --aabha-color-accent: var(--aabha-brass-600);
  --aabha-color-accent-soft: var(--aabha-brass-300);
  --aabha-color-accent-hover: #e8cda7;
  --aabha-color-surface: var(--aabha-porcelain-025);
  --aabha-color-surface-subtle: var(--aabha-porcelain-050);
  --aabha-color-surface-tinted: var(--aabha-plum-100);
  --aabha-color-surface-strong: var(--aabha-plum-950);
  --aabha-color-surface-deep: var(--aabha-plum-900);
  --aabha-color-surface-feature: var(--aabha-plum-050);
  --aabha-color-surface-topic: var(--aabha-plum-150);
  --aabha-color-surface-roadmap: var(--aabha-plum-250);
  --aabha-color-surface-learning: var(--aabha-plum-200);
  --aabha-color-surface-newsletter: var(--aabha-plum-300);
  --aabha-color-surface-editorial-dark: var(--aabha-plum-700);
  --aabha-color-positive: #3e6a52;
  --aabha-color-caution: #8a5b20;
  --aabha-color-critical: #8b3945;
  --aabha-color-info: var(--aabha-plum-700);
  --aabha-color-border: rgb(40 26 44 / 15%);
  --aabha-color-border-strong: rgb(40 26 44 / 42%);
  --aabha-color-focus: #8a5b20;

  /* Typography. System faces avoid blocking the reading experience. */
  --aabha-font-display: "Iowan Old Style", Baskerville, "Palatino Linotype", Georgia, serif;
  --aabha-font-body: "Avenir Next", Avenir, Inter, ui-sans-serif, -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif;
  --aabha-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --aabha-text-xs: 0.75rem;
  --aabha-text-sm: 0.875rem;
  --aabha-text-md: 1rem;
  --aabha-text-lg: 1.125rem;
  --aabha-text-xl: clamp(1.35rem, 2vw, 1.75rem);
  --aabha-text-2xl: clamp(2rem, 4vw, 3.5rem);
  --aabha-leading-tight: 1.08;
  --aabha-leading-body: 1.6;
  --aabha-leading-reading: 1.75;

  /* Spacing follows a four-pixel base and stays intentionally generous. */
  --aabha-space-1: 0.25rem;
  --aabha-space-2: 0.5rem;
  --aabha-space-3: 0.75rem;
  --aabha-space-4: 1rem;
  --aabha-space-5: 1.25rem;
  --aabha-space-6: 1.5rem;
  --aabha-space-8: 2rem;
  --aabha-space-10: 2.5rem;
  --aabha-space-12: 3rem;
  --aabha-space-16: 4rem;
  --aabha-space-20: 5rem;
  --aabha-space-24: 6rem;

  /* Low-radius, low-shadow treatment prevents a generic boxed dashboard look. */
  --aabha-radius-sm: 2px;
  --aabha-radius-md: 4px;
  --aabha-radius-pill: 999px;
  --aabha-shadow-raised: 0 14px 38px rgb(40 26 44 / 10%);
  --aabha-shadow-focus: 0 0 0 3px rgb(172 129 71 / 32%);
  --aabha-control-height: 2.875rem;
  --aabha-touch-target: 2.75rem;
  --aabha-reading-width: 44rem;
  --aabha-page-width: min(80rem, calc(100vw - 5rem));
  --aabha-motion-fast: 160ms;
  --aabha-motion-standard: 240ms;
  --aabha-ease-standard: cubic-bezier(0.2, 0, 0, 1);

  /* Compatibility aliases while the static prototype is migrated. */
  --ink: var(--aabha-color-text);
  --ink-soft: var(--aabha-color-text-muted);
  --blue: var(--aabha-color-brand);
  --blue-deep: var(--aabha-color-brand-strong);
  --blue-mist: var(--aabha-color-surface-tinted);
  --sky: var(--aabha-color-surface-subtle);
  --cloud: var(--aabha-color-surface);
  --moss: var(--aabha-brass-700);
  --moss-mist: var(--aabha-color-surface-tinted);
  --apricot: var(--aabha-color-accent);
  --rule: var(--aabha-color-border);
  --rule-strong: var(--aabha-color-border-strong);
  --serif: var(--aabha-font-display);
  --sans: var(--aabha-font-body);
  --page: var(--aabha-page-width);
}

@media (max-width: 56.25rem) {
  :root {
    --aabha-page-width: calc(100vw - 2.5rem);
  }
}

@media (max-width: 38.75rem) {
  :root {
    --aabha-page-width: calc(100vw - 2.5rem);
    --aabha-text-lg: 1.0625rem;
    --aabha-text-xl: 1.375rem;
    --aabha-text-2xl: clamp(1.9rem, 9vw, 2.5rem);
  }
}
