/* ============================================================================
   TRAVINOV — Design System  (light · Geist · «Soft Structuralism»)
   Планка: Linear / Vercel / Stripe / Raycast. Источник правды для всех страниц.
   Принципы: macro-whitespace, double-bezel карточки, мягкие диффузные тени,
   кастомные cubic-bezier, eyebrow-теги, button-in-button CTA, ноль generic-borders.
   ============================================================================ */

/* ── Tokens ───────────────────────────────────────────────────────────────── */
:root{
  /* surfaces */
  --bg:        #faf7f0;
  --bg-soft:   #f6f2e9;
  --bg-sunken: #f1ece0;
  --panel:     #fffdf8;

  /* ink */
  --ink:    #0a0a0c;
  --ink-2:  #2a2c33;
  --muted:  #62656e;
  --faint:  #9a9ca6;

  /* hairlines — никаких generic 1px solid gray */
  --line:   rgba(10,10,14,.07);
  --line-2: rgba(10,10,14,.045);
  --ring:   rgba(10,10,14,.06);

  /* accent — индиго Linear-уровня, единственный, дозированно */
  --accent:      #5b57e8;
  --accent-ink:  #4a46d6;
  --accent-deep: #3a37b8;
  --accent-soft: #eeeefe;
  --accent-line: rgba(91,87,232,.18);
  --ok:    #18a957;
  --ok-soft:#e9f8ef;
  --warn:  #e0922f;

  /* radii — выраженный squircle */
  --r-xl: 28px;
  --r-lg: 22px;
  --r-md: 15px;
  --r-sm: 10px;
  --r-pill: 999px;

  /* soft diffused shadows (ambient, не harsh drop) */
  --sh-sm:  0 1px 2px rgba(10,10,14,.04), 0 2px 6px -2px rgba(10,10,14,.06);
  --sh-md:  0 1px 2px rgba(10,10,14,.04), 0 12px 28px -12px rgba(10,10,14,.14);
  --sh-lg:  0 2px 4px rgba(10,10,14,.04), 0 30px 60px -24px rgba(10,10,14,.20);
  --sh-accent: 0 8px 24px -8px rgba(91,87,232,.45);
  --inset-hi: inset 0 1px 0 rgba(255,255,255,.7);

  /* motion */
  --ease: cubic-bezier(.32,.72,0,1);
  --ease-soft: cubic-bezier(.4,.14,.3,1);

  /* type */
  --font: 'Geist','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --mono: 'Geist Mono','SFMono-Regular',ui-monospace,'JetBrains Mono',monospace;
}

/* ── Reset ────────────────────────────────────────────────────────────────── */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--font);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-feature-settings:'ss01','cv01','cv11';
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4{letter-spacing:-.03em;line-height:1.05;font-weight:640;color:var(--ink);overflow-wrap:break-word;text-wrap:balance}
/* Крупные display-заголовки — Fraunces serif (связка с вородмарком, редакционный премиум). h3/h4/UI-подписи остаются Geist. */
h1,h2,.story-title{font-family:'Fraunces',Georgia,serif;font-weight:600;letter-spacing:-.015em}
::selection{background:var(--accent-soft);color:var(--accent-deep)}

.wrap{max-width:1200px;margin:0 auto;padding:0 28px}
.muted{color:var(--muted)}
.sm{font-size:14px}.xs{font-size:12.5px}

/* film-grain / texture overlay — fixed, pointer-events none (perf-safe) */
body::before{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ── Typography scale ─────────────────────────────────────────────────────── */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:11.5px;font-weight:500;
  text-transform:uppercase;letter-spacing:.16em;color:var(--accent-ink);
  background:var(--accent-soft);border:1px solid var(--accent-line);
  padding:6px 13px;border-radius:var(--r-pill);margin-bottom:22px;
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.eyebrow.neutral{color:var(--muted);background:var(--bg-sunken);border-color:var(--line)}
.eyebrow.neutral .dot{background:var(--faint);box-shadow:none}

h1{font-size:clamp(38px,5.6vw,72px);font-weight:660;letter-spacing:-.038em}
h2{font-size:clamp(28px,3.6vw,46px);font-weight:650;letter-spacing:-.035em}
h3{font-size:20px;font-weight:600;letter-spacing:-.02em}
.lead{font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:var(--muted);font-weight:420}
.hl{color:var(--accent-ink)}

/* ── Buttons (island / button-in-button) ─────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:10px;font-family:inherit;font-weight:560;
  font-size:15px;border-radius:var(--r-pill);cursor:pointer;border:1px solid transparent;
  transition:transform .4s var(--ease),background .3s var(--ease),box-shadow .4s var(--ease),border-color .3s var(--ease);
  white-space:nowrap;
}
.btn:active{transform:scale(.975)}
.btn-primary{background:var(--accent);color:#fff;padding:12px 14px 12px 22px;box-shadow:var(--sh-accent)}
.btn-primary:hover{background:var(--accent-ink);box-shadow:0 12px 30px -8px rgba(91,87,232,.55)}
.btn-primary .chip{
  width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.16);
  display:flex;align-items:center;justify-content:center;
  transition:transform .45s var(--ease),background .3s var(--ease);
}
.btn-primary:hover .chip{transform:translate(2px,-1px);background:rgba(255,255,255,.26)}
.btn-primary .chip svg{width:14px;height:14px;stroke:#fff;stroke-width:2;fill:none}
.btn-ghost{background:var(--panel);color:var(--ink);border-color:var(--line);padding:12px 22px;box-shadow:var(--sh-sm)}
.btn-ghost:hover{border-color:var(--ring);box-shadow:var(--sh-md);transform:translateY(-1px)}
.btn-sm{font-size:14px;padding:9px 18px}
.btn-primary.btn-sm{padding:8px 10px 8px 18px}
.btn-primary.btn-sm .chip{width:26px;height:26px}

/* ── Header / Fluid-island nav ────────────────────────────────────────────── */
.site-head{position:sticky;top:0;z-index:40;padding:14px 0;}
.head-inner{
  display:flex;align-items:center;gap:24px;
  background:rgba(255,255,255,.72);backdrop-filter:blur(18px) saturate(1.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
  border:1px solid var(--line);border-radius:var(--r-pill);
  padding:9px 9px 9px 22px;box-shadow:var(--sh-sm);
}
.logo{display:flex;align-items:center;gap:10px;font-weight:620;font-size:18px;letter-spacing:-.03em;color:var(--ink)}
.logo .wm{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:21px;letter-spacing:-.005em;line-height:1}
.logo .wm b{font-weight:600;color:var(--accent)}
.mark{
  width:26px;height:26px;border-radius:8px;background:linear-gradient(150deg,var(--accent),var(--accent-deep));
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:var(--sh-accent),var(--inset-hi);
}
.mark svg{width:62%;height:62%;fill:#fff;display:block}
.nav-links{display:flex;gap:4px;margin-left:8px}
.nav-links a{
  font-size:14.5px;font-weight:500;color:var(--muted);padding:8px 13px;border-radius:var(--r-pill);
  transition:color .25s var(--ease),background .25s var(--ease);
}
.nav-links a:hover{color:var(--ink);background:var(--bg-sunken)}
.nav-links a.active{color:var(--ink);background:var(--bg-sunken)}
.head-cta{margin-left:auto;display:flex;align-items:center;gap:6px}
.ghost-sm{font-size:14.5px;font-weight:500;color:var(--ink-2);padding:8px 14px;border-radius:var(--r-pill);transition:background .25s}
.ghost-sm:hover{background:var(--bg-sunken)}
.burger{display:none;background:none;border:none;cursor:pointer;width:40px;height:40px;border-radius:50%;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.burger span{width:18px;height:1.8px;background:var(--ink);border-radius:2px;transition:transform .45s var(--ease),opacity .25s var(--ease)}
body.nav-open .burger span:nth-child(1){transform:translateY(6.8px) rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){transform:translateY(-6.8px) rotate(-45deg)}

/* ── Sections rhythm ──────────────────────────────────────────────────────── */
main{position:relative;z-index:2}
.s{padding:96px 0}
.s-tight{padding:64px 0}
.s-soft{background:var(--bg-soft)}
.s-sunken{background:var(--bg-sunken)}
.s-head{max-width:680px;margin:0 auto 56px;text-align:center}
.s-head.left{margin-left:0;text-align:left}
.s-head h2{margin-top:4px}
.s-head p{margin-top:18px;font-size:18px;line-height:1.6;color:var(--muted)}

/* ── Hero ─────────────────────────────────────────────────────────────────── */
.hero{padding:40px 0 64px;position:relative;overflow-x:clip}
.hero-grid{display:grid;grid-template-columns:1.04fr 1.06fr;gap:56px;align-items:center}
.hero h1{margin-top:10px;font-size:clamp(33px,4.3vw,54px);letter-spacing:-.04em;line-height:1.04}
.hero .lead{margin-top:22px;max-width:540px}
.cta-row{display:flex;gap:12px;margin-top:36px;flex-wrap:wrap}
.micro-row{margin-top:22px;display:flex;gap:20px;flex-wrap:wrap;font-size:13.5px;color:var(--faint)}
.micro-row span{display:flex;align-items:center;gap:7px}
.micro-row .ck{color:var(--ok);font-weight:700}
/* ambient halo behind hero visual */
.hero-halo{position:absolute;inset:auto 0 0 auto;width:640px;height:640px;top:-120px;right:-180px;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(91,87,232,.10),transparent 70%);filter:blur(8px)}

/* ── Double-bezel (Doppelrand) card ───────────────────────────────────────── */
.bezel{background:var(--bg-soft);border:1px solid var(--ring);border-radius:var(--r-xl);padding:7px;box-shadow:var(--sh-lg)}
.bezel > .core{background:var(--panel);border:1px solid var(--line-2);border-radius:calc(var(--r-xl) - 7px);box-shadow:var(--inset-hi);overflow:hidden}

/* ── Product UI mock (real product, не сток) ──────────────────────────────── */
.ui{font-size:13px}
.ui-bar{height:44px;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--line-2);background:var(--bg-soft)}
.ui-bar i{width:10px;height:10px;border-radius:50%;background:#e3e3e8}
.ui-url{margin-left:12px;font-family:var(--mono);font-size:11.5px;color:var(--faint);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:4px 14px}
.ui-body{display:grid;grid-template-columns:172px 1fr;min-height:368px}
.ui-side{border-right:1px solid var(--line-2);padding:18px 14px;background:var(--bg-soft)}
.ui-brand{display:flex;align-items:center;gap:8px;font-weight:620;font-size:14px;margin-bottom:18px;letter-spacing:-.02em}
.ui-brand .m{width:20px;height:20px;border-radius:6px;background:linear-gradient(150deg,var(--accent),var(--accent-deep));box-shadow:var(--inset-hi);display:inline-flex;align-items:center;justify-content:center}
.ui-brand .m svg{width:62%;height:62%;fill:#fff;display:block}
.ui-nav{display:flex;flex-direction:column;gap:2px}
.ui-nav a{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);padding:8px 11px;border-radius:9px;font-weight:500}
.ui-nav a .gi{width:15px;height:15px;border-radius:4px;background:#dcdce3}
.ui-nav a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:560}
.ui-nav a.on .gi{background:var(--accent)}
.ui-main{padding:22px 24px}
.ui-main h5{font-size:15px;font-weight:620;letter-spacing:-.02em}
.ui-sub{font-family:var(--mono);font-size:11px;color:var(--faint);margin:4px 0 18px;display:flex;align-items:center;gap:7px}
.ui-sub .live{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);animation:pulse 2.4s var(--ease) infinite}
.ui-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-bottom:14px}
.kpi{border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:var(--panel);box-shadow:var(--sh-sm)}
.kpi .l{font-size:11px;color:var(--muted);margin-bottom:7px}
.kpi .v{font-size:22px;font-weight:660;letter-spacing:-.03em}
.kpi .v.good{color:var(--ok)}
.kpi .d{font-size:10.5px;color:var(--faint);margin-top:3px;font-family:var(--mono)}
.ui-feed{border:1px solid var(--line);border-radius:13px;padding:14px 15px;background:var(--panel);box-shadow:var(--sh-sm)}
.ui-feed .ft{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:11px}
.ui-row{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;color:var(--ink-2);padding:6px 0;line-height:1.4}
.ui-row .ck{width:17px;height:17px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0;margin-top:1px}
/* floating badge over the bezel */
.float-badge{
  position:absolute;left:-26px;bottom:38px;z-index:3;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);
  padding:14px 18px;box-shadow:var(--sh-lg);min-width:172px;
}
.float-badge .v{font-size:30px;font-weight:680;letter-spacing:-.04em;color:var(--ok);line-height:1}
.float-badge .l{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.35}
.hero-visual{position:relative}

/* ── Интерактивный мок: вкладки + панели ──────────────────────────────────── */
.ui-nav a{cursor:pointer;user-select:none}
.ui-nav a:hover:not(.on){background:var(--bg-sunken);color:var(--ink-2)}
.ui-panel{display:none}
.ui-panel.on{display:block;animation:fadepanel .34s var(--ease)}
@keyframes fadepanel{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.ui-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);box-shadow:var(--sh-sm)}
.ui-li{display:flex;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid var(--line-2);font-size:12.5px;line-height:1.3}
.ui-li:last-child{border-bottom:none}
.ui-li .sd{width:7px;height:7px;border-radius:50%;background:var(--ok);flex-shrink:0;box-shadow:0 0 0 3px var(--ok-soft)}
.ui-li .sd.warn{background:var(--warn);box-shadow:0 0 0 3px #fdf1de}
.ui-li .nm{font-weight:560;color:var(--ink)}
.ui-li .sub{color:var(--faint);font-size:11px}
.ui-li .meta{color:var(--muted);font-family:var(--mono);font-size:11px;margin-left:auto;white-space:nowrap;text-align:right}
.ui-li .pill{font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);margin-left:auto;white-space:nowrap}
.ui-li .pill.ok{background:var(--ok-soft);color:var(--ok)}
.ui-creos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ui-creos .creo{aspect-ratio:4/3;border-radius:11px;border:1px solid var(--line);position:relative;overflow:hidden;box-shadow:var(--sh-sm);display:flex;align-items:flex-end;padding:9px}
.ui-creos .creo .cap{font-size:9.5px;color:#fff;font-weight:560;position:relative;z-index:2;line-height:1.2;text-shadow:0 1px 4px rgba(0,0,0,.35)}
.ui-creos .creo .ok{position:absolute;top:7px;right:7px;width:15px;height:15px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ok);display:flex;align-items:center;justify-content:center;font-size:9px;z-index:2}
.ui-note{font-size:11px;color:var(--faint);margin-top:10px;font-family:var(--mono)}
.ui-money{border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--sh-sm);padding:16px 16px 8px}
.ui-money .bal{font-size:26px;font-weight:680;letter-spacing:-.03em}
.ui-money .bsub{font-size:11px;color:var(--faint);font-family:var(--mono);margin:2px 0 14px}
.ui-mrow{display:flex;align-items:center;gap:10px;font-size:12px;padding:7px 0;border-top:1px solid var(--line-2)}
.ui-mrow .ic{width:7px;height:7px;border-radius:2px;background:var(--accent)}
.ui-mrow .amt{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--ink-2)}

/* ── Bento / feature grids ────────────────────────────────────────────────── */
.grid{display:grid;gap:18px}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.bento .span-3{grid-column:span 3}
.bento .span-2{grid-column:span 2}
.bento .span-4{grid-column:span 4}
.bento .span-6{grid-column:span 6}

.card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:26px;box-shadow:var(--sh-sm);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:var(--ring)}
.card .ic{
  width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:var(--bg-sunken);border:1px solid var(--line-2);margin-bottom:18px;box-shadow:var(--inset-hi);
}
.card .ic svg{width:20px;height:20px;stroke:var(--accent-ink);stroke-width:1.5;fill:none}
.card h3{margin-bottom:9px}
.card p{font-size:14.5px;line-height:1.6;color:var(--muted)}
.card.feature{padding:30px}
.card.soft{background:var(--bg-soft)}
/* Кликабельная карточка способности → глубокая страница */
.card-link{display:block;text-decoration:none;color:inherit;position:relative}
.card-link:hover{border-color:var(--accent-line)}
.card-link h3{color:var(--ink)}
.card-more{display:inline-block;margin-top:14px;font-size:13.5px;font-weight:600;
  color:var(--accent-ink);letter-spacing:-.01em;
  opacity:.85;transition:transform .35s var(--ease),opacity .35s var(--ease)}
.card-link:hover .card-more{opacity:1;transform:translateX(3px)}

/* ── Steps ────────────────────────────────────────────────────────────────── */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:s}
.step{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 26px;box-shadow:var(--sh-sm)}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--mono);font-size:13px;color:var(--accent-ink);font-weight:600;letter-spacing:.05em}
.step h3{margin:14px 0 9px}
.step p{font-size:14.5px;line-height:1.6;color:var(--muted)}

/* ── Creative showcase (реальный вывод движка) ────────────────────────────── */
.creo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.creo{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-md);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.creo:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}
.creo img{display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:contain;background:var(--bg-sunken)}
.creo figcaption{padding:14px 16px 16px;font-size:13px;line-height:1.5;color:var(--muted)}
.creo-niche{display:inline-block;margin-right:7px;padding:2px 9px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);font-weight:600;font-size:11.5px}
.creo-note{margin-top:22px;text-align:center;font-size:14.5px;color:var(--muted)}
.creo-link{display:block;position:relative;text-decoration:none;color:inherit}
.creo-link .creo-go{position:absolute;top:12px;right:12px;z-index:3;background:var(--accent);color:#fff;font-weight:600;
  font-size:12.5px;padding:7px 13px;border-radius:var(--r-pill);box-shadow:var(--sh-accent);opacity:0;transform:translateY(-4px);
  transition:opacity .35s var(--ease),transform .35s var(--ease)}
.creo-link:hover .creo-go,.creo-link:focus-visible .creo-go{opacity:1;transform:none}
.creo-link figcaption{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
@media(hover:none){.creo-link .creo-go{opacity:1;transform:none;top:10px;right:10px;font-size:11.5px;padding:6px 11px}}

/* ── Stats band ───────────────────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:34px 30px;box-shadow:var(--sh-sm);text-align:center}
.stat .pn{font-size:48px;font-weight:680;letter-spacing:-.04em;line-height:1;color:var(--ink)}
.stat .pn .u{font-size:24px;color:var(--accent-ink);margin-left:2px}
.stat .pl{margin-top:14px;font-size:14.5px;color:var(--muted);line-height:1.5}

/* ── CTA band ─────────────────────────────────────────────────────────────── */
.cta-band{
  position:relative;overflow:hidden;text-align:center;border-radius:var(--r-xl);
  padding:72px 40px;background:radial-gradient(120% 140% at 50% -20%,#1a1830 0%,#0c0b18 60%);
  color:#fff;box-shadow:var(--sh-lg);
}
.cta-band::before{content:"";position:absolute;inset:0;opacity:.5;
  background:radial-gradient(closest-side at 30% 0%,rgba(91,87,232,.35),transparent 60%),
            radial-gradient(closest-side at 80% 120%,rgba(91,87,232,.22),transparent 60%)}
.cta-band > *{position:relative}
.cta-band h2{color:#fff}
.cta-band p{margin:18px auto 30px;max-width:520px;color:rgba(255,255,255,.66);font-size:18px;line-height:1.6}
.cta-band .btn-primary{box-shadow:0 10px 30px -6px rgba(91,87,232,.6)}

/* ── Trust strip ──────────────────────────────────────────────────────────── */
.trust{text-align:center;padding:0 0 8px}
.trust p{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:22px}
.trust .row{display:flex;justify-content:center;align-items:center;gap:14px 38px;flex-wrap:wrap}
.trust .row span{font-weight:560;font-size:15.5px;color:var(--ink-2);opacity:.62;letter-spacing:-.01em;display:flex;align-items:center;gap:9px}
.trust .row .d{width:5px;height:5px;border-radius:50%;background:var(--faint);opacity:.5}

/* ── Footer ───────────────────────────────────────────────────────────────── */
.site-foot{border-top:1px solid var(--line);padding:64px 0 40px;background:var(--bg-soft)}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px}
.foot-grid .logo{margin-bottom:14px}
.foot-col h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:16px;font-weight:500}
.foot-col a{display:block;font-size:14.5px;color:var(--muted);padding:5px 0;transition:color .2s}
.foot-col a:hover{color:var(--ink)}
.foot-bottom{margin-top:48px;padding-top:24px;border-top:1px solid var(--line-2);font-size:13px;color:var(--faint)}

/* ── Generic page content blocks ──────────────────────────────────────────── */
.prose{max-width:760px;margin:0 auto}
.prose > .eyebrow{margin-bottom:18px}
.prose h1{font-size:clamp(30px,4vw,44px);font-weight:660;letter-spacing:-.035em;margin-bottom:18px}
.prose > .lead{margin-bottom:8px}
.prose h2{margin:40px 0 16px}
.prose h3{margin:28px 0 10px}
.prose p{color:var(--ink-2);font-size:16.5px;line-height:1.72;margin-bottom:16px}
.prose ul{margin:0 0 18px 0;padding-left:0;list-style:none}
.prose li{position:relative;padding-left:28px;margin-bottom:11px;color:var(--ink-2);line-height:1.6}
.prose li::before{content:"";position:absolute;left:4px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.pricing{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:880px;margin:0 auto}
.price{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-xl);padding:34px;box-shadow:var(--sh-sm)}
.price.hl-card{border-color:var(--accent-line);box-shadow:var(--sh-md);position:relative}
.price .tag{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink)}
.price .amt{font-size:42px;font-weight:680;letter-spacing:-.04em;margin:12px 0 4px}
.price .amt .per{font-size:16px;color:var(--muted);font-weight:500;letter-spacing:0}
.price .note{color:var(--muted);font-size:14.5px;margin-bottom:20px;line-height:1.55}
.price .amt small{font-size:15px;color:var(--muted);font-weight:500;letter-spacing:0}
.price ul{list-style:none;margin:0 0 24px}
.price li{position:relative;padding-left:26px;margin-bottom:11px;font-size:14.5px;color:var(--ink-2);line-height:1.5}
.price li::before{content:"";position:absolute;left:3px;top:7px;width:13px;height:13px;border-radius:50%;
  background:var(--ok-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318a957' stroke-width='3'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/9px no-repeat}
.price .btn{width:100%;justify-content:center}

/* ── База знаний / AEO ────────────────────────────────────────────────────── */
.crumbs{font-family:var(--mono);font-size:12px;color:var(--faint);margin-bottom:20px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--ink)}
.crumbs .sep{opacity:.5}
/* answer-callout — концентрированный ответ, который вытаскивают ИИ-движки */
.answer{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-lg);
  padding:22px 24px;margin:0 0 28px;position:relative}
.answer .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:9px;font-weight:500}
.answer p{font-size:17px;line-height:1.6;color:var(--ink);margin:0;font-weight:450}
.answer p + p{margin-top:10px}
/* key-takeaways */
.takeaways{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 24px;margin:24px 0}
.takeaways h4{font-size:13px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:12px;font-weight:500}
/* FAQ */
.faq{margin:36px 0 0}
.faq h2{margin-bottom:14px}
.faq details{border:1px solid var(--line);border-radius:var(--r-md);padding:0;margin-bottom:10px;background:var(--panel);box-shadow:var(--sh-sm);overflow:hidden}
.faq summary{cursor:pointer;padding:16px 20px;font-weight:560;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:14px;align-items:center;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-size:20px;color:var(--accent-ink);transition:transform .3s var(--ease);line-height:1}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details > p{padding:0 20px 18px;color:var(--ink-2);font-size:15.5px;line-height:1.65;margin:0}
/* индекс базы знаний */
.kb-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:8px}
.kb-card{display:block;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 24px;background:var(--panel);box-shadow:var(--sh-sm);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .35s var(--ease)}
.kb-card:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:var(--ring)}
.kb-card .cat{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:9px}
.kb-card h3{font-size:17px;margin-bottom:7px;letter-spacing:-.02em}
.kb-card p{font-size:14px;color:var(--muted);line-height:1.55}
.related{margin-top:40px;border-top:1px solid var(--line);padding-top:24px}
.related h4{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--faint);margin-bottom:14px;font-weight:500}
.related .rl{display:flex;flex-direction:column;gap:8px}
.related a{color:var(--accent-ink);font-size:15px;font-weight:500;display:inline-flex;align-items:center;gap:8px}
.related a:hover{color:var(--accent-deep)}
@media(max-width:560px){.kb-grid{grid-template-columns:1fr}}

/* ── Reveal-on-scroll ─────────────────────────────────────────────────────── */
[data-reveal]{opacity:0;transform:translateY(26px);filter:blur(6px);
  transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s var(--ease)}
[data-reveal].in{opacity:1;transform:none;filter:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important}
  [data-reveal]{opacity:1;transform:none;filter:none;transition:none}
}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .hero-visual{order:2}
  .hero-halo{display:none}
  .split{grid-template-columns:1fr;gap:36px}
  .bento .span-3,.bento .span-2,.bento .span-4{grid-column:span 6}
}
@media (max-width:820px){
  .nav-links,.head-cta .ghost-sm{display:none}
  .burger{display:flex}
  .head-cta{margin-left:auto}
  .g-3,.steps,.stats,.creo-grid{grid-template-columns:1fr 1fr}
  .pricing{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px}
  /* mobile nav drawer */
  body.nav-open .nav-links{
    display:flex;flex-direction:column;gap:6px;position:fixed;inset:84px 16px auto 16px;z-index:50;
    background:rgba(255,255,255,.86);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
    border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;box-shadow:var(--sh-lg);
  }
  body.nav-open .nav-links a{font-size:16px;padding:12px 14px}
}
@media (max-width:560px){
  .wrap{padding:0 18px}
  h1{font-size:31px;letter-spacing:-.025em;line-height:1.1}
  h2{font-size:25px;letter-spacing:-.02em}
  .s{padding:64px 0}
  .hero{padding:40px 0 52px}
  .hero .lead,.lead{font-size:16.5px}
  .g-3,.steps,.stats,.g-2,.creo-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .head-inner{padding:8px 10px 8px 16px}
  .head-cta{display:none}
  .burger{margin-left:auto}
  .float-badge{left:auto;right:14px;bottom:-18px;min-width:150px;padding:12px 15px}
  .cta-band{padding:52px 22px}
  /* product mock: на узких прячем сайдбар, KPI меньше — иначе распирает вьюпорт */
  .ui-side{display:none}
  .ui-body{grid-template-columns:1fr;min-height:0}
  .ui-main{padding:18px 16px;min-width:0}
  .ui-kpis{gap:8px;min-width:0}
  .kpi{padding:10px 11px;min-width:0;overflow:hidden}
  .kpi .v{font-size:18px}
  .kpi .d{font-size:9.5px}
}

/* ── Чат-виджет ИИ-продавца ─────────────────────────────────────────────── */
.tvc{position:fixed;right:22px;bottom:22px;z-index:9000;font-family:var(--font)}
.tvc-launch{display:inline-flex;align-items:center;gap:9px;border:none;cursor:pointer;
  padding:13px 20px 13px 16px;border-radius:var(--r-pill);
  background:linear-gradient(180deg,var(--accent),var(--accent-ink));color:#fff;
  font-family:var(--font);font-size:15px;font-weight:600;letter-spacing:-.01em;
  box-shadow:var(--sh-accent),var(--inset-hi);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.tvc-launch:hover{transform:translateY(-2px);box-shadow:0 14px 34px -8px rgba(91,87,232,.55),var(--inset-hi)}
.tvc-launch:active{transform:scale(.97)}
.tvc-launch svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.tvc-panel{position:absolute;right:0;bottom:calc(100% + 14px);width:380px;max-width:calc(100vw - 36px);
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-lg);overflow:hidden;display:flex;flex-direction:column;
  transform-origin:bottom right;opacity:0;transform:translateY(10px) scale(.97);
  pointer-events:none;transition:opacity .26s var(--ease),transform .26s var(--ease)}
.tvc.open .tvc-panel{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.tvc.open .tvc-launch{transform:scale(.96);opacity:.9}
.tvc-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;
  border-bottom:1px solid var(--line-2);background:var(--bg-soft)}
.tvc-who{display:flex;align-items:center;gap:10px}
.tvc-who b{display:block;font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.tvc-sub{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.tvc-dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);flex:0 0 auto}
.tvc-close{border:none;background:none;cursor:pointer;padding:6px;border-radius:var(--r-sm);color:var(--muted);display:flex}
.tvc-close:hover{background:var(--bg-sunken);color:var(--ink)}
.tvc-close svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.tvc-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;
  height:360px;max-height:54vh;background:var(--bg)}
.tvc-msg{max-width:84%;padding:10px 13px;border-radius:15px;font-size:14px;line-height:1.5;
  white-space:pre-wrap;word-wrap:break-word;animation:tvc-in .28s var(--ease)}
.tvc-msg.bot{align-self:flex-start;background:var(--bg-sunken);color:var(--ink-2);border-bottom-left-radius:5px}
.tvc-msg.user{align-self:flex-end;background:linear-gradient(180deg,var(--accent),var(--accent-ink));color:#fff;border-bottom-right-radius:5px}
@keyframes tvc-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.tvc-typing{display:flex;gap:4px;align-items:center}
.tvc-typing span{width:6px;height:6px;border-radius:50%;background:var(--faint);animation:tvc-blink 1.2s infinite}
.tvc-typing span:nth-child(2){animation-delay:.2s}.tvc-typing span:nth-child(3){animation-delay:.4s}
@keyframes tvc-blink{0%,60%,100%{opacity:.3}30%{opacity:1}}
.tvc-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line-2);background:var(--panel)}
.tvc-form input{flex:1;min-width:0;border:1px solid var(--line);border-radius:var(--r-pill);
  padding:11px 16px;font-family:var(--font);font-size:14px;color:var(--ink);background:var(--bg-soft);outline:none;
  transition:border-color .2s,box-shadow .2s}
.tvc-form input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft);background:var(--bg)}
.tvc-form button{flex:0 0 auto;width:42px;height:42px;border:none;cursor:pointer;border-radius:50%;
  background:linear-gradient(180deg,var(--accent),var(--accent-ink));color:#fff;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-accent);transition:transform .2s var(--ease)}
.tvc-form button:hover{transform:scale(1.05)}.tvc-form button:active{transform:scale(.94)}
.tvc-form button:disabled{opacity:.5;cursor:default;transform:none}
.tvc-form button .chip{margin:0}.tvc-form button svg{width:17px;height:17px}
.tvc-note{padding:0 14px 11px;font-size:11px;color:var(--faint);text-align:center;background:var(--panel)}
@media(max-width:480px){
  .tvc{right:14px;bottom:14px}
  .tvc-launch span{display:none}
  .tvc-launch{padding:14px;border-radius:50%}
  .tvc-panel{width:calc(100vw - 28px);max-height:72vh}
  .tvc-log{height:auto;flex:1;max-height:none}
}

/* ───────────────────────── Marquee логотипов-интеграций (правдивый блок доверия) ─────────────────────────
   Бесконечная карусель: трек продублирован, сдвиг на -50% даёт бесшовную петлю. Маска по краям,
   пауза по ховеру, монохром→цвет по ховеру логотипа. Уважает prefers-reduced-motion. */
.logos{padding:6px 0 2px}
.logos .cap{text-align:center;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);margin-bottom:22px}
.marquee{position:relative;overflow:hidden;
  -webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:flex;width:max-content;gap:14px;animation:tv-marquee 42s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.logo-chip{display:inline-flex;align-items:center;gap:11px;white-space:nowrap;
  padding:11px 20px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--panel);
  box-shadow:var(--sh-sm);filter:grayscale(1);opacity:.78;transition:filter .35s var(--ease),opacity .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease)}
.logo-chip:hover{filter:none;opacity:1;transform:translateY(-2px);box-shadow:var(--sh-md)}
.logo-chip .lm{width:24px;height:24px;border-radius:6px;object-fit:contain;flex:none;display:block}
.logo-chip .lw{font-weight:600;font-size:15px;color:var(--ink-2);letter-spacing:-.01em}
@keyframes tv-marquee{to{transform:translateX(-50%)}}

/* ───────────────────────── Sticky / Pinned scroll: «Как это работает» ─────────────────────────
   Левая колонка-шаги прокручивается, правая визуал-панель ПРИКОЛОТА (sticky) и меняет состояние
   по активному шагу. Вертикальный прогресс-бар — scroll-driven (CSS scroll timeline) с JS-фолбэком. */
.how-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:start;margin-top:34px}
.how-steps{display:flex;flex-direction:column;gap:18px;position:relative}
.how-rail{position:absolute;left:19px;top:8px;bottom:8px;width:2px;background:var(--line);border-radius:2px;overflow:hidden}
.how-rail i{position:absolute;left:0;top:0;width:100%;height:0;
  background:linear-gradient(180deg,var(--accent),var(--accent-deep));transition:height .5s var(--ease)}
.how-step{position:relative;padding:22px 24px 22px 58px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--panel);box-shadow:var(--sh-sm);opacity:.5;transform:translateY(0);
  transition:opacity .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease),transform .5s var(--ease)}
.how-step::before{counter-increment:s;content:"0" counter(s);position:absolute;left:18px;top:23px;
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--mono);font-size:11px;font-weight:700;color:var(--faint);
  border:1.5px solid var(--line);background:var(--bg);transition:all .5s var(--ease)}
.how-steps{counter-reset:s}
.how-step.on{opacity:1;border-color:var(--accent-line);box-shadow:var(--sh-md)}
.how-step.on::before{color:#fff;background:var(--accent);border-color:var(--accent)}
.how-step h3{margin:0 0 7px;font-size:18px}
.how-step p{margin:0;font-size:14.5px;line-height:1.6;color:var(--muted)}
.how-sticky{position:sticky;top:104px}
.how-stage{position:relative;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--bg-soft);
  box-shadow:var(--sh-lg);overflow:hidden;min-height:340px;padding:30px}
.how-scene{position:absolute;inset:30px;opacity:0;transform:translateY(14px) scale(.98);
  transition:opacity .55s var(--ease),transform .55s var(--ease);pointer-events:none}
.how-scene.on{opacity:1;transform:none;position:relative;inset:auto}
.how-scene .hs-ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
  background:var(--accent-soft);color:var(--accent-deep);margin-bottom:16px}
.how-scene .hs-ic svg{width:24px;height:24px}
.how-scene h4{font-size:20px;margin:0 0 10px;letter-spacing:-.02em}
.how-scene>p{font-size:14.5px;color:var(--muted);line-height:1.6;margin:0 0 18px}
.hs-rows{display:flex;flex-direction:column;gap:9px}
.hs-rows .r{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-2);
  background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-md);padding:11px 13px}
.hs-rows .r .ck{color:var(--ok);font-weight:700}
.hs-bars{display:flex;align-items:flex-end;gap:9px;height:104px;margin-top:6px}
.hs-bars i{flex:1;border-radius:7px 7px 3px 3px;background:var(--accent-soft)}
.hs-bars i:last-child{background:linear-gradient(180deg,var(--accent),var(--accent-deep));box-shadow:var(--sh-accent)}

/* Scroll-driven прогресс рейла там, где браузер умеет (прогрессивное усиление) */
@supports (animation-timeline: scroll()){
  .how-rail i.sd{height:100%;transform-origin:top;transform:scaleY(0);
    animation:tv-railgrow linear both;animation-timeline:view();animation-range:cover 0% cover 70%}
  @keyframes tv-railgrow{to{transform:scaleY(1)}}
}

@media (max-width:900px){
  .how-grid{grid-template-columns:1fr;gap:24px}
  .how-sticky{position:static;top:auto}
  .how-stage{min-height:auto}
  .how-step{padding:18px 18px 18px 52px}
}
@media (prefers-reduced-motion:reduce){
  .marquee-track{animation:none}
  .how-step{opacity:1}
}

/* ───────────────────────── Сравнение цены с рынком (spotlight_pricing) ─────────────────────────
   Наша колонка подсвечена. Реальные рыночные цифры (docs/TRAVINOV_COMPETITOR_RESEARCH.md). */
.vs{max-width:880px;margin:0 auto;border:1px solid var(--line);border-radius:var(--r-xl);
  overflow:hidden;box-shadow:var(--sh-md);background:var(--panel);position:relative;z-index:1}
.vs-row{display:grid;grid-template-columns:1.5fr 1fr 1fr;align-items:center}
.vs-row:not(:last-child){border-bottom:1px solid var(--line-2)}
.vs-row>div{padding:15px 20px;font-size:14.5px}
.vs-row .what{color:var(--ink-2);font-weight:560}
.vs-row .mkt{color:var(--muted);font-variant-numeric:tabular-nums}
.vs-row .tv{color:var(--ink);font-weight:600;background:var(--accent-soft);
  border-left:1px solid var(--accent-line);height:100%;display:flex;align-items:center;gap:8px}
.vs-row .tv .ck{color:var(--accent-deep);font-weight:800}
.vs-head{background:var(--bg-sunken)}
.vs-head>div{padding:16px 20px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);font-weight:600}
.vs-head .tv{background:linear-gradient(180deg,var(--accent),var(--accent-deep));color:#fff;
  border-left:none;box-shadow:var(--sh-accent)}
.vs-foot{display:grid;grid-template-columns:1.5fr 1fr 1fr}
.vs-foot>div{padding:18px 20px}
.vs-foot .what{font-weight:700;color:var(--ink);font-size:15px}
.vs-foot .mkt{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--faint);font-size:15px}
.vs-foot .tv{background:var(--accent-soft);border-left:1px solid var(--accent-line);
  font-weight:760;font-size:17px;color:var(--accent-deep);letter-spacing:-.02em;display:flex;align-items:center}
.vs-note{max-width:880px;margin:18px auto 0;text-align:center;font-size:13.5px;color:var(--faint)}

/* «Почему так дёшево» — честный callout */
.why-cheap{max-width:760px;margin:28px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.why-cheap .wc{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:20px;box-shadow:var(--sh-sm)}
.why-cheap .wc b{display:block;font-size:15px;margin-bottom:6px;color:var(--ink)}
.why-cheap .wc span{font-size:13.5px;color:var(--muted);line-height:1.55}

/* ───────────────────────── Блок основателя (личная ответственность) ───────────────────────── */
.founder{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;
  max-width:880px;margin:0 auto;background:var(--bg-soft);border:1px solid var(--line);
  border-radius:var(--r-xl);padding:38px 40px;box-shadow:var(--sh-md)}
.founder-photo{width:128px;height:128px;border-radius:var(--r-xl);flex:none;
  background:linear-gradient(150deg,var(--accent),var(--accent-deep));display:grid;place-items:center;
  color:#fff;font-size:46px;font-weight:760;letter-spacing:-.03em;box-shadow:var(--sh-accent);
  position:relative;overflow:hidden}
.founder-photo span{position:relative}
.founder-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%;z-index:1}
.founder h2{font-size:24px;margin:6px 0 12px}
/* Реальное фото крупнее монограма (портрет лучше «дышит» в большем формате) */
.founder.has-photo .founder-photo{width:150px;height:188px;border-radius:var(--r-lg)}
.founder p{font-size:15.5px;line-height:1.65;color:var(--muted);margin:0}
.founder .sig{margin-top:14px;font-weight:600;color:var(--ink-2);font-size:14.5px}
.founder .sig em{color:var(--faint);font-weight:500;font-style:normal}

@media (max-width:760px){
  .vs-row,.vs-head,.vs-foot{grid-template-columns:1.3fr .85fr .85fr}
  .vs-row>div,.vs-head>div,.vs-foot>div{padding:13px 12px;font-size:13px}
  .why-cheap{grid-template-columns:1fr}
  .founder{grid-template-columns:1fr;text-align:center;padding:30px 22px;gap:20px}
  .founder-photo{margin:0 auto}
}

/* ───────────────────────── Лайтбокс креативов (зум по клику, без потери качества) ─────────────────────────
   Показываем тот же исходный PNG (1672×941) до 1280px → даунскейл, чётко. Закрытие: фон/крестик/Esc. */
.creo-grid .creo img{cursor:zoom-in}
.lightbox{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
  background:rgba(10,10,14,.84);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);padding:24px;cursor:zoom-out}
.lightbox.on{display:flex;animation:lb-fade .26s var(--ease)}
.lightbox img{max-width:min(1280px,94vw);max-height:90vh;width:auto;height:auto;border-radius:16px;
  box-shadow:0 40px 90px -24px rgba(0,0,0,.7);cursor:default;image-rendering:auto}
.lightbox .lb-close{position:absolute;top:18px;right:22px;width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,.14);color:#fff;border:none;font-size:19px;cursor:pointer;display:grid;place-items:center;
  transition:background .2s var(--ease)}
.lightbox .lb-close:hover{background:rgba(255,255,255,.26)}
@keyframes lb-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.lightbox.on{animation:none}}

/* ─────────────────────────────────────────────────────────────────────────
   ДОРОГАЯ АНИМАЦИЯ: pinned scroll-сторителлинг «С тишины — до потока заявок».
   .story — высокий трек (6 кадров); .story-pin — приклеен на весь экран;
   продукт-мок ОЖИВАЕТ по data-beat (штат включается, заявки летят 0→24, рост).
   Кадр активирует IntersectionObserver по сентинелам (.story-trig) — без scroll-listener.
   Эмоциональный пик (beat 3-4) ведёт к единственному CTA (beat 5). Один «жирный» приём на странице. */
.story{position:relative;height:560vh;background:linear-gradient(180deg,var(--bg),var(--bg-soft))}
.story-pin{position:sticky;top:0;height:100vh;display:flex;align-items:center;overflow:hidden}
.story-stage{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,4vw,58px);align-items:center;width:100%}
.story-copy{position:relative}
.story-num{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--faint);display:inline-flex;gap:5px;align-items:baseline}
.story-num b{color:var(--accent);font-size:15px;font-weight:700;transition:color .4s var(--ease)}
.story-title{display:grid;font-size:clamp(25px,3.1vw,40px);line-height:1.14;letter-spacing:-.03em;
  margin:14px 0 16px;min-height:2.5em;font-weight:660}
.story-title span{grid-area:1/1;opacity:0;transform:translateY(14px);
  transition:opacity .55s var(--ease),transform .55s var(--ease)}
.story-sub{display:grid;color:var(--muted);font-size:clamp(15px,1.2vw,17px);line-height:1.62;min-height:3.4em;margin:0 0 24px}
.story-sub span{grid-area:1/1;opacity:0;transform:translateY(10px);
  transition:opacity .55s var(--ease) .06s,transform .55s var(--ease) .06s}
/* активный кадр показывает свой текст */
.story-stage[data-beat="0"] [data-bt="0"],.story-stage[data-beat="0"] [data-bs="0"],
.story-stage[data-beat="1"] [data-bt="1"],.story-stage[data-beat="1"] [data-bs="1"],
.story-stage[data-beat="2"] [data-bt="2"],.story-stage[data-beat="2"] [data-bs="2"],
.story-stage[data-beat="3"] [data-bt="3"],.story-stage[data-beat="3"] [data-bs="3"],
.story-stage[data-beat="4"] [data-bt="4"],.story-stage[data-beat="4"] [data-bs="4"],
.story-stage[data-beat="5"] [data-bt="5"],.story-stage[data-beat="5"] [data-bs="5"]{opacity:1;transform:none}
/* CTA — только в финале */
.story-cta{opacity:0;transform:translateY(10px);pointer-events:none;
  transition:opacity .5s var(--ease) .1s,transform .5s var(--ease) .1s}
.story-stage[data-beat="5"] .story-cta{opacity:1;transform:none;pointer-events:auto}

/* Устройство (мок), который оживает */
.story-device{position:relative}
.story-ui .sd-power{margin-left:auto;display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:600;color:var(--faint);transition:color .4s var(--ease)}
.sd-toggle{width:34px;height:19px;border-radius:11px;background:#dfe0e6;position:relative;transition:background .45s var(--ease)}
.sd-toggle i{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;
  box-shadow:var(--sh-sm);transition:transform .45s var(--ease)}
.story-stage:not([data-beat="0"]) .sd-power{color:var(--accent-ink)}
.story-stage:not([data-beat="0"]) .sd-toggle{background:var(--accent)}
.story-stage:not([data-beat="0"]) .sd-toggle i{transform:translateX(15px)}
.sd-body{padding:20px 22px 22px;position:relative;min-height:330px}
.sd-top{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sd-stat{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px 16px;box-shadow:var(--sh-sm);
  transition:border-color .45s var(--ease),box-shadow .45s var(--ease),opacity .45s var(--ease)}
.sd-l{font-size:12px;color:var(--muted)}
.sd-big{font-size:34px;font-weight:680;letter-spacing:-.04em;line-height:1.1;margin-top:3px;display:flex;align-items:baseline;gap:8px}
.sd-d{font-size:11.5px;color:var(--faint);margin-top:2px}
.sd-d.sd-up{color:var(--ok);font-weight:600;opacity:0;transition:opacity .5s var(--ease)}
.sd-arr{font-style:normal;font-size:16px;font-weight:600;color:var(--ok);opacity:0;transform:translateX(-6px);
  transition:opacity .5s var(--ease),transform .5s var(--ease)}
.sd-week{opacity:.42}
.story-stage[data-beat="3"] .sd-leads,.story-stage[data-beat="4"] .sd-leads,.story-stage[data-beat="5"] .sd-leads{
  border-color:var(--accent-line);box-shadow:var(--sh-md)}
.story-stage[data-beat="4"] .sd-week,.story-stage[data-beat="5"] .sd-week{opacity:1}
.story-stage[data-beat="4"] .sd-arr,.story-stage[data-beat="5"] .sd-arr,
.story-stage[data-beat="4"] .sd-up,.story-stage[data-beat="5"] .sd-up{opacity:1;transform:none}
/* департаменты штата */
.sd-depts{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 0}
.dep{font-size:12px;font-weight:600;color:var(--faint);background:var(--bg-sunken);
  border:1px solid var(--line-2);border-radius:999px;padding:5px 11px;
  opacity:.45;transform:translateY(5px);transition:all .4s var(--ease);transition-delay:calc(var(--di)*.06s)}
.story-stage:not([data-beat="0"]) .dep{opacity:1;transform:none;color:var(--accent-ink);
  background:var(--accent-soft);border-color:var(--accent-line)}
/* лента событий */
.sd-stream{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.sd-row{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-2);
  background:var(--panel);border:1px solid var(--line-2);border-radius:11px;padding:10px 12px;
  opacity:0;transform:translateY(8px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.sd-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none;box-shadow:0 0 0 3px var(--accent-soft)}
.sd-dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
/* кампания (row0) — с beat 2; заявки (row1,2) — с beat 3 */
.story-stage[data-beat="2"] .sd-row[style*="--ri:0"],
.story-stage[data-beat="3"] .sd-row,.story-stage[data-beat="4"] .sd-row,.story-stage[data-beat="5"] .sd-row{opacity:1;transform:none}
/* график роста — с beat 4 */
.sd-chart{display:flex;align-items:flex-end;gap:8px;height:0;margin-top:0;overflow:hidden;
  transition:height .55s var(--ease),margin-top .55s var(--ease)}
.sd-chart i{flex:1;border-radius:6px 6px 2px 2px;background:var(--accent-soft);height:var(--h);
  transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease)}
.sd-chart i:last-child{background:linear-gradient(180deg,var(--accent),var(--accent-deep));box-shadow:var(--sh-accent)}
.story-stage[data-beat="4"] .sd-chart,.story-stage[data-beat="5"] .sd-chart{height:84px;margin-top:14px}
.story-stage[data-beat="4"] .sd-chart i,.story-stage[data-beat="5"] .sd-chart i{transform:scaleY(1)}
/* заглушка «ждём заявку» — до beat 3 */
.sd-empty{position:absolute;left:22px;bottom:22px;font-size:12px;color:var(--faint);font-style:italic;
  opacity:0;transition:opacity .4s var(--ease)}
.story-stage[data-beat="0"] .sd-empty,.story-stage[data-beat="1"] .sd-empty,.story-stage[data-beat="2"] .sd-empty{opacity:1}
/* кадр 0 — «тишина»: приглушаем весь мок */
.story-stage[data-beat="0"] .story-ui{filter:grayscale(.5);opacity:.92}
.story-ui{transition:filter .6s var(--ease),opacity .6s var(--ease)}
/* прогресс-рейл слева — геометрия СТРОГО под .wrap (max-width 1200 + padding 28): ставим на
   12px от левого края контейнера = слева от текста, иначе линия наезжала на заголовок. */
/* Vee-АКТЁР у «занавеса» — ЖИВОЙ МУЛЬТИК БЕЗ СКОЛЬЖЕНИЯ (правило 2026-06-24): САМ вбегает слева (ноги
   переставляются — 2 кадра бега чередуются по скроллу), встаёт и машет (idle-bob), сам выбегает влево
   (разворот scaleX). Тот же МУЛЬТЯШНЫЙ Vee (run/hello), не реалистичный рендер. Хореография — JS по
   прогрессу скролла (app.js, data-walk). 6 нарративных beat'ов остаются дискретными. Только десктоп. */
.story-mascot{position:absolute;left:0;bottom:0;z-index:4;width:clamp(150px,15vw,220px);
  transform:translateX(-130%);                 /* старт: за кулисами слева; дальше двигает JS по скроллу */
  pointer-events:none;will-change:transform}
.story-mascot .sm-pose{position:absolute;left:0;bottom:0;width:100%;height:auto;display:none;
  filter:drop-shadow(0 16px 22px rgba(20,18,40,.20)) drop-shadow(0 2px 5px rgba(20,18,40,.12))}
.story-mascot .sm-pose.is-on{display:block}
.story-mascot.face-left .sm-pose{transform:scaleX(-1)}        /* выбегает влево → разворот */
/* idle-bob, пока стоит и машет (лёгкое «дыхание» — оживляет, но не скользит). */
.story-mascot .sm-stand.is-on{animation:vee-bob 1.7s ease-in-out infinite}
@keyframes vee-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3.5%)}}
@media (max-width:900px){ .story-mascot{display:none} }
@media (prefers-reduced-motion:reduce){ .story-mascot{display:none} }

.story-rail{position:absolute;left:max(12px,calc((100vw - 1200px)/2 + 12px));top:18vh;bottom:18vh;width:3px;
  background:var(--line);border-radius:3px;overflow:hidden}
.story-rail i{position:absolute;left:0;top:0;width:100%;height:0;
  background:linear-gradient(180deg,var(--accent),var(--accent-deep));transition:height .5s var(--ease)}
/* Триггеры покрывают ТОЛЬКО закреплённый диапазон (bottom:100vh = высота пина): последний кадр
   успевает активироваться, пока стейдж ещё на экране; нижние 100vh — хвост без триггеров, где финал держится. */
.story-track{position:absolute;top:0;left:0;right:0;bottom:100vh;display:flex;flex-direction:column;pointer-events:none}
/* Каждый триггер — высокий сегмент (flex:1), а не 1px: ровно один сегмент держит центр вьюпорта,
   обсервер ловит надёжно (1px-цель против 0-высотной center-линии проскакивала → залипало на beat 0). */
.story-trig{flex:1 0 0;width:100%}

@media (max-width:900px){
  /* На телефоне пин тяжёл — показываем финальное состояние статично (без скролл-скраба). */
  .story{height:auto}
  .story-pin{position:static;height:auto;padding:54px 0}
  .story-stage{grid-template-columns:1fr;gap:26px}
  .story-rail{display:none}
  .story-num{display:none}
  .story-title{min-height:0}.story-sub{min-height:0}
  .story-title span,.story-sub span{position:static;opacity:0}
  .story-stage [data-bt="5"],.story-stage [data-bs="5"]{opacity:1}
  .story-title{display:block}.story-sub{display:block}
  .story-title span:not([data-bt="5"]),.story-sub span:not([data-bs="5"]){display:none}
  .story-cta{opacity:1;transform:none;pointer-events:auto}
  .sd-week{opacity:1}.sd-arr,.sd-up{opacity:1!important;transform:none!important}
  .dep{opacity:1!important;transform:none!important;color:var(--accent-ink);background:var(--accent-soft);border-color:var(--accent-line)}
  .sd-row{opacity:1!important;transform:none!important}
  .sd-chart{height:84px!important;margin-top:14px!important}.sd-chart i{transform:scaleY(1)!important}
  .sd-toggle{background:var(--accent)}.sd-toggle i{transform:translateX(15px)}.sd-empty{display:none}
  .story-ui{filter:none!important;opacity:1!important}
}
@media (prefers-reduced-motion:reduce){
  .story{height:auto}.story-pin{position:static;height:auto;padding:54px 0}
  .story-title span,.story-sub span{transition:none}
}

/* Карточка «что ИИ запомнил» (секция «Каждый день умнее») — заменила дубль графика роста. */
.learn-list{display:flex;flex-direction:column;gap:9px}
.learn-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-md);padding:11px 14px;box-shadow:var(--sh-sm)}
.learn-row .lk{font-size:12.5px;color:var(--muted);white-space:nowrap}
.learn-row .lv{font-size:13.5px;font-weight:600;color:var(--ink);text-align:right;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.learn-row .lv i{font-style:normal;font-size:11.5px;font-weight:600;color:var(--ok);
  background:var(--ok-soft);border-radius:999px;padding:2px 8px}
.learn-row.off .lv i{color:#b4540f;background:#fdf0e6}
.learn-foot{margin-top:16px;border-top:1px solid var(--line-2);padding-top:14px;font-size:12.5px;color:var(--muted);line-height:1.55}

/* ─────────────────────────── Маскот «Vee» (растровое наполнение сайта) ───────────────────────────
   Рекуррентный персонаж по странице (creative_toolbox: character_as_content_fill). Белый маскот на
   светлом отделяем мягкой тенью (contrast_outline_separation — тень премиальнее обводки). На тёмном
   CTA-блоке контраст и так есть. Анимации — только transform/opacity, idle без перебора, reduced-motion off. */
.mascot{display:block;pointer-events:none;user-select:none;
  filter:drop-shadow(0 14px 18px rgba(20,18,40,.18)) drop-shadow(0 2px 4px rgba(20,18,40,.12))}

/* ─── Переиспользуемая расстановка маскота (.mh = mascot helper, src/mascots.js) ───
   image_anchor_grip: якорь к КРОМКЕ блока (.cta-stage облегает .cta-band) через bottom:100% + overlap,
   НЕ глазомерный top:-Npx. mh-grip = руки за кромку (overlap ~0.22×width); mh-stand = ступни на кромке
   (контакт ~5px, как чат-маскот на кнопке). vary_sizes: sm/md/lg. Покачивание вокруг точки контакта. */
/* margin-bottom (нахлёст) СЧИТАЕТСЯ из манифеста точки хвата, не на глаз:
   bite = biteFrac(--bf) * aspect(--asp) * ширина(--mw)  +  contactPress(касание плотнее на ~4px).
   --bf/--asp инлайнятся из src/mascot_anchors.json (tools/anchor_point.py). Меняешь масштаб (--mw)
   по брейкпоинту — нахлёст пересчитывается сам. Новая поза → прогон детектора → корректная посадка. */
.mh{display:block;pointer-events:none;user-select:none;position:absolute;height:auto;z-index:2;bottom:100%;
  transform-origin:bottom center;
  margin-bottom:calc(-1 * (var(--bf,.04) * var(--asp,1.1) * var(--mw,116px) + 4px));
  filter:drop-shadow(0 14px 18px rgba(20,18,40,.16)) drop-shadow(0 2px 4px rgba(20,18,40,.10));
  animation:mh-sway 4.8s var(--ease) infinite}
.mh-sm{--mw:88px;width:88px}.mh-md{--mw:116px;width:116px}.mh-lg{--mw:150px;width:150px}.mh-xl{--mw:205px;width:205px}
.mh-right{right:7%}.mh-left{left:7%}
@keyframes mh-sway{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
/* Выглядывает ИЗ-ЗА блока: позади (z-index 0), низ скрыт кромкой. Высота из --asp*--mw; над кромкой
   видно ~45% роста (остальное прячет блок, который должен быть z-index выше). margin-bottom не нужен. */
.mh-peek{z-index:0;margin-bottom:0;bottom:calc(100% - .55 * var(--asp,1.5) * var(--mw))}
/* Боковой хват: маскот в СВОБОДНОМ боковом поле центрированного блока; рука уходит ЗА вертикальную
   кромку (z-index ниже opaque-блока = окклюзия «держит»). Стоит ВНУТРИ высоты блока (top ниже верха
   таблицы) → НИКОГДА не налезает на заголовок/подзаголовок над блоком. principle-image-never-covers-text. */
.mh-side{--mw:182px;width:182px;z-index:0;margin-bottom:0;bottom:9%;
  animation:mh-sway 5.4s var(--ease) infinite}
.mh-side.mh-left{left:auto;right:100%;margin-right:-58px}   /* левое поле, кисть за левой кромкой */
.mh-side.mh-right{right:auto;left:100%;margin-left:-58px;transform:scaleX(-1)}  /* зеркалим к правой */
/* Боковое поле есть только когда вьюпорт заметно шире блока (880). Уже 1160 — поле жмётся к телу
   маскота → прячем (иначе вылезет за край). Ниже это и так покрыто общим скрытием .mh ≤760. */
@media (max-width:1159px){ .mh-side{display:none} }
@media (max-width:1100px){ .mh-lg{--mw:120px;width:120px}.mh-md{--mw:98px;width:98px}.mh-xl{--mw:168px;width:168px} }
@media (max-width:760px){
  .mh-lg{--mw:92px;width:92px}.mh-md{--mw:80px;width:80px}.mh-sm{--mw:72px;width:72px}.mh-xl{--mw:124px;width:124px}
  .mh-right{right:4%}.mh-left{left:4%}
}
@media (prefers-reduced-motion:reduce){ .mh{animation:none} }

/* Живой Vee (i2v) — видео-блок рядом с текстом (НЕ поверх текста). Видео в своём контейнере,
   reduced-motion → показываем постер (video спрятан, постер виден). image_overlap_hides_text соблюдён. */
.live-vee{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:36px;align-items:center;
  margin-top:48px;padding-top:40px;border-top:1px solid var(--line-2)}
.vee-clip{margin:0;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-md);
  border:1px solid var(--line);aspect-ratio:372/648;display:flex;align-items:center;justify-content:center;
  padding:6% 12%;background:radial-gradient(120% 90% at 50% 22%,var(--bg),var(--bg-sunken))}
/* vee-idle: покадровая анимация КОНСИСТЕНТНОГО канонного Vee (дыхание+моргание) вместо i2v-робота */
.vee-anim{position:relative;display:block;width:100%;animation:vee-breathe 3.6s ease-in-out infinite;transform-origin:50% 92%}
.vee-anim img{display:block;width:100%;height:auto}
.vee-anim .vee-blink{position:absolute;inset:0;opacity:0;animation:vee-blink 5.4s steps(1,end) infinite}
@keyframes vee-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2%) scale(1.02)}}
@keyframes vee-blink{0%,90%,100%{opacity:0}93%,97%{opacity:1}}
.vee-say h3{font-size:clamp(22px,3vw,30px);line-height:1.12;letter-spacing:-.02em;margin:10px 0 12px;color:var(--ink)}
.vee-say p{color:var(--ink-2);font-size:15.5px;line-height:1.6;max-width:46ch}
@media (max-width:760px){
  .live-vee{grid-template-columns:1fr;gap:22px;justify-items:center;text-align:center}
  .vee-clip{max-width:240px}
  .vee-say p{margin:0 auto}
}
@media (prefers-reduced-motion:reduce){
  .vee-anim,.vee-anim .vee-blink{animation:none}
  .vee-anim .vee-blink{display:none}
}

/* (1) Сцена CTA-блока — маскот (.mh) держится за верхнюю кромку. Якорь к КРОМКЕ блока: .cta-stage
   плотно облегает .cta-band → bottom:100% = верх блока, нахлёст из точки хвата (см. .mh выше). */
.lead-wrap{position:relative}
.cta-stage{position:relative}
.cta-stage .cta-band{position:relative;z-index:1}

/* (2) Бег — 2-кадровый цикл (ножки переставляются) + лёгкий bob, в нижнем-левом воздухе секции «учится». */
.has-runner{position:relative}
.mascot-run{position:absolute;left:2px;bottom:6px;width:98px;height:144px;z-index:2}
.mascot-run .rf{position:absolute;left:0;bottom:0;width:98px;height:auto;animation:m-bob 2s var(--ease) infinite}
.rf-a{animation:m-bob 2s var(--ease) infinite, m-step .42s steps(1) infinite}
.rf-b{opacity:0;animation:m-bob 2s var(--ease) infinite, m-step2 .42s steps(1) infinite}
@keyframes m-step{0%,50%{opacity:1}50.01%,100%{opacity:0}}
@keyframes m-step2{0%,50%{opacity:0}50.01%,100%{opacity:1}}
@keyframes m-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

/* (3) Маскот у таблицы цен — .mh в .vs-STAGE, которая ОБЛЕГАЕТ саму таблицу (max-width 880, центр).
   КРИТИЧНО: якорить к ОБЪЕКТУ (.vs-stage=таблица), НЕ к широкой .vs-wrap — иначе right/left:7% попадает
   в ПОЛЯ сбоку от таблицы и маскот висит в воздухе рядом, а не у блока (урок overlay_limb_pressed). */
.vs-wrap{position:relative}
.vs-stage{position:relative;max-width:880px;margin:0 auto}

@media (max-width:760px){
  /* На телефоне у таблицы маскот тесен — прячем; бегун тоже. CTA-маскоты остаются (мельче). */
  .vs-wrap .mh,.mascot-run{display:none}
}
@media (prefers-reduced-motion:reduce){
  .mascot-run .rf{animation:none}
  .rf-b{opacity:0}
}

/* ─────────────── Маскот в чат-виджете: зазывает у кнопки → «ныряет» в неё → аватар машет ───────────────
   creative_toolbox: character_as_content_fill + взаимодействие. Полный кинематографичный «вбег в кнопку» —
   в визионе; здесь: idle-зазыв (bob+покачивание), на открытии нырок в кнопку, аватар в шапке машет. */
/* Маскот СТОИТ на кнопке: якорь bottom:100% (.tvc когда закрыт = коробка кнопки) + overlap, ступни
   утоплены в кнопку и НЕ отрываются. Зазыв = покачивание вокруг СТОП (origin bottom), без вертикального
   подскока (раньше translateY(-7px) отрывал ноги → читалось как «висит в воздухе»). image_anchor_grip. */
.tvc-mascot{position:absolute;right:16px;bottom:100%;margin-bottom:-8px;width:74px;height:auto;z-index:2;
  pointer-events:none;transform-origin:bottom center;
  filter:drop-shadow(0 10px 14px rgba(20,18,40,.22));
  animation:tvc-beckon 2.6s var(--ease) infinite;
  transition:transform .45s var(--ease),opacity .35s var(--ease)}
@keyframes tvc-beckon{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
/* по открытию чата — «ныряет» в кнопку (вниз+уменьшается+исчезает) */
.tvc.open .tvc-mascot{animation:none;transform:translateY(46px) scale(.18);opacity:0}
/* аватар в шапке (вместо точки) */
.tvc-ava{width:34px;height:34px;border-radius:50%;flex:0 0 auto;overflow:hidden;
  background:var(--accent-soft);display:grid;place-items:end center;box-shadow:0 0 0 2px var(--accent-line)}
.tvc-ava img{width:30px;height:auto;display:block}
.tvc.open .tvc-ava img{animation:tvc-ava-wave .9s var(--ease) .25s 1}
@keyframes tvc-ava-wave{0%{transform:translateY(8px) scale(.8);opacity:.4}55%{transform:translateY(-1px) rotate(-6deg)}75%{transform:rotate(5deg)}100%{transform:none}}
@media (max-width:760px){ .tvc-mascot{width:56px;right:2px} }
@media (prefers-reduced-motion:reduce){ .tvc-mascot{animation:none} .tvc.open .tvc-ava img{animation:none} }

/* Сравнение «Студия / Конструктор / Travinov» (продуктовые лендинги Фабрики продуктов) + браузер-фрейм hero */
.cmp .card{display:flex;flex-direction:column;gap:0}
.cmp .card h3{display:flex;align-items:center;gap:8px;margin:0 0 2px}
.cmp .card>.muted.sm{margin:0 0 14px}
.cmp-li{display:flex;align-items:flex-start;gap:9px;padding:8px 0;font-size:15px;line-height:1.4;color:var(--ink-2);border-top:1px solid var(--line)}
.cmp-li:first-of-type{border-top:0}
.cmp .ck{flex:none;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:11px;font-weight:700;margin-top:1px}
.cmp .ck.on{background:var(--accent-soft);color:var(--accent-ink)}
.cmp .ck.off{background:#f3f4f7;color:var(--faint)}
.cmp-win{position:relative}
.cmp-badge{font:600 10.5px/1 var(--mono,monospace);letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--accent);padding:4px 8px;border-radius:var(--r-pill)}
.lp-frame{padding:0!important;overflow:hidden}
.lp-frame img{width:100%;height:auto;display:block}
.lp-frame .ui-bar{border-bottom:1px solid var(--line)}
