@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html.njume-cursor-ready,
  html.njume-cursor-ready body,
  html.njume-cursor-ready a,
  html.njume-cursor-ready button,
  html.njume-cursor-ready [role="button"],
  html.njume-cursor-ready summary {
    cursor: none !important;
  }

  html.njume-cursor-ready input,
  html.njume-cursor-ready textarea,
  html.njume-cursor-ready select,
  html.njume-cursor-ready [contenteditable="true"],
  html.njume-cursor-ready .njume-native-cursor,
  html.njume-cursor-ready .njume-native-cursor * {
    cursor: auto !important;
  }

  .njume-cursor-dot,
  .njume-cursor-ring {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2147483646;
    pointer-events: none;
    border-radius: 50%;
    opacity: 0;
    will-change: transform, opacity;
  }

  .njume-cursor-dot {
    width: 7px;
    height: 7px;
    background: #6b35d4;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18);
    transition: opacity 120ms ease;
  }

  .njume-cursor-ring {
    width: 34px;
    height: 34px;
    border: 1px solid rgba(107, 53, 212, 0.48);
    background: rgba(107, 53, 212, 0.015);
    transition:
      width 180ms ease,
      height 180ms ease,
      border-color 180ms ease,
      background-color 180ms ease,
      opacity 120ms ease;
  }

  .njume-cursor-dot.is-visible,
  .njume-cursor-ring.is-visible {
    opacity: 1;
  }

  .njume-cursor-ring.is-interactive {
    width: 48px;
    height: 48px;
    border-color: rgba(107, 53, 212, 0.72);
    background: rgba(107, 53, 212, 0.08);
  }

  .njume-cursor-ring.is-pressed {
    width: 28px;
    height: 28px;
    background: rgba(107, 53, 212, 0.16);
  }
}
