:root{
  --bg:#F4F0E8; --surface:#FBF9F5; --ink:#1D2420; --muted:#5B635D; --line:rgba(29,36,32,.12);
  --forest:#2E3B32; --forest-2:#3B4A3F; --accent:#9A6A36; --cream:#F6F1E9;
  --e-out:cubic-bezier(.23,1,.32,1); --e-move:cubic-bezier(.77,0,.175,1); --e-sheet:cubic-bezier(.32,.72,0,1);
  --t-press:160ms; --t-hover:200ms; --t-ui:240ms;
  --serif:"Cormorant Garamond", Georgia, serif; --sans:"Onest", system-ui, sans-serif;
  --gut:clamp(20px,5vw,72px);
  --h2:clamp(38px,4.4vw,64px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}
a,button,label,.swatch{-webkit-tap-highlight-color:transparent}
body{background:var(--bg);color:var(--ink);font:400 17px/1.55 var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit}
[hidden]{display:none!important}
h1,h2,h3{text-wrap:balance;font-weight:500}
p{text-wrap:pretty}
::selection{background:#C9D0C2;color:var(--ink)}
input{caret-color:var(--forest)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.btn-main:focus-visible,.hdr-cta:focus-visible,.chip:focus-visible{border-radius:999px}
.swatch:focus-visible{border-radius:50%}

/* Свой курсор (фишка 65) – только мышь */
@media (hover:hover) and (pointer:fine){
  html{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M5 3v21l5.6-5.2 3.8 8.6 3.6-1.6-3.8-8.4H22z' fill='%232E3B32' stroke='%23F6F1E9' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 5 3, auto}
  a,button,label,input[type=radio],input[type=checkbox],.swatch{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M12.5 4.6a1.9 1.9 0 0 1 3.8 0v8.2h.4a1.9 1.9 0 0 1 3.7.6 1.9 1.9 0 0 1 3.5 1 1.9 1.9 0 0 1 3.3 1.3v6.4c0 3.9-2.9 6.8-6.8 6.8h-2.6c-2.1 0-3.8-.9-5-2.6l-4.5-6.4a1.9 1.9 0 0 1 2.9-2.5l1.3 1.4z' fill='%239A6A36' stroke='%23F6F1E9' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 13 4, pointer}
  input[type=text],input[type=tel],input[type=number],input:not([type]){cursor:text}
}

/* ---------- Шапка ---------- */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;gap:24px;padding:18px var(--gut);transition:color .4s var(--e-out),background-color .3s var(--e-out)}
.logo{font:600 30px/1 var(--serif);text-decoration:none;letter-spacing:.01em;margin-right:auto}
.nav{display:flex;gap:4px;padding:5px;border-radius:999px;transition:background-color .4s var(--e-out)}
.nav a{padding:9px 16px;border-radius:999px;text-decoration:none;font-size:15px;transition:background-color var(--t-hover) var(--e-out),transform var(--t-press) ease-out}
.nav a:active{transform:scale(.97)}
.hdr-cta{padding:12px 20px;border-radius:999px;font-size:15px;font-weight:500;transition:background-color .3s var(--e-out),color .3s var(--e-out),transform var(--t-press) ease-out}
.hdr-cta:active,.chip:active,.btn-ghost:active{transform:scale(.97)}
.burger{display:none;width:46px;height:46px;border-radius:50%;position:relative;transition:transform var(--t-press) ease-out,background-color .3s var(--e-out)}
.burger:active{transform:scale(.94)}
.burger span{position:absolute;left:14px;right:14px;height:1.6px;background:currentColor;border-radius:2px}
.burger span:first-child{top:19px}.burger span:last-child{top:26px}
.hdr[data-theme=dark]{color:var(--cream)}
.hdr[data-theme=dark] .nav{background:rgba(22,30,25,.42)}
.hdr[data-theme=dark] .hdr-cta{background:var(--cream);color:var(--forest)}
.hdr[data-theme=dark] .burger{background:rgba(22,30,25,.42)}
.hdr[data-theme=light]{color:var(--ink)}
.hdr[data-theme=light] .nav{background:rgba(251,249,245,.78)}
.hdr[data-theme=light] .hdr-cta{background:var(--forest);color:var(--cream)}
.hdr[data-theme=light] .burger{background:rgba(251,249,245,.78)}
.hdr.solid{background:rgba(244,240,232,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.hdr.solid .nav{background:transparent}
@media (hover:hover) and (pointer:fine){
  .hdr[data-theme=dark] .nav a:hover{background:rgba(246,241,233,.16)}
  .hdr[data-theme=light] .nav a:hover{background:rgba(29,36,32,.07)}
}

/* ---------- Сцена ---------- */
.intro{position:relative;height:1250svh}
.stage{position:sticky;top:0;height:100svh;overflow:hidden;background:#AEB5B0;contain:strict}
.lyr,.interior-full{position:absolute;left:0;top:0;will-change:transform}
.lyr img{width:100%;height:100%}
.forest-front{pointer-events:none}
.interior-full{opacity:0;visibility:hidden;transform-origin:0 0}

/* гостиная: фото + живой огонь */
.pic{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden}
.pic>img{position:absolute;inset:0;width:100%;height:100%}
.pic>img.fire{inset:auto;left:55.08%;top:66.96%;width:13.42%;height:12.35%;transform-origin:50% 100%;animation:flame 1.7s ease-in-out infinite alternate}
@keyframes flame{0%{transform:scale(1,1);opacity:1}23%{transform:scale(1.01,1.035);opacity:.93}41%{transform:scale(.995,.985);opacity:1}67%{transform:scale(1.008,1.05);opacity:.9}100%{transform:scale(1,1.015);opacity:.97}}
.pic .flick{position:absolute;inset:0;pointer-events:none;background:radial-gradient(30% 60% at 61.5% 74%,rgba(255,150,60,.26),rgba(255,140,60,.07) 55%,transparent 75%);animation:flick 2.3s steps(1,end) infinite}
@keyframes flick{0%{opacity:.75}9%{opacity:.95}17%{opacity:.7}28%{opacity:1}39%{opacity:.8}52%{opacity:.92}61%{opacity:.68}73%{opacity:.98}86%{opacity:.78}100%{opacity:.9}}
.pic .sparks{position:absolute;left:54.5%;top:56%;width:14.5%;height:23.5%;pointer-events:none}
.idoor{position:absolute}
.idoor canvas{position:absolute;inset:0;width:100%;height:100%;transition:opacity .45s var(--e-out)}
.idoor canvas+canvas{opacity:0}

/* остановки у межкомнатных дверей */
.stop{position:absolute;left:0;top:0;z-index:6;width:216px;padding:18px 18px 16px;border-radius:22px;background:rgba(250,245,238,.74);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 18px 40px -24px rgba(40,24,10,.45);opacity:0;visibility:hidden;will-change:transform,opacity;color:var(--ink)}
.stop-h{font:600 30px/1 var(--serif)}
.stop-m{margin-top:8px;font-size:15px;color:#4A433C}
.stop-p{margin-top:10px;font-weight:500;font-variant-numeric:tabular-nums;font-size:18px}
.stop-p small{font-size:14px;color:#6A625A;font-weight:400}
.stop-c{margin-top:12px;font-size:14px;color:#6A625A}
.stop-c b{color:var(--ink);font-weight:500;display:inline-block;transition:filter .2s,opacity .2s}
.stop-c b.swap{filter:blur(2px);opacity:.6}
.stop-sw{margin:10px 0 14px}
.stop .swatch{width:28px;height:28px}
.stop-sw{gap:8px}
.t-int::before{content:"";position:absolute;z-index:-1;inset:-48px -90px -36px;background:radial-gradient(closest-side,rgba(248,243,236,.9),rgba(248,243,236,.6) 60%,rgba(248,243,236,0));pointer-events:none}
.stop .btn-ghost{min-height:40px;font-size:15px}

.fog{position:absolute;left:-20%;right:-20%;pointer-events:none;will-change:transform,opacity;overflow:hidden}
.fog-back{top:34%;height:52%;opacity:.55;-webkit-mask-image:linear-gradient(transparent,#000 40%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 40%,#000 70%,transparent)}
.fog-front{top:60%;height:60%;opacity:.5;-webkit-mask-image:linear-gradient(transparent,#000 35%);mask-image:linear-gradient(transparent,#000 35%)}
.fog-move{position:absolute;inset:0 auto 0 0;width:200%;background-repeat:repeat-x;background-size:50% 100%;animation:drift 80s linear infinite}
.fog-front .fog-move{animation-duration:46s;animation-direction:reverse}
@keyframes drift{to{transform:translate3d(-50%,0,0)}}

/* входная дверь: короб и полотно – фото, перекрашиваются на canvas */
.door,.door-fx{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.door-fx{pointer-events:none}
.d-frame,.d-leaf{position:absolute}
.d-frame{inset:0}
.d-frame canvas,.d-leaf canvas{position:absolute;inset:0;width:100%;height:100%;transition:opacity .5s var(--e-out)}
.d-frame canvas+canvas,.d-leaf canvas+canvas{opacity:0}
.d-win{position:absolute;overflow:hidden;background:#3A2418}
.d-win .pic{transform-origin:0 0;will-change:transform}
.d-pers{position:absolute;transform-style:preserve-3d}
.d-leaf{transform-origin:0 50%;will-change:transform}
.d-leaf .turn{position:absolute;inset:0;background:#120c08;opacity:0;pointer-events:none}
.d-seam{position:absolute;pointer-events:none;box-shadow:0 0 var(--gl,10px) calc(var(--gl,10px)*.3) rgba(255,170,80,.95),inset 0 0 calc(var(--gl,10px)*.6) calc(var(--gl,10px)*.1) rgba(255,196,120,.95)}
.d-halo{position:absolute;pointer-events:none}
.d-halo i{position:absolute;inset:0;background:radial-gradient(closest-side,rgba(255,196,128,.85),rgba(255,180,110,.3) 42%,transparent);animation:breath 4s ease-in-out infinite}
@keyframes breath{50%{opacity:.78;transform:scale(.97)}}
.d-shadow{position:absolute;background:radial-gradient(closest-side,rgba(20,24,20,.5),transparent)}
.d-light{position:absolute;opacity:0;background:radial-gradient(50% 70% at 50% 0,rgba(255,190,110,.9),rgba(255,170,90,.3) 55%,transparent);clip-path:polygon(36% 0,64% 0,100% 100%,0 100%)}
.d-fog{position:absolute;pointer-events:none;background:radial-gradient(closest-side,rgba(214,220,215,.5),rgba(214,220,215,.18) 55%,transparent)}
.fx-spill{position:absolute;opacity:0;background:radial-gradient(closest-side,rgba(255,176,100,.38),rgba(255,166,96,.12) 45%,transparent 80%);will-change:opacity}

.t-forest,.t-int{position:absolute;z-index:5;will-change:transform,opacity}
.t-forest{left:50%;top:max(84px,11svh);width:min(640px,88vw);transform:translateX(-50%);text-align:center;color:var(--ink)}
.sub{font-size:16px;color:#2F3832;margin-top:10px}
.h-hero{font:500 clamp(42px,5vw,78px)/1.02 var(--serif);letter-spacing:-.01em}
.hint{display:inline-flex;align-items:center;gap:10px;font-size:15px;color:#2F3832}
.hint-line{width:1.5px;height:26px;background:currentColor;transform-origin:50% 0;animation:hint 2.2s var(--e-out) infinite}
@keyframes hint{0%{transform:scaleY(0)}55%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
.t-int{left:50%;top:max(88px,12svh);width:min(860px,92vw);text-align:center;opacity:0;visibility:hidden;color:#24201C}
.t-int .h-hero{font-size:clamp(36px,3vw,64px);white-space:nowrap}
.t-int.split .lead{max-width:none;margin-top:6px}
.t-int.split .btns{position:absolute;left:0;top:0;width:100%;height:0;margin:0}
.t-int.split .btns>*{position:absolute}
.lead{margin:14px auto 0;font-size:18px;color:#3A322B;max-width:32em}
.btns{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:26px}
.btns.center{justify-content:center}
.veil{position:absolute;inset:0;z-index:8;background:#E4E7E3;pointer-events:none;transition:opacity 1.6s var(--e-out)}
.veil.off{opacity:0}

/* кнопка входа и примерочная у двери */
.enter{position:absolute;left:0;top:0;z-index:6;display:flex;flex-direction:column;align-items:center;gap:14px;will-change:transform,opacity}
.enter .hint{color:#26302A}
.tryon{position:absolute;left:0;top:0;z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:14px 14px 16px;border-radius:20px;background:rgba(246,241,233,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 30px -18px rgba(0,0,0,.4);will-change:transform,opacity}
.tryon-t{font-size:13px;color:#3B433E;line-height:1.3}
.tryon-t b{display:inline-block;font:600 19px/1.2 var(--serif);color:var(--ink);transition:filter .2s,opacity .2s}
.tryon-t b.swap{filter:blur(2px);opacity:.6}
.tryon-sw{display:flex;flex-direction:column;gap:10px}

/* Кнопка (49) и плашка, которая целиком становится кругом (66) */
.btn-main{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 30px;border-radius:999px;background:var(--forest);color:var(--cream);font-weight:500;font-size:16px;transition:transform var(--t-press) ease-out,background-color var(--t-hover) ease}
.btn-main:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.btn-main:not(.btn-morph):hover{background:var(--forest-2)}}
.btn-main.wide{width:100%}
.btn-morph{background:transparent}
.bm-bg{position:absolute;z-index:-1;left:50%;top:50%;width:var(--bw,100%);height:var(--bd,100%);transform:translate(-50%,-50%);background:var(--forest);clip-path:var(--c0,inset(0 round 28px));transition:clip-path .3s var(--e-out)}
.bm-l1{transition:opacity .16s ease-out,filter .16s ease-out;white-space:nowrap}
.bm-l2{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.94);font-size:14px;line-height:1.15;text-align:center;white-space:nowrap;opacity:0;transition:opacity .2s ease-out,transform .3s var(--e-out)}
@media (hover:hover) and (pointer:fine){
  .btn-morph:hover .bm-bg,.btn-morph:focus-visible .bm-bg{clip-path:var(--c1,inset(0 round 28px));transition-duration:.42s}
  .btn-morph:hover .bm-l1,.btn-morph:focus-visible .bm-l1{opacity:0;filter:blur(2px)}
  .btn-morph:hover .bm-l2,.btn-morph:focus-visible .bm-l2{opacity:1;transform:translate(-50%,-50%);transition-delay:.12s}
}
.btn-ghost{display:inline-flex;align-items:center;min-height:48px;text-decoration:none;border-bottom:1.5px solid currentColor;line-height:1.2;padding:0 2px;transition:transform var(--t-press) ease-out,opacity var(--t-hover) ease}
@media (hover:hover) and (pointer:fine){.btn-ghost:hover{opacity:.7}}

/* ---------- Секции ---------- */
.wrap{max-width:1360px;margin:0 auto;padding:0 var(--gut)}
.sec{padding:clamp(80px,10vw,136px) 0}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:24px 64px;align-items:end;margin-bottom:56px}
.h2{font:500 var(--h2)/1.02 var(--serif);letter-spacing:-.01em}
.sec-sub{color:var(--muted);max-width:34em;margin-top:12px}
.sec-head .sec-sub{margin-top:0}
.note{margin-top:32px;color:var(--muted);font-size:15px;max-width:60em}
.catalog{background:var(--bg)}

.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.card{background:var(--surface);border-radius:20px;padding:22px 22px 24px;display:flex;flex-direction:column;gap:18px;box-shadow:0 1px 0 rgba(29,36,32,.04)}
.card-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.card h3{font:600 30px/1 var(--serif)}
.price{font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}
.price small{color:var(--muted);font-weight:400;font-size:14px}
.card-meta{font-size:14px;color:var(--muted);margin-top:-10px;min-height:2.9em}
.cname{display:inline-block;color:var(--ink);transition:filter .2s,opacity .2s}
.cname.swap{filter:blur(2px);opacity:.6}
.room{position:relative;aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#EFE9DF,#E7DFD2 82%,transparent 82%),linear-gradient(90deg,#D9BE98,#CFB28A)}
.room::before{content:"";position:absolute;inset:auto 0 0 0;height:18%;background:repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 1px,transparent 1px 44px),linear-gradient(180deg,#D6BB94,#C8A97F)}
.room::after{content:"";position:absolute;left:0;right:0;bottom:18%;height:2.2%;background:#F4F1EA}
.swatches{display:flex;flex-wrap:wrap;gap:10px}
.swatch{width:34px;height:34px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.14);position:relative;transition:transform var(--t-press) ease-out}
.swatch::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid var(--ink);opacity:0;transform:scale(.9);transition:opacity .2s var(--e-out),transform .2s var(--e-out)}
.swatch[aria-pressed=true]::after{opacity:1;transform:none}
.swatch:active{transform:scale(.94)}
.swatch::before{content:"";position:absolute;inset:-6px}
.tryon .swatch{width:30px;height:30px}

/* Дверь-фото в каталоге */
.dimg{position:absolute;left:50%;bottom:17.5%;height:74%;transform:translateX(-50%);perspective:900px}
.dimg .dv{position:relative;height:100%;transform-origin:12% 50%;transition:transform .5s var(--e-out)}
.dimg .dv.swing{transform:rotateY(-14deg);transition:transform .26s var(--e-out)}
.dimg canvas{position:absolute;inset:0;width:100%;height:100%;transition:opacity .45s var(--e-out)}
.dimg canvas+canvas{opacity:0}
.dimg::after{content:"";position:absolute;left:-8%;right:-8%;bottom:-3%;height:6%;background:radial-gradient(closest-side,rgba(40,30,20,.28),transparent);z-index:-1}
.room.room-white{background:linear-gradient(180deg,#F0EFEB,#E9E7E2 82%,transparent 82%),linear-gradient(90deg,#D9BE98,#CFB28A)}

/* Материалы */
.materials{background:var(--surface)}
.mats{display:grid;grid-template-columns:repeat(2,1fr);gap:40px 64px}
.mat{display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:start}
.mat h3{font:600 26px/1.1 var(--serif);margin-bottom:8px}
.mat p{color:var(--muted)}
.sw{width:120px;height:120px;border-radius:16px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.sw-enamel{background:radial-gradient(120% 80% at 20% 10%,rgba(255,255,255,.55),transparent 50%),#A9B0A1}
.sw-oak{background:url(img/cat-roshcha.webp) 45% 40%/420% auto #E2D6C6}
.sw-alu{background:linear-gradient(90deg,#ECEDEE 0 6%,#9EA2A5 6% 9%,#E4DED2 9%),#ddd}
.sw-mag{background:radial-gradient(circle at 50% 50%,#1b1b1b 0 13%,#4a4d50 13.5% 17%,transparent 17.5%),linear-gradient(180deg,#F2EFE8,#E6E1D6)}

/* Замер */
.zamer-grid{display:grid;grid-template-columns:4fr 7fr;column-gap:clamp(40px,6vw,96px);row-gap:28px;align-items:stretch}
.zamer-cta{grid-column:2}
.master{position:relative;border-radius:20px;overflow:hidden;background:#ECE6DC;min-height:100%}
.master img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%}
.master figcaption{position:absolute;left:16px;top:16px;right:16px;max-width:300px;padding:12px 16px;border-radius:14px;background:rgba(251,249,245,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:14px;color:var(--muted)}
.master figcaption b{display:block;color:var(--ink);font:600 22px/1.1 var(--serif)}
.steps{list-style:none;margin:32px 0 0;display:grid;gap:0}
.steps .step:last-child{padding-bottom:0}
.step{display:grid;grid-template-columns:56px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--line)}
.step .n{font:500 34px/1 var(--serif);color:var(--accent);font-variant-numeric:tabular-nums}
.step h3{font:600 24px/1.15 var(--serif);margin-bottom:4px}
.step p{color:var(--muted)}

/* Контакты */
.contacts{background:var(--forest);color:var(--cream)}
.contacts .sec-sub{color:rgba(246,241,233,.72)}
.contacts-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 64px;align-items:start}
.cinfo{display:grid;gap:0}
.cinfo div{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:18px 0;border-top:1px solid rgba(246,241,233,.16)}
.cinfo dt{color:rgba(246,241,233,.6)}
.cinfo a{text-decoration:none;border-bottom:1px solid rgba(246,241,233,.4)}

.foot{background:#232D26;color:rgba(246,241,233,.7);font-size:14px;padding-top:48px;overflow:hidden}
.foot-grid{display:flex;justify-content:space-between;gap:24px 48px;flex-wrap:wrap}
.foot-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.foot-links button{text-align:left;border-bottom:1px solid rgba(246,241,233,.3);line-height:1.4;transition:opacity var(--t-hover) ease}
.foot-links button:active,.lnk:active{opacity:.6}
.foot-word{font:500 clamp(120px,27vw,420px)/.8 var(--serif);color:rgba(246,241,233,.08);text-align:center;margin-top:32px;transform:translateY(12%);letter-spacing:-.02em;user-select:none}

/* Шторка перехода (навигация – переход, не скролл) */
.curtain{position:fixed;inset:0;z-index:90;background:var(--forest);transform:translate3d(0,100%,0);pointer-events:none;visibility:hidden;will-change:transform}
.curtain.in{visibility:visible;transform:none;transition:transform .42s var(--e-move)}
.curtain.out{visibility:visible;transform:translate3d(0,-100%,0);transition:transform .38s var(--e-sheet)}
/* знак на шторке: проявляется, когда шторка почти доехала (сценичность), гаснет быстрее */
.curtain::after{content:"проём";position:absolute;left:50%;top:50%;font:600 clamp(48px,6vw,84px)/1 var(--serif);color:var(--cream);opacity:0;transform:translate3d(-50%,calc(-50% + 8px),0);transition:opacity .15s ease-out,transform .15s ease-out}
.curtain.in::after{opacity:1;transform:translate3d(-50%,-50%,0);transition:opacity .24s ease-out .14s,transform .34s var(--e-out) .14s}

/* Шторки поверх экрана */
.scrim{position:fixed;inset:0;z-index:70;background:rgba(18,24,20,.42);opacity:0;visibility:hidden;transition:opacity .22s ease-out,visibility 0s .22s}
.scrim.on{opacity:1;visibility:visible;transition:opacity .45s var(--e-sheet)}
.sheet{position:fixed;z-index:80;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--surface);transform:translate3d(100%,0,0);transition:transform .2s ease-out;overflow-y:auto;overscroll-behavior:contain;padding:88px clamp(24px,4vw,56px) 48px}
.sheet.on{transform:none;transition:transform .48s var(--e-sheet)}
.sheet .x{position:absolute;top:20px;right:20px;width:48px;height:48px;border-radius:50%;background:var(--bg);transition:transform var(--t-press) ease-out}
.sheet .x::before,.sheet .x::after{content:"";position:absolute;left:15px;right:15px;top:23px;height:1.6px;background:var(--ink);transform:rotate(45deg)}
.sheet .x::after{transform:rotate(-45deg)}
.sheet .x:active{transform:scale(.94)}
.sheet .sec-sub{margin:12px 0 28px}
.doc p{margin-top:16px;color:var(--muted);max-width:60ch}
.doc .h2{font-size:clamp(32px,3.4vw,44px)}
.muted{opacity:.75;font-size:14px}
.form-state{transition:filter .2s,opacity .2s}
.form-state.swap{filter:blur(2px);opacity:.6}
#leadForm{display:grid;gap:16px}
.fld{display:grid;gap:6px;font-size:14px;color:var(--muted)}
.fld input{font:inherit;font-size:17px;color:var(--ink);background:var(--bg);border:1.5px solid transparent;border-radius:14px;padding:14px 16px;min-height:52px;outline:none;transition:border-color .2s}
.fld input:focus{border-color:var(--forest)}
.fld input.bad{border-color:#B4452F}
.seg{border:0;display:flex;flex-wrap:wrap;gap:8px}
.seg legend{font-size:14px;color:var(--muted);margin-bottom:6px;width:100%}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;inset:0}
.seg span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:var(--bg);font-size:15px;transition:background-color var(--t-hover) var(--e-out),color var(--t-hover) var(--e-out),transform var(--t-press) ease-out}
.seg label:active span{transform:scale(.97)}
.seg input:checked+span{background:var(--forest);color:var(--cream)}
.seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.agree{display:grid;grid-template-columns:22px 1fr;gap:12px;font-size:14px;color:var(--muted);align-items:start}
.agree input{width:20px;height:20px;margin-top:1px;accent-color:var(--forest)}
.lnk{border-bottom:1px solid currentColor;line-height:1.3;text-align:left}
.err{color:#B4452F;font-size:14px;min-height:1.2em}
.ok-ico svg path{stroke-dasharray:24}
.ok-ico{width:64px;height:64px;border-radius:50%;background:var(--forest);display:grid;place-items:center;margin-bottom:24px}
.ok-ico svg{width:28px;height:28px}

.sheet-menu{display:flex;flex-direction:column;gap:40px}
.menu-big{display:grid;gap:6px}
.menu-big a{font:500 var(--h2)/1.15 var(--serif);text-decoration:none;opacity:0;transform:translate3d(18px,0,0);transition:opacity .15s ease-out,transform .15s ease-out}
.sheet-menu.on .menu-big a{opacity:1;transform:none;transition:opacity .3s ease-out,transform .42s var(--e-out);transition-delay:calc(90ms + var(--i,0)*45ms)}

.cookie{position:fixed;z-index:60;right:20px;bottom:20px;width:288px;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:14px 14px 12px 16px;border-radius:18px;background:rgba(251,249,245,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 40px -16px rgba(0,0,0,.35);font-size:13px;line-height:1.4;transform:translate3d(0,0,0);transition:transform .45s var(--e-sheet),opacity .3s}
.cookie.hide{transform:translate3d(0,24px,0);opacity:0;transition:transform .24s var(--e-out),opacity .2s ease-out}
.cookie-btns{display:flex;gap:8px}
.cookie .chip{min-height:34px;padding:0 14px;font-size:13px;flex:1}
.chip{min-height:40px;padding:0 18px;border-radius:999px;background:var(--bg);font-size:14px;transition:transform var(--t-press) ease-out}
.chip.dark{background:var(--forest);color:var(--cream)}

/* Появление секций: clip-path + каскад */
.rv{opacity:0;transform:translate3d(0,20px,0);transition:opacity .5s var(--e-out),transform .6s var(--e-out);transition-delay:calc(var(--i,0)*60ms)}
.rv.in{opacity:1;transform:none}
.rv-clip{clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--e-out)}
.rv-clip.in{clip-path:inset(0)}

/* ---------- Адаптив ---------- */
@media (max-height:780px) and (min-width:861px){
  .steps{margin-top:22px}
  .step{padding:13px 0}
  .step h3{font-size:22px;margin-bottom:2px}
  .step .n{font-size:30px}
  .zamer .sec-sub{margin-top:8px}
}
@media (max-height:720px) and (min-width:641px){
  .t-forest .h-hero{font-size:clamp(40px,4.2vw,58px)}
  .sub{margin-top:8px}
  .t-int{top:80px}
  .stop{width:min(300px,calc(100vw - 32px));padding:14px 16px 12px;border-radius:18px}
  .stop-h{font-size:26px}
  .stop-m{margin-top:4px;font-size:13px}
  .stop-p{margin-top:4px;font-size:16px}
  .stop-c{display:none}
  .stop{display:grid;grid-template-columns:1fr auto;column-gap:12px;align-items:baseline}
  .stop-m{grid-column:1/-1}
  .stop-sw{margin:8px 0 2px;gap:9px;grid-column:1/-1}
  .stop .btn-ghost{grid-column:1/-1;justify-self:start}
  .stop .swatch{width:26px;height:26px}
  .stop .btn-ghost{min-height:34px;font-size:14px}
  .t-int .lead{font-size:16px;margin-top:8px}
  .t-int .btns,.t-forest .btns{margin-top:16px}
  .t-forest .h-hero{font-size:clamp(40px,4vw,56px)}
}
@media (max-width:1180px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .nav{display:none}
  .burger{display:block}
}
@media (max-width:860px){
  .sec-head,.contacts-grid,.zamer-grid{grid-template-columns:1fr}
  .mats{grid-template-columns:1fr}
  .master{max-width:480px;aspect-ratio:3/4;min-height:0}
  .zamer-cta{grid-column:auto}
}
@media (max-width:640px){
  body{font-size:16px}
  .hdr{padding:12px 16px;gap:10px}
  .logo{font-size:26px}
  .hdr-cta{padding:11px 16px;font-size:14px}
  .intro{height:1050svh}
  .t-forest{top:max(92px,12svh)}
  .h-hero{font-size:clamp(38px,10.4vw,48px)}
  .t-int{top:80px}
  .stop{width:min(340px,calc(100vw - 32px));padding:14px 16px 12px;border-radius:18px}
  .stop-h{font-size:26px}
  .stop-m{margin-top:4px;font-size:13px}
  .stop-p{margin-top:4px;font-size:16px}
  .stop-c{display:none}
  .stop{display:grid;grid-template-columns:1fr auto;column-gap:12px;align-items:baseline}
  .stop-m{grid-column:1/-1}
  .stop-sw{margin:8px 0 2px;gap:9px;grid-column:1/-1}
  .stop .btn-ghost{grid-column:1/-1;justify-self:start}
  .stop .swatch{width:26px;height:26px}
  .stop .btn-ghost{min-height:34px;font-size:14px}
  .lead-more{display:none}
  .tryon{flex-direction:row;align-items:center;gap:12px;padding:8px 12px 8px 14px;border-radius:16px}
  .tryon-t{font-size:12px;width:96px}
  .tryon-t b{font-size:16px;white-space:nowrap}
  .tryon .swatch{width:28px;height:28px}
  .tryon-sw{flex-direction:row;gap:10px}
  .t-int{top:104px}
  .hdr[data-theme=light]{background:linear-gradient(rgba(242,233,220,.96) 72%,rgba(242,233,220,0))}
  .t-int .h-hero{font-size:clamp(20px,7.2vw,30px)}
  .t-int .lead{font-size:15px;margin-top:8px;line-height:1.4}
  .t-int .btns{margin-top:14px;gap:10px 18px;flex-wrap:nowrap}
  .t-int .btn-main{min-height:46px;padding:0 18px;font-size:14px}
  .t-int .btn-ghost{min-height:40px;font-size:14px}
  .cards{grid-template-columns:1fr}
  .card h3{font-size:28px}
  .mat{grid-template-columns:84px 1fr;gap:16px}
  .sw{width:84px;height:84px}
  .cinfo div{grid-template-columns:1fr;gap:2px}
  .sec-head{margin-bottom:36px}
  .sheet{padding:80px 20px 40px}
  .cookie{left:12px;right:12px;bottom:12px;width:auto;flex-direction:row;align-items:center;gap:10px;padding:8px 8px 8px 14px;border-radius:16px;font-size:12.5px;line-height:1.3}
  .cookie p{flex:1;min-width:0}
  .cookie-btns{gap:6px}
  .cookie .chip{min-height:34px;padding:0 12px;flex:none}
}
@media (max-width:640px){
  .hdr[data-theme=dark]{color:var(--ink)}
  .hdr[data-theme=dark] .burger{background:rgba(246,241,233,.66)}
  .hdr[data-theme=dark] .hdr-cta{background:var(--forest);color:var(--cream)}
}
@media (max-width:380px){.hdr-cta{display:none}}
@media (max-width:640px) and (max-height:700px){.enter .hint{display:none}}
/* v9: узкий телефон (360) – подпись в строку с кнопкой, иначе задевала верх двери */
@media (max-width:380px) and (min-height:701px){.enter{flex-direction:row;gap:14px}.enter .hint{font-size:14px;gap:8px}.enter .hint-line{height:22px}}

/* Щадящий режим: без пролёта */
.rm .intro{height:100svh}
.rm .fog-move,.rm .d-halo i,.rm .hint-line,.rm .pic>img.fire,.rm .pic .flick{animation:none}
.rm .tryon,.rm .enter{display:none}
/* меньше движения, а не ноль: перемещения убраны, проявление осталось */
.rm .rv{transform:none;transition:opacity .4s ease-out}
.rm .rv-clip{clip-path:none;opacity:0;transition:opacity .4s ease-out}
.rm .rv-clip.in{opacity:1}
.rm .curtain,.rm .curtain.in,.rm .curtain.out{transform:none}
.rm .curtain{opacity:0}
.rm .curtain.in{opacity:1;transition:opacity .16s ease-out}
.rm .curtain.out{opacity:0;transition:opacity .2s ease-out}
.rm .curtain::after{transform:translate3d(-50%,-50%,0)}
.rm .sheet{transform:none;opacity:0;transition:opacity .18s ease-out}
.rm .sheet.on{transform:none;opacity:1;transition:opacity .22s ease-out}
.rm .menu-big a{transform:none}
.rm .cookie,.rm .cookie.hide{transform:none}
.rm .dimg .dv.swing{transform:none}
.rm .btn-main:active,.rm .chip:active,.rm .hdr-cta:active,.rm .btn-ghost:active,.rm .swatch:active,.rm .burger:active,.rm .sheet .x:active,.rm .nav a:active,.rm .seg label:active span{transform:none}

@media (max-width:640px) and (max-height:700px){.stop-m{display:none}}
