/* Главная v2 «Графит». Все правила ограничены body.home-v2, чтобы не задеть остальные страницы.
   Общие стили сайта (site.css, visual-system.css) задают section, h1, h2, button, header, footer:
   здесь они явно переопределены. */
body.home-v2 .hv{position:relative;z-index:2}
body.home-v2 .hv section{padding:0;max-width:none;margin:0}
body.home-v2 .hv-plate .hv-hud{color:var(--hv-ink2)}
body.home-v2 .hv-rail a:hover span,body.home-v2 .hv-rail a:focus-visible span{opacity:1;color:var(--hv-text)}
body.home-v2 .hv h1,body.home-v2 .hv h2,body.home-v2 .hv h3,body.home-v2 .hv p{margin:0;max-width:none;text-wrap:wrap}

/* сцена частиц и зерно */
body.home-v2 .hv-scene{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none;transition:opacity .8s}
body.home-v2 .hv-scene.off{opacity:0}
body.home-v2 .hv-grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}

/* шапка */


/* шкала разделов слева */
body.home-v2 .hv-rail{position:fixed;left:calc(var(--hv-gut) * .42);top:50%;transform:translateY(-50%);z-index:15;display:flex;flex-direction:column;align-items:center;transition:opacity .4s}
body.home-v2 .hv-rail.hide{opacity:0;pointer-events:none}
body.home-v2 .hv-rail a{position:relative;display:block;width:22px;height:34px;text-decoration:none}
body.home-v2 .hv-rail a::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--hv-line2);transform:translateX(-50%)}
body.home-v2 .hv-rail a::after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:var(--hv-mut2);transform:translate(-50%,-50%);transition:all .35s var(--hv-ease)}
body.home-v2 .hv-rail a.on::after{width:9px;height:9px;background:var(--hv-bg);border:1.5px solid var(--hv-text)}
body.home-v2 .hv-rail a span{position:absolute;left:24px;top:50%;transform:translateY(-50%);white-space:nowrap;opacity:0;transition:opacity .25s}
body.home-v2 .hv-rail-cap{margin-top:14px;writing-mode:vertical-rl;transform:rotate(180deg)}

/* первый экран */
body.home-v2 .hv .hv-hero{min-height:100svh;display:grid;align-content:end;padding:140px var(--hv-gut) clamp(40px,7vh,72px)}
body.home-v2 .hv-hero-grid{display:grid;gap:28px;max-width:min(980px,62vw)}
body.home-v2 .hv h1{font:500 clamp(46px,8.6vw,148px)/.9 var(--hv-sans);letter-spacing:-.055em;margin:0}
body.home-v2 .hv h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
body.home-v2 .hv h1 .ln>span{display:inline-block;transform:translateY(105%);animation:hv-up 1.1s var(--hv-ease) forwards}
body.home-v2 .hv h1 .ln:nth-child(2)>span{animation-delay:.12s}
body.home-v2 .hv h1 .ln:nth-child(3)>span{animation-delay:.24s}
body.home-v2 .hv h1 em{font-style:normal;color:var(--hv-accent)}
body.home-v2 .hv h1 .dim{color:var(--hv-mut2)}
@keyframes hv-up{to{transform:none}}
@keyframes hv-fade{to{opacity:1}}
body.home-v2 .hv-hero-side{opacity:0;animation:hv-fade 1s .7s var(--hv-ease) forwards}
body.home-v2 .hv-hero-side p{color:var(--hv-mut);font-size:17px;line-height:1.55;max-width:24em}
body.home-v2 .hv .hv-hero-side p.hv-ru-note{margin-top:14px;font-size:14px;color:var(--hv-mut2)}
body.home-v2 .hv-hero-side b{color:var(--hv-text);font-weight:500}
body.home-v2 .hv-hero-foot{display:flex;justify-content:space-between;align-items:end;margin-top:clamp(40px,7vh,80px);padding-top:18px;border-top:1px solid var(--hv-line)}
body.home-v2 .hv-cue{display:flex;align-items:center;gap:12px}
body.home-v2 .hv-cue i{display:block;width:1px;height:34px;background:linear-gradient(var(--hv-text),transparent);animation:hv-cue 2.4s var(--hv-io) 3}
@keyframes hv-cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* светлая плита */
body.home-v2 .hv .hv-plate{background:var(--hv-paper);color:var(--hv-ink);border-radius:clamp(20px,3vw,40px);margin:0 clamp(8px,1.2vw,18px);padding:clamp(72px,11vw,170px) var(--hv-gut) clamp(56px,8vw,120px)}
body.home-v2 .hv .hv-manifest{margin-top:28px;font:500 clamp(30px,4.6vw,76px)/1.04 var(--hv-sans);letter-spacing:-.045em;max-width:15.5em}
body.home-v2 .hv-manifest .w{color:rgba(20,20,24,.16);transition:color .35s}
body.home-v2 .hv-manifest .w.lit{color:var(--hv-ink)}
body.home-v2 .hv-pic{display:inline-grid;place-items:center;vertical-align:-.12em;width:1.5em;height:.88em;margin:0 .06em;border-radius:999px;background:var(--hv-ink);color:var(--hv-paper)}
body.home-v2 .hv-pic svg{width:.6em;height:.6em}
body.home-v2 .hv-pic :is(path,circle,rect){fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:80;transition:stroke-dashoffset 1.2s var(--hv-ease)}
body.home-v2 .hv-pic.lit :is(path,circle,rect){stroke-dashoffset:0}
body.home-v2 .hv-pic.red{background:var(--hv-accent-d)}
body.home-v2 .hv-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,48px);margin-top:clamp(64px,9vw,128px);padding-top:28px;border-top:1px solid rgba(20,20,24,.12)}
body.home-v2 .hv-facts svg{width:28px;height:28px;color:var(--hv-accent-d);margin-bottom:16px}
body.home-v2 .hv-facts svg *{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
body.home-v2 .hv .hv-facts h3{margin:0 0 6px;font:500 17px/1.25 var(--hv-sans);letter-spacing:-.01em}
body.home-v2 .hv .hv-facts p{color:var(--hv-ink2);font-size:14.5px;line-height:1.5}

/* этапы */
body.home-v2 .hv .hv-stage{min-height:100svh;display:grid;align-content:center;padding:120px var(--hv-gut)}
body.home-v2 .hv-stage-in{max-width:560px;margin-left:clamp(0px,4vw,60px)}
body.home-v2 .hv .hv-stage h2{font:500 clamp(48px,7vw,112px)/.92 var(--hv-sans);letter-spacing:-.055em}
body.home-v2 .hv-stage h2 sup{font:400 .2em/1 var(--hv-sans);letter-spacing:0;color:var(--hv-accent);vertical-align:top;position:relative;top:.55em;margin-left:.35em}
body.home-v2 .hv .hv-stage h2+p{margin:22px 0 40px;color:var(--hv-mut);font-size:clamp(16px,1.3vw,18.5px);line-height:1.55;max-width:28em}
body.home-v2 .hv-tools{list-style:none;margin:0;padding:0;border-top:1px solid var(--hv-line)}
body.home-v2 .hv-tools a{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:18px 0;border-bottom:1px solid var(--hv-line);text-decoration:none;position:relative}
body.home-v2 .hv-tools a::before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--hv-text);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--hv-ease)}
body.home-v2 .hv-tools .t{font:500 21px/1.2 var(--hv-sans);letter-spacing:-.02em}
body.home-v2 .hv-tools .d{grid-column:1;color:var(--hv-mut);font-size:14.5px}
body.home-v2 .hv-tools .ar{grid-row:1/3;grid-column:2;align-self:center;color:var(--hv-mut2);transition:transform .4s var(--hv-ease),color .25s}
body.home-v2 .hv-tools a:hover .ar{transform:translateX(4px) rotate(-45deg);color:var(--hv-text)}
body.home-v2 .hv-tools .x{font-size:11px;color:var(--hv-mut2);margin-left:8px;vertical-align:2px;letter-spacing:.1em}

/* живой расчёт */
body.home-v2 .hv-lab{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center;max-width:1180px;margin-left:clamp(0px,4vw,60px)}
body.home-v2 .hv-lab .hv-stage-in{margin:0}
body.home-v2 .hv-bench{border:1px solid var(--hv-line2);border-radius:20px;padding:26px;background:rgba(20,21,25,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body.home-v2 .hv-bench-top{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}
body.home-v2 .hv-gauge{position:relative;width:min(240px,100%);aspect-ratio:1;margin:6px auto 18px}
body.home-v2 .hv-gauge svg{width:100%;height:100%;transform:rotate(135deg)}
body.home-v2 .hv-gauge circle{fill:none;stroke-linecap:round}
body.home-v2 .hv-gauge .trk{stroke:var(--hv-line2);stroke-width:1}
body.home-v2 .hv-gauge .tick{stroke:var(--hv-line2);stroke-width:6}
body.home-v2 .hv-gauge .val{stroke:var(--hv-accent);stroke-width:3;transition:stroke-dashoffset .5s var(--hv-ease)}
body.home-v2 .hv-gauge-v{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
body.home-v2 .hv-gauge-v b{font:500 52px/1 var(--hv-sans);letter-spacing:-.04em}
body.home-v2 .hv-gauge-v span{color:var(--hv-mut);margin-top:6px}
body.home-v2 .hv-sl{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--hv-line)}
body.home-v2 .hv-sl label{display:block;margin:0;font-weight:500;width:2ch}
body.home-v2 .hv-sl output{min-width:7ch;text-align:right;color:var(--hv-mut)}
body.home-v2 .hv input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:20px;background:none;cursor:pointer;padding:0;border:0}
body.home-v2 .hv input[type=range]::-webkit-slider-runnable-track{height:1px;background:var(--hv-line2)}
body.home-v2 .hv input[type=range]::-moz-range-track{height:1px;background:var(--hv-line2)}
body.home-v2 .hv input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--hv-text);margin-top:-6.5px;border:0}
body.home-v2 .hv input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--hv-text);border:0}
body.home-v2 .hv .hv-formula{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--hv-line);font-size:16px;color:var(--hv-mut)}
body.home-v2 .hv-formula b{color:var(--hv-text);font-weight:500}
body.home-v2 .hv .hv-more{margin-top:28px;color:var(--hv-mut);font-size:15px;line-height:1.9}
body.home-v2 .hv-more a{color:var(--hv-text);text-decoration:none;border-bottom:1px solid var(--hv-line2)}
body.home-v2 .hv-more a:hover{border-color:var(--hv-text)}

/* цифры */
body.home-v2 .hv .hv-stats{padding:clamp(80px,10vw,160px) var(--hv-gut);background:linear-gradient(transparent,var(--hv-bg) 18%)}
body.home-v2 .hv-stats-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:40px;flex-wrap:wrap}
body.home-v2 .hv .hv-stats-head h2,body.home-v2 .hv .hv-human h2{font:500 clamp(34px,4.6vw,72px)/.98 var(--hv-sans);letter-spacing:-.05em;max-width:12em}
body.home-v2 .hv-cards{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:12px}
body.home-v2 .hv-card{position:relative;border:1px solid var(--hv-line);border-radius:20px;background:var(--hv-bg2);padding:24px;min-height:220px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
body.home-v2 .hv-card b.big{font:500 clamp(54px,6vw,92px)/.9 var(--hv-sans);letter-spacing:-.05em}
body.home-v2 .hv .hv-card p{margin-top:8px;color:var(--hv-mut);font-size:14.5px;max-width:22em}
body.home-v2 .hv-card a{color:var(--hv-text);border-bottom:1px solid var(--hv-line2)}
body.home-v2 .hv-card.tall{grid-row:1/3}
body.home-v2 .hv-card.wide{grid-column:span 2}
body.home-v2 .hv-stack{display:grid;gap:8px;margin:18px 0}
body.home-v2 .hv-stack span{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--hv-line);border-radius:12px;padding:12px 14px;background:var(--hv-s1);font-size:14px}
body.home-v2 .hv-stack span:nth-child(2){margin-left:10px}body.home-v2 .hv-stack span:nth-child(3){margin-left:20px}body.home-v2 .hv-stack span:nth-child(4){margin-left:30px}body.home-v2 .hv-stack span:nth-child(5){margin-left:40px}
body.home-v2 .hv-stack em{font-style:normal;color:var(--hv-mut)}
body.home-v2 .hv-codes{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
body.home-v2 .hv-codes a{font:500 12px/1 var(--hv-sans);letter-spacing:.08em;border:1px solid var(--hv-line2);border-radius:999px;padding:7px 10px;text-decoration:none;color:var(--hv-mut)}
body.home-v2 .hv-codes a:hover{color:var(--hv-text);border-color:var(--hv-text)}

/* консультация */
body.home-v2 .hv .hv-human{padding:clamp(72px,9vw,140px) var(--hv-gut);border-top:1px solid var(--hv-line);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:end}
body.home-v2 .hv .hv-human h2{margin-top:18px}
body.home-v2 .hv .hv-human p{margin-bottom:26px;color:var(--hv-mut);font-size:17px;line-height:1.55;max-width:30em}
body.home-v2 .hv-btn{display:inline-flex;align-items:center;gap:12px;height:54px;padding:0 24px;border-radius:999px;background:var(--hv-text);color:var(--hv-bg);font:500 16px/1 var(--hv-sans);text-decoration:none;transition:background .25s}
body.home-v2 .hv-btn:hover{background:#fff}
body.home-v2 .hv-btn svg{transition:transform .4s var(--hv-ease)}
body.home-v2 .hv-btn:hover svg{transform:rotate(-45deg)}

/* подвал */

/* указатель инструментов (вместо меню) */

/* появление при прокрутке */
body.home-v2 .hv-rv{opacity:0;transform:translateY(28px);transition:opacity 1s var(--hv-ease),transform 1s var(--hv-ease)}
body.home-v2 .hv-rv.in{opacity:1;transform:none}
html:not(.hv-js) body.home-v2 .hv-rv{opacity:1;transform:none}

/* адаптив */
@media (max-width:1100px){
  body.home-v2 .hv-cards{grid-template-columns:1fr 1fr}
  body.home-v2 .hv-card.tall{grid-row:auto;grid-column:1/-1}
  body.home-v2 .hv-lab{grid-template-columns:1fr}
}
@media (max-width:900px){
  body.home-v2 .hv-hero-grid{max-width:none}
  body.home-v2 .hv-facts{grid-template-columns:1fr 1fr}
  body.home-v2 .hv-rail{display:none}
  body.home-v2 .hv-stage-in,body.home-v2 .hv-lab{margin-left:0}
}
@media (max-width:600px){
  body.home-v2 .hv-facts,body.home-v2 .hv-cards{grid-template-columns:1fr}
  body.home-v2 .hv-card.wide{grid-column:auto}
  body.home-v2 .hv .hv-hero{padding-top:110px}
  body.home-v2 .hv-gauge{width:min(200px,100%)}
}
@media (prefers-reduced-motion:reduce){
  body.home-v2 *,body.home-v2 *::before,body.home-v2 *::after{animation-duration:.001s!important;animation-delay:0s!important;transition-duration:.001s!important}
  body.home-v2 .hv-rv{opacity:1;transform:none}
}

