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

  .sm-cursor-dot,
  .sm-cursor-ring {
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 1000;
    opacity: 0;
    transform: translate(-50%, -50%);
    transition: opacity 0.18s ease, transform 0.18s ease;
  }

  .sm-cursor-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--text, #111);
    z-index: 1001;
  }

  .sm-cursor-ring {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1px solid color-mix(in srgb, var(--text, #111) 36%, transparent);
    background: color-mix(in srgb, var(--surface, #fff) 20%, transparent);
    backdrop-filter: blur(1px);
  }

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

  .sm-cursor-hidden .sm-cursor-dot,
  .sm-cursor-hidden .sm-cursor-ring {
    opacity: 0;
  }

  .sm-cursor-active .sm-cursor-ring {
    transform: translate(-50%, -50%) scale(0.82);
  }

  .sm-cursor-hover .sm-cursor-ring {
    transform: translate(-50%, -50%) scale(1.2);
    border-color: color-mix(in srgb, var(--text, #111) 52%, transparent);
  }
}
