body{
    margin:0;
    height:100vh;
    background:black;
    overflow:hidden;
}

.hearts-container{
    position:relative;
    width:100%;
    height:100vh;
    overflow:hidden;
}

.heart{
    position:absolute;
    width:20px;
    height:20px;
    background:#05845c;
    will-change: transform, opacity;
    animation: floatUp linear forwards;
}

.heart::before,
.heart::after{
    content:"";
    position:absolute;
    width:100%;
    height:100%;
    background:#05845c;
    border-radius:50%;
}

.heart::before{
    top:-50%;
    left:0;
}

.heart::after{
    left:-50%;
    top:0;
}


@keyframes floatUp{
    0%{
        transform:translate(0,0) rotate(45deg);
        opacity:1;
    }
    100%{
        transform:translate(var(--drift), -120vh) rotate(45deg);
        opacity:0;
    }
}


.trail{
    position:fixed;
    pointer-events:none;
    width:60px;
    height:60px;
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
    transition: opacity 0.5s linear, transform 0.5s linear;
}

@keyframes trailFade{
    0%{
        opacity:1;
        transform: translate(-50%, -50%) scale(1);
    }
    100%{
        opacity:0;
        transform:translate(-50%, -50%) scale(0.5);
    }
}

#heartDot {
    width: 15px;
    height: 15px;
    background: rgb(255, 255, 255);
    border-radius: 50%;
    margin: auto;
    cursor: pointer;
}

.center-wrapper {
    position: fixed;
    left: 50%;
    bottom: -120px;
    transform: translateX(-50%);
    text-align: center;
    transition: bottom 1.6s cubic-bezier(.22,1.2,.36,1);
}

.click-text {
    margin-top: 16px;
    font-size: 20px;
    color: white;
    font-family: sans-serif;

    opacity: 0.0;
    transition: opacity 1s ease;
}

.particle {
    position: fixed;
    background: rgb(255, 255, 255);
    border-radius: 50%;
    pointer-events: none;
    transform: translate(0,0) scale(0.5);
    transition: transform 1.5s ease-out, opacity 2s ease-out;
    /*animation: float 2s ease-in-out infinite alternate;*/

    box-shadow: 0 0 5px rgba(150, 241, 199, 0.7), 0 0 0 7px rgba(117, 249, 212, 0.5);

}

/*@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-2px); }
    100% { transform: translateY(0px); }
}
*/

body {
    margin: 0;
    height: 100vh;
    background: linear-gradient(135deg, #006e23, #a2f6aa);
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

#message {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;

    font-size: 24px;
    color: white;
    font-family: sans-serif;

    opacity: 0;
    transition: opacity 2s ease, top 2s ease;
}