.cursor-drop-wrap{
  position:fixed;
  top:0; left:0;
  width:0; height:0;
  pointer-events:none;
  z-index:9999;
  opacity:0;
  transition:opacity .15s ease;
  will-change:transform;
}
.cursor-drop-wrap.is-visible{opacity:1;}
.cursor-drop-wrap.is-hidden{opacity:0;}
.cursor-glow{
  position:absolute;
  top:-34px; left:-34px;
  width:68px; height:68px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(53,154,204,.55) 0%, rgba(53,154,204,.22) 40%, rgba(53,154,204,0) 72%);
  filter:blur(4px);
  transition:width .18s ease, height .18s ease, top .18s ease, left .18s ease, background .18s ease;
}
.cursor-drop-wrap.is-grow .cursor-glow{
  top:-50px; left:-50px; width:100px; height:100px;
  background:radial-gradient(circle, rgba(199,245,71,.65) 0%, rgba(199,245,71,.25) 45%, rgba(199,245,71,0) 74%);
}
.cursor-drop{
  position:absolute;
  top:-14px; left:-11px;
  width:22px; height:27px;
  transform-origin:50% 30%;
  filter:drop-shadow(0 0 5px rgba(53,154,204,.55));
  transition:width .16s ease, height .16s ease, top .16s ease, left .16s ease, filter .18s ease;
}
.cursor-drop-wrap.is-grow .cursor-drop{
  top:-19px; left:-15px; width:30px; height:37px;
  filter:drop-shadow(0 0 7px rgba(199,245,71,.6));
}
.cursor-drop svg{display:block; width:100%; height:100%;}
.cursor-drop-path{
  fill:none;
  stroke:var(--route-sky);
  stroke-width:1.6;
  stroke-linejoin:round;
  transition:stroke .18s ease, stroke-width .18s ease;
}
.cursor-drop-wrap.is-grow .cursor-drop-path{
  stroke:var(--route-lime);
  stroke-width:1.8;
}
.cursor-splash{
  position:fixed;
  top:0; left:0;
  width:16px; height:16px;
  margin:-8px 0 0 -8px;
  border-radius:50%;
  border:2px solid var(--route-sky);
  background:rgba(53,154,204,.12);
  pointer-events:none;
  z-index:9998;
  animation:cursorSplash .5s cubic-bezier(.25,.7,.35,1) forwards;
}
@keyframes cursorSplash{
  0%{   transform:scale(.4); opacity:.7; }
  100%{ transform:scale(3.4); opacity:0; }
}
@media (hover:none), (pointer:coarse){
  .cursor-drop-wrap, .cursor-splash{display:none !important;}
}
@media (prefers-reduced-motion: reduce){
  .cursor-drop-wrap, .cursor-splash{display:none !important;}
}
