/* GEOEngine SaaS — единая дизайн-система (тёмная тема). */
:root{
  --bg:#0a0e1a; --bg2:#0f1526; --card:#141b30; --card2:#19223c; --line:#1f2a47;
  --txt:#e8ecf6; --mut:#8b96b3; --acc:#5b8cff; --acc2:#9d6bff; --ok:#3fd68f;
  --warn:#f5b14c; --bad:#ff6b6b; --pink:#ff6bcb;
  --grad:linear-gradient(135deg,#5b8cff 0%,#9d6bff 60%,#ff6bcb 120%);
  --r:12px; --r2:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.muted{color:var(--mut)}
.small{font-size:13px}
.center{text-align:center}
.grad-txt{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
hr{border:none;border-top:1px solid var(--line);margin:24px 0}

/* ── кнопки ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:11px 20px;border-radius:10px;font-weight:600;font-size:14px;line-height:1.2;border:1px solid transparent;cursor:pointer;transition:.18s;white-space:nowrap}
.btn-pri{background:var(--grad);color:#fff;box-shadow:0 8px 24px rgba(91,140,255,.3)}
.btn-pri:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(91,140,255,.45)}
.btn-sec{border-color:var(--line);color:var(--txt);background:transparent}
.btn-sec:hover{border-color:var(--acc);background:var(--card)}
.btn-ghost{color:var(--mut);background:transparent}
.btn-ghost:hover{color:var(--txt)}
.btn-danger{background:rgba(255,107,107,.12);color:var(--bad);border-color:rgba(255,107,107,.3)}
.btn-danger:hover{background:rgba(255,107,107,.2)}
.btn-ok{background:rgba(63,214,143,.14);color:var(--ok);border-color:rgba(63,214,143,.3)}
.btn-sm{padding:7px 13px;font-size:13px}
.btn-block{display:flex;width:100%;justify-content:center}
.btn[disabled],.btn.disabled{opacity:.45;pointer-events:none}

/* ── карточки ── */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:22px}
.card+.card{margin-top:18px}
.card h2,.card h3{letter-spacing:-.3px}
.card-pad-sm{padding:16px}

/* ── формы ── */
label{display:block;font-size:13px;color:var(--mut);margin:14px 0 6px}
input,textarea,select{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:10px;color:var(--txt);padding:12px 14px;font-size:14px;font-family:inherit}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--acc)}
textarea{min-height:90px;resize:vertical}
.field-row{display:flex;gap:14px;flex-wrap:wrap}
.field-row>div{flex:1;min-width:200px}

/* ── бейджи ── */
.badge{display:inline-block;padding:3px 11px;border-radius:20px;font-size:12px;font-weight:600;border:1px solid var(--line)}
.badge-ok{background:rgba(63,214,143,.14);color:var(--ok);border-color:transparent}
.badge-warn{background:rgba(245,177,76,.14);color:var(--warn);border-color:transparent}
.badge-bad{background:rgba(255,107,107,.14);color:var(--bad);border-color:transparent}
.badge-acc{background:rgba(91,140,255,.16);color:var(--acc);border-color:transparent}
.badge-mut{background:var(--card2);color:var(--mut);border-color:transparent}

/* ── таблицы ── */
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;border-bottom:1px solid var(--line)}
td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--card2)}
.table-wrap{overflow-x:auto}

@media(max-width:700px){
  .geo-candidates{overflow-x:visible}
  .geo-candidates table,
  .geo-candidates thead,
  .geo-candidates tbody,
  .geo-candidates tr,
  .geo-candidates th,
  .geo-candidates td{display:block;width:100%}
  .geo-candidates thead{display:none}
  .geo-candidates tr{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:10px;background:var(--card2)}
  .geo-candidates td{border-bottom:0;padding:8px 0;overflow-wrap:anywhere}
  .geo-candidates td::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--mut);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
  .geo-candidates .geo-actions{text-align:left!important}
  .geo-candidates .geo-actions .flex{justify-content:flex-start!important;flex-wrap:wrap}
}

/* ── флеш-сообщения ── */
.flash{padding:12px 16px;border-radius:10px;margin-bottom:18px;font-size:14px;border:1px solid}
.flash-ok{background:rgba(63,214,143,.1);border-color:rgba(63,214,143,.3);color:var(--ok)}
.flash-err{background:rgba(255,107,107,.1);border-color:rgba(255,107,107,.3);color:var(--bad)}
.flash-info{background:rgba(91,140,255,.1);border-color:rgba(91,140,255,.3);color:var(--acc)}

/* ── сетки ── */
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ── KPI плитки ── */
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:20px}
.kpi .v{font-size:30px;font-weight:800;letter-spacing:-1px;margin-top:4px}
.kpi .l{color:var(--mut);font-size:13px}
.kpi .v.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ── score-кружок ── */
.score-ring{--p:0;--c:var(--ok);width:128px;height:128px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--c) calc(var(--p)*1%),var(--line) 0);position:relative}
.score-ring::before{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--card)}
.score-ring b{position:relative;font-size:34px;font-weight:800}
.score-ring small{position:relative;color:var(--mut);font-size:12px}

/* progress bar */
.bar{height:8px;background:var(--bg2);border-radius:5px;overflow:hidden}
.bar>span{display:block;height:100%;background:var(--grad)}

/* ── публичная шапка ── */
header.pub{position:sticky;top:0;z-index:50;background:rgba(10,14,26,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
header.pub nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{font-weight:800;font-size:20px;letter-spacing:-.5px}
.nav-links{display:flex;gap:26px;font-size:14px;color:var(--mut);align-items:center}
.nav-links a:hover{color:var(--txt)}
@media(max-width:720px){.nav-links{display:none}}

/* ── dashboard layout ── */
.shell{display:flex;min-height:100vh}
.sidebar{width:244px;background:var(--bg2);border-right:1px solid var(--line);padding:22px 16px;position:sticky;top:0;height:100vh;flex-shrink:0;overflow-y:auto}
.sidebar .logo{padding:0 8px 18px;display:block}
.side-sec{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin:18px 8px 8px}
.side-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:var(--mut);font-size:14px;font-weight:500;margin-bottom:2px}
.side-link:hover{background:var(--card);color:var(--txt)}
.side-link.active{background:var(--card);color:var(--txt)}
.side-link.active{box-shadow:inset 2px 0 0 var(--acc)}
.side-ico{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;opacity:.9}
.side-ico svg{width:18px;height:18px}
.main{flex:1;min-width:0}
.topbar{height:62px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;background:rgba(10,14,26,.82);backdrop-filter:blur(12px);z-index:40}
.content{padding:28px}
.page-title{font-size:24px;font-weight:800;letter-spacing:-.5px;margin-bottom:4px}
.breadcrumb{color:var(--mut);font-size:13px;margin-bottom:20px}
@media(max-width:820px){.sidebar{display:none}}
@media(max-width:700px){
  .topbar{height:auto;min-height:62px;align-items:flex-start;gap:8px;padding:10px 14px;flex-wrap:wrap}
  .topbar>.flex{width:100%;min-width:0;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap}
  .topbar .site-switch{max-width:100%;min-width:0}
  .topbar .muted.small{max-width:100%;overflow-wrap:anywhere}
  .content{padding:18px 14px}
  .card{padding:16px}
}

/* trial banner */
.trial-banner{background:linear-gradient(135deg,rgba(91,140,255,.16),rgba(157,107,255,.12));border:1px solid rgba(91,140,255,.3);border-radius:var(--r);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px;flex-wrap:wrap}

/* pricing */
.plan{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:26px;position:relative;display:flex;flex-direction:column}
.plan.pop{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc),0 18px 50px rgba(91,140,255,.18)}
.plan .pname{font-size:18px;font-weight:700}
.plan .price{font-size:38px;font-weight:800;letter-spacing:-1px;margin:10px 0 2px}
.plan .price small{font-size:14px;color:var(--mut);font-weight:500}
.plan ul{list-style:none;margin:18px 0;flex:1}
.plan li{padding:7px 0;font-size:14px;color:var(--mut);display:flex;gap:9px}
.plan li b{color:var(--txt);font-weight:600}
.plan li::before{content:"✓";color:var(--ok);font-weight:700}
.plan li.no{opacity:.5}
.plan li.no::before{content:"–";color:var(--mut)}
.pop-tag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--grad);color:#fff;font-size:12px;font-weight:700;padding:4px 14px;border-radius:20px}

/* tabs */
.tabs{display:flex;gap:6px;align-items:center;border-bottom:1px solid var(--line);margin:8px 0 22px;flex-wrap:wrap}
.tab{padding:11px 14px;color:var(--mut);font-size:14px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent}
.tab.active{color:var(--txt);border-bottom-color:var(--acc)}
/* деление вкладок на блоки SEO / ИИ */
.tab-group-label{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:7px;margin-right:2px}
.tab-group-label.ai{color:var(--acc);background:rgba(91,140,255,.12)}
.tab-group-label.seo{color:#3fd68f;background:rgba(63,214,143,.12)}
.tab-sep{width:1px;align-self:stretch;background:var(--line);margin:6px 8px}
@media(max-width:720px){.tab-sep{display:none}.tab-group-label{margin:6px 0 0}}

/* блок «Инструменты платформы» на обзоре */
.tool-head{font-size:13px;font-weight:700;padding:8px 10px;border-radius:8px;margin-bottom:8px}
.tool-head.ai{color:var(--acc);background:rgba(91,140,255,.1)}
.tool-head.seo{color:#3fd68f;background:rgba(63,214,143,.1)}
.tool-row{display:flex;align-items:center;gap:12px;padding:11px 10px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;transition:.15s}
.tool-row:hover{border-color:var(--acc);background:var(--card)}
.tool-row .tool-ic{font-size:20px;width:24px;text-align:center;flex-shrink:0}
.tool-row b{display:block;font-size:14px;color:var(--txt)}
.tool-row .muted{display:block;line-height:1.3}
.tool-row .tool-go{margin-left:auto;color:var(--mut);font-size:18px}
.tabpane{display:none}
.tabpane.active{display:block}

/* code/pre */
pre{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:16px;overflow:auto;font-size:13px;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* mini chart (bars) */
.chart{display:flex;align-items:flex-end;gap:5px;height:120px}
.chart .col{flex:1;background:var(--grad);border-radius:4px 4px 0 0;min-height:3px;position:relative;opacity:.85}
.chart .col:hover{opacity:1}
.flex{display:flex;align-items:center;gap:12px}
.between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:4px}
.tag-list{display:flex;gap:6px;flex-wrap:wrap}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.mt0{margin-top:0}.mt8{margin-top:8px}.mt16{margin-top:16px}.mt24{margin-top:24px}
.mb0{margin-bottom:0}.mb8{margin-bottom:8px}.mb16{margin-bottom:16px}

/* ── landing: блоки из прототипа ─────────────────────────────────────────── */
.lp section{padding:80px 0}
@media(max-width:640px){.lp section{padding:56px 0}.lp .hero{padding:60px 0 40px}}
.lp .sec-tag{color:var(--acc);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:2px;margin-bottom:12px;display:block}
.lp h2{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-1px;margin-bottom:14px}
.lp .sec-sub{color:var(--mut);max-width:560px;margin-bottom:44px}

/* hero */
.lp .hero{padding:90px 0 70px;text-align:center;position:relative}
.lp .hero::before{content:"";position:absolute;top:-200px;left:50%;transform:translateX(-50%);width:900px;height:600px;background:radial-gradient(ellipse,rgba(91,140,255,.18),transparent 65%);pointer-events:none;z-index:-1}
.lp .tag{display:inline-block;padding:6px 16px;border:1px solid var(--line);border-radius:30px;font-size:13px;color:var(--mut);margin-bottom:24px}
.lp .tag b{color:var(--ok)}
.lp h1{font-size:clamp(34px,6vw,58px);font-weight:800;letter-spacing:-1.5px;line-height:1.12;margin-bottom:20px}
.lp h1 .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lp .sub{font-size:19px;color:var(--mut);max-width:660px;margin:0 auto 36px}
.lp .hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* score demo carousel (имитация результата проверки) */
.lp .demo{margin:70px auto 0;max-width:760px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:34px;text-align:left;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.lp .demo-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:10px}
.lp .demo-url{font-family:ui-monospace,Menlo,monospace;font-size:14px;color:var(--mut)}
.lp .score-big{font-size:46px;font-weight:800;color:var(--ok)}
.lp .score-big small{font-size:18px;color:var(--mut);font-weight:500}
.lp .lcat{margin:12px 0}
.lp .lcat-row{display:flex;justify-content:space-between;font-size:14px;margin-bottom:5px}
.lp .lcat-row b{font-weight:600}.lp .lcat-row span{color:var(--mut)}
.lp .lbar{height:7px;background:#0c1222;border-radius:4px;overflow:hidden}
.lp .lbar i{display:block;height:100%;background:var(--grad);border-radius:4px;animation:grow 1.2s ease-out}
@keyframes grow{from{width:0}}

/* features grid */
.lp .lgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.lp .lcard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px;transition:.25s}
.lp .lcard:hover{border-color:var(--acc);transform:translateY(-3px)}
.lp .lcard .ico{font-size:28px;margin-bottom:14px}
.lp .lcard h3{font-size:18px;margin-bottom:8px}
.lp .lcard p{font-size:14.5px;color:var(--mut)}

/* stats */
.lp .lstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;text-align:center}
.lp .lstat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:30px 18px}
.lp .lstat .n{font-size:38px;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lp .lstat .l{font-size:13.5px;color:var(--mut);margin-top:6px}

/* steps */
.lp .steps{counter-reset:s}
.lp .step{display:flex;gap:22px;padding:26px 0;border-bottom:1px solid var(--line)}
.lp .step:last-child{border:none}
.lp .step::before{counter-increment:s;content:counter(s);flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;color:#fff}
.lp .step h3{font-size:17px;margin-bottom:5px}
.lp .step p{font-size:14.5px;color:var(--mut)}

/* honest about timing */
.lp .honest{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:14px;padding:22px 26px;max-width:760px;margin:0 auto}
.lp .honest h3{font-size:17px;margin-bottom:8px}
.lp .honest p{color:var(--mut);font-size:15px}

/* CTA */
.lp .cta{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:60px 40px;text-align:center;position:relative;overflow:hidden}
.lp .cta::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top,rgba(157,107,255,.12),transparent 60%);pointer-events:none}
.lp .cta>*{position:relative}

/* ════════════════════════════════════════════════════════════════════════
   «Living Dark» — слой эффектов лендинга.
   Правила: только transform/opacity, всё движение под prefers-reduced-motion,
   скрытие контента только под html.js (без JS страница полностью видна).
   ════════════════════════════════════════════════════════════════════════ */
body{overflow-x:hidden}
html{scroll-padding-top:88px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}

/* ── стеклянная шапка + состояние «проскроллено» ── */
header.pub{background:rgba(10,14,26,.55);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);transition:background-color .3s,border-color .3s}
header.pub.scrolled{background:rgba(10,14,26,.8)}
@supports not (backdrop-filter: blur(1px)){header.pub{background:rgba(10,14,26,.94)}}

/* ── прогресс-бар чтения (нативные scroll-driven animations, 0 JS) ── */
@supports (animation-timeline: scroll()){
  @media (prefers-reduced-motion: no-preference){
    .progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:70;transform-origin:left;background:var(--grad);animation:pgrow linear both;animation-timeline:scroll(root)}
    @keyframes pgrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  }
}

/* ── зерно: убирает полошение градиентов на тёмном фоне ── */
.lp .grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ── аврора в hero: 3 дрейфующих пятна, гаснет к features ── */
.lp .hero>:not(.aurora):not(.orb){position:relative;z-index:1}
.lp .aurora{position:absolute;inset:-20% -10% auto;height:120vh;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent);mask-image:linear-gradient(to bottom,#000 60%,transparent)}
.lp .aurora i{position:absolute;width:55vmax;height:55vmax;border-radius:50%;filter:blur(110px);opacity:.2;will-change:transform}
.lp .aurora i:nth-child(1){background:radial-gradient(circle,var(--acc),transparent 60%);top:-12%;left:-15%}
.lp .aurora i:nth-child(2){background:radial-gradient(circle,var(--acc2),transparent 60%);top:4%;right:-20%}
.lp .aurora i:nth-child(3){background:radial-gradient(circle,var(--pink),transparent 60%);top:28%;left:25%;opacity:.12}
@media (prefers-reduced-motion: no-preference){
  .lp .aurora i:nth-child(1){animation:drift1 26s ease-in-out infinite alternate}
  .lp .aurora i:nth-child(2){animation:drift2 34s ease-in-out infinite alternate}
  .lp .aurora i:nth-child(3){animation:drift3 42s ease-in-out infinite alternate}
  @keyframes drift1{to{transform:translate(12vw,-6vh) scale(1.15)}}
  @keyframes drift2{to{transform:translate(-10vw,8vh) scale(.9) rotate(20deg)}}
  @keyframes drift3{to{transform:translate(8vw,-10vh) scale(1.2)}}
}

/* ── параллакс-орбы (двигает JS через translate3d) ── */
.lp [data-speed]{will-change:transform}
.lp .orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.35;pointer-events:none;z-index:0}
.lp .orb-a{width:280px;height:280px;background:radial-gradient(circle,rgba(91,140,255,.5),transparent 65%);top:6%;left:3%}
.lp .orb-b{width:220px;height:220px;background:radial-gradient(circle,rgba(255,107,203,.4),transparent 65%);top:34%;right:5%}

/* ── появление при скролле (IO + серверный стаггер через --d) ── */
@media (prefers-reduced-motion: no-preference){
  html.js .lp [data-animate]{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0s)}
  html.js .lp [data-animate="scale"]{transform:translateY(12px) scale(.96)}
  html.js .lp [data-animate].in{opacity:1;transform:none}
}

/* ── вход hero при загрузке (не ждёт IO) + мерцание градиента в h1 ── */
@media (prefers-reduced-motion: no-preference){
  html.js .lp .tag,html.js .lp .hero h1,html.js .lp .hero .sub,html.js .lp .hero-btns,html.js .lp .demo-wrap{animation:rise .7s cubic-bezier(.22,1,.36,1) backwards}
  html.js .lp .hero h1{animation-delay:.08s}
  html.js .lp .hero .sub{animation-delay:.16s}
  html.js .lp .hero-btns{animation-delay:.24s}
  html.js .lp .demo-wrap{animation-delay:.34s}
  @keyframes rise{from{opacity:0;transform:translateY(18px)}}
}
.lp h1 .grad{display:inline-block;padding-bottom:.08em}
@media (prefers-reduced-motion: no-preference){
  .lp h1 .grad{background-size:200% 100%;animation:shimmer 7s ease-in-out infinite alternate}
  @keyframes shimmer{to{background-position:100% 0}}
}

/* ── материал карточек: стеклянная кромка сверху + glow на hover ── */
.lp .lcard,.lp .plan{position:relative;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.lp .lcard:hover{border-color:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 36px -14px rgba(157,107,255,.45)}

/* ── spotlight: подсветка рамки и заливки под курсором (features + тарифы) ── */
.lp .lcard::before,.lp .plan:not(.pop)::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:radial-gradient(220px circle at var(--mx,-200px) var(--my,-200px),rgba(91,140,255,.8),transparent 65%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.lp .lcard::after,.lp .plan::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(157,107,255,.1),transparent 55%);opacity:0;transition:opacity .35s}
@media (hover:hover) and (pointer:fine){.lp .lcard:hover::after,.lp .plan:hover::after{opacity:1}}

/* ── вращающийся световой ободок — ровно один элемент: популярный тариф ── */
@property --angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.lp .plan.pop::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:conic-gradient(from var(--angle),transparent 0%,var(--acc) 12%,var(--acc2) 22%,transparent 36%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
@media (prefers-reduced-motion: no-preference){
  .lp .plan.pop::before{animation:ringspin 5s linear infinite}
  @keyframes ringspin{to{--angle:360deg}}
}

/* ── tilt + блик: только демо-карточка ── */
.lp .demo{position:relative}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion: no-preference){
  .lp .demo{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .18s ease-out}
}
.lp .demo .glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.08),transparent 60%);opacity:0;transition:opacity .3s}
@media (hover:hover) and (pointer:fine){.lp .demo:hover .glare{opacity:1}}

/* ── бегущая строка нейросетей ── */
.lp .marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);padding:6px 0 0}
.lp .mtrack{display:flex;gap:56px;width:max-content;align-items:center}
.lp .mlogo{font-weight:700;font-size:17px;color:var(--mut);opacity:.5;white-space:nowrap;transition:opacity .3s}
.lp .mlogo:hover{opacity:1}
@media (prefers-reduced-motion: no-preference){
  .lp .mtrack{animation:mscroll 35s linear infinite}
  @keyframes mscroll{to{transform:translateX(-50%)}}
  .lp .marquee:hover .mtrack{animation-play-state:paused}
}
@media (prefers-reduced-motion: reduce){.lp .mtrack{flex-wrap:wrap;justify-content:center;width:auto}}

/* ── count-up: табличные цифры против прыжков ширины ── */
.lp .lstat .n{font-variant-numeric:tabular-nums}

/* ── мобильные: облегчаем (без параллакса/тилта — JS сам не включит) ── */
@media (max-width:768px){
  .lp .aurora i{filter:blur(80px)}
  .lp .aurora i:nth-child(3){display:none}
  .lp .orb{display:none}
}

/* ════════════════════════════════════════════════════════════════════════
   LIQUID GLASS SKIN — кабинет и страницы входа в стиле лендинга.
   Слой переопределений: базовые правила выше остаются как фолбэк.
   Бюджет стекла: topbar + sidebar (кабинет) / шапка (публичные) ≤ 3 в кадре,
   карточки — фо-стекло (без backdrop-filter).
   ════════════════════════════════════════════════════════════════════════ */
:root{
  --bg:#eef1f7; --bg2:#f4f7fc; --card:#ffffff; --card2:#f7f9fd;
  --line:#e3e8f1;
  --txt:#1b2333; --mut:#69748a;
  --ok:#12a065; --warn:#bd7d11; --bad:#db4438;
  --faux:#ffffff;
  --shadow-card:0 1px 2px rgba(20,30,55,.05),0 10px 30px rgba(20,30,55,.07);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
}
body{background:var(--bg);color:var(--txt)}

/* ── светлая аврора-сцена (очень мягкая, для характера) ── */
.lg-stage{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;
  background:
    radial-gradient(1100px 700px at 8% -12%,rgba(91,140,255,.1),transparent 60%),
    radial-gradient(900px 650px at 94% 6%,rgba(157,107,255,.08),transparent 62%),
    radial-gradient(1000px 800px at 50% 122%,rgba(255,107,203,.05),transparent 60%),
    linear-gradient(180deg,#f3f6fc 0%,#eef1f7 60%,#eceff6 100%)}
.lg-stage i{position:absolute;border-radius:50%;will-change:transform}
.lg-stage i:nth-child(1){width:54vw;height:54vw;top:-24vw;left:-16vw;
  background:radial-gradient(circle at 35% 35%,rgba(91,140,255,.12),transparent 70%)}
.lg-stage i:nth-child(2){width:44vw;height:44vw;top:18vh;right:-18vw;
  background:radial-gradient(circle at 60% 40%,rgba(157,107,255,.1),transparent 70%)}
@media(prefers-reduced-motion:no-preference){
  .lg-stage i:nth-child(1){animation:lgsA 44s ease-in-out infinite alternate}
  .lg-stage i:nth-child(2){animation:lgsB 56s ease-in-out infinite alternate}
  @keyframes lgsA{to{transform:translate(7vw,6vh) scale(1.1)}}
  @keyframes lgsB{to{transform:translate(-6vw,9vh) scale(.93)}}
}

/* ── материал: белые карточки с мягкой тенью ── */
.card,.kpi,.plan,.trial-banner{
  position:relative;isolation:isolate;
  background:var(--card);
  border:1px solid var(--line);
  box-shadow:var(--shadow-card)}
.card::after,.kpi::after,.plan::after{content:none}  /* без тёмного внутр. блика */
.kpi{background:var(--card2)}
.trial-banner{background:linear-gradient(135deg,rgba(91,140,255,.1),rgba(157,107,255,.08)),#fff;
  border-color:rgba(91,140,255,.28)}
.plan.pop{border-color:transparent;
  background:linear-gradient(#fff,#fff) padding-box,
             linear-gradient(135deg,#5b8cff,#9d6bff,#ff6bcb) border-box;
  box-shadow:0 18px 44px rgba(91,140,255,.18),var(--shadow-card)}

/* ── топбар, сайдбар, публичная шапка — светлое стекло ── */
.topbar{background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(14px) saturate(150%);
  backdrop-filter:blur(14px) saturate(150%);
  border-bottom:1px solid var(--line)}
.sidebar{background:rgba(248,250,253,.82);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
  border-right:1px solid var(--line)}
header.pub{background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  backdrop-filter:blur(16px) saturate(150%);
  border-bottom:1px solid var(--line)}
@supports not (backdrop-filter:blur(1px)){
  .topbar,header.pub{background:#fff}
  .sidebar{background:#f6f8fc}
}
@media(prefers-reduced-transparency:reduce){
  .topbar,.sidebar,header.pub{-webkit-backdrop-filter:none;backdrop-filter:none}
  .topbar,header.pub{background:#fff}
  .sidebar{background:#f6f8fc}
}

/* ── кнопки: пилюли с пружинным нажатием ── */
.btn{border-radius:999px;
  transition:transform .35s var(--ease-spring),filter .2s,background-color .2s,border-color .2s,box-shadow .2s}
.btn:hover{transform:translateY(-1px) scale(1.03)}
.btn:active{transform:scale(.97)}
.btn-pri:hover{filter:brightness(1.05);box-shadow:0 12px 28px rgba(91,140,255,.35)}
.btn-sec{background:#fff;border-color:var(--line);color:var(--txt)}
.btn-sec:hover{background:#f3f6fc;border-color:#cdd6e6}
.btn-ghost{color:var(--mut)}
.btn-ghost:hover{color:var(--txt);background:#f0f3f9}

/* ── формы: белые поля ── */
input,textarea,select{background:#fff;border-color:var(--line);border-radius:12px;color:var(--txt)}
input:focus,textarea:focus,select:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(91,140,255,.16)}
input::placeholder,textarea::placeholder{color:#9aa6b8}
pre{background:#f4f7fc;border-color:var(--line);color:var(--txt)}

/* ── мелочи ── */
.badge{border-color:var(--line)}
.badge-mut{background:#eef1f7;color:var(--mut)}
th{color:var(--mut);border-bottom-color:var(--line)}
td{border-bottom-color:var(--line)}
tbody tr:hover{background:#f5f8fd}
.side-link{color:var(--mut)}
.side-link:hover,.side-link.active{background:#eaeff7;color:var(--txt)}
.tabs{border-bottom-color:var(--line)}
.bar{background:#e7ecf4}
.score-ring::before{background:var(--card)}
hr{border-top-color:var(--line)}
code{background:#eef1f7;color:#3a445c}

@media(prefers-reduced-motion:reduce){
  .lg-stage i{animation:none !important}
  .btn{transition:none}
}

/* переключатель режима SEO/ИИ + быстрый свитчер сайтов в топбаре */
.mode-switch{display:inline-flex;gap:2px;margin-left:14px;background:#e7ebf3;
  border:1px solid var(--line);border-radius:10px;padding:3px}
.mode-switch a{font-size:13px;font-weight:600;color:#5a6577;text-decoration:none;
  padding:4px 12px;border-radius:7px;line-height:1.4;white-space:nowrap}
.mode-switch a:hover{color:#1b2333}
.mode-switch a.on{background:#fff;color:#1b2333;box-shadow:0 1px 3px rgba(20,30,60,.12)}
.site-switch{font-size:13px;font-weight:600;color:#1b2333;background:#fff;
  border:1px solid var(--line);border-radius:9px;padding:7px 10px;max-width:220px;cursor:pointer}
@media(max-width:760px){.mode-switch{margin-left:6px}.mode-switch a{padding:4px 8px}.site-switch{max-width:140px}}
