@media (any-hover: hover) and (any-pointer: fine) and (forced-colors: none) {
  html:root {
    --fa-mmo-cursor: url("/assets/fa-cursor-v5/mmo.svg") 5 5, url("/assets/fa-cursor-v5/mmo-32.png") 3 3;
    --fa-moba-cursor: url("/assets/fa-cursor-v5/moba.svg") 5 5, url("/assets/fa-cursor-v5/moba-32.png") 3 3;
    --fa-cursor-image: var(--fa-mmo-cursor);
    --cursor-arrow: var(--fa-cursor-image), default;
    --cursor-point: var(--fa-cursor-image), pointer;
    --cursor-pointer: var(--fa-cursor-image), pointer;
  }

  html:root[data-fa-cursor-theme="moba"], .realm--arena {
    --fa-cursor-image: var(--fa-moba-cursor);
  }

  html, body, .realm--arena {
    cursor: var(--fa-cursor-image), default;
  }

  a[href], button:enabled, summary, label[for],
  [role="button"]:not([aria-disabled="true"]),
  [role="tab"]:not([aria-disabled="true"]) {
    cursor: var(--fa-cursor-image), pointer !important;
  }

  :where(#game-canvas, #world canvas):not([style*="cursor:"]),
  :where(#game-canvas, #world canvas):is([style*="cursor: default"], [style*="cursor:default"]),
  :where(#game-canvas, #world canvas)[style*="/cursors/arrow.png"] {
    cursor: var(--fa-cursor-image), default !important;
  }

  :where(#game-canvas, #world canvas):is([style*="cursor: pointer"], [style*="cursor:pointer"]),
  :where(#game-canvas, #world canvas)[style*="/cursors/gauntlet.png"] {
    cursor: var(--fa-cursor-image), pointer !important;
  }

  /* Keep the MOBA target ring and preserve the crosshair as the system fallback. */
  :where(#world canvas, #world .arena-nameplates *):is([style*="cursor: crosshair"], [style*="cursor:crosshair"]) {
    cursor: var(--fa-cursor-image), crosshair !important;
  }

  input:not([type]), input:is([type="text"], [type="email"], [type="password"], [type="search"], [type="tel"], [type="url"], [type="number"]),
  textarea, [contenteditable="true"] {
    cursor: text;
  }

  #pad-cursor {
    background-image: url("/assets/fa-cursor-v5/mmo.svg");
  }
}
