@media (pointer: fine) {
  html.gc-cursor-ready,
  html.gc-cursor-ready * {
    cursor: none !important;
  }

  html.gc-cursor-ready iframe,
  html.gc-cursor-ready iframe * {
    cursor: auto !important;
  }

  .gc-cursor {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    pointer-events: none;
    user-select: none;
  }

  .gc-cursor-dot,
  .gc-cursor-ring {
    position: fixed;
    left: 0;
    top: 0;
    border-radius: 50%;
    pointer-events: none;
    transform: translate3d(-100px, -100px, 0);
    will-change: transform, width, height, opacity, border-color;
  }

  .gc-cursor-dot {
    width: 8px;
    height: 8px;
    margin: -4px 0 0 -4px;
    background: #b9f7ff;
    box-shadow:
      0 0 10px rgba(185, 247, 255, 0.88),
      0 0 22px rgba(76, 207, 255, 0.5);
  }

  .gc-cursor-ring {
    width: 32px;
    height: 32px;
    margin: -16px 0 0 -16px;
    border: 1px solid rgba(185, 247, 255, 0.72);
    background: radial-gradient(circle, rgba(185, 247, 255, 0.16), transparent 62%);
    box-shadow: 0 0 24px rgba(76, 207, 255, 0.24);
    opacity: 0.92;
    transition:
      width 160ms ease,
      height 160ms ease,
      margin 160ms ease,
      border-color 160ms ease,
      opacity 160ms ease,
      background 160ms ease;
  }

  html.gc-cursor-hover .gc-cursor-ring {
    width: 46px;
    height: 46px;
    margin: -23px 0 0 -23px;
    border-color: rgba(255, 222, 170, 0.82);
    background: radial-gradient(circle, rgba(255, 222, 170, 0.2), transparent 66%);
    opacity: 1;
  }

  html.gc-cursor-down .gc-cursor-ring {
    width: 24px;
    height: 24px;
    margin: -12px 0 0 -12px;
    opacity: 0.82;
  }

  .gc-cursor-spark {
    position: fixed;
    left: 0;
    top: 0;
    width: 6px;
    height: 6px;
    margin: -3px 0 0 -3px;
    border-radius: 50%;
    background: rgba(185, 247, 255, 0.86);
    box-shadow: 0 0 14px rgba(185, 247, 255, 0.58);
    pointer-events: none;
    transform: translate3d(var(--gc-x), var(--gc-y), 0) scale(1);
    animation: gc-spark 520ms ease-out forwards;
  }

  @keyframes gc-spark {
    to {
      opacity: 0;
      transform: translate3d(
        calc(var(--gc-x) + var(--gc-dx)),
        calc(var(--gc-y) + var(--gc-dy)),
        0
      ) scale(0.2);
    }
  }
}

@media (pointer: coarse), (prefers-reduced-motion: reduce) {
  .gc-cursor {
    display: none !important;
  }
}
