:root{
  --bg:#08080b;
  --bg2:#0d0d12;
  --ink:#f2f2f5;
  --muted:#8e8e9a;
  --accent:#ff5a1f;
  --line:rgba(255,255,255,.09);
  --card:rgba(255,255,255,.035);
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5{margin:0;font-weight:800;letter-spacing:-.03em}
p{margin:0}
/* ---------- шапка ---------- */
.hdr{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px clamp(20px,4vw,56px);
  background:var(--bg);
  backdrop-filter:blur(10px);
}
.hdr__logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;letter-spacing:-.02em}
.dot{width:10px;height:10px;border-radius:50%;background:var(--accent);display:inline-block;box-shadow:0 0 16px var(--accent)}
.hdr__nav{display:flex;gap:clamp(14px,2.2vw,34px);font-size:15px;font-weight:600;color:#c9c9d2}
.hdr__nav a{opacity:.85;transition:opacity .2s}
.hdr__nav a:hover{opacity:1;color:#fff}
.hdr__icons{display:flex;gap:8px}
.ico{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:.2s}
.ico svg{width:18px;height:18px;fill:#d5d5dd}
.ico:hover{border-color:var(--accent);background:rgba(255,90,31,.12)}

/* ---------- сцена ---------- */
.stage{position:relative;height:2400vh}
.stage__inner{position:sticky;top:0;height:100vh;overflow:hidden}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block}
.stage__hint{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
}
/* мягкая тёмная плашка под подсказкой: пунктир маршрута не проходит сквозь текст */
.stage__hint::before{
  content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:300px;height:96px;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 150px 48px at center,rgba(8,8,11,.96) 38%,rgba(8,8,11,0) 100%);
}
.stage__bar{position:absolute;right:clamp(14px,2vw,26px);top:50%;transform:translateY(-50%);width:2px;height:180px;background:rgba(255,255,255,.1);border-radius:2px}
.stage__bar span{display:block;width:2px;height:0;background:var(--accent);border-radius:2px}

/* ---------- выноски ---------- */
.leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.ovs{position:absolute;inset:0;pointer-events:none;z-index:4}
.ov{position:absolute;inset:0}

.ov--hero{
  left:clamp(20px,6vw,96px);right:auto;top:50%;bottom:auto;
  width:auto;max-width:620px;transform:translateY(-50%);
  pointer-events:auto;
}
.hero__title{font-size:clamp(38px,5.6vw,84px);line-height:.96}
.hero__sub{font-size:clamp(16px,1.7vw,23px);color:#c9c9d2;font-weight:600;margin-top:18px;white-space:nowrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  margin-top:34px;padding:18px 38px;border-radius:999px;
  background:var(--accent);color:#fff;font-weight:800;font-size:17px;letter-spacing:-.01em;
  border:0;cursor:pointer;transition:transform .2s, background .2s;
}
.btn:hover{transform:translateY(-2px);background:#ff6c37}
.btn--small{padding:14px 26px;font-size:15px;margin-top:18px}

.cal{
  position:absolute;max-width:250px;
  will-change:transform,opacity;opacity:0;
  --sw:0;--foc:0;--fs:1;--dim:rgba(255,255,255,.34);
  /* активный блок ровно в 2 раза крупнее; origin всегда в своём углу */
  scale:calc(1 + var(--foc) * var(--fs));
  transform-origin:0 0;
}
.cal--tl{transform-origin:0 0}
.cal--tr{transform-origin:100% 0}
.cal--bl{transform-origin:0 100%}
.cal--br{transform-origin:100% 100%}
/* текст всегда одного тона: активный блок целиком белый, неактивный целиком приглушённый */
.cal__slogan,.cal__note{-webkit-text-fill-color:currentColor}
/* акцентная полоса под блоком: растёт слева направо вместе с фокусом */
.cal::after{
  content:'';position:absolute;left:0;bottom:-12px;width:100%;height:2px;
  transform:scaleX(var(--sw));transform-origin:0 50%;
  background:linear-gradient(90deg,var(--accent),rgba(255,90,31,.12));
  box-shadow:0 0 16px rgba(255,90,31,.6);
  opacity:calc(.18 + var(--foc) * .82);pointer-events:none;
}
.cal--tl{left:clamp(24px,3.6vw,64px);top:max(clamp(60px,8.0vh,96px),calc(var(--hdr,74px) + 26px))}
.cal--tr{right:clamp(24px,3.6vw,64px);top:max(clamp(60px,8.0vh,96px),calc(var(--hdr,74px) + 26px));text-align:right}
.cal--bl{left:clamp(24px,3.6vw,64px);bottom:clamp(72px,9.4vh,108px)}
.cal--br{right:clamp(24px,3.6vw,64px);bottom:clamp(72px,9.4vh,108px);text-align:right}

.cal__ico{
  display:block;width:22px;height:22px;margin-bottom:10px;
  background-repeat:no-repeat;background-size:contain;background-position:left center;
}
.cal--tr .cal__ico,.cal--br .cal__ico{margin-left:auto;background-position:right center}
.cal__arrow{display:block;font-size:13px;line-height:1;color:var(--accent);margin-bottom:8px;letter-spacing:.06em}
.cal__title{
  font-size:clamp(30px,2.6vw,40px);
  line-height:1.0;
  font-weight:600;letter-spacing:-.04em;color:#f8f8fc;
}
.cal__title--sm{font-size:clamp(23px,2.0vw,30px);letter-spacing:-.03em;line-height:1.06}
/* колонки идут одна под другой: при 2x они не наезжают друг на друга */
.cal__row{display:block;margin-top:12px}
.cal__slogan{font-size:clamp(16px,1.22vw,18px);line-height:1.3;color:#ffffff;font-weight:600}
.cal__note{font-size:clamp(14px,1.02vw,16px);line-height:1.38;color:#c8c8d0;margin-top:7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cal--tr .cal__row,.cal--br .cal__row{text-align:right}

/* иконки */
.i-grid{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7'><rect x='3' y='3' width='7' height='7' rx='1.5'/><rect x='14' y='3' width='7' height='7' rx='1.5'/><rect x='3' y='14' width='7' height='7' rx='1.5'/><rect x='14' y='14' width='7' height='7' rx='1.5'/></svg>")}
.i-scan{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linecap='round'><path d='M3 8V5a2 2 0 0 1 2-2h3M16 3h3a2 2 0 0 1 2 2v3M21 16v3a2 2 0 0 1-2 2h-3M8 21H5a2 2 0 0 1-2-2v-3'/><path d='M3 12h18'/></svg>")}
.i-link{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7'><circle cx='7.5' cy='12' r='4.2'/><circle cx='16.5' cy='12' r='4.2'/><path d='M11 12h2'/></svg>")}
.i-road{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linecap='round'><path d='M9 3 5.5 21M15 3l3.5 18'/><path d='M12 5v3M12 11v3M12 17v3' stroke-dasharray='1 3'/></svg>")}
.i-plane{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linejoin='round'><path d='M21 3 3 10.6l6.1 2.6L21 3zM21 3l-4.9 17-4.9-6.2L21 3z'/></svg>")}
.i-ship{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linejoin='round'><path d='M3 14h18l-2.6 6H5.6L3 14z'/><path d='M7 14V9h10v5'/><path d='M12 9V4'/></svg>")}
.i-stamp{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linejoin='round'><path d='M4 20h16'/><rect x='5' y='11' width='14' height='6' rx='1.5'/><path d='M9 11V7a3 3 0 0 1 6 0v4'/></svg>")}
.i-doc{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linecap='round'><path d='M6 3h8l4 4v14H6z'/><path d='M14 3v4h4'/><path d='M9 12h6M9 16h4'/></svg>")}
.i-check{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M8 12.4l2.6 2.6L16.4 9'/></svg>")}
.i-box{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linejoin='round'><path d='M12 3l8.5 4.6v8.8L12 21l-8.5-4.6V7.6L12 3z'/><path d='M3.5 7.6 12 12.2l8.5-4.6M12 12.2V21'/></svg>")}
.i-tag{--ico:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linejoin='round'><path d='M3 11V4h7l11 11-7 7L3 11z'/><circle cx='7.5' cy='8' r='1.6'/></svg>")}
.cal__ico{background-image:var(--ico)}

/* ---------- svg: земля ---------- */
.land{fill:#15151d;stroke:#262636;stroke-width:1.4}
.land--ctx{fill:#14141c;stroke:#22222f;stroke-width:1.2}
.land--kz{fill:#171720;stroke:#2a2a3a;stroke-width:1.4}
.land--mn{fill:#171720;stroke:#2a2a3a;stroke-width:1.4}
.land--kr{fill:#171720;stroke:#2a2a3a;stroke-width:1.4}
.land--jp{fill:#191922;stroke:#2e2e40;stroke-width:1.4}
.land--ru{fill:#1d1d2b;stroke:#3a3a52;stroke-width:1.6}
.land--cn{fill:#26263c;stroke:#55557a;stroke-width:1.6}
.geo{fill:#1f1f2b;font-size:56px;font-weight:800;letter-spacing:.36em;font-family:'Manrope',sans-serif}
.border-line{fill:none;stroke:#6a6a7e;stroke-width:3;stroke-dasharray:12 10}
.label{fill:#6f6f7d;font-size:15px;font-weight:700;letter-spacing:.16em;font-family:'Manrope',sans-serif}
.label--sub{fill:#41414f;font-size:12px}
.label--pin{fill:#8f8f9d;font-size:14px;letter-spacing:.14em}
.label--right{text-anchor:end}
#mapLabels{transition:none}

/* ---------- svg: маршруты (толщина 2px, non-scaling) ---------- */
.rt{fill:none;stroke-linecap:round;stroke-dasharray:7 7;stroke-width:2;opacity:0;transition:opacity .35s ease}
.rt--land{stroke:rgba(255,110,50,.85)}
.rt--rail{stroke:rgba(226,232,248,.55);stroke-dasharray:2 6;stroke-linecap:round}
.rt--sea{stroke:rgba(110,170,255,.62)}
.rt--link{stroke:rgba(110,170,255,.34);stroke-dasharray:4 7}
.rt--haul{stroke:rgba(255,90,31,.7)}
.rt--vzh{stroke:rgba(255,120,60,.55)}
.rt--del{stroke:rgba(255,150,90,.85);stroke-width:3;stroke-dasharray:7 7}
.rt.on{opacity:1;filter:drop-shadow(0 0 6px rgba(255,110,50,.45))}
.rt--sea.on{filter:drop-shadow(0 0 6px rgba(110,170,255,.4))}
.rt--del.on{filter:drop-shadow(0 0 7px rgba(255,150,90,.5))}
.van{fill:var(--accent);stroke:#08080b;stroke-width:2}

/* ---------- подписи карты и пины (HTML) ---------- */
.mapl{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.clbl{
  position:absolute;left:0;top:0;transform-origin:0 0;white-space:nowrap;
  font:700 15px/1 "Manrope",sans-serif;letter-spacing:.09em;color:#cfcfdb;
  padding:5px 8px;background:rgba(8,8,12,.62);border-radius:4px;
  border:1px solid rgba(255,255,255,.07);
  text-shadow:0 1px 3px rgba(0,0,0,.9);
  will-change:transform;
}
.clbl--main{font-size:16px;color:#ffffff;letter-spacing:.11em}
.pin{
  position:absolute;left:0;top:0;width:0;height:0;opacity:0;transform-origin:0 0;will-change:transform;
}
.pin__dot{position:absolute;left:0;top:0;width:13px;height:13px;margin:-6.5px 0 0 -6.5px;border-radius:50%;
  background:#005BFF;box-shadow:0 0 0 5px rgba(0,91,255,.18);z-index:3}
.pin--wb .pin__dot{background:#CB11AB;box-shadow:0 0 0 5px rgba(203,17,171,.18)}
.pin--ym .pin__dot{background:#FCE000;box-shadow:0 0 0 5px rgba(252,224,0,.18)}
.pin__plate{
  position:absolute;padding:8px 13px;border-radius:9px;white-space:nowrap;
  font:800 15px/1 'Manrope',sans-serif;letter-spacing:.02em;
  background:#005BFF;color:#fff;border:1px solid rgba(255,255,255,.22);
  box-shadow:0 10px 26px rgba(0,0,0,.55);
}
.pin--wb .pin__plate{background:#CB11AB}
.pin--ym .pin__plate{background:#FCE000;color:#141420;border-color:rgba(0,0,0,.25)}
/* раскладка плашек вокруг точки */
.pin--ozon .pin__plate{right:30px;top:0;transform:translateY(-50%)}
.pin--wb .pin__plate{left:0;top:-16px;transform:translate(-50%,-100%)}
.pin--ym .pin__plate{left:auto;right:22px;top:14px;transform:none}
.pin.is-on .pin__dot{box-shadow:0 0 0 9px rgba(255,255,255,.16)}

/* маркер склада в Москве (финал) */
.msk{position:absolute;left:0;top:0;opacity:0;transform-origin:0 0;will-change:transform,opacity}
.msk__icon{position:absolute;left:-15px;top:-12.5px;width:30px;height:25px;display:block;
  filter:drop-shadow(0 3px 10px rgba(0,0,0,.8))}
.msk__icon svg{width:30px;height:25px;display:block}
.msk__roof{fill:#4a4a68;stroke:#dcdcf4;stroke-width:1.7}
.msk__box{fill:#1b1b27;stroke:#dcdcf4;stroke-width:1.7}
.msk__door{fill:#ff5a1f;opacity:.95}
.msk__txt{position:absolute;left:-42px;top:-72px;display:flex;flex-direction:column;gap:4px;white-space:nowrap;
  padding:6px 11px;border-radius:7px;background:rgba(8,8,12,.8)}
.msk__txt b{font:800 15px/1 'Manrope',sans-serif;letter-spacing:.24em;color:#fff}
.msk__txt i{font:700 13px/1 'Manrope',sans-serif;letter-spacing:.12em;color:#ff9a5c;font-style:normal}
.msk__txt b,.msk__txt i{text-shadow:0 1px 4px rgba(0,0,0,.95)}

.maplbl{position:absolute;left:0;top:0;opacity:0;white-space:nowrap;pointer-events:none;
  font:700 13px/1 'Manrope',sans-serif;letter-spacing:.2em;color:rgba(255,255,255,.8);
  padding:5px 9px;border-radius:5px;background:rgba(8,8,12,.72);
  text-shadow:0 1px 4px rgba(0,0,0,.95)}
.maplbl--obl{font-size:13px;letter-spacing:.26em;color:rgba(255,255,255,.86);background:rgba(8,8,12,.72);
  border:1px solid rgba(255,255,255,.10)}
.maplbl--mkad{font-size:13px;letter-spacing:.2em;color:rgba(255,255,255,.86);background:rgba(8,8,12,.82)}

/* контуры Подмосковья и МКАД (в координатах мира) */
.oblast{fill:rgba(255,90,31,.1);stroke:rgba(255,255,255,.46);stroke-width:1.6;stroke-dasharray:8 7}
.mkad{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.72);stroke-width:2;stroke-dasharray:6 4}

.vanmark{position:absolute;left:0;top:0;width:88px;height:54px;opacity:0;will-change:transform,opacity;
  filter:drop-shadow(0 3px 10px rgba(255,90,31,.4))}
.vanmark svg{width:88px;height:54px;display:block;overflow:visible}

/* ---------- svg: постройки ---------- */
.bld-roof{fill:#2b2b3c;stroke:#40405a;stroke-width:1.6}
.roof-line{fill:none;stroke:#4e4e66;stroke-width:1.6}
.bld{fill:#191922;stroke:#31313f;stroke-width:1.8}
.bld-rib{fill:none;stroke:#232330;stroke-width:1.6}
.bld-dark{fill:#0b0b10;stroke:#31313f;stroke-width:1.4}
.gate-line{fill:none;stroke:#262633;stroke-width:1.3}
.canopy{fill:#242433;stroke:#33334a;stroke-width:1.2}
.win{fill:#ffbe86;opacity:.5}
.ramp{fill:#20202c;stroke:#2e2e3c;stroke-width:1.2}
.wood{fill:#3a2f24;stroke:#4f402f;stroke-width:1.2}
.shadow{fill:#000;opacity:.5}
.table{fill:#20202c;stroke:#33334a;stroke-width:1.4}
.leg{stroke:#2c2c3c;stroke-width:2.4;fill:none}
.belt-deck{fill:#14141c;stroke:#2c2c3c;stroke-width:1.4}
.belt-top{fill:#34344a}
.scan-post{fill:#2f2f44}
.scan-head{fill:#3c3c56}
.scan-beam{fill:var(--accent);opacity:0}
.box{fill:#c9b593;stroke:#8c7a58;stroke-width:1.2}
.tape{stroke:#ffb066;stroke-width:2.2;fill:none}
.box-in{fill:#3a3120;stroke:#6b5a3c;stroke-width:1.2}
.flap{fill:#e6d7b8;stroke:#9a8663;stroke-width:1.1}
.tg-strip{stroke:rgba(255,255,255,.5);stroke-width:2;fill:none}
.dock-line{stroke:rgba(255,255,255,.12);stroke-width:1.6;fill:none}
.table-panel{fill:#15151d;stroke:#2b2b3a;stroke-width:1.2}
.tape{fill:none;stroke:#8f8fa2;stroke-width:1.4;opacity:.55}
/* товар из коробки и стикер маркировки (сцена 4) */
.item rect{fill:#cfcfdd;stroke:#8b8ba0;stroke-width:1.2}
.stk{fill:#fff;stroke:#c9c9d6;stroke-width:1}
.stk-l{fill:none;stroke:#ff5a1f;stroke-width:1.1}
.pier{fill:#242433;stroke:#34344c;stroke-width:1.4}
.crane-post,.crane-arm{fill:#3a3a52}
.crane-box{fill:var(--accent);opacity:.75}
.cont-body{fill:#ff5a1f;stroke:#ff7a45;stroke-width:1.2}
.cont-body:nth-child(2n){fill:#e04a12}
.road{fill:#191924;stroke:#3d3d55;stroke-width:1.4}
.road-line{fill:none;stroke:rgba(255,255,255,.16);stroke-width:2;stroke-dasharray:10 9}
.post{fill:#2e2e40}
.stamp-doc{fill:#1c1c28;stroke:#ff5a1f;stroke-width:1.4}
.stamp-line{stroke:rgba(255,255,255,.4);stroke-width:1.6;fill:none}
.stamp-ring{fill:none;stroke:#ff5a1f;stroke-width:1.6}
.stamp-check{stroke:#ff5a1f;stroke-width:1.6;fill:none}
.barrier{fill:var(--accent)}
.lamp{fill:var(--accent)}
.depot-glow{opacity:.55}
.pin{fill:var(--accent)}

/* КПП: контраст будки и стоек */
.kpp-wall{fill:#2f2f42;stroke:#8a8ab4;stroke-width:1.6}
.kpp-roof{fill:#3b3b52;stroke:#8a8ab4;stroke-width:1.6}
.kpp-win{fill:#ffc08a;opacity:.55}
.kpp-door{fill:#ff5a1f;opacity:.6}
.kpp-post{fill:#5a5a7c}
.tg-body{fill:#d6d6e2}
.tg-roll{fill:#8f8fa2}
.tg-hole{fill:#23232e}
.tg-blade{stroke:#8f8fa2;stroke-width:1.6;fill:none}
.sh-beam{stroke:rgba(255,90,31,.5);stroke-width:1.6;fill:none}
.sh-body{fill:#33334a}
.sh-glass{fill:var(--accent);opacity:.85}
/* задние двери фуры (сцена 4) */
.tr-open{fill:#06060c;stroke:#2c2c3f;stroke-width:1}
.tr-in{fill:#8b7b5e}
.tr-leaf{fill:#43435f;stroke:#c8c8e4;stroke-width:1.2}
.tr-shutter{fill:#3a3a52;stroke:#8f8fae;stroke-width:1}
/* ---------- svg: люди ---------- */
.p-shadow{fill:#000;opacity:.45}
.p-head{fill:#ececf4}
.p-neck{fill:#dcdce8}
.p-hand{fill:#ececf4}
.p-body{fill:#d9541b}
.p-vest{fill:#f1f1f7;opacity:.82}
.p-limb{fill:#d9d9e4}
.p-leg{fill:#33334a}
.p-shoe{fill:#16161e}
#pB .p-body{fill:#3d3d54}
#pB .p-vest{fill:#8e8ea2;opacity:.55}
.floor{fill:#0e0e15}
.table-top{fill:#2b2b3a}
.sh-btn{fill:#8f8fa2}
.depot{opacity:0}

/* ---------- svg: техника ---------- */
.tr-shadow{fill:#000;opacity:.55}
.tr-chassis{fill:#14141b;stroke:#2a2a38;stroke-width:1.2}
.tr-container{fill:#23232f;stroke:#0e0e14;stroke-width:1.6}
.tr-ribs{fill:none;stroke:#34344a;stroke-width:1.4}
.tr-rail{fill:#3a3a4e}
.tr-rail-b{fill:#1b1b24}
.tr-rear{stroke:#0e0e14;stroke-width:2;fill:none}
.tr-marker{fill:#ff8a4c}
.tr-logo{fill:var(--accent);opacity:.85}
.tr-cab-body{fill:url(#cabGrad);stroke:#8f2f0c;stroke-width:1.4}
.tr-roof{fill:#ff7a3c;stroke:#8f2f0c;stroke-width:1.2}
.tr-glass{fill:url(#glassGrad)}
.tr-glass-hl{stroke:rgba(255,255,255,.5);stroke-width:2;fill:none;stroke-linecap:round}
.tr-side-win{fill:#0e1725;stroke:#26364e;stroke-width:1.2}
.tr-door{stroke:#c24310;stroke-width:1.6;fill:none}
.tr-handle{fill:#f0f0f6}
.tr-mirror{fill:#20202c;stroke:#5a5a78;stroke-width:1}
.tr-grille{fill:#12121a;stroke:#4a4a63;stroke-width:1.2}
.tr-grille-b{stroke:#6a6a86;stroke-width:1.2;fill:none}
.tr-lamp{fill:#ffe9b0}
.tr-bumper{fill:#2b2b3a;stroke:#4a4a63;stroke-width:1.2}
.tr-step{fill:#8b8b9c}
.tr-tank{fill:#5a5a74;stroke:#7c7c9a;stroke-width:1.2}
.tr-stack{fill:#3a3a4c}
.tr-cab-logo{fill:rgba(255,255,255,.9)}
.tr-cargo{fill:#cf9358;opacity:1}
.wheel .tire{fill:#0e0e14;stroke:#2e2e3c;stroke-width:2}
.wheel .rim{fill:#8a8a9e}
.wheel .hub{fill:#2a2a38}
.wheel .spoke{stroke:#5a5a74;stroke-width:1.8;fill:none}
.pl-body{fill:#e8e8f0;stroke:#fff;stroke-opacity:.25;stroke-width:1}
.pl-wing{fill:#cfcfdc}
.pl-tail{fill:#cfcfdc}
.pl-window{fill:#12121a}
.pl-engine{fill:var(--accent)}
.sh-hull{fill:#3c3c56;stroke:#5f5f82;stroke-width:1.6}
.sh-water{fill:#2a2a3e}
.sh-deck{fill:#4a4a68}
.sh-bow{fill:#5a5a78}
.sh-sup-b{fill:#c9cfe0;stroke:#8d93a8;stroke-width:1}
.sh-sup-t{fill:#dfe4f0}
.sh-win{fill:#1b2740}
.sh-funnel{fill:#ff5a1f;stroke:#ff7a45;stroke-width:1}
.sh-funnel-cap{fill:#23232e}
.sh-mast{stroke:#aab0c4;stroke-width:1.6;fill:none}
.sh-lamp{fill:#ffd7a0}
.ct{stroke:#0f0f18;stroke-width:.8}
.ct-a{fill:#ff5a1f}
.ct-b{fill:#3f6db5}
.ct-c{fill:#2f8f8a}
.ct-d{fill:#c9cfe0}
.sh-bridge{fill:#565674}
.sh-wake{fill:none;stroke:rgba(255,255,255,.16);stroke-width:2}
#dim{pointer-events:none}

/* ---------- блоки ---------- */
.sec{padding:clamp(64px,8vw,120px) 0;border-top:1px solid var(--line)}
.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.sec__head{display:flex;align-items:baseline;gap:16px;margin-bottom:40px}
.sec__num{font-size:13px;letter-spacing:.2em;color:var(--accent);font-weight:800}
.sec__head h2{font-size:clamp(26px,3.4vw,46px);line-height:1.02}
.grid{display:grid;gap:20px}
.grid--2{grid-template-columns:1.1fr .9fr}
.grid--3{grid-template-columns:1fr 1fr 1fr}
.grid--4{grid-template-columns:repeat(4,1fr)}
.lead{font-size:clamp(18px,1.8vw,24px);line-height:1.35;font-weight:700;letter-spacing:-.02em}
.muted{color:var(--muted);font-size:15px;line-height:1.6;margin-top:12px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:8px}
.stat__num{font-size:clamp(28px,3vw,40px);font-weight:800;letter-spacing:-.03em}
.stat__cap{font-size:13px;color:var(--muted);line-height:1.35}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:26px;transition:border-color .2s}
.card:hover{border-color:rgba(255,90,31,.35)}
.card h3{font-size:20px;margin:14px 0 8px}
.card h4{font-size:16px;margin-bottom:14px;color:#cfcfd8}
.card p{font-size:14px;line-height:1.55;color:var(--muted)}
.card__idx{font-size:12px;letter-spacing:.2em;color:var(--accent);font-weight:800}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:inherit;font-size:13px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);color:#b9b9c4;background:none;cursor:pointer;transition:.15s}
.chip:hover{border-color:rgba(255,90,31,.4)}
.chip.on{background:rgba(255,90,31,.16);border-color:rgba(255,90,31,.5);color:#fff}
.h4-gap{margin-top:24px}
.opts{display:flex;flex-direction:column;gap:11px;margin-top:2px}
.opt{display:flex;align-items:center;gap:10px;font-size:14px;color:#b9b9c4;cursor:pointer;user-select:none}
.opt__box{width:16px;height:16px;border-radius:4px;border:1px solid rgba(255,255,255,.2);display:inline-block;flex:0 0 auto;transition:.15s}
.opt.on .opt__box{background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px rgba(255,90,31,.4)}
.seg{display:inline-flex;padding:4px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);margin-bottom:14px}
.seg__btn{font:inherit;font-size:14px;font-weight:700;color:#b9b9c4;background:none;border:0;padding:9px 20px;border-radius:999px;cursor:pointer;transition:.15s}
.seg__btn.on{background:var(--accent);color:#fff}
.muted--sm{font-size:13px;line-height:1.5;margin-top:8px}
.field--select{display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.field--select::after{content:'▾';color:var(--muted);font-size:11px}
.mini{margin-top:18px;display:flex;flex-direction:column}
.mini .btn{width:100%;margin-top:2px}
.field{width:100%;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:12px;padding:14px 16px;color:#d7d7e0;font-size:14px;font-family:inherit;margin-bottom:10px;outline:none}
.field:focus{border-color:rgba(255,90,31,.5)}
.card--total{display:flex;flex-direction:column}
.total{font-size:clamp(30px,3.6vw,48px);font-weight:800;letter-spacing:-.03em}
#totalText{font-size:clamp(20px,1.9vw,28px);line-height:1.2;letter-spacing:-.02em;margin-bottom:4px}
.form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;align-items:start}
.form .btn{margin-top:0;height:52px;padding:0 26px}
.who{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.07);margin-bottom:16px}
.line{height:8px;border-radius:4px;background:rgba(255,255,255,.06);margin-top:10px}
.line.short{width:60%}
.faq__row{display:flex;justify-content:space-between;align-items:center;padding:22px 4px;border-bottom:1px solid var(--line);font-size:17px;font-weight:600}
.plus{color:var(--accent);font-size:22px;font-weight:400}
.logo-mini{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px}
.wh{display:flex;align-items:center;gap:10px;font-size:15px;color:#cfcfd8;margin-top:10px}
.pin-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px rgba(255,90,31,.8)}
.mapstub{margin-top:18px;height:120px;border:1px dashed rgba(255,255,255,.14);border-radius:14px;display:grid;place-items:center;color:var(--muted);font-size:13px}

/* ---------- футер ---------- */
.ftr{border-top:1px solid var(--line);padding:clamp(48px,6vw,80px) 0 28px}
.ftr__in{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:24px}
.ftr__col{display:flex;flex-direction:column;gap:10px;font-size:14px;color:#b9b9c4}
.ftr__col h5{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ftr__col a:hover{color:var(--accent)}
.ftr__bottom{display:flex;gap:26px;flex-wrap:wrap;margin-top:44px;padding-top:22px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.ftr__copy{margin-left:auto}

@media (max-width:900px){
  .stage{height:3000vh}
  .stage__inner{height:100svh}
  .grid--2,.grid--3,.grid--4,.form,.stats,.ftr__in{grid-template-columns:1fr}
  .hdr__nav{display:none}
  .hero__sub{white-space:normal}
  .ov--hero{left:20px;right:20px;top:auto;bottom:120px;transform:none;max-width:none}
  .hero__title{font-size:clamp(34px,10vw,44px)}
  .stage__bar,.stage__hint{display:none}
  .leaders{display:none}
  #lblEast,#lblVlad,#lblBorder{display:none}
  .label{font-size:12px}

  /* блоки над и под объектом, в две полосы */
  .cal{left:14px;right:14px;max-width:none;text-align:left;--fs:0;
    padding:12px 14px;border-radius:14px;
    background:linear-gradient(180deg,rgba(9,9,14,.94),rgba(9,9,14,.86));
    border:1px solid rgba(255,255,255,.09);
    box-shadow:0 14px 34px rgba(0,0,0,.5);
    text-shadow:none}
  .cal::after{bottom:0;opacity:calc(.3 + var(--foc) * .7)}
  .cal--tr,.cal--br{text-align:left}
  .cal--tl{top:calc(var(--hdr,74px) + 26px)}
  .cal--tr,.cal--br{display:none}
  .cal--bl{bottom:42px}
  .cal__ico{width:18px;height:18px;margin:0 0 8px;background-position:left center!important}
  .cal__arrow{display:none}
  .cal__title{font-size:calc(30px * (1 + var(--foc) * .5));line-height:1.04}
  .cal__title--sm{font-size:calc(25px * (1 + var(--foc) * .5))}
  .cal__row{grid-template-columns:1fr;gap:5px;margin-top:8px}
  .cal__slogan{font-size:calc(16px * (1 + var(--foc) * .5));line-height:1.3;color:#fff}
  /* на телефоне мелкие картографические подписи убираем: остаются МОСКВА и плашки */
  .maplbl--mkad{display:none}
  .msk__txt i{display:none}

  .cal__note{display:block;font-size:calc(15px * (1 + var(--foc) * .5));line-height:1.4;color:#c8c8d0}
  .clbl{font-size:11px;padding:4px 6px}
  .clbl--main{font-size:13px}
  .pin__plate{font-size:12px;padding:5px 9px;letter-spacing:.01em}
  .pin--ozon .pin__plate{left:12px;right:auto;top:-14px;transform:translate(0,-50%)}
  .pin__plate{translate:none!important}.pin--wb .pin__plate{left:auto;right:16px;top:0;transform:translate(0,-50%)}
  .pin--ym .pin__plate{left:auto;right:-10px;top:-12px;transform:translate(0,-100%)}
  .pin__dot{width:8px;height:8px;margin:-4px 0 0 -4px}
  .msk__icon{left:-12.1px;top:-8px;width:23px;height:19px}
  .msk__icon svg{width:23px;height:19px}
  .msk__txt{left:16px;top:-16px;text-align:left}
  .msk__txt b{font-size:10px;letter-spacing:.16em}
  .msk__txt i{font-size:9px;letter-spacing:.1em}
  .vanmark{width:64px;height:39px}
  .vanmark svg{width:64px;height:39px}
}
