/* =========================================
   LOADING SCREEN
========================================= */

#loader{
    position:fixed;
    inset:0;
    width:100%;
    height:100vh;
    background:#0f0f0f;
    display:flex;
    justify-content:center;
    align-items:center;
    z-index:99999;
    transition:opacity .8s ease, visibility .8s ease;
}

#loader.hide{
    opacity:0;
    visibility:hidden;
}

/* =========================================
   CONTENT
========================================= */

.loader-content{
    width:90%;
    max-width:420px;
    text-align:center;
    color:#fff;
}

/* =========================================
   HEART
========================================= */

.heart{

    width:90px;
    height:90px;

    margin:0 auto 25px;

    display:flex;
    justify-content:center;
    align-items:center;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(10px);

    animation:heartBeat 1.5s infinite;
}

.heart i{

    font-size:42px;

    color:#f3bfd0;

}

/* =========================================
   TITLE
========================================= */

.loader-content h1{

    font-size:30px;

    color:#ffffff;

    margin-bottom:12px;

    font-weight:700;

    letter-spacing:.5px;

}

.loader-content p{

    color:#bdbdbd;

    margin-bottom:35px;

    font-size:16px;

}

/* =========================================
   PROGRESS BAR
========================================= */

.progress{

    width:100%;

    height:10px;

    background:#2a2a2a;

    border-radius:50px;

    overflow:hidden;

    box-shadow:0 0 20px rgba(0,0,0,.35);

}

.progress-bar{

    width:0;

    height:100%;

    border-radius:50px;

    background:linear-gradient(
        90deg,
        #ffffff,
        #f3bfd0,
        #ffffff
    );

    animation:loading 3s linear forwards;

}

/* =========================================
   LOADING TEXT
========================================= */

.loading-text{

    margin-top:25px;

    color:#d7d7d7;

    font-size:14px;

    letter-spacing:2px;

}

.loading-text span{

    animation:dots 1.4s infinite;

}

.loading-text span:nth-child(2){

    animation-delay:.2s;

}

.loading-text span:nth-child(3){

    animation-delay:.4s;

}

/* =========================================
   GLOW
========================================= */

.heart::after{

    content:"";

    position:absolute;

    width:100px;

    height:100px;

    border-radius:50%;

    background:#f3bfd0;

    filter:blur(35px);

    opacity:.18;

    z-index:-1;

}

/* =========================================
   BACKGROUND CIRCLES
========================================= */

#loader::before{

    content:"";

    position:absolute;

    width:260px;

    height:260px;

    border-radius:50%;

    background:#f3bfd0;

    filter:blur(120px);

    top:-120px;

    left:-120px;

    opacity:.18;

}

#loader::after{

    content:"";

    position:absolute;

    width:240px;

    height:240px;

    border-radius:50%;

    background:#ffffff;

    filter:blur(130px);

    right:-120px;

    bottom:-120px;

    opacity:.08;

}

/* =========================================
   KEYFRAMES
========================================= */

@keyframes loading{

    0%{

        width:0;

    }

    100%{

        width:100%;

    }

}

@keyframes heartBeat{

    0%{

        transform:scale(1);

    }

    20%{

        transform:scale(1.15);

    }

    40%{

        transform:scale(.95);

    }

    60%{

        transform:scale(1.12);

    }

    100%{

        transform:scale(1);

    }

}

@keyframes dots{

    0%{

        opacity:.2;

    }

    50%{

        opacity:1;

    }

    100%{

        opacity:.2;

    }

}

/* =========================================
   MOBILE
========================================= */

@media(max-width:768px){

    .loader-content h1{

        font-size:24px;

    }

    .loader-content p{

        font-size:14px;

    }

    .heart{

        width:75px;

        height:75px;

    }

    .heart i{

        font-size:35px;

    }

}