html[data-a11y-font-size="small"] {
  font-size: 93.75%;
}

html[data-a11y-font-size="medium"] {
  font-size: 100%;
}

html[data-a11y-font-size="large"] {
  font-size: 112.5%;
}

html[data-a11y-line-spacing="wide"] :where(p, li, dd, dt, figcaption, label, legend, blockquote) {
  line-height: 1.8 !important;
}

html.nh48-a11y-text-spacing-wide :where(p, li, dd, dt, span, a, button, label) {
  letter-spacing: 0.03em !important;
  word-spacing: 0.08em !important;
}

html.nh48-a11y-high-contrast body {
  background: #000000 !important;
  color: #ffffff !important;
}

html.nh48-a11y-high-contrast :where(main, section, article, aside, header, footer, nav, div) {
  border-color: #ffffff !important;
}

html.nh48-a11y-high-contrast :where(h1, h2, h3, h4, h5, h6, p, li, span, label, legend, th, td, dt, dd) {
  color: #ffffff !important;
}

html.nh48-a11y-high-contrast :where(a, button, input, select, textarea, summary) {
  color: #ffffff !important;
  background: #000000 !important;
  border-color: #ffffff !important;
  text-decoration: underline !important;
}

html.nh48-a11y-high-contrast :where(a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible) {
  outline: 3px solid #ffff00 !important;
  outline-offset: 2px !important;
}

html.nh48-a11y-dyslexia-font :where(body, button, input, select, textarea, .site-nav, .site-nav *) {
  font-family: "OpenDyslexic", "Atkinson Hyperlegible", "Verdana", "Tahoma", sans-serif !important;
}

html.nh48-a11y-dark-mode {
  color-scheme: dark;
}

html.nh48-a11y-dark-mode body {
  background: #080d16 !important;
  color: #eef2ff !important;
}

html.nh48-a11y-dark-mode :where(a) {
  color: #9ad5ff !important;
}

html[data-a11y-color-filter="none"] body {
  filter: none;
}

html[data-a11y-color-filter="protanopia"] body {
  filter: url(#nh48-a11y-filter-protanopia);
}

html[data-a11y-color-filter="deuteranopia"] body {
  filter: url(#nh48-a11y-filter-deuteranopia);
}

html[data-a11y-color-filter="tritanopia"] body {
  filter: url(#nh48-a11y-filter-tritanopia);
}

html[data-a11y-color-filter="grayscale"] body {
  filter: grayscale(100%) contrast(1.06);
}

html.nh48-a11y-underline-links :where(a) {
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 0.15em !important;
}

html.nh48-a11y-hide-bg-images * {
  background-image: none !important;
}

html.nh48-a11y-disable-animations *,
html.nh48-a11y-disable-animations *::before,
html.nh48-a11y-disable-animations *::after {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}

html.nh48-a11y-tooltips-disabled :where([role="tooltip"], .ui-tooltip, .tooltip, .site-tooltip) {
  display: none !important;
}

html.nh48-a11y-large-cursor,
html.nh48-a11y-large-cursor * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M3 2l10 22 2-8 8-2z' fill='%23ffffff' stroke='%23000000' stroke-width='2'/%3E%3C/svg%3E") 4 4, auto !important;
}

#nh48-a11y-keyboard-hints {
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 12000;
  max-width: min(92vw, 340px);
  border: 1px solid rgba(148, 163, 184, 0.6);
  border-radius: 12px;
  background: rgba(10, 16, 28, 0.96);
  color: #f8fafc;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.42);
  padding: 12px;
  font-size: 0.92rem;
  line-height: 1.45;
}

#nh48-a11y-keyboard-hints h2 {
  margin: 0 0 8px;
  font-size: 0.96rem;
  color: #86efac;
}

#nh48-a11y-keyboard-hints ul {
  margin: 0;
  padding-left: 18px;
}

#nh48-a11y-keyboard-hints button {
  margin-top: 10px;
  min-height: 38px;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, 0.58);
  background: rgba(15, 23, 42, 0.8);
  color: #ffffff;
  padding: 7px 10px;
  cursor: pointer;
}

@media (max-width: 900px) {
  #nh48-a11y-keyboard-hints {
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    max-width: none;
  }
}
