.tb-game-cursor {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 2147483647;
  width: 54px;
  height: 54px;
  pointer-events: none;
  user-select: none;
  opacity: 0;
  contain: layout style;
  will-change: transform;
}

.tb-game-cursor[data-visible="true"] { opacity: 1; }
.tb-game-cursor, .tb-game-cursor * { pointer-events: none !important; }
/* Rendering internals must never become visible through a page's canvas rules. */
.tb-game-cursor canvas, .tb-game-cursor [hidden] { display: none !important; }
.tb-game-cursor-sprite { width: 100%; height: 100%; transform-origin: 27.75px 4.5px; transform: rotate(-6deg); }
.tb-game-cursor-sprite img { position: absolute; inset: 0; width: 54px; height: 54px; max-width: none; opacity: 0; }
.tb-game-cursor[data-tone="light"] img[data-tone="light"],
.tb-game-cursor[data-tone="dark"] img[data-tone="dark"],
.tb-game-cursor[data-tone="dual-soft"] img[data-tone="dual-soft"],
.tb-game-cursor[data-tone="dual-balanced"] img[data-tone="dual-balanced"],
.tb-game-cursor[data-tone="dual-strong"] img[data-tone="dual-strong"] { opacity: 1; }

@media (forced-colors: active) {
  .tb-game-cursor { display: none; }
}

/* Native cursor: the hotspot follows the raised fingertip in the 48px asset. */
@media (any-pointer: fine) {
  html, body, body * {
    cursor: url("/cursor.png") 25 2, auto !important;
  }

  a[href], button, [role="button"], summary,
  input[type="button"], input[type="submit"], input[type="reset"] {
    cursor: url("/cursor.png") 25 2, pointer !important;
  }

  html[data-custom-cursor="true"], html[data-custom-cursor="true"] * {
    cursor: none !important;
  }
}

@media (forced-colors: active) {
  html[data-custom-cursor="true"], html[data-custom-cursor="true"] * {
    cursor: auto !important;
  }
}
