/* Refined static assets also provide a native fallback before the first mouse movement. */
html[data-sport-cursor="football"] { --sport-cursor: url("assets/cursor-football-v25.svg"); }
html[data-sport-cursor="handball"] { --sport-cursor: url("assets/cursor-handball-v25.svg"); }
html[data-sport-cursor="tennis"] { --sport-cursor: url("assets/cursor-tennis-v25.svg"); }
html[data-sport-cursor="basketball"] { --sport-cursor: url("assets/cursor-basketball-v25.svg"); }
html[data-sport-cursor] body,
html[data-sport-cursor] body * { cursor: var(--sport-cursor) 16 16, auto; }
html[data-sport-cursor] :is(a, button, summary, select, label, [role="button"]),
html[data-sport-cursor] :is(a, button, summary, select, label, [role="button"]) * { cursor: var(--sport-cursor) 16 16, pointer; }
html[data-sport-cursor-overlay] body,
html[data-sport-cursor-overlay] body * { cursor: none; }
html[data-sport-cursor-overlay] :is(a, button, summary, select, label, [role="button"]),
html[data-sport-cursor-overlay] :is(a, button, summary, select, label, [role="button"]) * { cursor: none; }
html[data-sport-cursor]:not([data-sport-cursor-overlay]) body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]), textarea, [contenteditable]:not([contenteditable="false"])),
html[data-sport-cursor]:not([data-sport-cursor-overlay]) body [contenteditable]:not([contenteditable="false"]) * { cursor: text; }
html[data-sport-cursor] body :is(:disabled, [aria-disabled="true"]),
html[data-sport-cursor] body :is(:disabled, [aria-disabled="true"]) * { cursor: not-allowed; }
.sport-cursor {
  position: fixed;
  inset: 0 auto auto 0;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: visible;
  pointer-events: none !important;
  user-select: none;
  z-index: 2147483647;
  visibility: hidden;
  contain: layout style;
}
.sport-cursor::backdrop { background: transparent; pointer-events: none; }
.sport-cursor[data-visible="true"] { visibility: visible; }
.sport-cursor-ball {
  display: block;
  width: 32px;
  height: 32px;
  transform: scale(1);
  transition: transform 140ms ease;
  filter: drop-shadow(0 2px 2px rgba(4, 29, 40, .2));
  pointer-events: none;
}
.sport-cursor[data-hover="true"] .sport-cursor-ball { transform: scale(1.08); }
.sport-cursor[data-pressed="true"] .sport-cursor-ball { transform: scale(.9); }
.sport-cursor-ball img {
  position: absolute;
  inset: 0;
  width: 32px;
  height: 32px;
  display: none;
  pointer-events: none;
  animation: sport-ball-clockwise 5s linear infinite;
  animation-play-state: paused;
  transform-origin: 50% 50%;
}
.sport-cursor[data-ball="football"] img[data-ball="football"],
.sport-cursor[data-ball="handball"] img[data-ball="handball"],
.sport-cursor[data-ball="tennis"] img[data-ball="tennis"],
.sport-cursor[data-ball="basketball"] img[data-ball="basketball"] { display: block; }
.sport-cursor[data-visible="true"][data-spinning="true"] img { animation-play-state: running; }
@keyframes sport-ball-clockwise { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .sport-cursor-ball { transition: none; }
  .sport-cursor-ball img { animation: none; }
}
