/* Keyboard, zoom, motion, and high-contrast support across public/app pages. */
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 10000; padding: 12px 18px; background: #fff; color: #142c35; border: 2px solid #142c35; border-radius: 6px; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--world-accent, #ffd166); outline-offset: 3px; box-shadow: 0 0 0 5px var(--bg, #160f2f); }
#appView #appTitle:focus-visible { outline: 3px solid var(--world-accent); outline-offset: 3px; }
html { scroll-padding-top: 100px; scroll-padding-bottom: 100px; }
:where(button, a, input, select, textarea, summary) { scroll-margin-block: 100px; }
.legal-nav a, .landing-legal-footer a, .app-legal-footer a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 4px; }
.contact-form fieldset { min-width: 0; border: 1px solid var(--line); border-radius: 8px; padding: 16px; }
.contact-form fieldset label { display: grid; gap: 6px; margin-top: 14px; }
.contact-form [hidden] { display: none !important; }
.legal-document p a { text-decoration: underline; text-underline-offset: .2em; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline-color: Highlight; box-shadow: none; }
  button, input, select, textarea, summary { border: 1px solid ButtonText !important; }
  .level-track { border: 1px solid CanvasText; }
  .level-fill { background: Highlight !important; forced-color-adjust: none; }
}
