/* Original V22 fluorescent cursor. Position updates use only transforms. */
.cursor-dot,
.cursor-ring {
  --cursor-ready: 1;
  position: fixed;
  left: 0;
  top: 0;
  display: none;
  pointer-events: none !important;
  border-radius: 50%;
  transform: translate3d(-100px, -100px, 0) translate(-50%, -50%);
}
.cursor-dot { width: 10px; height: 10px; z-index: 9998; mix-blend-mode: screen; }
.cursor-ring { width: 40px; height: 40px; z-index: 9997; }
.cursor-dot::before,
.cursor-ring::before,
.cursor-ring::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  pointer-events: none;
  transition: transform .3s cubic-bezier(.16,1,.3,1), border-color .2s, opacity .2s;
}
.cursor-dot::before {
  background: #e8ff2a;
  box-shadow: 0 0 8px #e8ff2a, 0 0 16px rgba(232,255,42,.5);
  transition: transform .2s cubic-bezier(.16,1,.3,1);
}
.cursor-dot.hover-active::before { transform: scale(1.4); }
.cursor-ring::before {
  border: 2.5px solid #e8ff2a;
  box-shadow: 0 0 12px rgba(232,255,42,.4), inset 0 0 8px rgba(255,255,255,.2);
}
.cursor-ring::after {
  opacity: 0;
  box-shadow: 0 0 20px #00f0ff, 0 0 30px #e8ff2a, 0 0 40px #ff2a2a, inset 0 0 15px rgba(255,255,255,.3);
}
.cursor-ring.hover::before { transform: scale(1.75); border-color: #fff; border-width: 1.43px; }
.cursor-ring.hover::after { transform: scale(1.75); animation: rainbowPulse 2s ease-in-out infinite; }
/* Keep the multicolor glow static; pulse its opacity instead of repainting shadows. */
@keyframes rainbowPulse { 0%,100% { opacity: .6; } 50% { opacity: 1; } }
.cursor-ring.click::before {
  transform: scale(.6);
  border-color: #fff;
  border-width: 4.17px;
  box-shadow: 0 0 15px #e8ff2a, inset 0 0 6px rgba(255,255,255,.4);
}
.cursor-ring.click::after { animation: none; opacity: 0; transform: scale(.6); }
/* The system cursor is hidden only after a real mouse move has been drawn. */
@media (any-hover: hover) and (any-pointer: fine) and (prefers-reduced-motion: no-preference) and (forced-colors: none) {
  html.cursor-active,
  html.cursor-active * { cursor: none !important; }
  html.cursor-active .cursor-dot,
  html.cursor-active .cursor-ring { display: block; will-change: transform; }
}
@media print { .cursor-dot, .cursor-ring { display: none !important; } }
