/* ═══════════════════════════════════════════════════════════════════════
   Бот-помощник VM GEO: робот в правом нижнем углу, облачко с подсказками
   и окно «Бот VM GEO» с возможностями.

   Подключение - два тега, разметку скрипт добавит в body сам:
     <link rel="stylesheet" href="/assets/geo/geo-bot.css">
     <script src="/assets/geo/geo-bot.js" defer></script>

   Цвета берутся из переменных страницы (--plate, --ink, --hair ...), запасные
   значения - та же гамма VM GEO, чтобы бот не развалился там, где их нет.
   Все классы начинаются с vmbot-: общие правила страницы (h2, button, .note)
   сюда не дотягиваются, а наши не задевают страницу.
   ═══════════════════════════════════════════════════════════════════════ */
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('/assets/fonts/manrope-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('/assets/fonts/manrope-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+2122,U+2191,U+2193,U+2212}

/* ── Токены: светлая тема, затем тёмная по системе и по переключателю ── */
.vmbot,.vmbot-layer{
  --vmb-bg:var(--bg,#F5F6FB); --vmb-plate:var(--plate,#FFFFFF); --vmb-surface:var(--surface,#F2F4FB);
  --vmb-ink:var(--ink,#0F1226); --vmb-muted:var(--muted,#565D72);
  --vmb-hair:var(--hair,#E3E6F2); --vmb-hair-soft:var(--hair-soft,#ECEEF7);
  --vmb-accent:var(--accent,#7B4FE0);
  --vmb-blue:var(--blue,#6EA8FF); --vmb-violet:var(--violet,#9B84FF);
  --vmb-magenta:var(--magenta,#D14BFF); --vmb-good:var(--good,#3DDC97);
  --vmb-gradient:var(--gradient,linear-gradient(135deg,#6EA8FF 0%,#9B84FF 45%,#D14BFF 100%));
  --vmb-sans:var(--sans,'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif);
  --vmb-shadow:0 12px 34px rgba(15,18,38,.13);
  --vmb-shadow-l:0 40px 100px rgba(15,18,38,.26);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .vmbot,:root:not([data-theme="light"]) .vmbot-layer{
    --vmb-bg:var(--bg,#08080C); --vmb-plate:var(--plate,#14141E); --vmb-surface:var(--surface,#101018);
    --vmb-ink:var(--ink,#F4F5FA); --vmb-muted:var(--muted,#9BA0B3);
    --vmb-hair:var(--hair,#232636); --vmb-hair-soft:var(--hair-soft,#1A1D2A);
    --vmb-accent:var(--accent,#B39BFF);
    --vmb-shadow:0 14px 38px rgba(0,0,0,.55);
    --vmb-shadow-l:0 40px 100px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"] .vmbot,:root[data-theme="dark"] .vmbot-layer{
  --vmb-bg:var(--bg,#08080C); --vmb-plate:var(--plate,#14141E); --vmb-surface:var(--surface,#101018);
  --vmb-ink:var(--ink,#F4F5FA); --vmb-muted:var(--muted,#9BA0B3);
  --vmb-hair:var(--hair,#232636); --vmb-hair-soft:var(--hair-soft,#1A1D2A);
  --vmb-accent:var(--accent,#B39BFF);
  --vmb-shadow:0 14px 38px rgba(0,0,0,.55);
  --vmb-shadow-l:0 40px 100px rgba(0,0,0,.7);
}

/* ── Контейнер: точка нулевого размера в правом нижнем углу окна. Мышь он
   не ловит - кликабельны только робот и облачко, сайт под ними живой. ── */
.vmbot{position:fixed;right:0;bottom:0;width:0;height:0;z-index:60;pointer-events:none;
  --vmb-w:72px; --vmb-h:calc(var(--vmb-w) * 1.1334);
  --vmb-right:22px; --vmb-bottom:18px; --vmb-crack:340px; --vmbot-lift:0px;
  font-family:var(--vmb-sans);-webkit-font-smoothing:antialiased}
.vmbot *,.vmbot *::before,.vmbot *::after,
.vmbot-layer *,.vmbot-layer *::before,.vmbot-layer *::after{box-sizing:border-box}
@media (max-width:760px){
  .vmbot{--vmb-w:52px;--vmb-right:12px;--vmb-bottom:calc(12px + env(safe-area-inset-bottom,0px));--vmb-crack:240px}
}

/* ── Робот ── */
/* Сама кнопка нажатий не ловит - только силуэт .vmbot-hit внутри рисунка: прозрачные
   углы прямоугольника у края перехватывали соседние ссылки и кнопки. */
.vmbot-robot{position:absolute;right:var(--vmb-right);bottom:calc(var(--vmb-bottom) + var(--vmbot-lift));
  width:var(--vmb-w);height:var(--vmb-h);margin:0;padding:0;border:0;border-radius:20px;
  background:none;box-shadow:none;color:inherit;font:inherit;cursor:pointer;pointer-events:none;
  visibility:hidden;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;
  transition:transform .5s cubic-bezier(.3,.7,.25,1),bottom .3s ease}
.vmbot.is-in .vmbot-robot{visibility:visible}
.vmbot-robot:focus{outline:none}
.vmbot-robot:focus-visible{outline:2px solid var(--vmb-violet);outline-offset:3px}
.vmbot-actor,.vmbot-breath{display:block;width:100%;height:100%}
.vmbot-actor{transform-origin:72% 100%;transition:translate .25s ease}
.vmbot-svg{display:block;width:100%;height:100%;overflow:visible}
.vmbot-robot .vmbot-svg{pointer-events:none}
.vmbot-hit{fill:none;pointer-events:visible}
/* не ловит нажатия: пока листают, пока переезжает на новое место и спрятанный за край */
.vmbot.is-scrolling .vmbot-hit,.vmbot.is-moving .vmbot-hit,.vmbot.is-tucked .vmbot-hit{pointer-events:none}

.vmbot-shadow{fill:var(--vmb-ink);opacity:.1}
.vmbot-hover{fill:var(--vmb-violet);opacity:.3}
.vmbot-core{opacity:.28}
.vmbot-pinhole{fill:var(--vmb-bg)}
.vmbot-head{transform-box:view-box;transform-origin:60px 83px}
.vmbot-eyes{transform-box:fill-box;transform-origin:50% 50%;transition:transform .07s ease}
.vmbot-arm{transform-box:view-box;transform-origin:0 0;transition:transform .35s cubic-bezier(.3,.7,.3,1)}
.vmbot-arm-l{transform:rotate(22deg)}
.vmbot-arm-r{transform:rotate(-22deg)}
.vmbot.is-blink .vmbot-robot .vmbot-eyes{transform:scaleY(.12)}

@media (hover:hover) and (pointer:fine){
  .vmbot.is-idle .vmbot-robot:hover .vmbot-arm-l{transform:rotate(120deg)}
  .vmbot.is-idle .vmbot-robot:hover .vmbot-actor{translate:0 -3px}
}

/* ── Прорыв: трещины, вспышка, крошка (крошку рисует скрипт на холсте) ── */
.vmbot-cracks,.vmbot-debris{position:absolute;display:block;width:var(--vmb-crack);height:var(--vmb-crack);
  right:calc(var(--vmb-right) + var(--vmb-w) / 2 - var(--vmb-crack) * .18);
  bottom:calc(var(--vmb-bottom) + var(--vmbot-lift) + var(--vmb-h) / 2 - var(--vmb-crack) * .18);
  pointer-events:none}
.vmbot-cracks{overflow:visible;transition:opacity .9s ease}
.vmbot-cracks.is-fade{opacity:0}
.vmbot-cracks path{fill:none;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:1 2;stroke-dashoffset:1;
  transition:stroke-dashoffset .36s cubic-bezier(.2,.75,.3,1) var(--d,0ms)}
.vmbot-cracks.is-on path{stroke-dashoffset:0}
.vmbot-crack-line{stroke:var(--vmb-ink);stroke-opacity:.62}
.vmbot-crack-glow{stroke:var(--vmb-violet);stroke-opacity:.32}
.vmbot-flash{opacity:0;transform-box:fill-box;transform-origin:center}
.vmbot-ring{fill:none;stroke:var(--vmb-magenta);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.vmbot-crack-set{transform-box:view-box;transform-origin:279px 279px}
.vmbot-cracks.is-on .vmbot-flash{animation:vmbot-flash .75s ease-out both}
.vmbot-cracks.is-on .vmbot-ring{animation:vmbot-ring .6s cubic-bezier(.2,.7,.3,1) both}
.vmbot-cracks.is-on .vmbot-crack-set{animation:vmbot-thud .3s cubic-bezier(.3,.7,.3,1) both}
@keyframes vmbot-flash{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.25)}}
@keyframes vmbot-ring{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(4.2)}}
@keyframes vmbot-thud{0%{transform:scale(1.08)}100%{transform:scale(1)}}

/* Выбирается из-за нижней и правой кромки окна: сначала выглядывает,
   на мгновение замирает, потом выпрыгивает на место с лёгким перелётом. */
.vmbot.is-climb .vmbot-actor{animation:vmbot-climb 1.05s cubic-bezier(.3,.75,.3,1) both}
@keyframes vmbot-climb{
  0%{transform:translate(38%,128%) rotate(24deg)}
  36%{transform:translate(18%,70%) rotate(14deg)}
  50%{transform:translate(15%,64%) rotate(11deg)}
  76%{transform:translate(-4%,-13%) rotate(-7deg)}
  90%{transform:translate(1%,2%) rotate(2deg)}
  100%{transform:none}
}
.vmbot.is-wave .vmbot-arm-l{animation:vmbot-wave 1.5s ease-in-out both}
.vmbot.is-wave .vmbot-head{animation:vmbot-tilt 1.5s ease-in-out both}
@keyframes vmbot-wave{
  0%{transform:rotate(22deg)}16%{transform:rotate(142deg)}30%{transform:rotate(100deg)}
  44%{transform:rotate(146deg)}58%{transform:rotate(100deg)}72%{transform:rotate(142deg)}
  86%{transform:rotate(112deg)}100%{transform:rotate(22deg)}
}
@keyframes vmbot-tilt{0%,100%{transform:none}18%,80%{transform:rotate(-7deg)}}

/* Тихое появление: облачко уже закрывали, движение ограничено или робот
   сразу нужен компактным. */
.vmbot.is-quiet .vmbot-actor{animation:vmbot-rise .6s cubic-bezier(.3,.75,.3,1) both}
@keyframes vmbot-rise{0%{opacity:0;transform:translateY(30%)}100%{opacity:1;transform:none}}
@keyframes vmbot-fade{0%{opacity:0}100%{opacity:1}}

/* ── Покой: дыхание (слой браузера, без перерисовки), свечение под ногами ── */
.vmbot.is-idle .vmbot-breath{animation:vmbot-breathe 3.6s ease-in-out infinite alternate}
.vmbot.is-idle .vmbot-hover{animation:vmbot-hover 3.6s ease-in-out infinite alternate}
.vmbot.is-idle .vmbot-core{animation:vmbot-core 1.8s ease-in-out infinite alternate}
@keyframes vmbot-breathe{0%{transform:translateY(0)}100%{transform:translateY(-2.6px)}}
@keyframes vmbot-hover{0%{opacity:.34}100%{opacity:.14}}
@keyframes vmbot-core{0%{opacity:.12}100%{opacity:.42}}
.vmbot.is-paused .vmbot-breath,.vmbot.is-paused .vmbot-hover,.vmbot.is-paused .vmbot-core{animation-play-state:paused}
@media (max-width:760px){
  /* экономный режим телефона: мерцания в SVG перерисовывают картинку - гасим */
  .vmbot.is-idle .vmbot-hover,.vmbot.is-idle .vmbot-core{animation:none}
}

/* ── Компактный вид: у края видна только голова ── */
.vmbot.is-compact .vmbot-robot{transform:translateY(calc(var(--vmb-bottom) + var(--vmb-h) * .56))}
/* и голова легла бы на кнопку или ссылку - за край до макушки, нажатий не ловит */
.vmbot.is-compact.is-tucked .vmbot-robot{transform:translateY(calc(var(--vmb-bottom) + var(--vmb-h) * .86))}
/* привстаёт навстречу фокусу с клавиатуры и мыши; на телефоне касание оставляло
   «залипший» подъём, и робот закрывал кнопки рядом - там без подъёма */
.vmbot.is-compact .vmbot-robot:focus-visible{transform:translateY(calc(var(--vmb-bottom) + var(--vmb-h) * .4))}
@media (hover:hover) and (pointer:fine){
  .vmbot.is-compact:not(.is-tucked) .vmbot-robot:hover{transform:translateY(calc(var(--vmb-bottom) + var(--vmb-h) * .4))}
}

/* ── Облачко ── */
.vmbot-bubble{position:absolute;right:calc(var(--vmb-right) - 6px);
  bottom:calc(var(--vmb-bottom) + var(--vmbot-lift) + var(--vmb-h) + 10px);
  display:flex;align-items:flex-start;gap:4px;width:max-content;max-width:min(300px,calc(100vw - 28px));
  margin:0;padding:10px 6px 10px 14px;border:1px solid var(--vmb-hair);border-radius:16px 16px 6px 16px;
  background:var(--vmb-plate);color:var(--vmb-ink);box-shadow:var(--vmb-shadow);
  font:600 14px/1.38 var(--vmb-sans);letter-spacing:-.006em;text-align:left;
  pointer-events:none;visibility:hidden;opacity:0;transform:translateY(10px) scale(.86);
  transform-origin:calc(100% - var(--vmb-w) / 2 - 6px) calc(100% + 8px);
  transition:opacity .25s ease,transform .45s cubic-bezier(.34,1.5,.64,1),visibility 0s linear .45s,
    width .3s cubic-bezier(.3,.7,.3,1),height .3s cubic-bezier(.3,.7,.3,1)}
.vmbot-bubble.is-shown{pointer-events:auto;visibility:visible;opacity:1;transform:none;
  transition:opacity .25s ease,transform .45s cubic-bezier(.34,1.5,.64,1),visibility 0s linear 0s,
    width .3s cubic-bezier(.3,.7,.3,1),height .3s cubic-bezier(.3,.7,.3,1)}
.vmbot-bubble::after{content:"";position:absolute;right:calc(var(--vmb-w) / 2);bottom:-6.5px;width:12px;height:12px;
  background:var(--vmb-plate);border:solid var(--vmb-hair);border-width:0 1px 1px 0;border-bottom-right-radius:3px;
  transform:rotate(45deg)}
.vmbot-bubble-text{display:block;min-width:0;padding:1px 0;cursor:pointer;text-wrap:pretty;transition:opacity .22s ease,transform .22s ease}
.vmbot-bubble.is-swapping .vmbot-bubble-text{opacity:0;transform:translateY(4px)}
.vmbot-bubble-x{flex:none;display:grid;place-items:center;width:22px;height:22px;margin:-1px 0 0;padding:0;
  border:0;border-radius:50%;background:transparent;color:var(--vmb-muted);cursor:pointer;
  -webkit-appearance:none;appearance:none;transition:color .15s ease,background-color .15s ease}
.vmbot-bubble-x:hover{color:var(--vmb-ink);background:var(--vmb-surface)}
.vmbot-bubble-x:focus{outline:none}
.vmbot-bubble-x:focus-visible{outline:2px solid var(--vmb-violet);outline-offset:1px}
.vmbot-bubble-x svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.vmbot.is-compact .vmbot-bubble.is-shown,.vmbot.is-scrolling .vmbot-bubble.is-shown{
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px) scale(.92);
  transition:opacity .2s ease,transform .25s ease,visibility 0s linear .25s}
@media (max-width:760px){
  /* узкое облачко и короткие тексты: в одну-две строки, чтобы не закрывать первый экран */
  .vmbot-bubble{max-width:min(230px,62vw);padding:8px 4px 8px 12px;font-size:13px;border-radius:14px 14px 5px 14px}
  /* крестик - единственный способ убрать подсказки: значок прежний, зона нажатия 44 px */
  .vmbot-bubble-x{width:44px;height:44px;margin:-11px}
  .vmbot-bubble-x:hover{background:transparent}
  /* облачко сбоку от робота: над роботом легло бы на кнопку или текст первого экрана */
  .vmbot-bubble.is-side{right:calc(var(--vmb-right) + var(--vmb-w) + 8px);
    bottom:calc(var(--vmb-bottom) + var(--vmbot-lift) + var(--vmb-h) * .36);
    border-radius:14px;transform-origin:calc(100% + 8px) calc(100% - 16px)}
  .vmbot-bubble.is-side::after{right:-6.5px;bottom:10px;border-width:1px 1px 0 0;
    border-bottom-right-radius:0;border-top-right-radius:3px}
}

/* ── Окно «Бот VM GEO» ── */
.vmbot-layer{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  padding:24px;font-family:var(--vmb-sans);color:var(--vmb-ink);-webkit-font-smoothing:antialiased}
.vmbot-layer[hidden]{display:none!important}
.vmbot-backdrop{position:absolute;inset:0;background:rgba(8,8,12,.5);opacity:0;transition:opacity .28s ease}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .vmbot-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
}
.vmbot-layer.is-open .vmbot-backdrop{opacity:1}

.vmbot-layer .vmbot-dialog{position:relative;width:100%;max-width:468px;max-height:calc(100vh - 48px);
  max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;margin:0;padding:28px 26px 24px;
  border:1px solid var(--vmb-hair);border-radius:26px;background:var(--vmb-plate);color:var(--vmb-ink);
  box-shadow:var(--vmb-shadow-l);outline:none;text-align:left;line-height:1.45;
  opacity:0;transform:translateY(14px) scale(.97);transition:opacity .24s ease,transform .38s cubic-bezier(.2,.85,.25,1)}
.vmbot-layer.is-open .vmbot-dialog{opacity:1;transform:none}
.vmbot-dialog::before{content:"";position:absolute;right:0;top:0;width:280px;height:220px;pointer-events:none;
  border-top-right-radius:inherit;
  background:radial-gradient(circle at 100% 0,rgba(209,75,255,.14),rgba(155,132,255,.07) 38%,transparent 68%)}

.vmbot-layer .vmbot-x{position:absolute;top:16px;right:16px;z-index:2;display:grid;place-items:center;
  width:38px;height:38px;margin:0;padding:0;border:1px solid var(--vmb-hair);border-radius:50%;
  background:var(--vmb-plate);color:var(--vmb-muted);cursor:pointer;-webkit-appearance:none;appearance:none;
  transition:color .15s ease,border-color .15s ease}
.vmbot-layer .vmbot-x:hover{color:var(--vmb-ink);border-color:var(--vmb-muted)}
.vmbot-layer .vmbot-x:focus{outline:none}
.vmbot-layer .vmbot-x:focus-visible{outline:2px solid var(--vmb-violet);outline-offset:2px}
.vmbot-x svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

.vmbot-dhead{position:relative;display:flex;align-items:center;gap:14px;margin:0 46px 18px 0}
.vmbot-ava{flex:none;display:grid;place-items:center;width:60px;height:60px;border-radius:19px;
  background:color-mix(in srgb,var(--vmb-violet) 12%,var(--vmb-surface));border:1px solid var(--vmb-hair)}
.vmbot-ava svg{display:block;width:43px;height:auto;overflow:visible}
.vmbot-ava .vmbot-shadow,.vmbot-ava .vmbot-hover{display:none}
.vmbot-ava .vmbot-arm-l{transform:rotate(128deg)}
.vmbot-ava .vmbot-pinhole{fill:color-mix(in srgb,var(--vmb-violet) 12%,var(--vmb-surface))}
.vmbot-layer .vmbot-title{margin:0;padding:0;max-width:none;font:800 23px/1.1 var(--vmb-sans);
  letter-spacing:-.03em;color:var(--vmb-ink);text-transform:none}
.vmbot-layer .vmbot-sub{display:flex;align-items:center;gap:8px;margin:6px 0 0;padding:0;
  font:500 13px/1.3 var(--vmb-sans);color:var(--vmb-muted)}
.vmbot-sub i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--vmb-good);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--vmb-good) 22%,transparent)}

.vmbot-layer .vmbot-feats{position:relative;list-style:none;margin:0 0 22px;padding:0;border-top:1px solid var(--vmb-hair-soft)}
.vmbot-layer .vmbot-feat{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;align-items:center;
  margin:0;padding:15px 0;border-bottom:1px solid var(--vmb-hair-soft)}
.vmbot-layer .vmbot-feat::before,.vmbot-layer .vmbot-feat::marker{content:none}
.vmbot-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;
  background:color-mix(in srgb,var(--vmb-violet) 13%,transparent);color:var(--vmb-accent)}
.vmbot-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.vmbot-layer .vmbot-ftitle{display:block;font:800 16.5px/1.25 var(--vmb-sans);letter-spacing:-.018em;color:var(--vmb-ink)}
.vmbot-layer .vmbot-fline{display:block;margin-top:3px;font:400 13.5px/1.4 var(--vmb-sans);color:var(--vmb-muted);text-wrap:pretty}

.vmbot-actions{position:relative;display:grid;gap:10px}
.vmbot-layer .vmbot-btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;margin:0;
  padding:0 22px;border-radius:999px;font:700 15px/1.2 var(--vmb-sans);letter-spacing:.005em;text-align:center;
  text-decoration:none;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,border-color .15s ease,background-color .15s ease}
.vmbot-layer .vmbot-btn-main{border:0;background:var(--vmb-gradient);color:#fff;
  box-shadow:0 10px 26px color-mix(in srgb,var(--vmb-violet) 36%,transparent)}
.vmbot-layer .vmbot-btn-main:hover{color:#fff;transform:translateY(-2px);
  box-shadow:0 14px 30px color-mix(in srgb,var(--vmb-violet) 44%,transparent)}
.vmbot-btn-main svg{flex:none;width:18px;height:18px;fill:currentColor}
.vmbot-layer .vmbot-btn-ghost{border:1px solid var(--vmb-hair);background:transparent;color:var(--vmb-ink)}
.vmbot-layer .vmbot-btn-ghost:hover{color:var(--vmb-ink);border-color:color-mix(in srgb,var(--vmb-violet) 60%,var(--vmb-hair));
  background:color-mix(in srgb,var(--vmb-violet) 6%,transparent)}
.vmbot-layer .vmbot-btn:focus{outline:none}
.vmbot-layer .vmbot-btn:focus-visible{outline:2px solid var(--vmb-violet);outline-offset:3px}

/* Телефон: окно - лист снизу на всю ширину */
@media (max-width:600px){
  .vmbot-layer{padding:0;align-items:flex-end}
  .vmbot-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(8,8,12,.56)}
  .vmbot-layer .vmbot-dialog{max-width:none;max-height:calc(100% - 28px);border-width:1px 0 0;border-radius:24px 24px 0 0;
    padding:30px 20px calc(20px + env(safe-area-inset-bottom,0px));opacity:1;transform:translateY(100%);
    transition:transform .4s cubic-bezier(.2,.85,.25,1)}
  .vmbot-layer.is-open .vmbot-dialog{transform:none}
  .vmbot-dialog::after{content:"";position:absolute;top:10px;left:50%;width:40px;height:4px;margin-left:-20px;
    border-radius:4px;background:var(--vmb-hair)}
  .vmbot-layer .vmbot-x{top:14px;right:14px}
  .vmbot-dhead{margin-bottom:14px}
  .vmbot-ava{width:54px;height:54px;border-radius:17px}
  .vmbot-ava svg{width:38px}
  .vmbot-layer .vmbot-title{font-size:21px}
  .vmbot-layer .vmbot-feat{padding:13px 0}
  .vmbot-layer .vmbot-ftitle{font-size:16px}
}

/* ── Меньше движения: без трещин, взмахов и дыхания, просто появление ── */
@media (prefers-reduced-motion:reduce){
  .vmbot.is-quiet .vmbot-actor{animation:vmbot-fade .4s ease both}
  .vmbot .vmbot-breath,.vmbot .vmbot-hover,.vmbot .vmbot-core,.vmbot .vmbot-arm,.vmbot .vmbot-head{animation:none!important}
  .vmbot-robot,.vmbot-arm,.vmbot-actor,.vmbot-eyes{transition:none!important}
  .vmbot-bubble,.vmbot-bubble.is-shown{transform:none!important}
  .vmbot-layer .vmbot-dialog{transform:none;opacity:0;transition:opacity .2s ease}
  .vmbot-layer.is-open .vmbot-dialog{transform:none;opacity:1}
  .vmbot-layer .vmbot-btn-main:hover{transform:none}
}
@media print{.vmbot,.vmbot-layer{display:none!important}}
