:root {
  color-scheme: light;

  /* Type */
  --font-display: "Fredoka", "Arial Rounded MT Bold", ui-rounded, system-ui, sans-serif;
  --font-body: "Nunito Sans", "Avenir Next", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Extracted brand palette */
  --cream-50: #fff9e8;
  --cream-100: #fef4da;
  --cream-200: #fdefc9;
  --cream-300: #fce8bc;
  --cream-400: #f5d99b;
  --ink-900: #0c1f39;
  --ink-700: #29485a;
  --navy-900: #012d66;
  --navy-800: #073d86;
  --blue-600: #1263c7;
  --red-700: #bf0c06;
  --red-600: #d81e0e;
  --red-500: #e62913;
  --yellow-500: #fdcb2d;
  --yellow-600: #fab014;
  --green-600: #3c8b38;
  --teal-600: #0a958c;
  --pink-500: #ee3d72;
  --purple-500: #7448ac;

  /* Semantic colour */
  --canvas: var(--cream-200);
  --canvas-deep: var(--cream-300);
  --surface: rgba(255, 249, 232, 0.82);
  --surface-strong: var(--cream-50);
  --surface-warm: rgba(255, 241, 201, 0.9);
  --text: var(--ink-900);
  --text-muted: #36506a;
  --brand-primary: var(--red-600);
  --brand-primary-hover: var(--red-700);
  --brand-secondary: var(--navy-800);
  --brand-secondary-hover: var(--navy-900);
  --accent: var(--yellow-500);
  --border: rgba(187, 124, 22, 0.25);
  --border-strong: rgba(187, 124, 22, 0.42);
  --focus-ring: #1671d8;

  /* Space */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-28: 7rem;

  /* Shape */
  --radius-sm: 0.75rem;
  --radius-md: 1.125rem;
  --radius-lg: 1.75rem;
  --radius-xl: 2.5rem;
  --radius-pill: 999px;

  /* Depth */
  --shadow-sm: 0 8px 22px rgba(89, 50, 3, 0.09);
  --shadow-md: 0 18px 44px rgba(89, 50, 3, 0.14);
  --shadow-brand: 0 8px 0 #9f130b, 0 16px 28px rgba(85, 24, 4, 0.18);
  --shadow-blue: 0 8px 0 #012d66, 0 16px 28px rgba(1, 45, 102, 0.2);

  /* Layout */
  --container: 74rem;
  --gutter: clamp(1.15rem, 4vw, 2.25rem);
  --section-space: clamp(4.5rem, 9vw, 7rem);

  /* Motion */
  --ease-out: cubic-bezier(0.2, 0.75, 0.2, 1);
  --duration-fast: 160ms;
  --duration-normal: 280ms;
}
