:root {
  /* Core brand palette — change these first when evolving the brand. */
  --color-brand-navy: #202845;
  --color-brand-navy-raised: #2b3558;
  --color-brand-gold: #d2b171;
  --color-brand-gold-soft: #d5b87f;
  --color-brand-gold-dark: #b58f47;
  --color-brand-copper: #c45e42;
  --color-brand-copper-dark: #9e402b;

  /* Neutral palette. */
  --color-ink: #24283a;
  --color-text-muted: #626779;
  --color-cream: #f7f3ea;
  --color-cream-deep: #ede7da;
  --color-paper: #fffdf8;
  --color-white: #ffffff;

  /* Semantic text and surfaces. */
  --color-page: var(--color-cream);
  --color-section-subtle: var(--color-cream-deep);
  --color-surface: var(--color-paper);
  --color-text: var(--color-ink);
  --color-accent: var(--color-brand-copper);
  --color-accent-strong: var(--color-brand-copper-dark);
  --color-highlight: var(--color-brand-gold);
  --color-highlight-soft: var(--color-brand-gold-soft);
  --color-on-dark: var(--color-white);
  --color-on-dark-body: #d3ddde;
  --color-on-dark-muted: #b8c8cb;
  --color-on-dark-soft: #aebfc2;
  --color-on-dark-label: #cad4d7;
  --color-on-dark-detail: #c6d1d3;
  --color-on-dark-footer: #c4d0d2;
  --color-on-copper: #fae7de;
  --color-preview-label: #73798b;
  --color-preview-label-on-dark: #95a4ad;

  /* Borders, translucent surfaces, and interaction states. */
  --border-default: rgb(36 40 58 / 17%);
  --border-on-dark-faint: rgb(255 255 255 / 13%);
  --border-on-dark-subtle: rgb(255 255 255 / 15%);
  --border-on-dark: rgb(255 255 255 / 20%);
  --border-on-dark-strong: rgb(255 255 255 / 24%);
  --border-on-dark-button: rgb(255 255 255 / 55%);
  --border-on-dark-button-strong: rgb(255 255 255 / 62%);
  --surface-header: rgb(32 40 69 / 94%);
  --surface-glass-dark: rgb(18 24 45 / 48%);
  --surface-hover-on-dark: rgb(255 255 255 / 3.5%);
  --surface-result-detail: rgb(248 246 240 / 88%);
  --surface-map-detail: rgb(15 21 41 / 88%);
  --shadow-map-detail: 0 20px 55px rgb(4 8 19 / 35%);

  /* Purpose-built visual treatments. */
  --gradient-hero-overlay: linear-gradient(90deg, rgb(17 23 45 / 94%) 0%, rgb(26 33 59 / 84%) 43%, rgb(26 33 59 / 38%) 72%, rgb(26 33 59 / 24%) 100%);
  --gradient-proof: linear-gradient(112deg, #171e37 0%, #222d4e 67%, #59342f 140%);
  --gradient-pm: linear-gradient(118deg, var(--color-brand-navy) 0%, var(--color-brand-navy) 58%, #273151 100%);
  --gradient-cases-overlay: linear-gradient(90deg, rgb(250 249 245 / 99%) 0%, rgb(250 249 245 / 97%) 48%, rgb(250 249 245 / 84%) 72%, rgb(250 249 245 / 72%) 100%);
  --gradient-results-overlay: linear-gradient(90deg, rgb(16 22 42 / 68%), rgb(16 22 42 / 46%));
  --gradient-results-edge: linear-gradient(90deg, transparent, rgb(15 20 38 / 28%));
  --gradient-map: radial-gradient(circle at 72% 57%, rgb(177 75 53 / 20%), transparent 26%), radial-gradient(circle at 52% 40%, rgb(67 92 133 / 28%), transparent 32%), linear-gradient(112deg, #11172d 0%, #1e2949 62%, #352331 115%);
  --gradient-map-grid: linear-gradient(rgb(255 255 255 / 8%) 1px, transparent 1px), linear-gradient(90deg, rgb(255 255 255 / 8%) 1px, transparent 1px);

  --color-property-fallback: #161b30;
  --color-footprint-fallback: #151c35;
  --result-panel-primary: rgb(20 27 50 / 89%);
  --result-panel-secondary: rgb(42 53 87 / 88%);
  --result-panel-accent: rgb(126 57 45 / 87%);
  --result-panel-neutral: rgb(52 56 74 / 90%);
  --result-panel-earth: rgb(93 68 58 / 88%);

  /* Typography. */
  --font-display: Georgia, "Times New Roman", serif;
  --font-body: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --type-hero: clamp(3.5rem, 6.2vw, 6.2rem);
  --type-section-title: clamp(2.5rem, 4.5vw, 4.25rem);
  --type-section-heading: clamp(1.3rem, 2.2vw, 2rem);
  --type-contact-heading: clamp(2.8rem, 5.3vw, 5.5rem);
  --type-label: .7rem;

  /* Layout rhythm. */
  --layout-content-max: 1180px;
  --layout-page-gutter: 48px;
  --layout-page-gutter-compact: 32px;
  --layout-header-height: 72px;
  --space-section-block: clamp(76px, 9vw, 116px);
  --space-section-block-compact: clamp(62px, 7vw, 88px);

  /* Motion. */
  --motion-fast: .2s ease;
  --motion-standard: .28s ease;
  --motion-reveal: .65s ease;
}
