:root {
  --jp-cursor-accent: #e8a33d;
}

.jp-constellation-burst {
  position: fixed;
  z-index: 2147483646;
  width: 0;
  height: 0;
  pointer-events: none;
  color: var(--jp-cursor-accent);
}

.jp-constellation-burst__core,
.jp-constellation-burst__particle {
  position: absolute;
  pointer-events: none;
}

.jp-constellation-burst__core {
  top: -14px;
  left: -14px;
  width: 28px;
  height: 28px;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  animation: jp-cursor-core-pop 480ms ease-out forwards;
}

.jp-constellation-burst__particle {
  top: -3px;
  left: -3px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 7px color-mix(in srgb, var(--jp-cursor-accent) 60%, transparent);
  animation: jp-cursor-particle-burst 580ms cubic-bezier(.12, .7, .25, 1) forwards;
}

@keyframes jp-cursor-core-pop {
  0% { opacity: 1; transform: scale(1); }
  45% { opacity: .85; transform: scale(.55); }
  100% { opacity: 0; transform: scale(1.8); }
}

@keyframes jp-cursor-particle-burst {
  0% { opacity: 1; transform: translate(0, 0) scale(1); }
  100% { opacity: 0; transform: translate(var(--jp-particle-x), var(--jp-particle-y)) scale(.25); }
}

@media (prefers-reduced-motion: reduce) {
  .jp-constellation-burst { display: none; }
}
