/* ФАКТОР — бюро промышленного маркетинга
   Палитра «Ночная смена»: глубокая хвоя, фосфор пульта, латунь, морозный бетон */
:root{--r:22px;--wrap:1260px;--pad:28px;--hdr:76px;--ease:cubic-bezier(.2,.7,.2,1)}
/* Палитра «Графит и медь» (по умолчанию) */
:root,:root[data-palette="copper"]{
 --night:#141311;--pine:#1d1b18;--pine2:#2a2622;--dline:#38322b;--dline2:#4c443a;--d1:#1f1c19;--d2:#29251f;--d3:#332d26;--mist:#c2b8ac;--fog:#90877c;--snow:#f5f0e9;
 --phos:#df8a55;--phos2:#c9733f;--acc-hi:#eba070;--brass:#d8b273;--brass2:#a8823f;--brass-hi:#e5c48c;
 --frost:#e8e6e2;--paper:#fbfaf8;--ink:#1a1714;--text:#473f37;--steel:#7b7167;--line:#d8d2ca;--line2:#e7e2dc;--emerald:#b5612f;
 --pick-bg:#f6e5d8;--note-bg:#f7ece2;--glow:#3b2a1e;--d-input:#191715;--d-ph:#70675d;--d-foot:#0d0c0b;
 --st1:#fbfaf8;--st2:#ece8e2;--st3:#d1c9bf;--st4:#b8aea2;--art1:#e7e1d9;--art2:#f1eee9;--art3:#f8f6f3;
 --logo:#df8a55;--logo-ink:#141311;
 --hero-rgb:27,26,24;--d0-rgb:20,19,17;--d1-rgb:29,27,24;--acc-rgb:223,138,85;--snow-rgb:245,240,233;--ink-rgb:26,23,20;--link-rgb:181,97,47;--brass-rgb:216,178,115}
/* Палитра «Чертёж» */
:root[data-palette="blueprint"]{
 --night:#0a1830;--pine:#10223f;--pine2:#173057;--dline:#223c66;--dline2:#2f4d7e;--d1:#0f203b;--d2:#152b4d;--d3:#1b3459;--mist:#adbfd9;--fog:#788dab;--snow:#eef4fc;
 --phos:#ffb547;--phos2:#f29e22;--acc-hi:#ffc66e;--brass:#86d6ff;--brass2:#4fb1e6;--brass-hi:#a8e2ff;
 --frost:#e9eff7;--paper:#ffffff;--ink:#0c1a2e;--text:#33465f;--steel:#5f7190;--line:#cfdaea;--line2:#e1e8f2;--emerald:#1f5fc4;
 --pick-bg:#e2ecfb;--note-bg:#e8f0fc;--glow:#16365f;--d-input:#0b1a33;--d-ph:#5e779a;--d-foot:#061021;
 --st1:#fbfcfe;--st2:#e5ecf5;--st3:#c4d1e3;--st4:#a9bad3;--art1:#dde6f2;--art2:#edf2f9;--art3:#f7f9fc;
 --logo:#ffb547;--logo-ink:#0a1830;
 --hero-rgb:12,29,56;--d0-rgb:10,24,48;--d1-rgb:16,34,63;--acc-rgb:255,181,71;--snow-rgb:238,244,252;--ink-rgb:12,26,46;--link-rgb:31,95,196;--brass-rgb:134,214,255}
/* Палитра «Сталь и сигнал» */
:root[data-palette="steel"]{
 --night:#0f1215;--pine:#171b20;--pine2:#20262d;--dline:#2b323a;--dline2:#3b444e;--d1:#161a1f;--d2:#1d2229;--d3:#242b33;--mist:#aeb7c1;--fog:#7d8793;--snow:#f2f4f6;
 --phos:#ff6a2b;--phos2:#e8561a;--acc-hi:#ff8552;--brass:#ffc04d;--brass2:#e0a024;--brass-hi:#ffd27d;
 --frost:#e6e9ec;--paper:#ffffff;--ink:#111418;--text:#3b434c;--steel:#687380;--line:#d2d8de;--line2:#e3e7eb;--emerald:#d9501a;
 --pick-bg:#ffe8dd;--note-bg:#fff0e8;--glow:#272d35;--d-input:#12161a;--d-ph:#66717d;--d-foot:#0a0c0e;
 --st1:#fdfdfe;--st2:#e8ebee;--st3:#c9cfd6;--st4:#aeb6bf;--art1:#e2e6ea;--art2:#eef1f4;--art3:#f8f9fa;
 --logo:#ff6a2b;--logo-ink:#0f1215;
 --hero-rgb:17,20,23;--d0-rgb:15,18,21;--d1-rgb:23,27,32;--acc-rgb:255,106,43;--snow-rgb:242,244,246;--ink-rgb:17,20,24;--link-rgb:217,80,26;--brass-rgb:255,192,77}
/* Палитра «Побежалость»: графитовая сталь и цвета каления — соломенный, бронза, пурпур, синь */
:root[data-palette="temper"]{
 --night:#0d0e13;--pine:#15171e;--pine2:#1e2029;--dline:#2a2d3a;--dline2:#3b3f50;--d1:#16181f;--d2:#1d2029;--d3:#252834;--mist:#babdcd;--fog:#8a8da1;--snow:#f2f2f8;
 --phos:#b3a7ff;--phos2:#8c7cff;--acc-hi:#c9c0ff;--brass:#f2d08a;--brass2:#d99a55;--brass-hi:#f7dda7;
 --frost:#eceef3;--paper:#ffffff;--ink:#11131a;--text:#3c4150;--steel:#6a7081;--line:#d5d9e3;--line2:#e5e8ef;--emerald:#5b48d9;
 --pick-bg:#ece9ff;--note-bg:#f1efff;--glow:#231f3a;--d-input:#12141a;--d-ph:#646882;--d-foot:#08090c;
 --st1:#fdfdff;--st2:#e9ebf2;--st3:#cbd0dc;--st4:#b0b6c5;--art1:#e2e5ee;--art2:#eff1f6;--art3:#f8f9fb;
 --logo:#f2d08a;--logo-ink:#0d0e13;
 --temper:linear-gradient(100deg,#f2d08a 0%,#e0a062 20%,#c0628a 45%,#7c64e0 70%,#55b6ea 100%);
 --hero-rgb:14,15,20;--d0-rgb:13,14,19;--d1-rgb:21,23,30;--acc-rgb:179,167,255;--snow-rgb:242,242,248;--ink-rgb:17,19,26;--link-rgb:91,72,217;--brass-rgb:242,208,138}
:root[data-palette="temper"] .logo-m rect{fill:url(#fxTemperGrad)}
:root[data-palette="temper"] .btn-glow{background:var(--temper);background-size:180% 100%;background-position:0 0;color:#0d0e13;box-shadow:0 14px 40px -14px rgba(192,98,138,.55);transition:background-position .6s var(--ease),box-shadow .3s,transform .25s var(--ease)}
:root[data-palette="temper"] .btn-glow:hover{background:var(--temper);background-size:180% 100%;background-position:100% 0;box-shadow:0 18px 50px -14px rgba(124,100,224,.65)}
:root[data-palette="temper"] .hero-sub,:root[data-palette="temper"] .spec-stats b,:root[data-palette="temper"] .cc-price b,:root[data-palette="temper"] .steps li:first-child .st-n{background:var(--temper);-webkit-background-clip:text;background-clip:text;color:transparent}
:root[data-palette="temper"] #code-progress{background:var(--temper)}
:root[data-palette="temper"] .code-scenes button.active{background:var(--temper)}
:root[data-palette="temper"] .l2-tab.on{background:var(--temper);color:#0d0e13}
:root[data-palette="temper"] .l2btn{background:var(--temper);color:#0d0e13}
:root[data-palette="temper"] .l2seg button.on,:root[data-palette="temper"] .l2chips button.on{background:var(--snow);color:#0d0e13}
:root[data-palette="temper"] .l2tg.on i{background:var(--temper)}
:root[data-palette="temper"] .spec-stats{border-image:var(--temper) 1;border-top-width:2px;border-top-style:solid}
:root[data-palette="temper"] .svc-grid,:root[data-palette="temper"] .steps,:root[data-palette="temper"] .team-grid,:root[data-palette="temper"] .faq{border-top:2px solid transparent;border-image:var(--temper) 1}
:root[data-palette="temper"] .mq-track span{background:linear-gradient(var(--night),var(--night)) padding-box,var(--temper) border-box;border:1px solid transparent}
:root[data-palette="temper"] .nav a::after{background:var(--temper)}
:root[data-palette="temper"] .scn-steps li:first-child{border-image:var(--temper) 1}
:root[data-palette="temper"] .scn-steps li:first-child::before,:root[data-palette="temper"] .ms-n,:root[data-palette="temper"] .m-step span{background:var(--temper);color:#0d0e13}
:root[data-palette="temper"] .ind-more span,:root[data-palette="temper"] .art-btn span,:root[data-palette="temper"] .scn-btn span{background:var(--night);color:var(--brass)}
:root[data-palette="temper"] ::selection{background:#c9c0ff;color:#0d0e13}
/* Палитра «Август»: тёплое солнце, сталь и белый — блоки чередуются */
:root[data-palette="august"]{
 --night:#141a20;--pine:#1b232b;--pine2:#252f39;--dline:#313c47;--dline2:#43505d;--d1:#1a2128;--d2:#212a33;--d3:#29343e;--mist:#b6c0ca;--fog:#8994a0;--snow:#f5f7f9;
 --phos:#f2a65a;--phos2:#e58a45;--acc-hi:#f6ba7c;--brass:#f3cd80;--brass2:#dca451;--brass-hi:#f7dba3;
 --frost:#eceef1;--paper:#ffffff;--ink:#151b21;--text:#3e4853;--steel:#6b7682;--line:#d6dde3;--line2:#e6ebef;--emerald:#c96c28;
 --pick-bg:#fff0de;--note-bg:#fff4e6;--glow:#3d2c17;--d-input:#121820;--d-ph:#66717d;--d-foot:#0c1014;
 --st1:#ffffff;--st2:#eef1f4;--st3:#d0d7de;--st4:#b4bec8;--art1:#e6ebef;--art2:#f2f5f7;--art3:#fafbfc;
 --logo:#ff9a2e;--logo-ink:#141a20;
 --sun:linear-gradient(105deg,#f6d083 0%,#f2a65a 48%,#e58a45 100%);
 --pearl:linear-gradient(118deg,#eceef1 0%,#f4f1ee 28%,#e8edf3 56%,#f2eff4 80%,#eceef1 100%);
 --hero-rgb:22,27,33;--d0-rgb:20,26,32;--d1-rgb:27,35,43;--acc-rgb:242,166,90;--snow-rgb:245,247,249;--ink-rgb:21,27,33;--link-rgb:201,108,40;--brass-rgb:243,205,128}
:root[data-palette="august"] .logo-m rect{fill:url(#fxSunGrad)}
:root[data-palette="august"] .btn-glow{background:var(--sun);background-size:170% 100%;background-position:0 0;color:#141a20;box-shadow:0 14px 40px -14px rgba(242,166,90,.55);transition:background-position .6s var(--ease),box-shadow .3s,transform .25s var(--ease)}
:root[data-palette="august"] .btn-glow:hover{background:var(--sun);background-size:170% 100%;background-position:100% 0;box-shadow:0 0 0 6px rgba(242,166,90,.14),0 18px 50px -14px rgba(229,138,69,.65)}
:root[data-palette="august"] .hero-sub,:root[data-palette="august"] .spec-stats b,:root[data-palette="august"] .steps li:first-child .st-n{background:var(--sun);-webkit-background-clip:text;background-clip:text;color:transparent}
:root[data-palette="august"] #code-progress,:root[data-palette="august"] .code-scenes button.active,:root[data-palette="august"] .nav a::after{background:var(--sun)}
:root[data-palette="august"] .l2-tab.on,:root[data-palette="august"] .l2btn{background:var(--sun);color:#141a20}
:root[data-palette="august"] .l2seg button.on,:root[data-palette="august"] .l2chips button.on{background:var(--snow);color:#141a20}
:root[data-palette="august"] .l2tg.on i{background:var(--sun)}
:root[data-palette="august"] .spec-stats{border-top:2px solid transparent;border-image:var(--sun) 1}
:root[data-palette="august"] .scn-steps li:first-child{border-image:var(--sun) 1}
:root[data-palette="august"] .scn-steps li:first-child::before,:root[data-palette="august"] .ms-n,:root[data-palette="august"] .m-step span{background:var(--sun);color:#141a20}
:root[data-palette="august"] .mq-track span{background:var(--night)}
:root[data-palette="august"] .mq-row.rev .mq-track span{background:transparent}
:root[data-palette="august"] ::selection{background:#f6d083;color:#141a20}
/* тёмные варианты секций */
.sec-dark .search input,.sec-dark .selectw select{background:var(--pine);border-color:var(--dline);color:var(--snow)}
.sec-dark .search input::placeholder{color:var(--fog)}
.sec-dark .search svg{stroke:var(--fog)}
.sec-dark .selectw::after{border-color:var(--fog)}
.sec-dark .selectw select option{color:#111;background:#fff}
.sec-dark .ind-count,.sec-dark .ind-empty{color:var(--mist)}
.sec-dark .arrows button{background:var(--pine);border-color:var(--dline);color:var(--snow)}
.sec-dark .arrows button:hover{background:var(--phos);border-color:var(--phos);color:var(--night)}
.sec-dark .ind-track{scrollbar-color:var(--dline) transparent}
.sec-dark .industry{color:var(--ink);box-shadow:0 0 0 1px rgba(255,255,255,.04)}
.sec-dark .industry:hover{box-shadow:0 30px 70px -30px rgba(0,0,0,.8)}
.sec-dark .steps{border-top-color:var(--snow)}
.sec-dark .steps li+li{border-left-color:var(--dline)}
.sec-dark .steps h3{color:#fff}
.sec-dark .steps p{color:var(--mist)}
.sec-dark .steps .st-k{color:var(--phos)}
.sec-dark .st-n{color:var(--dline2)}
.sec-dark .steps-note{color:var(--mist);border-left-color:var(--phos)}
.sec-dark .team-grid{border-top-color:var(--snow)}
.sec-dark .team-grid article{border-bottom-color:var(--dline)}
.sec-dark .team-grid h3{color:#fff}
.sec-dark .team-grid p{color:var(--mist)}
.sec-dark .tm-n{color:var(--phos)}
.sec-dark .tm-i{background:var(--pine2)}
.sec-dark .approach{background:var(--pine);box-shadow:inset 0 0 0 1px var(--dline)}
.sec-dark .btn-line{color:var(--snow);border-color:var(--dline2)}
.sec-dark .btn-line:hover{border-color:var(--phos)}
/* солнечный блок */
.consult.sec-sun{background:var(--sun);color:#1a1206}
.consult.sec-sun::before{color:rgba(255,255,255,.18)}
.sec-sun .kicker,.sec-sun .kicker span{color:#3a2408}
.sec-sun h2{color:#140c02}
.sec-sun h2 em{color:#140c02}
.sec-sun .sec-lead{color:#3a2408}
.sec-sun .btn-glow{background:var(--night)!important;color:#fff!important;box-shadow:0 18px 40px -18px rgba(20,12,2,.6)!important}
.sec-sun .btn-ghost{color:#1a1206;border-color:rgba(26,18,6,.35);background:transparent}
.sec-sun .btn-ghost:hover{border-color:#1a1206;color:#1a1206}
.sec-sun .consult-card{background:var(--night);border-color:transparent;box-shadow:0 40px 90px -40px rgba(40,20,0,.7)}

:root[data-palette="august"] .sec-light{background:var(--pearl)}
:root[data-palette="august"] #builder{background-color:#eceef1;background-image:linear-gradient(rgba(21,27,33,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(21,27,33,.04) 1px,transparent 1px),var(--pearl);background-size:28px 28px,28px 28px,100% 100%}
:root[data-palette="august"] .industryart{background:radial-gradient(120% 100% at 50% 100%,#e3e6eb 0%,#eff0f3 50%,#f8f6f4 100%)}

.logo-m rect{fill:var(--logo)}.logo-m path{fill:var(--logo-ink)}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 8px);-webkit-text-size-adjust:100%}
body{margin:0;font-family:Manrope,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:16.5px;line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.03em;line-height:1.04;text-wrap:balance}
p,dl,dd{margin:0}
:focus-visible{outline:2px solid var(--phos2);outline-offset:3px;border-radius:8px}
::selection{background:var(--phos);color:var(--night)}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--phos);color:var(--night);padding:8px 14px;border-radius:8px;font-weight:700}
.skip:focus{left:8px}

/* ---------- кнопки ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 28px;border-radius:999px;font-size:15.5px;font-weight:700;letter-spacing:-.005em;background:var(--ink);color:#fff;border:1px solid transparent;transition:background .25s,color .25s,border-color .25s,box-shadow .3s,transform .25s var(--ease);white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:none}
.btn:disabled{opacity:.6;cursor:progress;transform:none}
.btn-sm{min-height:44px;padding:0 20px;font-size:14px}
.btn-glow{background:var(--phos);color:var(--night);box-shadow:0 0 0 0 rgba(var(--acc-rgb),.0),0 14px 40px -12px rgba(var(--acc-rgb),.55)}
.btn-glow:hover{background:var(--acc-hi);box-shadow:0 0 0 6px rgba(var(--acc-rgb),.12),0 18px 50px -12px rgba(var(--acc-rgb),.7)}
.btn-gold{background:var(--brass);color:var(--night)}
.btn-gold:hover{background:var(--brass-hi)}
.btn-light{background:var(--snow);color:var(--night)}
.btn-ghost{background:rgba(var(--snow-rgb),.04);color:var(--snow);border-color:rgba(var(--snow-rgb),.22)}
.btn-ghost:hover{border-color:var(--phos);color:#fff}
.btn-dark{background:var(--night);color:#fff}
.btn-dark:hover{background:var(--pine2)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-line:hover{border-color:var(--ink)}

/* ---------- шапка ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:50;height:var(--hdr);color:var(--snow);transition:background .35s,box-shadow .35s,height .35s}
.hdr.solid{background:rgba(var(--d0-rgb),.94);box-shadow:0 1px 0 rgba(var(--acc-rgb),.08)}
.hdr-in{height:100%;display:flex;align-items:center;gap:28px}
.logo{display:flex;align-items:center;gap:12px;flex:none}
.logo-m{width:38px;height:38px}
.logo-t{display:flex;flex-direction:column;line-height:1.05}
.logo-t b{font-size:18px;font-weight:800;letter-spacing:.14em}
.logo-t small{font-size:11px;color:var(--mist);margin-top:4px;letter-spacing:.01em}
.nav{display:flex;gap:2px;margin-left:auto}
.nav a{position:relative;padding:9px 13px;font-size:14.5px;font-weight:600;color:var(--mist);transition:color .2s}
.nav a::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:2px;border-radius:2px;background:var(--phos);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover,.nav a.on{color:#fff}
.nav a.on::after{transform:scaleX(1)}
.hdr-cta{flex:none}
.burger{display:none;width:46px;height:46px;border-radius:14px;position:relative;margin-left:auto}
.burger i{position:absolute;left:12px;right:12px;height:2px;background:currentColor;border-radius:2px;transition:transform .25s}
.burger i:first-child{top:18px}.burger i:last-child{top:26px}
.menu-open .burger i:first-child{transform:translateY(4px) rotate(45deg)}
.menu-open .burger i:last-child{transform:translateY(-4px) rotate(-45deg)}

/* ---------- первый экран: сцена на весь экран ---------- */
.hero{--h-bg:rgb(var(--hero-rgb));--h-ink:var(--snow);--h-text:var(--mist);--h-muted:var(--fog);--h-faint:var(--dline2);--h-line:var(--dline);--h-ctrl:var(--pine);--h-accent:var(--brass);
 position:relative;min-height:max(720px,100svh);background:var(--h-bg);color:var(--snow);overflow:hidden;isolation:isolate;display:flex}
#industry-code{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero-shade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:
 linear-gradient(90deg,rgba(var(--hero-rgb),.96) 0%,rgba(var(--hero-rgb),.86) 24%,rgba(var(--hero-rgb),.35) 46%,rgba(var(--hero-rgb),0) 60%),
 linear-gradient(0deg,rgba(var(--hero-rgb),.95) 0%,rgba(var(--hero-rgb),.55) 16%,rgba(var(--hero-rgb),0) 34%),
 linear-gradient(180deg,rgba(var(--hero-rgb),.7) 0%,rgba(var(--hero-rgb),0) 18%)}
.hero-in{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:36px;padding-top:calc(var(--hdr) + clamp(30px,6vh,84px));padding-bottom:28px;min-height:100%;flex:1;pointer-events:none}
.hero-in a,.hero-in button{pointer-events:auto}
.hero-copy{max-width:660px}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:15px;font-weight:600;color:var(--h-accent)}
.eyebrow::before{content:"";width:34px;height:1px;background:currentColor;opacity:.7}
.hero h1{font-size:clamp(44px,5.3vw,82px);margin:20px 0 20px;letter-spacing:-.045em;line-height:.98;font-weight:800;color:#fff;text-shadow:0 2px 30px rgba(var(--d0-rgb),.6)}
.hero-sub{font-size:clamp(20px,1.8vw,26px);font-weight:700;letter-spacing:-.02em;color:var(--phos);margin-bottom:12px}
.hero-lead{font-size:clamp(16.5px,1.3vw,19px);line-height:1.6;color:var(--h-text);max-width:500px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;border-top:1px solid rgba(var(--acc-rgb),.12);padding-top:22px}
.hero-facts{display:grid;grid-template-columns:repeat(3,minmax(0,190px));gap:28px}
.hero-facts dt{font-size:13px;font-weight:600;color:var(--h-accent);margin-bottom:6px}
.hero-facts dd{font-size:14.5px;font-weight:700;line-height:1.4;color:var(--h-ink)}
.code-hud{width:min(400px,40%);display:grid;gap:6px;text-align:right;justify-items:end}
.code-cap{position:absolute;right:var(--pad);top:calc(var(--hdr) + 26px);max-width:260px;text-align:right;font-size:13.5px;line-height:1.45;color:var(--h-muted)}
.code-line{display:flex;align-items:center;gap:10px}
.code-sector{padding:4px 11px;border:1px solid rgba(var(--brass-rgb),.35);border-radius:999px;color:var(--h-accent);font-size:12.5px;font-weight:700}
.code-counter{font-size:13px;font-weight:700;color:var(--h-muted);font-variant-numeric:tabular-nums}
.code-title b{font-size:clamp(24px,2.2vw,32px);font-weight:800;letter-spacing:-.03em;color:#fff}
.code-dirs{display:block;font-size:12.5px;color:var(--h-muted);line-height:1.45;margin-top:4px;max-width:380px;margin-left:auto}
.code-ctrl{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap;justify-content:flex-end}
.code-ctrl>button{width:38px;height:38px;border-radius:50%;border:1px solid rgba(var(--snow-rgb),.16);background:rgba(var(--d0-rgb),.7);color:var(--h-ink);font-size:15px;line-height:1;display:grid;place-items:center;transition:border-color .2s,background .2s}
.code-ctrl>button:hover{border-color:var(--phos);background:rgba(var(--acc-rgb),.08)}
.code-scenes{display:flex;flex-wrap:wrap;gap:5px;margin-left:8px}
.code-scenes button{width:7px;height:7px;border-radius:99px;background:var(--h-faint);transition:width .35s var(--ease),background .3s}
.code-scenes button.active{width:22px;background:var(--phos)}
.code-bar{width:100%;height:2px;background:rgba(var(--snow-rgb),.1);border-radius:2px;overflow:hidden;margin-top:6px}
#code-progress{display:block;height:100%;background:linear-gradient(90deg,var(--h-accent),var(--phos));transform-origin:0 50%;transform:scaleX(0)}

/* ---------- секции ---------- */
.sec{position:relative;padding:clamp(84px,10vw,140px) 0;background:var(--paper)}
.sec-light{background:var(--frost)}
.sec-dark{background:var(--night);color:var(--snow)}
.sec-head{max-width:820px;margin-bottom:clamp(36px,4.4vw,60px)}
.kicker{display:flex;align-items:baseline;gap:10px;font-size:15px;font-weight:600;color:var(--steel)}
.kicker span{color:var(--emerald);font-weight:800;font-variant-numeric:tabular-nums}
.sec-dark .kicker{color:var(--mist)}
.sec-dark .kicker span{color:var(--phos)}
.sec-head h2,.consult h2,.ct-copy h2{font-size:clamp(34px,4.3vw,62px);margin:18px 0 20px;letter-spacing:-.04em}
.sec-head h2 em,.consult h2 em,.ct-copy h2 em{font-style:normal;font-weight:400;letter-spacing:-.035em}
.sec-lead{font-size:clamp(16.5px,1.3vw,19px);line-height:1.62;color:var(--text);max-width:680px}
.sec-dark .sec-lead{color:var(--mist)}
.sec-head-row{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:32px}
.sec-head-row>div{max-width:800px}
.sec-head-row .btn{flex:none}
[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

/* ---------- специализация ---------- */
.spec{padding-bottom:clamp(60px,6vw,90px);background-color:var(--paper);background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:56px 56px;background-position:-1px -1px}
.spec::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 90% at 30% 40%,rgba(255,255,255,.95),rgba(255,255,255,.55) 60%,rgba(255,255,255,.2));pointer-events:none}
.spec>*{position:relative}
.spec-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.spec-in .sec-head{margin-bottom:0}
.spec-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink)}
.spec-stats li{padding:18px 18px 0 0}
.spec-stats li+li{padding-left:18px;border-left:1px solid var(--line)}
.spec-stats span{display:block;font-size:13.5px;font-weight:700;color:var(--emerald)}
.spec-stats b{display:block;font-size:clamp(52px,5.4vw,84px);font-weight:800;letter-spacing:-.06em;line-height:.9;margin:16px 0 10px}
.spec-stats small{display:block;font-size:13.5px;color:var(--steel);line-height:1.35}
.marquee{display:grid;gap:10px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-row{overflow:hidden}
.mq-track{display:flex;gap:10px;width:max-content;animation:mq 90s linear infinite}
.mq-row.rev .mq-track{animation-direction:reverse;animation-duration:100s}
.mq-track span{flex:none;padding:11px 20px;border-radius:999px;font-size:16px;font-weight:700;color:var(--snow);background:var(--night);white-space:nowrap}
.mq-row.rev .mq-track span{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- отрасли ---------- */
.ind-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:26px}
.search{position:relative;flex:1 1 280px;max-width:430px}
.search svg{position:absolute;left:18px;top:50%;width:18px;height:18px;transform:translateY(-50%);fill:none;stroke:var(--steel);stroke-width:2;stroke-linecap:round}
.search input{width:100%;height:52px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:0 18px 0 46px;font-size:15.5px;outline:none;transition:border-color .2s,box-shadow .2s}
.search input:focus{border-color:var(--emerald);box-shadow:0 0 0 4px rgba(var(--link-rgb),.1)}
.selectw{position:relative}
.selectw::after{content:"";position:absolute;right:18px;top:50%;width:7px;height:7px;border-right:2px solid var(--steel);border-bottom:2px solid var(--steel);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.selectw select{appearance:none;-webkit-appearance:none;height:52px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:0 44px 0 20px;font-size:15.5px;font-weight:600;outline:none;cursor:pointer;width:100%}
.selectw select:focus{border-color:var(--emerald)}
.ind-count{font-size:14.5px;color:var(--steel);margin-left:4px}
.arrows{display:flex;gap:8px;margin-left:auto}
.arrows button{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:18px;transition:background .2s,color .2s,border-color .2s}
.arrows button:hover{background:var(--night);color:var(--phos);border-color:var(--night)}
.track-wrap{position:relative}
.ind-track{--edge:max(var(--pad),calc((100vw - var(--wrap))/2 + var(--pad)));display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--edge);padding:8px var(--edge) 28px;scrollbar-width:thin;scrollbar-color:var(--line) transparent;outline:none}
.ind-track::-webkit-scrollbar{height:6px}.ind-track::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px}
.industry{position:relative;flex:0 0 clamp(290px,26vw,344px);scroll-snap-align:start;display:flex;flex-direction:column;background:#fff;border-radius:26px;padding:12px 12px 16px;transition:transform .35s var(--ease),box-shadow .35s}
.industry:hover{transform:translateY(-4px);box-shadow:0 30px 60px -34px rgba(var(--d0-rgb),.45)}
.industryart{position:relative;height:186px;border-radius:18px;background:radial-gradient(120% 100% at 50% 100%,var(--art1) 0%,var(--art2) 55%,var(--art3) 100%);overflow:hidden;margin-bottom:16px}
.ind-top{position:absolute;left:24px;right:24px;top:22px;z-index:1;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.ind-num{font-size:13px;font-weight:800;color:var(--emerald);font-variant-numeric:tabular-nums}
.ind-cat{font-size:12px;font-weight:700;color:var(--steel);background:rgba(255,255,255,.85);border-radius:999px;padding:4px 10px}
.indsvg{width:100%;height:100%}
.indsvg .obj{transform-box:fill-box;transform-origin:50% 100%}
.industry:hover .indsvg .obj{animation:indFloat 2.4s ease-in-out infinite}
.indsvg .glint{transform-box:view-box}
.industry:hover .indsvg .glint{animation:glint 1.6s ease-out 1}
@keyframes indFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes glint{0%{transform:translateX(0);opacity:0}10%{opacity:1}90%{transform:translateX(640px);opacity:.9}100%{transform:translateX(640px);opacity:0}}
.industry h3{font-size:20px;letter-spacing:-.025em;padding:0 8px}
.ind-prod{font-size:14px;color:var(--steel);margin:6px 0 14px;line-height:1.45;padding:0 8px}
.ind-sol{list-style:none;margin:0 0 16px;display:flex;flex-wrap:wrap;gap:6px;padding:0 8px}
.ind-sol li{font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--frost);color:var(--text)}
.ind-more,.art-btn,.scn-btn{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:14px 8px 0;border-top:1px solid var(--line2);font-size:14.5px;font-weight:700;color:var(--ink);text-align:left}
.ind-more span,.art-btn span,.scn-btn span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--night);color:var(--phos);transition:transform .3s var(--ease),background .25s}
.ind-more:hover span,.art-btn:hover span,.scn-btn:hover span{transform:translateX(3px);background:var(--emerald);color:#fff}
.ind-empty{color:var(--steel);padding-top:8px}

/* ---------- направления: строки ---------- */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:56px;border-top:2px solid var(--ink)}
.svc{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:18px;align-items:start;padding:28px 0 30px;border-bottom:1px solid var(--line)}
.svc-hit{position:absolute;inset:0;z-index:1;border-radius:4px}
.svc-n{font-size:15px;font-weight:800;color:var(--emerald);padding-top:6px;font-variant-numeric:tabular-nums}
.svc h3{font-size:clamp(22px,2vw,28px);letter-spacing:-.03em;transition:color .25s}
.svc-short{font-size:15px;font-weight:700;color:var(--text);margin-top:8px}
.svc-desc{font-size:14.5px;color:var(--steel);line-height:1.55;margin-top:8px;max-width:520px}
.svc-side{display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.svc-cnt{font-size:13px;font-weight:700;color:var(--steel);font-variant-numeric:tabular-nums}
.svc-go{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);transition:background .25s,border-color .25s,transform .3s var(--ease)}
.svc-go svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.svc:hover .svc-go{background:var(--night);border-color:var(--night);color:var(--phos);transform:rotate(-45deg)}
.svc:hover h3{color:var(--emerald)}

/* ---------- конструкторы (3D) ---------- */
.lab-root{min-height:720px}
.lab-note{margin-top:16px;font-size:13.5px;color:var(--fog)}
.l2{background:var(--pine);color:var(--snow);border-radius:30px;overflow:hidden;box-shadow:0 0 0 1px var(--dline),0 50px 120px -50px rgba(0,0,0,.9)}
.l2:fullscreen{border-radius:0;display:flex;flex-direction:column}
.l2:fullscreen .l2-main{flex:1;min-height:0}
.l2:fullscreen .l2-stage{min-height:0;height:100%}
.l2-tabs{display:grid;gap:10px;padding:16px 20px;border-bottom:1px solid var(--dline)}
.l2-tabs::-webkit-scrollbar{display:none}
.l2-grp{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:14px}
.l2-gt{font-size:13px;font-weight:700;color:var(--fog);line-height:1.25}
.l2-gb{display:flex;flex-wrap:wrap;gap:6px}
.l2-tab{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 15px 0 12px;border-radius:999px;font-size:13.5px;font-weight:700;white-space:nowrap;color:var(--mist);box-shadow:inset 0 0 0 1px var(--dline);transition:background .25s,color .25s,box-shadow .25s}
.l2-tab svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.l2-tab:hover{color:#fff;box-shadow:inset 0 0 0 1px var(--dline2)}
.l2-tab.on{background:var(--phos);color:var(--night);box-shadow:none}
.l2-main{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 380px}
.l2-stage{position:relative;height:clamp(600px,74vh,780px);background:radial-gradient(115% 95% at 36% 28%,var(--st1) 0%,var(--st2) 42%,var(--st3) 78%,var(--st4) 100%);overflow:hidden}
.l2-stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 70% at 36% 115%,rgba(var(--d1-rgb),.18),transparent 60%)}
.l2-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab}
.l2-stage.grab .l2-canvas{cursor:grabbing}
.l2-stage.swap .l2-canvas{animation:swapIn .7s var(--ease)}
@keyframes swapIn{from{opacity:.25;filter:blur(6px)}to{opacity:1;filter:none}}
.l2-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.l2tag{position:absolute;left:0;top:0;pointer-events:none;transition:opacity .25s;will-change:transform;white-space:nowrap;font-size:12px;font-weight:700;line-height:1.2}
.l2tag.flow{translate:-50% calc(-100% - 10px);background:rgba(var(--d0-rgb),.9);color:#fff;padding:6px 10px;border-radius:9px;box-shadow:0 8px 20px -10px rgba(0,0,0,.6)}
.l2tag.flow::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:10px;background:rgba(var(--d0-rgb),.55)}
.l2tag.flow b{color:var(--phos);margin-left:6px}
.l2tag.pin{translate:-50% calc(-100% - 6px);display:flex;align-items:center;gap:6px;background:#fff;color:var(--ink);border-radius:999px;padding:4px 10px 4px 4px;box-shadow:0 8px 22px -10px rgba(0,0,0,.45)}
.l2tag.pin i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--night);color:#fff;font-size:11px}
.l2tag.pin span{display:none}
.l2tag.pin.on{background:var(--night);color:#fff}
.l2tag.pin.on i{background:var(--phos);color:var(--night)}
.l2tag.pin.on span{display:inline}
.l2-badge{position:absolute;left:24px;top:22px;z-index:2;display:flex;flex-direction:column;pointer-events:none}
.l2-badge b{font-size:clamp(26px,2.6vw,40px);font-weight:800;letter-spacing:-.04em;color:var(--ink);line-height:1}
.l2-badge span{font-size:14px;font-weight:600;color:var(--steel);margin-top:6px}
.l2-tools{position:absolute;left:24px;bottom:22px;z-index:2;display:flex;gap:6px}
.l2-tools button{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.88);color:var(--ink);display:grid;place-items:center;box-shadow:0 6px 18px -10px rgba(0,0,0,.4);transition:background .2s,color .2s,transform .2s}
.l2-tools button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.l2-tools button:hover{transform:translateY(-2px)}
.l2-tools button.on{background:var(--night);color:var(--phos)}
.l2-hint{position:absolute;left:calc(24px + 5*48px + 10px);bottom:31px;z-index:2;font-size:12.5px;font-weight:600;color:var(--steel);pointer-events:none;white-space:nowrap}
.l2-loading{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(115% 95% at 36% 28%,var(--st1) 0%,var(--st2) 42%,var(--st3) 100%);color:var(--steel);font-size:14.5px;font-weight:600;transition:opacity .6s;text-align:center;padding:20px}
.l2-loading i{width:38px;height:38px;border-radius:50%;border:3px solid rgba(var(--ink-rgb),.12);border-top-color:var(--emerald);animation:spin 1s linear infinite}
.l2-loading.done{opacity:0;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.l2-panel{position:relative;z-index:4;max-height:clamp(600px,74vh,780px);display:flex;flex-direction:column;background:var(--pine);border-left:1px solid var(--dline);overflow:auto;padding:24px 22px 18px;scrollbar-width:thin;scrollbar-color:var(--dline) transparent}
.l2-kicker{display:block;font-size:13px;font-weight:700;color:var(--brass)}
.l2-title{font-size:24px;margin:10px 0 10px;letter-spacing:-.03em;color:#fff}
.l2-lead{font-size:14px;color:var(--mist);line-height:1.55}
.l2-controls{margin:22px 0 4px}
.l2f{margin-bottom:18px}
.l2l{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;font-weight:700;color:var(--fog);margin-bottom:9px}
.l2l em{font-style:normal;color:#fff;font-size:13.5px;font-weight:700;text-align:right}
.l2seg{display:flex;flex-wrap:wrap;gap:6px}
.l2seg button{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:6px 12px;border-radius:12px;background:rgba(var(--snow-rgb),.05);box-shadow:inset 0 0 0 1px var(--dline);font-size:13px;font-weight:700;color:var(--mist);transition:background .2s,color .2s,box-shadow .2s}
.l2seg button i{width:10px;height:10px;border-radius:50%;flex:none}
.l2seg button:hover{color:#fff;box-shadow:inset 0 0 0 1px var(--dline2)}
.l2seg button.on{background:var(--phos);color:var(--night);box-shadow:none}
.l2sw{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.l2sw button{width:32px;height:32px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--pine),0 0 0 3px var(--dline2);transition:box-shadow .2s,transform .2s}
.l2sw button:hover{transform:scale(1.1)}
.l2sw button.on{box-shadow:0 0 0 2px var(--pine),0 0 0 4px var(--phos)}
.l2pick{position:relative;width:32px;height:32px;border-radius:50%;background:conic-gradient(#e74c3c,#f1c40f,#2ecc71,#1abc9c,#3498db,#9b59b6,#e74c3c);box-shadow:0 0 0 2px var(--pine),0 0 0 3px var(--dline2);cursor:pointer}
.l2pick input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.l2f input[type=range]{width:100%;accent-color:var(--phos);height:22px;cursor:pointer}
.l2tgs{display:flex;flex-wrap:wrap;gap:8px}
.l2tg{display:inline-flex;align-items:center;gap:10px;min-height:38px;padding:0 14px 0 9px;border-radius:999px;background:rgba(var(--snow-rgb),.05);box-shadow:inset 0 0 0 1px var(--dline);font-size:13px;font-weight:700;color:var(--mist)}
.l2tg i{position:relative;width:32px;height:19px;border-radius:99px;background:var(--dline);transition:background .2s;flex:none}
.l2tg i::after{content:"";position:absolute;left:2px;top:2px;width:15px;height:15px;border-radius:50%;background:var(--mist);transition:transform .25s var(--ease),background .2s}
.l2tg.on{color:#fff}
.l2tg.on i{background:var(--phos)}
.l2tg.on i::after{transform:translateX(13px);background:var(--night)}
.l2list{display:grid;gap:6px}
.l2list button{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:10px;text-align:left;padding:9px 11px;border-radius:13px;background:rgba(var(--snow-rgb),.04);box-shadow:inset 0 0 0 1px var(--dline);font-size:13px;font-weight:600;color:var(--snow);transition:background .2s,box-shadow .2s}
.l2list button i{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--d3);font-size:11px;font-weight:800;color:var(--mist)}
.l2list button small{font-size:11px;font-weight:700;color:var(--fog);font-variant-numeric:tabular-nums}
.l2list button:hover{background:rgba(var(--snow-rgb),.07)}
.l2list button.on{box-shadow:inset 0 0 0 1px var(--phos);background:rgba(var(--acc-rgb),.07)}
.l2list button.on i{background:var(--phos);color:var(--night)}
.l2chips{display:flex;flex-wrap:wrap;gap:6px}
.l2chips button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px 0 10px;border-radius:999px;background:rgba(var(--snow-rgb),.05);box-shadow:inset 0 0 0 1px var(--dline);font-size:12.5px;font-weight:700;color:var(--mist)}
.l2chips button i{width:10px;height:10px;border-radius:50%;flex:none}
.l2chips button.on{background:var(--phos);color:var(--night);box-shadow:none}
.l2card{background:linear-gradient(160deg,var(--d2),var(--d1));border-radius:18px;padding:18px 18px 14px;margin-top:6px;box-shadow:inset 0 0 0 1px rgba(var(--acc-rgb),.1)}
.l2card>b{display:block;font-size:22px;font-weight:800;letter-spacing:-.03em;color:#fff;margin-bottom:2px}
.l2muted{display:block;font-size:12.5px;color:var(--fog);line-height:1.45;margin:3px 0 8px}
.l2p{font-size:13.5px;color:var(--mist);line-height:1.55;margin:6px 0 8px}
.l2rows{margin:6px 0 0}
.l2rows div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-top:1px dashed var(--dline)}
.l2rows dt{font-size:13px;color:var(--fog)}
.l2rows dd{margin:0;font-size:13px;font-weight:700;text-align:right;color:#fff}
.l2btn{display:block;width:100%;margin-top:14px;min-height:46px;border-radius:13px;background:var(--phos);color:var(--night);font-size:14px;font-weight:800;transition:background .2s}
.l2btn.on{background:var(--brass)}
.l2bars{display:grid;gap:9px;margin:14px 0 8px}
.l2bars>div{display:grid;grid-template-columns:76px 1fr 46px 56px;align-items:center;gap:8px;font-size:12.5px}
.l2bars>div>span{color:var(--mist);font-weight:600}
.l2bars i{display:block;height:8px;border-radius:99px;background:var(--dline);overflow:hidden}
.l2bars u{display:block;height:100%;border-radius:99px;transition:width .5s var(--ease)}
.l2bars b{text-align:right;font-weight:800;color:#fff}
.l2bars small{text-align:right;color:var(--fog);font-size:11.5px}
.l2-cta{margin-top:auto;padding-top:18px;border-top:1px solid var(--dline)}
.l2-cta .btn{width:100%;white-space:normal;text-align:center;line-height:1.25;min-height:50px;padding:10px 18px}
.l2-cta small{display:block;font-size:12px;color:var(--fog);text-align:center;margin-top:9px;line-height:1.45}

/* ---------- сценарии ---------- */
.scn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.scn{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border-radius:26px;padding:28px 26px 22px;transition:transform .35s var(--ease),box-shadow .35s}
.scn:hover{transform:translateY(-4px);box-shadow:0 30px 60px -36px rgba(var(--d0-rgb),.45)}
.scn-top{display:flex;align-items:center;gap:10px;width:100%;margin-bottom:18px;flex-wrap:wrap}
.scn-n{font-size:14px;font-weight:800;color:var(--emerald)}
.scn-ind{font-size:13px;font-weight:700;color:var(--ink)}
.scn-w{margin-left:auto;font-size:13px;font-weight:700;color:var(--steel);white-space:nowrap;background:var(--frost);border-radius:999px;padding:4px 10px}
.scn h3{font-size:23px;margin-bottom:10px;letter-spacing:-.03em}
.scn p{font-size:15px;color:var(--text);line-height:1.55}
.scn-steps{list-style:none;padding:0;margin:20px 0 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;width:100%}
.scn-steps li{position:relative;font-size:12.5px;font-weight:700;color:var(--text);padding-top:16px;border-top:2px solid var(--line2)}
.scn-steps li:first-child{border-color:var(--emerald)}
.scn-steps li::before{content:"";position:absolute;left:0;top:-6px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px var(--line)}
.scn-steps li:first-child::before{box-shadow:none;background:var(--emerald)}
.scn:hover .scn-steps li{border-color:var(--emerald);transition:border-color .3s}
.scn:hover .scn-steps li:nth-child(2){transition-delay:.08s}
.scn:hover .scn-steps li:nth-child(3){transition-delay:.16s}
.scn:hover .scn-steps li:nth-child(4){transition-delay:.24s}

/* ---------- шаги ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:2px solid var(--ink)}
.steps li{position:relative;padding:28px 22px 0 0}
.steps li+li{padding-left:22px;border-left:1px solid var(--line)}
.st-n{display:block;font-size:clamp(40px,3.6vw,56px);font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--line);margin-bottom:22px;font-variant-numeric:tabular-nums}
.steps li:first-child .st-n{color:var(--emerald)}
.steps h3{font-size:21px;margin-bottom:6px;letter-spacing:-.02em}
.steps .st-k{font-size:14px;font-weight:700;color:var(--emerald);margin-bottom:10px}
.steps p{font-size:15px;color:var(--text);line-height:1.55}
.steps-note{margin-top:40px;font-size:16px;font-weight:600;color:var(--text);padding-left:18px;border-left:3px solid var(--emerald)}

/* ---------- консультация ---------- */
.consult{background:radial-gradient(1000px 600px at 85% 15%,var(--glow) 0%,var(--night) 65%);overflow:hidden}
.consult::before{content:"$200";position:absolute;right:-2vw;bottom:-6vw;font-size:clamp(160px,26vw,420px);font-weight:800;letter-spacing:-.07em;line-height:1;color:rgba(var(--acc-rgb),.035);pointer-events:none}
.consult-in{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.consult-card{background:rgba(var(--d1-rgb),.85);border:1px solid var(--dline);border-radius:28px;padding:32px}
.cc-price{display:flex;align-items:baseline;gap:14px;padding-bottom:20px}
.cc-price b{font-size:clamp(56px,6vw,84px);font-weight:800;letter-spacing:-.05em;color:var(--brass);line-height:1}
.cc-price span{color:var(--mist);font-weight:600}
.cc-note{margin-top:18px;font-size:14px;color:var(--fog)}
.consult-list{list-style:none;margin:0;padding:0}
.consult-list li{position:relative;padding:16px 0 16px 30px;border-top:1px solid var(--dline);font-size:16.5px;font-weight:700;color:#fff}
.consult-list li::before{content:"";position:absolute;left:0;top:23px;width:14px;height:8px;border-left:2px solid var(--phos);border-bottom:2px solid var(--phos);transform:rotate(-45deg)}
.consult-list li:last-child{border-bottom:1px solid var(--dline)}
.consult-list b{font-size:16.5px;color:#fff}
.consult-list span{color:var(--mist);font-size:15px;line-height:1.55}

/* ---------- состав проекта ---------- */
#builder{background-color:var(--frost);background-image:linear-gradient(rgba(var(--ink-rgb),.045) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--ink-rgb),.045) 1px,transparent 1px);background-size:28px 28px}
.bld{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:28px;align-items:start}
.brief{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px;padding:24px;background:#fff;border-radius:24px}
.brief-t{grid-column:1/-1;font-size:18px;font-weight:800;letter-spacing:-.02em}
.fld{display:flex;flex-direction:column;gap:8px}
.fld>span{font-size:13.5px;font-weight:700;color:var(--steel)}
.brief .selectw select{background:var(--frost);border-color:transparent}
.pk{background:#fff;border-radius:20px;margin-bottom:10px;overflow:hidden}
.pk summary{display:flex;align-items:center;gap:14px;padding:18px 20px;cursor:pointer;list-style:none;user-select:none}
.pk summary::-webkit-details-marker{display:none}
.pk summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--steel);border-bottom:2px solid var(--steel);transform:rotate(45deg) translateY(-2px);transition:transform .25s;margin-left:6px}
.pk[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.pk-n{font-size:14px;font-weight:800;color:var(--emerald)}
.pk summary b{font-size:17px;letter-spacing:-.01em}
.pk summary em{margin-left:auto;font-style:normal;font-size:13px;font-weight:700;color:var(--steel);font-variant-numeric:tabular-nums}
.pk-items{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 14px 16px}
.pk-i{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 9px 9px 13px;border-radius:13px;background:var(--frost);box-shadow:inset 0 0 0 1px transparent;transition:box-shadow .2s,background .2s}
.pk-i:has(input:checked){background:var(--pick-bg);box-shadow:inset 0 0 0 1px rgba(var(--link-rgb),.35)}
.pk-i label{display:flex;align-items:center;gap:11px;cursor:pointer;font-size:14px;font-weight:600;flex:1;min-width:0}
.pk-i input{width:18px;height:18px;accent-color:var(--emerald);flex:none;cursor:pointer}
.info{flex:none;width:28px;height:28px;border-radius:50%;background:#fff;font:800 12px Georgia,serif;font-style:italic;color:var(--steel);display:grid;place-items:center;transition:background .2s,color .2s}
.info:hover{background:var(--night);color:var(--phos)}
.bld-side{position:sticky;top:calc(var(--hdr) + 16px)}
.sum{background:var(--night);color:var(--snow);border-radius:26px;padding:26px;box-shadow:0 40px 80px -40px rgba(var(--d0-rgb),.6)}
.sum-k{font-size:20px;font-weight:800;letter-spacing:-.02em;color:#fff}
.sum-c{font-size:14.5px;color:var(--mist);margin:8px 0 16px;line-height:1.5}
.sum-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-top:1px solid var(--dline);font-weight:700}
.sum-row b{color:var(--brass);font-size:19px}
.sum-row2{border-bottom:1px solid var(--dline)}
.sum-row2 b{font-size:15px;color:var(--phos)}
.sum-list{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--dline) transparent}
.sum-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--dline);font-size:14px;color:var(--mist)}
.sum-list li span{color:var(--snow)}
.sum-list li button{flex:none;width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--dline);color:var(--fog);font-size:16px;line-height:1;transition:color .2s,box-shadow .2s}
.sum-list li button:hover{color:#fff;box-shadow:inset 0 0 0 1px var(--phos)}
.sum-act{display:grid;gap:8px;margin-top:20px}
.sum .btn-dark{background:var(--phos);color:var(--night)}
.sum .btn-dark:hover{background:var(--acc-hi)}
.sum .btn-line{color:var(--snow);border-color:var(--dline)}
.sum .btn-line:hover{border-color:var(--phos)}
.sum-note{font-size:12.5px;color:var(--fog);margin-top:14px;line-height:1.5}

/* ---------- команда ---------- */
.team-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px 64px;align-items:start}
.team-in .sec-head{grid-row:span 2;margin-bottom:0}
.team-in .sec-lead{margin-bottom:28px}
.team-grid{display:grid;gap:0;border-top:2px solid var(--ink)}
.team-grid article{position:relative;display:grid;grid-template-columns:54px 1fr;column-gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}
.tm-n{position:absolute;right:0;top:26px;font-size:14px;font-weight:800;color:var(--emerald)}
.tm-i{grid-row:span 2;width:54px;height:54px;border-radius:16px;background:var(--night);display:grid;place-items:center}
.tm-i svg{width:24px;height:24px;fill:none;stroke:var(--phos);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.team-grid h3{font-size:21px;letter-spacing:-.02em;margin:4px 40px 6px 0}
.team-grid p{font-size:15px;color:var(--text);line-height:1.55}
.approach{background:var(--night);color:var(--snow);border-radius:26px;padding:28px}
.approach .kicker{color:var(--mist)}
.approach .kicker span{color:var(--phos)}
.approach-t{font-size:19px;font-weight:700;line-height:1.5;margin:14px 0 18px;letter-spacing:-.015em}
.approach ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.approach li{font-size:13.5px;font-weight:700;padding:8px 14px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--dline);color:var(--mist)}

/* ---------- статьи ---------- */
.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.art{display:flex;flex-direction:column;background:#fff;border-radius:26px;padding:28px 26px 22px;transition:transform .35s var(--ease),box-shadow .35s}
.art:hover{transform:translateY(-4px);box-shadow:0 30px 60px -36px rgba(var(--d0-rgb),.45)}
.art-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}
.art-tag{font-size:13px;font-weight:700;color:var(--emerald)}
.art-n{font-size:13px;font-weight:800;color:var(--line)}
.art h3{font-size:24px;margin-bottom:14px;letter-spacing:-.03em}
.art p{font-size:15px;color:var(--text);line-height:1.55;margin-bottom:22px}

/* ---------- вопросы ---------- */
.faq-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}
.faq{border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;cursor:pointer;list-style:none;font-size:18.5px;font-weight:700;letter-spacing:-.015em;transition:color .2s}
.faq summary:hover{color:var(--emerald)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:36px;height:36px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line);display:grid;place-items:center;font-size:21px;font-weight:500;transition:transform .3s var(--ease),background .25s,color .25s}
.faq details[open] summary::after{transform:rotate(45deg);background:var(--night);color:var(--phos);box-shadow:none}
.faq details p{padding:0 56px 24px 0;color:var(--text);line-height:1.7}

/* ---------- контакты ---------- */
#contacts{background:radial-gradient(900px 600px at 15% 100%,var(--glow) 0%,var(--night) 60%)}
.ct-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:start}
.ct-points{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:14px}
.ct-points li{position:relative;padding-left:30px;color:var(--mist)}
.ct-points li::before{content:"";position:absolute;left:0;top:.38em;width:16px;height:9px;border-left:2px solid var(--phos);border-bottom:2px solid var(--phos);transform:rotate(-45deg)}
.ct-form{background:rgba(var(--d1-rgb),.9);border:1px solid var(--dline);border-radius:28px;padding:30px;display:grid;gap:15px}
.ct-head b{display:block;font-size:22px;font-weight:800;color:#fff;letter-spacing:-.02em}
.ct-head span{display:block;font-size:14.5px;color:var(--mist);margin-top:4px}
.ct-form .fld>span{color:var(--fog)}
.ct-form input,.ct-form textarea{width:100%;background:var(--d-input);border:1px solid var(--dline);border-radius:14px;padding:15px 16px;color:var(--snow);font-size:15.5px;outline:none;transition:border-color .2s,box-shadow .2s}
.ct-form textarea{resize:vertical;min-height:130px;line-height:1.5}
.ct-form input::placeholder,.ct-form textarea::placeholder{color:var(--d-ph)}
.ct-form input:focus,.ct-form textarea:focus{border-color:var(--phos);box-shadow:0 0 0 4px rgba(var(--acc-rgb),.08)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ct-warn{font-size:12.5px;color:var(--fog);line-height:1.45}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.ct-foot{display:flex;align-items:center;gap:18px;margin-top:6px}
.ct-foot small{font-size:12.5px;color:var(--fog);line-height:1.45}
.ct-form .btn-gold{background:var(--phos)}
.ct-form .btn-gold:hover{background:var(--acc-hi)}

/* ---------- подвал ---------- */
.ftr{background:var(--d-foot);color:var(--mist);padding:48px 0}
.ftr-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px}
.ftr .logo{color:var(--snow)}
.ftr-nav{display:flex;flex-wrap:wrap;gap:6px 24px;font-size:14.5px;font-weight:600}
.ftr-nav a:hover{color:var(--phos)}
.ftr-c,.ftr-s{font-size:13.5px;color:var(--fog)}
.ftr-s{margin-left:auto}

/* ---------- модальное окно ---------- */
.modal{width:min(900px,calc(100% - 28px));max-height:min(88vh,940px);border:0;border-radius:28px;padding:0;background:#fff;color:var(--ink);overflow:hidden;box-shadow:0 50px 120px -30px rgba(0,0,0,.6)}
.modal::backdrop{background:rgba(var(--d0-rgb),.7)}
.modal[open]{animation:mIn .35s var(--ease)}
@keyframes mIn{from{opacity:0;transform:translateY(18px) scale(.985)}}
.modalclose{position:absolute;right:16px;top:16px;z-index:2;width:44px;height:44px;border-radius:50%;background:var(--frost);font-size:24px;line-height:1;display:grid;place-items:center;transition:background .2s,color .2s}
.modalclose:hover{background:var(--night);color:var(--phos)}
.modal-c{max-height:min(88vh,940px);overflow:auto;padding:42px 46px 36px}
.modal-c .eyebrow{color:var(--emerald);padding-right:50px}
.modal-c .eyebrow::before{display:none}
.modal-c h2{font-size:clamp(28px,3.2vw,40px);margin:12px 50px 14px 0;letter-spacing:-.035em}
.modal-c>p,.modal-c li{color:var(--text);line-height:1.65}
.modal-c h3{font-size:19px;margin:30px 0 12px;letter-spacing:-.015em}
.modal-c ol{padding-left:20px;margin:0;display:grid;gap:6px}
.m-prod,.m-lead{font-size:17.5px}
.modgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.modcard{background:var(--frost);border-radius:16px;padding:18px;font-size:14.5px;color:var(--text);line-height:1.55}
.modcard b{display:block;color:var(--ink);font-size:15.5px;margin-bottom:6px}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.choice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 10px 10px 14px;border-radius:14px;background:var(--frost)}
.choice label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;cursor:pointer}
.choice input{width:18px;height:18px;accent-color:var(--emerald)}
.note{margin:22px 0 4px;padding:16px 20px;border-radius:16px;background:var(--note-bg);border-left:3px solid var(--emerald);font-size:15px;color:var(--text);line-height:1.55}
.note b{color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.modal-c .btn{min-height:48px}
.m-chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:9px 15px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line);font-size:14px;font-weight:700;transition:background .2s,color .2s,box-shadow .2s}
.chip:hover{background:var(--night);color:var(--phos);box-shadow:none}
.m-stages{list-style:none;padding:0!important;margin:0;display:grid;gap:10px!important}
.m-stages li{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:var(--frost)}
.ms-n{flex:none;width:36px;height:36px;border-radius:50%;background:var(--night);color:var(--phos);display:grid;place-items:center;font-size:12.5px;font-weight:800}
.m-stages b{font-size:16.5px;color:var(--ink)}
.m-stages em{font-style:normal;font-size:13.5px;font-weight:700;color:var(--emerald);margin-left:10px}
.m-stages p{margin-top:4px;font-size:14.5px;color:var(--text)}
.m-small{margin-top:14px;font-size:13px;color:var(--steel)}
.m-step{display:flex;align-items:center;gap:12px}
.m-step span{flex:none;width:32px;height:32px;border-radius:50%;background:var(--night);color:var(--phos);display:grid;place-items:center;font-size:13px}

/* ---------- уведомление ---------- */
.toast{position:fixed;left:50%;bottom:26px;z-index:90;transform:translate(-50%,16px);opacity:0;background:var(--night);color:#fff;padding:14px 22px;border-radius:16px;font-size:15px;font-weight:600;box-shadow:0 0 0 1px rgba(var(--acc-rgb),.2),0 24px 50px -16px rgba(0,0,0,.6);transition:opacity .3s,transform .35s var(--ease);max-width:calc(100% - 32px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- адаптив ---------- */
@media (max-width:1200px){
 .steps{grid-template-columns:repeat(3,1fr);row-gap:36px}
 .steps li:nth-child(4){padding-left:0;border-left:0}
 .l2-main{grid-template-columns:minmax(0,1fr) 340px}
 .bld{grid-template-columns:minmax(0,1fr) 340px}
 .nav a{padding:9px 10px}
 .svc-grid{column-gap:36px}
}
@media (max-width:1020px){
 .nav{display:none}
 .burger{display:block}
 .hdr-cta{margin-left:auto}
 .burger{margin-left:0}
 .menu-open .nav{display:flex;position:fixed;top:var(--hdr);left:0;right:0;flex-direction:column;gap:0;padding:12px var(--pad) 24px;background:rgba(var(--d0-rgb),.98);border-top:1px solid var(--dline)}
 .menu-open .nav a{padding:15px 4px;font-size:18px;border-bottom:1px solid var(--dline)}
 .menu-open .nav a::after{display:none}
 .menu-open .hdr{background:rgba(var(--d0-rgb),.98)}
 .hero{min-height:auto}
 .hero-shade{background:linear-gradient(0deg,rgba(var(--hero-rgb),1) 0%,rgba(var(--hero-rgb),.96) 42%,rgba(var(--hero-rgb),.4) 62%,rgba(var(--hero-rgb),0) 78%),linear-gradient(180deg,rgba(var(--hero-rgb),.7) 0%,rgba(var(--hero-rgb),0) 16%)}
 #industry-code{height:min(62svh,560px);bottom:auto}
 .hero-in{padding-top:calc(min(62svh,560px) - 40px);gap:32px}
 .hero-foot{flex-direction:column;align-items:stretch}
 .code-hud{width:100%;text-align:left;justify-items:start;order:-1}
 .code-cap{position:static;text-align:left;max-width:none}
 .code-dirs{margin-left:0}
 .code-ctrl{justify-content:flex-start}
 .code-scenes{margin-left:4px}
 .consult-in,.ct-in,.faq-in,.spec-in,.team-in{grid-template-columns:1fr;gap:40px}
 .sec-head-row{flex-direction:column;align-items:flex-start}
 .svc-grid{grid-template-columns:1fr}
 .scn-grid,.art-grid{grid-template-columns:repeat(2,1fr)}
 .lab-root{min-height:0}
 .l2-main{grid-template-columns:1fr}
 .l2-stage{height:min(72svh,560px)}
 .l2-panel{max-height:none;border-left:0;border-top:1px solid var(--dline)}
 .l2-grp{grid-template-columns:1fr;gap:8px}
 .l2-gb{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:0 20px}
 .l2-gb::-webkit-scrollbar{display:none}
 .l2-tab{flex:none}
 .l2-hint{display:none}
 .bld{grid-template-columns:1fr}
 .bld-side{position:static}
}
@media (max-width:680px){
 :root{--pad:18px;--hdr:66px}
 body{font-size:16px}
 .logo-t small{display:none}
 .hdr-cta{display:none}
 .burger{margin-left:auto}
 .hero h1{font-size:clamp(33px,9.5vw,52px);letter-spacing:-.05em}
 .hero-facts{grid-template-columns:1fr;gap:14px}
 .code-dirs{display:none}
 .code-scenes{display:none}
 .svc{grid-template-columns:40px minmax(0,1fr) auto;gap:12px;padding:22px 0}
 .svc-desc{display:none}
 .scn-grid,.art-grid{grid-template-columns:1fr}
 .steps{grid-template-columns:1fr;border-top:0}
 .steps li,.steps li+li{padding:22px 0;border-left:0;border-top:1px solid var(--line)}
 .st-n{margin-bottom:12px;font-size:34px}
 .ind-tools .arrows{display:none}
 .search{max-width:none;flex-basis:100%}
 .ind-tools .selectw{flex:1 1 100%}
 .ind-count{width:100%;margin:0}
 .brief,.pk-items,.row2,.modgrid,.choices{grid-template-columns:1fr}
 .consult-list li{grid-template-columns:1fr;gap:6px}
 .spec-stats li{padding-right:10px}
 .spec-stats li+li{padding-left:10px}
 .spec-stats b{font-size:44px}
 .l2-stage{height:440px}
 .l2-badge{left:16px;top:14px}
 .l2-badge b{font-size:24px}
 .l2-tools{left:14px;bottom:14px}
 .l2-tools button{width:38px;height:38px}
 .l2-panel{padding:20px 16px}
 .l2-tabs{padding:12px 14px}
 .l2-gb{margin:0 -14px;padding:0 14px}
 .scn-steps li{font-size:11px;overflow-wrap:anywhere}
 .modal-c{padding:30px 20px 24px}
 .ct-form{padding:22px}
 .ct-foot{flex-direction:column;align-items:stretch}
 .faq summary{font-size:16.5px}
 .faq details p{padding-right:0}
 .ftr-s{margin-left:0}
 .consult::before{display:none}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 [data-reveal]{opacity:1;transform:none;transition:none}
 .ind-live .indsvg .obj,.ind-live .indsvg .glint,.mq-track{animation:none}
 .l2-stage.swap .l2-canvas{animation:none}
}

/* ---------- ворота на первом экране ---------- */
.hero-gate{position:absolute;inset:0;z-index:6;pointer-events:none;background:repeating-linear-gradient(180deg,#1e252d 0 34px,#161c22 34px 37px,#262e37 37px 40px);animation:gateUp 1.7s cubic-bezier(.76,0,.18,1) .45s forwards;will-change:transform}
.hero-gate::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 18%,transparent 82%,rgba(0,0,0,.35)),radial-gradient(60% 40% at 50% 100%,rgba(var(--acc-rgb),.18),transparent 70%)}
.hero-gate::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--sun,var(--phos));box-shadow:0 0 30px 8px rgba(var(--acc-rgb),.55),0 0 120px 30px rgba(var(--acc-rgb),.25)}
.hero-gate i{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);width:120px;height:10px;border-radius:3px;background:#0d1115;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
@keyframes gateUp{0%{transform:translateY(0)}12%{transform:translateY(1.5%)}100%{transform:translateY(-104%)}}
.gate-seen .hero-gate{display:none}
.hero .hero-copy>*{animation:heroIn .9s cubic-bezier(.2,.7,.2,1) both}
.hero .hero-copy>*:nth-child(1){animation-delay:1.35s}.hero .hero-copy>*:nth-child(2){animation-delay:1.45s}.hero .hero-copy>*:nth-child(3){animation-delay:1.55s}.hero .hero-copy>*:nth-child(4){animation-delay:1.62s}.hero .hero-copy>*:nth-child(5){animation-delay:1.7s}
.gate-seen .hero .hero-copy>*{animation-delay:0s!important;animation-duration:.6s}
@keyframes heroIn{from{opacity:0;transform:translateY(22px)}}

@media (prefers-reduced-motion:reduce){.hero-gate{display:none}.hero .hero-copy>*{animation:none}}

/* ---------- конструктор: сцена без рамки + фокус с тканью ---------- */
#lab{overflow-x:clip}
.l2{background:none;border-radius:0;overflow:visible;box-shadow:none;--edge:max(var(--pad),calc(50vw - var(--wrap)/2 + var(--pad)))}
.l2-tabs{border-bottom:0;padding:0 0 8px;position:relative;z-index:5}
.l2-main{display:block;position:relative}
.l2-stage{height:clamp(620px,82vh,840px);margin:0 calc(50% - 50vw);background:none;overflow:hidden;--beam:1;--fc:50%}
.l2-stage::after{display:none}
.l2-beam{will-change:opacity;position:absolute;top:-4%;bottom:6%;left:var(--fc);width:min(760px,58vw);transform:translateX(-50%);pointer-events:none;z-index:0;opacity:calc(var(--beam)*.9);transition:opacity .25s;
 background:linear-gradient(180deg,rgba(255,228,190,.2),rgba(255,214,160,.07) 55%,rgba(255,214,160,0) 92%);clip-path:polygon(41% 0,59% 0,100% 100%,0 100%);filter:blur(14px)}
.l2-beam::after{content:"";position:absolute;left:8%;right:8%;bottom:6%;height:16%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,214,160,.16),transparent)}
.l2-stage.cl-flash .l2-beam{animation:beamFlash .9s ease-out}
@keyframes beamFlash{0%{filter:blur(14px) brightness(1)}18%{filter:blur(10px) brightness(2.6)}100%{filter:blur(14px) brightness(1)}}
.l2-canvas{z-index:1}
.l2-labels{z-index:2;transition:opacity .3s}
.l2.cl-on .l2-labels{opacity:0}
.l2-badge{left:var(--edge);top:26px;z-index:3}
.l2-badge b{color:#fff;font-size:clamp(28px,3vw,46px)}
.l2-badge span{color:var(--mist)}
.l2-tools{left:var(--edge);bottom:26px;z-index:3}
.l2-tools button{background:rgba(30,37,45,.85);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.l2-tools button:hover{background:rgba(255,255,255,.14)}
.l2-tools button.on{background:var(--phos);color:var(--night)}
.l2-hint{left:calc(var(--edge) + 5*48px + 10px);bottom:37px;color:var(--fog);z-index:3}
.l2-loading{background:none;color:var(--mist)}
.l2-panel{position:absolute;right:0;top:50%;transform:translateY(-50%);width:360px;max-height:calc(100% - 64px);z-index:4;border:0;border-radius:24px;padding:22px 20px 16px;
 background:linear-gradient(160deg,rgba(30,37,45,.94),rgba(17,22,28,.92));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 30px 80px -30px rgba(0,0,0,.8);transition:opacity .35s,filter .35s}
.l2.cl-on .l2-panel{opacity:.55;filter:saturate(.6);pointer-events:none}
.l2-lead{display:none}
.l2-title{font-size:22px;margin:8px 0 14px}
.l2-spec{order:0}
.l2-spec .l2card{margin:0 0 18px;background:linear-gradient(150deg,rgba(var(--acc-rgb),.14),rgba(var(--acc-rgb),.03));box-shadow:inset 0 0 0 1px rgba(var(--acc-rgb),.22)}
.l2-spec .l2card>b{font-size:28px;line-height:1.1;background:var(--sun,var(--phos));-webkit-background-clip:text;background-clip:text;color:transparent}
.l2-controls{margin:0 0 4px}
@media (max-width:1240px){.l2-hint{display:none}}
@media (max-width:1020px){
 .l2-stage{height:min(70svh,560px)}
 .l2-panel{position:relative;top:auto;right:auto;transform:none;width:auto;max-height:none;margin-top:12px}
}
@media (max-width:700px){.l2-stage{height:460px}.l2-badge{top:14px}.l2-tools{bottom:14px}}

/* ---------- живой фон ---------- */
.sec{isolation:isolate}
.fx-amb{position:absolute;inset:0;z-index:-1;pointer-events:none;clip-path:inset(0)}
.fx-amb canvas{position:fixed;left:0;top:0;width:100vw;height:100vh;display:block}
@media (prefers-reduced-motion:reduce){.fx-amb{display:none}}

/* ---------- главный экран: залипает, следующий блок наезжает сверху, камера влетает в завод ---------- */
.hero{position:sticky;top:calc(100svh - max(720px,100svh))}
.hero-copy{opacity:calc(1 - var(--fly,0)*1.7);translate:0 calc(var(--fly,0)*-80px)}
.hero-foot{opacity:calc(1 - var(--fly,0)*2.2)}
.hero.hero-off{visibility:hidden}
.ftr{position:relative}
#specialization{box-shadow:0 -50px 90px -30px rgba(0,0,0,.6)}
@media (hover:hover){.hero{cursor:crosshair}.hero a,.hero button{cursor:pointer}}
@media (prefers-reduced-motion:reduce){.hero{position:relative;top:auto}}

/* ---------- конструктор: сюжет и стили ---------- */
.l2-hint{display:none!important}
.l2-tools .l2-play{width:auto;padding:0 16px 0 12px;gap:6px;display:inline-flex;align-items:center;border-radius:999px;background:var(--sun,var(--phos));color:#1a1206;font-size:13px;font-weight:800;box-shadow:0 8px 24px -10px rgba(var(--acc-rgb),.8)}
.l2-tools .l2-play svg{fill:currentColor;stroke:none;width:16px;height:16px}
.l2-tools .l2-play[hidden]{display:none}
.l2-looks{position:absolute;z-index:3;top:26px;right:calc(360px + 28px);display:flex;gap:4px;padding:4px;border-radius:999px;background:rgba(22,28,34,.82);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.l2-looks button{height:32px;padding:0 13px;border-radius:999px;font-size:12.5px;font-weight:700;color:var(--mist);transition:background .2s,color .2s}
.l2-looks button:hover{color:#fff}
.l2-looks button.on{background:var(--snow);color:var(--night)}
.l2-stage.look-bp{background:linear-gradient(rgba(120,190,255,.07) 1px,transparent 1px) 0 0/40px 40px,linear-gradient(90deg,rgba(120,190,255,.07) 1px,transparent 1px) 0 0/40px 40px,radial-gradient(70% 70% at 45% 50%,#123459,#0b213b 70%,transparent 100%)}
.l2-stage.look-xr{background:radial-gradient(60% 60% at 45% 50%,rgba(40,110,190,.25),transparent 75%)}
.l2-stage.look-bp .l2-beam,.l2-stage.look-xr .l2-beam{opacity:0!important}
@media (max-width:1020px){.l2-looks{right:auto;left:var(--edge);top:auto;bottom:78px}}
@media (max-width:700px){.l2-looks{bottom:62px}.l2-looks button{padding:0 10px;font-size:12px}}

/* без студийного луча */
.l2-beam{display:none!important}

/* первый экран: только заголовок и сцена */
.hero-foot{justify-content:flex-end;border-top:0}
.code-dirs{display:none}
.ic-gl{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}
@media (max-width:1020px){.ic-gl{height:min(62svh,560px);bottom:auto}}

/* ================= бренд SHALÉNO ================= */
:root{--sun:linear-gradient(105deg,var(--brass) 0%,var(--phos) 100%);--pearl:linear-gradient(118deg,var(--frost),var(--paper))}
.brand-word{display:block;width:clamp(118px,11vw,150px);aspect-ratio:1133/262;background:var(--snow);-webkit-mask:url(/assets/img/shaleno-word.png) left center/contain no-repeat;mask:url(/assets/img/shaleno-word.png) left center/contain no-repeat;transition:opacity .2s}
.brand:hover .brand-word{opacity:.8}
.ftr .brand-word{width:150px}
/* палитра «Монохром» — как логотип: уголь, слоновая кость, графит */
:root[data-palette="mono"]{
 --night:#121212;--pine:#1a1a1a;--pine2:#242424;--dline:#303030;--dline2:#424242;--d1:#171717;--d2:#1f1f1f;--d3:#282828;--mist:#bdb8ae;--fog:#8d8880;--snow:#f4f1ea;
 --phos:#e6d7b8;--phos2:#cfbc95;--acc-hi:#f1e6cf;--brass:#d9c7a1;--brass2:#b9a57c;--brass-hi:#ece0c4;
 --frost:#efece6;--paper:#fbf9f5;--ink:#141414;--text:#45423d;--steel:#77726a;--line:#dcd7cf;--line2:#e9e5de;--emerald:#7d6a45;
 --pick-bg:#f2ece0;--note-bg:#f6f1e7;--glow:#2a2620;--d-input:#151515;--d-ph:#6e6a63;--d-foot:#0b0b0b;
 --st1:#fbf9f5;--st2:#ece8e1;--st3:#d3cdc3;--st4:#b9b2a7;--art1:#e8e4dd;--art2:#f2efea;--art3:#f9f7f3;
 --logo:#e6d7b8;--logo-ink:#121212;--sun:linear-gradient(105deg,#f1e6cf 0%,#d9c7a1 55%,#b9a57c 100%);--pearl:linear-gradient(118deg,#f1eee8 0%,#f7f4ee 50%,#eeeae3 100%);
 --hero-rgb:18,18,18;--d0-rgb:18,18,18;--d1-rgb:26,26,26;--acc-rgb:230,215,184;--snow-rgb:244,241,234;--ink-rgb:20,20,20;--link-rgb:125,106,69;--brass-rgb:217,199,161}
:root[data-palette="mono"] .btn-glow{background:var(--sun);color:#141414}
:root[data-palette="mono"] .sec-light{background:var(--pearl)}
/* выбор оформления */
.theme-pick{position:relative;margin-left:auto}
.tp-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px 0 11px;border-radius:999px;color:var(--snow);background:rgba(var(--snow-rgb),.06);box-shadow:inset 0 0 0 1px rgba(var(--snow-rgb),.14);font-size:13.5px;font-weight:700;transition:background .2s,box-shadow .2s}
.tp-btn:hover,.tp-btn[aria-expanded="true"]{background:rgba(var(--snow-rgb),.12);box-shadow:inset 0 0 0 1px rgba(var(--snow-rgb),.3)}
.tp-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.tp-btn svg circle{fill:currentColor;stroke:none}
.tp-menu{position:absolute;right:0;top:calc(100% + 10px);width:290px;padding:10px;border-radius:18px;background:rgba(var(--d0-rgb),.97);box-shadow:inset 0 0 0 1px rgba(var(--snow-rgb),.1),0 30px 70px -20px rgba(0,0,0,.7);display:grid;gap:4px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .2s,transform .2s;z-index:60}
.theme-pick.open .tp-menu{opacity:1;transform:none;pointer-events:auto}
.tp-menu button{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border-radius:12px;color:var(--snow);text-align:left;font-size:14px;font-weight:700;transition:background .15s}
.tp-menu button:hover{background:rgba(var(--snow-rgb),.07)}
.tp-menu button.on{background:rgba(var(--snow-rgb),.1)}
.tp-menu i{flex:none;width:44px;height:28px;border-radius:9px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.tp-menu small{display:block;font-size:12px;font-weight:500;color:var(--fog);margin-top:1px}
.hdr .theme-pick+.hdr-cta{margin-left:0}
@media (max-width:1020px){.tp-btn span{display:none}.tp-btn{padding:0 11px}.theme-pick{margin-left:auto}}

/* ================= главный экран: логотип, пара, карандашные объекты ================= */
.hero2{--h2-ink:var(--snow);background:radial-gradient(90% 80% at 70% 70%,rgba(var(--snow-rgb),.05),transparent 70%),rgb(var(--hero-rgb))}
.hero2 .h2-stage{position:absolute;inset:0;z-index:0;pointer-events:none}
.h2-sketch{position:absolute;inset:0;width:100%;height:100%;--sk0:34%;--sk1:56%;-webkit-mask-image:linear-gradient(90deg,transparent 0,transparent var(--sk0),#000 var(--sk1),#000 92%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,transparent var(--sk0),#000 var(--sk1),#000 92%,transparent 100%)}
.h2-couple{position:absolute;right:max(3vw,calc((100vw - var(--wrap))/2 + 10px));bottom:7svh;height:min(66svh,640px);aspect-ratio:483/630}
.h2-couple img{position:relative;display:block;height:100%;width:auto;filter:grayscale(1) contrast(1.06) brightness(1.04) drop-shadow(0 30px 40px rgba(0,0,0,.35));transform-origin:50% 100%;animation:h2walk 1.2s ease-in-out infinite}
.h2-shadow{position:absolute;left:8%;right:8%;bottom:-1.2%;height:5%;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent);filter:blur(4px)}
@keyframes h2walk{0%,100%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-.45%) rotate(.25deg)}50%{transform:translateY(0) rotate(0deg)}75%{transform:translateY(-.45%) rotate(-.25deg)}}
.h2-in{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;width:100%;padding-top:calc(var(--hdr) + clamp(36px,9vh,110px));padding-bottom:clamp(40px,8vh,92px);pointer-events:none}
.h2-in a,.h2-in button{pointer-events:auto}
.h2-brand{max-width:min(640px,52vw)}
.h2-logo{position:relative;width:min(620px,48vw);aspect-ratio:1133/344;background:var(--h2-ink);-webkit-mask:url(/assets/img/shaleno.png) left top/contain no-repeat;mask:url(/assets/img/shaleno.png) left top/contain no-repeat;animation:h2in 1.4s var(--ease) both}
.h2-logo i{position:absolute;inset:0;background:linear-gradient(105deg,transparent 0%,transparent 42%,rgba(var(--acc-rgb),.95) 48%,#fff 50%,rgba(var(--acc-rgb),.95) 52%,transparent 58%,transparent 100%);background-size:260% 100%;background-position:130% 0;animation:h2shine 7s 1.6s cubic-bezier(.4,0,.2,1) infinite}
@keyframes h2shine{0%{background-position:130% 0}28%,100%{background-position:-30% 0}}
@keyframes h2in{from{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.h2-tag{margin-top:clamp(18px,3vh,34px);font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(20px,1.9vw,30px);letter-spacing:.005em;color:var(--mist);animation:h2in 1.4s .35s var(--ease) both}
.h2-bottom{max-width:min(660px,52vw);animation:h2in 1.4s .6s var(--ease) both}
.hero2 h1{font-size:clamp(38px,4.4vw,72px);margin:0 0 14px;letter-spacing:-.04em;line-height:1;font-weight:800;color:var(--snow);text-shadow:none}
.hero2 .hero-sub{margin:0}
@media (max-width:1020px){
 .hero2{min-height:100svh}
 .h2-couple{right:50%;transform:translateX(50%);bottom:auto;top:calc(var(--hdr) + 3svh);height:min(46svh,440px)}
 .h2-sketch{-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 50%,transparent 62%);mask-image:linear-gradient(180deg,#000 0%,#000 50%,transparent 62%)}
 .h2-in{padding-top:calc(var(--hdr) + min(46svh,440px) + 6svh)}
 .h2-brand,.h2-bottom{max-width:none}
 .h2-logo{width:min(560px,86vw)}
}
@media (max-width:1020px){.hdr .hdr-cta{margin-left:0}.hdr .theme-pick{margin-left:auto}.hdr-in{gap:14px}.hdr .burger{margin-left:4px!important}}

/* ================= внутренние страницы ================= */
.ind-link{color:inherit;text-decoration:none}
.ind-link:hover{color:var(--emerald)}
.m-more{display:inline-flex;gap:8px;font-weight:700;color:var(--emerald);text-decoration:none;border-bottom:1px solid rgba(var(--link-rgb),.35);padding-bottom:2px}
.m-more:hover{border-color:var(--emerald)}
body.sub{background:var(--paper)}
.ip-logo{width:clamp(190px,20vw,300px);margin:0 0 clamp(22px,3.4vh,36px);animation:h2in 1.2s var(--ease) both}
.ip-hero{position:relative;--h2-ink:var(--snow);padding-top:calc(var(--hdr) + clamp(64px,9vh,100px))!important;background:radial-gradient(70% 90% at 82% 40%,rgba(var(--acc-rgb),.10),transparent 62%),radial-gradient(90% 80% at 20% 100%,rgba(var(--snow-rgb),.04),transparent 70%),rgb(var(--hero-rgb));color:var(--snow);padding:calc(var(--hdr) + clamp(34px,6vh,72px)) 0 clamp(56px,9vh,104px);overflow:hidden}
.ip-hero-in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,80px);align-items:center}
.ip-crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:13.5px;font-weight:600;color:var(--fog);margin-bottom:18px}
.ip-crumbs a{color:var(--mist);text-decoration:none}.ip-crumbs a:hover{color:var(--phos)}
.ip-num{margin:0 0 12px;font-size:14px;font-weight:700;letter-spacing:.02em;color:var(--phos);font-variant-numeric:tabular-nums}
.ip-hero h1{font-size:clamp(36px,4.6vw,68px);line-height:1.02;letter-spacing:-.04em;margin:0 0 18px;color:#fff;font-weight:800}
.ip-hero h1 em{font-style:normal;font-weight:400}
.ip-prod{margin:0 0 18px;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(17px,1.4vw,21px);color:var(--mist)}
.ip-lead{margin:0 0 30px;font-size:clamp(16.5px,1.25vw,19px);line-height:1.62;color:rgba(var(--snow-rgb),.86);max-width:620px}
.ip-act{display:flex;flex-wrap:wrap;gap:12px}
.ip-hero .btn-line{color:var(--snow);border-color:rgba(var(--snow-rgb),.22)}
.ip-hero .btn-line:hover{border-color:var(--phos);color:var(--phos)}
.ip-art.industryart{height:auto;aspect-ratio:4/3;margin:0;border-radius:28px;box-shadow:0 40px 90px -40px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.06);animation:h2in 1.4s .25s var(--ease) both}
.ip-art svg{position:absolute;inset:0;width:100%;height:100%}
.ip-hero-cat .ip-lead{max-width:760px}
.ip-hero-cat h1{max-width:900px}
.ip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.ip-card{position:relative;padding:30px 28px 32px;border-radius:var(--r);background:var(--frost);border:1px solid var(--line2);transition:transform .35s var(--ease),box-shadow .35s}
.ip-card:hover{transform:translateY(-4px);box-shadow:0 30px 60px -36px rgba(var(--ink-rgb),.4)}
.ip-n{display:block;font-size:13px;font-weight:800;color:var(--emerald);margin-bottom:22px;font-variant-numeric:tabular-nums}
.ip-card h3{font-size:clamp(19px,1.5vw,23px);line-height:1.2;letter-spacing:-.02em;margin:0 0 12px}
.ip-card p{margin:0;color:var(--text);font-size:15.5px;line-height:1.58}
.ip-dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--dline);border:1px solid var(--dline);border-radius:var(--r);overflow:hidden}
.ip-dir{padding:30px 28px;background:var(--night)}
.ip-dir h3{margin:0 0 8px;font-size:21px;color:#fff;letter-spacing:-.02em}
.ip-dshort{color:var(--phos)!important;font-weight:700;font-size:14.5px!important;margin:0 0 12px!important}
.ip-dir p{margin:0;color:var(--mist);font-size:15px;line-height:1.6}
.ip-talk-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(30px,6vw,96px);align-items:center}
.ip-talk h2{font-size:clamp(32px,3.8vw,54px);margin:18px 0 18px;letter-spacing:-.04em}
.ip-talk h2 em{font-style:normal;font-weight:400}
.ip-talk-p{font-size:clamp(16.5px,1.25vw,19px);line-height:1.62;color:var(--text);margin:0 0 28px;max-width:620px}
.ip-quote{margin:0;padding:clamp(30px,4vw,54px);border-radius:28px;background:rgb(var(--hero-rgb));color:var(--snow);position:relative;overflow:hidden}
.ip-quote::before{content:"";position:absolute;inset:auto -20% -60% 30%;height:120%;background:radial-gradient(closest-side,rgba(var(--acc-rgb),.28),transparent);pointer-events:none}
.ip-quote p{position:relative;margin:0 0 20px;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(26px,2.6vw,40px);line-height:1.18}
.ip-quote cite{position:relative;font-style:normal;font-size:13.5px;font-weight:700;letter-spacing:.06em;color:var(--fog);text-transform:uppercase}
.ip-rel{background:var(--frost)}
.ip-cat-h{font-size:clamp(22px,2vw,30px);letter-spacing:-.03em;margin:clamp(40px,5vw,64px) 0 18px}
.ip-cat-h:first-child{margin-top:0}
.ip-rel-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.ip-rel-a{display:flex;flex-direction:column;gap:6px;padding:22px 24px;border-radius:18px;background:var(--paper);border:1px solid var(--line2);color:var(--ink);text-decoration:none;transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
.ip-rel-a:hover{transform:translateY(-3px);border-color:rgba(var(--acc-rgb),.6);box-shadow:0 24px 50px -32px rgba(var(--ink-rgb),.45)}
.ip-rel-a span{font-size:12.5px;font-weight:800;color:var(--emerald);font-variant-numeric:tabular-nums}
.ip-rel-a b{font-size:18px;letter-spacing:-.02em;line-height:1.22}
.ip-rel-a small{font-size:14px;color:var(--steel);line-height:1.45}
@media (max-width:1020px){
 .ip-hero-in,.ip-talk-in{grid-template-columns:1fr}
 .ip-art.industryart{max-width:620px}
}

/* ================= «О нас» ================= */
.ab-hero{position:relative;--h2-ink:var(--snow);--ab-ink:#e9ecef;min-height:100svh;display:flex;background:radial-gradient(52% 62% at 72% 66%,rgba(40,255,130,.075),transparent 68%),radial-gradient(90% 80% at 70% 70%,rgba(var(--snow-rgb),.05),transparent 70%),rgb(var(--hero-rgb));color:var(--snow);overflow:hidden}
.ab-stage{position:absolute;inset:0;z-index:0;pointer-events:none}
.ab-sketch{position:absolute;inset:0;width:100%;height:100%}
.ab-man{position:absolute;right:max(7vw,calc((100vw - var(--wrap))/2 + 80px));bottom:5svh;height:min(80svh,800px);aspect-ratio:432/584;width:auto;opacity:0;transition:opacity 1.2s var(--ease);filter:drop-shadow(0 30px 40px rgba(0,0,0,.4))}
.ab-stage.on .ab-man{opacity:1}
.ab-stage::after{content:"";position:absolute;right:max(7vw,calc((100vw - var(--wrap))/2 + 80px));bottom:calc(5svh + min(80svh,800px)*.031 - 11px);width:calc(min(80svh,800px)*432/584);height:22px;border-radius:50%;background:radial-gradient(closest-side,rgba(60,255,140,.2),rgba(60,255,140,.05) 60%,transparent);filter:blur(5px);z-index:-1}
.ab-in{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;width:100%;padding-top:calc(var(--hdr) + clamp(36px,9vh,110px));padding-bottom:clamp(40px,8vh,92px)}
.ab-brand{max-width:min(640px,52vw)}
.ab-head{max-width:min(780px,50vw);animation:h2in 1.4s .6s var(--ease) both}
.ab-k{margin:0 0 14px;font-size:14px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--phos)}
.ab-hero h1{font-size:clamp(40px,4.4vw,76px);line-height:1;letter-spacing:-.045em;margin:0;color:#fff;font-weight:800}
.ab-hero h1 em{font-style:normal;font-weight:400}
.ab-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,100px);align-items:start}
.ab-two .sec-head{margin-bottom:0}
.ab-text p{margin:0 0 18px;font-size:clamp(16.5px,1.25vw,19px);line-height:1.68;color:var(--text)}
.sec-dark .ab-text p{color:var(--mist)}
.ab-text .ab-lead{font-size:clamp(20px,1.7vw,26px);line-height:1.4;color:var(--ink);font-weight:600;letter-spacing:-.015em}
.ab-big{margin:0;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(26px,2.6vw,40px);line-height:1.25;color:var(--snow)}
.ab-tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:clamp(48px,6vw,84px);background:var(--dline);border:1px solid var(--dline);border-radius:var(--r);overflow:hidden}
.ab-tri article{padding:clamp(26px,3vw,40px);background:var(--night)}
.ab-tri b{display:block;font-size:clamp(24px,2.2vw,34px);letter-spacing:-.035em;margin-bottom:12px;background:var(--sun,linear-gradient(90deg,var(--phos),var(--brass)));-webkit-background-clip:text;background-clip:text;color:transparent}
.ab-tri p{margin:0;color:var(--mist);font-size:15.5px;line-height:1.6}
.ab-vals{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.ab-vals li{position:relative;padding:34px 32px 36px;border-radius:var(--r);background:var(--frost);border:1px solid var(--line2)}
.ab-vals span{display:block;font-size:13px;font-weight:800;color:var(--emerald);margin-bottom:26px;font-variant-numeric:tabular-nums}
.ab-vals h3{margin:0 0 12px;font-size:clamp(21px,1.7vw,26px);letter-spacing:-.025em;line-height:1.18}
.ab-vals p{margin:0;color:var(--text);font-size:16px;line-height:1.62}
.ab-end{overflow:hidden}
.ab-end::before{content:"";position:absolute;inset:-30% -10% auto 40%;height:120%;background:radial-gradient(closest-side,rgba(var(--acc-rgb),.16),transparent);pointer-events:none}
.ab-end-in{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(30px,6vw,100px);align-items:end}
.ab-end blockquote{margin:0}
.ab-end blockquote p{margin:0 0 22px;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(30px,3.4vw,54px);line-height:1.15;color:#fff}
.ab-end cite{font-style:normal;font-size:13.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fog)}
.ab-cta p{margin:0 0 22px;font-size:clamp(17px,1.35vw,20px);line-height:1.55;color:var(--mist)}
.ab-act{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:1020px){
 .ab-man{right:50%;transform:translateX(50%);bottom:auto;top:calc(var(--hdr) + 2svh);height:min(50svh,480px)}
 .ab-stage::after{display:none}
 .ab-in{padding-top:calc(var(--hdr) + min(50svh,480px) + 5svh)}
 .ab-brand,.ab-head{max-width:none}
 .ab-in .h2-logo{width:min(520px,82vw)}
 .ab-head{margin-top:28px}
 .ab-two,.ab-end-in{grid-template-columns:1fr}
 .ab-tri{grid-template-columns:1fr}
 .ab-vals{grid-template-columns:1fr}
}

/* конструктор: свой спокойный звёздный фон (живой фоновой слой здесь отключён — вся видеокарта отдана 3D) */
#lab{background:radial-gradient(60% 50% at 70% 40%,rgba(var(--acc-rgb),.06),transparent 70%),radial-gradient(50% 60% at 15% 80%,rgba(var(--snow-rgb),.04),transparent 70%),var(--night)}
#lab::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.55;background-image:radial-gradient(1.2px 1.2px at 23px 41px,#fff,transparent),radial-gradient(1px 1px at 167px 113px,#fff,transparent),radial-gradient(1.4px 1.4px at 311px 207px,rgba(255,255,255,.8),transparent),radial-gradient(1px 1px at 89px 263px,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 241px 19px,rgba(255,255,255,.6),transparent),radial-gradient(1.2px 1.2px at 383px 331px,rgba(255,255,255,.7),transparent);background-size:420px 380px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent)}

/* край 3D-сцены растворяется — без жёсткой линии пола на широких мониторах */
.l2-canvas{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 5%,#000 82%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 5%,#000 82%,transparent 100%)}
.l2:fullscreen .l2-canvas{-webkit-mask-image:none;mask-image:none}

/* ================= логотип SHALÉNO: пара + надпись, без фона, с бликом ================= */
.logo.brand{position:relative;display:block;flex:none;height:60px;aspect-ratio:784/300;align-self:center;margin-top:0;transition:height .5s var(--ease),margin .5s var(--ease),opacity .3s}
.logo.brand .brand-img{display:block;width:100%;height:100%;object-fit:contain}
.brand-shine{position:absolute;inset:0;overflow:hidden;pointer-events:none;-webkit-mask:url(/assets/img/logo-full.webp) center/100% 100% no-repeat;mask:url(/assets/img/logo-full.webp) center/100% 100% no-repeat}
.brand-shine::before{content:"";position:absolute;top:0;bottom:0;left:-45%;width:45%;background:linear-gradient(105deg,transparent 0%,rgba(var(--acc-rgb),.45) 34%,rgba(255,248,235,.95) 50%,rgba(var(--acc-rgb),.45) 66%,transparent 100%);will-change:transform;animation:brandShine 6.5s 1.2s cubic-bezier(.45,0,.2,1) infinite}
@keyframes brandShine{0%{transform:translateX(0)}32%,100%{transform:translateX(330%)}}
/* вверху страницы логотип крупнее, при прокрутке — компактный */
/* вверху страницы логотип крупный и выходит за полосу шапки, при прокрутке — компактный */
.hdr:not(.solid) .logo.brand{height:clamp(60px,6.5vw,106px);align-self:flex-start;margin-top:12px}
.menu-open .hdr .logo.brand{height:40px;align-self:center;margin-top:0}
.ftr .logo.brand{height:58px}
@media (max-width:1020px){.logo.brand{height:40px}.hdr:not(.solid) .logo.brand{height:62px;margin-top:9px}}
@media (prefers-reduced-motion:reduce){.brand-shine{display:none}}
/* главный экран: подпись под логотипом и заголовок ниже */
.hero-tag{margin:0 0 clamp(10px,2vh,22px);font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(19px,1.6vw,26px);color:var(--mist);letter-spacing:.005em;text-shadow:0 2px 20px rgba(var(--d0-rgb),.7)}
.hero-in{padding-top:calc(var(--hdr) + clamp(70px,12vh,130px))}
@media (max-width:1020px){.hero-in{padding-top:calc(var(--hdr) + 52px)}.hero-tag{margin-bottom:12px}}
/* «О нас»: цифровой человек */
.ab-man{opacity:0;transition:opacity .6s var(--ease)}
.ab-stage.on .ab-man{opacity:1}

.ab-man{filter:none!important}
.ab-static .ab-sketch,.ab-static .ab-man{display:none}

/* ================= статистика посещений ================= */
.ftr-stat{margin-left:14px;display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;border:1px solid var(--dline2);color:var(--snow);font:inherit;font-size:13px;font-weight:700;background:none;cursor:pointer;transition:border-color .25s,color .25s}
.ftr-stat::before{content:"";width:12px;height:10px;background:linear-gradient(90deg,currentColor 0 2px,transparent 2px 5px,currentColor 5px 7px,transparent 7px 10px,currentColor 10px 12px);-webkit-mask:linear-gradient(0deg,#000 0 100%);clip-path:polygon(0 60%,17% 60%,17% 100%,0 100%,0 60%,42% 20%,58% 20%,58% 100%,42% 100%,42% 20%,83% 0,100% 0,100% 100%,83% 100%)}
.ftr-stat:hover{border-color:var(--phos);color:var(--phos)}
.sx-lock,.sx-lock body{overflow:hidden}
.sx-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(var(--d0-rgb),.72);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .3s}
.sx-modal.on{opacity:1;pointer-events:auto}
.sx-card{position:relative;width:min(860px,100%);max-height:calc(100svh - 40px);overflow:auto;padding:clamp(22px,3vw,36px);border-radius:26px;background:var(--pine);color:var(--snow);box-shadow:0 0 0 1px var(--dline),0 40px 120px -30px rgba(0,0,0,.8);transform:translateY(12px);transition:transform .35s var(--ease)}
.sx-modal.on .sx-card{transform:none}
.sx-card h3{margin:0 0 20px;font-size:clamp(22px,2.2vw,30px);letter-spacing:-.03em}
.sx-card h4{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:26px 0 12px;font-size:15px;color:var(--mist);font-weight:700}
.sx-card h4 em{font-style:normal;font-weight:600;font-size:12.5px;color:var(--fog);display:inline-flex;align-items:center;gap:6px}
.sx-x{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:12px;border:1px solid var(--dline);background:none;color:var(--snow);font-size:24px;line-height:1;cursor:pointer}
.sx-x:hover{border-color:var(--phos);color:var(--phos)}
.sx-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sx-tiles div{padding:18px;border-radius:18px;background:rgba(var(--snow-rgb),.04);box-shadow:inset 0 0 0 1px var(--dline)}
.sx-tiles small{display:block;font-size:12.5px;font-weight:700;color:var(--fog);text-transform:uppercase;letter-spacing:.06em}
.sx-tiles b{display:block;margin:6px 0 2px;font-size:clamp(28px,3vw,40px);letter-spacing:-.03em;color:var(--phos);font-variant-numeric:tabular-nums}
.sx-tiles span{font-size:13px;color:var(--mist)}
.sx-chart{display:block;width:100%;height:auto}
.sx-b{fill:rgba(var(--snow-rgb),.16)}.sx-v{fill:var(--phos)}.sx-ax{fill:var(--fog);font-size:11px;font-family:inherit}
.sx-k{display:inline-block;width:10px;height:10px;border-radius:3px}.sx-kb{background:rgba(var(--snow-rgb),.25)}.sx-kv{background:var(--phos)}
.sx-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px}
.sx-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sx-list li{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 56px;align-items:center;gap:10px;font-size:14px}
.sx-n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sx-n small{color:var(--fog);margin-left:4px}
.sx-bar{height:6px;border-radius:4px;background:rgba(var(--snow-rgb),.08);overflow:hidden}.sx-bar i{display:block;height:100%;border-radius:4px;background:var(--phos)}
.sx-list b{font-variant-numeric:tabular-nums;font-size:13.5px;text-align:right}
.sx-empty,.sx-wait,.sx-note{color:var(--mist);font-size:14.5px;line-height:1.6}
.sx-note{margin:22px 0 0;font-size:12.5px;color:var(--fog)}
@media (max-width:700px){.sx-tiles,.sx-cols{grid-template-columns:1fr}.ftr-stat{margin:10px 0 0}}

/* «О нас»: текст первого экрана одним блоком внизу слева */
.ab-in{justify-content:flex-end}
.ab-head .h2-tag{margin:0 0 clamp(16px,3vh,30px);animation:h2in 1.4s .35s var(--ease) both}
/* более ровные вертикальные отступы на внутренних страницах */
body.sub .sec{padding:clamp(64px,7.5vw,112px) 0}
body.sub .sec-head{margin-bottom:clamp(28px,3.4vw,48px)}
.ab-tri{margin-top:clamp(36px,4.5vw,64px)}

.nav a{white-space:nowrap}
@media (max-width:1360px) and (min-width:1021px){.nav a{padding:9px 10px}.hdr-in{gap:18px}}
@media (max-width:1240px) and (min-width:1021px){.tp-btn span{display:none}.tp-btn{padding:0 11px}.nav a{padding:9px 8px;font-size:14px}}

/* ================= шлифовка типографики ================= */
h1,h2,h3,.sec-lead,.ab-big,.ab-end blockquote p{text-wrap:balance}
p,li,summary{text-wrap:pretty}
.kicker span{flex:none;white-space:nowrap}
.svc-cnt,.pk summary em,.sum-row b{white-space:nowrap}
.scn-steps li{font-size:12px;padding-right:6px;overflow-wrap:normal;-webkit-hyphens:auto;hyphens:auto}
@media (max-width:700px){.scn-steps li{font-size:11px;padding-right:3px}}
@media (max-width:520px){.ab-hero h1{font-size:clamp(31px,9.1vw,40px)}}
