@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;700&display=swap');

:root {
  --m: 3.5rem;
  --red: #FF6565;
  --pink: #FF64F9;
  --purple: #6B5FFF;
  --blue: #4DBAFF;
  --green: #5BFF89;
  --yellow: #FFE955;
  --orange: #FF6D1B;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #141516;
}

button {
  border: calc(0.08 * var(--m)) solid transparent;
  position: relative;
  color: #F3F3F3;
  font-family: 'Space Grotesk', sans-serif;
  font-size: var(--m);
  line-height: 1;
  border-radius: calc(0.7 * var(--m));
  padding: calc(0.5 * var(--m)) calc(1.3 * var(--m));
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  background:
    linear-gradient(#121213, #121213) padding-box,
    linear-gradient(
      90deg,
      var(--orange),
      var(--yellow),
      var(--green),
      var(--blue),
      var(--purple),
      var(--pink),
      var(--red)
    ) border-box;
  background-size: 200%;
  animation: animate 2s linear infinite;
}

button::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: -1;

  background: linear-gradient(
    90deg,
    var(--orange),
    var(--yellow),
    var(--green),
    var(--blue),
    var(--purple),
    var(--pink),
    var(--red)
  );

  filter: blur(20px);
  opacity: 0.5;
}

button:hover,
button:hover::before {
  animation: animate 0.5s linear infinite;
}

@keyframes animate {
  0% {
    background-position: 0%;
  }
  100% {
    background-position: 200%;
  }
}