/* from https://codepen.io/andyobrien/pen/WYrxMe via https://stackoverflow.blog/2021/05/31/shipping-confetti-to-stack-overflows-design-system/ */

.icon {
  font-size: 32px;
  font-weight: bold;
  letter-spacing: 32px;
  position: relative;
}

.confetti {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  width: 100%;
    top: 0; left: 0;
  height: 400px;
  overflow: hidden;
}

.confetti-piece {
  position: absolute;
  width: 8px;
  height: 16px;
  background: #ffd300;
  top: 0;
  opacity: 0;
}
.confetti-piece:nth-child(1) {
  left: 7%;
  transform: rotate(71deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 51ms;
          animation-delay: 51ms;
  -webkit-animation-duration: 1176ms;
          animation-duration: 1176ms;
}
.confetti-piece:nth-child(2) {
  left: 14%;
  transform: rotate(-44deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 284ms;
          animation-delay: 284ms;
  -webkit-animation-duration: 836ms;
          animation-duration: 836ms;
}
.confetti-piece:nth-child(3) {
  left: 21%;
  transform: rotate(-16deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 173ms;
          animation-delay: 173ms;
  -webkit-animation-duration: 1067ms;
          animation-duration: 1067ms;
}
.confetti-piece:nth-child(4) {
  left: 28%;
  transform: rotate(72deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 480ms;
          animation-delay: 480ms;
  -webkit-animation-duration: 1148ms;
          animation-duration: 1148ms;
}
.confetti-piece:nth-child(5) {
  left: 35%;
  transform: rotate(40deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 482ms;
          animation-delay: 482ms;
  -webkit-animation-duration: 902ms;
          animation-duration: 902ms;
}
.confetti-piece:nth-child(6) {
  left: 42%;
  transform: rotate(46deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 416ms;
          animation-delay: 416ms;
  -webkit-animation-duration: 870ms;
          animation-duration: 870ms;
}
.confetti-piece:nth-child(7) {
  left: 49%;
  transform: rotate(-50deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 36ms;
          animation-delay: 36ms;
  -webkit-animation-duration: 795ms;
          animation-duration: 795ms;
}
.confetti-piece:nth-child(8) {
  left: 56%;
  transform: rotate(6deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 51ms;
          animation-delay: 51ms;
  -webkit-animation-duration: 768ms;
          animation-duration: 768ms;
}
.confetti-piece:nth-child(9) {
  left: 63%;
  transform: rotate(5deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 410ms;
          animation-delay: 410ms;
  -webkit-animation-duration: 1004ms;
          animation-duration: 1004ms;
}
.confetti-piece:nth-child(10) {
  left: 70%;
  transform: rotate(79deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 321ms;
          animation-delay: 321ms;
  -webkit-animation-duration: 1184ms;
          animation-duration: 1184ms;
}
.confetti-piece:nth-child(11) {
  left: 77%;
  transform: rotate(-79deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 475ms;
          animation-delay: 475ms;
  -webkit-animation-duration: 1028ms;
          animation-duration: 1028ms;
}
.confetti-piece:nth-child(12) {
  left: 84%;
  transform: rotate(54deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 297ms;
          animation-delay: 297ms;
  -webkit-animation-duration: 799ms;
          animation-duration: 799ms;
}
.confetti-piece:nth-child(13) {
  left: 91%;
  transform: rotate(-15deg);
  -webkit-animation: makeItRain 1000ms infinite ease-out;
          animation: makeItRain 1000ms infinite ease-out;
  -webkit-animation-delay: 253ms;
          animation-delay: 253ms;
  -webkit-animation-duration: 973ms;
          animation-duration: 973ms;
}
.confetti-piece:nth-child(odd) {
  background: #17d3ff;
}
.confetti-piece:nth-child(even) {
  z-index: 1;
}
.confetti-piece:nth-child(4n) {
  width: 5px;
  height: 12px;
  -webkit-animation-duration: 2000ms;
          animation-duration: 2000ms;
}
.confetti-piece:nth-child(3n) {
  width: 3px;
  height: 10px;
  -webkit-animation-duration: 2500ms;
          animation-duration: 2500ms;
  -webkit-animation-delay: 1000ms;
          animation-delay: 1000ms;
}
.confetti-piece:nth-child(4n-7) {
  background: #ff4e91;
}

@-webkit-keyframes makeItRain {
  from {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  to {
    transform: translateY(400px);
  }
}

@keyframes makeItRain {
  from {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  to {
    transform: translateY(400px);
  }
}