/* Accessibility stays present even when the optional reset is disabled. */
.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
  height: 1px; width: 1px; margin: -1px; overflow: hidden;
  padding: 0; position: absolute; white-space: nowrap;
}
.skip-link:focus {
  clip: auto; clip-path: none; width: auto; height: auto;
  inset-block-start: 1rem; inset-inline-start: 1rem; margin: 0;
  padding: 0.75rem 1rem; background: Canvas; color: CanvasText;
  z-index: 100000; white-space: normal;
}
:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 2px solid currentColor; outline-offset: 3px;
}

/* Opt-in anchor targets: the project supplies its real header offset. */
.nt-anchor {
  scroll-margin-block-start: var(--nt-anchor-offset, 0px);
}

/* Progressive enhancement: only the helper may opt a node into motion.
   Apply nt-motion to the animated node, never to a hidden dialog or layout shell. */
.nt-motion:not([data-nt-motion-active]) {
  opacity: 1 !important; visibility: visible !important;
  transform: none !important; translate: none !important;
  rotate: none !important; scale: none !important;
  animation: none !important; transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .nt-motion {
    opacity: 1 !important; visibility: visible !important;
    transform: none !important; translate: none !important;
    rotate: none !important; scale: none !important;
    animation: none !important; transition: none !important;
  }
}
