:root {
  --font-serif: var(--font-display);
  --font-sans: var(--font-body);

  --bg-main: #FFFFFF;
  --bg-subtle: #F8FAFC;
  --bg-dark: #0B0D10;
  --bg-card: #FFFFFF;
  --bg-card-dark: #0F1115;

  --text-main: #0F172A;
  --text-muted: #64748B;
  --text-dim: #94A3B8;

  --text-dark-main: #FFFFFF;
  --text-dark-muted: #94A3B8;
  --text-dark-dim: #64748B;

  --brand-black: #0F172A;
  --brand-blue: #2563EB;
  --brand-purple: #7C3AED;

  --border-light: #E5E7EB;
  --border-dark: rgba(255, 255, 255, 0.08);

  --shadow-paper: 0 2px 6px rgba(0, 0, 0, 0.03);
  --shadow-paper-hover: 0 20px 40px rgba(0, 0, 0, 0.05);

  --radius-pill: 999px;
  --radius-card: 24px;

  /* The extended brand palette (Brand Identity System v3.1, section 05), for
     analytical surfaces and signature moments. Blue carries intelligence;
     gold signs the moment and is used sparingly. */
  --vest-navy: #071B3A;
  --signal-blue: #0B63F6;
  --sky-blue: #75C7F4;
  --pale-blue: #EAF6FF;
  --cloud: #F7FBFF;
  --vest-gold: #D69A2D;
  --gold-mist: #FFF6E6;
  --mist-blue: #D7E7F5;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text-main);
  font-family: var(--font-sans);
  background: var(--bg-main);
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
button, input { font: inherit; }
.hidden { display: none !important; }
a { color: inherit; text-decoration: none; }
