.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;
}
