:root {
  --ivory: #faf6ec;
  --ivory-deep: #f3ebd8;
  --charcoal: #2e2a22;
  --bush: #8a6a1f;
  --bush-deep: #2e2a22;
  --gold: #d9a62e;
  --rust: #2e2a22;
  --ink: #2e2a22;
  --ink-soft: #4a4636;
  --muted: #6b664e;
  --muted-2: #9c9576;
  --muted-on-dark: #c9c2a8;
  --muted-on-dark-2: #8a8467;
  --hairline-dark: #45402f;
  --timeline-line: #ddd3b6;
  --card-bg: #f5efdd;
}

* { box-sizing: border-box; }

html, body {
  margin: 0; padding: 0;
  max-width: 100%;
  overflow-x: hidden;
  background: var(--ivory);
  color: var(--ink);
  font-family: 'Libre Franklin', -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .display {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  letter-spacing: 0.005em;
}

.wrap { max-width: 980px; margin: 0 auto; padding: 0 28px; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  background: var(--gold);
  color: var(--charcoal);
  text-decoration: none;
  border: none;
  cursor: pointer;
  padding: 12px 32px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
  font-family: 'Libre Franklin', -apple-system, sans-serif;
  letter-spacing: 0.01em;
  transition: background 0.2s ease, transform 0.15s ease;
}
.btn:hover { background: #c6952a; }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: 0.6; cursor: default; }

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  text-decoration: none;
  font-size: 0.92rem;
}
.back-link:hover { color: var(--ink); }

footer {
  padding: 30px 28px 36px;
  text-align: center;
  color: var(--muted-on-dark);
  font-size: 0.88rem;
  background: var(--charcoal);
  border-top: 1px solid var(--hairline-dark);
}

@media (max-width: 640px) {
  .wrap { padding: 0 20px; }
  footer { font-size: 0.95rem; }
}
