/* ===== Shared custom cursor =====
   A small dot tracks the pointer exactly; a larger ring trails behind
   with inertia and blooms into a filled disc over clickable elements.
   Disabled on touch devices (no real pointer to replace). */
@media (pointer: fine){
  *{ cursor: none !important; }
}
.cursor-dot{
  position:fixed; top:0; left:0; width:6px; height:6px; border-radius:50%;
  background:var(--cyan); pointer-events:none; z-index:99999;
  transform:translate(-100px,-100px); opacity:0;
  transition:opacity .25s ease;
  will-change:transform;
}
.cursor-ring{
  position:fixed; top:0; left:0; width:34px; height:34px; border-radius:50%;
  border:1px solid var(--cyan); pointer-events:none; z-index:99998;
  transform:translate(-100px,-100px); opacity:0;
  transition:width .25s ease, height .25s ease, background .25s ease, border-color .25s ease, opacity .25s ease;
  will-change:transform;
}
.cursor-dot.cursor-show,.cursor-ring.cursor-show{ opacity:1; }
.cursor-ring.cursor-hover{
  width:58px; height:58px;
  background:rgba(3,89,236,.12);
  border-color:var(--cyan-bright);
}
@media (pointer: coarse){
  .cursor-dot,.cursor-ring{ display:none; }
}
