:root {
  --msm-navy: #071b33;
  --msm-blue-dark: #0b3158;
  --msm-blue: #1769a8;
  --msm-sky: #78bce8;
  --msm-gold: #c9a45c;
  --msm-gold-light: #e4c98e;
  --msm-cream: #f7f4ee;
  --msm-white: #ffffff;
  --msm-gray: #59616b;
  --msm-black: #071019;

  --color-primary: var(--msm-navy);
  --color-secondary: var(--msm-blue-dark);
  --color-accent: var(--msm-gold);
  --color-background: var(--msm-cream);
  --color-surface: var(--msm-white);
  --color-text: var(--msm-black);
  --color-text-muted: var(--msm-gray);
  --color-border: rgb(7 27 51 / 14%);
  --color-focus: var(--msm-blue);

  --theme-primary: var(--msm-navy);
  --theme-secondary: var(--msm-blue-dark);
  --theme-accent: var(--msm-gold);
  --theme-background: var(--msm-cream);
  --theme-surface: var(--msm-white);
  --theme-text: var(--msm-navy);

  --font-editorial: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-interface: "Sora", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --font-size-h1: clamp(2.375rem, 7vw, 4.5rem);
  --font-size-h2: clamp(1.875rem, 5vw, 3.25rem);
  --font-size-h3: clamp(1.5rem, 3vw, 2.125rem);
  --font-size-body: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --line-height-tight: 1.08;
  --line-height-heading: 1.18;
  --line-height-body: 1.65;

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

  --container-max: 1280px;
  --container-text: 760px;
  --container-gutter: var(--space-4);

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 16px;

  --shadow-soft: 0 10px 35px rgb(7 27 51 / 8%);
  --shadow-focus: 0 0 0 4px rgb(120 188 232 / 40%);

  --transition-fast: 160ms ease;
  --transition-base: 240ms ease;
  --header-height: 76px;
}

.msm-theme {
  --color-primary: var(--theme-primary);
  --color-secondary: var(--theme-secondary);
  --color-accent: var(--theme-accent);
  --color-background: var(--theme-background);
  --color-surface: var(--theme-surface);
  --color-text: var(--theme-text);
}
