*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}

@property --lx{syntax:"<percentage>";inherits:true;initial-value:34%}
@property --ly{syntax:"<percentage>";inherits:true;initial-value:22%}

:root{
  --chalk-000:#F6F6F3;
  --chalk-050:#EDEDE8;
  --chalk-100:#E4E4DD;
  --chalk-200:#DADAD2;

  --ink-900:#14161A;
  --ink-800:#1E2126;
  --ink-600:#454B53;
  --ink-500:#5B626B;
  --ink-400:#7C838C;

  --rule:#D2D2CA;
  --rule-soft:#E2E2DA;

  --lamp:#D9922B;
  --lamp-hi:#F0B65F;
  --lamp-lo:#8A5312;

  --night-900:#0B0E13;
  --night-800:#11151B;
  --night-700:#171C24;
  --night-600:#212832;
  --night-line:#2C3440;
  --paper:#E9E9E3;
  --paper-dim:#A9B0BA;

  --ff:"Onest","Segoe UI",system-ui,-apple-system,sans-serif;
  --fm:"JetBrains Mono",ui-monospace,SFMono-Regular,Consolas,monospace;

  --pad:clamp(20px,5vw,72px);
  --maxw:1360px;
  --gap:clamp(56px,8vw,128px);
  --sec-pad:clamp(72px,10vw,148px);
  --radius:3px;
  --ease:cubic-bezier(.22,.61,.36,1);

  --hdr:66px;
}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--hdr) + 22px);
  scrollbar-color:var(--ink-400) var(--chalk-100);
  background:var(--chalk-050);
}

body{
  margin:0;
  font-family:var(--ff);
  font-size:clamp(15px,1.02vw,17px);
  line-height:1.62;
  color:var(--ink-800);
  background:var(--chalk-050);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  caret-color:var(--ink-900);
}

::selection{background:var(--lamp);color:var(--ink-900)}
::-moz-selection{background:var(--lamp);color:var(--ink-900)}

input,select,textarea,button{font:inherit;color:inherit}
textarea{resize:vertical}

:focus-visible{
  outline:2px solid var(--ink-900);
  outline-offset:3px;
  border-radius:2px;
}
.works :focus-visible,.lead :focus-visible,.ft :focus-visible{outline-color:var(--lamp-hi)}

::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--chalk-100)}
::-webkit-scrollbar-thumb{background:var(--ink-400);border:3px solid var(--chalk-100);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:var(--ink-500)}

.skip{
  position:fixed;top:10px;left:10px;z-index:200;
  transform:translateY(-160%);
  background:var(--ink-900);color:var(--chalk-050);
  padding:12px 18px;border-radius:var(--radius);
  text-decoration:none;font-weight:500;
  transition:transform .2s var(--ease);
}
.skip:focus-visible{transform:none}

.mono{font-family:var(--fm);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.02em}
.mono-lg{font-family:var(--fm);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.035em}

.h2{
  font-size:clamp(2rem,4.4vw,3.35rem);
  line-height:1.02;
  letter-spacing:-.038em;
  font-weight:700;
  margin:0 0 20px;
  text-wrap:balance;
  max-width:19ch;
}
.h2--light{color:var(--paper)}
.lede{
  margin:0;max-width:62ch;
  font-size:clamp(1rem,1.22vw,1.13rem);
  line-height:1.6;
  color:var(--ink-600);
  text-wrap:pretty;
}
.lede--light{color:var(--paper-dim)}

a{color:inherit}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 26px;
  background:var(--ink-900);color:var(--chalk-050);
  border:1px solid var(--ink-900);border-radius:var(--radius);
  font-weight:500;font-size:.95rem;letter-spacing:-.005em;
  text-decoration:none;cursor:pointer;
  transition:background .22s var(--ease),color .22s var(--ease),border-color .22s var(--ease),transform .22s var(--ease);
}
.btn:hover{background:var(--ink-800);transform:translateY(-1px)}
.btn:active{transform:none}
.btn--sm{padding:11px 18px;font-size:.875rem}
.btn--full{width:100%}
.btn--lamp{background:var(--lamp);border-color:var(--lamp);color:var(--night-900)}
.btn--lamp:hover{background:var(--lamp-hi);border-color:var(--lamp-hi)}

/* ─── material ─────────────────────────────────────────── */

.film{
  position:relative;overflow:hidden;isolation:isolate;
  --c1:#FBFBF9;--c2:#F1F1EC;--c3:#DFDFD8;--c4:#C6C6BE;
  --top:.9;--wra:.3;--dra:.14;--refl:0;--stk:0;--weave:0;--stb:7px;
  --sheen:radial-gradient(closest-side,rgba(255,255,255,.99) 0%,rgba(255,255,255,.62) 15%,rgba(255,255,255,.2) 36%,rgba(255,255,255,0) 60%);
  background:
    radial-gradient(110% 130% at 14% -30%, rgba(255,255,255,var(--top)), rgba(255,255,255,0) 62%),
    radial-gradient(160% 250% at 50% -78%,
      var(--c1) 0%,
      var(--c2) 26%,
      var(--c3) 46%,
      var(--c4) 62%,
      var(--c3) 80%,
      var(--c2) 100%);
}
.film__crest{
  position:absolute;left:0;right:0;top:34%;height:2px;pointer-events:none;z-index:2;
  background:linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,calc(var(--crest) * .55)) 14%,
    rgba(255,255,255,var(--crest)) 50%,
    rgba(255,255,255,calc(var(--crest) * .55)) 86%,
    rgba(255,255,255,0) 100%);
  filter:blur(var(--crestb,4px));
}
.film::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:
    linear-gradient(100deg,
      rgba(20,22,26,0) 33%,
      rgba(20,22,26,var(--refl)) 41%,
      rgba(20,22,26,calc(var(--refl) * .88)) 44.5%,
      rgba(20,22,26,var(--refl)) 48%,
      rgba(20,22,26,0) 55%),
    linear-gradient(76deg,
      rgba(255,255,255,0) 43%,
      rgba(255,255,255,var(--wra)) 51%,
      rgba(255,255,255,calc(var(--wra) * .4)) 61%,
      rgba(255,255,255,0) 70%),
    linear-gradient(104deg,
      rgba(20,22,26,0) 27%,
      rgba(20,22,26,var(--dra)) 36%,
      rgba(20,22,26,calc(var(--dra) * .2)) 44%,
      rgba(20,22,26,0) 54%);
}
.film::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    repeating-linear-gradient(90deg,rgba(20,22,26,.065) 0 1px,rgba(20,22,26,0) 1px 5px),
    repeating-linear-gradient(0deg,rgba(20,22,26,.055) 0 1px,rgba(20,22,26,0) 1px 5px);
  opacity:var(--weave);z-index:2;
}

.film[data-finish="gloss"]{
  --c1:#FFFFFF;--c2:#F9F9F6;--c3:#DCDCD4;--c4:#B0B0A8;
  --top:1;--wra:.92;--dra:.14;--refl:.38;--stk:.95;--weave:0;--stb:2px;--crest:1;--crestb:2px;
  --sheen:radial-gradient(closest-side,rgba(255,255,255,1) 0%,rgba(255,255,255,.88) 6%,rgba(255,255,255,.3) 19%,rgba(255,255,255,.04) 34%,rgba(255,255,255,0) 48%);
}
.film[data-finish="satin"]{
  --c1:#FCFCF9;--c2:#F2F2ED;--c3:#E0E0D9;--c4:#C4C4BC;
  --top:.78;--wra:.34;--dra:.09;--refl:0;--stk:.24;--weave:0;--stb:14px;--crest:.42;--crestb:13px;
  --sheen:radial-gradient(closest-side,rgba(255,255,255,.62) 0%,rgba(255,255,255,.46) 24%,rgba(255,255,255,.18) 48%,rgba(255,255,255,0) 72%);
}
.film[data-finish="matte"]{
  --c1:#F7F7F3;--c2:#F1F1EC;--c3:#EAEAE4;--c4:#DADAD3;
  --top:.32;--wra:.05;--dra:0;--refl:0;--stk:0;--weave:1;--stb:0px;--crest:0;--crestb:0px;
  --sheen:radial-gradient(closest-side,rgba(255,255,255,.16) 0%,rgba(255,255,255,.1) 38%,rgba(255,255,255,.03) 66%,rgba(255,255,255,0) 86%);
}
.film[data-finish="fabric"]{
  --c1:#FCFCF9;--c2:#F6F6F1;--c3:#ECECE6;--c4:#DCDCD4;
  --top:.5;--wra:.12;--dra:0;--refl:0;--stk:.06;--weave:1;--stb:18px;--crest:.16;--crestb:20px;
  --sheen:radial-gradient(closest-side,rgba(255,255,255,.34) 0%,rgba(255,255,255,.24) 28%,rgba(255,255,255,.08) 54%,rgba(255,255,255,0) 78%);
}
.film[data-finish="acoustic"]{
  --c1:#FAFaf6;--c2:#F4F4EF;--c3:#EAEAE3;--c4:#D6D6CE;
  --top:.4;--wra:.09;--dra:0;--refl:0;--stk:.04;--weave:1;--stb:18px;--crest:.12;--crestb:22px;
  --sheen:radial-gradient(closest-side,rgba(255,255,255,.26) 0%,rgba(255,255,255,.19) 28%,rgba(255,255,255,.07) 54%,rgba(255,255,255,0) 78%);
}
.film[data-finish="acoustic"]::before{
  background-image:
    radial-gradient(circle,rgba(20,22,26,.2) 0 1.1px,rgba(20,22,26,0) 1.9px),
    repeating-linear-gradient(90deg,rgba(20,22,26,.06) 0 1px,rgba(20,22,26,0) 1px 5px),
    repeating-linear-gradient(0deg,rgba(20,22,26,.05) 0 1px,rgba(20,22,26,0) 1px 5px);
  background-size:9px 9px,auto,auto;
}

.film__window{
  position:absolute;pointer-events:none;z-index:2;
  left:6%;top:17%;width:29%;height:21%;
  transform:rotate(-7deg);
  background:linear-gradient(112deg, rgba(20,22,26,var(--wd,0)) 0%, rgba(20,22,26,calc(var(--wd,0) * .62)) 58%, rgba(20,22,26,calc(var(--wd,0) * .78)) 100%);
  filter:blur(var(--wb,0px));
  border-radius:var(--wr,0px);
  box-shadow:
    0 0 0 1px rgba(20,22,26,var(--we,0)),
    0 0 70px rgba(20,22,26,calc(var(--wd,0) * .5)),
    inset 0 1px 0 rgba(255,255,255,var(--wl,0));
  opacity:var(--wo,0);
  will-change:transform;
}
[data-rake] .film__window{animation:win 26s cubic-bezier(.4,.05,.4,1) infinite}
@keyframes win{
  0%,100%{transform:rotate(-7deg) translate3d(0,0,0)}
  50%{transform:rotate(-7deg) translate3d(4%,-2%,0)}
}

.film[data-finish="gloss"]{--wd:.30;--wb:1px;--wr:0px;--we:.20;--wl:.55;--wo:1}
.film[data-finish="satin"]{--wd:.11;--wb:19px;--wr:22%;--we:0;--wl:0;--wo:1}
.film[data-finish="matte"]{--wd:0;--wo:0}
.film[data-finish="fabric"]{--wd:.05;--wb:30px;--wr:28%;--we:0;--wl:0;--wo:1}
.film[data-finish="acoustic"]{--wd:.045;--wb:28px;--wr:26%;--we:0;--wl:0;--wo:1}
.film--hero{--wd:.085;--wb:7px;--wr:0px;--we:.06;--wl:.2;--wo:1;--crest:.5;--crestb:9px}
.film--hero .film__window{left:auto;right:7%;top:58%;width:17%;height:13%}

/* герой статичен: все непрерывные анимации плёнки выключены,
   движение даёт только перерисовка canvas при ресайзе и смене типа */
.film--hero .film__sheen,
.film--hero .film__streak,
.film--hero .film__window,
.film--hero .film__grain,
.film--hero{animation:none}
.film--hero{background:
    radial-gradient(110% 120% at 12% -26%, rgba(255,255,255,.9), rgba(255,255,255,0) 60%),
    radial-gradient(175% 235% at 50% -86%, #FBFBF9 0%, #F1F1EC 30%, #DFDFD8 52%, #C6C6BE 68%, #DFDFD8 86%, #F1F1EC 100%)}
.film--hero .film__crest{top:30%}

.film__sheen{
  position:absolute;left:50%;top:50%;width:170%;height:170%;
  margin:-85% 0 0 -85%;
  background:var(--sheen);
  transform:translate3d(0,0,0);
  will-change:transform;
  z-index:1;
}
[data-rake] .film__sheen{animation:rake 15s cubic-bezier(.45,.05,.35,1) infinite}
.film--hero[data-rake] .film__sheen{animation-duration:19s}

@keyframes rake{
  0%,100%{transform:translate3d(-22%,-16%,0)}
  33%{transform:translate3d(20%,-8%,0)}
  66%{transform:translate3d(-6%,20%,0)}
}

.film__streak{
  position:absolute;left:-30%;top:50%;width:160%;height:16%;
  background:linear-gradient(92deg,
    rgba(255,255,255,0) 30%,
    rgba(255,255,255,calc(var(--stk) * .3)) 40%,
    rgba(255,255,255,var(--stk)) 47%,
    rgba(255,255,255,calc(var(--stk) * .3)) 54%,
    rgba(255,255,255,0) 64%);
  filter:blur(var(--stb,7px));
  mix-blend-mode:screen;
  transform:translateY(-50%) rotate(-5deg);
  will-change:transform;z-index:1;
}
[data-rake] .film__streak{animation:rake-s 21s cubic-bezier(.45,.05,.35,1) infinite}
@keyframes rake-s{
  0%,100%{transform:translateY(-50%) rotate(-5deg) translateX(-8%)}
  50%{transform:translateY(-50%) rotate(-5deg) translateX(8%)}
}

.film__grain{
  position:absolute;inset:0;pointer-events:none;z-index:3;
  mix-blend-mode:multiply;opacity:.3;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/></svg>");
}

.film__rim{
  position:absolute;inset:0;pointer-events:none;z-index:4;
  box-shadow:
    inset 0 0 0 1px rgba(20,22,26,.09),
    inset 0 30px 70px -40px rgba(20,22,26,.34),
    inset 0 -34px 70px -42px rgba(20,22,26,.30);
}
.film__rim::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:13%;
  background:linear-gradient(180deg,rgba(20,22,26,0),rgba(20,22,26,.05) 55%,rgba(20,22,26,.14));
}

.lamp{
  position:absolute;width:62px;height:62px;border-radius:50%;
  z-index:2;pointer-events:none;
  transform:translateZ(0);will-change:transform;
  background:radial-gradient(circle,
    rgba(255,253,248,1) 0 7%,
    rgba(255,241,212,.92) 11%,
    rgba(255,226,178,.46) 19%,
    rgba(255,208,146,.16) 31%,
    rgba(255,196,120,.04) 46%,
    rgba(255,196,120,0) 64%);
}
.lamp::after{
  content:"";position:absolute;inset:11%;border-radius:50%;
  border:1px solid rgba(20,22,26,.13);
  box-shadow:0 0 0 1px rgba(255,255,255,.42), inset 0 1px 3px rgba(20,22,26,.22);
}
.lamp--1{top:19%;left:22%}
.lamp--2{top:55%;left:58%}
.lamp--3{top:11%;left:83%}
.lamp--a{top:34%;left:64%;width:46px;height:46px}

.film[data-finish="gloss"] .lamp{
  width:52px;height:52px;
  background:radial-gradient(circle,
    rgba(255,255,253,1) 0 3.5%,
    rgba(255,251,238,.98) 6.5%,
    rgba(255,238,205,.62) 12%,
    rgba(255,224,172,.2) 21%,
    rgba(255,210,146,.05) 33%,
    rgba(255,200,130,0) 47%);
}
.film[data-finish="satin"] .lamp{
  width:78px;height:78px;
  background:radial-gradient(circle,
    rgba(255,253,247,.92) 0 7%,
    rgba(255,244,220,.7) 14%,
    rgba(255,233,195,.38) 25%,
    rgba(255,220,166,.15) 39%,
    rgba(255,208,142,.04) 55%,
    rgba(255,200,130,0) 70%);
}
.film[data-finish="matte"] .lamp{
  width:124px;height:124px;
  background:radial-gradient(circle,
    rgba(255,253,247,.3) 0 22%,
    rgba(255,249,240,.2) 38%,
    rgba(255,245,234,.1) 54%,
    rgba(255,242,232,.035) 70%,
    rgba(255,240,230,.01) 84%,
    rgba(255,240,230,0) 96%);
}
.film[data-finish="fabric"] .lamp{
  width:92px;height:92px;
  background:radial-gradient(circle,
    rgba(255,253,247,.56) 0 13%,
    rgba(255,246,226,.4) 25%,
    rgba(255,234,199,.18) 43%,
    rgba(255,220,166,.06) 61%,
    rgba(255,206,138,0) 78%);
}
.film[data-finish="acoustic"] .lamp{
  width:86px;height:86px;
  background:radial-gradient(circle,
    rgba(255,253,247,.46) 0 14%,
    rgba(255,246,226,.33) 27%,
    rgba(255,234,199,.15) 45%,
    rgba(255,220,166,.05) 63%,
    rgba(255,206,138,0) 79%);
}
.film[data-finish="matte"] .lamp::after,
.film[data-finish="fabric"] .lamp::after,
.film[data-finish="acoustic"] .lamp::after{
  border-color:rgba(20,22,26,.05);
  box-shadow:0 0 0 1px rgba(255,255,255,.24);
}
.film[data-finish="matte"] .lamp::after{border-color:transparent;box-shadow:none}

/* ─── swatch ───────────────────────────────────────────── */

.swatches [data-rake] .film__sheen{animation-delay:var(--rk,0s)}
.swatches [data-rake] .film__streak{animation-delay:var(--rk2,0s)}
.swatches .swatch:nth-child(1){--rk:-1s;--rk2:-6.5s}
.swatches .swatch:nth-child(2){--rk:-4.6s;--rk2:-11.5s}
.swatches .swatch:nth-child(3){--rk:-8.2s;--rk2:-2.5s}
.swatches .swatch:nth-child(4){--rk:-11.8s;--rk2:-15.5s}
.swatches .swatch:nth-child(5){--rk:-5.6s;--rk2:-8.8s}
.swatches .swatch:nth-child(1) .lamp--a{top:26%;left:74%}
.swatches .swatch:nth-child(2) .lamp--a{top:66%;left:28%}
.swatches .swatch:nth-child(3) .lamp--a{top:40%;left:58%}
.swatches .swatch:nth-child(4) .lamp--a{top:24%;left:38%}
.swatches .swatch:nth-child(5) .lamp--a{top:62%;left:70%}

/* ─── header ───────────────────────────────────────────── */

.hd{
  position:fixed;top:0;left:0;right:0;z-index:90;
  height:var(--hdr);
  transition:background .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
  border-bottom:1px solid transparent;
}
.hd.is-stuck{
  background:rgba(237,237,232,.9);
  backdrop-filter:blur(14px) saturate(1.3);
  -webkit-backdrop-filter:blur(14px) saturate(1.3);
  border-bottom-color:var(--rule);
}
.hd.is-dark{
  background:rgba(11,14,19,.66);
  border-bottom-color:transparent;
}
.hd.is-dark .mark{color:var(--paper)}
.hd.is-dark .mark__glyph{color:var(--lamp-hi)}
.hd.is-dark .hd__nav a{color:var(--paper-dim)}
.hd.is-dark .hd__nav a:hover{color:var(--paper)}
.hd.is-dark .hd__tel{color:var(--paper)}
.hd.is-dark .btn--sm{background:var(--lamp);border-color:var(--lamp);color:var(--night-900)}
.hd.is-dark .btn--sm:hover{background:var(--lamp-hi);border-color:var(--lamp-hi)}
.hd.is-dark .burger{border-color:var(--night-line)}
.hd.is-dark .burger i{background:var(--paper)}

.hd__prog{
  position:absolute;left:0;bottom:-1px;height:2px;width:100%;
  transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--lamp),var(--lamp-hi));
  opacity:0;transition:opacity .3s var(--ease);
}
.hd.is-stuck .hd__prog{opacity:1}
.hd__in{
  max-width:var(--maxw);margin:0 auto;height:var(--hdr);
  padding:0 var(--pad);
  display:flex;align-items:center;gap:28px;
}
.mark{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink-900);flex:none}
.mark__glyph{width:26px;height:26px;display:block;color:var(--ink-900)}
.mark__glyph svg{width:100%;height:100%;display:block}
.mark__word{font-weight:800;letter-spacing:.14em;font-size:.95rem}
.mark--ft{color:var(--paper)}
.mark--ft .mark__glyph{color:var(--lamp-hi)}

.hd__nav{display:flex;gap:24px;margin-left:auto}
.hd__nav a{
  text-decoration:none;font-size:.9rem;color:var(--ink-600);
  position:relative;padding:4px 0;transition:color .2s var(--ease);
}
.hd__nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform .28s var(--ease);
}
.hd__nav a:hover{color:var(--ink-900)}
.hd__nav a:hover::after{transform:scaleX(1)}

.hd__act{display:flex;align-items:center;gap:16px;flex:none;margin-left:auto}
.hd__tel{
  text-decoration:none;font-family:var(--fm);font-size:.9rem;
  letter-spacing:-.02em;color:var(--ink-900);font-weight:500;
}
.hd__tel:hover{text-decoration:underline;text-underline-offset:4px}

.burger{
  display:none;width:40px;height:40px;background:none;border:1px solid var(--rule);
  border-radius:var(--radius);cursor:pointer;position:relative;
}
.burger i{
  position:absolute;left:10px;width:20px;height:1.6px;background:var(--ink-900);
  transition:transform .28s var(--ease),opacity .2s var(--ease);
}
.burger i:nth-child(1){top:16px}
.burger i:nth-child(2){top:22px}
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(3px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){transform:translateY(-3px) rotate(-45deg)}

.mobnav{
  display:none;flex-direction:column;gap:2px;
  background:var(--chalk-050);border-bottom:1px solid var(--rule);
  padding:12px var(--pad) 22px;
}
.mobnav a{
  text-decoration:none;padding:11px 0;font-size:1rem;
  border-bottom:1px solid var(--rule-soft);
}
.mobnav__tel{font-family:var(--fm);border-bottom:0 !important;padding-top:18px !important;font-weight:500}
.mobnav.is-open{display:flex}

/* ─── hero ─────────────────────────────────────────────── */

.hero{
  position:relative;min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:calc(var(--hdr) + 40px) var(--pad) 0;
  isolation:isolate;
}
.film--hero{position:absolute;inset:0;z-index:-1;border-bottom:1px solid var(--rule)}

.hero__in{
  max-width:var(--maxw);margin:0 auto;width:100%;
  padding-bottom:clamp(28px,4vw,54px);
}
.hero__h1{
  margin:0 0 24px;
  font-size:clamp(2.6rem,7.6vw,5.6rem);
  line-height:.94;letter-spacing:-.042em;font-weight:800;
  color:var(--ink-900);
  text-wrap:balance;
  max-width:22ch;
}
.hero__h1 em{font-style:normal;color:var(--lamp-lo)}
.hero__lede{
  margin:0 0 clamp(30px,4vw,52px);
  max-width:52ch;font-size:clamp(1rem,1.3vw,1.16rem);
  line-height:1.55;color:var(--ink-600);text-wrap:pretty;
}

.est{width:100%}
.est--hero{max-width:1000px}
.est__row{
  display:grid;
  grid-template-columns:minmax(190px,1.05fr) minmax(230px,1.35fr) minmax(190px,.95fr) auto;
  gap:0;
  background:rgba(246,246,243,.72);
  backdrop-filter:blur(18px) saturate(1.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
  border:1px solid var(--rule);border-radius:var(--radius);
  overflow:hidden;
}
.field{padding:16px 20px;border-right:1px solid var(--rule)}
.field:last-of-type{border-right:0}
.field__lab{
  display:block;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-500);margin-bottom:9px;font-weight:500;
}
.field__ctl{display:flex;align-items:center;gap:14px}
.field--out{display:flex;flex-direction:column;justify-content:space-between}
.est__sum{display:flex;align-items:baseline;gap:4px}
.est__sum .mono-lg{font-size:clamp(1.35rem,2.1vw,1.75rem);font-weight:500;color:var(--ink-900)}
.field--out .field__lab{margin-bottom:0}
.est__go{border-radius:0;border-top:0;border-bottom:0;border-right:0;height:100%;min-width:150px;padding-inline:24px}

.hero__rail{
  display:flex;flex-wrap:wrap;gap:0;margin-top:clamp(26px,3vw,40px);
  border-top:1px solid var(--rule);
}
.rail__item{
  padding:16px 26px 0 0;margin-right:26px;
  border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:2px;
  text-decoration:none;
}
.rail__item:last-child{border-right:0;margin-right:0;padding-right:0}
.rail__item:not([class]){}
a.rail__item:hover .rail__v{text-decoration:underline;text-underline-offset:4px}
.rail__k{font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-500)}
.rail__v{font-family:var(--fm);font-size:1rem;font-weight:500;color:var(--ink-900);letter-spacing:-.02em}

.hero__scroll{
  max-width:var(--maxw);margin:0 auto;width:100%;
  display:flex;align-items:center;gap:10px;
  padding-bottom:22px;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-500);
}
.hero__scroll span{
  width:46px;height:1px;background:var(--ink-400);display:block;
  transform-origin:left;animation:slide 2.8s var(--ease) infinite;
}
@keyframes slide{0%,100%{transform:scaleX(.35);opacity:.5}50%{transform:scaleX(1);opacity:1}}

/* ─── shared section ───────────────────────────────────── */

.sec{padding:var(--sec-pad) var(--pad);max-width:var(--maxw);margin:0 auto}
.sec__head{margin-bottom:clamp(40px,5vw,68px)}
.sec__head--row{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:clamp(28px,4vw,56px);align-items:end;
}

/* ─── spec strip ───────────────────────────────────────── */

.spec{
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  background:var(--chalk-000);
  padding:0 var(--pad);
}
.spec__in{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);
}
.spec__cell{
  padding:34px 28px 34px 0;
  border-right:1px solid var(--rule);
  display:flex;flex-direction:column;gap:8px;
}
.spec__cell:last-child{border-right:0}
.spec__cell:not(:first-child){padding-left:28px}
.spec__v{font-size:clamp(1.7rem,3vw,2.5rem);font-weight:700;letter-spacing:-.04em;color:var(--ink-900);line-height:1}
.spec__k{font-size:.875rem;color:var(--ink-600);line-height:1.45;max-width:24ch}

/* ─── swatches ─────────────────────────────────────────── */

.swatches{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.swatch{
  background:var(--chalk-050);display:flex;flex-direction:column;
  transition:background .3s var(--ease);
}
.swatch:hover{background:var(--chalk-000)}
.swatch--wide{grid-column:1/-1;flex-direction:row;align-items:stretch}
.swatch--wide .swatch__plate{flex:0 0 44%;aspect-ratio:auto;min-height:300px}
.swatch--wide .swatch__body{flex:1;justify-content:center;padding:clamp(28px,3.4vw,52px)}
.swatch__plate{position:relative;aspect-ratio:16/9}
.swatch__body{padding:clamp(24px,2.6vw,36px);display:flex;flex-direction:column;gap:16px;flex:1}
.swatch__top{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap}
.swatch__name{margin:0;font-size:1.3rem;font-weight:700;letter-spacing:-.028em;color:var(--ink-900)}
.price{font-size:1.05rem;font-weight:500;color:var(--ink-900)}
.swatch__d{margin:0;color:var(--ink-600);max-width:56ch;font-size:.97rem}

.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:6px 0 0;padding-top:16px;border-top:1px solid var(--rule-soft)}
.specs > div{min-width:0;padding-right:14px}
.specs dt{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500);margin-bottom:3px}
.specs dd{margin:0;font-size:.9rem;color:var(--ink-900);font-weight:500}

.swatch__pick{
  align-self:flex-start;margin-top:auto;
  background:none;border:0;border-bottom:1px solid var(--ink-400);
  padding:0 0 3px;margin-top:6px;cursor:pointer;
  font-size:.88rem;color:var(--ink-900);
  transition:border-color .22s var(--ease),color .22s var(--ease);
}
.swatch__pick:hover{border-bottom-color:var(--lamp);color:var(--lamp-lo)}
.swatch__pick.is-set{border-bottom-color:var(--lamp);color:var(--lamp-lo)}

/* ─── controls ─────────────────────────────────────────── */

.num,.sel,.lf__in{
  width:100%;background:var(--chalk-000);
  border:1px solid var(--rule);border-radius:var(--radius);
  padding:11px 13px;color:var(--ink-900);
  font-family:var(--fm);font-variant-numeric:tabular-nums;letter-spacing:-.02em;
  transition:border-color .2s var(--ease),background .2s var(--ease);
}
.num--lg{font-size:1.28rem;padding:8px 10px;font-weight:500}
.num:hover,.sel:hover,.lf__in:hover{border-color:var(--ink-400)}
.num:focus,.sel:focus,.lf__in:focus{outline:none;border-color:var(--ink-900);background:var(--chalk-000);box-shadow:0 0 0 3px rgba(20,22,26,.07)}
.num::-webkit-outer-spin-button,.num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.num{-moz-appearance:textfield}
.num::placeholder,.lf__in::placeholder{color:var(--ink-400);opacity:1}

.sel{
  appearance:none;font-family:var(--ff);font-size:.95rem;
  padding:12px 40px 12px 14px;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%2314161A' stroke-width='1.5'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;
}

.slider{
  -webkit-appearance:none;appearance:none;width:100%;height:22px;
  background:transparent;cursor:pointer;
}
.slider::-webkit-slider-runnable-track{
  height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--ink-900) 0 var(--fill,10%),var(--rule) var(--fill,10%) 100%);
}
.slider::-moz-range-track{height:3px;border-radius:2px;background:var(--rule)}
.slider::-moz-range-progress{height:3px;border-radius:2px;background:var(--ink-900)}
.slider::-webkit-slider-thumb{
  -webkit-appearance:none;width:18px;height:18px;border-radius:50%;
  background:var(--ink-900);border:3px solid var(--chalk-000);
  box-shadow:0 1px 4px rgba(20,22,26,.3);margin-top:-7.5px;
  transition:transform .18s var(--ease);
}
.slider::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;background:var(--ink-900);
  border:3px solid var(--chalk-000);box-shadow:0 1px 4px rgba(20,22,26,.3);
}
.slider:hover::-webkit-slider-thumb{transform:scale(1.16)}
.slider:focus-visible{outline:none}
.slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(20,22,26,.18)}
.slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px rgba(20,22,26,.18)}

.hint{
  background:none;border:0;padding:0;margin-top:9px;cursor:pointer;
  font-size:.78rem;color:var(--ink-500);text-decoration:underline;
  text-underline-offset:3px;text-decoration-color:var(--rule);
  transition:color .2s var(--ease);
}
.hint:hover{color:var(--ink-900);text-decoration-color:var(--ink-900)}

/* ─── calculator ───────────────────────────────────────── */

.calc{background:var(--chalk-100);max-width:none;border-top:1px solid var(--rule)}
.calc > .sec__head,.calc > .calc__grid{max-width:var(--maxw);margin-left:auto;margin-right:auto}
.calc__grid{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(320px,.68fr);gap:clamp(28px,3.6vw,56px);align-items:start}

.calc__form{display:flex;flex-direction:column;gap:clamp(26px,3vw,40px)}
.fset{border:0;padding:0;margin:0;min-width:0}
.fset__lg{
  padding:0;margin-bottom:16px;
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-500);font-weight:500;
}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  padding:11px 16px;cursor:pointer;
  background:var(--chalk-050);border:1px solid var(--rule);border-radius:var(--radius);
  transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease);
}
.chip:hover{border-color:var(--ink-400)}
.chip__k{font-size:.92rem;color:var(--ink-800);font-weight:500}
.chip__v{font-size:.76rem;color:var(--ink-500)}
.chip[aria-checked="true"]{background:var(--ink-900);border-color:var(--ink-900)}
.chip[aria-checked="true"] .chip__k{color:var(--chalk-050)}
.chip[aria-checked="true"] .chip__v{color:var(--lamp-hi)}

.seg{display:inline-flex;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--chalk-050)}
.seg button{
  padding:11px 20px;background:none;border:0;border-right:1px solid var(--rule);
  cursor:pointer;font-size:.9rem;color:var(--ink-600);
  transition:background .2s var(--ease),color .2s var(--ease);
}
.seg button:last-child{border-right:0}
.seg button:hover{background:var(--chalk-000);color:var(--ink-900)}
.seg button[aria-checked="true"]{background:var(--ink-900);color:var(--chalk-050)}

.ctrl--pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px)}
.ctrl__box{display:flex;flex-direction:column;gap:8px;min-width:0}
.ctrl--sub{margin-top:16px}
.ctrl__lab{font-size:.8rem;color:var(--ink-600)}
.ctrl__row{display:flex;align-items:center;gap:10px}
.ctrl__row .num{flex:1}
.unit{font-family:var(--fm);font-size:.82rem;color:var(--ink-500);flex:none}
[data-when]{display:none}
[data-when].is-on{display:flex;flex-direction:column}

.switches{display:flex;flex-direction:column;gap:12px}
.sw{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:12px 0}
.sw input{position:absolute;opacity:0;width:0;height:0}
.sw__box{
  width:20px;height:20px;flex:none;margin-top:2px;
  border:1px solid var(--ink-400);border-radius:2px;background:var(--chalk-050);
  position:relative;transition:background .2s var(--ease),border-color .2s var(--ease);
}
.sw__box::after{
  content:"";position:absolute;left:6px;top:2.5px;width:5px;height:10px;
  border:solid var(--chalk-050);border-width:0 2px 2px 0;transform:rotate(45deg) scale(.4);
  opacity:0;transition:opacity .18s var(--ease),transform .18s var(--ease);
}
.sw input:checked + .sw__box{background:var(--ink-900);border-color:var(--ink-900)}
.sw input:checked + .sw__box::after{opacity:1;transform:rotate(45deg) scale(1)}
.sw input:focus-visible + .sw__box{outline:2px solid var(--ink-900);outline-offset:3px}
.sw__lab{font-size:.95rem;color:var(--ink-800)}
.sw__lab em{font-style:normal;font-family:var(--fm);font-size:.8rem;color:var(--lamp-lo);margin-left:6px}

.calc__err{
  margin:0;font-size:.86rem;color:#9A2C1B;
  border-left:2px solid #9A2C1B;padding:2px 0 2px 12px;
}
.calc__err:empty{display:none}

.quote{position:sticky;top:calc(var(--hdr) + 22px)}
.quote__in{background:var(--ink-900);color:var(--paper);padding:clamp(24px,2.6vw,34px)}
.quote__head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:16px;border-bottom:1px solid var(--night-600)}
.quote__ttl{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim)}
.quote__disc{font-size:.78rem;color:var(--lamp-hi)}

.quote__lines{margin:0;padding:6px 0}
.ql{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:9px 0}
.ql dt{font-size:.9rem;color:var(--paper-dim)}
.ql dd{margin:0;font-size:.95rem;color:var(--paper)}
.ql--minus dt,.ql--minus dd{color:var(--lamp-hi)}

.quote__total{
  display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;
  padding:18px 0 20px;border-top:1px solid var(--night-600);
}
.quote__tl{width:100%;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim)}
.quote__num{font-size:clamp(2.1rem,3.6vw,2.9rem);font-weight:500;color:var(--lamp-hi);line-height:1}
.quote__per{width:100%;font-size:.82rem;color:var(--paper-dim)}

.quote__note{font-size:.8rem;line-height:1.5;color:var(--paper-dim);margin:16px 0 0}
.quote__facts{list-style:none;margin:20px 0 0;padding:16px 0 0;border-top:1px solid var(--night-600)}
.quote__facts li{display:flex;justify-content:space-between;padding:6px 0;font-size:.84rem}
.quote__facts span{color:var(--paper-dim)}

/* ─── works (night) ────────────────────────────────────── */

.works{
  background:linear-gradient(180deg,var(--night-900) 0%,var(--night-800) 55%,var(--night-900) 100%);
  max-width:none;position:relative;
}
.works::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 40% at 50% 0%,rgba(217,146,43,.10),rgba(11,14,19,0) 70%);
}
.works > *{max-width:var(--maxw);margin-left:auto;margin-right:auto;position:relative}

.filters{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:4px}
.filters button{
  padding:9px 15px;border-radius:999px;cursor:pointer;
  background:none;border:1px solid var(--night-line);color:var(--paper-dim);
  font-size:.85rem;transition:color .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease);
}
.filters button:hover{color:var(--paper);border-color:var(--paper-dim)}
.filters button[aria-selected="true"]{background:var(--lamp);border-color:var(--lamp);color:var(--night-900);font-weight:500}

.works__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.4vw,32px)}
.work{
  display:flex;flex-direction:column;
  border:1px solid var(--night-line);background:var(--night-800);
  transition:border-color .3s var(--ease),transform .3s var(--ease);
}
.work:hover{border-color:#46506180;transform:translateY(-2px)}
.work.is-hidden{display:none}

.work__plan{
  position:relative;aspect-ratio:200/130;overflow:hidden;
  --lp:.5;--pk:.2;--stk:0;--weave:0;
  background:
    radial-gradient(60% 70% at 26% 32%,rgba(255,238,206,var(--lp)) 0%,rgba(255,214,150,calc(var(--lp)*.34)) 26%,rgba(255,196,120,0) 68%),
    radial-gradient(52% 62% at 76% 72%,rgba(255,238,206,calc(var(--lp)*.62)) 0%,rgba(255,214,150,0) 66%),
    linear-gradient(168deg,#1E242C 0%,#141920 54%,#0E1319 100%);
}
.work__plan::before{
  content:"";position:absolute;inset:0;
  background-image:
    repeating-linear-gradient(90deg,rgba(233,233,227,.05) 0 1px,rgba(233,233,227,0) 1px 3px),
    repeating-linear-gradient(0deg,rgba(233,233,227,.04) 0 1px,rgba(233,233,227,0) 1px 3px);
  opacity:var(--weave);
}
.work[data-film="gloss"]{--lp:.62;--weave:0}
.work[data-film="satin"]{--lp:.5;--weave:0}
.work[data-film="matte"]{--lp:.16;--weave:.45}
.work[data-film="fabric"]{--lp:.3;--weave:1}
.work[data-film="acoustic"]{--lp:.22;--weave:1}
.work__plan svg{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1;transform:translateY(var(--drift,0px))}

.pl-out{fill:none;stroke:rgba(233,233,227,.42);stroke-width:1.1}
.pl-in{fill:rgba(233,233,227,.035);stroke:rgba(233,233,227,.8);stroke-width:1.1}
.pl-wall{fill:none;stroke:rgba(233,233,227,.34);stroke-width:1.1}
.pl-lvl2{fill:none;stroke:rgba(240,182,95,.85);stroke-width:1.1}
.pl-round{fill:none;stroke:rgba(240,182,95,.8);stroke-width:1.1}
.pl-fill{fill:none;stroke:rgba(233,233,227,.2);stroke-width:.8;stroke-dasharray:3 3}
.pl-tape{fill:none;stroke:rgba(240,182,95,.6);stroke-width:2.4;stroke-dasharray:1 5;stroke-linecap:round}
.pl-lamp{fill:rgba(255,244,220,.92);stroke:rgba(240,182,95,.6);stroke-width:1.2}
.pl-line{fill:rgba(255,238,206,.8)}
.pl-vent{fill:none;stroke:rgba(233,233,227,.5);stroke-width:1}
.pl-dim{fill:rgba(233,233,227,.64);font-family:var(--fm);font-size:9.5px;letter-spacing:.03em}
.pl-note{fill:rgba(240,182,95,.95);font-family:var(--fm);font-size:10px;font-weight:500;text-anchor:end}

.work__side{padding:clamp(20px,2.2vw,28px);display:flex;flex-direction:column;gap:16px;flex:1}
.work__name{margin:0;font-size:1.2rem;font-weight:700;letter-spacing:-.026em;color:var(--paper)}
.work__specs{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:14px 18px}
.work__specs div{min-width:0}
.work__specs dt{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);margin-bottom:2px}
.work__specs dd{margin:0;font-size:.9rem;color:var(--paper)}
.work__like{
  align-self:flex-start;margin-top:auto;background:none;border:0;
  border-bottom:1px solid var(--night-line);padding:0 0 3px;cursor:pointer;
  font-size:.86rem;color:var(--lamp-hi);transition:border-color .22s var(--ease);
}
.work__like:hover{border-bottom-color:var(--lamp-hi)}
.work__like.is-set{border-bottom-color:var(--lamp-hi);color:var(--paper)}

.works__empty{margin:30px 0 0;color:var(--paper-dim);font-size:.95rem}

/* ─── tech ─────────────────────────────────────────────── */

.tech{border-top:1px solid var(--rule)}
.tech__grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(32px,4vw,64px);align-items:start}
.cut{margin:0;background:var(--chalk-000);border:1px solid var(--rule);padding:clamp(20px,2.6vw,36px)}
.cut__svg{width:100%;height:auto;display:block;color:var(--ink-500)}
.ct-slab{fill:var(--chalk-200);stroke:none}
.ct-wall{fill:var(--chalk-200);stroke:none}
.ct-hatch,.ct-hatchw{color:var(--ink-600);stroke:none}
.ct-foam{fill:rgba(233,233,227,.9);stroke:var(--ink-400);stroke-width:.8}
.ct-baget{fill:var(--chalk-200);stroke:var(--ink-900);stroke-width:1.2;stroke-linejoin:round}
.ct-film{stroke:var(--ink-900);stroke-width:2}
.ct-harpoon{fill:var(--ink-900)}
.ct-cap{fill:var(--ink-500);font-size:12px;letter-spacing:.01em}
.ct-dim{fill:none;stroke:var(--lamp-lo);stroke-width:1}
.ct-dimtxt{fill:var(--lamp-lo);font-family:var(--fm);font-size:12px;font-weight:500}
.ct-lead{fill:none;stroke:var(--ink-400);stroke-width:.9}
.ct-leadtxt{fill:var(--ink-600);font-size:12.5px}
.cut figcaption{margin:22px 0 0;font-size:.82rem;color:var(--ink-500);line-height:1.5;padding-top:16px;border-top:1px solid var(--rule-soft)}

.tech__nums{display:flex;flex-direction:column}
.num-row{
  display:grid;grid-template-columns:minmax(94px,.34fr) minmax(0,1fr);
  gap:clamp(16px,2.2vw,28px);
  padding:22px 0;border-bottom:1px solid var(--rule);
}
.num-row:first-child{padding-top:0}
.num-row:last-child{border-bottom:0}
.num-row__v{font-size:clamp(1.5rem,2.6vw,2.05rem);font-weight:500;letter-spacing:-.045em;color:var(--ink-900);line-height:1}
.num-row h3{margin:0 0 6px;font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--ink-900)}
.num-row p{margin:0;font-size:.92rem;color:var(--ink-600);line-height:1.55;max-width:46ch}

/* ─── day ──────────────────────────────────────────────── */

.day{
  list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(5,1fr);gap:1px;background:var(--rule);
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.day__i{
  background:var(--chalk-050);padding:clamp(20px,2.2vw,28px);
  display:flex;flex-direction:column;gap:10px;
  transition:background .3s var(--ease);
}
.day__i:hover{background:var(--chalk-000)}
.day__t{font-size:.86rem;font-weight:500;color:var(--lamp-lo);letter-spacing:-.02em}
.day__i h3{margin:0;font-size:1.02rem;font-weight:700;letter-spacing:-.022em;color:var(--ink-900)}
.day__i p{margin:0;font-size:.88rem;color:var(--ink-600);line-height:1.55}
.day__d{
  margin-top:auto;padding-top:14px;font-family:var(--fm);
  font-size:.76rem;color:var(--ink-500);letter-spacing:-.01em;
}

/* ─── why / vs ─────────────────────────────────────────── */

.why{background:var(--chalk-100);max-width:none;border-top:1px solid var(--rule)}
.why > *{max-width:var(--maxw);margin-left:auto;margin-right:auto}
.vs{border:1px solid var(--rule);background:var(--chalk-000)}
.vs__head,.vs__row{
  display:grid;grid-template-columns:minmax(130px,.5fr) minmax(0,1fr) minmax(0,1fr);
  gap:clamp(14px,2vw,30px);align-items:start;
}
.vs__head{padding:18px 24px;border-bottom:1px solid var(--rule);background:var(--chalk-200)}
.vs__a{font-weight:700;font-size:.95rem;color:var(--ink-600);letter-spacing:-.02em}
.vs__b{font-weight:700;font-size:.95rem;color:var(--ink-900);letter-spacing:-.02em}
.vs__head .vs__a{color:var(--ink-600)}
.vs__row{padding:20px 24px;border-bottom:1px solid var(--rule-soft);font-size:.92rem;line-height:1.5}
.vs__row:last-child{border-bottom:0}
.vs__row:hover{background:var(--chalk-050)}
.vs__k{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500);padding-top:3px}
.vs__row .vs__a{font-weight:400;color:var(--ink-500);text-decoration:line-through;text-decoration-color:var(--rule);text-decoration-thickness:1px}
.vs__row .vs__b{font-weight:400;color:var(--ink-800)}

/* ─── voices ───────────────────────────────────────────── */

.voices{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,34px)}
.voice{
  margin:0;padding-top:22px;border-top:2px solid var(--ink-900);
  display:flex;flex-direction:column;gap:20px;
}
.voice blockquote{margin:0;font-size:1.02rem;line-height:1.6;color:var(--ink-800);text-wrap:pretty}
.voice figcaption{display:flex;flex-direction:column;gap:2px;margin-top:auto}
.voice figcaption b{font-size:.92rem;color:var(--ink-900);font-weight:600}
.voice figcaption span{font-size:.8rem;color:var(--ink-500);font-family:var(--fm)}

/* ─── faq ──────────────────────────────────────────────── */

.faq{background:var(--chalk-100);max-width:none;border-top:1px solid var(--rule)}
.faq > *{max-width:var(--maxw);margin-left:auto;margin-right:auto}
.qa{border-top:1px solid var(--rule)}
.qa__i{border-bottom:1px solid var(--rule)}
.qa__i summary{
  list-style:none;cursor:pointer;
  padding:24px 44px 24px 0;position:relative;
  font-size:clamp(1rem,1.4vw,1.1rem);font-weight:600;letter-spacing:-.022em;color:var(--ink-900);
  transition:color .2s var(--ease);
}
.qa__i summary::-webkit-details-marker{display:none}
.qa__i summary:hover{color:var(--lamp-lo)}
.qa__i summary i{
  position:absolute;right:6px;top:50%;width:14px;height:14px;margin-top:-7px;
}
.qa__i summary i::before,.qa__i summary i::after{
  content:"";position:absolute;background:var(--ink-900);
  transition:transform .3s var(--ease),background .2s var(--ease);
}
.qa__i summary i::before{left:0;top:6.2px;width:14px;height:1.6px}
.qa__i summary i::after{left:6.2px;top:0;width:1.6px;height:14px}
.qa__i[open] summary i::after{transform:rotate(90deg)}
.qa__i[open] summary{color:var(--ink-900)}
.qa__a{padding:0 44px 26px 0}
.qa__a p{margin:0;font-size:.95rem;color:var(--ink-600);line-height:1.65;max-width:70ch}

/* ─── lead ─────────────────────────────────────────────── */

.lead{
  background:linear-gradient(172deg,var(--night-800) 0%,var(--night-900) 100%);
  max-width:none;position:relative;overflow:hidden;
}
.lead::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(52% 60% at 12% 22%,rgba(217,146,43,.16),rgba(11,14,19,0) 70%),
    radial-gradient(44% 52% at 88% 78%,rgba(240,182,95,.09),rgba(11,14,19,0) 70%);
}
.lead__in{
  max-width:var(--maxw);margin:0 auto;position:relative;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);
  gap:clamp(36px,5vw,80px);align-items:start;
}
.lead__left{display:flex;flex-direction:column}
.lead__list{list-style:none;margin:clamp(28px,3.4vw,44px) 0 0;padding:0;border-top:1px solid var(--night-line)}
.lead__list li{
  display:flex;flex-direction:column;gap:2px;
  padding:14px 0;border-bottom:1px solid var(--night-line);
}
.lead__list b{font-size:.92rem;color:var(--paper);font-weight:600}
.lead__list span{font-size:.86rem;color:var(--paper-dim)}
.lead__contact{margin-top:clamp(26px,3vw,40px);display:flex;flex-direction:column;gap:6px}
.lead__tel{
  font-family:var(--fm);font-size:clamp(1.5rem,3vw,2.1rem);font-weight:500;
  color:var(--lamp-hi);text-decoration:none;letter-spacing:-.04em;width:fit-content;
}
.lead__tel:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-color:rgba(240,182,95,.4)}
.lead__hours{font-size:.86rem;color:var(--paper-dim)}

.lead__form{background:var(--night-700);border:1px solid var(--night-line);padding:clamp(24px,2.8vw,36px);display:flex;flex-direction:column;gap:18px}
.lf__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.lf__box{display:flex;flex-direction:column;gap:7px;min-width:0}
.lf__lab{font-size:.8rem;color:var(--paper-dim)}
.lf__in{
  background:var(--night-800);border-color:var(--night-line);color:var(--paper);
  border-radius:var(--radius);font-family:var(--ff);
}
.lf__in--area{font-size:.92rem;line-height:1.5}
.lf__in:focus{outline:none;border-color:var(--lamp);background:var(--night-800);box-shadow:0 0 0 3px rgba(217,146,43,.18)}
.lf__in:hover{border-color:#3B4453}
.lf__in::placeholder{color:#8D95A3}
.lf__in--sel{
  appearance:none;cursor:pointer;padding:12px 40px 12px 14px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23E9E9E3' stroke-width='1.5'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;
}
.lf__in--sel option{background:var(--night-800);color:var(--paper)}
.lf__err{margin:0;font-size:.78rem;color:#F0937F}
.lf__err:empty{display:none}
.lf__consent{margin:0;font-size:.76rem;color:var(--paper-dim);line-height:1.5}
.lf__consent a{color:var(--paper);text-underline-offset:3px}
.lf__ok{
  display:flex;flex-direction:column;gap:4px;
  padding:16px;background:rgba(240,182,95,.1);border:1px solid rgba(240,182,95,.34);
}
.lf__ok b{color:var(--lamp-hi);font-size:.98rem}
.lf__ok span{font-size:.86rem;color:var(--paper-dim);line-height:1.5}

/* ─── footer ───────────────────────────────────────────── */

.ft{background:var(--night-900);color:var(--paper-dim);padding:clamp(48px,6vw,80px) var(--pad) 0;border-top:1px solid var(--night-line)}
.ft__in{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,.7fr)) minmax(0,1fr);
  gap:clamp(28px,3.4vw,48px);padding-bottom:clamp(40px,5vw,64px);
}
.ft__brand p{margin:18px 0 0;font-size:.88rem;line-height:1.6;max-width:40ch}
.ft h3{margin:0 0 14px;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper);font-weight:500}
.ft__nav{display:flex;flex-direction:column;gap:9px}
.ft__nav a{text-decoration:none;font-size:.88rem;color:var(--paper-dim);width:fit-content}
.ft__nav a:hover{color:var(--paper);text-decoration:underline;text-underline-offset:4px}
.ft__contact{display:flex;flex-direction:column;gap:9px;font-size:.88rem}
.ft__tel{font-family:var(--fm);font-size:1.05rem;color:var(--paper);text-decoration:none;letter-spacing:-.03em}
.ft__contact a:not(.ft__tel){color:var(--paper-dim);width:fit-content;text-decoration:none}
.ft__contact a:not(.ft__tel):hover{color:var(--paper);text-decoration:underline;text-underline-offset:4px}
.ft__base{
  max-width:var(--maxw);margin:0 auto;
  border-top:1px solid var(--night-line);
  padding:22px 0 30px;
  display:flex;flex-wrap:wrap;gap:8px 28px;align-items:center;
  font-size:.78rem;color:#8D95A3;
}
.ft__stamp{margin-left:auto;color:#848C9B}

/* ─── подвал: разработчик ─────────────────────────────── */

.ft__dev{
  max-width:var(--maxw);margin:0 auto;
  border-top:1px solid var(--night-line);
  padding:18px 0 30px;
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;
}
.dev{
  display:inline-flex;align-items:center;gap:12px;
  padding:8px 16px 8px 10px;
  border:1px solid var(--night-line);
  width:fit-content;
  transition:border-color .22s var(--ease);
}
.dev:hover{border-color:#6C7481}
.dev img{width:36px;height:36px;flex:0 0 auto;opacity:.9}
.dev__t{display:flex;flex-direction:column;gap:3px;line-height:1.25}
.dev__t b{font-size:.82rem;font-weight:500;color:var(--paper)}
.dev__t span{font-size:.72rem;letter-spacing:.04em;color:#8D95A3}
@media (max-width:480px){
  .dev{width:100%}
}

/* ─── reveal ───────────────────────────────────────────── */

.rv{opacity:0;transform:translate3d(0,20px,0);transition:opacity .72s var(--ease),transform .72s var(--ease)}
.rv.is-in{opacity:1;transform:none}
.rv-s{opacity:0;transform:translate3d(0,22px,0) scale(.975);transition:opacity .78s var(--ease),transform .78s var(--ease)}
.rv-s.is-in{opacity:1;transform:none}

/* ─── motion ──────────────────────────────────────────── */

.hero__rig{
  position:absolute;inset:0;width:100%;height:100%;
  display:block;z-index:1;pointer-events:none;
}
.film--hero .film__sheen,
.film--hero .film__crest,
.film--hero .film__streak,
.film--hero .film__window{display:none}

.rv-clip{
  clip-path:inset(0 102% 0 0);
  transition:clip-path 1.05s var(--ease);
}
.rv-clip.is-in{clip-path:inset(-.12em -.2em -.12em 0)}
.rv-lift{opacity:0;transform:translate3d(0,26px,0);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv-lift.is-in{opacity:1;transform:none}

.spec__v{display:inline-block;transition:transform .5s var(--ease)}
.spec__cell.is-live .spec__v{transform:translateY(-3px)}

.work__plan svg *{transition:stroke-dashoffset 1.5s var(--ease),opacity .8s var(--ease) var(--pd,0s)}
.work:not(.is-drawn) .work__plan svg path,
.work:not(.is-drawn) .work__plan svg rect,
.work:not(.is-drawn) .work__plan svg circle,
.work:not(.is-drawn) .work__plan svg line{stroke-dashoffset:var(--len,1200)}

.lead__tel,.btn{will-change:transform}

@media (prefers-reduced-motion:reduce){
  .rv-clip{clip-path:none;transition:none}
  .rv-lift{opacity:1;transform:none;transition:none}
  .work__plan svg *{stroke-dashoffset:0 !important;transition:none}
  .hero__rig{display:none}
}

/* ─── responsive ───────────────────────────────────────── */

@media (max-width:1180px){
  .hd__nav{display:none}
  .burger{display:block}
  .est__row{grid-template-columns:1fr 1fr}
  .field{border-bottom:1px solid var(--rule)}
  .field--area{grid-column:1}
  .field--type{grid-column:2;border-right:0}
  .field--out{grid-column:1;border-bottom:1px solid var(--rule)}
  .est__go{grid-column:2;border-right:0;border-left:1px solid var(--rule)}
  .day{grid-template-columns:repeat(2,1fr)}
  .day__i:last-child{grid-column:1/-1}
  .calc__grid{grid-template-columns:1fr}
  .quote{position:static}
  .tech__grid{grid-template-columns:1fr}
  .lead__in{grid-template-columns:1fr}
  .sec__head--row{grid-template-columns:1fr;align-items:start}
  .ft__in{grid-template-columns:1fr 1fr}
  .ft__brand{grid-column:1/-1}
}

@media (max-width:860px){
  :root{--hdr:58px}
  .spec__in{grid-template-columns:repeat(2,1fr)}
  .spec__cell{padding:24px 20px 24px 0;border-right:0}
  .spec__cell:not(:first-child){padding-left:20px}
  .spec__cell:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .swatches{grid-template-columns:1fr}
  .swatch--wide{flex-direction:column}
  .swatch--wide .swatch__plate{flex:none;aspect-ratio:16/9;min-height:0}
  .works__grid{grid-template-columns:1fr}
  .voices{grid-template-columns:1fr}
  .voice{gap:14px}
  .ctrl--pair{grid-template-columns:1fr}
  .lf__row{grid-template-columns:1fr}
  .specs{grid-template-columns:1fr 1fr}
  .hero{min-height:auto;padding-bottom:0}
  .hero__in{padding-bottom:34px}
  .hero__scroll{display:none}
  .vs__head{display:none}
  .vs__row{grid-template-columns:1fr;gap:6px;padding:18px 20px}
  .vs__row .vs__a,.vs__row .vs__b{padding-left:14px;border-left:2px solid var(--rule)}
  .vs__row .vs__b{border-left-color:var(--lamp);color:var(--ink-900)}
  .vs__row .vs__a{text-decoration:none;border-left-color:var(--rule-soft)}
  .vs__row .vs__k{padding-top:0}
  .vs__k::after{content:"";display:block;height:1px;background:var(--rule);margin-top:10px}
}

@media (max-width:560px){
  .est__row{grid-template-columns:1fr}
  .field{border-right:0}
  .field--area,.field--type,.field--out,.est__go{grid-column:1}
  .est__go{border-left:0;border-top:1px solid var(--rule)}
  .hd__tel{display:none}
  .rail__item{border-right:0;padding-right:0;margin-right:0;width:100%;border-bottom:0}
  .hero__rail{gap:14px;flex-direction:column}
  .spec__in{grid-template-columns:1fr}
  .spec__cell{padding:18px 0 !important}
  .spec__cell{border-bottom:1px solid var(--rule)}
  .spec__cell:last-child{border-bottom:0}
  .day{grid-template-columns:1fr}
  .day__i:last-child{grid-column:auto}
  .ft__in{grid-template-columns:1fr}
  .ft__stamp{margin-left:0}
  .num-row{grid-template-columns:1fr;gap:6px}
  .seg{width:100%}
  .seg button{flex:1;padding:11px 8px;font-size:.82rem}
  .chips{display:grid;grid-template-columns:1fr 1fr}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  [data-rake] .film__sheen,[data-rake] .film__streak{animation:none}
  .rv{opacity:1;transform:none}
}

@media print{
  .hd,.mobnav,.hero__scroll,.filters,.lead,.ft__base{display:none}
  body{background:#fff}
  .works,.lead{background:#fff}
  .rv{opacity:1;transform:none}
}

/* ── self-hosted fonts ────────────────────────────── */
/* Onest + JetBrains Mono, self-hosted. Subsets: cyrillic, latin. */
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(fonts/jetbrains-mono-cyrillic-400.woff2) format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(fonts/jetbrains-mono-latin-400.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url(fonts/jetbrains-mono-cyrillic-500.woff2) format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url(fonts/jetbrains-mono-latin-500.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url(fonts/onest-cyrillic-300.woff2) format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url(fonts/onest-latin-300.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(fonts/onest-cyrillic-400.woff2) format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(fonts/onest-latin-400.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url(fonts/onest-cyrillic-500.woff2) format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url(fonts/onest-latin-500.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url(fonts/onest-cyrillic-700.woff2) format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url(fonts/onest-latin-700.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:800;
  font-display:swap;
  src:url(fonts/onest-cyrillic-800.woff2) format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:800;
  font-display:swap;
  src:url(fonts/onest-latin-800.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
