body {
  margin: 0;
  background-color: #ffffff;
  font-family: "Poppins", sans-serif;
  text-align: center;
  display: grid;
  place-items: center;
  min-height: 100vh;
  user-select: none;
}

:root {
  --color: #000;
  --shadow: #333;
  --glare: hsl(45 100% 50% / 0.75);
  --font-size: 32px;
  --font-weight-9: 900;
  --transition: 0.2s;
  --gray-8: #f0f0f0;
  --size-2: 8px;
  --size-4: 16px;
}

* {
  box-sizing: border-box;
}

#sparkle {
  position: fixed;
  bottom: 44%;
  width: 100%;
  text-align: center;
  z-index: 10;
}

#sparkle a {
  --padding: var(--size-2);
  padding: var(--padding);
  border-radius: var(--size-4);
  text-decoration: none;
  color: transparent;
  position: relative;
  transition: background 0.2s;
  display: inline-block;
  background: #ffffff;
  font-weight: 600;
  font-family: "Poppins", sans-serif;
  font-size: 1.2rem;
  cursor: pointer;
  user-select: none;
  overflow: visible;
  --hover: 0.4;
  --pos: 0;
}

#sparkle a:hover {
  background: var(--gray-8);
  --hover: 1;
  --pos: 1;
}

#sparkle a:active {
  --hover: 0;
}

#sparkle a:active span:last-of-type {
  --hover: 0;
  --pos: 1;
}

#sparkle span {
  display: inline-block;
  font-size: calc(var(--font-size) * 1.4);
  font-weight: var(--font-weight-9);
  transition: all 0.2s;
  text-decoration: none;
  color: #000;
  text-shadow: calc(var(--hover) * (var(--font-size) * -0))
      calc(var(--hover) * (var(--font-size) * 0)) var(--shadow),
    calc(var(--hover) * (var(--font-size) * -0.02))
      calc(var(--hover) * (var(--font-size) * 0.02)) var(--shadow),
    calc(var(--hover) * (var(--font-size) * -0.04))
      calc(var(--hover) * (var(--font-size) * 0.04)) var(--shadow),
    calc(var(--hover) * (var(--font-size) * -0.06))
      calc(var(--hover) * (var(--font-size) * 0.06)) var(--shadow),
    calc(var(--hover) * (var(--font-size) * -0.08))
      calc(var(--hover) * (var(--font-size) * 0.08)) var(--shadow),
    calc(var(--hover) * (var(--font-size) * -0.1))
      calc(var(--hover) * (var(--font-size) * 0.1)) var(--shadow);
  transform: translate(
    calc(var(--hover) * (var(--font-size) * 0.1)),
    calc(var(--hover) * (var(--font-size) * -0.1))
  );
}

#sparkle span:last-of-type {
  position: absolute;
  inset: var(--padding);
  background: linear-gradient(
        108deg,
        transparent 0 55%,
        rgba(255, 255, 255, 0.9) 55% 60%,
        transparent 60% 70%,
        rgba(255, 255, 255, 0.9) 70% 85%,
        transparent 85%
      )
      calc(var(--pos) * -200%) 0% / 200% 100%,
    #333;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  z-index: 2;
  text-shadow: none;
  transform: translate(
    calc(var(--hover) * (var(--font-size) * 0.1)),
    calc(var(--hover) * (var(--font-size) * -0.1))
  );
}

#sparkle span:last-of-type {
  transition: transform 0.2s, background-position 0s;
}

#sparkle a:hover span:last-of-type {
  transition: transform 0.2s,
    background-position calc(var(--hover) * 1.5s) calc(var(--hover) * 0.25s);
}

#sparkle a svg {
  position: absolute;
  z-index: 3;
  width: calc(var(--font-size) * 0.5);
  aspect-ratio: 1;
  --delay-step: 0.15;
  top: calc(var(--y, 50) * 1%);
  left: calc(var(--x, 0) * 1%);
  transform: translate(-50%, -50%) scale(0);
}

#sparkle a svg path {
  fill: #ffd700;
}

/* Animation for sparkles */
#sparkle a:hover svg {
  animation: sparkle 0.75s calc((var(--delay-step) * var(--d)) * 1s) both;
}

@keyframes sparkle {
  50% {
    transform: translate(-50%, -50%) scale(var(--s, 1));
  }
}

#sparkle a svg:nth-of-type(1) {
  --x: 0;
  --y: 20;
  --s: 1.1;
  --d: 1;
}

#sparkle a svg:nth-of-type(2) {
  --x: 15;
  --y: 80;
  --s: 1.25;
  --d: 2;
}

#sparkle a svg:nth-of-type(3) {
  --x: 45;
  --y: 40;
  --s: 1.1;
  --d: 3;
}

#sparkle a svg:nth-of-type(4) {
  --x: 75;
  --y: 60;
  --s: 0.9;
  --d: 2;
}

#sparkle a svg:nth-of-type(5) {
  --x: 100;
  --y: 30;
  --s: 0.8;
  --d: 4;
}

#text {
  color: #000000;
  text-transform: uppercase;
  font-size: 72px;
  font-weight: bold;
  padding-top: 200px;
  position: fixed;
  width: 100%;
  bottom: 60%;
  display: block;
}

#container {
  color: #999;
  text-transform: uppercase;
  font-size: 72px;
  font-weight: bold;
  padding-top: 200px;
  position: fixed;
  width: 100%;
  bottom: 50%;
  display: block;
}

#flip {
  height: 90px;
  overflow: hidden;
  padding-bottom: 100px;
}

#flip > div > div {
  color: #fff;
  padding: 15px 30px;
  height: 80px;
  margin-bottom: 80px;
  display: inline-block;
  border-radius: 15px;
  line-height: 1.2;
  font-size: 64px;
}

#flip div:first-child {
  animation: show 5s linear infinite;
}

#flip div div {
  background: #42c58a;
}
#flip div:first-child div {
  background: #4ec7f3;
}
#flip div:last-child div {
  background: #dc143c;
}

@keyframes show {
  0% {
    margin-top: -480px;
  }
  5% {
    margin-top: -320px;
  }
  33% {
    margin-top: -320px;
  }
  38% {
    margin-top: -160px;
  }
  66% {
    margin-top: -160px;
  }
  71% {
    margin-top: 0px;
  }
  99.99% {
    margin-top: 0px;
  }
  100% {
    margin-top: -480px;
  }
}

footer {
  position: fixed;
  width: 100%;
  bottom: 10px;
  font-size: 12px;
  text-align: center;
  user-select: none;
  color: #999;
}
