/* Keep image-set() inside @supports: an unparsable var gives `auto`, with no fallback. */
:root {
  --cursor-default: url("/static/sprites/ui/cursors/cursor-default.9adc4f75317f.png") 3 2, default;
  --cursor-pointer: url("/static/sprites/ui/cursors/cursor-pointer.4275a0b40fa6.png") 3 2, pointer;
  --cursor-deny: url("/static/sprites/ui/cursors/cursor-deny.741f6062e527.png") 3 2, not-allowed;
  --cursor-pan: url("/static/sprites/ui/cursors/cursor-pan.444dd430da93.png") 16 16, move;
}

@supports (cursor: image-set(url("/static/sprites/ui/cursors/cursor-default.9adc4f75317f.png") 1x) 0 0, auto) {
  :root {
    --cursor-default: image-set(url("/static/sprites/ui/cursors/cursor-default.9adc4f75317f.png") 1x,
      url("/static/sprites/ui/cursors/cursor-default-2x.71cdb0cfa247.png") 2x) 3 2, default;
    --cursor-pointer: image-set(url("/static/sprites/ui/cursors/cursor-pointer.4275a0b40fa6.png") 1x,
      url("/static/sprites/ui/cursors/cursor-pointer-2x.8e996ef75815.png") 2x) 3 2, pointer;
    --cursor-deny: image-set(url("/static/sprites/ui/cursors/cursor-deny.741f6062e527.png") 1x,
      url("/static/sprites/ui/cursors/cursor-deny-2x.caf7b0eb1c07.png") 2x) 3 2, not-allowed;
    --cursor-pan: image-set(url("/static/sprites/ui/cursors/cursor-pan.444dd430da93.png") 1x,
      url("/static/sprites/ui/cursors/cursor-pan-2x.7b446b945a14.png") 2x) 16 16, move;
  }
}

html { cursor: var(--cursor-default); }

a[href], button, summary, select, label[for], [role="button"],
input[type="checkbox"], input[type="radio"], input[type="range"],
input[type="submit"], input[type="button"] {
  cursor: var(--cursor-pointer);
}

:disabled, [aria-disabled="true"] { cursor: var(--cursor-deny); }

input[type="text"], input[type="email"], input[type="password"],
input[type="search"], input[type="number"], textarea, .selectable {
  cursor: text;
}
