/* ── Design Tokens ── */
:root {
  /* Core palette */
  --navy: #0f1134;
  --navy-deep: #0a0b22;
  --navy2: #171a4d;
  --panel: #181a42;
  --panel2: #1f2150;
  --gold: #d4a84b;
  --gold-hover: #dcb35a;
  --gold-text: #a97f2c;
  --cream: #fdf6ec;
  --canvas: #f6efe1;
  --green: #5fbf8a;
  --phase-card: #161845;
  --card: #171a4a;
  --panel-deep: #0b0d28;

  /* Semantic */
  --muted: rgba(253,246,236,.52);
  --muted2: rgba(253,246,236,.38);
  --mut: rgba(253,246,236,.55);
  --faint: rgba(253,246,236,.32);
  --line: rgba(253,246,236,.13);
  --line2: rgba(253,246,236,.09);
  --line-light: rgba(15,17,52,.12);
  --gline: rgba(212,168,75,.3);
  --navy-80: rgba(15,17,52,.80);
  --navy-55: rgba(15,17,52,.55);
  --navy-30: rgba(15,17,52,.30);
  --navy-12: rgba(15,17,52,.12);
  --gold-15: rgba(212,168,75,.15);
  --gold-40: rgba(212,168,75,.40);
  --measure: 660px;

  /* Typography */
  --font-sans: 'DM Sans', system-ui, sans-serif;
  --font-serif: 'DM Serif Display', Georgia, serif;
  --fs-display: clamp(44px, 11vw, 140px);
  --fs-h1: clamp(30px, 7vw, 48px);
  --fs-h2: clamp(26px, 5.5vw, 40px);
  --fs-h3: clamp(22px, 4.5vw, 36px);
  --course-serif: 'Fraunces', Georgia, serif;
  --course-sans: 'Inter', system-ui, sans-serif;
}

/* ── Reset ── */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
}

body {
  font-family: var(--font-sans);
  font-weight: 400;
  color: var(--cream);
  background: var(--navy);
  line-height: 1.5;
  min-height: 100vh;
}

a {
  color: var(--gold);
  text-decoration: none;
}
a:hover {
  color: #e6c479;
}

button {
  font-family: var(--font-sans);
  cursor: pointer;
  border: none;
  background: none;
}

input, textarea {
  font-family: var(--font-sans);
  border: none;
  outline: none;
}

.serif {
  font-family: var(--font-serif);
  font-weight: 400;
}

/* ── Shared utilities ── */
.eyebrow {
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 600;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
}

@media (max-width: 560px) {
  #app { padding-bottom: 56px; }
}
