/* Native CSS cursor. No overlay, pointer lock, tracking loop or OS changes.
   Game documents contain only the game; every input retains a native caret.
   The system cursor remains the fallback on coarse pointers / forced colours. */
@media (hover: hover) and (pointer: fine) and (forced-colors: none) {
  html.r71-game-cursor body,
  html.r71-game-cursor body * {
    cursor: url("./ui/r71-cursor-default.svg") 3 2, auto;
  }
  html.r71-game-cursor body :is(button, a[href], select, summary, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], input[type="checkbox"], input[type="radio"], input[type="range"], label[for]),
  html.r71-game-cursor body :is(button, a[href], [role="button"]) * {
    cursor: url("./ui/r71-cursor-action.svg") 3 2, pointer;
  }
  html.r71-game-cursor body :is(input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]), textarea, [contenteditable]:not([contenteditable="false"])),
  html.r71-game-cursor body [contenteditable]:not([contenteditable="false"]) * {
    cursor: text;
  }
  html.r71-game-cursor body :is([disabled], [aria-disabled="true"]),
  html.r71-game-cursor body :is([disabled], [aria-disabled="true"]) * {
    cursor: not-allowed;
  }
}
