@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans-variable.woff2') format('woff2');
}
@font-face {
  font-family: 'Crimson Pro';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('../fonts/crimson-pro-variable.woff2') format('woff2');
}
@font-face {
  font-family: 'Crimson Pro';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/crimson-pro-italic-variable.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/jetbrains-mono-variable.woff2') format('woff2');
}

:root {
  --navy: #203D7C;
  --teal: #0D7E6D;
  --green: #0F7A44;
  --ink: #1C2420;
  --paper: #F2EFE4;
  --paper-dark: #121815;
}

body {
  font-family: 'Plus Jakarta Sans', -apple-system, 'Segoe UI', sans-serif;
  background: var(--paper);
  color: var(--ink);
}
[data-dark="true"] body { background: var(--paper-dark); color: #ECE7DB; }

.font-display { font-family: 'Crimson Pro', Georgia, serif; letter-spacing: -0.02em; }
.font-mono { font-family: 'JetBrains Mono', 'SFMono-Regular', monospace; }

.bg-paper { background-color: var(--paper); }
[data-dark="true"] .bg-paper { background-color: var(--paper-dark); }

.mountain-divider {
  height: 40px;
  background-image: url("data:image/svg+xml,%3Csvg width='100' height='40' viewBox='0 0 100 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40 L30 15 L50 25 L70 5 L100 40' stroke='%230D7E6D' stroke-width='1' fill='none'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-position: center;
  opacity: 0.35;
}

details summary::-webkit-details-marker { display: none; }
summary { list-style: none; cursor: pointer; }
summary:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }

.icon { width: 1.5rem; height: 1.5rem; }

@media (prefers-reduced-motion: reduce) {
  * { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
