/*==========================================================
VS TECH CCTV
HERO SECTION
==========================================================*/

.hero-section{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    overflow:hidden;
    background:
    radial-gradient(circle at top right,
    rgba(0,194,255,.10),
    transparent 35%),

    radial-gradient(circle at bottom left,
    rgba(29,78,216,.12),
    transparent 35%),

    linear-gradient(135deg,#07101f 0%,#0B132B 50%,#101d38 100%);
}

/* Overlay */

.hero-overlay{

    position:absolute;

    inset:0;

    background:
    linear-gradient(
    rgba(11,19,43,.45),
    rgba(11,19,43,.55));

    z-index:1;

}

/* Particle Container */

#particles-js{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:1;
    pointer-events:none;
}

/* Container */

.hero-section .container{

    position:relative;

    z-index:3;

}

/* Left Content */

.hero-content{

    max-width:620px;

}

.hero-badge{

    margin-bottom:25px;

}

.hero-title{

    font-size:clamp(48px,6vw,72px);

    line-height:1.1;

    color:#fff;

    margin-bottom:25px;

    font-weight:700;

}

.hero-description{

    color:#c7d3e3;

    font-size:19px;

    line-height:1.9;

    margin-bottom:40px;

}

/* Buttons */

.hero-buttons{

    display:flex;

    gap:20px;

    flex-wrap:wrap;

    margin-bottom:55px;

}

/* Statistics */

.hero-stats{

    display:flex;

    gap:28px;

    flex-wrap:wrap;

}

.stat-box{

    min-width:140px;

}

.stat-box h3{

    color:#fff;

    font-size:42px;

    margin-bottom:6px;

    font-weight:700;

}

.stat-box p{

    color:#9fb4d2;

    margin:0;

}

/* Right Side */

.hero-image-wrapper{

    position:relative;

    display:flex;

    justify-content:center;

    align-items:center;

    min-height:650px;

}

/* Camera */

.hero-camera{

    position:relative;

    width:100%;

    max-width:600px;

    z-index:5;

    animation:cameraFloat 5s ease-in-out infinite;

    filter:
    drop-shadow(0 0 25px rgba(0,194,255,.25))
    drop-shadow(0 0 55px rgba(29,78,216,.25));

}

/* Blue Glow */

.hero-glow{

    position:absolute;

    width:420px;

    height:420px;

    border-radius:50%;

    background:
    radial-gradient(circle,
    rgba(0,194,255,.35),
    transparent 70%);

    filter:blur(35px);

    animation:glowPulse 4s ease infinite;

}



/* Floating Cards */

.floating-card{

    position:absolute;

    display:flex;

    align-items:center;

    gap:16px;

    padding:18px 22px;

    border-radius:20px;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(18px);

    border:1px solid rgba(255,255,255,.10);

    color:#fff;

    box-shadow:0 15px 40px rgba(0,0,0,.18);

    z-index:8;

}

.floating-card i{

    font-size:28px;

    color:#00C2FF;

}

.floating-card h6{

    color:#fff;

    margin-bottom:4px;

}

.floating-card small{

    color:#c5d4e8;

}

/*==========================================================
FLOATING CARD POSITIONS
==========================================================*/

.card-one{
    top:80px;
    left:10px;
    animation:floatCardOne 4s ease-in-out infinite;
}

.card-two{
    right:10px;
    bottom:90px;
    animation:floatCardTwo 5s ease-in-out infinite;
}


/*==========================================================
SCROLL INDICATOR
==========================================================*/

.scroll-indicator{
    position:absolute;
    bottom:40px;
    left:50%;
    transform:translateX(-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    color:#ffffff;
    cursor:pointer;
    z-index:20;
}

.scroll-indicator span{
    font-size:13px;
    letter-spacing:2px;
    text-transform:uppercase;
}

.scroll-indicator i{
    font-size:22px;
}

.scroll-indicator span::before{
    content:"";
    position:absolute;
    left:50%;
    top:8px;
    width:6px;
    height:10px;
    background:#00C2FF;
    border-radius:10px;
    transform:translateX(-50%);
    animation:scrollWheel 2s infinite;
}

/*=========================================
Particles
=========================================*/

#particles-js{

position:absolute;

inset:0;

z-index:0;

pointer-events:none;

}

/*==========================================================
ANIMATIONS
==========================================================*/

@keyframes cameraFloat{

    0%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-18px);
    }

    100%{
        transform:translateY(0px);
    }

}

@keyframes glowPulse{

    0%{
        transform:scale(.9);
        opacity:.45;
    }

    50%{
        transform:scale(1.08);
        opacity:1;
    }

    100%{
        transform:scale(.9);
        opacity:.45;
    }

}

@keyframes floatCardOne{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-15px);
    }

    100%{
        transform:translateY(0);
    }

}

@keyframes floatCardTwo{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(15px);
    }

    100%{
        transform:translateY(0);
    }

}

@keyframes scrollWheel{

    0%{
        opacity:1;
        transform:translate(-50%,0);
    }

    100%{
        opacity:0;
        transform:translate(-50%,18px);
    }

}


/*==========================================================
HOVER EFFECTS
==========================================================*/

.hero-camera:hover{
    transform:scale(1.03);
}

.floating-card:hover{
    transform:translateY(-8px);
    box-shadow:0 20px 50px rgba(0,194,255,.25);
    transition:.35s;
}


/*==========================================================
TABLET
==========================================================*/

@media(max-width:991px){

.hero-section{
    text-align:center;
}

.hero-content{
    margin:auto;
}

.hero-buttons{
    justify-content:center;
}

.hero-stats{
    justify-content:center;
}

.hero-image-wrapper{
    min-height:450px;
    margin-top:60px;
}

.hero-camera{
    max-width:420px;
}

.card-one{
    top:20px;
    left:40px;
}

.card-two{
    right:40px;
    bottom:20px;
}

}


/*==========================================================
MOBILE
==========================================================*/

@media(max-width:767px){

.hero-section{
    padding-top:120px;
}

.hero-title{
    font-size:42px;
}

.hero-description{
    font-size:16px;
}

.hero-buttons{
    flex-direction:column;
}

.hero-buttons a{
    width:100%;
}

.hero-stats{
    gap:20px;
}

.stat-box{
    min-width:100px;
}

.stat-box h3{
    font-size:32px;
}

.hero-image-wrapper{
    min-height:360px;
}

.hero-camera{
    max-width:320px;
}

.floating-card{
    transform:scale(.85);
}

.card-one{
    left:0;
    top:20px;
}

.card-two{
    right:0;
    bottom:10px;
}

.scroll-indicator{
    display:none;
}

}


/*==========================================================
SMALL MOBILE
==========================================================*/

@media(max-width:480px){

.hero-title{
    font-size:34px;
}

.hero-description{
    font-size:15px;
}

.hero-camera{
    max-width:260px;
}

.floating-card{
    display:none;
}

.hero-glow{
    width:250px;
    height:250px;
}

}


.hero-section::before{

content:"";

position:absolute;

inset:0;

background-image:

linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),

linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);

background-size:60px 60px;

opacity:.35;

animation:gridMove 20s linear infinite;

}

@keyframes gridMove{

from{

transform:translateY(0);

}

to{

transform:translateY(60px);

}

}

.hero-section::after{

content:"";

position:absolute;

width:800px;

height:800px;

top:-300px;

right:-250px;

border-radius:50%;

background:

conic-gradient(

transparent,

rgba(0,194,255,.18),

transparent

);

animation:radar 10s linear infinite;

filter:blur(45px);

}

@keyframes radar{

from{

transform:rotate(0deg);

}

to{

transform:rotate(360deg);

}

}

.hero-glow::before{

content:"";

position:absolute;

width:150px;

height:150px;

border-radius:50%;

background:#00C2FF;

filter:blur(90px);

top:-80px;

left:-80px;

opacity:.35;

}

.hero-glow::after{

content:"";

position:absolute;

width:220px;

height:220px;

border-radius:50%;

background:#1D4ED8;

filter:blur(120px);

right:-100px;

bottom:-100px;

opacity:.25;

}

/*=========================================
BUTTON SHINE
=========================================*/

.btn-primary-custom{

    position:relative;

    overflow:hidden;

}

.btn-primary-custom::before{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:60%;

    height:100%;

    background:

    linear-gradient(

    120deg,

    transparent,

    rgba(255,255,255,.45),

    transparent

    );

    transform:skewX(-25deg);

}

.btn-primary-custom:hover::before{

    left:150%;

    transition:1s;

}

.hero-camera{

    animation:

    cameraFloat 5s ease-in-out infinite,

    cameraGlow 3s ease-in-out infinite;

}

@keyframes cameraGlow{

    0%{

        filter:

        drop-shadow(0 0 20px rgba(0,194,255,.2));

    }

    50%{

        filter:

        drop-shadow(0 0 45px rgba(0,194,255,.55));

    }

    100%{

        filter:

        drop-shadow(0 0 20px rgba(0,194,255,.2));

    }

}

.record-led{
    position: absolute;

    /* Adjust these values */
    top: 18%;
    right: 17%;

    width: 14px;
    height: 14px;

    border-radius: 50%;
    background: #FF2D55;

    box-shadow:
        0 0 8px #FF2D55,
        0 0 18px #FF2D55,
        0 0 35px rgba(255,45,85,.7);

    animation: recordBlink 1.2s infinite;

    z-index: 15;
}

@keyframes recordBlink{

    0%,100%{
        opacity:1;
        transform:scale(1);
    }

    50%{
        opacity:.25;
        transform:scale(.8);
    }

}

.hero-badge{

    animation:badgeFloat 4s ease-in-out infinite;

}

@keyframes badgeFloat{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-6px);

    }

    100%{

        transform:translateY(0);

    }

}

.hero-title .text-gradient{

    background-size:200% auto;

    animation:textMove 4s linear infinite;

}

@keyframes textMove{

    to{

        background-position:200% center;

    }

}

.scroll-indicator{

    animation:scrollFloat 2s ease-in-out infinite;

}

@keyframes scrollFloat{

    50%{

        transform:

        translateX(-50%)

        translateY(-10px);

    }

}

.floating-card{

    cursor:default;

}

.floating-card:hover{

    border-color:rgba(0,194,255,.35);

    background:rgba(255,255,255,.12);

}