*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; }
html, body { margin: 0; width: 100%; min-height: 100%; }
body { font-size: var(--font-body); }
button, input, select, textarea { font: inherit; }
button, [role="button"], input, select { min-height: var(--touch); }
button, [role="button"] { min-width: var(--touch); }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
a { color: inherit; }
img, svg { max-width: 100%; }
:focus-visible { outline: 3px solid rgba(91,114,242,.55); outline-offset: 3px; }
.skip-link { position: fixed; z-index: 500; top: -100px; left: 12px; padding: 10px 14px; border-radius: 10px; background: #fff; color: #111; text-decoration: none; }
.skip-link:focus { top: 12px; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.app-loading { padding: 24px; color: var(--muted); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
