:root{
  --canvas:#F0EBD9;--canvas-2:#E6DFC6;--paper:#FBF7EA;--card:#FFFFFF;
  --ink:#17181C;--ink-2:#3E3C36;--muted:#78716B;--muted-2:#9B9385;
  --rule:#D9CFB4;--rule-strong:#B8AB89;
  --brass:#A6742E;--brass-2:#C99A5C;--brass-deep:#7A5320;--thread:#C69A63;
  --deep:#1F3B4A;--sienna:#B04A20;
  --r:14px;--r-lg:20px;--r-xl:28px;--r-2xl:36px;
  --gutter:clamp(20px,4vw,48px);--max:1360px;--max-wide:1520px;
  --f-s:var(--tn-serif),"Times New Roman",serif;--f-b:var(--tn-sans),system-ui,sans-serif;--f-m:var(--tn-mono),monospace;
  --ease:cubic-bezier(0.22,0.72,0.28,1);--ease-out:cubic-bezier(0.16,1,0.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--canvas);color:var(--ink);font-family:var(--f-b);font-weight:400;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative}
::selection{background:var(--brass);color:var(--paper)}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}

/* Paper grain */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.04;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.6' numOctaves='2' seed='9'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

.container{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.container-wide{max-width:var(--max-wide);margin:0 auto;padding:0 var(--gutter)}
section{padding:clamp(80px,10vw,140px) 0;position:relative}

/* TYPE */
h1{font-family:var(--f-s);font-weight:300;font-variation-settings:"opsz" 144;font-size:clamp(56px,10vw,168px);line-height:.88;letter-spacing:-.045em;text-wrap:balance}
h2{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 96;font-size:clamp(38px,6.5vw,86px);line-height:.96;letter-spacing:-.03em;text-wrap:balance}
h3{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 48;font-size:clamp(26px,2.6vw,34px);line-height:1.1;letter-spacing:-.02em}
h4{font-family:var(--f-s);font-weight:500;font-variation-settings:"opsz" 24;font-size:20px;line-height:1.25;letter-spacing:-.01em}
em.it{font-style:italic;font-weight:300;color:var(--brass)}
.mono{font-family:var(--f-m);font-variant-numeric:tabular-nums;font-size:12px;letter-spacing:.02em}
p{max-width:62ch}
.kicker{font-family:var(--f-s);font-style:italic;font-weight:400;font-variation-settings:"opsz" 24;font-size:clamp(19px,1.6vw,23px);line-height:1.5;color:var(--ink-2);max-width:58ch}

/* Section head */
.head{display:grid;grid-template-columns:100px 1fr;gap:clamp(24px,4vw,60px);margin-bottom:clamp(48px,6vw,80px);align-items:start}
.head-roman{font-family:var(--f-s);font-style:italic;font-weight:300;font-variation-settings:"opsz" 144;font-size:68px;line-height:.9;color:var(--brass);letter-spacing:-.02em}
.head-roman small{display:block;font-family:var(--f-m);font-style:normal;font-size:10px;color:var(--muted);margin-top:12px;letter-spacing:.1em;text-transform:none}
.head-body{max-width:760px}
.head-body h2{margin-bottom:24px}
.head>.head-body:only-child{grid-column:1/-1}
@media(max-width:700px){.head{grid-template-columns:1fr;gap:20px}.head-roman{font-size:48px}}

/* Sew line — SVG stitching underline that animates on reveal */
.sew{position:relative;display:inline-block}
.sew svg{position:absolute;left:0;right:0;bottom:-14px;width:100%;height:8px;pointer-events:none;overflow:visible}
.sew svg path{fill:none;stroke:var(--brass);stroke-width:1.5;stroke-dasharray:5 4;stroke-dashoffset:400;transition:stroke-dashoffset 1.4s var(--ease-out) .2s}
.reveal.in .sew svg path,.sew.in svg path{stroke-dashoffset:0}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:12px;padding:17px 30px;font-family:var(--f-b);font-weight:500;font-size:14px;line-height:1;letter-spacing:.01em;border:1px solid transparent;border-radius:var(--r);transition:all .35s var(--ease);cursor:pointer;background:transparent;color:var(--ink);position:relative;overflow:hidden}
.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-primary:hover{background:var(--brass);border-color:var(--brass);color:var(--paper);transform:translateY(-2px);box-shadow:0 10px 30px -10px rgba(166,116,46,.5)}
.btn-ghost{color:var(--ink);border-color:var(--rule-strong)}
.btn-ghost:hover{border-color:var(--ink);background:var(--ink);color:var(--paper);transform:translateY(-2px)}
.btn-brass{background:var(--brass);color:var(--paper);border-color:var(--brass)}
.btn-brass:hover{background:var(--brass-deep);border-color:var(--brass-deep);transform:translateY(-2px);box-shadow:0 10px 30px -10px rgba(122,83,32,.6)}
.btn-line{padding:0 0 6px;border:none;border-bottom:1px solid var(--brass);color:var(--brass);font-size:15px;font-weight:500;background:transparent;transition:color .3s,border-color .3s;border-radius:0}
.btn-line:hover{color:var(--ink);border-color:var(--ink)}
.arr{width:12px;height:12px;stroke:currentColor;stroke-width:1.5;fill:none;transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}

/* Reveal utility */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.08s}
.reveal-delay-2{transition-delay:.16s}
.reveal-delay-3{transition-delay:.24s}
.reveal-delay-4{transition-delay:.32s}

/* NAV */
.nav{position:sticky;top:0;z-index:100;background:rgba(240,235,217,.82);backdrop-filter:blur(20px) saturate(1.15);-webkit-backdrop-filter:blur(20px) saturate(1.15);border-bottom:1px solid var(--rule)}
.nav-inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;height:76px;gap:40px}
.brand{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 144;font-size:30px;letter-spacing:-.025em;color:var(--ink);line-height:1;display:inline-flex;align-items:baseline;transition:color .3s}
.brand:hover{color:var(--brass)}
.brand-em{font-style:italic;font-weight:300;color:var(--brass)}
.brand-dot{display:inline-block;width:5px;height:5px;background:var(--brass);border-radius:50%;margin-left:4px;transform:translateY(-1px)}
.nav-c{display:flex;justify-content:center;gap:36px;font-size:13px;font-weight:500;color:var(--ink-2)}
.nav-c a{padding:8px 0;transition:color .3s;position:relative}
.nav-c a::after{content:"";position:absolute;left:0;right:100%;bottom:6px;height:1px;background:var(--brass);transition:right .3s var(--ease)}
.nav-c a:hover{color:var(--brass)}
.nav-c a:hover::after{right:0}
.nav-r{display:flex;align-items:center;gap:20px;font-size:13px}
.nav-phone{font-family:var(--f-m);color:var(--ink);font-weight:500}
.nav-phone:hover{color:var(--brass)}
.btn-nav{padding:11px 20px;background:var(--ink);color:var(--paper);font-family:var(--f-b);font-weight:500;font-size:13px;border-radius:var(--r);transition:all .3s var(--ease);border:1px solid var(--ink)}
.btn-nav:hover{background:var(--brass);border-color:var(--brass);transform:translateY(-1px)}
@media(max-width:900px){.nav-c{display:none}.nav-inner{grid-template-columns:auto 1fr auto;gap:16px}}

/* HERO */
.hero{padding:0;position:relative;min-height:min(100vh,940px);overflow:hidden;border-bottom:1px solid var(--rule)}
.hero-photo{position:absolute;inset:0;z-index:0}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(240,235,217,.95) 0%,rgba(240,235,217,.75) 30%,rgba(240,235,217,.1) 55%,transparent 75%),linear-gradient(to bottom,transparent 55%,rgba(240,235,217,.75) 100%)}
.hero-fabric{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.5;mix-blend-mode:multiply}
.hero-fabric svg{width:100%;height:100%}
.hero-content{position:relative;z-index:2;padding:clamp(40px,5vw,80px) var(--gutter);height:min(100vh,940px);display:grid;grid-template-rows:auto 1fr auto;max-width:var(--max-wide);margin:0 auto}
.hero-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:20px}
.hero-marker{display:flex;align-items:center;gap:14px;font-family:var(--f-m);font-size:11px;color:var(--brass);letter-spacing:.08em;text-transform:uppercase}
.hero-marker::before{content:"";width:40px;height:1px;background:var(--brass)}
.hero-tag{font-family:var(--f-m);font-size:10px;color:var(--ink);background:var(--paper);border:1px solid var(--rule);padding:6px 12px;letter-spacing:.06em;border-radius:100px}
.hero-mid{display:grid;grid-template-columns:minmax(0,720px) 1fr;gap:60px;align-content:center;padding:60px 0}
.hero-title{font-family:var(--f-s);font-weight:300;font-variation-settings:"opsz" 144,"SOFT" 25;font-size:clamp(58px,10.5vw,168px);line-height:.85;letter-spacing:-.05em;color:var(--ink);margin-bottom:36px}
.hero-title em{font-style:italic;font-weight:400;color:var(--brass)}
.hero-title .word{display:inline-block;opacity:0;transform:translateY(30px) rotate(-1deg);animation:wordIn 1s var(--ease-out) forwards}
@keyframes wordIn{to{opacity:1;transform:translateY(0) rotate(0)}}
.hero-lead{font-family:var(--f-s);font-style:italic;font-weight:400;font-variation-settings:"opsz" 24;font-size:clamp(19px,1.65vw,23px);line-height:1.5;color:var(--ink-2);max-width:44ch;margin-bottom:40px;opacity:0;animation:fadeUp .8s var(--ease-out) 1s forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;opacity:0;animation:fadeUp .8s var(--ease-out) 1.2s forwards}
.hero-bot{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding-top:32px;border-top:1px solid var(--rule-strong);max-width:720px;opacity:0;animation:fadeUp .8s var(--ease-out) 1.4s forwards}
.hero-bot-i .val{font-family:var(--f-s);font-style:italic;font-weight:300;font-variation-settings:"opsz" 96;font-size:clamp(32px,3.2vw,44px);color:var(--brass);line-height:.95;letter-spacing:-.025em;margin-bottom:8px}
.hero-bot-i .lbl{font-size:12px;color:var(--muted);line-height:1.4}
.hero-cap{position:absolute;right:32px;bottom:32px;z-index:3;text-align:right;max-width:38ch;padding:16px 20px;background:rgba(251,247,234,.85);backdrop-filter:blur(8px);border:1px solid var(--rule);border-radius:var(--r);animation:fadeUp .8s var(--ease-out) 1.6s forwards;opacity:0}
.hero-cap strong{display:block;font-family:var(--f-s);font-style:italic;font-size:17px;color:var(--ink);margin-bottom:4px}
.hero-cap small{font-family:var(--f-m);font-size:10px;color:var(--muted);letter-spacing:.05em}
.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--f-m);font-size:10px;letter-spacing:.15em;color:var(--muted);opacity:0;animation:fadeUp 1s var(--ease-out) 2s forwards}
.hero-scroll .dot{width:1px;height:32px;background:linear-gradient(to bottom,var(--brass) 40%,transparent);position:relative}
.hero-scroll .dot::after{content:"";position:absolute;top:0;left:-2px;width:5px;height:5px;background:var(--brass);border-radius:50%;animation:scrollDot 2.4s var(--ease) infinite}
@keyframes scrollDot{0%{transform:translateY(0);opacity:1}80%{transform:translateY(24px);opacity:0}100%{transform:translateY(24px);opacity:0}}
@media(max-width:900px){.hero-photo::after{background:linear-gradient(to bottom,transparent 25%,rgba(240,235,217,.9) 60%)}.hero-cap{display:none}.hero-bot{grid-template-columns:1fr;gap:16px}}

/* MANIFESTO */
.manifesto{background:var(--canvas);padding:clamp(80px,10vw,160px) 0;text-align:center;border-top:1px solid var(--rule)}
.mani-quote{font-family:var(--f-s);font-weight:300;font-variation-settings:"opsz" 144;font-size:clamp(30px,4.5vw,64px);line-height:1.15;letter-spacing:-.025em;color:var(--ink);max-width:1080px;margin:0 auto;text-wrap:balance}
.mani-quote em{font-style:italic;font-weight:400;color:var(--brass)}
.mani-attr{margin-top:40px;font-family:var(--f-m);font-size:11px;color:var(--muted);letter-spacing:.15em}

/* CATEGORIES */
.categories{background:var(--canvas-2);border-top:1px solid var(--rule)}
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.cat-tile{padding:0;background:var(--card);border:1px solid var(--rule);border-radius:var(--r-lg);overflow:hidden;transition:all .5s var(--ease);cursor:pointer;display:grid;grid-template-columns:1fr 1.2fr;min-height:340px;position:relative}
.cat-tile:hover{transform:translateY(-6px);box-shadow:0 20px 60px -25px rgba(23,24,28,.3);border-color:var(--rule-strong)}
.cat-tile-txt{padding:36px 32px;display:flex;flex-direction:column;justify-content:space-between}
.cat-tile-num{font-family:var(--f-m);font-size:11px;color:var(--muted);letter-spacing:.08em;margin-bottom:20px}
.cat-tile-title{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 48;font-size:clamp(28px,2.8vw,36px);color:var(--ink);letter-spacing:-.02em;line-height:1;margin-bottom:14px}
.cat-tile-title em{font-style:italic;font-weight:300;color:var(--brass)}
.cat-tile-lead{font-family:var(--f-s);font-style:italic;font-size:15px;color:var(--ink-2);line-height:1.5;margin-bottom:auto}
.cat-tile-foot{margin-top:24px;display:flex;justify-content:space-between;align-items:baseline;padding-top:20px;border-top:1px solid var(--rule)}
.cat-tile-price{font-family:var(--f-m);color:var(--brass);font-size:16px;letter-spacing:-.02em}
.cat-tile-price small{color:var(--muted);font-size:10px;margin-right:6px;letter-spacing:.1em}
.cat-tile-cta{font-family:var(--f-s);font-style:italic;font-size:15px;color:var(--ink);display:inline-flex;align-items:center;gap:8px;transition:color .3s,gap .3s}
.cat-tile:hover .cat-tile-cta{color:var(--brass);gap:14px}
.cat-tile-photo{position:relative;overflow:hidden;background:var(--canvas-2)}
.cat-tile-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.cat-tile:hover .cat-tile-photo img{transform:scale(1.06)}
@media(max-width:900px){.cat-grid{grid-template-columns:1fr}.cat-tile{grid-template-columns:1fr;min-height:0}.cat-tile-photo{aspect-ratio:16/10}}

/* CATALOG */
.catalog{background:var(--canvas);border-top:1px solid var(--rule)}
.catalog-tools{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--rule);margin-bottom:24px}
.search-wrap{position:relative;display:flex;align-items:center;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-lg);padding:14px 22px;gap:12px;transition:all .3s;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.search-wrap:focus-within{border-color:var(--brass);box-shadow:0 0 0 3px rgba(166,116,46,.1)}
.search-wrap svg{width:18px;height:18px;color:var(--muted)}
.search-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--f-s);font-size:20px;color:var(--ink);letter-spacing:-.01em}
.search-input::placeholder{color:var(--muted);font-style:italic}
.search-count{font-family:var(--f-m);font-size:12px;color:var(--muted);letter-spacing:.05em;white-space:nowrap}
.search-count strong{color:var(--brass);font-weight:500;font-size:22px;letter-spacing:-.02em}
.catalog-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.filter-chip{padding:10px 18px;background:transparent;border:1px solid var(--rule-strong);color:var(--ink-2);font-family:var(--f-b);font-size:13px;font-weight:500;cursor:pointer;transition:all .25s var(--ease);border-radius:100px}
.filter-chip:hover{border-color:var(--ink);color:var(--ink)}
.filter-chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.catalog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.model{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--rule);border-radius:var(--r-lg);transition:all .4s var(--ease);cursor:pointer;position:relative;overflow:hidden}
.model:hover{transform:translateY(-5px);box-shadow:0 20px 45px -20px rgba(23,24,28,.25);border-color:var(--rule-strong)}
.model-frame{aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--canvas-2)}
.model-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.model:hover .model-frame img{transform:scale(1.06)}
.model-tag{position:absolute;top:12px;left:12px;font-family:var(--f-m);font-size:10px;color:var(--ink);background:var(--paper);padding:4px 8px;letter-spacing:.06em;z-index:2;border:1px solid var(--rule);border-radius:100px}
.model-idx{position:absolute;bottom:8px;right:14px;font-family:var(--f-s);font-style:italic;font-weight:300;font-variation-settings:"opsz" 144;font-size:44px;color:rgba(251,247,234,.9);line-height:.85;letter-spacing:-.05em;z-index:2;text-shadow:0 2px 20px rgba(0,0,0,.2)}
.model-body{padding:20px 22px;display:flex;flex-direction:column;flex:1}
.model-brand{font-family:var(--f-m);font-size:10px;color:var(--brass);letter-spacing:.12em;margin-bottom:6px}
.model-name{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 48;font-size:22px;color:var(--ink);letter-spacing:-.02em;margin-bottom:10px;line-height:1.1}
.model-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.model-tags span{font-family:var(--f-m);font-size:10px;color:var(--muted);padding:3px 8px;background:var(--canvas);border-radius:100px;letter-spacing:.03em}
.model-foot{display:flex;align-items:baseline;justify-content:space-between;padding-top:14px;border-top:1px solid var(--rule);margin-top:auto}
.model-price{font-family:var(--f-m);font-weight:500;color:var(--brass);font-size:17px;letter-spacing:-.02em}
.model-price small{color:var(--muted);font-size:10px;margin-right:5px;font-weight:400;letter-spacing:.1em}
.model-view{font-family:var(--f-s);font-style:italic;font-size:14px;color:var(--ink);display:inline-flex;align-items:center;gap:6px;transition:color .3s,gap .3s}
.model:hover .model-view{color:var(--brass);gap:10px}
.catalog-empty{grid-column:1/-1;padding:60px 0;text-align:center;font-family:var(--f-s);font-style:italic;font-size:20px;color:var(--muted)}
@media(max-width:1100px){.catalog-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.catalog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.catalog-grid{grid-template-columns:1fr}}

/* HOTSPOT SHOWCASE */
.hotspot{background:var(--ink);color:var(--paper);border-top:1px solid var(--ink);position:relative;overflow:hidden}
.hotspot .head-roman{color:var(--brass-2)}
.hotspot .head-roman small{color:var(--muted-2)}
.hotspot .kicker{color:var(--canvas)}
.hotspot h2{color:var(--paper)}
.hotspot h2 em{color:var(--brass-2)}
.hs-wrap{position:relative;margin-top:60px}
.hs-frame{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:16/9;background:var(--canvas-2);border:1px solid rgba(255,255,255,.1)}
.hs-frame img{width:100%;height:100%;object-fit:cover;display:block}
.hs-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 60%,rgba(23,24,28,.4) 100%);pointer-events:none}
.hs-pin{position:absolute;width:36px;height:36px;transform:translate(-50%,-50%);z-index:5;cursor:pointer;border:none;background:none;padding:0}
.hs-pin::before{content:"";position:absolute;inset:0;background:var(--brass);border-radius:50%;opacity:.3;animation:pinPulse 2.5s infinite}
.hs-pin::after{content:"";position:absolute;inset:8px;background:var(--brass);border:2px solid var(--paper);border-radius:50%;box-shadow:0 4px 20px rgba(0,0,0,.3);transition:transform .3s var(--ease)}
.hs-pin:hover::after,.hs-pin.active::after{transform:scale(1.4);background:var(--sienna)}
@keyframes pinPulse{0%{transform:scale(1);opacity:.4}70%,100%{transform:scale(2.4);opacity:0}}
.hs-info{position:absolute;background:var(--paper);color:var(--ink);border-radius:var(--r-lg);padding:20px 24px;max-width:320px;box-shadow:0 20px 60px -10px rgba(0,0,0,.5);z-index:10;pointer-events:none;opacity:0;transform:translateY(10px) scale(.96);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.hs-info.on{opacity:1;transform:translateY(0) scale(1)}
.hs-info-mono{font-family:var(--f-m);font-size:10px;color:var(--brass);letter-spacing:.1em;margin-bottom:8px}
.hs-info-title{font-family:var(--f-s);font-weight:500;font-size:19px;line-height:1.2;letter-spacing:-.015em;margin-bottom:8px;position:relative;padding-bottom:10px}
.hs-info-title::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:linear-gradient(90deg,var(--brass) 60%,transparent 60%);background-size:8px 2px;background-repeat:repeat-x;transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease-out) .2s}
.hs-info.on .hs-info-title::after{transform:scaleX(1)}
.hs-info-body{font-size:13px;color:var(--ink-2);line-height:1.55}
.hs-info-body .rev{display:inline-block;opacity:0;transform:translateY(6px);animation:none}
.hs-info.on .hs-info-body .rev{animation:charIn .5s var(--ease-out) forwards}
@keyframes charIn{to{opacity:1;transform:translateY(0)}}
.hs-nav{margin-top:30px;display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.hs-nav-btn{padding:8px 14px;border-radius:100px;background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--canvas);font-family:var(--f-b);font-size:12px;font-weight:500;cursor:pointer;transition:all .25s var(--ease)}
.hs-nav-btn:hover,.hs-nav-btn.active{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.hs-hint{margin-top:24px;text-align:center;font-family:var(--f-s);font-style:italic;font-size:15px;color:var(--muted-2)}

/* MATERIALS */
.materials{background:var(--canvas-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.mat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.mat-card{padding:32px 26px;background:var(--card);border:1px solid var(--rule);display:flex;flex-direction:column;min-height:460px;border-radius:var(--r-lg);transition:all .4s var(--ease)}
.mat-card:hover{transform:translateY(-6px);box-shadow:0 20px 45px -20px rgba(23,24,28,.2)}
.mat-swatch{width:100%;aspect-ratio:1;max-width:180px;margin-bottom:28px;position:relative;box-shadow:inset 0 0 60px rgba(0,0,0,.12),0 2px 12px rgba(23,24,28,.06);border-radius:8px}
.mat-swatch::after{content:"";position:absolute;inset:0;border:1px solid rgba(0,0,0,.1);border-radius:8px}
.ms-pvh650{background:repeating-linear-gradient(45deg,#24201A,#24201A 4px,#362F26 4px,#362F26 8px)}
.ms-pvh900{background:repeating-linear-gradient(45deg,#1B1815,#1B1815 6px,#2C271F 6px,#2C271F 12px)}
.ms-oxford{background:radial-gradient(circle at 3px 3px,#4C5E6E 1.5px,transparent 2px) 0 0/7px 7px,#2E3B48}
.ms-poly{background:repeating-linear-gradient(90deg,#263647 0 4px,#1C2A38 4px 8px)}
.mat-name{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 48;font-size:26px;color:var(--ink);letter-spacing:-.02em;margin-bottom:6px;line-height:1.1}
.mat-tag{font-family:var(--f-s);font-style:italic;font-size:15px;color:var(--brass);margin-bottom:22px}
.mat-specs{list-style:none;padding-top:16px;border-top:1px solid var(--rule);margin-bottom:auto}
.mat-specs li{display:flex;justify-content:space-between;padding:6px 0;font-family:var(--f-m);font-size:11px;color:var(--muted)}
.mat-specs li span:last-child{color:var(--ink);font-weight:500}
.mat-use{margin-top:20px;font-family:var(--f-s);font-style:italic;font-size:14px;color:var(--ink-2);line-height:1.5}
@media(max-width:1000px){.mat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.mat-grid{grid-template-columns:1fr}}

/* PORTFOLIO */
.portfolio{background:var(--canvas);border-top:1px solid var(--rule)}
.port-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;grid-auto-rows:200px}
.port-item{position:relative;background:var(--canvas-2);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:all .5s var(--ease)}
.port-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.port-item:hover{transform:translateY(-4px);box-shadow:0 25px 50px -20px rgba(23,24,28,.3)}
.port-item:hover img{transform:scale(1.05)}
.port-item::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(23,24,28,.75) 0%,rgba(23,24,28,.1) 45%,transparent 100%);z-index:1;pointer-events:none;opacity:.6;transition:opacity .4s}
.port-item:hover::before{opacity:.85}
.port-item[data-w="2"]{grid-column:span 2}
.port-item[data-w="3"]{grid-column:span 3}
.port-item[data-h="2"]{grid-row:span 2}
.port-num{position:absolute;top:12px;left:12px;font-family:var(--f-m);font-size:10px;color:var(--paper);letter-spacing:.1em;padding:4px 8px;background:rgba(23,24,28,.7);z-index:2;border-radius:100px}
.port-label{position:absolute;bottom:16px;left:18px;right:18px;z-index:2;font-family:var(--f-s);font-style:italic;font-weight:400;font-size:16px;line-height:1.25;color:var(--paper);letter-spacing:-.005em}
.port-label small{display:block;font-family:var(--f-m);font-style:normal;font-size:10px;color:var(--canvas);margin-top:5px;letter-spacing:.08em;opacity:.85}
.port-footer{display:flex;justify-content:space-between;align-items:baseline;margin-top:28px;color:var(--muted);font-family:var(--f-m);font-size:11px;letter-spacing:.08em}
@media(max-width:900px){.port-grid{grid-template-columns:repeat(4,1fr)}.port-item[data-w="3"]{grid-column:span 4}.port-item[data-w="2"]{grid-column:span 2}}
@media(max-width:560px){.port-grid{grid-template-columns:repeat(2,1fr)}.port-item,.port-item[data-w="3"],.port-item[data-w="2"]{grid-column:span 2}.port-item[data-h="2"]{grid-row:span 1}}

/* REVIEW */
.review{padding:clamp(80px,12vw,160px) 0;background:var(--canvas-2);border-top:1px solid var(--rule);text-align:center;position:relative;overflow:hidden}
.review::before,.review::after{content:"";position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(166,116,46,.08),transparent);pointer-events:none}
.review::before{top:-100px;left:-100px}
.review::after{bottom:-100px;right:-100px}
.rev-mark{font-family:var(--f-s);font-style:italic;font-weight:300;font-size:130px;color:var(--brass);line-height:.5;opacity:.35;margin-bottom:32px;height:70px;position:relative;z-index:2}
.rev-quote{max-width:1000px;margin:0 auto 36px;font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 96;font-size:clamp(28px,4vw,56px);line-height:1.18;letter-spacing:-.025em;color:var(--ink);text-wrap:balance;position:relative;z-index:2}
.rev-quote em{font-style:italic;font-weight:300;color:var(--brass)}
.rev-attr{display:inline-flex;align-items:center;gap:16px;padding:16px 0 0;border-top:1px solid var(--rule-strong);font-family:var(--f-m);font-size:11px;color:var(--muted);letter-spacing:.08em;position:relative;z-index:2}
.rev-attr strong{color:var(--ink);font-family:var(--f-s);font-style:italic;font-weight:400;font-size:16px;letter-spacing:-.005em}

/* STATS */
.stats{background:var(--paper);border-top:1px solid var(--rule);padding:80px 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.stat{padding:8px 0}
.stat-val{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 96;font-size:clamp(42px,5.5vw,72px);line-height:.95;color:var(--ink);letter-spacing:-.03em;margin-bottom:12px;font-variant-numeric:tabular-nums}
.stat-val em{font-style:italic;font-weight:300;color:var(--brass)}
.stat-lbl{font-family:var(--f-s);font-style:italic;font-size:15px;color:var(--ink-2);max-width:22ch;line-height:1.4}
@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:32px}}

/* FAQ */
.faq{background:var(--canvas);border-top:1px solid var(--rule)}
.faq-list{max-width:900px;margin:0 auto}
.faq-item{border-top:1px solid var(--rule);transition:padding .3s}
.faq-item:last-child{border-bottom:1px solid var(--rule)}
.faq-item[open]{background:linear-gradient(to right,transparent,rgba(166,116,46,.03),transparent)}
.faq-summary{padding:26px 0;display:grid;grid-template-columns:40px 1fr 40px;gap:20px;cursor:pointer;list-style:none;align-items:baseline;transition:color .3s}
.faq-summary::-webkit-details-marker{display:none}
.faq-num{font-family:var(--f-m);font-size:11px;color:var(--muted);letter-spacing:.08em}
.faq-q{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 48;font-size:clamp(20px,2.2vw,26px);line-height:1.25;color:var(--ink);letter-spacing:-.01em}
.faq-summary:hover .faq-q,.faq-item[open] .faq-q{color:var(--brass)}
.faq-plus{position:relative;width:22px;height:22px;color:var(--brass);justify-self:end;margin-top:10px}
.faq-plus::before,.faq-plus::after{content:"";position:absolute;background:currentColor;top:50%;left:50%}
.faq-plus::before{width:20px;height:1.5px;transform:translate(-50%,-50%)}
.faq-plus::after{width:1.5px;height:20px;transform:translate(-50%,-50%);transition:transform .3s}
.faq-item[open] .faq-plus::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.faq-a{padding:0 60px 30px 60px;color:var(--ink-2);line-height:1.65;font-size:15px;max-width:68ch}

/* CONTACT */
.contact{background:var(--paper);border-top:1px solid var(--rule)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:start}
.contact-title{font-family:var(--f-s);font-weight:300;font-variation-settings:"opsz" 144;font-size:clamp(48px,7.5vw,124px);line-height:.88;letter-spacing:-.04em;color:var(--ink);margin-bottom:28px}
.contact-title em{font-style:italic;font-weight:400;color:var(--brass)}
.contact-lead{font-family:var(--f-s);font-style:italic;font-size:19px;color:var(--ink-2);line-height:1.5;margin-bottom:40px;max-width:44ch}
.contact-list{list-style:none}
.contact-list li{padding:18px 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:100px 1fr;gap:20px;align-items:baseline}
.contact-list li:last-child{border-bottom:1px solid var(--rule)}
.contact-list dt{font-family:var(--f-m);font-size:11px;color:var(--muted);letter-spacing:.08em}
.contact-list dd{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 24;font-size:19px;color:var(--ink);letter-spacing:-.01em}
.contact-list dd a:hover{color:var(--brass)}
.contact-cta{padding:40px 36px;background:var(--card);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:0 20px 60px -20px rgba(23,24,28,.15)}
.contact-cta h3{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 48;font-size:30px;margin-bottom:12px;letter-spacing:-.02em;color:var(--ink)}
.contact-cta p{font-family:var(--f-s);font-style:italic;color:var(--ink-2);margin-bottom:28px}
.contact-cta-btns{display:flex;flex-direction:column;gap:12px}
.contact-cta-btns .btn{justify-content:space-between}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}

/* MODAL */
.modal-bd{position:fixed;inset:0;background:rgba(23,24,28,.65);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .4s var(--ease);z-index:300;display:flex;align-items:center;justify-content:center;padding:32px}
.modal-bd.on{opacity:1;pointer-events:auto}
.modal{background:var(--paper);max-width:1080px;width:100%;max-height:90vh;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;transform:translateY(32px) scale(.96);opacity:0;transition:all .5s var(--ease-out);position:relative;border-radius:var(--r-xl);border:1px solid var(--rule)}
.modal-bd.on .modal{transform:translateY(0) scale(1);opacity:1}
.modal-img{position:relative;background:var(--canvas-2);overflow:hidden}
.modal-img img{width:100%;height:100%;object-fit:cover}
.modal-img-tag{position:absolute;top:20px;left:20px;font-family:var(--f-m);font-size:10px;color:var(--ink);background:var(--paper);padding:6px 12px;letter-spacing:.06em;border:1px solid var(--rule);border-radius:100px}
.modal-close{position:absolute;top:20px;right:20px;width:44px;height:44px;background:var(--paper);border:1px solid var(--rule);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all .3s var(--ease);color:var(--ink)}
.modal-close:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:rotate(90deg)}
.modal-body{padding:40px 36px;overflow-y:auto;display:flex;flex-direction:column;gap:24px}
.modal-brand{font-family:var(--f-m);font-size:11px;color:var(--brass);letter-spacing:.12em}
.modal-name{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 96;font-size:44px;color:var(--ink);letter-spacing:-.03em;line-height:1}
.modal-desc{font-family:var(--f-s);font-style:italic;font-size:16px;color:var(--ink-2);line-height:1.5}
.modal-specs{list-style:none;border-top:1px solid var(--rule);padding-top:16px}
.modal-specs li{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:8px 0;font-family:var(--f-m);font-size:12px}
.modal-specs li span:first-child{color:var(--muted);letter-spacing:.04em}
.modal-specs li span:last-child{color:var(--ink);font-weight:500}
.modal-fabric{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.fabric-opt{padding:12px;border:1px solid var(--rule);cursor:pointer;transition:all .25s var(--ease);text-align:center;border-radius:var(--r)}
.fabric-opt:hover{border-color:var(--ink);background:var(--card)}
.fabric-opt.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.fabric-opt strong{display:block;font-family:var(--f-m);font-size:11px;font-weight:500;letter-spacing:.03em;margin-bottom:4px}
.fabric-opt small{font-size:10px;color:var(--muted);font-family:var(--f-m)}
.fabric-opt.active small{color:var(--brass-2)}
.modal-price-row{display:flex;align-items:baseline;justify-content:space-between;padding-top:16px;border-top:1px solid var(--rule)}
.modal-price{font-family:var(--f-m);font-weight:500;color:var(--brass);font-size:32px;letter-spacing:-.03em}
.modal-price small{font-size:11px;color:var(--muted);margin-right:6px;letter-spacing:.1em;font-weight:400}
@media(max-width:900px){.modal-bd{padding:0}.modal{grid-template-columns:1fr;max-height:100vh;border-radius:0}.modal-img{aspect-ratio:4/3}.modal-body{padding:28px 20px;gap:20px}.modal-name{font-size:32px}}

/* FOOTER */
footer{background:var(--canvas-2);border-top:1px solid var(--rule);padding:80px 0 32px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;margin-bottom:64px}
.foot-brand .brand{font-size:38px;margin-bottom:20px}
.foot-tag{font-family:var(--f-s);font-style:italic;font-size:16px;color:var(--ink-2);max-width:32ch;line-height:1.5;margin-bottom:32px}
.foot-social{display:flex;gap:10px}
.foot-social a{width:42px;height:42px;border:1px solid var(--rule-strong);display:flex;align-items:center;justify-content:center;color:var(--ink-2);transition:all .3s var(--ease);border-radius:50%}
.foot-social a:hover{border-color:var(--brass);color:var(--brass);background:var(--card);transform:translateY(-2px)}
.foot-social svg{width:16px;height:16px}
.foot-col h5{font-family:var(--f-m);font-weight:500;font-size:10px;color:var(--muted);letter-spacing:.1em;margin-bottom:20px}
.foot-col ul{list-style:none}
.foot-col li{margin-bottom:12px}
.foot-col a{font-family:var(--f-s);color:var(--ink-2);font-size:16px;transition:color .3s;letter-spacing:-.005em}
.foot-col a:hover{color:var(--brass)}
.foot-col address{font-family:var(--f-m);font-size:12px;font-style:normal;color:var(--ink-2);line-height:1.8}
.foot-bot{padding-top:24px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;font-family:var(--f-m);font-size:10px;color:var(--muted);gap:20px;flex-wrap:wrap;letter-spacing:.05em}
.foot-bot a{color:var(--muted)}
.foot-bot a:hover{color:var(--brass)}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;gap:32px}.foot-brand{grid-column:1/-1}}
@media(max-width:500px){.foot-grid{grid-template-columns:1fr}.foot-bot{flex-direction:column;align-items:flex-start}}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}}

/* ========== PHOTO PLACEHOLDERS ========== */
.ph{position:absolute;inset:0;z-index:0;background:repeating-linear-gradient(135deg,#EFE7D6 0 14px,#E7DECA 14px 28px);display:flex;align-items:center;justify-content:center}
.ph::after{content:attr(data-ph);font-family:var(--f-m);font-size:11px;letter-spacing:.04em;color:var(--muted);background:rgba(251,247,234,.92);border:1px dashed var(--rule-strong);padding:7px 12px;border-radius:999px;max-width:82%;text-align:center;line-height:1.35}
.hero-photo img,.hs-frame img,.modal-img img{position:relative;z-index:1}
.model-frame img,.port-item img,.stage-img{z-index:1}
.hero-photo::after{z-index:2}
.hs-frame::after{z-index:2}
.port-item::before{z-index:2}
.port-num,.port-label{z-index:3}
.modal-img-tag{z-index:3}

@media(max-width:640px){.catalog-tools{grid-template-columns:1fr;gap:12px}}
/* ========== PROMOS ========== */
.promos{background:var(--paper);border-top:1px solid var(--rule);padding:clamp(70px,9vw,120px) 0}
.promo-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:20px}
.promo{background:var(--card);border:1px solid var(--rule);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s}
.promo:hover{transform:translateY(-5px);box-shadow:0 22px 45px -22px rgba(23,24,28,.28)}
.promo-img{position:relative;aspect-ratio:16/10;background:var(--canvas-2)}
.promo-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.promo-body{padding:24px 26px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.promo-body .btn-line{align-self:flex-start;margin-top:auto}
.promo-tag{align-self:flex-start;font-family:var(--f-m);font-size:10px;letter-spacing:.1em;color:var(--brass-deep);background:#F2E6D2;padding:4px 10px;border-radius:999px}
.promo-title{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 48;font-size:clamp(24px,2.3vw,30px);line-height:1.08;letter-spacing:-.02em;color:var(--ink)}
.promo-title em{font-style:italic;font-weight:300;color:var(--brass)}
.promo-text{font-size:15px;color:var(--ink-2);line-height:1.55}
.promo-dark{background:var(--ink);border-color:var(--ink);color:var(--paper);padding:32px 30px;gap:14px;justify-content:space-between;position:relative}
.promo-dark::before{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(201,154,92,.28),transparent 70%);pointer-events:none}
.promo-dark .promo-tag{background:rgba(201,154,92,.18);color:var(--brass-2)}
.promo-dark .promo-title{color:var(--paper);font-size:clamp(30px,3vw,42px)}
.promo-dark .promo-title em{color:var(--brass-2)}
.promo-dark .promo-text{color:#CFC8B8}
.promo-timer{display:flex;gap:10px}
.promo-timer div{flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:12px 8px;text-align:center}
.promo-timer b{display:block;font-family:var(--f-s);font-weight:400;font-size:34px;line-height:1;color:var(--paper);font-variant-numeric:tabular-nums}
.promo-timer span{font-family:var(--f-m);font-size:10px;letter-spacing:.08em;color:#A9A291}
.promo-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.promo-code{font-family:var(--f-m);font-size:14px;letter-spacing:.14em;color:var(--brass-2);border:1px dashed var(--brass-2);padding:10px 14px;border-radius:var(--r);cursor:copy}
.promo-strip{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px;border-radius:var(--r-lg);background:linear-gradient(90deg,#F2E6D2,var(--card));border:1px solid var(--rule)}
.promo-strip b{display:block;font-family:var(--f-s);font-weight:500;font-size:20px;color:var(--ink);letter-spacing:-.01em}
.promo-strip span{font-size:14px;color:var(--ink-2)}
@media(max-width:1000px){.promo-grid{grid-template-columns:1fr 1fr}.promo-dark{grid-column:1/-1}}
@media(max-width:640px){.promo-grid{grid-template-columns:1fr}.promo-strip{flex-direction:column;align-items:flex-start}}

/* ========== CONFIGURATOR (из v4, в палитре v3) ========== */
.cfgv3{--bg:var(--canvas);--surface:var(--paper);--white:var(--card);--ink-3:var(--muted);--line:var(--rule);--line-2:var(--rule-strong);--accent:var(--brass);--accent-2:var(--brass-deep);--accent-soft:#F2E6D2;--graphite:#2B2D2E;--olive:#3C4A2A;--sand:#CDBF9C;--r-sm:10px;--f-d:var(--f-s);--out:cubic-bezier(.16,1,.3,1);--gut:clamp(16px,3vw,40px)}
.cfgsec{background:var(--canvas);border-top:1px solid var(--rule)}
.cfgsec .stage{border:1px solid var(--rule)}
.cfgsec .stage-bar{border:1px solid var(--rule)}
.cfgsec .stage-name strong,.cfgsec .p-price{font-weight:400;font-variation-settings:"opsz" 96}
.sheet h3{font-family:var(--f-s);font-weight:400}
.label-h b,.label-sum b{font-family:var(--f-s);font-weight:500}
.cfgv3 input,.cfgv3 textarea{font:inherit;color:inherit}
.cfgv3 .btn[disabled]{opacity:.4;pointer-events:none}
.cfgsec .p-date b{font-family:var(--f-s);font-weight:500;font-size:17px}
.cfgsec .p-lbl,.cfgsec .fld label,.sheet .fld label{font-family:var(--f-m);font-size:10.5px;letter-spacing:.06em}
.cfgsec .stage{background:var(--canvas-2)}


/* ========== WIZARD SHELL (v3) + GALLERY (v4) ========== */
.wz-shell{background:var(--card);border-radius:var(--r-xl);box-shadow:0 40px 80px -30px rgba(23,24,28,.15);border:1px solid var(--rule);position:relative}
.wz-progress{display:flex;padding:18px 28px;border-bottom:1px solid var(--rule);background:linear-gradient(to right,var(--paper),var(--canvas));border-radius:var(--r-xl) var(--r-xl) 0 0}
.wp-item{flex:1;display:flex;align-items:center;gap:12px;position:relative;text-align:left;min-width:0;padding:4px 0}
.wp-item::after{content:"";flex:1;min-width:12px;height:1px;background:var(--rule-strong);margin:0 14px 0 4px;transition:background .5s var(--ease)}
.wp-item:last-child::after{display:none}
.wp-item.done::after{background:var(--brass)}
.wp-num{font-family:var(--f-m);font-size:11px;font-weight:500;color:var(--muted);width:30px;height:30px;border-radius:50%;background:var(--card);border:1px solid var(--rule-strong);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .5s var(--ease)}
.wp-item.active .wp-num{background:var(--brass);color:var(--paper);border-color:var(--brass);box-shadow:0 0 0 4px rgba(166,116,46,.15)}
.wp-item.done .wp-num{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.wp-txt{display:flex;flex-direction:column;min-width:0}
.wp-lbl{font-family:var(--f-s);font-style:italic;font-size:15px;line-height:1.2;color:var(--muted);transition:color .5s var(--ease);white-space:nowrap}
.wp-item.active .wp-lbl,.wp-item.done .wp-lbl{color:var(--ink)}
.wp-val{font-family:var(--f-m);font-size:10.5px;color:var(--brass);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;margin-top:2px;min-height:14px}
.wp-item:hover .wp-lbl{color:var(--ink)}

.wz-body{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:start}
.wz-gallery{position:sticky;top:96px;padding:28px 0 28px 28px}
.wz-gallery .stage{aspect-ratio:4/3}
.wz-view{position:relative;padding:36px 36px 32px 40px;min-height:620px}
.wz-step{display:none;animation:stepIn .55s var(--ease-out)}
.wz-step.on{display:block}
@keyframes stepIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
.wz-head{margin-bottom:26px}
.wz-head h3{font-family:var(--f-s);font-weight:400;font-variation-settings:"opsz" 96;font-size:clamp(28px,3vw,40px);color:var(--ink);letter-spacing:-.025em;line-height:1;position:relative;display:inline-block}
.wz-head h3::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:linear-gradient(90deg,var(--brass) 60%,transparent 60%);background-size:8px 2px;background-repeat:repeat-x;transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease-out) .3s}
.wz-step.on .wz-head h3::after{transform:scaleX(1)}
.wz-head p{font-family:var(--f-s);font-style:italic;font-size:16px;color:var(--ink-2);max-width:48ch;margin-top:18px}
.wz-sub{font-family:var(--f-m);font-size:10.5px;letter-spacing:.1em;color:var(--muted);margin:26px 0 12px}

/* type cards */
.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.type-card{padding:20px 18px;background:var(--paper);border:1px solid var(--rule);text-align:left;display:flex;flex-direction:column;gap:10px;min-height:156px;border-radius:var(--r);position:relative;overflow:hidden;transition:all .3s var(--ease)}
.type-card:hover{border-color:var(--ink);transform:translateY(-3px)}
.type-card.selected{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:0 10px 30px -10px rgba(23,24,28,.4)}
.type-card svg{width:40px;height:40px;stroke:var(--brass);stroke-width:1.3;fill:none;transition:transform .4s var(--ease)}
.type-card:hover svg{transform:translateY(-3px)}
.type-card.selected svg{stroke:var(--brass-2)}
.type-card small{font-family:var(--f-m);font-size:10px;color:var(--muted);letter-spacing:.06em;margin-top:auto}
.type-card.selected small{color:var(--brass-2)}
.type-card strong{font-family:var(--f-s);font-weight:500;font-size:18px;letter-spacing:-.015em;line-height:1.15}

/* brand chips + search + model list */
.brand-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.brand-chips button{padding:7px 14px;border-radius:999px;border:1px solid var(--rule-strong);font-size:13px;color:var(--ink-2);transition:all .25s var(--ease)}
.brand-chips button:hover{border-color:var(--ink);color:var(--ink)}
.brand-chips button.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.wz-search{display:flex;align-items:center;background:var(--paper);border:1px solid var(--rule);padding:13px 18px;gap:12px;margin-bottom:14px;border-radius:var(--r);transition:border-color .25s}
.wz-search:focus-within{border-color:var(--brass)}
.wz-search svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}
.wz-search input{flex:1;background:none;border:none;outline:none;font-family:var(--f-s);font-size:17px;color:var(--ink)}
.wz-search input::placeholder{color:var(--muted);font-style:italic}
.wz-model-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:330px;overflow-y:auto;padding-right:4px}
.wz-model-list::-webkit-scrollbar{width:6px}
.wz-model-list::-webkit-scrollbar-thumb{background:var(--rule-strong);border-radius:3px}
.wz-model{padding:13px 16px;background:var(--paper);border:1px solid var(--rule);transition:all .25s var(--ease);display:flex;justify-content:space-between;align-items:center;gap:10px;border-radius:var(--r);text-align:left}
.wz-model:hover{border-color:var(--ink);transform:translateX(2px)}
.wz-model.selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.wz-model-name{font-family:var(--f-s);font-size:15px;letter-spacing:-.01em;line-height:1.2}
.wz-model-name small{display:block;font-family:var(--f-m);font-style:normal;font-size:10px;color:var(--muted);letter-spacing:.05em;margin-bottom:3px}
.wz-model.selected .wz-model-name small{color:var(--brass-2)}
.wz-model-price{font-family:var(--f-m);font-size:12px;color:var(--brass);white-space:nowrap}
.wz-model.selected .wz-model-price{color:var(--brass-2)}
.wz-empty{grid-column:1/-1;font-family:var(--f-s);font-style:italic;color:var(--muted);padding:10px 4px}

/* covers */
.wz-covers{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wz-cover{padding:18px;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);text-align:left;display:flex;flex-direction:column;gap:6px;transition:all .25s var(--ease);min-height:150px}
.wz-cover:hover{border-color:var(--ink);transform:translateY(-3px)}
.wz-cover.selected{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:0 10px 30px -10px rgba(23,24,28,.4)}
.wz-cover b{font-family:var(--f-s);font-weight:500;font-size:18px;letter-spacing:-.01em}
.wz-cover small{font-size:13px;color:var(--muted);line-height:1.4}
.wz-cover.selected small{color:#CFC8B8}
.wz-cover-f{margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;font-family:var(--f-m);font-size:11.5px;color:var(--brass);border-top:1px dashed var(--rule-strong)}
.wz-cover.selected .wz-cover-f{color:var(--brass-2);border-color:rgba(255,255,255,.18)}

/* fabrics + colors */
.wz-fabrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wz-fabric{padding:16px;background:var(--paper);border:1px solid var(--rule);text-align:left;border-radius:var(--r);position:relative;transition:all .3s var(--ease)}
.wz-fabric:hover{border-color:var(--ink);transform:translateY(-3px)}
.wz-fabric.selected{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:0 10px 30px -10px rgba(23,24,28,.4)}
.wz-fabric .fab-sw{height:38px;border-radius:6px;margin-bottom:12px}
.wz-fabric strong{display:block;font-family:var(--f-s);font-weight:500;font-size:16px;letter-spacing:-.01em;margin-bottom:2px}
.wz-fabric small{font-family:var(--f-m);font-size:10.5px;color:var(--muted);letter-spacing:.03em;display:block;line-height:1.5}
.wz-fabric.selected small{color:var(--brass-2)}
.wz-fabric-price{position:absolute;top:10px;right:10px;font-family:var(--f-m);font-size:11px;color:var(--brass);background:var(--paper);padding:2px 8px;border-radius:100px}
.wz-fabric.selected .wz-fabric-price{background:var(--brass);color:var(--paper)}
.wz-colors{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.wz-color{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);font-family:var(--f-s);font-size:15px;transition:all .25s var(--ease)}
.wz-color i{width:28px;height:28px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}
.wz-color:hover{border-color:var(--ink)}
.wz-color.selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--card)}

/* options */
.wz-options{display:flex;flex-direction:column;gap:8px}
.wz-option{padding:14px 18px;background:var(--paper);border:1px solid var(--rule);transition:all .25s var(--ease);display:flex;align-items:center;gap:14px;border-radius:var(--r);text-align:left}
.wz-option:hover{border-color:var(--ink);transform:translateX(2px)}
.wz-option.selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.wz-check{width:22px;height:22px;border:1px solid var(--rule-strong);background:var(--card);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .25s var(--ease);border-radius:6px}
.wz-option.selected .wz-check{background:var(--brass);border-color:var(--brass)}
.wz-check svg{width:12px;height:12px;stroke:var(--card);stroke-width:2;fill:none;opacity:0;transition:opacity .2s}
.wz-option.selected .wz-check svg{opacity:1}
.wz-option-name{font-family:var(--f-s);font-size:16px;flex:1;line-height:1.25}
.wz-option-name small{display:block;font-family:var(--f-b);font-size:12.5px;color:var(--muted);margin-top:2px}
.wz-option.selected .wz-option-name small{color:#CFC8B8}
.wz-option-pin{font-family:var(--f-m);font-size:10px;color:var(--brass);border:1px solid currentColor;border-radius:999px;padding:2px 7px}
.wz-option.selected .wz-option-pin{color:var(--brass-2)}
.wz-option-price{font-family:var(--f-m);font-size:12px;color:var(--brass);white-space:nowrap}
.wz-option.selected .wz-option-price{color:var(--brass-2)}

/* bottom bar */
.wz-nav{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 28px;border-top:1px solid var(--rule);background:linear-gradient(to right,var(--paper),var(--canvas));border-radius:0 0 var(--r-xl) var(--r-xl)}
.wz-nav-info{display:flex;align-items:flex-end;gap:36px}
.wz-nav-info .p-date{text-align:left}
.wz-nav-btns{display:flex;gap:10px}
.wz-nav-btns .btn[hidden]{display:none}
.type-card em{font-style:normal;font-family:var(--f-m);font-size:11.5px;color:var(--brass)}
.type-card.selected em{color:var(--brass-2)}
.cfgsec .p-price{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum","lnum"}
.digit>span>i{text-align:center}

@media(max-width:1100px){.wz-body{grid-template-columns:1fr}.wz-gallery{position:relative;top:0;padding:20px 20px 0}.wz-view{padding:28px 20px;min-height:0}.wp-val{display:none}}
@media(max-width:760px){
  .wz-progress{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:14px 6px 12px}
  .wp-item{flex-direction:column;align-items:center;gap:6px;text-align:center;padding:0}
  .wp-item::after{position:absolute;top:14px;left:calc(50% + 20px);right:calc(-50% + 20px);width:auto;min-width:0;margin:0}
  .wp-num{width:28px;height:28px}
  .wp-txt{align-items:center;max-width:100%}
  .wp-lbl{font-size:clamp(11.5px,3.2vw,13px);letter-spacing:-.01em}
  .type-grid{grid-template-columns:1fr 1fr}
  .wz-model-list,.wz-covers,.wz-fabrics{grid-template-columns:1fr}
  .wz-colors{grid-template-columns:1fr 1fr 1fr}.wz-color{flex-direction:column;gap:6px;font-size:13px}
  .wz-nav{flex-direction:column;align-items:stretch;padding:18px 16px;position:sticky;bottom:0;z-index:20}
  .wz-nav-info{justify-content:space-between}
  .wz-nav-btns .btn{flex:1;justify-content:center}
  .wz-gallery{padding:14px 14px 0}
}

/* multi-tent */
.wz-cover{position:relative}
.wz-cover .wz-check{position:absolute;top:14px;right:14px}
.wz-cover.selected .wz-check{background:var(--brass);border-color:var(--brass)}
.wz-cover.selected .wz-check svg{opacity:1}
.wz-cover b{padding-right:30px}
.wz-cover-deal{align-self:flex-start;font-family:var(--f-m);font-size:10.5px;color:var(--sienna);background:#F6E2D6;padding:3px 8px;border-radius:999px;margin-top:2px}
.p-disc{font-family:var(--f-m);font-size:11px;color:var(--sienna);min-height:15px;margin-top:4px}
.wz-cart{border-top:1px solid var(--rule);padding:18px 28px 20px;background:var(--paper)}
.cart-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.cart-h span{font-family:var(--f-m);font-size:10.5px;letter-spacing:.1em;color:var(--muted)}
.cart-h .btn-line{font-size:14px}
.cart-list{display:flex;flex-direction:column;gap:6px}
.cart-row{display:grid;grid-template-columns:34px 1fr auto auto auto;align-items:center;gap:14px;padding:12px 16px;background:var(--card);border:1px solid var(--rule);border-radius:var(--r)}
.cart-row.pop{animation:chipPop .45s var(--out)}
.cart-cur{border-style:dashed;background:transparent}
.cart-n{font-family:var(--f-s);font-style:italic;font-size:22px;color:var(--brass);line-height:1}
.cart-t{min-width:0}
.cart-t b{display:block;font-family:var(--f-s);font-weight:500;font-size:16px}
.cart-t small{display:block;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cart-p{font-family:var(--f-m);font-size:13px;color:var(--ink);white-space:nowrap}
.cart-a{font-size:13px;color:var(--brass);border-bottom:1px solid currentColor;padding-bottom:1px}
.cart-a:hover{color:var(--ink)}
.cart-x{width:30px;height:30px;border-radius:50%;border:1px solid var(--rule-strong);font-size:18px;line-height:1;color:var(--muted)}
.cart-x:hover{border-color:var(--sienna);color:var(--sienna)}
.lbl-item{padding:12px 0;border-bottom:1px dashed var(--rule)}
.lbl-item:first-of-type{padding-top:0}
.lbl-item-h{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:14px}
.lbl-item-h b{font-family:var(--f-s);font-weight:500;font-size:16px}
.lbl-item-h span{font-family:var(--f-m);font-size:13px}
.label .lbl-item dl,.label .lbl-foot{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13.5px}
.label .lbl-foot{margin-top:12px}
.lbl-disc{color:var(--sienna)}
@media(max-width:760px){.wz-cart{padding:14px 16px}.cart-row{grid-template-columns:28px 1fr auto;row-gap:6px}.cart-a{grid-column:2;justify-self:start}.cart-x{grid-column:3;grid-row:2}}

/* ---- v4 gallery & sheet ---- */

/* Stage */
.stage{position:relative;aspect-ratio:16/10;border-radius:var(--r-xl);overflow:hidden;background:#cfd1cb;isolation:isolate}
.stage-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage-img.incoming{clip-path:inset(0 100% 0 0);animation:pull 1s var(--out) forwards}
@keyframes pull{to{clip-path:inset(0 0 0 0)}}
.stage-seam{position:absolute;top:0;bottom:0;width:2px;left:0;z-index:4;pointer-events:none;opacity:0;
  background:repeating-linear-gradient(to bottom,#fff 0 7px,transparent 7px 12px)}
.stage-seam.run{animation:seam 1s var(--out) forwards}
@keyframes seam{0%{left:0;opacity:1}85%{opacity:1}100%{left:100%;opacity:0}}
.stage-intro{animation:stageIn 1.2s var(--out) both}
@keyframes stageIn{from{transform:scale(1.05);filter:saturate(.6)}to{transform:scale(1);filter:none}}
.stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(to top,rgba(10,12,11,.55),transparent 38%),linear-gradient(to bottom,rgba(10,12,11,.28),transparent 22%)}
.stage-pass{position:absolute;top:18px;left:18px;right:18px;z-index:5;display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:999px;background:rgba(18,22,20,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;font-size:13px;white-space:nowrap}
.chip i{width:10px;height:10px;border-radius:50%;display:inline-block;box-shadow:0 0 0 1.5px rgba(255,255,255,.6)}
.chip.pop{animation:chipPop .45s var(--out)}
@keyframes chipPop{from{transform:translateY(-6px);opacity:0}}
.stage-name{position:absolute;left:22px;bottom:20px;z-index:5;color:#fff;max-width:70%}
.stage-name small{display:block;font-size:13px;opacity:.75;margin-bottom:4px}
.stage-name strong{font-family:var(--f-d);font-weight:500;font-size:clamp(22px,2.6vw,38px);letter-spacing:-.03em;line-height:1.05;display:block}
.stage-name .l{display:inline-block;animation:letter .5s var(--out) both}
@keyframes letter{from{transform:translateY(60%);opacity:0}}
.stage-count{position:absolute;right:22px;bottom:22px;z-index:5;color:#fff;font-size:13px;opacity:.8}

/* pins */
.pin{position:absolute;z-index:6;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600;box-shadow:0 0 0 4px rgba(166,116,46,.28),0 6px 16px rgba(0,0,0,.35);animation:pinIn .55s var(--out) both}
.pin::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--accent);animation:ring 2.4s ease-out infinite}
@keyframes ring{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.2);opacity:0}}
@keyframes pinIn{from{transform:scale(0)}60%{transform:scale(1.2)}}
.pin-tip{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px);background:#fff;color:var(--ink);font-size:13px;font-weight:500;white-space:nowrap;padding:6px 10px;border-radius:8px;opacity:0;pointer-events:none;transition:.25s var(--ease);box-shadow:0 8px 20px rgba(0,0,0,.2)}
.pin:hover .pin-tip,.pin:focus-visible .pin-tip{opacity:1;transform:translateX(-50%) translateY(0)}

/* swatch bar under stage */
.stage-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:10px 12px 10px 18px;background:var(--surface);border-radius:var(--r-lg)}
.stage-bar-lbl{font-size:14px;color:var(--ink-2)}
.stage-bar-lbl b{color:var(--ink);font-weight:600}
.swatches{display:flex;gap:8px}
.sw{width:44px;height:44px;border-radius:50%;position:relative;transition:transform .25s var(--ease)}
.sw::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid transparent;transition:border-color .25s}
.sw:hover{transform:scale(1.06)}
.sw.on::after{border-color:var(--ink)}
.sw-graphite{background:radial-gradient(circle at 35% 30%,#4a4d4f,var(--graphite))}
.sw-olive{background:radial-gradient(circle at 35% 30%,#5b6c42,var(--olive))}
.sw-sand{background:radial-gradient(circle at 35% 30%,#e3d8bc,var(--sand))}

/* Panel */

/* option tiles */
.fab-sw{height:34px;border-radius:8px;margin-bottom:4px;box-shadow:inset 0 0 12px rgba(0,0,0,.25)}
.fs-650{background:repeating-linear-gradient(45deg,#2b2d2e 0 3px,#3b3e40 3px 6px)}
.fs-900{background:repeating-linear-gradient(45deg,#232526 0 5px,#34373a 5px 10px)}
.fs-ox{background:radial-gradient(circle at 2px 2px,#5a6168 1px,transparent 1.6px) 0 0/5px 5px,#2f3438}
.fs-poly{background:repeating-linear-gradient(90deg,#303436 0 3px,#26292b 3px 6px)}

/* model search */
.m-none{margin-top:8px;width:100%;display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--r);border:1.5px dashed var(--line-2);text-align:left;transition:.2s}
.m-none:hover,.m-none.on{border-color:var(--accent);background:#fff}
.m-none .plus{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-2);display:grid;place-items:center;font-weight:600;flex-shrink:0}
.m-none b{font-weight:600;font-size:14px;display:block}
.m-none small{font-size:12px;color:var(--ink-3)}

/* custom dims */
.custom{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--out)}
.custom.on{grid-template-rows:1fr}
.custom>div{overflow:hidden;min-height:0}
.custom-in{padding-top:12px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.fld{display:flex;flex-direction:column;gap:4px;padding:8px 12px 10px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--white);transition:border-color .2s}
.fld:focus-within{border-color:var(--ink)}
.fld label{font-size:12px;color:var(--ink-3)}
.fld input{border:none;outline:none;background:none;font-size:15px;width:100%}
.fld.dim{border-color:var(--line)}
.fld.dim.act{border-color:var(--accent)}
.fld.dim label i{font-style:normal;color:var(--accent-2);font-weight:600;margin-right:4px}
.blueprint{margin:6px 0 10px;border-radius:var(--r);background:#1F3B4A;padding:10px;position:relative;overflow:hidden}
.blueprint::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:14px 14px}
.blueprint svg{position:relative;width:100%;height:auto}
.bp-body{fill:none;stroke:#cfe3ee;stroke-width:1.4;stroke-linejoin:round}
.bp-tent{fill:rgba(201,154,92,.16);stroke:#E3BF8A;stroke-width:1.4;stroke-dasharray:4 3}
.bp-dim line,.bp-dim path{stroke:#7fa3b5;stroke-width:1}
.bp-dim text{fill:#9cc0d1;font-family:var(--f-m);font-size:10px}
.bp-dim.act line,.bp-dim.act path{stroke:var(--accent);stroke-width:1.6}
.bp-dim.act text{fill:#fff;font-weight:600}
.bp-dim{transition:opacity .3s}
.drop{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--r);border:1.5px dashed var(--line-2);cursor:pointer;transition:.2s}
.drop:hover,.drop.over{border-color:var(--accent);background:#fff}
.drop svg{width:26px;height:26px;stroke:var(--ink-2);fill:none;stroke-width:1.5;flex-shrink:0}
.drop b{font-size:14px;font-weight:600;display:block}
.drop small{font-size:12px;color:var(--ink-3)}
.files{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.file{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--bg);animation:chipPop .3s var(--out)}

/* panel footer — price */
.p-lbl{font-size:13px;color:var(--ink-3)}
.p-price{font-family:var(--f-d);font-weight:500;font-size:34px;letter-spacing:-.03em;line-height:1;display:flex;overflow:hidden;height:36px}
.digit{display:inline-block;height:36px;overflow:hidden}
.digit>span{display:block;transition:transform .7s var(--out)}
.digit>span>i{display:block;height:36px;line-height:36px;font-style:normal}
.p-date{text-align:right;font-size:14px}
.p-date b{display:block;font-weight:600;font-size:15px}


@media(max-width:520px){.stage{aspect-ratio:4/3}.stage-bar{flex-direction:column;align-items:stretch}.swatches{justify-content:center}}

/* ---------- ORDER SHEET ---------- */
.sheet-bd{position:fixed;inset:0;z-index:310;background:rgba(23,24,28,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .4s}
.sheet-bd.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:50%;bottom:0;z-index:311;width:min(980px,100%);max-height:94vh;overflow-y:auto;background:var(--bg);border-radius:var(--r-xl) var(--r-xl) 0 0;transform:translate(-50%,100%);transition:transform .6s var(--out);padding:28px var(--gut) 32px}
.sheet.on{transform:translate(-50%,0)}
.sheet-x{position:absolute;top:18px;right:18px;width:40px;height:40px;border-radius:50%;background:var(--surface);display:grid;place-items:center}
.sheet-x svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8}
.sheet h3{font-family:var(--f-d);font-weight:500;font-size:clamp(24px,3vw,36px);letter-spacing:-.03em;margin-bottom:22px;padding-right:50px}
.sheet-g{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.label{background:var(--white);border-radius:var(--r-lg);padding:26px 24px;position:relative}
.label::before{content:"";position:absolute;inset:9px;border:1.5px dashed var(--accent);border-radius:14px;pointer-events:none;clip-path:inset(0 100% 0 0);transition:clip-path 1.4s var(--out) .3s}
.sheet.on .label::before{clip-path:inset(0 0 0 0)}
.label-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;font-size:13px;color:var(--ink-3)}
.label-h b{font-family:var(--f-d);font-weight:600;font-size:16px;color:var(--ink);letter-spacing:-.02em}
.label dl{display:grid;grid-template-columns:auto 1fr;gap:9px 16px;font-size:14px}
.label dt{color:var(--ink-3)}
.label dd{font-weight:500;text-align:right}
.label-sum{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.label-sum b{font-family:var(--f-d);font-weight:500;font-size:28px;letter-spacing:-.03em}
.sheet-form{display:flex;flex-direction:column;gap:8px}
.sheet-form .fld{background:var(--white)}
.sheet-form textarea{border:none;outline:none;background:none;resize:none;min-height:70px;font-size:15px}
.contact-way{display:flex;gap:6px}
.contact-way button{flex:1;height:40px;border-radius:999px;border:1.5px solid var(--line-2);font-size:14px;transition:.2s}
.contact-way button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.sheet-note{font-size:12px;color:var(--ink-3)}
.sheet-ok{text-align:center;padding:40px 0 20px}
.sheet-ok svg{width:72px;height:72px;margin:0 auto 18px}
.sheet-ok circle{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:6 5}
.sheet-ok path{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-dasharray:40;stroke-dashoffset:40;animation:tick .8s var(--out) .3s forwards}
@keyframes tick{to{stroke-dashoffset:0}}
.sheet-ok h3{padding:0}
.sheet-ok p{color:var(--ink-2);max-width:44ch;margin:0 auto 24px}
@media(max-width:760px){.sheet-g{grid-template-columns:1fr}}

/* Окна на телефоне: окно модели и оформление заказа — листы снизу; крестик и кнопка заказа всегда на виду, поля 16px — iPhone не увеличивает страницу при вводе */
@media(max-width:860px){
.modal-bd{padding:0;align-items:flex-end}
.modal{display:flex;flex-direction:column;width:100%;max-height:94vh;max-height:calc(100dvh - 12px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border-width:1px 0 0;border-radius:var(--r-xl) var(--r-xl) 0 0}
.modal-close{position:sticky;top:12px;order:-1;flex:none;align-self:flex-end;margin:12px 12px -52px 0;z-index:6;box-shadow:0 4px 14px -6px rgba(0,0,0,.35)}
.modal-img{flex:none;width:100%;min-height:0;height:auto;aspect-ratio:16/11}
.modal-img img{position:absolute;inset:0;width:100%;height:100%}
.modal-body{flex:none;overflow:visible;padding:22px 18px 0;gap:16px}
.modal-name{font-size:clamp(28px,8vw,36px)}
.modal-fabric{grid-template-columns:repeat(2,minmax(0,1fr))}
.modal-tent-h{flex-wrap:wrap;row-gap:2px}
.modal-price-row{position:sticky;bottom:0;z-index:4;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:6px -18px 0;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:var(--paper)}
.modal-price{font-size:26px;line-height:1.1;white-space:nowrap}
.modal-price-row .btn{flex:1 0 auto;justify-content:center;min-height:50px;padding:0 16px;font-size:15px;white-space:nowrap}
.modal-price-row .btn svg{display:none}
}
@media(max-width:760px){
.sheet{max-height:94vh;max-height:calc(100dvh - 12px);overscroll-behavior:contain;padding:18px 16px calc(24px + env(safe-area-inset-bottom))}
.sheet-x{position:sticky;top:4px;margin:0 0 -40px auto;z-index:5;background:var(--surface);box-shadow:0 4px 14px -6px rgba(0,0,0,.35)}
.sheet h3{margin-bottom:18px;padding-right:60px;font-size:clamp(24px,7vw,30px)}
.sheet-g{gap:12px}
.label{padding:22px 18px}
.label-sum b{font-size:30px}
.consent{font-size:13px}
.sheet-ok{padding:28px 0 8px}
.fld input,.fld textarea,.fld select,.sheet-form textarea,.search input{font-size:16px}
}

/* фото раздела в конструкторе: один кадр 4:3 у всех карточек, вертикальные фото обрезаются по центру */
.type-card .type-cover{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:10px;flex:none}

/* чертёж «что мерить»: линии, стрелки, бирки с буквами и подсказка у бирки */
.blueprint{overflow:visible}
.blueprint svg{display:block;width:100%;height:auto;overflow:visible}
.bp-body{fill:none;stroke:#d6e7f0;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.bp-hub{fill:none;stroke:#8fb2c3;stroke-width:1}
.bp-tent{fill:rgba(224,86,31,.14);stroke:#ff9d72;stroke-width:1.5;stroke-dasharray:5 3;stroke-linejoin:round}
.bp-ground{stroke:#6f95a8;stroke-width:1;stroke-dasharray:2 3}
.bp-water{fill:none;stroke:#5f8aa0;stroke-width:1}
.bp-cap{fill:#7fa3b5;font:600 7px/1 var(--f-b,system-ui),sans-serif;letter-spacing:.12em}
.bp-dim{cursor:pointer;outline:none}
.bp-dim line,.bp-dim .bp-arr{stroke:#9cc0d1;stroke-width:1.1;fill:none}
.bp-dim .bp-ext{stroke:#6f95a8;stroke-width:.8;fill:none}
.bp-badge{fill:#1b2a33;stroke:#ffb08c;stroke-width:1.4;transition:fill .2s,stroke .2s}
.bp-l{fill:#ffd2bd;font:700 9px/1 var(--f-b,system-ui),sans-serif;pointer-events:none}
.bp-v{fill:#fff;font:600 9px/1 var(--f-b,system-ui),sans-serif;pointer-events:none}
.bp-dim:hover .bp-badge,.bp-dim:focus-visible .bp-badge,.bp-dim.act .bp-badge{fill:#E0561F;stroke:#E0561F}
.bp-dim:hover .bp-l,.bp-dim:focus-visible .bp-l,.bp-dim.act .bp-l{fill:#fff}
.bp-dim.act line,.bp-dim.act .bp-arr{stroke:#ffb08c;stroke-width:1.6}
.bp-tip{position:absolute;z-index:3;transform:translateX(-50%);width:max-content;max-width:min(240px,calc(100% - 24px));padding:10px 12px;border-radius:12px;background:#fff;color:#121614;box-shadow:0 10px 30px -10px rgba(0,0,0,.45);font-size:13px;line-height:1.35;pointer-events:none;animation:bp-tip .18s ease}
.bp-tip b{display:flex;align-items:center;gap:6px;font-weight:600;margin-bottom:3px}
.bp-tip b i{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#E0561F;color:#fff;font-style:normal;font-size:11px}
.bp-tip span{display:block;color:#4A504C}
.bp-tip::after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:#fff;transform:translateX(-50%) rotate(45deg)}
.bp-tip.below::after{bottom:auto;top:-6px}
.bp-note{position:relative;margin:6px 4px 2px;color:#9cc0d1;font-size:12px}
@keyframes bp-tip{from{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%,0)}}
@media(prefers-reduced-motion:reduce){.bp-tip{animation:none}}

/* «Наши работы»: вкладки, сетка 4:3, подпись при наведении, просмотр на весь экран */
.wg-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.wg-tabs button{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;border:1.5px solid var(--rule);background:var(--card);font-weight:500;font-size:14px;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.wg-tabs button span{font-size:12px;color:var(--muted)}
.wg-tabs button:hover{border-color:var(--ink)}
.wg-tabs button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--card)}
.wg-tabs button[aria-pressed="true"] span{color:#b8bdb9}
.wg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;transition:opacity .25s}
.wg-grid.busy{opacity:.55}
.wg-tile{position:relative;display:block;padding:0;border:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--canvas-2);cursor:zoom-in;animation:wg-in .5s cubic-bezier(.2,.7,.2,1) both}
.wg-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.wg-tile:hover img,.wg-tile:focus-visible img{transform:scale(1.05)}
.wg-ph{display:block;width:100%;height:100%;background:var(--rule)}
.wg-cap{position:absolute;left:0;right:0;bottom:0;padding:44px 14px 12px;text-align:left;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.66),transparent);display:flex;flex-direction:column;gap:2px;transform:translateY(30%);opacity:0;transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .35s}
.wg-cap b{font-weight:500;font-size:14px;line-height:1.25}
.wg-cap small{font-size:12px;opacity:.82}
.wg-tile:hover .wg-cap,.wg-tile:focus-visible .wg-cap{transform:none;opacity:1}
@media(hover:none){.wg-cap{transform:none;opacity:1}}
.wg-more{display:flex;justify-content:center;margin-top:24px}
@keyframes wg-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.wg-lb{position:fixed;inset:0;z-index:2147483000;background:rgba(10,12,11,.94);display:grid;grid-template-rows:1fr auto;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));color:#f1f2ef;animation:wg-fade .2s ease}
.wg-lb figure{margin:0;display:grid;place-items:center;min-height:0}
.wg-lb img{max-width:100%;max-height:80vh;border-radius:10px;animation:wg-pop .3s cubic-bezier(.2,.7,.2,1)}
.wg-lb-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:14px;max-width:1200px;width:100%;margin:0 auto}
.wg-lb-bar b{display:block;font-weight:500}
.wg-lb-bar small{display:block;color:#aab0ab;font-size:13px}
.wg-lb-bar nav{display:flex;align-items:center;gap:8px;flex:none}
.wg-lb-n{font-size:13px;color:#aab0ab;margin-right:6px;font-variant-numeric:tabular-nums}
.wg-lb-bar button{width:46px;height:46px;border-radius:50%;border:0;background:#262b28;color:#fff;font-size:18px;cursor:pointer;transition:background .2s}
.wg-lb-bar button:hover{background:var(--brass)}
@keyframes wg-fade{from{opacity:0}to{opacity:1}}
@keyframes wg-pop{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@media(max-width:900px){.wg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wg-cap{padding:30px 10px 8px}.wg-cap b{font-size:13px}.wg-lb-n{display:none}}
@media(prefers-reduced-motion:reduce){.wg-tile,.wg-lb,.wg-lb img{animation:none}.wg-tile img,.wg-cap{transition:none}}
.wg-btn{height:48px;padding:0 24px;border-radius:999px;border:1.5px solid var(--rule-strong);background:transparent;font:inherit;font-weight:500;cursor:pointer;transition:border-color .2s,background .2s}.wg-btn:hover{border-color:var(--ink);background:var(--card)}.wg-btn:disabled{opacity:.6}
