/* TriCode — сдержанный монохром: почти чёрный, тёплый белый, шампань как редкий акцент.
   Крупная типографика, тонкие линии, много воздуха. */
:root{
  --black:#0b0b0c; --white:#f3f1ec;
  /* тёмная секция — значения по умолчанию */
  --bg:var(--black); --fg:var(--white); --dim:rgba(243,241,236,.58); --line:rgba(243,241,236,.13);
  --card:#141415; --acc:#cdb991; --btn-bg:var(--white); --btn-fg:var(--black);
  --wrap:1240px; --ease:cubic-bezier(.16,1,.3,1);
  --head:"Inter Tight","Inter",system-ui,sans-serif;
  --text:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:"Cormorant Garamond","Times New Roman",serif;
}
.section--light{
  --bg:var(--white); --fg:var(--black); --dim:#6d6a63; --line:#d8d4ca;
  --card:#fbfaf7; --acc:#84703f; --btn-bg:var(--black); --btn-fg:var(--white);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:88px;scrollbar-gutter:stable;background:var(--black)}
body{background:var(--black);color:var(--white);font:400 17px/1.6 var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--head);font-weight:500;letter-spacing:-.035em;text-wrap:balance}
h1 em,h2 em,.manifest__text em{font:italic 400 1.1em/1 var(--serif);letter-spacing:-.02em;color:var(--acc)}
p{text-wrap:pretty}
a{color:inherit}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:16px;top:-60px;z-index:100;padding:10px 16px;background:var(--white);color:var(--black);border-radius:8px}
.skip:focus{top:16px}

/* кнопки */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 30px;border-radius:999px;border:0;
  background:var(--btn-bg);color:var(--btn-fg);font:500 16px/1 var(--text);letter-spacing:-.005em;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform .35s var(--ease),opacity .25s}
.btn:active{transform:scale(.97)}
.btn--ghost{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1px var(--line)}
.btn--small{min-height:44px;padding:0 22px;font-size:14.5px}
@media (hover:hover) and (pointer:fine){
  .btn:hover{transform:translateY(-2px);opacity:.88}
  .btn--ghost:hover{opacity:1;box-shadow:inset 0 0 0 1px var(--fg)}
}

/* общие */
.section{background:var(--bg);color:var(--fg);padding:clamp(88px,12vw,168px) 0}
.tag{font:500 13px/1 var(--text);letter-spacing:.02em;color:var(--dim);margin-bottom:28px}
.h2{font-size:clamp(34px,5vw,68px);line-height:1;margin-bottom:26px;max-width:17ch}
.lead{color:var(--dim);max-width:54ch;font-size:clamp(17px,1.45vw,19px)}
.dot{flex:none;width:7px;height:7px;border-radius:50%;background:#7fd3a0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{font:400 13px/1 var(--text);padding:9px 14px;border:1px solid var(--line);border-radius:99px;color:var(--dim)}

/* появление */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.js .reveal.is-visible{opacity:1;transform:none}
.js .stagger>*{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0)*90ms)}
.js .stagger.is-visible>*{opacity:1;transform:none}

/* шапка */
.header{position:sticky;top:0;z-index:40}
.header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(11,11,12,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header__in{display:flex;align-items:center;gap:32px;min-height:72px}
.logo{display:inline-flex;align-items:center;gap:11px;font:600 20px/1 var(--head);letter-spacing:-.04em;text-decoration:none;margin-right:auto}
/* поворот вокруг центра треугольника: на 120° знак совпадает сам с собой, шампань переходит на другую вершину */
.logo__mark{display:block;width:26px;height:24px;transform-origin:50% 63.9%;transition:transform .6s var(--ease)}
@media (hover:hover) and (pointer:fine){.logo:hover .logo__mark{transform:rotate(-120deg)}}
.nav{display:flex;gap:30px;font-size:14.5px}
.nav a{text-decoration:none;color:var(--dim);transition:color .25s}
.nav a:hover{color:var(--fg)}
@media (max-width:900px){.nav{display:none}}

/* первый экран */
.hero{position:relative;overflow:hidden;padding:clamp(72px,11vw,150px) 0 0;text-align:center}
.hero__glow{position:absolute;inset:0;pointer-events:none}
/* виньетка поверх видео вместо mask-image на самом видео (маска пересчитывалась на каждом кадре ролика) */
.hero__glow::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 75% 70% at 50% 40%,transparent 35%,var(--bg) 100%)}
/* без filter:blur — радиальный градиент и так мягкий, а размытие огромного слоя на каждом кадре анимации тормозило */
.hero__glow i{position:absolute;border-radius:50%;opacity:.5;will-change:transform}
.hero__glow i:first-child{left:50%;top:-34%;width:min(980px,120vw);aspect-ratio:1.5;margin-left:calc(min(980px,120vw)/-2);
  background:radial-gradient(closest-side,rgba(205,185,145,.36),transparent);animation:drift 18s ease-in-out infinite alternate}
.hero__glow i:last-child{right:-12%;bottom:-10%;width:min(620px,80vw);aspect-ratio:1;
  background:radial-gradient(closest-side,rgba(243,241,236,.1),transparent);animation:drift 24s ease-in-out infinite alternate-reverse}
@keyframes drift{to{transform:translate3d(6%,8%,0) scale(1.12)}}
.hero>.wrap{position:relative}
.hero__in{display:grid;justify-items:center}
.pill{display:inline-flex;padding:9px 18px;border:1px solid var(--line);border-radius:99px;font-size:13.5px;color:var(--dim);margin-bottom:clamp(28px,4vw,44px);background:rgba(243,241,236,.03)}
.hero__title{font-size:clamp(44px,8.2vw,124px);line-height:.94;letter-spacing:-.05em;max-width:11.5ch;margin-bottom:clamp(26px,3vw,40px)}
.hero__sub{font-size:clamp(17px,1.5vw,20px);color:var(--dim);max-width:50ch}
.hero__cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:40px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(64px,9vw,120px);border-top:1px solid var(--line);text-align:left}
.facts li{padding:30px 28px 36px 0}
.facts li+li{padding-left:28px;border-left:1px solid var(--line)}
.facts b{display:block;font:500 clamp(30px,3.6vw,48px)/1 var(--head);letter-spacing:-.04em;margin-bottom:12px}
.facts span{color:var(--dim);font-size:15px}
@media (max-width:640px){
  .facts{grid-template-columns:1fr}
  .facts li,.facts li+li{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:20px 0;border-left:0}
  .facts li+li{border-top:1px solid var(--line)}
  .facts b{margin:0;font-size:28px}
  .facts span{text-align:right}
}

/* принцип */
.manifest{padding:clamp(88px,13vw,190px) 0;border-top:1px solid var(--line);text-align:center}
.manifest__text{font:500 clamp(26px,3.7vw,52px)/1.14 var(--head);letter-spacing:-.035em;max-width:24ch;margin:0 auto}
.niches{margin:clamp(44px,5vw,72px) auto 0;max-width:70ch;font-size:14.5px;line-height:1.9;color:var(--dim)}

/* задачи */
.tasks{margin-top:clamp(44px,5vw,72px);border-top:1px solid var(--line)}
.task__tab{display:flex;align-items:center;gap:18px;width:100%;padding:22px 0;background:none;border:0;border-bottom:1px solid var(--line);
  text-align:left;font:500 clamp(18px,1.6vw,21px)/1.25 var(--head);letter-spacing:-.025em;color:var(--dim);cursor:pointer;transition:color .25s}
.task__tab span{flex:none;width:26px;font:italic 400 19px/1 var(--serif);letter-spacing:0}
.task__tab::after{content:"+";margin-left:auto;font:300 26px/1 var(--head);transition:transform .35s var(--ease)}
.task__tab[aria-expanded="true"]{color:var(--fg)}
.task__tab[aria-expanded="true"] span{color:var(--acc)}
.task__tab[aria-expanded="true"]::after{transform:rotate(45deg)}
@media (hover:hover) and (pointer:fine){.task__tab:hover{color:var(--fg)}}
.task__panel{padding:26px 0 36px;border-bottom:1px solid var(--line)}
.js .task__panel:not(.is-open){display:none}
.task__sit{font:500 clamp(20px,2vw,27px)/1.3 var(--head);letter-spacing:-.025em;margin-bottom:32px}
.task__label{font-size:13px;color:var(--dim);margin-bottom:6px}
.task__panel ul{margin-bottom:28px}
.task__panel li{padding:14px 0;border-bottom:1px solid var(--line)}
.task__res{margin-bottom:24px;color:var(--dim)}
.task__res b{font-weight:500;color:var(--fg)}
.tasks__more{margin-top:36px;color:var(--dim)}
.tasks__more a{color:var(--fg);text-underline-offset:4px}
@media (min-width:900px){
  .js .tasks{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:repeat(9,auto) 1fr;column-gap:clamp(40px,6vw,96px);border-top:0}
  .js .task__tab{grid-column:1}
  .js .task__tab:first-child{border-top:1px solid var(--line)}
  .js .task__tab::after{content:"→";font-size:19px;opacity:0;transform:translateX(-8px)}
  .js .task__tab[aria-expanded="true"]::after{opacity:1;transform:none}
  .js .task__panel{grid-column:2;grid-row:1/span 10;align-self:start;padding:clamp(32px,3.4vw,52px);border:1px solid var(--line);border-radius:28px;background:var(--card)}
  .js .task__panel.is-open{animation:panel-in .6s var(--ease)}
}
@keyframes panel-in{from{opacity:0;transform:translateY(14px)}}

/* возможности */
.skills{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(48px,6vw,88px);border-top:1px solid var(--line)}
.skill{padding:36px 36px 48px 0;border-bottom:1px solid var(--line)}
.skill:not(:nth-child(3n+1)){padding-left:36px;border-left:1px solid var(--line)}
.skill__n{font:italic 400 24px/1 var(--serif);color:var(--acc);margin-bottom:clamp(40px,5vw,72px)}
.skill h3{font-size:clamp(24px,2.4vw,32px);line-height:1.1;margin-bottom:22px}
.skill li{padding:9px 0;color:var(--dim);font-size:15.5px;line-height:1.45}
.always{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);margin-top:44px}
.always .tag{margin-bottom:12px}
.always p:last-child{font-size:15.5px;color:var(--dim);max-width:52ch}
@media (max-width:980px){
  .skills{grid-template-columns:1fr 1fr}
  .skill:not(:nth-child(3n+1)){padding-left:0;border-left:0}
  .skill:nth-child(even){padding-left:32px;border-left:1px solid var(--line)}
}
@media (max-width:640px){
  .skills,.always{grid-template-columns:1fr}
  .skill,.skill:nth-child(even){padding:30px 0 36px;border-left:0}
  .skill__n{margin-bottom:26px}
}

/* ИИ */
.ai{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:start}
.rules{margin-top:40px;border-top:1px solid var(--line)}
.rules li{padding:18px 0;border-bottom:1px solid var(--line);color:var(--dim);font-size:16px}
.rules b{color:var(--fg);font-weight:500}
.chat{--fg:var(--white);--dim:rgba(243,241,236,.58);--line:rgba(243,241,236,.13);
  border-radius:28px;background:var(--black);color:var(--fg);overflow:hidden;box-shadow:0 50px 100px -60px rgba(0,0,0,.55)}
.chat__top{display:flex;align-items:center;gap:14px;padding:20px 24px;border-bottom:1px solid var(--line)}
.chat__top b{display:block;font-weight:500;line-height:1.3}
.chat__top small{font-size:13px;color:var(--dim)}
.chat__log{display:flex;flex-direction:column;gap:12px;padding:24px;min-height:310px;max-height:430px;overflow-y:auto;overscroll-behavior:contain}
.bubble{max-width:88%;padding:14px 18px;border-radius:20px 20px 20px 6px;background:#1c1c1e;font-size:15.5px;line-height:1.5;animation:panel-in .45s var(--ease)}
.bubble--user{align-self:flex-end;border-radius:20px 20px 6px 20px;background:var(--white);color:var(--black)}
.bubble__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.bubble__meta span{font-size:12px;line-height:1;padding:7px 10px;border-radius:99px;border:1px solid var(--line);color:#cdb991}
.bubble--typing{display:flex;gap:5px;padding:18px}
.bubble--typing i{width:6px;height:6px;border-radius:50%;background:var(--dim);animation:blink 1s infinite}
.bubble--typing i:nth-child(2){animation-delay:.15s}.bubble--typing i:nth-child(3){animation-delay:.3s}
@keyframes blink{50%{opacity:.25}}
.chat__ask{display:flex;flex-wrap:wrap;gap:8px;padding:0 24px 18px}
.chat__ask button{min-height:42px;padding:8px 16px;border-radius:99px;border:1px solid var(--line);background:transparent;font-size:14.5px;text-align:left;cursor:pointer;transition:border-color .25s,opacity .25s}
.chat__ask button:disabled{opacity:.3;cursor:default}
@media (hover:hover) and (pointer:fine){.chat__ask button:not(:disabled):hover{border-color:var(--fg)}}
.chat__note{padding:16px 24px;border-top:1px solid var(--line);font-size:13px;line-height:1.5;color:var(--dim)}
@media (max-width:980px){.ai{grid-template-columns:1fr}}

/* подход */
.steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(48px,6vw,88px);border-top:1px solid var(--line)}
.step{padding:32px 30px 0 0}
.step+.step{padding-left:30px;border-left:1px solid var(--line)}
.step__n{display:block;font:italic 400 clamp(44px,5vw,68px)/1 var(--serif);color:var(--acc);margin-bottom:clamp(36px,5vw,72px)}
.step h3{font-size:22px;line-height:1.15;margin-bottom:14px}
.step p{color:var(--dim);font-size:15.5px}
@media (max-width:980px){
  .steps{grid-template-columns:1fr 1fr}
  .step{padding-bottom:36px}
  .step:nth-child(3){padding-left:0;border-left:0}
  .step:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:560px){
  .steps{grid-template-columns:1fr}
  .step,.step+.step{padding:28px 0 32px;border-left:0}
  .step+.step{border-top:1px solid var(--line)}
  .step__n{margin-bottom:20px}
}

/* цены */
.prices{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,6vw,96px);align-items:start}
.pricelist{border-top:1px solid var(--fg)}
.pricelist>div{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:26px 0;border-bottom:1px solid var(--line)}
.pricelist dt{font:500 clamp(19px,1.8vw,23px)/1.2 var(--head);letter-spacing:-.03em}
.pricelist dt small{display:block;margin-top:8px;font:400 15px/1.5 var(--text);letter-spacing:0;color:var(--dim);max-width:44ch}
.pricelist dd{flex:none;font:500 clamp(21px,2.1vw,28px)/1.2 var(--head);letter-spacing:-.04em;text-align:right;white-space:nowrap}
.pricelist dd small{font:400 14px var(--text);letter-spacing:0;color:var(--dim)}
.pricelist dd small.nl{display:block;margin-top:4px}
.pricelist__ask{font:italic 400 24px/1 var(--serif)!important;letter-spacing:0!important;color:var(--acc)}
@media (max-width:980px){.prices{grid-template-columns:1fr}}
@media (max-width:520px){.pricelist>div{flex-direction:column;gap:12px}.pricelist dd{text-align:left}}

/* честно */
.honest{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,96px);align-items:start}
.honest__list{border-top:1px solid var(--line)}
.honest__list li{padding:26px 0;border-bottom:1px solid var(--line);color:var(--dim)}
.honest__list b{display:block;margin-bottom:8px;font:500 22px/1.2 var(--head);letter-spacing:-.03em;color:var(--fg)}
@media (max-width:980px){.honest{grid-template-columns:1fr}}

/* вопросы */
.faq-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,96px)}
@media (max-width:980px){.faq-wrap{grid-template-columns:1fr;gap:20px}}
.faq{border-top:1px solid var(--fg)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:24px 0;font:500 19px/1.3 var(--head);letter-spacing:-.025em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;font:300 26px/1 var(--head);transition:transform .35s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding-bottom:26px;color:var(--dim);max-width:62ch}
@supports (interpolate-size:allow-keywords){
  :root{interpolate-size:allow-keywords}
  .faq details::details-content{height:0;overflow:hidden;transition:height .4s ease,content-visibility .4s allow-discrete}
  .faq details[open]::details-content{height:auto}
}

/* контакты */
.contact{position:relative;overflow:hidden;padding:clamp(96px,14vw,200px) 0 clamp(72px,9vw,120px);text-align:center}
.contact::before{content:"";position:absolute;left:50%;bottom:-45%;width:min(1100px,130vw);aspect-ratio:1.6;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(205,185,145,.22),transparent);pointer-events:none}
.contact__in{position:relative;display:grid;justify-items:center}
.contact__title{font-size:clamp(40px,7.4vw,112px);line-height:.95;letter-spacing:-.05em;max-width:12ch;margin-bottom:30px}
.contact__sub{max-width:50ch;font-size:clamp(17px,1.5vw,20px);color:var(--dim);margin-bottom:40px}
.contact__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}

/* подвал */
.footer{overflow:hidden;border-top:1px solid var(--line);color:var(--dim);font-size:13.5px}
.footer__mark{font:600 clamp(88px,24vw,400px)/.8 var(--head);letter-spacing:-.07em;text-align:center;white-space:nowrap;
  padding:clamp(28px,4vw,56px) 0 0;color:transparent;background:linear-gradient(rgba(243,241,236,.2),rgba(243,241,236,0) 88%);-webkit-background-clip:text;background-clip:text;user-select:none}
.footer__in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:26px}

/* ===== движение: технологичный слой ===== */
/* прогресс прокрутки */
.progress{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,#cdb991 30%,#f3f1ec);transform:scaleX(0);transform-origin:0 50%;z-index:1}

/* волна из точек */
.wave{position:absolute;left:0;bottom:0;width:100%;height:78%;pointer-events:none;opacity:.9;
  -webkit-mask-image:linear-gradient(transparent,#000 38%,#000 72%,transparent);mask-image:linear-gradient(transparent,#000 38%,#000 72%,transparent)}
.wave--contact{height:70%;opacity:.7}
.contact>.wrap{position:relative}

/* заголовок первого экрана: слова поднимаются по очереди */
.js .hero__title.is-split{opacity:1;transform:none}
.hero__title .w{display:inline-block;opacity:0;transform:translateY(.55em) rotate(2.5deg);transform-origin:0 100%}
.hero__title.is-visible .w{animation:word 1.1s var(--ease) both;animation-delay:calc(var(--w)*85ms + .1s)}
@keyframes word{to{opacity:1;transform:none}}

/* принцип: слова загораются по мере прокрутки */
.manifest__text .mw{opacity:.2;transition:opacity .5s ease}
.manifest__text .mw.on{opacity:1}

/* бегущая строка */
.ticker{overflow:hidden;border-block:1px solid var(--line);padding:clamp(22px,3vw,40px) 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.ticker__track{display:flex;width:max-content;animation:ticker 46s linear infinite}
.ticker__track span{display:flex;align-items:center;font:500 clamp(34px,5.4vw,84px)/1 var(--head);letter-spacing:-.045em;white-space:nowrap;
  color:transparent;-webkit-text-stroke:1px rgba(243,241,236,.38)}
.ticker__track span i{font:italic 400 1.08em/1 var(--serif);letter-spacing:-.02em;color:var(--acc);-webkit-text-stroke:0}
.ticker__track span::after{content:"";width:9px;height:9px;margin:0 clamp(26px,4vw,60px);border-radius:50%;background:var(--acc);opacity:.7}
@keyframes ticker{to{transform:translateX(-50%)}}

/* луч по тонким линиям */
.skills,.steps,.pricelist,.faq{position:relative;overflow-x:clip}
.skills::before,.steps::before,.pricelist::before,.faq::before{content:"";position:absolute;top:-1px;left:0;width:26%;height:1px;
  background:linear-gradient(90deg,transparent,var(--acc),transparent);animation:beam 7s cubic-bezier(.4,0,.2,1) infinite}
.steps::before{animation-delay:1.5s}.pricelist::before{animation-delay:.8s}.faq::before{animation-delay:2.4s}
@keyframes beam{from{transform:translateX(-110%)}to{transform:translateX(495%)}}

/* свет за курсором */
.spot{position:relative}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(205,185,145,.13),transparent 70%)}
.spot:hover::after{opacity:1}
.section--light .spot::after{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(132,112,63,.1),transparent 70%)}

/* путь клиента */
.flow-sec{border-bottom:1px solid var(--line)}
.flow{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:28px;margin-top:clamp(56px,7vw,104px);padding-top:44px}
.flow::before{content:"";position:absolute;left:0;right:0;top:5px;height:1px;background:var(--line)}
.flow::after{content:"";position:absolute;left:0;top:5px;width:100%;height:1px;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent 55%,rgba(205,185,145,.9) 97%,#fff);animation:flow-x 6s linear infinite}
.flow{clip-path:inset(-24px)}
.flow li{position:relative}
.flow li::before{content:"";position:absolute;left:0;top:-44px;width:11px;height:11px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 1px var(--dim);z-index:1}
.flow li::after{content:"";position:absolute;left:0;top:-44px;width:11px;height:11px;border-radius:50%;background:var(--acc);z-index:2;opacity:0;
  animation:node 6s linear infinite;animation-delay:calc(var(--n,0)*1.2s)}
.flow li:nth-child(2){--n:1}.flow li:nth-child(3){--n:2}.flow li:nth-child(4){--n:3}.flow li:nth-child(5){--n:4}
.flow b{display:block;font:500 clamp(19px,1.7vw,23px)/1.2 var(--head);letter-spacing:-.03em;margin-bottom:10px}
.flow span{display:block;color:var(--dim);font-size:15px;line-height:1.5}
@keyframes flow-x{to{transform:translateX(0)}}
@keyframes flow-y{to{transform:translateY(0)}}
@keyframes node{0%{opacity:0;transform:scale(1)}3%{opacity:1;transform:scale(1.9)}14%{opacity:1;transform:scale(1)}32%,100%{opacity:0;transform:scale(1)}}
@media (max-width:860px){
  .flow{grid-template-columns:1fr;gap:0;padding:0 0 0 36px}
  .flow::before{left:5px;right:auto;top:0;bottom:0;width:1px;height:auto}
  .flow::after{left:5px;top:0;width:1px;height:100%;transform:translateY(-100%);
    background:linear-gradient(transparent 55%,rgba(205,185,145,.9) 97%,#fff);animation-name:flow-y}
  .flow li{padding:0 0 30px}
  .flow li:last-child{padding-bottom:0}
  .flow li::before,.flow li::after{left:-36px;top:6px}
}

/* чат: «в сети» */
.chat__top .dot{animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}

/* ===== видео ===== */
video{display:block;width:100%;background:#0b0b0c}
/* фон первого экрана: собственный ролик-петля под свечением и волной */
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:.6;background:transparent}

/* место под ИИ-ролик */
.reel{padding:clamp(56px,8vw,112px) 0 0}
.reel__frame{border-radius:clamp(20px,2.4vw,32px);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/9;background:#141415}
.reel__frame video{height:100%;object-fit:cover}

/* вживую: записи интерфейсов в рамке телефона */
.live{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center}
.phones{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,3vw,40px);max-width:640px;justify-self:end;width:100%}
.phone__screen{aspect-ratio:390/844;border-radius:clamp(26px,3.4vw,46px);overflow:hidden;background:var(--black);
  border:clamp(5px,.8vw,10px) solid var(--black);box-shadow:0 0 0 1px var(--line),0 60px 90px -60px rgba(0,0,0,.55)}
.phone__screen video{height:100%;object-fit:cover;border-radius:clamp(20px,2.6vw,36px)}
.phone figcaption{margin-top:18px;font-size:14px;color:var(--dim);text-align:center}
.phone:nth-child(2){margin-top:clamp(40px,6vw,88px)}
@media (max-width:980px){.live{grid-template-columns:1fr}.phones{justify-self:center}}

/* ролик «как мы работаем» */
.howreel{margin-top:clamp(56px,7vw,104px)}
.howreel video{aspect-ratio:16/9;border-radius:clamp(20px,2.4vw,32px);border:1px solid var(--line);object-fit:cover}
.howreel figcaption{margin-top:16px;font-size:14px;color:var(--dim)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal,.js .stagger>*,.hero__title .w,.manifest__text .mw{opacity:1!important;transform:none!important}
  .flow::after,.skills::before,.steps::before,.pricelist::before,.faq::before{display:none}
}
