.element {
  width: 6px;
  height: 6px;
  border-radius: 50%;

  background: linear-gradient(
    90deg,
    #0d99ff 0%,
    #9747ff 42%,
    #ff24bd 74%,
    #ffa629 100%
  );
}

.pulse {
  position: absolute;
  top: -7px;
  right: -7px;

  width: 20px;
  height: 20px;

  z-index: 10;
  border-radius: 50%;

  background: linear-gradient(
    90deg,
    #0d99ff 0%,
    #9747ff 42%,
    #ff24bd 74%,
    #ffa629 100%
  );

  /*
   * Creates a 2px gradient ring
   * with a transparent center.
   */
  padding: 2px;

  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);

  -webkit-mask-composite: xor;
  mask-composite: exclude;

  animation: pulse 2.3s ease-out infinite;
}

.marker {
  position: absolute;
  top: 0;
  right: 0;

  width: 6px;
  height: 6px;

  border-radius: 50%;

  background: linear-gradient(
    90deg,
    #0d99ff 0%,
    #9747ff 42%,
    #ff24bd 74%,
    #ffa629 100%
  );
}

@keyframes pulse {
  0% {
    transform: scale(0);
    opacity: 0;
  }

  25% {
    transform: scale(0.1);
    opacity: 0.1;
  }

  50% {
    transform: scale(0.5);
    opacity: 0.3;
  }

  75% {
    transform: scale(0.8);
    opacity: 0.5;
  }

  100% {
    transform: scale(1);
    opacity: 0;
  }
}
