/** Pixel Pier cursor system: native CSS cursors have no tracking loop or overlay.
 * Hotspots align to the arrow tip / index finger. Standard fallbacks remain usable
 * when image cursors are unavailable. Embedded game documents are not styled here. */
@media (hover:hover) and (pointer:fine) {
  html, body { cursor:url('/assets/brand/cursors/arrow.svg') 3 2, default; }
  /* Include descendants so icons and labels cannot override the control cursor. */
  :is(a[href],button,summary,select,[role="button"],label[for]),
  :is(a[href],button,summary,select,[role="button"],label[for]) * {
    cursor:url('/assets/brand/cursors/hand.svg') 12 2, pointer;
  }
  /* Preserve editing, disabled and embedded-play affordances. */
  :is(input:not([type]),input[type="text"],input[type="search"],input[type="email"],input[type="url"],input[type="tel"],input[type="password"],input[type="number"],textarea,[contenteditable="true"]) { cursor:text; }
  :is(input[type="checkbox"],input[type="radio"],input[type="range"]) { cursor:url('/assets/brand/cursors/hand.svg') 12 2, pointer; }
  :is(button:disabled,input:disabled,select:disabled,textarea:disabled,[aria-disabled="true"]),
  :is(button:disabled,[aria-disabled="true"]) * { cursor:not-allowed; }
  iframe { cursor:auto; }
}
/* Respect system contrast preferences with the user's native cursors. */
@media (forced-colors:active) {
  html, body, body * { cursor:revert; }
}
