/* Native image cursors keep the exact click point, without a JS-following layer.
   Touchscreens and forced-color accessibility modes keep their system cursors. */
@media (hover: hover) and (pointer: fine) and (forced-colors: none) {
  :where(html, body, body *) {
    cursor: url('/images/cursors/arcade-hand.png?v=1') 13 2, default !important;
  }
  :is(a[href], button, summary, select, label[for], [role="button"], input[type="checkbox"], input[type="radio"], input[type="range"]),
  :is(a[href], button, summary, label[for], [role="button"]) * {
    cursor: url('/images/cursors/arcade-hand-select.png?v=1') 13 2, pointer !important;
  }
  :is(input:not([type]), input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="number"], input[type="url"], input[type="tel"], textarea, [contenteditable="true"]),
  [contenteditable="true"] * {
    cursor: text !important;
  }
  :is(button:disabled, input:disabled, select:disabled, textarea:disabled, [aria-disabled="true"]),
  :is(button:disabled, [aria-disabled="true"]) * {
    cursor: not-allowed !important;
  }
}
/* Idle pointer (public/js/cursor-idle.js): hidden until the mouse moves again. */
html.is-cursor-idle, html.is-cursor-idle * { cursor: none !important; }
