@font-face {
  font-family: "Transit Grotesk";
  src: url('/fonts/NHaasGroteskTXPro-55Rg.otf') format('opentype');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Transit Grotesk";
  src: url('/fonts/NHaasGroteskTXPro-65Md.otf') format('opentype');
  font-weight: 500 900;
  font-display: swap;
}
:root {
  --ink: #202923;
  --muted: #626a64;
  --paper: #f7f6f2;
  --surface: #fff;
  --line: #d4d8d0;
  --accent: #236e4d;
  --accent-hover: #174e36;
  --highlight: #deebad;
  font-family: "Transit Grotesk", Arial, sans-serif;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
* { box-sizing: border-box; }
body { margin: 0; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
[hidden] { display: none !important; }
.skip-link {
  position: fixed; top: 8px; left: 8px; z-index: 100;
  padding: 12px 18px; color: white; background: var(--ink);
  transform: translateY(-150%);
}
.skip-link:focus { transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Small, finite transitions; no motion is required to discover content. */
button, select, input, .tool-nav a, .tool-home-link, .tool-switcher summary {
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}
body button:active:not(:disabled) { transform: translateY(1px); }
body button:disabled { cursor: default; opacity: .5; }
body button.is-copied { background: #deebad !important; color: #174e36 !important; }
body button[aria-busy="true"] { cursor: progress; }
@keyframes soft-entry {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes soft-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: no-preference) {
  .landing-intro, .tool-intro { animation: soft-entry 360ms ease-out both; }
  .service-layout { animation: soft-entry 360ms 60ms ease-out both; }
  .signed-in-status { animation: soft-fade 240ms ease-out; }
  .tool-switcher[open] .tool-switcher-menu,
  .instructions-panel[open] ol,
  .map-heading.is-expanded .map-info-content,
  .map-controls.is-expanded .map-search,
  .map-controls.is-expanded .map-line-filter { animation: soft-entry 180ms ease-out; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  body button:active:not(:disabled) { transform: none; }
}
