/* ═══════════════════════════════════════════════════════════
   GrowthLab Studio X — Custom Cursor System
   Premium floating cursor with dot + ring
═══════════════════════════════════════════════════════════ */

/* Hide native cursor on non-touch devices */
@media (hover: hover) and (pointer: fine) {
  *, *::before, *::after {
    cursor: none !important;
  }
}

/* ── Cursor Elements ─────────────────────────────────────── */
#gl-cursor-dot,
#gl-cursor-ring {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 999999;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  will-change: transform, opacity, width, height;
  backface-visibility: hidden;
}

/* Inner dot */
#gl-cursor-dot {
  width: 6px;
  height: 6px;
  background: #a78bfa;
  box-shadow: 0 0 8px rgba(167, 139, 250, 0.9), 0 0 20px rgba(124, 58, 237, 0.4);
  transition: width 0.18s cubic-bezier(0.16,1,0.3,1),
              height 0.18s cubic-bezier(0.16,1,0.3,1),
              opacity 0.18s ease,
              background 0.18s ease;
  opacity: 0;
}

/* Outer ring */
#gl-cursor-ring {
  width: 36px;
  height: 36px;
  border: 1.5px solid rgba(139, 92, 246, 0.55);
  background: rgba(124, 58, 237, 0.04);
  backdrop-filter: blur(0px);
  transition: width 0.35s cubic-bezier(0.16,1,0.3,1),
              height 0.35s cubic-bezier(0.16,1,0.3,1),
              border-color 0.35s ease,
              background 0.35s ease,
              opacity 0.35s ease;
  opacity: 0;
}

/* ── Hover state (links & buttons) ──────────────────────── */
body.gl-cursor-hover #gl-cursor-dot {
  width: 8px;
  height: 8px;
  background: #c4b5fd;
}

body.gl-cursor-hover #gl-cursor-ring {
  width: 52px;
  height: 52px;
  border-color: rgba(167, 139, 250, 0.75);
  background: rgba(124, 58, 237, 0.09);
}

/* ── Click state ─────────────────────────────────────────── */
body.gl-cursor-click #gl-cursor-dot {
  width: 4px;
  height: 4px;
  background: #fff;
}

body.gl-cursor-click #gl-cursor-ring {
  width: 28px;
  height: 28px;
  border-color: rgba(255, 255, 255, 0.6);
  background: rgba(167, 139, 250, 0.12);
}

/* ── Visible after first mouse move ─────────────────────── */
body.gl-cursor-ready #gl-cursor-dot,
body.gl-cursor-ready #gl-cursor-ring {
  opacity: 1;
}
