/* Fonts and page chrome. Dash serves assets/ automatically with a cache-busting
   fingerprint, so edits here show up without a hard refresh. */
@import url("https://fonts.googleapis.com/css2?family=Courier+Prime:wght@400;700&family=Libre+Franklin:wght@400;500;600;700&display=swap");

body {
  margin: 0;
  background: #f5f5f2;
  color: #1c1d1f;
  font-family: "Libre Franklin", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.55;
}

/* Sticky nav must not cover a section heading after a jump */
/* The nav wraps to 2+ rows on narrower screens, so the offset follows its real
   height (set by lelabo.js) instead of a fixed guess. */
.anchor {
  scroll-margin-top: calc(var(--nav-h, 120px) + 16px);
}

html {
  scroll-behavior: smooth;
}

.nav-btn {
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.nav-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(15, 23, 42, .12);
  border-color: #55585d !important;
}

abbr[title] {
  text-decoration: underline dotted;
  cursor: help;
}

@media (max-width: 520px) {
  .nav-btn {
    font-size: .85rem !important;
    padding: 5px 12px !important;
  }
}