.sticker {
  position: absolute;
  z-index: 3;
}

.sticker-top {
  top: -18px;
  right: -12px;
  width: 92px;
}

.sticker-bottom {
  left: -24px;
  bottom: -24px;
  width: 144px;
}

.sparkle {
  position: absolute;
  z-index: 1;
  opacity: 0.92;
}

.sparkle-a {
  left: 34%;
  top: 328px;
  width: 18px;
}

.sparkle-b {
  right: 11.5%;
  top: 598px;
  width: 20px;
}

.sparkle-c {
  left: 6.8%;
  bottom: 194px;
  width: 18px;
}

.sparkle-d {
  right: 28.5%;
  bottom: 92px;
  width: 20px;
}

.sparkle-e {
  left: 14%;
  top: 118px;
  width: 22px;
}

.sparkle-f {
  right: 16%;
  top: 164px;
  width: 18px;
}

.sparkle-g {
  left: 26%;
  bottom: 292px;
  width: 16px;
}

.sparkle-h {
  right: 6.6%;
  bottom: 236px;
  width: 18px;
}

.confetti-layer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.confetti-piece {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(var(--size, 14) * 1px);
  opacity: var(--opacity, 0.74);
  transform: translate3d(0, -10vh, 0) rotate(0deg);
  animation: confetti-fall linear 1 forwards;
  animation-duration: calc(var(--duration, 18) * 1s);
  animation-delay: calc(var(--delay, 0) * 1s);
  will-change: transform;
}

@keyframes confetti-fall {
  from {
    transform: translate3d(0, -10vh, 0) rotate(0deg);
  }

  to {
    transform: translate3d(calc(var(--drift, 0) * 1px), 112vh, 0)
      rotate(calc(var(--spin, 160) * 1deg));
  }
}

.date-mark {
  position: absolute;
  left: clamp(26px, 5vw, 64px);
  bottom: 26px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #c7a080;
  font-size: 1rem;
  font-weight: 700;
}

.date-mark img {
  width: 25px;
}

.wave-canvas {
  position: absolute;
  inset: auto 0 0;
  width: 100%;
  height: 188px;
  z-index: 0;
}
