/* ═══════════ MAGMA · mvgma.com ═══════════ */

:root{
  --paper:      oklch(0.968 0.003 250);
  --surface:    #FFFFFF;
  --surface-2:  oklch(0.982 0.003 250);
  --obsidian:   oklch(0.168 0.008 265);
  --obsidian-2: oklch(0.225 0.010 265);

  --ink:        oklch(0.185 0.010 265);
  --ink-2:      oklch(0.335 0.012 265);
  --muted:      oklch(0.505 0.012 265);
  --faint:      oklch(0.635 0.010 265);

  --hair:       oklch(0.895 0.005 260);
  --hair-2:     oklch(0.825 0.007 260);
  --hair-dk:    oklch(0.320 0.010 265);
  --hair-dk-2:  oklch(0.280 0.010 265);

  --molten:     #CE4E22;
  --molten-ink: #A93A14;
  --molten-lit: #FF7A45;
  --molten-wash:oklch(0.955 0.028 45);
  --steel:      #2F6F8F;
  --steel-wash: oklch(0.955 0.020 235);
  --moss:       #3D6B4A;

  --sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"Martian Mono","SF Mono",ui-monospace,Menlo,Consolas,monospace;

  --gut: clamp(20px, 4vw, 56px);
  --max: 1320px;
  --z-nav: 200;
  --ease: cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit}
::selection{background:var(--molten);color:#fff}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--molten);outline-offset:3px}
.band-dark a:focus-visible,.band-dark button:focus-visible{outline-color:var(--molten-lit)}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 18px;z-index:999}
.skip:focus{left:12px;top:12px}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}

/* ─── типографика ─── */
h1,h2,h3,h4{font-weight:800;letter-spacing:-.032em;line-height:1.04;text-wrap:balance}
h1{font-size:clamp(34px,5vw,64px);letter-spacing:-.042em;line-height:1.02}
h2{font-size:clamp(25px,3.2vw,42px)}
h3{font-size:clamp(18px,1.6vw,23px);letter-spacing:-.026em;line-height:1.16}
h4{font-size:16px;font-weight:700;letter-spacing:-.015em}
p{text-wrap:pretty}
.lead{font-size:clamp(16.5px,1.4vw,19px);line-height:1.53;color:var(--ink-2);max-width:66ch}
.body{font-size:15.5px;line-height:1.62;color:var(--ink-2);max-width:68ch}
.small{font-size:14px;line-height:1.55;color:var(--muted)}
.src{font-family:var(--mono);font-size:10px;line-height:1.7;color:var(--faint)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.mark{color:var(--molten-ink);font-weight:600}
.eyebrow{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--molten-ink);margin-bottom:10px}

/* ─── навигация ─── */
.nav{position:sticky;top:0;z-index:var(--z-nav);background:color-mix(in oklab,var(--paper) 84%,transparent);
     backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--hair)}
.nav-in{max-width:var(--max);margin:0 auto;padding:0 var(--gut);min-height:82px;display:flex;align-items:center;gap:clamp(14px,3vw,40px)}
.logo{display:flex;align-items:center;gap:11px;text-decoration:none;flex:0 0 auto}
.logo svg{width:29px;height:21px}
.logo .wm{font-weight:800;font-size:18.5px;letter-spacing:.13em;line-height:1}
.nav-links{display:flex;gap:clamp(10px,1.6vw,26px);margin-left:auto;align-items:center}
.nav-links a{text-decoration:none;font-size:13.8px;font-weight:500;color:var(--ink-2);padding:6px 0;position:relative;white-space:nowrap;transition:color .2s var(--ease)}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1.5px;background:var(--molten);transition:right .35s var(--ease)}
.nav-links a:hover{color:var(--ink)}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{right:0}
.nav-links a[aria-current="page"]{color:var(--ink);font-weight:600}
.nav-cta{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;text-decoration:none;font-size:13.5px;font-weight:600;
         padding:10px 17px;flex:0 0 auto;border-radius:2px;transition:background .2s var(--ease),transform .2s var(--ease)}
.nav-cta:hover{background:var(--molten);color:#fff;transform:translateY(-1px)}
.progress{position:absolute;left:0;bottom:-1px;height:2px;background:var(--molten);width:0}
@media(max-width:900px){
  .nav-in{min-height:0;height:auto;flex-wrap:wrap;padding-block:16px 0;gap:14px}
  .nav-links{order:3;width:100%;margin-left:0;overflow-x:auto;gap:20px;padding:4px 0 14px;scrollbar-width:none}
  .nav-links::-webkit-scrollbar{display:none}
  .nav-links a{white-space:nowrap;font-size:13px}
  .lang{order:1;margin-left:12px}
  .nav-cta{order:2;margin-left:auto}
}
@media(max-width:560px){.nav-cta{font-size:11.5px;padding:9px 12px}.lang a,.lang span{padding:7px 8px}}

/* ─── каркас ─── */
.sec{padding-block:clamp(54px,6.6vw,102px)}
.sec-tight{padding-block:clamp(40px,4.6vw,72px)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(18px,4vw,60px);align-items:start;margin-bottom:clamp(28px,3.6vw,50px)}
@media(max-width:940px){.sec-head{grid-template-columns:1fr;gap:16px}}
.sec-head h2{max-width:17ch}
.rule{height:1px;background:var(--hair-2);margin-block:clamp(36px,4.6vw,64px)}
.band-dark{background:var(--obsidian);color:oklch(0.93 0.005 260)}
.band-dark h1,.band-dark h2,.band-dark h3,.band-dark h4{color:#fff}
.band-dark .lead,.band-dark .body{color:oklch(0.79 0.008 260)}
.band-dark .small{color:oklch(0.70 0.008 260)}
.band-dark .src{color:oklch(0.56 0.008 260)}
.band-dark .rule{background:var(--hair-dk)}
.band-dark .eyebrow{color:var(--molten-lit)}
.band-alt{background:var(--surface-2);border-block:1px solid var(--hair-2)}

.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:15px;font-weight:600;padding:14px 24px;border-radius:2px;transition:all .22s var(--ease);border:1px solid transparent}
.btn-p{background:var(--molten);color:#fff}
.btn-p:hover{background:var(--ink);transform:translateY(-2px)}
.btn-s{border-color:var(--hair-2);color:var(--ink);background:var(--surface)}
.btn-s:hover{border-color:var(--ink);transform:translateY(-2px)}
.band-dark .btn-s{background:transparent;border-color:var(--hair-dk);color:#fff}
.band-dark .btn-s:hover{border-color:#fff}
.btn svg{width:14px;height:14px;flex:0 0 auto}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* ─── шапка страницы ─── */
.phead{border-bottom:1px solid var(--hair-2);position:relative;overflow:hidden}
.phead-grid{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--hair) 1px,transparent 1px),linear-gradient(90deg,var(--hair) 1px,transparent 1px);
  background-size:72px 72px;mask-image:linear-gradient(180deg,#000 0%,transparent 82%)}
.phead-in{position:relative;padding-block:clamp(54px,6.4vw,100px) clamp(36px,4.6vw,72px);display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.86fr);gap:clamp(20px,4vw,60px);align-items:end}
@media(max-width:940px){.phead-in{grid-template-columns:1fr;gap:20px}}
.phead h1{max-width:16ch}
.crumb{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--faint);margin-bottom:18px}
.crumb a{text-decoration:none;color:var(--muted)}
.crumb a:hover{color:var(--molten-ink)}

/* ─── hero ─── */
.hero{position:relative;padding-top:clamp(52px,6.6vw,104px);overflow:hidden}
.hero-grid{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--hair) 1px,transparent 1px),linear-gradient(90deg,var(--hair) 1px,transparent 1px);
  background-size:72px 72px;mask-image:linear-gradient(180deg,#000 0%,transparent 78%)}
.hero-in{position:relative;display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:clamp(24px,4vw,60px);align-items:center}
@media(max-width:1040px){.hero-in{grid-template-columns:1fr;gap:30px}}
.hero h1{max-width:14ch}
.hero .lead{margin-top:clamp(18px,2.2vw,26px)}
.badge{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;
       color:var(--ink-2);border:1px solid var(--hair-2);background:var(--surface);padding:7px 13px;border-radius:100px;margin-bottom:22px}
.badge .dot{width:6px;height:6px;border-radius:50%;background:var(--molten);flex:0 0 auto}

/* ─── фигура с вкладками ─── */
.figbox{border:1px solid var(--hair-2);background:var(--surface);border-radius:3px;overflow:hidden}
.figtabs{display:flex;border-bottom:1px solid var(--hair-2);overflow-x:auto;scrollbar-width:none}
.figtabs::-webkit-scrollbar{display:none}
.figtab{flex:1 0 auto;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;font-weight:500;padding:11px 14px;background:transparent;
        border:0;border-right:1px solid var(--hair);cursor:pointer;color:var(--muted);transition:background .2s var(--ease),color .2s var(--ease);white-space:nowrap}
.figtab:last-child{border-right:0}
.figtab:hover{background:var(--surface-2);color:var(--ink)}
.figtab[aria-selected="true"]{background:var(--ink);color:#fff}
.figbody{padding:clamp(12px,1.6vw,20px)}
.figcap{font-family:var(--mono);font-size:9.5px;color:var(--faint);text-transform:uppercase;line-height:1.7;padding:0 clamp(12px,1.6vw,20px) 14px}

/* ─── цепочка / концепт ─── */
.chain{border:1px solid var(--hair-2);background:var(--surface);border-radius:3px;padding:clamp(18px,2.4vw,32px)}
.chain svg{width:100%;height:auto}

.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair-2);border:1px solid var(--hair-2)}
@media(max-width:860px){.trio{grid-template-columns:1fr}}
.trio>div{background:var(--surface);padding:clamp(20px,2.4vw,30px)}
.trio .ti{width:32px;height:32px;color:var(--molten);margin-bottom:16px}
.trio h4{margin-bottom:8px}
.trio p{font-size:13.8px;line-height:1.55;color:var(--ink-2)}
.band-dark .trio{background:var(--hair-dk);border-color:var(--hair-dk)}
.band-dark .trio>div{background:var(--obsidian-2)}
.band-dark .trio p{color:oklch(0.78 0.008 260)}
.band-dark .trio .ti{color:var(--molten-lit)}


/* ─── полоса проектов на главной ─── */
.geostrip{display:grid;grid-template-columns:repeat(4,1fr)}
@media(max-width:1100px) and (min-width:821px){.geostrip{grid-template-columns:repeat(2,1fr)}.geostrip a:nth-child(2){border-right:0}.geostrip a:nth-child(-n+2){border-bottom:1px solid var(--hair)}.geostrip a:nth-child(3){padding-left:0}}
.geostrip a{text-decoration:none;padding:26px clamp(16px,3vw,40px);border-right:1px solid var(--hair);display:block;transition:background .25s var(--ease)}
.geostrip a:first-child{padding-left:0}
.geostrip a:last-child{border-right:0;padding-right:0}
.geostrip a:hover{background:var(--surface)}
.geostrip .gt{font-weight:700;font-size:14.8px;letter-spacing:-.022em;margin-top:8px;line-height:1.25}
@media(max-width:820px){
  .geostrip{grid-template-columns:1fr}
  .geostrip a{border-right:0;border-bottom:1px solid var(--hair);padding:20px 0}
  .geostrip a:last-child{border-bottom:0}
}
/* ─── проекты ─── */
.projs{display:grid;gap:1px;background:var(--hair-2);border:1px solid var(--hair-2)}
.proj{background:var(--surface);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:0;transition:background .3s var(--ease)}
@media(max-width:940px){.proj{grid-template-columns:1fr}}
.proj-l{padding:clamp(22px,2.6vw,34px);border-right:1px solid var(--hair-2);display:flex;flex-direction:column;gap:14px}
@media(max-width:940px){.proj-l{border-right:0;border-bottom:1px solid var(--hair-2)}}
.proj-r{padding:clamp(22px,2.6vw,34px)}
.proj-logo{width:74px;height:74px;display:grid;place-items:center;padding:9px;background:#fff;border:1px solid var(--hair);border-radius:3px}
.proj-logo img{width:100%;height:100%;object-fit:contain}
.proj-geo{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--faint)}
.status{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;padding:5px 10px;border-radius:2px;width:fit-content}
.status.live{background:var(--molten);color:#fff}
.status.pilot{background:var(--steel-wash);color:var(--steel)}
.status.client{background:var(--ink);color:#fff}
.status.next{background:var(--surface-2);color:var(--muted);border:1px solid var(--hair-2)}

.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);margin:20px 0 4px}
.figures>div{background:var(--surface-2);padding:14px}
.figures .fv{font-family:var(--mono);font-size:clamp(16px,1.7vw,20px);font-weight:600;letter-spacing:-.045em;line-height:1.1;color:var(--ink)}
.figures .fv i{font-style:normal;font-size:.62em;color:var(--molten-ink)}
.figures .fk{font-size:11.6px;color:var(--muted);margin-top:7px;line-height:1.35}

/* ─── карточки-ссылки ─── */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:1px;background:var(--hair-2);border:1px solid var(--hair-2)}
.card{background:var(--surface);padding:clamp(20px,2.4vw,28px);text-decoration:none;display:flex;flex-direction:column;transition:background .25s var(--ease)}
.card:hover{background:var(--molten-wash)}
.card .ci{width:26px;height:26px;color:var(--molten);margin-bottom:16px}
.card h4{margin-bottom:8px}
.card p{font-size:13.6px;line-height:1.52;color:var(--ink-2);flex:1}
.card .go{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--molten-ink);margin-top:16px;display:flex;align-items:center;gap:7px}
.card .go svg{width:12px;height:12px;transition:transform .25s var(--ease)}
.card:hover .go svg{transform:translateX(4px)}

/* ─── определения ─── */
.kv{border-top:1px solid var(--hair)}
.kv>div{display:grid;grid-template-columns:minmax(92px,.34fr) 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--hair)}
@media(max-width:560px){.kv>div{grid-template-columns:1fr;gap:3px}}
.kv dt{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--faint);padding-top:3px}
.kv dd{font-size:14.2px;line-height:1.55;color:var(--ink-2)}
.band-dark .kv,.band-dark .kv>div{border-color:var(--hair-dk)}
.band-dark .kv dt{color:oklch(0.60 0.010 265)}
.band-dark .kv dd{color:oklch(0.80 0.008 260)}

.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.chips span{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;padding:5px 9px;background:var(--surface-2);border:1px solid var(--hair);color:var(--ink-2);border-radius:2px}

/* ─── слои платформы ─── */
.stack{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);border:1px solid var(--hair-2);background:var(--surface)}
@media(max-width:940px){.stack{grid-template-columns:1fr}}
.stack-l{padding:clamp(16px,2vw,26px);border-right:1px solid var(--hair-2)}
@media(max-width:940px){.stack-l{border-right:0;border-bottom:1px solid var(--hair-2)}}
.layer{display:grid;grid-template-columns:38px 1fr auto;gap:14px;align-items:center;width:100%;padding:15px 16px;background:var(--surface-2);
       border:1px solid var(--hair);cursor:pointer;text-align:left;font-family:inherit;margin-bottom:8px;transition:all .25s var(--ease);color:var(--ink)}
.layer:last-child{margin-bottom:0}
.layer:hover{border-color:var(--hair-2);background:#fff}
.layer[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.layer .ln{font-family:var(--mono);font-size:10px;color:var(--molten-ink)}
.layer[aria-selected="true"] .ln{color:var(--molten-lit)}
.layer .lt{display:block;font-weight:700;font-size:15px;letter-spacing:-.022em}
.layer .lh{display:block;font-size:12.4px;color:var(--muted);margin-top:3px;line-height:1.35}
.layer[aria-selected="true"] .lh{color:oklch(0.75 0.010 265)}
.layer .lar{width:16px;height:16px;color:var(--faint);transition:transform .25s var(--ease)}
.layer[aria-selected="true"] .lar{color:var(--molten-lit);transform:translateX(3px)}
.flowline{display:flex;align-items:center;gap:8px;padding:2px 0 10px 52px;font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--faint)}
.flowline::before{content:"";width:1px;height:14px;background:var(--hair-2)}
.stack-r{padding:clamp(20px,2.6vw,34px)}
.stack-r h3{margin-bottom:12px}

/* ─── панели / интерактив ─── */
.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:clamp(24px,3.6vw,54px);align-items:start}
@media(max-width:940px){.duo{grid-template-columns:1fr}}
.panel{border:1px solid var(--hair-2);background:var(--surface);border-radius:3px;overflow:hidden}
.band-dark .panel{background:var(--obsidian-2);border-color:var(--hair-dk)}
.panel-h{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--hair-2);
         font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--muted)}
.band-dark .panel-h{border-bottom-color:var(--hair-dk);color:oklch(0.66 0.010 265)}
.panel-b{padding:clamp(16px,2.2vw,26px)}

.ctrl{margin-bottom:16px}
.ctrl label{font-size:13.6px;font-weight:500;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.ctrl label b{font-family:var(--mono);font-size:13.5px;font-weight:600;letter-spacing:-.03em;color:var(--molten-ink)}
.band-dark .ctrl label b{color:var(--molten-lit)}
.ctrl input[type=range]{width:100%;accent-color:var(--molten);height:24px;margin-top:4px}

.out{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair-2);border:1px solid var(--hair-2);margin-top:6px}
@media(max-width:560px){.out{grid-template-columns:1fr}}
.out>div{background:var(--molten-wash);padding:15px}
.out .ok{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--muted)}
.out .ov{font-family:var(--mono);font-size:clamp(17px,1.9vw,23px);font-weight:600;letter-spacing:-.045em;margin-top:7px;color:var(--ink)}
.out .ou{font-size:11.5px;color:var(--muted);margin-top:4px}

.cellinfo{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:16px}
@media(max-width:560px){.cellinfo{grid-template-columns:repeat(2,1fr)}}
.cellinfo>div{background:var(--surface-2);padding:12px}
.cellinfo .k{font-family:var(--mono);font-size:8.5px;text-transform:uppercase;color:var(--faint)}
.cellinfo .v{font-family:var(--mono);font-size:14.5px;font-weight:600;letter-spacing:-.04em;margin-top:6px;color:var(--ink)}
.cell:hover{stroke:#0D0F12;stroke-width:1.6}

.qa{display:flex;flex-direction:column;border:1px solid var(--hair-2)}
.qbtn{text-align:left;font-family:inherit;font-size:13.8px;font-weight:500;padding:13px 16px;background:var(--surface);border:0;
      border-bottom:1px solid var(--hair);cursor:pointer;color:var(--ink-2);transition:all .2s var(--ease);display:flex;gap:11px;align-items:flex-start}
.qbtn:last-child{border-bottom:0}
.qbtn::before{content:"?";font-family:var(--mono);font-size:11px;color:var(--molten-ink);flex:0 0 auto;padding-top:1px}
.qbtn:hover{background:var(--surface-2);color:var(--ink)}
.qbtn[aria-selected="true"]{background:var(--ink);color:#fff}
.qbtn[aria-selected="true"]::before{color:var(--molten-lit)}
.ans{border:1px solid var(--hair-2);border-top:0;background:var(--surface-2);padding:clamp(16px,2vw,24px)}
.ans .at{font-size:14.6px;line-height:1.6;color:var(--ink)}
.ans .asrc{font-family:var(--mono);font-size:10px;color:var(--faint);margin-top:14px;padding-top:12px;border-top:1px solid var(--hair);line-height:1.7}

/* ─── модули ─── */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;align-items:center}
.filters .fl{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--faint);margin-right:6px}
.fbtn{font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;padding:8px 13px;border:1px solid var(--hair-2);
      background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:2px;transition:all .2s var(--ease)}
.fbtn:hover{border-color:var(--ink)}
.fbtn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.mods{border-top:1px solid var(--ink)}
.mod{border-bottom:1px solid var(--hair-2)}
.mod[hidden]{display:none}
.mod-h{display:grid;grid-template-columns:34px minmax(0,1.1fr) minmax(0,1.5fr) 118px 22px;gap:clamp(10px,2vw,24px);align-items:center;width:100%;
       padding:16px 0;background:transparent;border:0;cursor:pointer;text-align:left;font-family:inherit;color:var(--ink);transition:background .2s var(--ease)}
.mod-h:hover{background:var(--surface)}
@media(max-width:900px){
  .mod-h{grid-template-columns:30px 1fr 22px;gap:4px 12px}
  .mod-h .mw{grid-column:2;margin-top:4px}
  .mod-h .ml{grid-column:2;justify-self:start;margin-top:8px}
}
.mod-h .mn{font-family:var(--mono);font-size:11px;color:var(--faint)}
.mod-h .mt{font-weight:700;font-size:15.5px;letter-spacing:-.022em;line-height:1.25}
.mod-h .mw{font-size:13.6px;color:var(--ink-2);line-height:1.48}
.mod-h .mx{width:14px;height:14px;color:var(--faint);transition:transform .3s var(--ease);justify-self:end}
.mod[data-open="1"] .mx{transform:rotate(45deg);color:var(--molten)}
.mod-b{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin:0 48px 0 48px;
       max-height:0;opacity:0;overflow:hidden;border-width:0 1px;transition:max-height .45s var(--ease),opacity .3s var(--ease),margin-bottom .45s var(--ease),border-width .3s}
@media(max-width:820px){.mod-b{grid-template-columns:1fr;margin-left:0}}
.mod[data-open="1"] .mod-b{max-height:420px;opacity:1;margin-bottom:22px;border-width:1px}
.mod-b>div{background:var(--surface);padding:16px}
.mod-b .bk{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--molten-ink);margin-bottom:9px}
.mod-b .bv{font-size:13.4px;line-height:1.55;color:var(--ink-2)}
.lay{font-family:var(--mono);font-size:9px;text-transform:uppercase;padding:4px 8px;border-radius:2px;white-space:nowrap;display:inline-block;font-weight:500}
.lay.core{background:var(--molten);color:#fff}
.lay.strong{background:var(--steel-wash);color:var(--steel);border:1px solid color-mix(in oklab,var(--steel) 25%,transparent)}
.lay.part{background:var(--surface-2);color:var(--muted);border:1px solid var(--hair-2)}
.lay.niche{background:transparent;color:var(--faint);border:1px dashed var(--hair-2)}

/* ─── списки-колонки ─── */
.srcgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair-2);border:1px solid var(--hair-2)}
@media(max-width:900px){.srcgrid{grid-template-columns:1fr}}
.srccol{background:var(--surface);padding:clamp(20px,2.3vw,28px)}
.srccol h4{margin-bottom:14px}
.srccol ul{list-style:none}
.srccol li{position:relative;padding-left:18px;margin-bottom:9px;font-size:13.8px;line-height:1.5;color:var(--ink-2)}
.srccol li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;background:var(--molten)}
.srccol.b li::before{background:var(--ink)}
.srccol.c li::before{background:var(--steel)}

/* ─── отрасли ─── */
.verts{display:grid;grid-template-columns:minmax(226px,.66fr) minmax(0,1.6fr);border:1px solid var(--hair-2);background:var(--surface)}
@media(max-width:940px){.verts{grid-template-columns:1fr}}
.vlist{border-right:1px solid var(--hair-2);display:flex;flex-direction:column}
@media(max-width:940px){.vlist{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--hair-2);scrollbar-width:none}}
.vlist::-webkit-scrollbar{display:none}
.vbtn{display:flex;align-items:center;gap:12px;padding:14px 17px;background:transparent;border:0;border-bottom:1px solid var(--hair);cursor:pointer;
      text-align:left;font-family:inherit;transition:background .2s var(--ease),color .2s var(--ease);color:var(--ink-2);width:100%}
@media(max-width:940px){.vbtn{border-bottom:0;border-right:1px solid var(--hair);white-space:nowrap;width:auto}}
.vbtn:last-child{border-bottom:0}
.vbtn:hover{background:var(--surface-2)}
.vbtn[aria-selected="true"]{background:var(--ink);color:#fff}
.vbtn[aria-selected="true"] .vi{color:var(--molten-lit)}
.vbtn .vi{width:20px;height:20px;flex:0 0 auto;color:var(--muted);transition:color .2s var(--ease)}
.vbtn:hover .vi{color:var(--molten)}
.vbtn .vn{font-size:14px;font-weight:600;letter-spacing:-.018em;line-height:1.2}
.vbtn .vs{display:block;font-family:var(--mono);font-size:8.5px;text-transform:uppercase;color:var(--faint);margin-top:4px}
.vbtn[aria-selected="true"] .vs{color:oklch(0.70 0.010 265)}
.vpanel{padding:clamp(22px,2.8vw,36px);min-height:340px}

/* ─── этапы ─── */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair-2);border:1px solid var(--hair-2)}
@media(max-width:860px){.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}
.step{background:var(--surface);padding:clamp(20px,2.2vw,26px)}
.step .sn{font-family:var(--mono);font-size:10px;color:var(--molten-ink);margin-bottom:13px;display:flex;align-items:center;gap:8px}
.step .sn::after{content:"";flex:1;height:1px;background:var(--hair-2)}
.step h4{margin-bottom:8px}
.step p{font-size:13.4px;line-height:1.52;color:var(--ink-2)}
.step .gate{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--faint);margin-top:13px;line-height:1.6;border-top:1px solid var(--hair);padding-top:11px}

/* ─── команда / советник ─── */
.advisor{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);border:1px solid var(--hair-2);background:var(--surface)}
@media(max-width:860px){.advisor{grid-template-columns:1fr}}
.adv-l{padding:clamp(22px,2.8vw,34px);border-right:1px solid var(--hair-2);background:var(--surface-2)}
@media(max-width:860px){.adv-l{border-right:0;border-bottom:1px solid var(--hair-2)}}
.adv-r{padding:clamp(22px,2.8vw,34px)}
.mono-portrait{width:100%;aspect-ratio:1/.6;border:1px solid var(--hair-2);background:var(--surface);display:grid;place-items:center;margin-bottom:18px;position:relative;overflow:hidden}
.mono-portrait .init{font-size:clamp(36px,4.6vw,54px);font-weight:800;letter-spacing:-.06em;line-height:1}
.mono-portrait .ring{position:absolute;inset:0}

.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--hair-2);border:1px solid var(--hair-2)}
.tm{background:var(--surface);padding:clamp(20px,2.3vw,28px)}
.tm .tinit{width:50px;height:50px;border:1px solid var(--hair-2);display:grid;place-items:center;font-weight:800;font-size:18px;letter-spacing:-.045em;margin-bottom:16px;background:var(--surface-2)}
.tm .trole{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--molten-ink);margin-bottom:8px}
.tm .tname{font-weight:700;font-size:16.5px;letter-spacing:-.026em;line-height:1.2;margin-bottom:10px}
.tm .tbio{font-size:13.4px;line-height:1.55;color:var(--ink-2)}

.gmark{border:1px solid var(--hair-2);background:var(--surface);padding:clamp(26px,3.6vw,46px);display:flex;flex-direction:column;align-items:flex-start;gap:14px;border-radius:3px}
.gmark .gw{font-weight:800;font-size:clamp(26px,3.2vw,38px);letter-spacing:-.045em;line-height:1}
.gmark .gw i{font-style:normal;color:var(--molten)}
.gmark .gt{font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--muted);line-height:1.7}

/* ─── контакты ─── */
.cta{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(26px,4vw,60px);align-items:end}
@media(max-width:860px){.cta{grid-template-columns:1fr;gap:28px}}
.clist{border-top:1px solid var(--hair-dk)}
.clist a,.clist div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:15px 0;border-bottom:1px solid var(--hair-dk-2);
                    text-decoration:none;transition:padding-left .3s var(--ease)}
.clist a:hover{padding-left:10px}
.clist .ck{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:oklch(0.62 0.010 265)}
.clist .cv{font-size:15.5px;font-weight:600;color:#fff;letter-spacing:-.02em}
.clist a:hover .cv{color:var(--molten-lit)}


/* ─── переключатель языка ─── */
.lang{display:inline-flex;align-items:center;border:1px solid var(--hair-2);border-radius:2px;overflow:hidden;flex:0 0 auto;background:var(--surface)}
.lang a,.lang span{font-family:var(--mono);font-size:9.5px;letter-spacing:.02em;padding:8px 10px;text-decoration:none;color:var(--muted);line-height:1;transition:all .2s var(--ease)}
.lang a:hover{color:var(--ink);background:var(--surface-2)}
.lang .on{background:var(--ink);color:#fff}



/* ─── официальный научный партнёр ─── */
.partner{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.6fr);border:1px solid var(--hair-2);background:var(--surface)}
@media(max-width:860px){.partner{grid-template-columns:1fr}}
.partner-l{padding:clamp(20px,2.4vw,30px);border-right:1px solid var(--hair-2);background:var(--surface-2);
  display:flex;flex-direction:column;justify-content:center}
@media(max-width:860px){.partner-l{border-right:0;border-bottom:1px solid var(--hair-2)}}
.partner-r{padding:clamp(20px,2.4vw,30px)}
.badge-official{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:9px;text-transform:uppercase;
  background:var(--ink);color:#fff;padding:6px 10px;border-radius:2px;align-self:flex-start}
.partner-cn{font-size:clamp(24px,2.8vw,34px);font-weight:800;letter-spacing:.08em;line-height:1;margin:18px 0 12px;color:var(--ink)}
.partner-name{font-weight:700;font-size:16px;letter-spacing:-.024em;line-height:1.25}
.partner-sub{margin-top:10px}
.partner-sub span{display:block;font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--muted);line-height:1.9}
.partner-r>.body{font-size:15px;max-width:56ch}
.pp{display:block;border-top:1px solid var(--hair);margin-top:18px;background:transparent;border-left:0;border-right:0;border-bottom:0}
.pp>div{display:grid;grid-template-columns:minmax(132px,.34fr) 1fr;gap:16px;padding:11px 0;border-bottom:1px solid var(--hair);background:transparent}
@media(max-width:620px){.pp>div{grid-template-columns:1fr;gap:4px;padding:10px 0}}
.pp .ph{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--molten-ink);margin:0;padding-top:3px;line-height:1.5}
.pp p{font-size:13.6px;line-height:1.5;color:var(--ink-2)}
.go-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;
  color:var(--molten-ink);text-decoration:none;margin-top:18px}
.go-link svg{width:12px;height:12px;transition:transform .25s var(--ease)}
.go-link:hover svg{transform:translateX(4px)}

/* ─── научная активность ─── */
.acts{border-top:1px solid var(--ink)}
.act{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:clamp(18px,3vw,48px);
     padding:clamp(22px,2.6vw,32px) 0;border-bottom:1px solid var(--hair-2);align-items:start;transition:background .3s var(--ease)}
.act:hover{background:var(--surface)}
@media(max-width:860px){.act{grid-template-columns:1fr;gap:12px}}
.act-l h3{margin-top:4px}
.act-sub{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--faint);margin-top:10px;line-height:1.7}

/* ─── горизонтальная прокрутка широких схем ─── */
.sx{min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--hair-2) transparent}
.sx::-webkit-scrollbar{height:6px}
.sx::-webkit-scrollbar-thumb{background:var(--hair-2);border-radius:3px}
.band-dark .sx::-webkit-scrollbar-thumb{background:var(--hair-dk)}
@media(max-width:1180px){ .sx>svg{min-width:var(--minw,480px)} }
.duo>*,.stack>*,.cta>*,.about>*,.advisor>*,.proj>*,.hero-in>*,.sec-head>*,.phead-in>*{min-width:0}

/* ─── активные состояния ─── */
.layer,.vbtn,.qbtn,.figtab,.mod-h{position:relative}
.layer:hover,.vbtn:hover:not([aria-selected="true"]),.qbtn:hover:not([aria-selected="true"]){padding-left:20px}
.layer{padding-left:16px;transition:padding-left .3s var(--ease),background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)}
.vbtn{transition:padding-left .3s var(--ease),background .2s var(--ease),color .2s var(--ease)}
.qbtn{transition:padding-left .3s var(--ease),background .2s var(--ease),color .2s var(--ease)}
.mod-h .mt{display:inline-block;transition:transform .3s var(--ease)}
.mod-h:hover .mt{transform:translateX(4px)}
.card{transition:background .25s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease)}
.card:hover{transform:translateY(-3px)}
.trio>div{transition:background .3s var(--ease)}
.trio>div:hover{background:var(--molten-wash)}
.band-dark .trio>div:hover{background:oklch(0.26 0.014 40)}
.geostrip a .gt{display:inline-block;transition:transform .3s var(--ease)}
.geostrip a:hover .gt{transform:translateX(4px)}
.status.live{position:relative}
.status.live::after{content:"";position:absolute;inset:0;border:1px solid var(--molten);opacity:0;animation:ring 3.2s var(--ease) infinite}
@keyframes ring{0%{opacity:.55;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.14)}}

/* ─── появление ─── */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes cellIn{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}
.js .stg{opacity:0}
.js .stg.in{animation:fadeUp .7s var(--ease) both}
.js .chain.anim svg > g > *{opacity:0}
.js .chain.anim.drawn svg > g > *{animation:fadeUp .5s var(--ease) both}
.js .cells-anim .cell{opacity:0;transform-box:fill-box;transform-origin:center}
.js .cells-anim.drawn .cell{animation:cellIn .45s var(--ease) both}
#f-fact,#f-model{transition:stroke-dashoffset 1.5s cubic-bezier(.22,1,.36,1)}
#f-band{opacity:0;transition:opacity .8s var(--ease) .7s}
.drawn #f-band{opacity:1}
.drift{animation:drift 11s ease-in-out infinite}
@keyframes drift{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.swap{animation:fadeUp .34s var(--ease) both}

@media (prefers-reduced-motion:reduce){
  .js .stg,.js .chain.anim svg > g > *,.js .cells-anim .cell{opacity:1!important;animation:none!important;transform:none!important}
  #f-band{opacity:1!important}
  .status.live::after{display:none}
}

/* ══════ МОБИЛЬНЫЙ РЕЖИМ СХЕМ ══════ */
.chain-m,.group-m,.conf-m,.legend-m{display:none}

@media(max-width:760px){
  /* схемы вписываются, горизонтальной прокрутки нет */
  .sx{overflow-x:visible}
  .sx>svg{min-width:0!important;width:100%}
  svg .lbl{display:none}

  /* цепочка учёта → вертикальный список */
  .chain>.sx,.chain>svg{display:none}
  .chain{padding:clamp(14px,3vw,20px)}
  .chain-m{display:block;list-style:none;counter-reset:c}
  .chain-m li{position:relative;padding:14px 0 14px 26px;border-bottom:1px solid var(--hair)}
  .chain-m li:last-child{border-bottom:0}
  .chain-m li::before{content:"";position:absolute;left:5px;top:20px;width:7px;height:7px;background:var(--ink);border-radius:50%}
  .chain-m li::after{content:"";position:absolute;left:8px;top:29px;bottom:-2px;width:1px;background:var(--hair-2)}
  .chain-m li:last-child::after{display:none}
  .chain-m li b{display:block;font-size:16px;font-weight:700;letter-spacing:-.022em}
  .chain-m li span{display:block;font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--muted);margin-top:5px;line-height:1.6}
  .chain-m li.pt{padding-top:8px;padding-bottom:8px}
  .chain-m li.pt::before{background:var(--molten);width:5px;height:5px;left:6px;top:17px}
  .chain-m li.pt{font-size:13.5px;color:var(--ink-2)}
  .chain-m li.pt i{display:block;font-style:normal;font-family:var(--mono);font-size:8.5px;text-transform:uppercase;color:var(--molten-ink);margin-bottom:3px}
  .chain-m li.fin b{color:var(--molten-ink)}

  /* схема группы → вертикальный список */
  .group-m{display:block}
  .gm-head{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--faint);padding-bottom:12px;border-bottom:1px solid var(--ink);margin-bottom:4px}
  .gm-row{padding:14px 0;border-bottom:1px solid var(--hair)}
  .gm-row:last-child{border-bottom:0}
  .gm-t{font-weight:700;font-size:15px;letter-spacing:-.022em;line-height:1.25}
  .gm-s{font-family:var(--mono);font-size:8.5px;text-transform:uppercase;color:var(--muted);margin:6px 0 9px;line-height:1.6}

  /* контур подтверждения → список */
  .conf-m{display:block}
  .conf-m ol{list-style:none;counter-reset:s}
  .conf-m li{counter-increment:s;position:relative;padding:12px 0 12px 30px;border-bottom:1px solid var(--hair)}
  .conf-m li::before{content:counter(s);position:absolute;left:0;top:14px;font-family:var(--mono);font-size:10px;color:var(--muted)}
  .conf-m li.hot::before{color:var(--molten)}
  .conf-m li b{display:block;font-size:15px;font-weight:700}
  .conf-m li span{display:block;font-family:var(--mono);font-size:8.5px;text-transform:uppercase;color:var(--muted);margin-top:5px}
  .conf-m .log{margin-top:16px;border:1px solid var(--hair-2);padding:14px;background:var(--surface-2)}
  .conf-m .lh2{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--molten-ink);margin-bottom:10px}
  .conf-m .log span{display:block;font-family:var(--mono);font-size:10px;color:var(--ink-2);padding:4px 0;border-bottom:1px solid var(--hair)}
  .conf-m .log .imm{font-family:var(--mono);font-size:8.5px;text-transform:uppercase;color:var(--faint);margin-top:10px}

  /* легенды, вынесенные из SVG */
  .legend-m{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:12px;font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--muted)}
  .legend-m i{display:inline-block;width:20px;height:8px;margin-right:6px;vertical-align:middle;font-style:normal}
  .band-dark .legend-m{color:oklch(0.70 0.008 260)}

  /* навигация переносится, а не скроллится вбок */
  .nav-links{flex-wrap:wrap;overflow:visible;gap:12px 18px}


  /* вкладки без бокового скролла */
  .figtabs{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible}
  .figtab{white-space:normal;text-align:center;font-size:8.5px;padding:11px 6px;line-height:1.35;flex:1 1 auto}
  .vlist{display:grid;grid-template-columns:1fr 1fr;overflow:visible;flex-direction:row}
  .vbtn{width:auto;white-space:normal;padding:12px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
  .vbtn:nth-child(2n){border-right:0}
  .vbtn:nth-last-child(-n+1){border-bottom:0}
  .vbtn .vn{font-size:13px}
  .mod-h{padding:13px 0}
  .srccol li{margin-bottom:7px}
  /* плотнее по вертикали */
  .sec{padding-block:clamp(40px,9vw,64px)}
  .sec-head{margin-bottom:22px}
  .kv>div{padding:10px 0}
  .trio>div,.srccol,.step,.tm{padding:18px}
  .panel-b{padding:14px}
  .vpanel{padding:20px;min-height:0}
}
/* ─── подвал ─── */
footer{border-top:1px solid var(--hair-2);padding:36px 0 46px;background:var(--paper)}
.foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(24px,4vw,60px)}
@media(max-width:760px){.foot{grid-template-columns:1fr;gap:26px}}
.foot .fl{display:flex;align-items:center;gap:10px}
.foot .fl svg{width:26px;height:19px}
.foot .fw{font-weight:800;font-size:16px;letter-spacing:.13em}
.foot .fm{font-family:var(--mono);font-size:9.5px;color:var(--faint);line-height:1.8;text-transform:uppercase}
.foot a{color:var(--muted);text-decoration:none}
.foot a:hover{color:var(--molten-ink)}
.footnav{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px}
.footnav .fh{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--faint);margin-bottom:11px}
.footnav ul{list-style:none}
.footnav li{margin-bottom:7px}
.footnav li a{font-size:13.5px;color:var(--ink-2);text-decoration:none}
.footnav li a:hover{color:var(--molten-ink)}

/* ─── движение ─── */
.js .rv{opacity:0;transform:translateY(12px)}
.js .rv.in{opacity:1;transform:none;transition:opacity .65s var(--ease),transform .65s var(--ease)}
.js .rv-d1.in{transition-delay:.08s}
.flow{stroke-dasharray:5 9;animation:flow 3.4s linear infinite}
@keyframes flow{to{stroke-dashoffset:-56}}
.pulse{animation:pulse 3.2s var(--ease) infinite}
@keyframes pulse{0%,100%{opacity:.28;r:9}50%{opacity:.06;r:18}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js .rv{opacity:1;transform:none}
}
@media print{.nav,.hero-grid,.phead-grid{display:none}body{background:#fff}}
