/* Reset, typography, focus. */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  font-family: var(--font); font-size: var(--fs-14); line-height: 1.45; color: var(--c-ink);
  background: var(--c-bg); overflow: hidden; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, p { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; }
a { color: var(--c-brand-600); }
img { max-width: 100%; }
code, kbd, .mono { font-family: var(--mono); font-size: .92em; }
kbd {
  display: inline-block; padding: 0 5px; min-width: 18px; text-align: center; border: 1px solid var(--c-line-2);
  border-bottom-width: 2px; border-radius: 4px; background: var(--c-surface); color: var(--c-ink-2); font-size: var(--fs-11); line-height: 17px;
}
[hidden] { display: none !important; }

/* One visible focus style everywhere (keyboard only). */
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; border-radius: 4px; }
.map :focus-visible { outline-offset: -2px; }

.skip-link { position: absolute; left: -999px; top: 8px; z-index: 3000; background: var(--c-surface); padding: 8px 12px; border-radius: var(--r-1); box-shadow: var(--sh-2); }
.skip-link:focus { left: 8px; }

.muted { color: var(--c-muted); }
.small { font-size: var(--fs-12); }
.pad { padding: var(--s-3); }

.i { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; }
.i-sm { width: 15px; height: 15px; vertical-align: -2px; }
.i-good { color: var(--c-good); }
.i-danger { color: var(--c-danger); }
.i-muted { color: var(--c-faint); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

.noscript { padding: 24px; }
