:root{
  --bg:#fff; --soft:#F6F5F3; --ink:#111110; --mid:#6E6C69; --light:#A8A5A1; --line:#E8E6E3;
  --gold:#A8865A;
  --f:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --e:cubic-bezier(.2,.7,.1,1);
  --pad:clamp(20px,4vw,56px); --hh:72px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--f);-webkit-font-smoothing:antialiased;overflow-x:hidden;font-feature-settings:"ss01","cv11"}
body.lock{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
[hidden]{display:none!important}
.wrap{max-width:1360px;margin:0 auto;padding:0 var(--pad)}

h1,h2,h3{font-weight:400;margin:0;letter-spacing:-.035em}
h1{font-size:clamp(40px,5.6vw,88px);line-height:1.02}
h2{font-size:clamp(32px,3.8vw,58px);line-height:1.06;max-width:18ch}
h3{font-size:19px;letter-spacing:-.015em;font-weight:500}
.big{font-size:clamp(40px,6vw,96px);line-height:1;max-width:14ch}
.kicker{font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mid);margin:0 0 20px}
.lead{font-size:clamp(17px,1.3vw,19px);color:var(--mid);max-width:52ch;margin:26px 0 0}
p{margin:0}

.btn{display:inline-flex;align-items:center;justify-content:center;height:54px;padding:0 30px;border-radius:100px;background:var(--ink);color:#fff;font-size:15px;font-weight:500;letter-spacing:-.005em;transition:background .3s,color .3s,transform .3s var(--e);white-space:nowrap}
.btn:hover{background:#333}
.btn:active{transform:scale(.97)}
.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px #CFCCC8}
.btn--ghost:hover{background:var(--ink);color:#fff;box-shadow:none}
.btn--s{height:40px;padding:0 20px;font-size:14px}
.btn--full{width:100%}
.lnk{font-size:15px;font-weight:500;border-bottom:1px solid currentColor;padding-bottom:2px;transition:opacity .3s}
.lnk:hover{opacity:.55}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin-top:36px}

/* header */
.hdr{position:fixed;inset:0 0 auto;height:var(--hh);z-index:50;transition:background .4s,box-shadow .4s,transform .45s var(--e)}
.hdr.solid{background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6);box-shadow:0 1px 0 var(--line)}
.hdr.up{transform:translateY(-100%)}
.hdr__in{height:100%;max-width:1360px;margin:0 auto;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:10px}
.brand img{height:24px;width:auto}
.brand span{font-size:17px;font-weight:500;letter-spacing:.32em}
.nav{display:flex;gap:30px}
.nav a{font-size:14.5px;color:var(--mid);transition:color .25s}
.nav a:hover,.nav a.on{color:var(--ink)}
.hdr__r{display:flex;align-items:center;gap:18px}
.hdr__tel{font-size:14.5px;font-weight:500}
.burger{display:none;width:40px;height:40px;position:relative}
.burger i{position:absolute;left:9px;right:9px;height:1.5px;background:var(--ink);transition:transform .4s var(--e),top .4s var(--e)}
.burger i:first-child{top:15px}.burger i:last-child{top:24px}
.menu .burger i:first-child{top:19.5px;transform:rotate(45deg)}
.menu .burger i:last-child{top:19.5px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:40;background:#fff;padding:calc(var(--hh) + 20px) var(--pad) calc(30px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
.menu .mnav{opacity:1;visibility:visible;transition:opacity .35s}
.mnav nav{display:flex;flex-direction:column}
.mnav nav a{font-size:34px;letter-spacing:-.03em;padding:8px 0;border-bottom:1px solid var(--line);transform:translateY(14px);opacity:0;transition:transform .5s var(--e),opacity .5s}
.menu .mnav nav a{transform:none;opacity:1}
.menu .mnav nav a:nth-child(2){transition-delay:.04s}.menu .mnav nav a:nth-child(3){transition-delay:.08s}.menu .mnav nav a:nth-child(4){transition-delay:.12s}.menu .mnav nav a:nth-child(5){transition-delay:.16s}.menu .mnav nav a:nth-child(6){transition-delay:.2s}.menu .mnav nav a:nth-child(7){transition-delay:.24s}
.mnav__b{display:flex;justify-content:space-between;font-size:17px;font-weight:500}

/* HERO — дверь открывается при прокрутке */
.hero{position:relative;height:260vh}
.hero__pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:var(--hh) var(--pad) 0;max-width:1440px;margin:0 auto}
.hero__copy{position:relative;z-index:3;max-width:620px;opacity:calc(1 - var(--p,0)*2.4);transform:translateY(calc(var(--p,0) * -60px))}
.hero__sub{font-size:clamp(17px,1.35vw,20px);color:var(--mid);max-width:34ch;margin:28px 0 38px}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px}
.portal{--o:0;position:relative;justify-self:center;height:min(76vh,780px);aspect-ratio:.43;perspective:2200px;transform:scale(calc(1 + var(--z,0) * 2.6)) translateX(calc(var(--z,0) * -12%));transform-origin:50% 55%;will-change:transform}
.portal::before{content:"";position:absolute;inset:-14px -14px 0;border:1px solid #DAD7D2;border-bottom:0;background:#fff}
.portal__light{position:absolute;inset:0;background:radial-gradient(120% 70% at 30% 45%,#FFF8EC 0%,#F3E2C4 40%,#C9A878 100%);overflow:hidden}
.portal__light::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(255,255,255,.9),transparent 55%);opacity:calc(var(--o) * .9)}
.portal__door{position:absolute;inset:0;transform-origin:0 50%;transform:rotateY(calc(var(--o) * -86deg));transform-style:preserve-3d;box-shadow:calc(var(--o) * 40px) 0 60px rgba(0,0,0,calc(var(--o) * .25))}
.portal__door img{width:100%;height:100%;object-fit:cover;filter:brightness(calc(1 - var(--o) * .35))}
.portal__edge{position:absolute;top:0;bottom:0;right:-1px;width:10px;background:linear-gradient(90deg,#3a2d23,#5a473a);transform-origin:0 50%;transform:rotateY(90deg)}
.portal__floor{position:absolute;left:-30%;right:-30%;bottom:-2px;height:1px;background:#DAD7D2}
.portal__floor::after{content:"";position:absolute;left:20%;right:20%;top:1px;height:60px;background:radial-gradient(50% 100% at 50% 0,rgba(0,0,0,.08),transparent)}
.hero__hint{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);font-size:12px;color:var(--light);display:flex;flex-direction:column;align-items:center;gap:10px;letter-spacing:.1em;text-transform:uppercase;opacity:calc(1 - var(--p,0)*5)}
.hero__hint span{width:1px;height:38px;background:linear-gradient(var(--ink),transparent);animation:hint 2s var(--e) infinite;transform-origin:top}
@keyframes hint{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.hero__pin::after{content:"";position:absolute;inset:0;background:#fff;opacity:var(--w,0);pointer-events:none;z-index:4}

/* facts */
.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts__g{display:grid;grid-template-columns:repeat(4,1fr)}
.facts__g div{padding:40px 24px 40px 0;display:flex;flex-direction:column;gap:6px}
.facts__g div+div{padding-left:24px;border-left:1px solid var(--line)}
.facts__g b{font-size:clamp(26px,2.4vw,36px);font-weight:400;letter-spacing:-.03em}
.facts__g span{font-size:14px;color:var(--mid);max-width:22ch}

/* collection line */
.line{padding:clamp(90px,10vw,140px) 0 clamp(60px,7vw,100px);overflow:hidden}
.line__head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px}
.line__track{display:flex;gap:clamp(28px,4vw,64px);align-items:flex-end;padding:0 var(--pad) 40px;overflow-x:auto;scrollbar-width:none;cursor:grab;scroll-snap-type:x proximity}
.line__track::-webkit-scrollbar{display:none}
.line__track.drag{cursor:grabbing;scroll-snap-type:none}
.ld{flex:0 0 auto;min-width:170px;display:flex;flex-direction:column;align-items:center;gap:22px;scroll-snap-align:start}
.ld__d{height:clamp(320px,42vh,460px);perspective:1200px;position:relative}
.ld__d::after{content:"";position:absolute;left:-12%;right:-12%;bottom:-14px;height:18px;background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.16),transparent);filter:blur(2px)}
.ld__d img{height:100%;width:auto;transform-origin:0 50%;transition:transform 1s var(--e),box-shadow 1s var(--e);box-shadow:0 0 0 1px rgba(0,0,0,.04)}
.ld:hover .ld__d img{transform:rotateY(-24deg);box-shadow:18px 0 30px rgba(0,0,0,.12)}
.ld__t{text-align:center}
.ld__t b{display:block;font-size:15px;font-weight:500;letter-spacing:-.01em}
.ld__t span{font-size:13px;color:var(--mid)}

/* sections */
.sec{padding:clamp(90px,10vw,150px) 0}
.sec--grey{background:var(--soft)}
.head{margin-bottom:clamp(40px,5vw,64px)}
.head--row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}

/* filters */
.flt{margin-bottom:48px}
.flt__row{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.flt__row button{height:40px;padding:0 18px;border-radius:100px;font-size:14.5px;color:var(--mid);box-shadow:inset 0 0 0 1px var(--line);transition:.25s}
.flt__row button:hover{color:var(--ink);box-shadow:inset 0 0 0 1px #BDBAB6}
.flt__row button.on{background:var(--ink);color:#fff;box-shadow:none}
.flt__more{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;padding-top:18px}
.flt__more label{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--mid)}
.flt__more select{appearance:none;-webkit-appearance:none;border:0;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23111' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right center;padding:4px 18px 4px 0;font-size:14.5px;font-weight:500;color:var(--ink);cursor:pointer}
.flt__count{margin-left:auto;font-size:14px;color:var(--light)}

/* grid / cards */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:64px 28px}
.card{display:flex;flex-direction:column;opacity:0;transform:translateY(24px);transition:opacity .8s var(--e),transform .8s var(--e)}
.card.in{opacity:1;transform:none}
.card__ph{position:relative;display:flex;justify-content:center;align-items:flex-end;height:clamp(300px,30vw,420px);padding-bottom:16px;perspective:1100px}
.card__ph::after{content:"";position:absolute;left:22%;right:22%;bottom:8px;height:14px;background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.18),transparent);filter:blur(2px);transition:transform 1s var(--e)}
.card__ph img{height:100%;width:auto;max-width:100%;object-fit:contain;transform-origin:0 50%;transition:transform 1s var(--e),box-shadow 1s var(--e);box-shadow:0 0 0 1px rgba(0,0,0,.04);position:relative;z-index:1}
.card:hover .card__ph img{transform:rotateY(-22deg);box-shadow:16px 0 28px rgba(0,0,0,.12)}
.card__tag{position:absolute;top:0;left:0;font-size:11.5px;color:var(--mid);letter-spacing:.06em}
.card__b{padding-top:22px;display:flex;flex-direction:column;gap:2px}
.card__t{font-size:18px;font-weight:500;letter-spacing:-.02em}
.card__c{font-size:14px;color:var(--mid)}
.card__a{display:flex;gap:18px;margin-top:14px;font-size:14px;font-weight:500}
.card__a a:first-child{color:var(--mid);transition:color .25s}
.card__a a:first-child:hover{color:var(--ink)}
.card__a a:last-child{border-bottom:1px solid currentColor}
.more{display:flex;justify-content:center;margin-top:70px}
.empty{grid-column:1/-1;text-align:center;color:var(--mid);padding:40px 0}

/* custom */
.custom{background:var(--soft);padding:clamp(90px,10vw,150px) 0}
.custom__g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,120px);align-items:center}
.custom__img{display:flex;justify-content:center;align-items:flex-end;gap:clamp(18px,3vw,40px);height:clamp(420px,46vw,640px);position:relative}
.custom__img img{height:100%;width:auto}
.custom__img img:last-child{height:88%}
.d-shadow{box-shadow:0 30px 50px -28px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.04)}
.list{list-style:none;padding:0;margin:34px 0 0;display:grid;gap:12px}
.list li{position:relative;padding-left:26px;font-size:16.5px}
.list li::before{content:"";position:absolute;left:0;top:12px;width:12px;height:1px;background:var(--ink)}

/* about */
.about__big{font-size:clamp(28px,3.2vw,48px);line-height:1.18;letter-spacing:-.03em;max-width:24ch}
.about__g{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:56px 0 0;max-width:980px;color:var(--mid);font-size:17px}
.adv{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(70px,8vw,110px);border-top:1px solid var(--line)}
.adv div{padding:32px 30px 40px 0;border-bottom:1px solid var(--line)}
.adv div:not(:nth-child(3n+1)){padding-left:30px;border-left:1px solid var(--line)}
.adv i{display:block;font-style:normal;font-size:13px;color:var(--light);margin-bottom:34px}
.adv p{color:var(--mid);font-size:15px;margin-top:8px}

/* materials */
.mat{background:var(--ink);color:#fff;padding:clamp(90px,10vw,140px) 0}
.mat .kicker{color:#8E8B87}
.mat__g{display:grid;grid-template-columns:1fr 1.2fr;gap:60px}
.mat__l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.mat__l li{padding:20px 0;border-bottom:1px solid #2B2A28;display:flex;flex-direction:column;gap:2px}
.mat__l b{font-size:20px;font-weight:400;letter-spacing:-.02em}
.mat__l span{font-size:14px;color:#8E8B87}

/* steps */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:56px 40px}
.steps i{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;box-shadow:inset 0 0 0 1px #CFCCC8;font-style:normal;font-size:14px;margin-bottom:22px}
.steps p{color:var(--mid);font-size:15px;margin-top:8px;max-width:30ch}

/* reviews */
.arrows{display:flex;gap:8px}
.arrows button{width:48px;height:48px;border-radius:50%;box-shadow:inset 0 0 0 1px #CFCCC8;transition:.25s}
.arrows button:hover{background:var(--ink);color:#fff;box-shadow:none}
.rev{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--pad);scroll-padding:0 var(--pad);scrollbar-width:none}
.rev::-webkit-scrollbar{display:none}
.rev blockquote{flex:0 0 clamp(290px,32vw,440px);margin:0;background:#fff;border-radius:4px;padding:36px 34px;scroll-snap-align:start;min-height:240px;display:flex;flex-direction:column;justify-content:space-between}
.rev blockquote::before{content:"★★★★★";color:var(--gold);letter-spacing:3px;font-size:13px;margin-bottom:20px}
.rev p{font-size:19px;line-height:1.45;letter-spacing:-.015em}

/* calc */
.calc{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(40px,7vw,110px);align-items:start}
.tabs{display:inline-flex;margin-top:36px;padding:4px;border-radius:100px;background:var(--soft)}
.tabs button{height:42px;padding:0 20px;border-radius:100px;font-size:14px;color:var(--mid);transition:.25s}
.tabs .on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}
.f{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--mid);min-width:0}
.f--full{grid-column:1/-1}
.f input,.f select{height:52px;border:0;border-bottom:1px solid #D6D3CF;background:transparent;border-radius:0;padding:0 2px;font-size:16px;color:var(--ink);width:100%;-webkit-appearance:none;appearance:none;transition:border-color .25s}
.f select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23111' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 4px center;padding-right:24px}
.f input:focus,.f select:focus{outline:none;border-color:var(--ink)}
.f input::placeholder{color:#B5B2AE}
.qty{display:grid;grid-template-columns:44px 1fr 44px;border-bottom:1px solid #D6D3CF;height:52px}
.qty input{border:0;text-align:center;height:100%;-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button{-webkit-appearance:none}
.qty button{font-size:20px;color:var(--ink)}
.checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.checks label{cursor:pointer}
.checks input{position:absolute;opacity:0;width:1px;height:1px}
.checks span{display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:100px;box-shadow:inset 0 0 0 1px var(--line);font-size:14.5px;color:var(--mid);transition:.25s}
.checks input:checked+span{background:var(--ink);color:#fff;box-shadow:none}
.checks input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}
.err{color:#B5432F;font-size:13px}
.form .btn{grid-column:1/-1;margin-top:10px}
.fine{grid-column:1/-1;font-size:13px;color:var(--light)}

/* faq */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,7vw,120px);align-items:start}
.faq > div:first-child{position:sticky;top:calc(var(--hh) + 30px)}
.faq .lnk{display:inline-block;margin-top:30px}
.acc details{border-bottom:1px solid #E1DED9}
.acc details:first-child{border-top:1px solid #E1DED9}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-size:18.5px;letter-spacing:-.015em}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font-size:22px;font-weight:300;transition:transform .35s var(--e)}
.acc details[open] summary::after{transform:rotate(45deg)}
.acc p{color:var(--mid);padding:0 40px 26px 0;max-width:60ch}
.acc a{border-bottom:1px solid currentColor}

/* contacts */
.ct{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(50px,6vw,80px);border-top:1px solid var(--line)}
.ct a{padding:30px 24px 34px 0;display:flex;flex-direction:column;gap:8px;transition:opacity .25s}
.ct a+a{padding-left:24px;border-left:1px solid var(--line)}
.ct a:hover{opacity:.55}
.ct small{font-size:13px;color:var(--mid)}
.ct b{font-size:clamp(19px,1.6vw,24px);font-weight:400;letter-spacing:-.02em}
.ct__b{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:30px;border-top:1px solid var(--line);color:var(--mid)}

/* footer */
.ftr{background:var(--soft);padding:80px 0 calc(30px + env(safe-area-inset-bottom))}
.ftr__g{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px}
.ftr__brand img{width:130px;mix-blend-mode:multiply}
.ftr__g div{display:flex;flex-direction:column;gap:10px;font-size:14.5px}
.ftr__g h4{font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--light);margin:0 0 6px}
.ftr__g a{color:var(--mid);transition:color .25s}
.ftr__g a:hover{color:var(--ink)}
.ftr__bot{display:flex;justify-content:space-between;margin-top:60px;padding-top:24px;border-top:1px solid #E1DED9;font-size:13px;color:var(--light)}

/* fab */
.fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:30;display:flex;flex-direction:column;align-items:center;gap:10px}
.fab a,.fab button{display:grid;place-items:center;border-radius:50%;transition:transform .3s var(--e)}
.fab a:hover,.fab button:hover{transform:translateY(-2px)}
.fab__w{width:56px;height:56px;background:#25D366;color:#fff;box-shadow:0 10px 24px -8px rgba(37,211,102,.6)}
.fab__c{width:44px;height:44px;background:#fff;color:var(--ink);box-shadow:0 6px 20px -6px rgba(0,0,0,.25)}

/* modal */
.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px}
.modal__bg{position:absolute;inset:0;background:rgba(17,17,16,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fd .3s}
.modal__box{position:relative;width:min(440px,100%);background:#fff;border-radius:6px;padding:40px 32px 28px;display:grid;gap:18px;animation:pp .45s var(--e)}
.modal__box h3{font-size:24px;font-weight:400;letter-spacing:-.03em;padding-right:30px}
.modal__x{position:absolute;top:12px;right:16px;font-size:28px;line-height:1;width:36px;height:36px}
@keyframes fd{from{opacity:0}}
@keyframes pp{from{opacity:0;transform:translateY(16px)}}

/* door page */
.dp{padding:calc(var(--hh) + 30px) 0 clamp(80px,9vw,130px)}
.crumbs{font-size:13.5px;color:var(--light);display:flex;gap:10px;margin-bottom:40px}
.crumbs a:hover{color:var(--ink)}
.dp__g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:start}
.dp__img{position:sticky;top:calc(var(--hh) + 30px);display:flex;justify-content:center;align-items:flex-end;height:min(78vh,820px);padding-bottom:20px;background:var(--soft);border-radius:4px;perspective:1500px}
.dp__img::after{content:"";position:absolute;left:30%;right:30%;bottom:12px;height:16px;background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.2),transparent);filter:blur(2px)}
.dp__img img{height:88%;width:auto;transform-origin:0 50%;transition:transform 1.1s var(--e),box-shadow 1.1s var(--e);position:relative;z-index:1;box-shadow:0 0 0 1px rgba(0,0,0,.04)}
.dp__img:hover img{transform:rotateY(-24deg);box-shadow:20px 0 34px rgba(0,0,0,.14)}
.dp__img small{position:absolute;top:18px;left:20px;font-size:12px;color:var(--light)}
.dp h1{font-size:clamp(38px,4.2vw,64px);margin-bottom:8px}
.dp__c{font-size:18px;color:var(--mid)}
.specs{margin:36px 0 0;border-top:1px solid var(--line)}
.specs div{display:grid;grid-template-columns:160px 1fr;gap:16px;padding:15px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.specs dt{color:var(--mid)}
.specs dd{margin:0}
.dp__cta{display:flex;flex-wrap:wrap;gap:10px;margin:34px 0 50px}
.dp__cta .btn{flex:1 1 200px}
.qf{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px;padding:30px;background:var(--soft);border-radius:4px}
.qf h3{grid-column:1/-1;font-size:20px;font-weight:400;letter-spacing:-.02em}
.qf .btn,.qf .err{grid-column:1/-1}
.dp__nav{display:flex;justify-content:space-between;margin-top:90px;padding-top:26px;border-top:1px solid var(--line)}
.dp__nav a{display:flex;flex-direction:column;font-size:18px}
.dp__nav small{font-size:13px;color:var(--light)}
.dp__nav a:last-child{text-align:right}
.dp__sim{margin-top:90px}
.dp__sim h2{margin-bottom:50px}

/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .9s var(--e),transform .9s var(--e)}
.rv.in{opacity:1;transform:none}
#door{animation:fd .5s}

/* responsive */
@media (max-width:1100px){
  .nav,.hdr__tel{display:none}
  .burger{display:block}
  .grid{grid-template-columns:repeat(3,1fr)}
  .adv{grid-template-columns:1fr 1fr}
  .adv div:nth-child(n){padding-left:0;border-left:0}
  .adv div:nth-child(even){padding-left:30px;border-left:1px solid var(--line)}
  .ftr__g{grid-template-columns:1fr 1fr 1fr}
  .ftr__brand{grid-column:1/-1}
}
@media (max-width:820px){
  :root{--hh:62px}
  .hero{height:230vh}
  .hero__pin{display:flex;flex-direction:column;align-items:stretch;padding-top:calc(var(--hh) + 18px);gap:26px}
  .hero__sub{margin:14px 0 20px;font-size:15.5px}
  .portal{height:max(260px,calc(100svh - var(--ch,420px) - var(--hh) - 70px));align-self:center}
  .hero__hint{display:none}
  .facts__g{grid-template-columns:1fr 1fr}
  .facts__g div{padding:26px 16px 26px 0}
  .facts__g div:nth-child(n){border-left:0;padding-left:0}
  .facts__g div:nth-child(even){border-left:1px solid var(--line);padding-left:16px}
  .facts__g div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .custom__g,.calc,.faq,.mat__g,.dp__g{grid-template-columns:1fr}
  .custom__img{height:clamp(360px,100vw,520px)}
  .faq > div:first-child{position:static}
  .steps{grid-template-columns:1fr 1fr}
  .ct{grid-template-columns:1fr 1fr}
  .ct a:nth-child(n){padding-left:0;border-left:0}
  .ct a:nth-child(even){padding-left:20px;border-left:1px solid var(--line)}
  .ct a:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .dp__img{position:relative;top:0;height:min(64svh,560px)}
}
@media (max-width:600px){
  body{font-size:15.5px}
  .hdr__r .btn{display:none}
  .brand span{font-size:15px}
  h1{font-size:clamp(32px,9.2vw,44px)}
  .hero__cta{flex-wrap:nowrap;gap:8px}
  .hero__cta .btn{flex:1 1 0;height:50px;padding:0 10px;font-size:14px}
  .line__head{margin-bottom:36px}
  .ld__d{height:300px}
  .flt__row{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(var(--pad) * -1);padding:0 var(--pad) 18px;scrollbar-width:none}
  .flt__row::-webkit-scrollbar{display:none}
  .flt__row button{flex:0 0 auto}
  .flt__more{gap:10px 18px}
  .flt__count{margin-left:0;width:100%}
  .grid{grid-template-columns:1fr 1fr;gap:44px 14px}
  .card__ph{height:250px}
  .card__tag{display:none}
  .card__t{font-size:16px}
  .card__c{font-size:13px}
  .card__a{flex-direction:column;gap:6px;font-size:13.5px}
  .card__a a:last-child{align-self:flex-start}
  .about__g{grid-template-columns:1fr;gap:18px}
  .adv{grid-template-columns:1fr}
  .adv div:nth-child(n){padding:26px 0 30px;border-left:0}
  .adv i{margin-bottom:16px}
  .mat__l{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr;gap:34px}
  .form,.qf{grid-template-columns:1fr}
  .tabs{display:flex}
  .tabs button{flex:1;padding:0 8px}
  .ct{grid-template-columns:1fr}
  .ct a:nth-child(n){padding:22px 0;border-left:0;border-bottom:1px solid var(--line)}
  .ct__b .btn{width:100%}
  .ftr__g{grid-template-columns:1fr 1fr}
  .specs div{grid-template-columns:120px 1fr}
  .dp__cta .btn{flex:1 1 100%}
  .head--row{align-items:flex-start;flex-direction:column}
}
@media (hover:none){
  .card:hover .card__ph img,.ld:hover .ld__d img,.dp__img:hover img{transform:none;box-shadow:0 0 0 1px rgba(0,0,0,.04)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation:none!important}
  .rv,.card{opacity:1!important;transform:none!important}
}

/* AI-фото: уже на белом фоне с коробкой — без поворота и рамки */
.card--ai .card__ph::after,.ld--ai .ld__d::after{display:none}
.card--ai .card__ph img,.ld--ai .ld__d img,.dp__img--ai img{box-shadow:none!important;mix-blend-mode:multiply}
.card--ai:hover .card__ph img,.ld--ai:hover .ld__d img,.dp__img--ai:hover img{transform:translateY(-6px)!important;box-shadow:none!important}
.dp__img--ai::after{display:none}

/* ===== v3: премиальная 3D-анимация ===== */
/* заголовок по строкам */
.lines span{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.lines i{display:block;font-style:normal;transform:translateY(105%);animation:lineUp 1.2s var(--e) forwards}
.lines span:nth-child(2) i{animation-delay:.12s}.lines span:nth-child(3) i{animation-delay:.24s}
@keyframes lineUp{to{transform:none}}
.hero__sub,.hero__cta,.hero .kicker{animation:fadeIn 1.2s var(--e) .45s both}
@keyframes fadeIn{from{opacity:0;transform:translateY(14px)}}
/* слова в заголовках секций */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .w>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--e)}
.split.in .w>span{transform:none}

/* портал: свет, луч на полу, пыль, наклон за мышью */
.portal{transform:perspective(1600px) rotateY(var(--ry,0deg)) rotateX(var(--rx,0deg)) scale(calc(1 + var(--z,0) * 2.6)) translateX(calc(var(--z,0) * -12%));transition:none}
.portal__light{box-shadow:inset 0 0 120px rgba(150,110,60,.35)}
.portal__beam{position:absolute;left:0;right:-40%;top:100%;height:46%;background:linear-gradient(180deg,rgba(243,214,160,.55),rgba(243,214,160,0) 90%);clip-path:polygon(0 0,100% 0,140% 100%,-30% 100%);opacity:calc(var(--o) * .45);transform-origin:top;pointer-events:none;filter:blur(10px)}
.portal__dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:var(--o);mix-blend-mode:screen}
.portal__door{box-shadow:0 30px 60px -30px rgba(0,0,0,.4),calc(var(--o) * 40px) 0 60px rgba(0,0,0,calc(var(--o) * .25))}
.portal__door::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.22) 48%,rgba(255,255,255,0) 62%);background-size:250% 100%;animation:sheen 5s var(--e) 1.4s infinite;pointer-events:none}
@keyframes sheen{0%{background-position:120% 0}40%,100%{background-position:-60% 0}}

/* закреплённая 3D-галерея */
.show{position:relative;height:calc(var(--n,12) * 55vh + 100vh)}
.show__pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding-top:var(--hh);background:radial-gradient(80% 60% at 50% 70%,#F4F1EC,#fff 70%)}
.show__head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;width:100%}
.show__meta{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--mid);font-variant-numeric:tabular-nums}
.show__meta #showNum{color:var(--ink);font-size:22px}
.show__meta .lnk{margin-left:24px}
.show__stage{position:relative;flex:1;max-height:64vh;margin-top:3vh;perspective:1800px;transform-style:preserve-3d}
.sd{position:absolute;left:50%;bottom:15%;height:78%;transform-style:preserve-3d;will-change:transform,opacity;cursor:pointer}
.sd img{height:100%;width:auto;display:block;-webkit-box-reflect:below 4px linear-gradient(transparent 82%,rgba(255,255,255,.22));mix-blend-mode:multiply}
.sd figcaption{position:absolute;left:50%;top:calc(100% + 18px);transform:translateX(-50%);white-space:nowrap;text-align:center;opacity:var(--c,0);transition:opacity .4s}
.sd figcaption b{display:block;font-size:17px;font-weight:500;letter-spacing:-.02em}
.sd figcaption span{font-size:13px;color:var(--mid)}
.show__bar{height:1px;background:var(--line);margin:0 var(--pad) 4vh}
.show__bar i{display:block;height:100%;width:0;background:var(--ink)}

/* карточки: 3D-наклон с бликом */
.card__ph{transform-style:preserve-3d;transition:transform .8s var(--e)}
.card__ph .gl{position:absolute;inset:0;pointer-events:none;background:radial-gradient(240px 240px at var(--gx,50%) var(--gy,30%),rgba(255,255,255,.45),transparent 60%);opacity:0;transition:opacity .4s;mix-blend-mode:soft-light;z-index:2}
.card:hover .card__ph .gl{opacity:1}
.card--ai:hover .card__ph img{transform:translateZ(30px)!important}

/* «под заказ» — двери поворачиваются при прокрутке */
.custom__img{perspective:1400px}
.custom__img img{transform:rotateY(var(--cr,0deg)) translateY(var(--cy,0px));transition:transform .1s linear;mix-blend-mode:multiply}
.custom__img img:last-child{transform:rotateY(calc(var(--cr,0deg) * -1)) translateY(calc(var(--cy,0px) * -1))}

/* страница модели: 3D-поворот перетаскиванием */
.dp__img{cursor:grab;touch-action:pan-y}
.dp__img.drag{cursor:grabbing}
.dp__img img{transform:rotateY(var(--dr,0deg))!important;transition:transform .6s var(--e)!important}
.dp__img.drag img{transition:none!important}
.dp__img small{display:block}

@media (max-width:820px){
  .show{height:calc(var(--n,12) * 45vh + 100vh)}
  .show__head{flex-direction:column;align-items:flex-start}
  .show__meta .lnk{margin-left:auto}
  .show__meta{width:100%}
  .show__stage{max-height:58vh}
  .portal__beam{display:none}
}
@media (prefers-reduced-motion:reduce){
  .lines i,.split .w>span{transform:none!important;animation:none}
  .show{height:auto}.show__pin{position:relative;height:auto}
}

/* ===== v4: тёмная галерейная тема ===== */
:root{--bg:#0B0B0C;--soft:#121213;--ink:#EEE9E2;--mid:#9C968E;--light:#6B665F;--line:rgba(238,233,226,.10);--gold:#C9A56B}
body{background:var(--bg);color:var(--ink)}
::selection{background:var(--gold);color:#0B0B0C}
.kicker{color:var(--gold)}
.btn{background:var(--gold);color:#0B0B0C;box-shadow:0 10px 30px -12px rgba(201,165,107,.6)}
.btn:hover{background:#E3C48D}
.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px rgba(238,233,226,.28)}
.btn--ghost:hover{background:var(--ink);color:#0B0B0C;box-shadow:none}
.hdr.solid{background:rgba(11,11,12,.72);box-shadow:0 1px 0 var(--line)}
.brand img{filter:brightness(1.4)}
.burger i{background:var(--ink)}
.mnav{background:#0B0B0C}
/* hero */
.hero__pin{background:radial-gradient(60% 70% at 72% 55%,rgba(201,165,107,.13),transparent 70%)}
.hero__pin::after{background:#0B0B0C}
.portal::before{background:#141415;border-color:rgba(238,233,226,.12)}
.portal__floor{background:rgba(238,233,226,.14)}
.portal__floor::after{background:radial-gradient(50% 100% at 50% 0,rgba(201,165,107,.25),transparent)}
.portal__light{background:radial-gradient(120% 70% at 30% 45%,#FFF6E2 0%,#F0CF92 38%,#9C6E34 100%);box-shadow:0 0 140px 30px rgba(240,200,130,calc(var(--o) * .45)),inset 0 0 120px rgba(120,80,30,.35)}
.portal__beam{background:linear-gradient(180deg,rgba(240,200,130,.6),rgba(240,200,130,0) 90%);opacity:calc(var(--o) * .8)}
.hero__hint span{background:linear-gradient(var(--gold),transparent)}
/* facts */
.facts{border-color:var(--line)}
.facts__g b{color:var(--ink)}
/* 3D gallery — прожекторы */
.show__pin{background:radial-gradient(45% 55% at 50% 62%,rgba(201,165,107,.16),transparent 70%),#0B0B0C}
.sd img{mix-blend-mode:normal;filter:drop-shadow(0 30px 40px rgba(0,0,0,.7));-webkit-box-reflect:below 2px linear-gradient(transparent 80%,rgba(255,255,255,.14))}
.sd::before{content:"";position:absolute;left:-30%;right:-30%;top:-30%;bottom:-6%;background:radial-gradient(45% 55% at 50% 40%,rgba(255,230,180,calc(var(--c,0) * .22)),transparent 70%);z-index:-1;pointer-events:none}
.show__bar{background:var(--line)}.show__bar i{background:var(--gold)}
.show__meta #showNum{color:var(--gold)}
/* каталог */
.flt__row button{color:var(--mid);box-shadow:inset 0 0 0 1px var(--line)}
.flt__row button:hover{color:var(--ink);box-shadow:inset 0 0 0 1px rgba(238,233,226,.3)}
.flt__row button.on{background:var(--ink);color:#0B0B0C}
.flt__more select{color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23EEE9E2' stroke-width='1.3'/%3E%3C/svg%3E")}
.flt__more select option{background:#151516;color:var(--ink)}
.card__ph{background:radial-gradient(60% 55% at 50% 45%,#1E1D1B,#121213 75%);border-radius:6px;padding:26px 0 30px;align-items:center}
.card__ph::after{background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.7),transparent);bottom:14px}
.card__ph img,.card--ai .card__ph img{height:90%;mix-blend-mode:normal!important;box-shadow:none!important;filter:drop-shadow(0 18px 22px rgba(0,0,0,.6))}
.card:hover .card__ph{background:radial-gradient(60% 55% at 50% 40%,#2A2620,#121213 78%)}
.card__ph .gl{mix-blend-mode:overlay}
.card__tag{top:12px;left:14px;color:var(--light)}
.card__a a:last-child{color:var(--gold)}
/* под заказ */
.custom{background:#101011}
.custom__img img{mix-blend-mode:normal;box-shadow:none;filter:drop-shadow(0 30px 40px rgba(0,0,0,.7))}
.custom__img::before{content:"";position:absolute;inset:-10% -10% 0;background:radial-gradient(50% 50% at 50% 55%,rgba(201,165,107,.15),transparent 70%);pointer-events:none}
.list li::before{background:var(--gold)}
/* about */
.about__g{color:var(--mid)}
.adv,.adv div{border-color:var(--line)!important}
.adv i{color:var(--gold)}
/* материалы */
.mat{background:#111112;border-block:1px solid var(--line)}
.mat__l li{border-color:var(--line)}
/* этапы */
.steps i{box-shadow:inset 0 0 0 1px rgba(201,165,107,.5);color:var(--gold)}
/* отзывы */
.sec--grey{background:#101011}
.arrows button{box-shadow:inset 0 0 0 1px rgba(238,233,226,.25)}
.arrows button:hover{background:var(--gold);color:#0B0B0C}
.rev blockquote{background:#171718;border:1px solid var(--line)}
/* форма */
.tabs{background:#171718}
.tabs .on{background:var(--ink);color:#0B0B0C}
.f input,.f select{border-bottom-color:rgba(238,233,226,.2);color:var(--ink)}
.f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23EEE9E2' stroke-width='1.3'/%3E%3C/svg%3E")}
.f select option,.f select optgroup{background:#151516;color:var(--ink)}
.f input:focus,.f select:focus{border-color:var(--gold)}
.f input::placeholder{color:#5F5A54}
.f input[type=date]{color-scheme:dark}
.qty{border-bottom-color:rgba(238,233,226,.2)}.qty button{color:var(--gold)}
.checks span{box-shadow:inset 0 0 0 1px var(--line)}
.checks input:checked+span{background:var(--gold);color:#0B0B0C}
.err{color:#E89B82}
/* faq */
.acc details,.acc details:first-child{border-color:var(--line)}
/* контакты, футер */
.ct,.ct a,.ct__b{border-color:var(--line)!important}
.ftr{background:#080809;border-top:1px solid var(--line)}
.ftr__brand img{mix-blend-mode:normal;filter:invert(1) hue-rotate(180deg) brightness(1.1)}
.ftr__bot{border-color:var(--line)}
/* fab, modal */
.fab__c{background:#1A1A1B;color:var(--gold)}
.modal__box{background:#141415;border:1px solid var(--line)}
/* страница модели */
.dp__img{background:radial-gradient(55% 50% at 50% 45%,#24211D,#111112 75%)}
.dp__img::after{background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.75),transparent)}
.dp__img img,.dp__img--ai img{mix-blend-mode:normal;box-shadow:none;filter:drop-shadow(0 26px 30px rgba(0,0,0,.65))}
.specs,.specs div,.dp__nav{border-color:var(--line)}
.qf{background:#141415}
@media (max-width:820px){.portal__beam{display:block}}
/* карта */
.map{position:relative;margin-top:clamp(50px,6vw,80px);height:clamp(380px,46vw,560px);border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#141415}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:invert(.92) hue-rotate(180deg) saturate(.35) brightness(.9) contrast(.95)}
.map::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 120px 30px rgba(11,11,12,.85)}
.map__card{position:absolute;left:clamp(16px,3vw,40px);bottom:clamp(16px,3vw,40px);z-index:2;width:min(380px,calc(100% - 32px));padding:28px;border-radius:8px;background:rgba(17,17,18,.82);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.map__card b{font-size:28px;font-weight:400;letter-spacing:-.03em}
.map__card span{color:var(--mid);font-size:14.5px}
.map__btns{display:flex;gap:8px;margin-top:18px}
.map__btns .btn{flex:1;height:46px;padding:0 14px;font-size:14px}
.ct__b{margin-top:30px}
.map__hours{margin:14px 0 0;display:grid;gap:4px;font-size:14.5px}
.map__hours div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:6px}
.map__hours dt{color:var(--mid)}.map__hours dd{margin:0}
.ftr__g span{color:var(--mid);font-size:14px}
@media (max-width:600px){.map{height:auto;display:flex;flex-direction:column}.map iframe{position:relative;height:300px}.map::after{display:none}.map__card{position:relative;left:0;bottom:0;width:100%;border-radius:0;border:0;border-top:1px solid var(--line)}}
