.heroBanner {
  position: relative;
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.heroBanner::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 200%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle closest-side, rgb(255, 255, 255), rgb(0, 0, 0) 50%),
    conic-gradient(
      rgb(255, 0, 0),
      rgb(255, 255, 0),
      rgb(0, 255, 0),
      rgb(0, 255, 255),
      rgb(0, 0, 255),
      rgb(255, 0, 255),
      rgb(255, 0, 0)
    );
  background-blend-mode: screen;
  z-index: -1;
  transform-origin: center;
  animation: spin 10s linear infinite;
}

@keyframes spin {
  from {
    transform: translate(-50%, -50%) rotate(0);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

@media screen and (max-width: 996px) {
  .heroBanner {
    padding: 2rem;
  }
}

.button {
  --width: 150px;
  display: inline-block;
  border: 0;
  padding-block: 1em;
  width: 200px;
  color: #fff;
  font-weight: bold;
  font-size: 1.2em;
  background: rgb(64, 192, 87);
  border-radius: 3px;
  transition: all 0.2s;
}

.button:hover {
  background-image: linear-gradient(
    to right,
    rgb(250, 82, 82),
    rgb(250, 82, 82) 16.65%,
    rgb(190, 75, 219) 16.65%,
    rgb(190, 75, 219) 33.3%,
    rgb(76, 110, 245) 33.3%,
    rgb(76, 110, 245) 49.95%,
    rgb(64, 192, 87) 49.95%,
    rgb(64, 192, 87) 66.6%,
    rgb(250, 176, 5) 66.6%,
    rgb(250, 176, 5) 83.25%,
    rgb(253, 126, 20) 83.25%,
    rgb(253, 126, 20) 100%,
    rgb(250, 82, 82) 100%
  );
  animation: 2s linear dance6123 infinite;
  transform: scale(1.1) translateY(-1px);
  text-decoration: none !important;
  color: black !important;
}

@keyframes dance6123 {
  to {
    background-position: var(--width);
  }
}
