/*==========================================
        GOOGLE FONT
==========================================*/

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

/*==========================================
        ROOT VARIABLES
==========================================*/

:root{

    --primary:#315CFF;
    --secondary:#6A5CFF;
    --accent:#2ED3FF;

    --dark:#070B1E;
    --dark2:#0D132B;
    --dark3:#161D38;

    --white:#ffffff;
    --text:#C9D2F0;

    --border:rgba(255,255,255,.08);

    --glass:rgba(255,255,255,.05);

    --shadow:0 15px 40px rgba(0,0,0,.35);

    --radius:18px;

    --transition:.4s ease;

}

/*==========================================
        RESET
==========================================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    scroll-behavior:smooth;
    scroll-padding-top:90px;

}

body{

    font-family:'Plus Jakarta Sans',sans-serif;

    background:var(--dark);

    color:#fff;

    overflow-x:hidden;

    line-height:1.7;

}

a{

    text-decoration:none;
    transition:var(--transition);

}

img{

    max-width:100%;
    display:block;

}

ul{

    list-style:none;
    padding:0;
    margin:0;

}

.section-padding{

    padding:110px 0;

}

.container{

    position:relative;
    z-index:5;

}

/*==========================================
        SCROLLBAR
==========================================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#081124;

}

::-webkit-scrollbar-thumb{

    background:linear-gradient(
    180deg,
    var(--primary),
    var(--secondary));

    border-radius:50px;

}

/*==========================================
        BACKGROUND
==========================================*/

body::before{

    content:"";

    position:fixed;

    width:700px;
    height:700px;

    border-radius:50%;

    background:rgba(49,92,255,.18);

    filter:blur(180px);

    top:-300px;
    left:-200px;

    z-index:-3;

}

body::after{

    content:"";

    position:fixed;

    width:650px;
    height:650px;

    border-radius:50%;

    background:rgba(106,92,255,.15);

    filter:blur(170px);

    bottom:-250px;
    right:-150px;

    z-index:-3;

}

/*==========================================
        PRELOADER
==========================================*/

#preloader{

    position:fixed;

    inset:0;

    background:#050816;

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:999999;

}

.loader{

    width:70px;

    height:70px;

    border:4px solid rgba(255,255,255,.08);

    border-top:4px solid var(--accent);

    border-radius:50%;

    animation:spin 1s linear infinite;

}

@keyframes spin{

    to{

        transform:rotate(360deg);

    }

}

/*==========================================
        BUTTONS
==========================================*/

.btn{

    padding:14px 34px;

    border-radius:60px;

    font-weight:700;

    transition:.4s;

    position:relative;

    overflow:hidden;

}

.btn-primary{

    background:linear-gradient(
    135deg,
    var(--primary),
    var(--secondary));

    border:none;

    box-shadow:0 15px 35px rgba(49,92,255,.35);

}

.btn-primary:hover{

    transform:translateY(-4px);

    box-shadow:0 20px 45px rgba(49,92,255,.45);

}

.btn-outline-light{

    border:1px solid rgba(255,255,255,.25);

    color:#fff;

}

.btn-outline-light:hover{

    background:#fff;

    color:#111;

}

/*==========================================
        SECTION TITLE
==========================================*/

.section-title{

    margin-bottom:60px;

}

.section-title span{

    display:inline-block;

    color:var(--accent);

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

    margin-bottom:15px;

}

.section-title h2{

    font-size:48px;

    font-weight:800;

    line-height:1.2;

    margin-bottom:20px;

}

.section-title p{

    color:var(--text);

    max-width:700px;

    margin:auto;

}

/*==========================================
        NAVBAR
==========================================*/

.header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    z-index:999;

}

.navbar{

    padding:20px 0;

    transition:.4s;

}

.navbar.scrolled{

    background:rgba(10,16,38,.78);

    backdrop-filter:blur(20px);

    border-bottom:1px solid rgba(255,255,255,.08);

}

.navbar-brand img{

    height:55px;

}

.navbar-nav{

    gap:20px;

}

.nav-link{

    color:#fff;

    font-weight:600;

    position:relative;

}

.nav-link::after{

    content:"";

    position:absolute;

    width:0;

    height:2px;

    left:0;

    bottom:-8px;

    background:var(--accent);

    transition:.4s;

}

.nav-link:hover::after,

.nav-link.active::after{

    width:100%;

}

.nav-link:hover{

    color:var(--accent);

}

.navbar-toggler{

    border:none;

    color:#fff;

    font-size:26px;

}

/*==========================================
        GLASS CARD
==========================================*/

.glass{

    background:var(--glass);

    backdrop-filter:blur(18px);

    border:1px solid var(--border);

    border-radius:var(--radius);

    box-shadow:var(--shadow);

}

/*==========================================
        CARD HOVER
==========================================*/

.hover-card{

    transition:.45s;

}

.hover-card:hover{

    transform:translateY(-12px);

    box-shadow:0 30px 60px rgba(0,0,0,.35);

}

/*==========================================
        TEXT
==========================================*/

p{

    color:var(--text);

}

h1,h2,h3,h4,h5{

    color:#fff;

    font-weight:700;

}

/*==========================================
        SPACING
==========================================*/

.mt-100{

    margin-top:100px;

}

.mb-100{

    margin-bottom:100px;

}

/*==================================================
                HERO SECTION
==================================================*/

.hero{

    min-height:100vh;

    background:
        linear-gradient(rgba(5,10,30,.65),
                        rgba(5,10,30,.65)),
        url("../images/hero-banner.png");

    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;

    display:flex;
    align-items:center;
}

/*==================================
        Hero Background
==================================*/

.hero-bg{

    position:absolute;

    inset:0;

    background:url("../images/background/grid.png");

    opacity:.05;

    background-size:cover;

    animation:bgMove 30s linear infinite;

}

 .navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
    color: rgb(28, 200, 212)
     !important;
}
@keyframes bgMove{

    0%{

        transform:translateY(0);

    }

    100%{

        transform:translateY(-200px);

    }

}

/*==================================
        Floating Blur
==================================*/

.hero::before{

    content:"";

    position:absolute;

    width:550px;

    height:550px;

    background:#315CFF;

    opacity:.18;

    filter:blur(170px);

    border-radius:50%;

    left:-180px;

    top:-180px;

}

.hero::after{

    content:"";

    position:absolute;

    width:500px;

    height:500px;

    background:#6A5CFF;

    opacity:.18;

    filter:blur(170px);

    border-radius:50%;

    right:-180px;

    bottom:-180px;

}

/*==================================
        Hero Content
==================================*/

.hero-content{

    position:relative;

    z-index:5;

}

.hero-tag{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:10px 24px;

    border-radius:50px;

    color:#fff;

    background:rgba(255,255,255,.07);

    border:1px solid rgba(255,255,255,.1);

    backdrop-filter:blur(20px);

    font-weight:600;

    margin-bottom:30px;

}

.hero-tag::before{

    content:"";

    width:10px;

    height:10px;

    border-radius:50%;

    background:#2ED3FF;

    box-shadow:0 0 15px #2ED3FF;

}

/*==================================
        Heading
==================================*/

.hero h1{

    font-size:72px;

    font-weight:800;

    line-height:1.1;

    letter-spacing:-2px;

    margin-bottom:25px;

}

.hero h1 span{

    display:block;

    background:linear-gradient(
        90deg,
        #ffffff,
        #57C7FF,
        #7E6BFF);

    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;

}

.hero p{

    font-size:20px;

    max-width:600px;

    color:#C8D0E9;

    margin-bottom:45px;

}

/*==================================
        Buttons
==================================*/

.hero-buttons{

    display:flex;

    gap:20px;

    flex-wrap:wrap;

    margin-bottom:60px;

}

.hero-buttons .btn{

    min-width:180px;

    height:58px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:60px;

    font-size:16px;

}

/*==================================
        Statistics
==================================*/

.hero-info{

    display:flex;

    gap:25px;

    flex-wrap:wrap;

}

.info-box{

    padding:22px 28px;

    min-width:160px;

    background:rgba(255,255,255,.06);

    backdrop-filter:blur(18px);

    border:1px solid rgba(255,255,255,.08);

    border-radius:18px;

    transition:.4s;

}

.info-box:hover{

    transform:translateY(-10px);

    box-shadow:0 20px 45px rgba(0,0,0,.35);

}

.info-box h3{

    font-size:34px;

    margin-bottom:6px;

    color:#2ED3FF;

}

.info-box p{

    font-size:14px;

    margin:0;

}

/*==================================
        Hero Image
==================================*/

.hero-image{

    position:relative;

    text-align:center;

}

.hero-image img{

    max-width:90%;

    animation:floatImage 5s ease-in-out infinite;

    position:relative;

    z-index:3;

}

@keyframes floatImage{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-20px);

    }

    100%{

        transform:translateY(0);

    }

}

/*==================================
        Glow Circle
==================================*/

.glow-circle{

    position:absolute;

    width:430px;

    height:430px;

    border-radius:50%;

    background:#315CFF;

    filter:blur(120px);

    opacity:.25;

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    z-index:1;

}

/*==================================
        Floating Cards
==================================*/

.glass-card{

    position:absolute;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);

    color:#fff;

    border-radius:18px;

    padding:18px 24px;

    font-weight:600;

    box-shadow:0 20px 40px rgba(0,0,0,.35);

    animation:floatCard 5s ease-in-out infinite;

}

.glass-card i{

    color:#2ED3FF;

    margin-right:10px;

}

.card1{

    top:10%;

    left:-5%;

}

.card2{

    top:48%;

    right:-5%;

}

.card3{

    bottom:12%;

    left:5%;

}

@keyframes floatCard{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-15px);

    }

    100%{

        transform:translateY(0);

    }

}

/*==================================
        Floating Shapes
==================================*/

.floating{

    position:absolute;

    border-radius:50%;

    opacity:.25;

    filter:blur(2px);

}

.one{

    width:18px;

    height:18px;

    background:#2ED3FF;

    top:20%;

    left:8%;

    animation:move1 7s linear infinite;

}

.two{

    width:24px;

    height:24px;

    background:#6A5CFF;

    right:10%;

    top:35%;

    animation:move2 8s linear infinite;

}

.three{

    width:14px;

    height:14px;

    background:#ffffff;

    left:45%;

    bottom:12%;

    animation:move3 6s linear infinite;

}

@keyframes move1{

    50%{

        transform:translateY(-40px);

    }

}

@keyframes move2{

    50%{

        transform:translateX(30px);

    }

}

@keyframes move3{

    50%{

        transform:translateY(-30px);

    }

}

/*==================================
        Scroll Down
==================================*/

.scroll-down{

    position:absolute;

    left:50%;

    bottom:40px;

    transform:translateX(-50%);

    width:55px;

    height:55px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    color:#fff;

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(20px);

    animation:bounce 2s infinite;

}

@keyframes bounce{

    50%{

        transform:translate(-50%,-12px);

    }

}

/*==================================================
                STATISTICS
==================================================*/

.statistics{

    position:relative;

    margin-top:-80px;

    z-index:20;

}

.stat-card{

    position:relative;

    overflow:hidden;

    padding:45px 30px;

    text-align:center;

    border-radius:24px;

    background:rgba(255,255,255,.06);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);

    transition:.4s;

    box-shadow:0 20px 45px rgba(0,0,0,.25);

}

.stat-card::before{

    content:"";

    position:absolute;

    width:120px;

    height:120px;

    background:rgba(49,92,255,.18);

    border-radius:50%;

    top:-50px;

    right:-40px;

    filter:blur(25px);

}

.stat-card:hover{

    transform:translateY(-12px);

    border-color:#315CFF;

    box-shadow:0 30px 60px rgba(49,92,255,.20);

}

.stat-card i{

    font-size:42px;

    color:var(--accent);

    margin-bottom:20px;

}

.stat-card h2{

    font-size:50px;

    font-weight:800;

    margin-bottom:10px;

}

.stat-card span{

    font-size:28px;

    color:var(--accent);

    font-weight:700;

}

.stat-card p{

    margin:0;

    color:#cfd6ef;

    font-size:16px;

}

/*==================================================
                    ABOUT
==================================================*/

.about{

    position:relative;

}

.about-images{

    position:relative;

    padding-right:70px;

}

.main-img{

    border-radius:28px;

    box-shadow:0 30px 70px rgba(0,0,0,.35);

}

.floating-img{

    position:absolute;

    width:280px;

    bottom:-50px;

    right:0;

    border:8px solid #0b1435;

    border-radius:22px;

    animation:floatSmall 5s ease-in-out infinite;

}

@keyframes floatSmall{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-12px);

    }

    100%{

        transform:translateY(0);

    }

}

.about-text{

    font-size:17px;

    margin-bottom:25px;

    color:#C9D2F0;

}

/*==================================================
            FEATURE BOX
==================================================*/

.feature-box{

    display:flex;

    align-items:flex-start;

    gap:18px;

    padding:24px;

    border-radius:20px;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(16px);

    border:1px solid rgba(255,255,255,.08);

    transition:.4s;

    height:100%;

}

.feature-box:hover{

    transform:translateY(-10px);

    border-color:#315CFF;

    box-shadow:0 25px 55px rgba(0,0,0,.30);

}

.feature-box i{

    width:65px;

    height:65px;

    border-radius:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:26px;

    color:#fff;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary));

    flex-shrink:0;

}

.feature-box h5{

    margin-bottom:8px;

    font-size:20px;

}

.feature-box p{

    margin:0;

    font-size:15px;

}

/*==================================================
                    SERVICES
==================================================*/

.services{

    position:relative;

}

.service-card{

    position:relative;

    overflow:hidden;

    height:100%;

    padding:45px 35px;

    border-radius:24px;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);

    transition:.45s;

    text-align:center;

}

.service-card::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        135deg,
        rgba(49,92,255,.15),
        transparent);

    opacity:0;

    transition:.45s;

}

.service-card:hover::before{

    opacity:1;

}

.service-card:hover{

    transform:translateY(-15px);

    box-shadow:0 35px 70px rgba(0,0,0,.35);

    border-color:#315CFF;

}

.service-icon{

    width:90px;

    height:90px;

    margin:auto;

    margin-bottom:28px;

    border-radius:24px;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:34px;

    color:#fff;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary));

    box-shadow:0 15px 35px rgba(49,92,255,.35);

}

.service-card h4{

    margin-bottom:20px;

    font-size:25px;

    font-weight:700;

}

.service-card p{

    color:#CBD3ED;

    margin:0;

}

/*==================================================
            SECTION BACKGROUND EFFECT
==================================================*/

.about::before,
.services::before{

    content:"";

    position:absolute;

    width:500px;

    height:500px;

    border-radius:50%;

    background:#315CFF;

    opacity:.05;

    filter:blur(150px);

    z-index:-1;

}

.about::before{

    left:-250px;

    top:120px;

}

.services::before{

    right:-250px;

    bottom:0;

}

/*==================================================
                WHY CHOOSE US
==================================================*/

.why-us{
    position:relative;
    overflow:hidden;
}

.why-card{

    height:100%;

    padding:40px 30px;

    border-radius:24px;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);

    text-align:center;

    transition:.45s;

    position:relative;

    overflow:hidden;

}

.why-card::before{

    content:"";

    position:absolute;

    width:180px;
    height:180px;

    background:rgba(49,92,255,.18);

    border-radius:50%;

    top:-80px;
    right:-80px;

    filter:blur(45px);

}

.why-card:hover{

    transform:translateY(-15px);

    border-color:var(--primary);

    box-shadow:0 30px 70px rgba(0,0,0,.35);

}

.why-icon{

    width:85px;

    height:85px;

    margin:auto;

    margin-bottom:25px;

    border-radius:22px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:linear-gradient(
    135deg,
    var(--primary),
    var(--secondary));

    color:#fff;

    font-size:34px;

}

.why-card h4{

    margin-bottom:18px;

    font-size:24px;

}

.why-card p{

    margin:0;

}

/*==================================================
                    TIMELINE
==================================================*/

.timeline{

    position:relative;

}

.timeline-wrapper{

    position:relative;

    margin-top:70px;

    padding-left:40px;

}

.timeline-wrapper::before{

    content:"";

    position:absolute;

    left:40px;

    top:0;

    width:4px;

    height:100%;

    background:linear-gradient(
    var(--primary),
    var(--secondary));

}

.timeline-item{

    position:relative;

    display:flex;

    align-items:center;

    margin-bottom:60px;

}

.timeline-year{

    width:90px;

    height:90px;

    border-radius:50%;

    background:linear-gradient(
    135deg,
    var(--primary),
    var(--secondary));

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:24px;

    font-weight:700;

    color:#fff;

    box-shadow:0 15px 40px rgba(49,92,255,.35);

    position:relative;

    left:-45px;

    z-index:5;

}

.timeline-content{

    margin-left:25px;

    padding:30px;

    border-radius:20px;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);

    flex:1;

    transition:.4s;

}

.timeline-content:hover{

    transform:translateX(10px);

    border-color:var(--primary);

}

/*==================================================
                    CTA
==================================================*/

.cta{

    padding:120px 0;

}

.cta-box{

    border-radius:35px;

    text-align:center;

    padding:90px 40px;

    background:

    linear-gradient(
    135deg,
    rgba(49,92,255,.9),
    rgba(106,92,255,.9));

    position:relative;

    overflow:hidden;

}

.cta-box::before{

    content:"";

    position:absolute;

    width:350px;

    height:350px;

    border-radius:50%;

    background:rgba(255,255,255,.10);

    top:-120px;

    right:-100px;

}

.cta-box::after{

    content:"";

    position:absolute;

    width:250px;

    height:250px;

    border-radius:50%;

    background:rgba(255,255,255,.10);

    bottom:-80px;

    left:-80px;

}

.cta-box h2{

    font-size:50px;

    margin-bottom:20px;

}

.cta-box p{

    color:#fff;

    max-width:700px;

    margin:auto;

    margin-bottom:35px;

    font-size:18px;

}

/*==================================================
                    CONTACT
==================================================*/

.contact{

    position:relative;

}

.contact-info{

    padding-right:50px;

}

.contact-info span{

    color:var(--accent);

    font-weight:700;

    letter-spacing:2px;

}

.contact-info h2{

    font-size:48px;

    margin:15px 0 25px;

}

.contact-item{

    display:flex;

    align-items:flex-start;

    gap:20px;

    margin-top:28px;

}

.contact-item i{

    width:60px;

    height:60px;

    border-radius:18px;

    background:linear-gradient(
    135deg,
    var(--primary),
    var(--secondary));

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:22px;

}

.contact-item div{

    color:#fff;

    font-size:18px;

    padding-top:15px;

}

/*==================================================
                SOCIAL
==================================================*/

.social-icons{

    display:flex;

    gap:18px;

    margin-top:40px;

}

.social-icons a{

    width:52px;

    height:52px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(255,255,255,.06);

    border:1px solid rgba(255,255,255,.08);

    color:#fff;

    transition:.35s;

}

.social-icons a:hover{

    background:var(--primary);

    transform:translateY(-8px);

}

/*==================================================
                CONTACT FORM
==================================================*/

.contact-form{

    padding:50px;

    border-radius:30px;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);

}

.form-control{

    background:rgba(255,255,255,.05);

    border:1px solid rgba(255,255,255,.08);

    color:#fff;

    height:60px;

    border-radius:16px;

    margin-bottom:25px;

    padding:18px;

}

textarea.form-control{

    height:180px;

    resize:none;

}

.form-control:focus{

    background:rgba(255,255,255,.08);

    border-color:var(--primary);

    box-shadow:none;

    color:#fff;

}

.form-control::placeholder{

    color:#a8b4d5;

}

/*==================================================
                    FOOTER
==================================================*/

.footer{

    position:relative;

    padding-top:120px;

    background:#050816;

    border-top:1px solid rgba(255,255,255,.06);

    overflow:hidden;

}

.footer::before{

    content:"";

    position:absolute;

    width:700px;

    height:700px;

    background:rgba(49,92,255,.08);

    border-radius:50%;

    filter:blur(180px);

    left:-250px;

    top:-250px;

}

.footer-logo{

    height:65px;

    margin-bottom:25px;

}

.footer-text{

    color:#BFC8E6;

    margin-bottom:30px;

    line-height:1.9;

}

.footer h5{

    color:#fff;

    margin-bottom:30px;

    font-size:22px;

    font-weight:700;

}

.footer-links{

    padding:0;

    margin:0;

    list-style:none;

}

.footer-links li{

    margin-bottom:16px;

}

.footer-links li a{

    color:#BFC8E6;

    transition:.35s;

    display:inline-block;

}

.footer-links li a:hover{

    color:var(--accent);

    transform:translateX(8px);

}

.footer-social{

    display:flex;

    gap:15px;

}

.footer-social a{

    width:48px;

    height:48px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:rgba(255,255,255,.06);

    border:1px solid rgba(255,255,255,.08);

    color:#fff;

    transition:.35s;

}

.footer-social a:hover{

    background:linear-gradient(
    135deg,
    var(--primary),
    var(--secondary));

    transform:translateY(-8px);

}

/*==================================================
                NEWSLETTER
==================================================*/

.newsletter{

    display:flex;

    margin-top:25px;

    position:relative;

}

.newsletter input{

    width:100%;

    height:58px;

    border:none;

    outline:none;

    border-radius:50px;

    padding:0 65px 0 22px;

    background:rgba(255,255,255,.06);

    color:#fff;

    border:1px solid rgba(255,255,255,.08);

}

.newsletter input::placeholder{

    color:#aab5d6;

}

.newsletter button{

    position:absolute;

    right:5px;

    top:5px;

    width:48px;

    height:48px;

    border:none;

    border-radius:50%;

    background:linear-gradient(
    135deg,
    var(--primary),
    var(--secondary));

    color:#fff;

    cursor:pointer;

}

/*==================================================
                FOOTER BOTTOM
==================================================*/

.footer-bottom{

    margin-top:80px;

    border-top:1px solid rgba(255,255,255,.08);

    padding:28px 0;

    color:#AEB8D9;

}

/*==================================================
                BACK TO TOP
==================================================*/

#backToTop{

    position:fixed;

    right:30px;

    bottom:30px;

    width:58px;

    height:58px;

    border:none;

    border-radius:50%;

    background:linear-gradient(
    135deg,
    var(--primary),
    var(--secondary));

    color:#fff;

    cursor:pointer;

    opacity:0;

    visibility:hidden;

    transition:.4s;

    z-index:999;

    box-shadow:0 15px 40px rgba(49,92,255,.35);

}

#backToTop.show{

    opacity:1;

    visibility:visible;

}

#backToTop:hover{

    transform:translateY(-8px);

}

/*==================================================
                CUSTOM CURSOR
==================================================*/

.cursor-dot{

    width:8px;

    height:8px;

    background:#2ED3FF;

    border-radius:50%;

    position:fixed;

    pointer-events:none;

    z-index:99999;

    transform:translate(-50%,-50%);

}

.cursor-outline{

    width:38px;

    height:38px;

    border:2px solid rgba(46,211,255,.5);

    border-radius:50%;

    position:fixed;

    pointer-events:none;

    z-index:99998;

    transform:translate(-50%,-50%);

    transition:.08s;

}

/*==================================================
            GLASS HOVER EFFECT
==================================================*/

.glass-hover{

    transition:.4s;

}

.glass-hover:hover{

    transform:translateY(-10px);

    border-color:var(--primary);

    box-shadow:0 25px 60px rgba(49,92,255,.18);

}

/*==================================================
                IMAGE HOVER
==================================================*/

img{

    transition:.45s;

}

.hover-zoom{

    overflow:hidden;

    border-radius:24px;

}

.hover-zoom img:hover{

    transform:scale(1.08);

}

/*==================================================
            GRADIENT TEXT
==================================================*/

.gradient-text{

    background:linear-gradient(
    90deg,
    #fff,
    #58C9FF,
    #786BFF);

    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;

}

/*==================================================
            GENERAL TRANSITIONS
==================================================*/

section{

    position:relative;

}

button,
a,
input,
textarea{

    transition:.35s;

}

/*==================================================
            SELECTION
==================================================*/

::selection{

    background:var(--primary);

    color:#fff;

}

/*==================================================
            UTILITIES
==================================================*/

.rounded-xl{

    border-radius:24px;

}

.shadow-xl{

    box-shadow:0 30px 70px rgba(0,0,0,.35);

}

.bg-glass{

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(18px);

}

.text-gradient{

    background:linear-gradient(
    135deg,
    var(--accent),
    #ffffff);

    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;

}

/*==================================================
            SMOOTH ANIMATION
==================================================*/

.fade-up{

    animation:fadeUp .8s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}