/* ============================================================
   CUSTOM CURSOR (desktop only)
   ============================================================ */
.has-custom-cursor { cursor: none; }
.has-custom-cursor a,
.has-custom-cursor button,
.has-custom-cursor [tabindex] { cursor: none; }

.cursor-dot,
.cursor-ring {
  position: fixed;
  top: 0; left: 0;
  pointer-events: none;
  z-index: 999;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  will-change: transform;
}

.cursor-dot {
  width: 7px; height: 7px;
  background: var(--cyan);
  box-shadow: 0 0 10px var(--cyan), 0 0 22px rgba(34,211,238,0.5);
  transition: opacity 0.2s;
}

.cursor-ring {
  width: 34px; height: 34px;
  border: 1.5px solid rgba(139, 92, 246, 0.65);
  transition: width 0.25s var(--ease-soft), height 0.25s var(--ease-soft),
              border-color 0.25s, background 0.25s, opacity 0.2s;
}

.cursor-ring.is-hover {
  width: 56px; height: 56px;
  background: rgba(139, 92, 246, 0.12);
  border-color: var(--violet-2);
}

.cursor-ring.is-click { width: 26px; height: 26px; }

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

@media (max-width: 860px), (hover: none) and (pointer: coarse) {
  .cursor-dot, .cursor-ring { display: none !important; }
  .has-custom-cursor { cursor: auto; }
}
