/** Mouse tracker */
#mouse-tracker {
  position: fixed;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  background: #ffffff;
  mix-blend-mode: difference;
  pointer-events: none;
  opacity: 0;
  z-index: 99999;
  transform: translate3d(-50%, -50%, 0);
  transition: opacity 0.2s ease, width 0.2s ease, height 0.2s ease;
  will-change: transform, opacity, width, height;
}

/** Visible state */
#mouse-tracker.is-visible {
  opacity: 1;
}

/** Optional hover state on interactive elements */
#mouse-tracker.is-hover {
  width: 36px;
  height: 36px;
}

/** Hide native cursor on desktop */
html.has-mouse-tracker,
html.has-mouse-tracker body,
html.has-mouse-tracker a,
html.has-mouse-tracker button,
html.has-mouse-tracker [role="button"],
html.has-mouse-tracker input[type="submit"],
html.has-mouse-tracker input[type="button"],
html.has-mouse-tracker .wp-block-button__link,
html.has-mouse-tracker .elementor-button,
html.has-mouse-tracker .fusion-button,
html.has-mouse-tracker .et_pb_button,
html.has-mouse-tracker .woocommerce a.button,
html.has-mouse-tracker .woocommerce button.button,
html.has-mouse-tracker .woocommerce input.button {
  cursor: none !important;
}

/** Disable effect on touch devices */
@media (hover: none), (pointer: coarse) {
  #mouse-tracker {
    display: none !important;
  }

  html.has-mouse-tracker,
  html.has-mouse-tracker body,
  html.has-mouse-tracker a,
  html.has-mouse-tracker button,
  html.has-mouse-tracker [role="button"],
  html.has-mouse-tracker input,
  html.has-mouse-tracker textarea,
  html.has-mouse-tracker select {
    cursor: auto !important;
  }
}