.spark-border {
  position: relative;
  display: inline-block;
  overflow: hidden;
  border-radius: 999px;
  padding: var(--spark-thickness) var(--spark-thickness);
  box-shadow: var(--accent) 0px 0px 10px 0px;
}

.spark-bottom,
.spark-top {
  position: absolute;
  width: 300%;
  height: 200%;
  border-radius: 50%;
  background: radial-gradient(circle, var(--spark-color), transparent 30%);
  animation-duration: var(--spark-speed);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.spark-bottom {
  bottom: -12px;
  right: -250%;
  animation-name: spark-move-bottom;
}

.spark-top {
  top: -12px;
  left: -250%;
  animation-name: spark-move-top;
}
.spark-top .spark-bottom { animation-delay: calc(var(--spark-speed) / -2); }


.spark-content {
  position: relative;
  z-index: 1;
  background: var(--accent);
  color: white;
  padding: 16px 26px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.spark-border:hover {
  transform: translateY(-2px);
}

@keyframes spark-move-bottom {
  0% {
    transform: translate(0%, 0%);
    opacity: 1;
  }
  100% {
    transform: translate(-100%, 0%);
    opacity: 0;
  }
}

@keyframes spark-move-top {
  0% {
    transform: translate(0%, 0%);
    opacity: 1;
  }
  100% {
    transform: translate(100%, 0%);
    opacity: 0;
  }
}