*,
*::before,
*::after{

    margin:0;
    padding:0;

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Manrope',sans-serif;

    background:var(--bg);

    color:var(--white);

    overflow-x:hidden;

}

img{

    display:block;

    width:100%;

}

a{

    text-decoration:none;

    color:inherit;

}

button{

    border:none;

    cursor:pointer;

    background:none;

}

ul{

    list-style:none;

}

.menu.active{

    right:0;

}

body.lock{

    overflow:hidden;

}

.hotspot.active{

    transform:scale(1.5);

    background:white;

    box-shadow:0 0 35px var(--gold);

}

.menu a.current{

    color:var(--gold);

}

.btn{

    position:relative;

    overflow:hidden;

}

.btn::before{

    content:"";

    position:absolute;

    width:0;

    height:0;

    left:var(--x);

    top:var(--y);

    transform:translate(-50%,-50%);

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

    border-radius:50%;

    transition:.45s;

}

.btn:hover::before{

    width:320px;

    height:320px;

}

.preloader{

    position:fixed;

    inset:0;

    background:#090909;

    display:flex;

    align-items:center;

    justify-content:center;

    z-index:9999;

    transition:1s;

}

.preloader.hide{

    opacity:0;

    visibility:hidden;

}

.preloader-logo{

    display:flex;

    gap:20px;

    align-items:center;

}

.preloader-logo span{

    width:70px;

    height:70px;

    border:2px solid var(--gold);

    display:flex;

    justify-content:center;

    align-items:center;

    color:var(--gold);

    font-size:36px;

}

.header{

    background:transparent;

}

.header.active{

    background:rgba(10,10,10,.72);

    backdrop-filter:blur(24px);

}

.hero-content > span,
.hero-content > h1,
.hero-content > p,
.hero-buttons,
.hero-cards,
.scroll-down{
    opacity:0;
    transform:translateY(40px);
    animation:heroFade .9s forwards;
}

.hero h1{

    animation-delay:.4s;

}

.hero p{

    animation-delay:.7s;

}

.hero-buttons{

    animation-delay:.9s;

}

.hero-cards{

    animation-delay:1.1s;

}

.collection-card::after{

content:"";

position:absolute;

left:-150%;

top:0;

width:70%;

height:100%;

background:

linear-gradient(

90deg,

transparent,

rgba(255,255,255,.25),

transparent

);

transform:skewX(-20deg);

transition:1s;

}

.collection-card:hover::after{

left:180%;

}

.cursor{

position:fixed;

width:18px;

height:18px;

border-radius:50%;

background:var(--gold);

pointer-events:none;

z-index:99999;

transition:.08s;

}


/*==================================================
HEADER
==================================================*/

.header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    z-index:999;

    transition:.45s ease;

}

.header.active{

    backdrop-filter:blur(18px);

    background:rgba(10,10,10,.82);

    border-bottom:1px solid rgba(255,255,255,.06);

}

.header .container{

    height:96px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.logo{

    display:flex;

    align-items:center;

    gap:18px;

}

.logo-icon{

    width:54px;

    height:54px;

    border:2px solid var(--gold);

    display:flex;

    justify-content:center;

    align-items:center;

    color:var(--gold);

    font-size:26px;

    font-weight:700;

    transition:.35s;

}

.logo:hover .logo-icon{

    transform:rotate(8deg);

    background:rgba(185,146,91,.08);

}

.logo-text h2{

    font-size:24px;

    letter-spacing:3px;

    font-weight:700;

}

.logo-text span{

    color:#888;

    font-size:12px;

    letter-spacing:2px;

}

.menu{

    display:flex;

    gap:46px;

}

.menu a{

    position:relative;

    color:#DDD;

    font-size:15px;

    letter-spacing:.4px;

    transition:.35s;

}

.menu a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-10px;

    width:0;

    height:2px;

    background:var(--gold);

    transition:.35s;

}

.menu a:hover{

    color:#FFF;

}

.menu a:hover::after{

    width:100%;

}

.header-right{

    display:flex;

    align-items:center;

    gap:28px;

}

.header-right>a:first-child{

    color:#DDD;

    font-weight:600;

    transition:.35s;

}

.header-right>a:first-child:hover{

    color:var(--gold);

}

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

}

.hero-bg{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

    transform:scale(1.08);

}

.hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:

    linear-gradient(

        90deg,

        rgba(8,8,8,.82) 0%,

        rgba(8,8,8,.55) 45%,

        rgba(8,8,8,.12) 100%

    );

    z-index:1;

}

.hero-container{

    position:relative;

    z-index:2;

    display:grid;

    grid-template-columns:1fr 360px;

    gap:80px;

    align-items:center;

}

.hero h1{

    font-size:84px;

    line-height:.95;

    font-weight:700;

    max-width:760px;

    margin:28px 0;

}

.hero strong{

    display:block;

    color:var(--gold);

}

.hero p{

    max-width:620px;

    font-size:20px;

    color:#C9C9C9;

    line-height:1.8;

    margin-bottom:50px;

}

.hero-buttons{

    display:flex;

    gap:22px;

}

.hero-cards{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.hero-card{

    padding:34px;

    background:rgba(15,15,15,.55);

    backdrop-filter:blur(16px);

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

    border-radius:22px;

    transition:.45s;

}

.hero-card:hover{

    transform:translateX(-10px);

    border-color:rgba(185,146,91,.35);

}

.hero-card h3{

    font-size:40px;

    color:var(--gold);

    margin-bottom:10px;

}

.hero-card p{

    color:#B9B9B9;

    margin:0;

    font-size:15px;

}

.scroll-down{

    position:absolute;

    bottom:40px;

    left:50%;

    transform:translateX(-50%);

    color:#AAA;

    letter-spacing:4px;

    font-size:12px;

    z-index:3;

}

.scroll-down::after{

    content:"";

    display:block;

    width:1px;

    height:70px;

    margin:12px auto 0;

    background:linear-gradient(

        transparent,

        var(--gold)

    );

    animation:scrollLine 2s infinite;

}

@keyframes scrollLine{

    0%{

        transform:translateY(-12px);

        opacity:0;

    }

    50%{

        opacity:1;

    }

    100%{

        transform:translateY(12px);

        opacity:0;

    }

}


.burger{
    display:none;
    width:48px;
    height:48px;
    min-width:48px;
    min-height:48px;
    padding:0;
    border:0;
    background:transparent;
    cursor:pointer;
    position:relative;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:6px;
    z-index:1001;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
}

.burger:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:3px;
}

.burger span{

    width:30px;

    height:2px;

    background:white;

    transition:.35s;

}

.burger.active span:nth-child(1){

    transform:rotate(45deg) translate(6px,7px);

}

.burger.active span:nth-child(2){

    opacity:0;

}

.burger.active span:nth-child(3){

    transform:rotate(-45deg) translate(6px,-7px);

}

.mobile-menu{

    position:fixed;

    inset:0;

    background:#0B0B0B;

    z-index:998;

    padding:40px;

    display:flex;

    flex-direction:column;

    justify-content:space-between;

    transform:translateY(-100%);

    transition:.55s cubic-bezier(.77,0,.175,1);

}

.mobile-menu.active{

    transform:translateY(0);

}

.mobile-menu-top{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.mobile-close{

    width:48px;

    height:48px;

    position:relative;

}

.mobile-close span{

    position:absolute;

    width:30px;

    height:2px;

    background:white;

    top:23px;

    left:9px;

}

.mobile-close span:first-child{

    transform:rotate(45deg);

}

.mobile-close span:last-child{

    transform:rotate(-45deg);

}

.mobile-nav{

    display:flex;

    flex-direction:column;

    gap:30px;

}

.mobile-nav a{

    font-size:48px;

    font-weight:600;

    color:white;

    transition:.35s;

    transform:translateX(-30px);

    opacity:0;

}

.mobile-menu.active .mobile-nav a{

    opacity:1;

    transform:translateX(0);

}

.mobile-nav a:nth-child(1){

    transition-delay:.10s;

}

.mobile-nav a:nth-child(2){

    transition-delay:.16s;

}

.mobile-nav a:nth-child(3){

    transition-delay:.22s;

}

.mobile-nav a:nth-child(4){

    transition-delay:.28s;

}

.mobile-nav a:nth-child(5){

    transition-delay:.34s;

}

.mobile-nav a:hover{

    color:var(--gold);

    padding-left:18px;

}

.mobile-bottom{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.mobile-bottom>a:first-child{

    font-size:28px;

    color:white;

}

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

.footer{

    background:#070707;

    padding-top:120px;

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr 1fr;

    gap:80px;

    padding-bottom:80px;

}

.footer-brand p{

    margin-top:30px;

    max-width:380px;

    color:#888;

}

.footer-logo{

    display:flex;

    gap:18px;

    align-items:center;

}

.footer-logo h3{

    font-size:30px;

    letter-spacing:3px;

}

.footer-logo span{

    color:#777;

    font-size:13px;

}

.footer-column{

    display:flex;

    flex-direction:column;

}

.footer-column h4{

    color:white;

    margin-bottom:24px;

}

.footer-column a{

    color:#888;

    margin-bottom:16px;

    transition:.3s;

}
.footer-column a:hover{

    color:var(--gold);

    padding-left:8px;

}

.footer-bottom{

    height:90px;

    display:flex;

    justify-content:space-between;

    align-items:center;

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

}


.footer-bottom p{

    color:#666;

}
.social{

    display:flex;

    gap:28px;

}
.social a{

    color:#888;

    transition:.3s;

}

.social a:hover{

    color:white;

}
.footer-divider{

    background:#111;

}

.footer-divider div{

    height:1px;

    background:linear-gradient(

        90deg,

        transparent,

        rgba(185,146,91,.8),

        transparent

    );

}
.collection-card img,
.project img,
.material-card img{

    transition:transform 1.5s ease;

}

.collection-card:hover img,
.project:hover img,
.material-card:hover img{

    transform:scale(1.08);

}
.contact-form input,
.contact-form textarea{

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

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

    color:white;

}

.contact-form input::placeholder,
.contact-form textarea::placeholder{

    color:#777;

}

.contact-form input:focus,
.contact-form textarea:focus{

    border-color:var(--gold);

    box-shadow:0 0 0 4px rgba(185,146,91,.08);

}
.collection-card:hover,
.material-card:hover,
.project:hover,
.hero-card:hover{

    box-shadow:var(--shadow-large);

}

/*==================================================
MOBILE HEADER / MENU SAFETY
==================================================*/
html,
body{
    max-width:100%;
    overflow-x:hidden;
}

.mobile-close{
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
}

.mobile-nav a,
.mobile-bottom a{
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
}


/*==================================================
HERO — FIX
==================================================*/
.hero-bg,
.hero-gradient,
.hero-container{
    opacity:1 !important;
}

.hero-bg,
.hero-gradient{
    transform:none;
    animation:none !important;
}

.hero-container{
    transform:none !important;
    animation:none !important;
}

/* фон должен всегда заполнять hero */
.hero-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}

/* анимация только контента */
.hero-content > span{
    animation-delay:.2s;
}

.hero-content > h1{
    animation-delay:.4s;
}

.hero-content > p{
    animation-delay:.65s;
}

.hero-buttons{
    animation-delay:.85s;
}

.hero-cards{
    animation-delay:1s;
}


/*==================================================
HERO — STACKING / VISIBILITY FIX
==================================================*/
.hero{
    position:relative;
    isolation:isolate;
}

.hero-bg{
    position:absolute;
    inset:0;
    z-index:0 !important;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    animation:none !important;
}

.hero::before{
    z-index:1 !important;
    pointer-events:none;
}

.hero-gradient{
    position:absolute;
    inset:0;
    z-index:1 !important;
    pointer-events:none;
    opacity:1 !important;
    visibility:visible !important;
}

.hero-container{
    position:relative;
    z-index:3 !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    animation:none !important;
}

.hero-content,
.hero-content > span,
.hero-content > h1,
.hero-content > p,
.hero-buttons,
.hero-cards{
    position:relative;
    z-index:4;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    animation:none !important;
}

.scroll-down{
    z-index:4;
    opacity:1 !important;
    visibility:visible !important;
    animation:none !important;
}


/*==================================================
FOOTER — MOBILE SAFE BASE
==================================================*/
.footer-grid > *{
    min-width:0;
}

.footer-column a,
.footer-column span,
.footer-brand p{
    overflow-wrap:anywhere;
}

.footer-bottom{
    min-height:90px;
    height:auto;
}
