/* Accessibility layer of the in-game interface (PC): keyboard focus ring, reinforced contrast, reduced motion. Loaded after the Esprit sheets; driven by ui/uiPrefs.js (html[data-contrast], html[data-motion])
   and by the system setting (prefers-reduced-motion). The only !important of the interface live here: they are meant to win over every component animation. Doc: docs/decisions/ui-bible.md §6. */
/* Keyboard focus: visible on every control, whatever the surface behind it. */
html :is(button, [role="button"], input, select, textarea, a[href], [tabindex]):focus-visible { outline: 2px solid var(--accent-hi); outline-offset: 1px; }
html .gfw :is(button, input, select, textarea, [tabindex]):focus-visible { outline-color: var(--gf-frame); }
/* Reinforced contrast: lighter text on the dark plates, darker text on the paper, stronger rims. The functional colours (HP / MP / XP, rarities) do not change. */
html[data-contrast="high"] { --text: #ffffff; --muted: #e3e1f0; --edge: #8e88b3; --edge-hi: #d8d5ec; --gf-ink: #14131a; --gf-frame: #3c3858; --gf-frame-hi: #b5b0d6; --gf-tile-edge: #5d587f; }
html[data-contrast="high"] .mute, html[data-contrast="high"] .gfw .mute { color: #433f5a; }
html[data-contrast="high"] .gfw-tab { color: #14131a; border-color: #5d587f; }
html[data-contrast="high"] #tooltip, html[data-contrast="high"] .ctxmenu { border-color: #d8d5ec; }
/* Reduced motion: no pulsing, sliding or fading in the HUD and the windows (the 3D scene is not touched). Auto follows the system. */
html[data-motion="reduced"] *, html[data-motion="reduced"] *::before, html[data-motion="reduced"] *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
@media (prefers-reduced-motion: reduce) {
  html[data-motion="auto"] *, html[data-motion="auto"] *::before, html[data-motion="auto"] *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
