.pet-ball-cursor {
  position: fixed;
  z-index: 2147483647;
  top: 0;
  left: 0;
  width: clamp(42px, 2.7vw, 54px);
  height: clamp(42px, 2.7vw, 54px);
  opacity: 0;
  pointer-events: none;
  transform: translate3d(-120px, -120px, 0) translate(-50%, -50%);
  transition: opacity 140ms ease;
  will-change: transform;
  background: transparent;
  border: 0;
  box-shadow: none;
  outline: 0;
}

.pet-ball-cursor.is-visible {
  opacity: 1;
}

.pet-ball-cursor__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: transparent;
  border: 0;
  box-shadow: none;
  outline: 0;
  clip-path: circle(50% at 50% 50%);
  transform: rotate(var(--pet-ball-rotation, 0deg));
  transform-origin: 50% 50%;
  will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
  html.has-pet-ball-cursor,
  html.has-pet-ball-cursor body,
  html.has-pet-ball-cursor a,
  html.has-pet-ball-cursor button,
  html.has-pet-ball-cursor input,
  html.has-pet-ball-cursor textarea,
  html.has-pet-ball-cursor select,
  html.has-pet-ball-cursor label,
  html.has-pet-ball-cursor [role="button"] {
    cursor: none !important;
  }
}

@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce), (forced-colors: active) {
  .pet-ball-cursor {
    display: none !important;
  }
}
