html {
    scroll-behavior: smooth;
}

body {
    font-family: "Josefin Sans", sans-serif;
    font-optical-sizing: auto;
    background-color: #ffffff;
    backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.2);
}

.wrapper{
    position: relative;
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    width: 100%;
    height: 100vh;
    overflow-x: hidden;
}

.no-scroll {
    overflow-y: hidden;
}

.loading-page {
    position: absolute;
    width: 100%;
    height: 100vh;
    z-index: 9991;
    margin: 0;
    color: #000;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background: #cecece;
    /* fallback for old browsers */
    background: -webkit-linear-gradient(to right, #b8b8b8, #E0EAFC);
    /* Chrome 10-25, Safari 5.1-6 */
    background: linear-gradient(to right, #b8b8b8, #E0EAFC);
    /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}

.navbar-bottom {
    position: fixed;
    width: 100%;
    bottom: 0;
    left: 0;
    z-index: 1;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    background-color: #ffffff;
    box-shadow: 0 -0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.navbar-bottom .nav-link {
    font-size: 0.875rem;
    color: #555555;
    text-decoration: none;
}





.font-esthetic {
    font-family: 'Sacramento', cursive !important;
}

.hero {
    color: #fff;
    text-align: center;
    height: 90vh;
    margin-bottom: -5rem;
    position: relative;
}

.hero .hero-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
    filter: brightness(0.5);
}

.mouse-animation {
    height: 2rem;
    box-sizing: content-box;
}

.scroll-animation {
    transform: translateY(0px);
    opacity: 0.514938;
}

.mouse-animation>.scroll-animation {
    width: 0.25rem;
    height: 0.625rem;
    animation: scroll 3s linear infinite;
}

@keyframes scroll {
    0% {
        transform: translateY(0px);
        opacity: 0.514938;
    }

    50% {
        transform: translateY(10px);
        opacity: 1;
    }

    100% {
        transform: translateY(0px);
        opacity: 0.514938;
    }
}

.svg-wrapper {
    color: #fff;
}


/* animated love */
.animate-one-love {
    animation: shakeone 3s infinite;
    transition: all 3s ease;
}
.animate-two-love {
    animation: shaketwo 3s infinite;
    transition: all 3s ease;
}

@keyframes shakeone {
    0% {
        transform: translateY(0);
    }

    25% {
        transform: translateY(-5px);
    }

    50% {
        transform: translateY(5px);
    }

    75% {
        transform: translateY(-5px);
    }

    100% {
        transform: translateY(0);
    }
}
@keyframes shaketwo {
    0% {
        transform: translateY(0);
    }

    25% {
        transform: translateY(5px);
    }

    50% {
        transform: translateY(-5px);
    }

    75% {
        transform: translateY(5px);
    }

    100% {
        transform: translateY(0);
    }
}






/* animated petals */
.petals {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9992;
    overflow: hidden;
}

.petal {
    position: absolute;
    top: -10%;
    width: 8px;
    height: 8px;
    background: pink;
    border-radius: 50%;
    opacity: 0.8;
    animation-name: fall;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

@keyframes fall {
    from {
        transform: translateY(0) rotate(0deg);
        opacity: 1;
    }

    to {
        transform: translateY(110vh) rotate(360deg);
        opacity: 0;
    }
}



/* animated suprise */
#surprise {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
}

.confetti {
    position: absolute;
    top: 75%;
    left: 50%;
    width: 10px;
    height: 10px;
    background: pink;
    border-radius: 50%;
    animation: burst 2.5s ease-out forwards;
}

@keyframes burst {
    0% {
        transform: translate(-50%, -50%) scale(0.3);
        opacity: 1;
    }

    100% {
        transform:
            translate(calc(-50% + var(--x)),
                calc(-50% + var(--y))) rotate(720deg) scale(1);
        opacity: 0;
    }
}






.play-music {
    position: sticky; 
    bottom: 10vh; 
    left: 95vh; 
    z-index: 1030; 
    width: 32px; 
    height: 32px;
    margin-top: -5rem;
}
@media (min-width: 768px) {
    .wrapper {
        width: 480px;
    }
    .loading-page{
        width: 480px;
        left: 50%;
        transform: translate(-50%, 0%);
    }
    
    .navbar-bottom{
        width: 480px;
        left: 50%;
        transform: translate(-50%, 0%);
    }

    .petals{
        width: 480px;
        left: 50%;
        transform: translate(-50%, 0%);
    }
    
}