*,
*::after,
*::before {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Courier New", Courier, monospace;
}

:root {
  --dark-color: #000;
}

a {
  text-decoration: none;
}

body {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  min-height: 100vh;
  overflow: hidden;
  perspective: 1000px;
  background-color: var(--dark-color);
  background-image: radial-gradient(
      ellipse at top,
      transparent 0%,
      var(--dark-color)
    ),
    radial-gradient(
      ellipse at bottom,
      var(--dark-color),
      rgba(145, 233, 255, 0.2)
    ),
    repeating-linear-gradient(
      220deg,
      rgb(0, 0, 0) 0px,
      rgb(0, 0, 0) 19px,
      transparent 19px,
      transparent 22px
    ),
    repeating-linear-gradient(
      189deg,
      rgb(0, 0, 0) 0px,
      rgb(0, 0, 0) 19px,
      transparent 19px,
      transparent 22px
    ),
    repeating-linear-gradient(
      148deg,
      rgb(0, 0, 0) 0px,
      rgb(0, 0, 0) 19px,
      transparent 19px,
      transparent 22px
    ),
    linear-gradient(90deg, rgb(255, 255, 250), rgb(240, 240, 240));
}

.gift-container {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  bottom: 20%;
}
.gift-container.active {
  animation: Vibration 1s ease forwards;
}
@keyframes Vibration {
  0% {
    transform: scale(1, 1);
  }
  25% {
    transform: scale(0.95, 1.05);
  }
  50% {
    transform: scale(1.1, 0.9);
  }
  70% {
    transform: scale(0.9, 1.1);
  }
  100% {
    transform: scale(1, 1);
  }
}

.gift-container .gift-box {
  position: absolute;
  height: 200px;
  width: 300px;
  background: #499fc7;
  animation: Bounce 4s ease infinite forwards;
}
@keyframes Bounce {
  0% {
    transform: translateY(-24px);
  }
  50% {
    transform: translateY(0px);
  }
  100% {
    transform: translateY(-24px);
  }
}
.gift-box.active {
  animation: none;
}

.gift-box::before {
  content: "";
  position: absolute;
  width: 50px;
  height: 200px;
  background: #ec6279;
  left: 124px;
}

.gift-box::after {
  content: "";
  position: absolute;
  box-shadow: inset 0 10px rgba(0, 0, 0, 0.3);
  width: 300px;
  height: 200px;
}

.click {
  position: absolute;
  background: #7abad7;
  width: 340px;
  height: 90px;
  top: -90px;
  left: -20px;
  cursor: pointer;
  z-index: 1;
  transition: 0.5s ease;
}

.click.active {
  transition-delay: 1s;
  transform: translateY(-240px);
}

.click::before {
  content: "";
  position: absolute;
  width: 50px;
  height: 90px;
  background: #ec6279;
  left: 144px;
  z-index: 2;
}

.click::after {
  content: "";
  position: absolute;
  width: 5px;
  height: 0px;
  border-bottom: 60px solid rgb(237, 126, 142);
  border-top: 60px solid rgb(237, 126, 142);
  border-left: 0px solid transparent;
  border-right: 60px solid transparent;
  transform: rotate(-90deg);
  top: -93px;
  left: 136px;
  z-index: 3;
}

.gift-container .shadow {
  content: "";
  position: relative;
  width: 340px;
  height: 40px;
  background: #111c21;
  top: 100px;
  border-radius: 50%;
  left: -4px;
  animation: BounceOut 4s ease infinite forwards;
}
.gift-container .shadow.active {
  animation: none;
}
@keyframes BounceOut {
  0% {
    transform: translateY(24px);
    scale: 0.7;
  }
  50% {
    transform: translateY(0px);
    scale: 1;
  }
  100% {
    transform: translateY(24px);
    scale: 0.7;
  }
}

.btn {
  position: absolute;
  top: 0;
  left: 50px;
  width: 250px;
  background: rgb(255, 184, 195);
  padding: 20px;
  text-align: center;
  font-size: 18px;
  color: rgb(251, 247, 247);
  border-radius: 3em;
  z-index: -1;
  scale: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  transition: all 0.5s ease;
}

.btn.active {
  scale: 1;
  transform: translateY(-240px);
}

.btn:active .btn {
  transition-delay: 1s;
}

.btn.active2 {
  top: 0;
  transition-delay: 0.2s;
}

.sparkle {
  fill: #ffffff;
  transition: all 0.5s ease;
}

.text {
  font-weight: 600;
  color: #ffffff;
  transition: all 0.5s ease;
}

.btn:hover {
  background: linear-gradient(0deg, #7aa2ab, #2265d9);
  box-shadow: inset 0px 1px 0px 0px rgba(133, 133, 133, 0.4),
    inset 0px -4px 0px 0px rgba(0, 0, 0, 0.2),
    0px 0px 0px 4px rgba(255, 255, 255, 0.2), 0px 0px 180px 0px #009be2;
}

.btn:hover .text {
  color: #89cff0;
  transform: scale(1.05);
}

.btn:hover .sparkle {
  fill: #89cff0;
  transform: scale(1.05);
}
