/* Native cursors stay responsive, including inside dialogs and over the canvas.
   Hotspots sit on the fingertip (point) and palm (open/grip). */
@media (any-pointer: fine) {
  :root {
    --gnome-point: url("assets/cursors/gnome-point.svg") 5 5, pointer;
    --gnome-open: url("assets/cursors/gnome-open.svg") 23 24, grab;
    --gnome-grip: url("assets/cursors/gnome-grip.svg") 23 24, grabbing;
  }
  body, body * { cursor: var(--gnome-point) !important; }
  #loadout-screen :is(.tray-charm:not(.unidentified-charm), .packed-charm, .hat-choice, #hat-slot:not(:has(.hat-empty)), [data-emerald-stack]):not(:disabled):not([aria-disabled="true"]),
  .fortune-dialog button.fortune-offering:not(:disabled),
  .trade-charm:not(:disabled) { cursor: var(--gnome-open) !important; }
  /* Respect editing and unavailable controls while nothing is being carried. */
  body :is(input:not([type]), input[type="text"], input[type="number"], input[type="search"], textarea, [contenteditable="true"]) { cursor: text !important; }
  body :is(button:disabled, [aria-disabled="true"], .tower-orbit.locked) { cursor: not-allowed !important; }
  body:has(:is(#pack-drag-preview, #hat-drag-preview, #emerald-cursor):not([hidden])),
  body:has(:is(#pack-drag-preview, #hat-drag-preview, #emerald-cursor):not([hidden])) * { cursor: var(--gnome-grip) !important; }
}
