
/* ==========================
   NAVIGATION
========================== */

nav{

   position:fixed;
   top:0;
   left:0;
   right:0;
   width:100%;
   font-size:12px;
   display:flex;
   justify-content:space-between;
   align-items:center;
   padding:32px 64px;
   color:white;
   z-index:100;
   letter-spacing:2px;
   text-transform:uppercase;
   transition:all .35s ease;


}
nav ul{

   display:flex;
   gap:50px;
   list-style:none;

}

nav li{

   cursor:pointer;
   transition:.3s;

}
nav li:hover{

   opacity:.85;
   transform:translateX(4px);

}

nav a{

    color:inherit;
    text-decoration:none;
    position:relative;

    transition:
        color .35s ease,
        opacity .35s ease;

}

nav a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-6px;

    width:0;

    height:1px;

    background:white;

    transition:width .3s ease;

}

nav a:hover::after{

    width:100%;

}

html{

   scroll-behavior:smooth;

}

/* ==========================
   STICKY NAV
========================== */

nav.scrolled{

    background:rgba(10,10,10,.75);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    padding:16px 48px;
    border-bottom:1px solid rgba(255,255,255,.06);
    transition:all .35s ease;
    box-shadow:0 10px 40px rgba(0,0,0,.2);
}


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

.scroll-indicator{

    margin-top:120px;

    font-size:30px;

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

}

@keyframes float{


   0%{


      transform:translateY(0);

}

   50%{

   transform:translateY(12px);

}

   100%{


      transform:translateY(0);

}

}

@keyframes heroZoom{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.05);

    }

    100%{

        transform:scale(1);

    }

}

/* ==========================
   HERO
========================== */

.hero h1{

   font-size:72px;
   font-weight:700;
   letter-spacing:4px;
   line-height:1;
}

.hero-text p{

   font-size:15px;
   font-weight:500;
   margin-top:24px;
   opacity:.9;
   letter-spacing:3px;
   font-size:15px;
   font-weight:500;

}

.hero{

   position:relative;
   height:100vh;
   overflow:hidden;
   display:flex;
   flex-direction:column;
   justify-content:center;
   align-items:center;

}

/* ==========================
   HERO VIDEO
========================== */

.hero video{

   position:absolute;
   top:0;
   left:0;
   width:100%;
   height:100%;
   object-fit:cover;

   transition:transform .25s ease;

}

/* ==========================
   HERO CONTENT TEXT
========================== */

.hero::after{
    
    content:"";
    
    position:absolute;
    
    left:0;
    bottom:0;
    width:100%;
    height:300px;
    background:linear-gradient(
         
        180deg,

        rgba(17,17,17,0) 0%,

        rgba(17,17,17,.15) 30%,

        rgba(17,17,17,.55) 70%,

        #000000 100%
    
    );

     pointer-events:none;
}

.hero-text{

   display:flex;
   flex-direction:column;
   position:relative;
   z-index:2;
   color:rgb(249, 253, 18);
   text-align:center;
   line-height:0;

}

.overlay{

    position:absolute;
    inset:0;
    background:rgba(0,0,0,.18);

}
/* ==========================
   ABOUT
========================== */

.about{

    padding:160px 0 120px;
    background:var(--color-black);
    color:var(--color-white);   

}

.about h2{

    font-size:60px;
    letter-spacing:5px;
    text-transform:uppercase;
    margin-bottom:32px;

}

.about h3{

    font-size:24px;
    letter-spacing:4px;
    text-transform:uppercase;
    margin-bottom:32px;

}

.about p{

    max-width:620px;
    margin-top:32px;
    line-height:1.8;
    font-size:20px;
    letter-spacing:2px;

}

.about-wrapper{

    display:flex;
    justify-content:space-between;
    align-items:center;

}

.about-text{

    width:55%;

}

.about-text p{
    
    text-indent:2em;

}

.about-image{

    width:40%;
    display:flex;
    justify-content:flex-end;
    overflow:hidden;


}

.about-image img{

    width:100%;
    max-width:360px;
    border-radius:4px;
    
    box-shadow:
        0 0 80px rgba(255,255,255,.05);

    filter:grayscale(100%);

    transition:
        transform .8s ease,
        filter .8s ease,
        opacity .8s ease;

}

.about-image:hover img{

    transform:scale(1.03);
    filter:grayscale(0);

}


.contact h2{

    margin-bottom:24px;

}

.contact-intro{

    max-width:500px;

    line-height:1.8;

    opacity:.7;

    margin-bottom:28px;

}

/* ==========================
   WORKS
========================== */

.works-menu{

    padding:96px 0px;
    background:var(--color-black);
   

}

.works-menu h2{

    font-size:18px;
    text-transform:uppercase;
    letter-spacing:2px;
    color:var(--color-white);
    margin-top:-10px;

}

.works-menu h3{

    font-size:18px;
    color:var(--color-white);
    letter-spacing:-2px;
    margin-bottom:-20px;
    margin-top:-20px;

}

.works-menu h4{

    font-size:48px;
    color:var(--color-white);
    letter-spacing:2px;
    margin-bottom:-10px;
}

.project{

    display:grid;

    grid-template-columns: 1fr 120px;

    align-items:center;

    gap:40px;

    margin-top:60px;

    padding:42px 0;

    border-bottom:1px solid var(--color-darkgray);

    color:inherit;

    text-decoration:none;

    transition:
        grid-template-columns .45s cubic-bezier(.22,.61,.36,1),
        padding .45s ease,
        border-color .35s ease,
        border-bottom-color .35s ease;

}

.project:hover{

    grid-template-columns:1fr 420px;

    padding-right:20px;

    border-color:rgba(255,255,255,.22);

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

}

.arrow{

    display:block;

    text-align:right;

    letter-spacing:2px;

    text-transform:uppercase;

    font-size:14px;

    opacity:.7;

    transition:

        opacity .2s ease,

        transform .2s ease;

}

.project:hover .arrow{

    opacity:0;

    transform:translateX(20px);

}

.project span{

    font-size:15px;

}

.project-text{
    
    transition:
        transform .45s cubic-bezier(.22,.61,.36,1);

}

.project:hover .project-text{

    transform:translateX(8px);

}

.project-text h3{

    font-size:38px;
    font-weight:600;
    letter-spacing:-1px;
    margin-bottom:24px;


}

.project-description{

    font-size:17px;

    line-height:1.8;

    opacity:.82;

    margin:14px 0;

    max-width:520px;

}

.project-text span{

    font-size:14px;

    opacity:.55;

    letter-spacing:1px;

}

.project-media{

    position:relative;

    width:100%;

    height:150px;

    display:flex;

    justify-content:flex-end;

    align-items:center;

    overflow:hidden;

}

.project-preview{

    position:absolute;

    inset:0;

    opacity:0;

    filter:blur(6px);

    transform:translateX(40px);

    transition:
        opacity .35s ease .18s,

        transform .45s ease .18s,
        
        filter .45s ease .18s;

}

.project-preview video{

    width:100%;

    height:100%;

    object-fit:cover;

    transform:scale(1.04);

    will-change:

        transform,
        opacity;

    transition:
        transform .8s ease,
        opacity .45s ease;

    /* ===== Gradient Mask ===== */

    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        rgba(0,0,0,.05) 6%,
        rgba(0,0,0,.15) 12%,
        rgba(0,0,0,.35) 20%,
        rgba(0,0,0,.65) 30%,
        rgba(0,0,0,.9) 45%,
        #000 60%
    );

    mask-image: linear-gradient(
        to right,
        transparent 0%,
        rgba(0,0,0,.05) 6%,
        rgba(0,0,0,.15) 12%,
        rgba(0,0,0,.35) 20%,
        rgba(0,0,0,.65) 30%,
        rgba(0,0,0,.9) 45%,
        #000 60%
    );

}

.project:hover .project-preview video{

    transform:scale(1);

}


.project:hover .project-preview{

    opacity:1;

    filter:blur(0);

    transform:translateX(0);

}

/* ==========================
   CONTACT
========================== */


.contact {

    padding:72px 0 140px;

}

.contact h2{

    margin-bottom:24px;

}

.contact-intro{

    max-width:620px;

    margin-top:28px;

    color:var(--color-gray);

    line-height:1.9;

}

.contact-grid{

    margin-top:70px;

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:60px 120px;

}

.contact-item{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.contact-label{

    font-size:12px;

    letter-spacing:2px;

    text-transform:uppercase;

    color:var(--color-gray);

}

.contact-item a,
.contact-item p{

    font-size:24px;

    color:var(--color-white);

    text-decoration:none;

    transition:

        opacity .35s ease,

        transform .35s ease;

}

.contact-item a:hover{

    opacity:.65;
    transform:translateX(8px);


}

/* ==========================
   FOOTER
========================== */

.footer{

    padding:30px 0;

    background:#000000;

    border-top:1px solid rgba(255,255,255,.08);

}

.footer .container{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    gap:80px;

    position:relative;

}

.footer-left h2{

    font-size:28px;

    margin-bottom:12px;

    letter-spacing:2px;

}

.footer-left p{

    opacity:.65;

    line-height:1.8;

}

.footer-social{

    display:flex;

    align-items:center;

    gap:20px;

    margin-top:18px;

}

.footer-social a{

    display:flex;

    align-items:center;

    justify-content:center;

    opacity:.6;

    transition:
        opacity .3s ease,
        transform .3s ease;



}

.footer-social a:hover{

    opacity:1;

    transform:translateY(-3px);

}

.footer-social img{

    width:22px;
    height:22px;

    opacity:.55;

    filter:brightness(0) invert(1);

    transition:
        opacity .3s ease,
        transform .3s ease;

}

.footer-social a:hover img{

    opacity:1;

    transform:translateY(-3px);

}

.footer-right{

    text-align:right;

}

.footer-right a{

    color:white;

    text-decoration:none;

    display:block;

    margin-bottom:16px;

    transition:opacity .3s ease;

}

.footer-right a:hover{

    opacity:.6;

}

.footer-right p{

    opacity:.55;

}

.footer-phone{

    display:flex;

    justify-content:flex-end;

    align-items:center;

    gap:10px;

    margin-bottom:16px;

}

.footer-phone img{

    width:18px;

    height:18px;

    opacity:.7;

    filter:brightness(0) invert(1);

}

.footer-phone span{

    color:white;

}

.footer-copyright{

    position:absolute;

    left:50%;

    bottom:2;

    transform:translateX(-50%);

    font-size:15px;
}


.footer-copyright p{

    opacity:.65;

    font-size:14px;
    
    line-height:0.4;

    white-space:nowrap;
    

}

/* ==========================
   ACTIVE NAVIGATION
========================== */

nav a.active{

    opacity:1;

}

nav a.active::after{

    width:100%;

}

/* ==========================
   TOOLS
========================== */

.tools{

    padding:100px 0;

}

.tools h2{

    font-size:14px;

    letter-spacing:2px;

    margin-bottom:48px;

    text-align:center;

    opacity:.7;

}

.tools-grid{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:72px;

    flex-wrap:wrap;


}

.tools-grid img{

    height:42px;

    opacity:.55;

    transition:.3s ease;

}

.tools-grid img:hover{

    opacity:1;

    transform:translateY(-4px);

}

.tools-subtitle{

    margin-top:80px;

}

/* ==========================
   INTRO OVERLAY
========================== */

.intro-overlay{

    position:fixed;

    inset:0;

    display:flex;

    justify-content:center;

    align-items:center;

    background:rgba(0,0,0,.60);

    backdrop-filter:blur(4px);

    -webkit-backdrop-filter:blur(4px);

    z-index:99999;

    opacity:0;

    visibility:hidden;

    pointer-events:none;

    transition:
        opacity .6s ease,
        visibility .6s ease;

}

.intro-overlay.show{

    opacity:1;

    visibility:visible;

    pointer-events:auto;

}

.intro-content{

    text-align:center;

    color:white;

    max-width:620px;

    padding:40px;

}

.intro-content h2{

    font-size:52px;

    letter-spacing:4px;

    margin-bottom:26px;

    font-weight:600;

}

.intro-content p{

    line-height:2;

    opacity:.7;

    margin-bottom:42px;

    letter-spacing:1px;

}

.desktop-notice-close{

    background:none;

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

    color:white;

    padding:16px 44px;

    letter-spacing:2px;

    cursor:pointer;

    transition:.35s ease;

}

.desktop-notice-close:hover{

    background:white;

    color:black;

}