/* URL2REEL — статика без сборки; одна (мятная) тема, всё цветовое — через переменные :root. Общий файл для /, /app, /admin, /docs/*. */

/* ---------- токены ---------- */
:root{
  --bg:#050607; --s1:#0E0F12; --s2:#16171B; --line:rgba(255,255,255,.09); --line2:rgba(255,255,255,.18);
  --text:#F7F4EF; --dim:#A3A3A5; --soft:#d4cfc7;
  --ease:cubic-bezier(.23,1,.32,1);
  --r:18px; --wrap:1200px; --gut:28px;

  --acc1:#97FCD7; --acc2:#4fe0b0; --grad:linear-gradient(90deg,#97FCD7,#4fe0b0);
  --on-acc:#072724; --glow:rgba(151,252,215,.28); --tint:rgba(151,252,215,.07); --tint2:rgba(89,212,153,.05);
  --up:#59D499; --dn:#ff6b6b; --chartline:#97FCD7;
  --hero-bg:radial-gradient(90% 70% at 50% 0%,#0c2a24 0%,#07110f 55%,#040707 100%);
  --blob1:#1f8f70; --blob2:#97FCD7; --blob3:#0e5b4b; --bo1:.45; --bo2:.18; --bo3:.5;
  --th1:linear-gradient(160deg,#0f3a31,#061210 65%);
  --th2:linear-gradient(200deg,#13261f,#070d0b 65%);
  --th3:linear-gradient(170deg,#0b2b2e,#050c0d 70%);
  --th4:linear-gradient(140deg,#1b2c18,#080d07 70%);
  --grid-op:.08;
}

/* ---------- база ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--text)}
body{font:16px/1.55 Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}
a{color:inherit}
button{font:inherit;color:inherit}
img,video{display:block;max-width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--text);color:#000;padding:8px 14px;border-radius:8px;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--acc1);outline-offset:3px;border-radius:6px}
::selection{background:var(--acc1);color:var(--on-acc)}

/* акцентный текст: мятный Instrument Serif курсивом */
.hl{color:var(--acc1);font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;letter-spacing:-.01em}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.wrap.narrow{max-width:880px}

/* ---------- кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:999px;font-weight:700;font-size:15px;
  text-decoration:none;cursor:pointer;border:1px solid transparent;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease)}
.btn-sm{padding:9px 15px;font-size:14px}
.btn-acc{background:var(--acc1);color:var(--on-acc);box-shadow:0 10px 30px var(--glow)}
.btn-acc:hover{transform:translateY(-1px);box-shadow:0 14px 38px var(--glow)}
.btn-ghost{background:rgba(255,255,255,.03);border-color:var(--line2);color:var(--text)}
.btn-ghost:hover{border-color:var(--acc1)}
.linkbtn{background:none;border:0;padding:0;cursor:pointer;color:var(--dim);text-align:left}
.linkbtn:hover{color:var(--text)}

/* ---------- навигация ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:40;transition:background .25s var(--ease),border-color .25s var(--ease);border-bottom:1px solid transparent}
.nav.solid{background:rgba(5,6,7,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.nav-in{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--gut)}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:-.02em;text-decoration:none}
/* знак 11 «Извилины в play» (vidgen/030): мятный play с прозрачным вырезом-мозгом и курсор; цвета — style внутри svg */
.logo .mark{width:30px;height:30px;flex:0 0 30px;display:block}
.logo .mark svg{width:100%;height:100%;display:block;overflow:visible}
.navlinks{display:flex;gap:26px;font-size:14px}
.navlinks a{color:var(--dim);text-decoration:none;transition:color .15s}
.navlinks a:hover{color:var(--text)}
.navcta{display:flex;gap:10px;align-items:center}
.ticker-pill{font-weight:600;font-size:12px;padding:8px 11px;border-radius:999px;border:1px solid var(--line2);text-decoration:none;transition:border-color .15s}
.ticker-pill:hover{border-color:var(--acc1)}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;padding-top:64px}
.bgvideo{position:absolute;inset:0;z-index:-2;overflow:hidden;background:var(--hero-bg);transition:background .4s}
.blob{position:absolute;border-radius:50%;filter:blur(90px);animation:drift 18s var(--ease) infinite alternate;transition:background .5s,opacity .5s}
.b1{width:46vw;height:46vw;left:-8vw;top:-14vw;background:var(--blob1);opacity:var(--bo1)}
.b2{width:38vw;height:38vw;right:-6vw;top:4vw;background:var(--blob2);opacity:var(--bo2);animation-duration:23s;animation-delay:-6s}
.b3{width:34vw;height:34vw;left:30vw;bottom:-20vw;background:var(--blob3);opacity:var(--bo3);animation-duration:27s;animation-delay:-12s}
@keyframes drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(6vw,-4vh) scale(1.15)}100%{transform:translate(-5vw,5vh) scale(.95)}}
.gridlines{position:absolute;inset:0;opacity:var(--grid-op);transition:opacity .4s;
  background-image:linear-gradient(rgba(151,252,215,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(151,252,215,.6) 1px,transparent 1px);
  background-size:64px 64px;-webkit-mask:radial-gradient(70% 60% at 50% 45%,#000,transparent);mask:radial-gradient(70% 60% at 50% 45%,#000,transparent)}
.grain{position:absolute;inset:-50%;opacity:.09;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.vignette{position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 40%,transparent 40%,rgba(0,0,0,.75) 100%)}
.scan{position:absolute;left:0;right:0;height:120px;opacity:.06;background:linear-gradient(transparent,#fff,transparent);animation:scan 7s linear infinite}
@keyframes scan{from{top:-120px}to{top:100%}}

.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 16px 48px;position:relative;z-index:3}
.badge{position:relative;display:inline-flex;gap:8px;align-items:center;padding:7px 14px;border-radius:999px;font-size:13px;background:rgba(0,0,0,.45);box-shadow:0 0 0 1px var(--tint)}
.badge::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;
  background:conic-gradient(from var(--a,0deg),var(--acc1),var(--acc2),transparent 40%,var(--acc1));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:spin 4s linear infinite;pointer-events:none}
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes spin{to{--a:360deg}}
.badge b{font-weight:600;white-space:nowrap}
.badge .dot{width:6px;height:6px;border-radius:50%;background:var(--up);box-shadow:0 0 10px var(--up);flex:0 0 6px}
.badge.sm{font-size:12px}
h1{font-size:clamp(40px,7.2vw,96px);line-height:.98;letter-spacing:-.035em;font-weight:800;margin:22px 0 18px;max-width:1050px}
.sub{font-size:clamp(16px,1.6vw,19px);color:var(--soft);max-width:660px;margin:0 auto 30px}

/* поле URL */
.composer{width:min(760px,100%);border-radius:22px;padding:10px;background:rgba(14,15,18,.74);border:1px solid var(--line);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 0 0 1px var(--tint),0 0 40px var(--tint),0 30px 80px rgba(0,0,0,.55);text-align:left;margin:0 auto}
.urlrow{display:flex;gap:8px;align-items:center;padding:6px 6px 6px 16px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line);transition:border-color .18s}
.urlrow:focus-within{border-color:var(--acc1)}
.urlrow .ico{flex:0 0 18px;width:18px;height:18px;stroke:var(--acc1);opacity:.85}
.urlrow .url{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--text);font-size:16px;font-weight:500;padding:10px 0}
.urlrow .url::placeholder{color:#8b8b8e}
.paste{font-size:12px;color:var(--dim);border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:transparent;cursor:pointer;transition:color .15s,border-color .15s}
.paste:hover{color:var(--text);border-color:var(--line2)}
.gen{border:0;border-radius:12px;padding:14px 20px;font-weight:700;font-size:15px;line-height:1;cursor:pointer;white-space:nowrap;
  background:var(--acc1);color:var(--on-acc);box-shadow:0 0 22px 4px var(--glow);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.gen:hover{transform:translateY(-1px)}
.gen:active{transform:translateY(1px)}
.chips{display:flex;gap:8px;flex-wrap:wrap;padding:12px 6px 4px;align-items:center}
.chips-lbl{color:var(--dim);font-size:12px;margin-right:2px}
.chipset{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-size:13px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);color:#ddd8d0;background:transparent;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.chip:hover{border-color:var(--line2)}
.chip.on{background:var(--acc1);border-color:transparent;color:var(--on-acc);font-weight:600}
.formats{margin-left:auto;display:flex;gap:6px}
.fmt{font-weight:600;font-size:11px;padding:7px 8px;border-radius:6px;border:1px solid var(--line);color:var(--dim);background:transparent;cursor:pointer;transition:color .15s,border-color .15s}
.fmt.on{color:var(--text);border-color:rgba(255,255,255,.4)}
.examples{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 6px 2px;font-size:12px;color:var(--dim)}
.examples button{background:none;border:0;border-bottom:1px dashed rgba(255,255,255,.25);padding:0 0 1px;margin:0 4px;color:var(--soft);cursor:pointer;font-size:12px;font-family:'JetBrains Mono',monospace}
.examples button:hover{color:var(--acc1);border-color:var(--acc1)}
.micro{margin-top:14px;font-size:13px;color:var(--dim);display:flex;gap:8px 16px;justify-content:center;flex-wrap:wrap}
.micro span::before{content:"✓ ";color:var(--up)}
.pipe{display:flex;align-items:center;justify-content:center;margin-top:22px;font-size:12px;color:var(--dim)}
.pipe .st{padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:rgba(0,0,0,.35)}
.pipe .ln{width:46px;height:1px;background:var(--line);position:relative;overflow:hidden}
.pipe .ln::after{content:"";position:absolute;top:0;left:-40%;width:40%;height:100%;background:var(--grad);animation:flow 1.8s var(--ease) infinite}
@keyframes flow{to{left:100%}}
.scrollhint{position:relative;z-index:3;align-self:center;margin-bottom:22px;font-size:11px;color:var(--dim);text-decoration:none;display:flex;gap:8px;align-items:center;letter-spacing:.06em;text-transform:uppercase}
.scrollhint i{width:7px;height:7px;border-radius:50%;background:#ff3b3b;animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:0}}

/* плавающие превью */
.float{position:absolute;z-index:2;width:var(--cw);border-radius:16px;overflow:hidden;border:1px solid var(--line);
  background:#0b0c0e;box-shadow:0 0 20px 2px var(--tint),0 24px 60px rgba(0,0,0,.6);animation:bob 7s ease-in-out infinite;
  translate:var(--px,0) var(--py,0);transition:translate .6s var(--ease),border-color .2s}
.float.v{aspect-ratio:9/16}.float.h{aspect-ratio:16/10;width:var(--chw)}
.f2{animation-delay:-2s}.f3{animation-delay:-4s}.f4{animation-delay:-5.5s}
@keyframes bob{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-10px) rotate(var(--r,0deg))}}
/* Раскладка карточек (только вьюпорт, верхний левый отсчёт от hero, hero начинается с y=0):
   --cw  ширина вертикальной карточки, px. Берём минимум из: 17vw (обычный размер), свободного места сбоку от колонки формы
         (колонка ~760px: 47.5vw-400px), высоты экрана (две карточки друг под другом: 2.45*w <= 100vh-150px) и потолка 270px.
         Больше -> карточки лезут на форму или за нижний край; меньше -> мельче, но чище. Нижний пол 120px.
   --chw ширина горизонтальной карточки (чуть шире вертикальной), --cvh/--chh их высоты (9:16 и 16:10).
   --ct  верх верхних карточек: под навигацией (64px) + 3.5vh.
   --cb  верх нижних: 64vh, но не выше низа верхней карточки + 28px и не ниже, чем влезает в первый экран (запас 40px на bob/поворот). */
.hero{--cw:clamp(120px,min(17vw,calc(47.5vw - 400px),calc((100vh - 150px)/2.45)),270px);--chw:calc(var(--cw)*1.05);
  --cvh:calc(var(--cw)*1.778);--chh:calc(var(--chw)*.625);--ct:calc(64px + 3.5vh);
  --cb:min(calc(100vh - var(--chh) - 40px),max(calc(var(--ct) + var(--cvh) + 28px),64vh))}
.f1{left:1.8vw;top:var(--ct);--r:-6deg}.f2{left:1.2vw;top:var(--cb);--r:4deg}
.f3{right:1.8vw;top:calc(var(--ct) - 2vh);--r:6deg}.f4{right:1.2vw;top:calc(var(--cb) - 1.5vh);--r:-4deg}
.th1{background:var(--th1)}.th2{background:var(--th2)}.th3{background:var(--th3)}.th4{background:var(--th4)}
.frame{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:12px}
.frame .big{font-weight:800;letter-spacing:-.03em;line-height:.95;font-size:clamp(12px,1.25vw,26px)}
.frame .src{position:absolute;top:10px;left:10px;font-weight:600;font-size:10px;padding:5px 7px;border-radius:6px;background:rgba(0,0,0,.55);border:1px solid var(--line);z-index:2}
.frame .tc{position:absolute;top:10px;right:10px;font-weight:600;font-size:10px;opacity:.85;z-index:2}
.frame .bar{height:3px;border-radius:2px;background:rgba(255,255,255,.18);margin-top:10px;overflow:hidden}
.frame .bar i{display:block;height:100%;width:0;background:var(--grad);animation:play 6s linear infinite}
@keyframes play{to{width:100%}}
.frame .lbl{font-size:10.5px;color:#d6d0c6;margin-top:7px;display:flex;justify-content:space-between;gap:6px}
.chart{position:absolute;left:10px;right:10px;top:34%;height:34%;opacity:.9;transition:opacity .4s}
.chart polyline{fill:none;stroke:var(--chartline);stroke-width:1.6;vector-effect:non-scaling-stroke}
.kinetic{animation:kin 6s var(--ease) infinite}
@keyframes kin{0%{opacity:0;transform:translateY(14px)}10%,85%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-10px)}}
.float video,.card-media video,.card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.float video{z-index:1}

/* ---------- бегущая строка ---------- */
.tape{position:relative;z-index:3;display:flex;align-items:stretch;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(0,0,0,.6);overflow:hidden}
.tape-view{flex:1;overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.tape .track{display:inline-flex;gap:44px;padding:15px 22px;white-space:nowrap;animation:tape 42s linear infinite;font-size:13px}
.tape:hover .track{animation-play-state:paused}
.tape .track span{color:var(--dim)}
.tape .track b{color:var(--text);font-weight:600;margin-left:8px}
.tape .track em{font-style:normal;margin-left:8px}
.up{color:var(--up)}
@keyframes tape{to{transform:translateX(-50%)}}

/* ---------- секции ---------- */
.sec{position:relative;padding:120px 0}
.sec + .sec{border-top:1px solid rgba(255,255,255,.04)}
.sec-head{margin-bottom:48px;max-width:760px}
.sec-head.row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.center-head{text-align:center;margin-left:auto;margin-right:auto}
.eyebrow{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--acc1);margin-bottom:14px}
h2{font-size:clamp(32px,4.6vw,60px);line-height:1.02;letter-spacing:-.03em;font-weight:800;margin:0 0 16px}
.lead{font-size:clamp(16px,1.4vw,18px);color:var(--soft);margin:0;max-width:640px}
.center-head .lead{margin:0 auto}
h3{letter-spacing:-.015em}
.h3big{font-size:clamp(24px,2.6vw,34px);font-weight:800;letter-spacing:-.025em;line-height:1.1;margin:0 0 10px}
.fine{font-size:12.5px;color:var(--dim);margin:18px 0 0}
.ticks{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:9px}
.ticks li{position:relative;padding-left:24px;font-size:14.5px;color:var(--soft)}
.ticks li::before{content:"";position:absolute;left:2px;top:7px;width:12px;height:7px;border-left:2px solid var(--up);border-bottom:2px solid var(--up);transform:rotate(-45deg)}

/* ---------- reveal ---------- */
.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .55s var(--ease),transform .55s var(--ease);transition-delay:calc(var(--i,0) * 70ms)}
.js [data-reveal].in{opacity:1;transform:none}

/* ---------- живой пример ---------- */
.demo{border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,var(--s1),#0a0b0d);padding:18px;box-shadow:0 40px 100px rgba(0,0,0,.5),0 0 0 1px var(--tint)}
.demo-steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px;padding-bottom:14px}
.demo-steps button{display:flex;align-items:center;gap:10px;justify-content:center;padding:12px 10px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02);
  color:var(--dim);font-size:13px;cursor:pointer;transition:color .2s,border-color .2s,background .2s}
.demo-steps button i{font-style:normal;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line2);font-size:11px}
.demo-steps button[aria-selected="true"]{color:var(--text);border-color:var(--acc1);background:var(--tint)}
.demo-steps button[aria-selected="true"] i{background:var(--acc1);color:var(--on-acc);border-color:transparent}
.demo-steps button.past{color:var(--soft)}
.demo-steps button.past i{border-color:var(--up);color:var(--up)}
.demo-prog{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.demo-prog i{display:block;height:100%;width:0;background:var(--grad)}
.demo-body{display:grid;grid-template-columns:1.05fr 1fr;gap:18px;min-height:420px}
.demo-note{font-size:11px;color:var(--dim);margin:14px 4px 0}

.browser{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#0c0a12}
.bchrome{display:flex;align-items:center;gap:6px;padding:10px 12px;background:#141318;border-bottom:1px solid var(--line)}
.bchrome>span{width:10px;height:10px;border-radius:50%;background:#2a2930}
.baddr{flex:1;min-width:0;margin-left:10px;font-size:11.5px;color:var(--dim);background:#0d0c11;border-radius:7px;padding:6px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bpage{padding:18px 20px 22px;background:radial-gradient(80% 60% at 80% 0%,rgba(255,138,61,.18),transparent 60%),#120d1d}
.bnav{display:flex;align-items:center;gap:12px;margin-bottom:26px;font-size:12px;letter-spacing:.14em}
.bnav b{color:#FFE6B3}
.bnav i{display:block;height:6px;width:36px;border-radius:3px;background:rgba(255,255,255,.12)}
.bnav i:first-of-type{margin-left:auto}
.bh1{font-size:clamp(22px,2.4vw,32px);font-weight:800;line-height:1.02;letter-spacing:-.03em;color:#FFE6B3;margin-bottom:10px}
.bp{font-size:13.5px;color:#cfc4dc;margin-bottom:12px}
.bca{font-size:10.5px;color:#a99bbd;word-break:break-all;margin-bottom:14px}
.bbtns{display:flex;gap:8px;flex-wrap:wrap}
.bbtns span{font-size:12px;font-weight:700;padding:8px 12px;border-radius:9px;background:#FF8A3D;color:#1B1030}
.bbtns span+span{background:transparent;border:1px solid rgba(255,255,255,.2);color:#e8ddf3}
.bstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}
.bstats>div{border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:9px 10px;background:rgba(255,255,255,.02)}
.bstats small{display:block;font-size:10px;color:#9a8fac;text-transform:uppercase;letter-spacing:.08em}
.bstats b{font-size:16px;color:#fff;display:flex;gap:4px;align-items:center;min-height:22px}
.sw1,.sw2,.sw3{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;border:1px solid rgba(255,255,255,.2)}
.sw1{background:#FF8A3D}.sw2{background:#1B1030}.sw3{background:#FFE6B3}
.scanme{position:relative;transition:box-shadow .3s var(--ease),background .3s}
.demo[data-stage="0"] .scanme.hit{box-shadow:0 0 0 2px var(--acc1),0 0 24px var(--glow);border-radius:6px;background:var(--tint)}
.crawlbeam{position:absolute;left:0;right:0;top:40px;height:70px;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,transparent,var(--tint) 45%,var(--acc1) 50%,var(--tint) 55%,transparent);mix-blend-mode:screen}
.demo[data-stage="0"].running .crawlbeam{opacity:.6;animation:beam 2.6s var(--ease) infinite}
@keyframes beam{from{top:40px}to{top:calc(100% - 70px)}}

.stagepanel{position:relative;border-radius:14px;border:1px solid var(--line);background:#08090b;overflow:hidden;min-height:380px}
.pane{position:absolute;inset:0;padding:20px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .45s var(--ease),transform .45s var(--ease),visibility 0s .45s}
.demo[data-stage="0"] .p0,.demo[data-stage="1"] .p1,.demo[data-stage="2"] .p2,.demo[data-stage="3"] .p3{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.pane h3{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin:0 0 14px}
.found{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:12.5px}
.found li{display:flex;gap:12px;align-items:baseline;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.02);
  opacity:0;transform:translateX(12px);transition:opacity .4s var(--ease),transform .4s var(--ease);overflow-wrap:anywhere}
.found li span{flex:0 0 70px;color:var(--acc1);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;word-break:normal}
.found li.on{opacity:1;transform:none}
.script{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.script li{display:grid;grid-template-columns:48px 62px 1fr;gap:8px;align-items:baseline;font-size:14px;padding:9px 0;border-bottom:1px dashed var(--line);
  opacity:0;transform:translateY(6px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.script li span{font-size:11px;color:var(--dim)}
.script li b{font-size:10.5px;letter-spacing:.08em;color:var(--acc1)}
.script li.on{opacity:1;transform:none}
.rule{font-size:11.5px;color:var(--up);margin:16px 0 0}
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.shot{position:relative;aspect-ratio:9/12;border-radius:10px;border:1px solid var(--line);padding:10px;display:flex;flex-direction:column;justify-content:flex-end;
  background:linear-gradient(160deg,#2a1636,#100a17);opacity:0;transform:scale(.94);transition:opacity .4s var(--ease),transform .4s var(--ease);overflow:hidden}
.shot b{font-size:14px;line-height:1.05;letter-spacing:-.02em;color:#FFE6B3}
.shot small{font-size:10px;color:#cfc4dc}
.shot span{position:absolute;top:8px;right:9px;font-size:9.5px;color:var(--dim)}
.shot.s2{background:linear-gradient(160deg,#3b1d0b,#120a05)}.shot.s2 b{font-size:26px;color:#FF8A3D}
.shot.s3{background:linear-gradient(200deg,#1b1030,#0b0812)}
.shot.s4{background:#0d0c11}.shot.s4 b{font-size:12px;color:#cfc4dc}
.shot.s5{background:linear-gradient(140deg,#FF8A3D,#e0532a)}.shot.s5 b{color:#1B1030}
.shot.on{opacity:1;transform:none}
/* шаг 4 «Your video»: лучший ролик на всю ширину демо — самое важное место сайта */
.demo[data-stage="3"] .browser{display:none}
.demo[data-stage="3"] .demo-body{min-height:0}
.demo[data-stage="3"] .stagepanel{grid-column:1/-1;aspect-ratio:16/9;min-height:0}
.best{position:absolute;inset:0;background:#000}
.best-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.best-snd{position:absolute;top:14px;right:14px;z-index:2;font:600 12px/1 Inter,system-ui,sans-serif;color:#fff;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.25);
  border-radius:999px;padding:9px 14px;cursor:pointer;backdrop-filter:blur(6px)}
.best-snd:hover{background:rgba(0,0,0,.75)}
.best-meta{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:28px 18px 16px;
  font-size:13px;color:#d6d8de;background:linear-gradient(0deg,rgba(0,0,0,.75),rgba(0,0,0,0))}
.best-meta b{color:#fff}.best-meta a{color:#fff;text-decoration:none;font-weight:600;white-space:nowrap}
.best .rbar{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:3;background:rgba(255,255,255,.12)}
.best .rbar i{display:block;height:100%;width:0;background:var(--grad)}
.p3{padding:0!important}
.rbar{height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.rbar i{display:block;height:100%;width:0;background:var(--grad)}

/* ---------- шаги ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.step{position:relative;border:1px solid var(--line);border-radius:var(--r);padding:28px;background:var(--s1);overflow:hidden;transition:border-color .2s,transform .2s var(--ease)}
.step:hover{border-color:var(--line2)}
.stepn{font-size:13px;font-weight:600;color:var(--acc1)}
.step h3{font-size:22px;margin:12px 0 8px}
.step p{color:var(--soft);font-size:15px;margin:0 0 22px}
.stepviz{height:88px;border-radius:12px;border:1px solid var(--line);background:#08090b;display:flex;align-items:center;justify-content:center;gap:12px;position:relative;overflow:hidden}
.v1 span{font-size:12.5px;color:var(--soft)}
.v1 i{width:2px;height:16px;background:var(--acc1);animation:blink 1s steps(2) infinite}
.v2 span{border:1.5px solid var(--line2);border-radius:5px}
.v2 .r169{width:64px;height:36px;border-color:var(--acc1)}.v2 .r916{width:24px;height:42px}.v2 .r11{width:36px;height:36px}
.v3 .play{width:38px;height:38px;border-radius:50%;background:var(--acc1);position:relative;box-shadow:0 0 24px var(--glow)}
.v3 .play::after{content:"";position:absolute;left:15px;top:11px;border-left:12px solid var(--on-acc);border-top:8px solid transparent;border-bottom:8px solid transparent}
.v3 span.mono{font-size:12px;color:var(--soft)}

/* ---------- галерея ---------- */
.tabs{display:flex;gap:6px;flex-wrap:wrap;padding:5px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.02)}
.tabs button{border:0;background:transparent;color:var(--dim);font-size:14px;padding:9px 15px;border-radius:999px;cursor:pointer;transition:color .15s,background .15s}
.tabs button:hover{color:var(--text)}
.tabs button[aria-selected="true"]{background:var(--acc1);color:var(--on-acc);font-weight:600}
.grid-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.card{position:relative;border-radius:var(--r);border:1px solid var(--line);background:var(--s1);overflow:hidden;cursor:pointer;text-align:left;padding:0;
  transition:transform .2s var(--ease),border-color .2s,box-shadow .2s;display:block;width:100%}
.card:hover,.card:focus-visible{transform:translateY(-3px);border-color:var(--acc1);box-shadow:0 20px 50px rgba(0,0,0,.45),0 0 0 1px var(--tint)}
.card[hidden]{display:none}
.card-media{position:relative;aspect-ratio:16/9;overflow:hidden;background:#0b0c0e}
.card-media .frame .big{font-size:clamp(22px,2.2vw,30px)}
.card-media video{opacity:0;transition:opacity .25s}
.card.playing .card-media video{opacity:1}
.card-body{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px}
.card-body h3{font-size:15px;margin:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-body p{margin:2px 0 0;font-size:12px;color:var(--dim)}
.card-body .stl{flex:0 0 auto;font-size:10.5px;padding:5px 8px;border-radius:6px;border:1px solid var(--line2);color:var(--soft);text-transform:uppercase;letter-spacing:.06em}
.card.is-stub .frame .tc{display:none}
.card .soon{position:absolute;top:10px;right:10px;z-index:3;font-size:10px;padding:4px 7px;border-radius:6px;background:rgba(0,0,0,.6);border:1px solid var(--line);color:var(--dim)}
.card .playic{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(0,0,0,.5);border:1px solid var(--line2);z-index:3;
  opacity:0;transform:scale(.85);transition:opacity .18s,transform .18s var(--ease)}
.card .playic::after{content:"";position:absolute;left:18px;top:14px;border-left:13px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent}
.card:hover .playic,.card:focus-visible .playic{opacity:1;transform:none}
.card.playing .playic{opacity:0}
.gal-note{font-size:11.5px;color:var(--dim);margin:18px 0 0}

/* ---------- для кого ---------- */
.who{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:auto auto;gap:18px}
.wcard{position:relative;border:1px solid var(--line);border-radius:var(--r);padding:26px;background:var(--s1);overflow:hidden;transition:border-color .2s}
.wcard:hover{border-color:var(--line2)}
.who .wcard:last-child{grid-column:span 2}
.wcard.big{grid-row:span 2;background:linear-gradient(180deg,var(--tint),transparent 60%),var(--s1);border-color:rgba(255,255,255,.14)}
.wcard h3{font-size:22px;margin:10px 0 8px}
.wcard.big h3{font-size:clamp(26px,2.8vw,36px);letter-spacing:-.03em;line-height:1.05}
.wcard p{color:var(--soft);margin:0;font-size:15px}
.wcard em{font-style:normal;color:var(--acc1)}
.wtag{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);border:1px solid var(--line);border-radius:6px;padding:4px 7px}
.wcard.big .wtag{color:var(--on-acc);background:var(--acc1);border-color:transparent}
.wviz{margin-top:26px;height:90px}
.wviz svg{width:100%;height:100%}
.wviz polyline{fill:none;stroke:var(--acc1);stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:600;stroke-dashoffset:600}
.wcard.big.in .wviz polyline{animation:draw 2.2s var(--ease) .3s forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.bx{position:relative;border:1px solid var(--line);border-radius:var(--r);padding:26px;background:var(--s1);overflow:hidden;transition:border-color .2s}
.bx:hover{border-color:var(--line2)}
.bx h3{font-size:21px;margin:0 0 8px}
.bx p{color:var(--soft);font-size:14.5px;margin:0}
.b-script{grid-column:span 3}.b-bible{grid-column:span 3;grid-row:span 2}
.b-fmt{grid-column:span 3}
.b-brand{grid-column:span 2}.b-sound{grid-column:span 2}.b-det{grid-column:span 2}
.b-bible{background:radial-gradient(100% 60% at 100% 0%,var(--tint),transparent 60%),var(--s1)}
.typing{margin-top:20px;font-size:13px;padding:14px;border-radius:10px;background:#08090b;border:1px solid var(--line);color:var(--soft);white-space:nowrap;overflow:hidden}
.typing span{color:var(--acc1);font-weight:600;margin-right:8px}
.caret{display:inline-block;width:2px;height:15px;vertical-align:-2px;margin-left:2px;background:var(--acc1);animation:blink 1s steps(2) infinite}
.rules{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px}
.rules li{display:flex;gap:14px;align-items:baseline;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:#08090b;font-size:13px;color:var(--soft)}
.rules b{font-size:22px;min-width:64px;color:var(--text)}
.ratios{display:flex;gap:14px;align-items:flex-end;margin-top:20px;height:96px}
.ratios span{position:relative;border:1.5px solid var(--line2);border-radius:8px;background:#08090b;display:grid;place-items:center;transition:border-color .2s}
.ratios i{font-style:normal;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--dim)}
.ratios .r169{width:160px;height:90px}.ratios .r916{width:54px;height:96px}.ratios .r11{width:90px;height:90px}
.b-fmt:hover .ratios span{border-color:var(--acc1)}
.swatches{display:flex;gap:8px;margin-top:20px}
.swatches i{flex:1;height:44px;border-radius:10px;border:1px solid var(--line)}
.swatches i:nth-child(1){background:var(--acc1)}.swatches i:nth-child(2){background:var(--acc2)}.swatches i:nth-child(3){background:#1B1030}.swatches i:nth-child(4){background:#F7F4EF}
.wave{display:flex;gap:4px;align-items:center;height:48px;margin-top:20px}
.wave i{flex:1;border-radius:2px;background:var(--acc1);height:30%;animation:wave 1.1s ease-in-out infinite alternate}
.wave i:nth-child(3n){animation-delay:-.3s}.wave i:nth-child(3n+1){animation-delay:-.6s}.wave i:nth-child(4n){animation-delay:-.9s;animation-duration:.8s}
@keyframes wave{to{height:100%}}
.det{margin-top:20px;font-size:12px;color:var(--soft);padding:12px;border-radius:10px;border:1px dashed var(--line2)}

/* ---------- цены ---------- */
.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
/* премиум-тариф Director — широкая карточка под тремя основными */
.price.director{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center;
  background:radial-gradient(120% 140% at 0% 0%,var(--tint),transparent 60%),var(--s1);border-color:rgba(255,255,255,.16)}
.price.director .amt{font-size:clamp(30px,3.4vw,44px)}
.price.director .dir-txt{color:var(--dim);margin:10px 0 0;max-width:52ch}
.price.director .dir-r{display:flex;flex-direction:column;gap:16px}
.price{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:22px;padding:30px;background:var(--s1);transition:transform .2s var(--ease),border-color .2s}
.price:hover{transform:translateY(-3px);border-color:var(--line2)}
.price h3{font-size:18px;margin:0 0 18px;color:var(--soft);font-weight:600}
.amt{font-size:clamp(44px,5vw,64px);font-weight:600;letter-spacing:-.04em;line-height:1}
.per{font-size:13px;color:var(--dim);margin:8px 0 6px}
.price .ticks{margin-bottom:26px}
.price .btn{margin-top:auto}
.price.hot{border-color:transparent;background:linear-gradient(var(--s1),var(--s1)) padding-box,var(--grad) border-box;border:1px solid transparent;box-shadow:0 30px 80px rgba(0,0,0,.45),0 0 60px var(--tint)}
.price.hot .amt{color:var(--acc1)}
.pop{position:absolute;top:-12px;left:30px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:5px 10px;border-radius:999px;background:var(--acc1);color:var(--on-acc)}
.paywith{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:30px;font-size:13px;color:var(--dim)}
.paywith b{font-weight:600;color:var(--text);padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.02)}
.paywith b.acc{border-color:var(--acc1)}
.paywith small{color:var(--acc1);font-weight:500;margin-left:4px}
#pricing .fine{text-align:center}

/* ---------- роадмап и маркетплейс ---------- */
.road{list-style:none;margin:0 0 90px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative}
.road::before{content:"";position:absolute;left:0;right:0;top:15px;height:1px;background:linear-gradient(90deg,var(--acc1),var(--line) 40%)}
.rd{position:relative;padding-top:42px}
.rd::before{content:"";position:absolute;left:0;top:8px;width:15px;height:15px;border-radius:50%;background:var(--bg);border:2px solid var(--line2)}
.rd.done::before{background:var(--acc1);border-color:var(--acc1);box-shadow:0 0 16px var(--glow)}
.rdst{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--acc1)}
.rd h3{font-size:20px;margin:6px 0 6px}
.rd p{margin:0;color:var(--soft);font-size:14.5px}
.mkt-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.mkt{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.plug{border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--s1);transition:border-color .2s,transform .2s var(--ease)}
.plug:hover{border-color:var(--acc1);transform:translateY(-2px)}
.plug h4{margin:14px 0 4px;font-size:16px}
.plug p{margin:0 0 14px;color:var(--dim);font-size:13.5px}
.pmeta{display:flex;justify-content:space-between;font-size:12px;color:var(--dim);border-top:1px solid var(--line);padding-top:12px}
.pmeta b{color:var(--text)}
.pico{display:block;width:42px;height:42px;border-radius:11px;border:1px solid var(--line2)}
.pico.p1{background:repeating-linear-gradient(90deg,var(--acc1) 0 4px,transparent 4px 9px),#0b0c0e}
.pico.p2{background:conic-gradient(var(--acc1) 0 40%,var(--acc2) 0 70%,#2a2b30 0);border-radius:50%}
.pico.p3{background:linear-gradient(135deg,var(--acc2),var(--acc1))}
.pico.p4{background:linear-gradient(90deg,#ff3b6b 33%,#3bffd0 33% 66%,#4a6bff 66%)}
.pico.p5{background:radial-gradient(circle,var(--acc1) 0 20%,transparent 22%),repeating-radial-gradient(circle,transparent 0 6px,rgba(255,255,255,.18) 6px 7px),#0b0c0e}
.pico.p6{background:linear-gradient(180deg,var(--acc1) 0 20%,transparent 20% 40%,var(--acc2) 40% 60%,transparent 60% 80%,var(--acc1) 80%),#0b0c0e}
.reel-token{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;margin-top:80px;padding:36px;border-radius:24px;border:1px solid var(--line2);
  background:radial-gradient(80% 100% at 0% 0%,var(--tint),transparent 60%),radial-gradient(60% 80% at 100% 100%,var(--tint2),transparent 60%),var(--s1)}
.rt-left p{color:var(--soft);margin:0}
.rt-card{display:grid;gap:0;border:1px solid var(--line);border-radius:14px;background:#08090b;font-size:13px;overflow:hidden}
.rt-card div{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.rt-card div:last-child{border-bottom:0}
.rt-card span{color:var(--dim)}
.rt-card b{text-align:right}
.disclaimer{font-size:12.5px;color:var(--dim);margin:14px 0 0;line-height:1.55}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:10px}
.faq details{border:1px solid var(--line);border-radius:14px;background:var(--s1);transition:border-color .2s}
.faq details[open]{border-color:var(--line2)}
.faq summary{list-style:none;cursor:pointer;padding:18px 54px 18px 20px;font-weight:600;font-size:16.5px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-weight:400;font-size:22px;color:var(--acc1);transition:transform .2s var(--ease)}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{margin:0;padding:0 20px 18px;color:var(--soft)}

/* ---------- финальный CTA ---------- */
.final{text-align:center;overflow:hidden;padding:140px 0}
.final-glow{position:absolute;left:50%;top:50%;width:900px;height:500px;transform:translate(-50%,-50%);border-radius:50%;filter:blur(100px);opacity:.28;background:var(--grad);pointer-events:none}
.final h2{font-size:clamp(34px,5.4vw,72px);margin-bottom:34px}
.composer.slim .urlrow{padding:6px 6px 6px 16px}

/* ---------- футер ---------- */
.foot{border-top:1px solid var(--line);padding:56px 0 30px;background:#040505}
.foot-in{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.foot-brand p{color:var(--dim);font-size:14px;margin:12px 0 0}
.foot-links{display:flex;gap:56px;flex-wrap:wrap}
.foot-links div{display:flex;flex-direction:column;gap:9px;font-size:14px}
.foot-links b{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--soft);margin-bottom:4px}
.foot-links a{color:var(--dim);text-decoration:none}
.foot-links a:hover{color:var(--text)}
.foot-fine{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.05);font-size:12px;color:var(--dim)}

/* ---------- модалки ---------- */
.modal{border:0;padding:0;background:transparent;color:var(--text);max-width:min(560px,calc(100vw - 32px));width:100%}
.modal::backdrop{background:rgba(2,3,4,.72);backdrop-filter:blur(6px)}
.modal[open]{animation:pop .35s var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.98)}}
.modal-in{position:relative;border:1px solid var(--line2);border-radius:22px;background:var(--s1);padding:30px;box-shadow:0 40px 120px rgba(0,0,0,.7),0 0 0 1px var(--tint)}
.modal h3{font-size:26px;letter-spacing:-.02em;margin:16px 0 10px}
.modal p{color:var(--soft);margin:0 0 12px}
.modal .btn{margin-top:10px}
.wait-url{font-size:13px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#08090b;word-break:break-all}
.x{position:absolute;right:14px;top:12px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--dim);font-size:22px;line-height:1;cursor:pointer}
.x:hover{color:var(--text);border-color:var(--line2)}
.modal.player{max-width:min(1000px,calc(100vw - 32px))}
.pl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:0 40px 16px 0}
.pl-head h3{margin:0}
.pl-sub{font-size:12px;color:var(--dim);margin:6px 0 0}
.pl-fmt{display:flex;gap:6px}
.pl-fmt button{font:600 12px/1 'JetBrains Mono',monospace;padding:8px 11px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--dim);cursor:pointer}
.pl-fmt button[aria-checked="true"]{color:var(--text);border-color:var(--acc1)}
.pl-fmt button:disabled{opacity:.35;cursor:not-allowed}
.pl-stage{display:flex;justify-content:center;background:#000;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.pl-stage video{width:100%;max-height:70vh;object-fit:contain;background:#000}
.pl-stage .stub{position:relative;width:100%;aspect-ratio:16/9}
.pl-stage .stub.v{width:auto;height:min(70vh,560px);aspect-ratio:9/16}
.pl-stage .stub .frame .big{font-size:clamp(28px,4vw,52px)}
.pl-stage .stub .frame{padding:24px}
.pl-foot{display:flex;justify-content:flex-end;margin-top:14px}


/* ---------- модалка генерации (vidgen/008) ---------- */
.gen-status{color:var(--text)}
.gen-bar{height:3px;border-radius:3px;background:var(--line);overflow:hidden;margin:6px 0 12px}
.gen-bar span{display:block;height:100%;width:35%;background:var(--grad);animation:genbar 1.6s ease-in-out infinite}
@keyframes genbar{0%{transform:translateX(-100%)}100%{transform:translateX(300%)}}
.gen-video video{width:100%;max-height:60vh;border-radius:14px;border:1px solid var(--line);background:#000}
.gen-err{color:#ff8a8a;margin:10px 0 0}
.gen-me{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.gen-credits{display:flex;justify-content:space-between;align-items:center;margin:4px 0 10px;font-size:14px;color:var(--soft)}
.gen-credits b{color:var(--text)}
.dep-warn{border:2px solid #ff5a5a;background:rgba(255,60,60,.12);color:#ffd2d2;border-radius:14px;padding:14px 16px;margin:0 0 12px;display:grid;gap:6px;font-size:14px;line-height:1.45}
.dep-warn b{font-size:17px;color:#fff;letter-spacing:-.01em}
.dep-addr{word-break:break-all;font-size:14px;padding:10px 12px;border:1px solid var(--line2);border-radius:10px;background:rgba(255,255,255,.04);margin:0 0 8px}
/* ---------- окно кошелька / онбординг / депозит / цены ---------- */
.wallet-list{display:grid;gap:10px;margin:8px 0 6px}
.gen-ok{color:var(--text);font-weight:600}
.gen-facts{margin:6px 0 14px}
.gen-actions{display:flex;flex-wrap:wrap;gap:10px}
.gen-files{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.dep-row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.dep-qr{width:148px;height:148px;background:#fff;border-radius:12px;padding:6px;flex:0 0 auto}
.dep-qr svg{width:100%;height:100%;display:block}
.dep-info{flex:1 1 220px;min-width:0}
.price-table table{width:100%;border-collapse:collapse;margin:12px 0 4px;font-size:13.5px}
.price-table th,.price-table td{padding:7px 6px;border-top:1px solid var(--line);text-align:left;color:var(--soft)}
.price-table th{color:var(--text);font-weight:600}
.price-table td.mono{text-align:right;color:var(--text);white-space:nowrap}
.price-math{text-align:center;color:var(--soft);margin:18px 0 0;font-size:14px}
.prices .price button.btn{width:100%;justify-content:center}

/* список кошельков: иконка из Wallet Standard, свёрнутый список «Install …», мобильные deep-link */
.wallet-btn{width:100%;justify-content:center;gap:10px;align-items:center}
.wallet-btn img{border-radius:6px;flex:none}
.wallet-mobile{display:grid;gap:8px;margin-top:6px}
.wallet-more{margin:10px 0 0;font-size:13px;color:var(--soft)}
.wallet-more summary{cursor:pointer;padding:6px 0}
.wallet-more ul{list-style:none;margin:6px 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
.wallet-more a{color:var(--soft);text-decoration:underline}

/* ---------- шапка: кнопка входа/аккаунта ---------- */
/* Явные цвета как запасной вариант (кнопка не должна стать белой с белым текстом). Текст не переносится — на узком экране показываем короткую подпись. */
.nav .btn{white-space:nowrap;background-color:var(--acc1);color:var(--on-acc)}
.nav-connect .l-short{display:none}
/* кнопка «Disconnect» справа от кнопки аккаунта: цвета только из переменных (без белого на белом) */
.nav .nav-disconnect{display:inline-flex;align-items:center;gap:6px;color:var(--text);border:1px solid var(--line2);background-color:transparent;background-image:none}
.nav .nav-disconnect:hover{border-color:var(--acc1);color:var(--acc1)}
.nav .nav-disconnect[hidden]{display:none}

/* ---------- поле «Additional instructions» под URL ---------- */
.instr{position:relative;padding:10px 6px 0;text-align:left}
.instr-lbl{display:block;font-size:12px;font-weight:600;color:var(--soft);margin:0 0 6px 2px}
.instr-opt{font-weight:500;color:var(--dim);margin-left:6px}
.instr-in{display:block;width:100%;resize:vertical;min-height:52px;max-height:160px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.04);
  border:1px solid var(--line);color:var(--text);font:500 14px/1.45 Inter,system-ui,sans-serif;outline:0;transition:border-color .18s}
.instr-in:focus{border-color:var(--acc1)}
.instr-in::placeholder{color:#8b8b8e}
.instr-cnt{position:absolute;right:16px;bottom:8px;font-size:11px;color:var(--dim);pointer-events:none}

/* ---------- окно кошелька: вход через Privy (скоро) ---------- */
.privy-soon{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:10px 14px;border-radius:12px;border:1px dashed var(--line2);color:var(--dim);font-size:13px;opacity:.7;cursor:not-allowed;user-select:none}
.privy-dot{width:8px;height:8px;border-radius:50%;background:var(--dim);flex:0 0 8px}

/* ---------- выбор режима под полем Style: Standard / Director cut / Studio ---------- */
.modeset{display:flex;gap:8px;flex-wrap:wrap}
.mode-wrap{position:relative;display:inline-flex;align-items:center;gap:2px}
.mode{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);color:#ddd8d0;background:transparent;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.mode:hover{border-color:var(--line2)}
.mode.on{background:var(--acc1);border-color:transparent;color:var(--on-acc);font-weight:600}
.mode.locked{color:var(--dim);border-style:dashed;background:rgba(255,255,255,.02)}
.mode .lock{width:12px;height:12px;fill:currentColor}
.tip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:var(--dim);font-size:14px;cursor:help;outline-offset:2px}
.tip:hover,.tip:focus{color:var(--acc1)}
.tip-box{position:absolute;z-index:30;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:min(300px,76vw);padding:10px 12px;border-radius:12px;background:var(--s2);border:1px solid var(--line2);
  color:var(--soft);font:400 12.5px/1.45 Inter,system-ui,sans-serif;text-align:left;box-shadow:0 12px 40px rgba(0,0,0,.5);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s}
.tip:hover .tip-box,.tip:focus .tip-box{opacity:1;visibility:visible}

/* ---------- «Your videos» в профиле: цвета только из переменных ---------- */
.hist-h{margin:14px 0 8px;font-size:15px;color:var(--text)}
.hist{display:grid;gap:10px;max-height:46vh;overflow:auto}
.hist-empty{color:var(--dim);margin:0}
.hc{display:flex;flex-direction:column;gap:14px;padding:14px;border:1px solid var(--line2);border-radius:16px;background:var(--s2);color:var(--text)}
.hc-media{position:relative}
.hc-poster{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--s1);overflow:hidden;cursor:pointer;color:var(--text)}
.hc-poster img,video.hc-poster{width:100%;height:100%;object-fit:cover;display:block}
video.hc-poster{background:#000;object-fit:contain}
.hc-poster i{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:34px;background:rgba(0,0,0,.28);color:#fff}
.hc-empty{display:grid;place-items:center;cursor:default;color:var(--dim);font-size:22px}
.hc-portrait .hc-media{width:fit-content;max-width:100%;margin:0 auto}
.hc-portrait .hc-poster{width:auto;height:360px;max-height:360px;aspect-ratio:9/16;max-width:100%}
.hc-expand{position:absolute;top:8px;right:8px;z-index:2;padding:6px 11px;border:1px solid rgba(255,255,255,.35);border-radius:99px;background:rgba(0,0,0,.6);color:#fff;font:600 13px/1 inherit;font-family:inherit;cursor:pointer}
.hc-expand:hover{background:rgba(0,0,0,.8)}
.hc-body{min-width:0;font-size:15px;display:flex;flex-direction:column;gap:6px}
.hc-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hc-host{font-size:18px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text)}
.hc-mode{padding:2px 10px;border-radius:99px;font-size:12px;background:var(--acc1);color:var(--on-acc);font-weight:600}
.hc-st{color:var(--soft);font-size:15px}
.hc-failed .hc-st{color:var(--dn)}
.hc-err{color:var(--dn);font-size:14px}
.hc-btns{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}
.hc-btns .btn-sm{padding:10px 16px;font-size:14px;flex:1 1 140px;text-align:center}
.hc-in summary{cursor:pointer;color:var(--dim);font-size:13px}
.hc-in dl{margin:6px 0 0;display:grid;gap:2px;color:var(--soft)}
.hc-in dt{color:var(--dim);font-size:12px;margin-top:4px}
.hc-in dd{margin:0;font-size:14px;font-weight:400;overflow-wrap:anywhere;color:var(--text)}

/* ---------- dApp (/app): html.is-app прячет лендинг, показывает только форму и «My videos» ---------- */
.dapp{display:none}
html.is-app main > :not(.dapp), html.is-app .foot, html.is-app .navlinks, html.is-app .navcta .ticker-pill, html.is-app .dapp-wrap{display:none !important}
html.is-app .dapp{display:block;padding:104px var(--gut) 64px}
.nav-dapp{color:var(--text);border:1px solid var(--line2);background:transparent}
.nav-dapp:not(:disabled):hover{border-color:var(--acc1);color:var(--acc1)}
.nav-dapp:disabled{opacity:.45;cursor:not-allowed;border-style:dashed}
.dapp-wrap{display:inline-flex}
.dapp-in{max-width:1100px;margin:0 auto}
.dapp-h{font-size:clamp(26px,4vw,36px);line-height:1.15;letter-spacing:-.02em;margin:0 0 16px;color:var(--text)}
.dapp-h2{font-size:22px;margin:40px 0 14px;color:var(--text)}
.dapp-form{width:100%;margin:0}
.dapp-form .urlrow{padding-right:10px}
.dapp-clean{display:flex;align-items:center;gap:8px;padding:6px 6px 0;font-size:13px;color:var(--soft);cursor:pointer}
.dapp-clean[hidden]{display:none}
.dapp-clean.off{color:var(--dim);cursor:not-allowed}
.dapp-clean input{accent-color:var(--acc1);width:16px;height:16px}
.dapp-form .instr-in{color:var(--text)}
.dapp-form .gen-err{padding:0 6px}
.dapp-act{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 6px 4px}
.dapp-cost{margin:0;font-size:14px;color:var(--soft)}
.dapp-cost b{color:var(--text)}
.dapp-btns{display:flex;gap:10px;flex-wrap:wrap}
.dapp-gen:disabled{opacity:.6;cursor:wait}
.hist.dapp-grid{align-items:start;max-height:none;overflow:visible;grid-template-columns:1fr;gap:14px}

/* дата карточки истории — отдельной строкой под статусом */
.hc-date{font-size:12px;opacity:.6}

/* ролики сами ставят заголовки в верх кадра — подпись сайта уходит вниз, таймкод не нужен (2026-10-14) */
.frame .tc,.card-media .tc{display:none}
.frame .src,.card-media .src{top:auto;bottom:10px;left:10px;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);opacity:.9}

/* ---------- админка (/admin): html.is-admin прячет лендинг, assets/admin.js рисует вкладки ---------- */
.adm{display:none}
html.is-admin main > :not(.adm), html.is-admin .foot, html.is-admin .navlinks, html.is-admin .navcta .ticker-pill, html.is-admin .dapp-wrap{display:none !important}
html.is-admin .adm{display:block;padding:104px var(--gut) 64px}
.nav .nav-admin{color:var(--acc1);border:1px solid var(--acc1);background:transparent;background-image:none}
.nav-admin[hidden]{display:none}
.adm-in{max-width:1200px;margin:0 auto;min-width:0}
.adm-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.adm-tabs button{font:600 14px/1 Inter,system-ui,sans-serif;color:var(--soft);background:var(--s1);border:1px solid var(--line2);border-radius:999px;padding:9px 14px;cursor:pointer}
.adm-tabs button[aria-selected="true"]{background:var(--acc1);color:var(--on-acc);border-color:var(--acc1)}
.adm-who{margin:0 0 16px;overflow-wrap:anywhere}
.adm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:0 0 16px}
.adm-tile{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.adm-tile span{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}
.adm-tile b{font:600 22px/1.2 'JetBrains Mono',ui-monospace,monospace;color:var(--text)}
.adm-tile small{font-size:12px;color:var(--soft)}
.adm-sec{background:var(--s1);border:1px solid var(--line);border-radius:14px;margin:0 0 10px;min-width:0}
.adm-sec > summary{cursor:pointer;padding:12px 14px;font-weight:600;color:var(--text);list-style:none}
.adm-sec > summary::-webkit-details-marker{display:none}
.adm-sec > summary::before{content:"▸";display:inline-block;width:1.1em;color:var(--acc1);transition:transform .15s}
.adm-sec[open] > summary::before{transform:rotate(90deg)}
.adm-sec-b{padding:0 14px 14px;min-width:0}
.adm-sec .adm-sec{background:var(--s2)}
.adm-sec h4{margin:14px 0 6px;font-size:13px;color:var(--soft)}
.adm-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.adm-t{border-collapse:collapse;width:100%;font-size:13px}
.adm-t th{color:var(--dim);font-weight:500;text-align:left;white-space:nowrap}
.adm-t th,.adm-t td{border-bottom:1px solid var(--line);padding:6px 10px 6px 0;vertical-align:top}
.adm-t td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-family:'JetBrains Mono',ui-monospace,monospace}
.adm-kv td:first-child{white-space:nowrap}
.adm-kv td{overflow-wrap:anywhere}
.adm-sig{overflow-wrap:anywhere;word-break:break-all;font-size:12px}
.adm-t a{color:var(--acc1)}
.adm-meter{margin:4px 0 14px}
.adm-meter-h{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px}
.adm-meter-h span{color:var(--soft);font-size:12px}
.adm-bar{position:relative;height:10px;border-radius:999px;background:var(--s2);border:1px solid var(--line);overflow:hidden;margin:6px 0 2px}
.adm-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:999px}
.adm-bar i.c{background:var(--tint);border-right:2px solid var(--line2)}
.adm-bar i.u{background:var(--acc1)}
.adm-warn{background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.45);color:var(--text);border-radius:12px;padding:12px 14px;margin:0 0 12px}
.adm-warn ul{margin:6px 0 0;padding-left:18px}
.adm-health{margin:0 0 16px}
.adm-hl{list-style:none;margin:0 0 10px;padding:0}
.adm-h{border-left:4px solid var(--up);background:var(--s1);border-radius:8px;padding:6px 10px;margin:0 0 4px;overflow-wrap:anywhere;font-size:13px}
.adm-h-warn{border-left-color:#f0b429}
.adm-h-error{border-left-color:var(--dn);background:rgba(255,107,107,.08)}
.adm-ok{color:var(--up)}
.adm-bad{color:var(--dn)}
.adm-pre{font:12px/1.5 'JetBrains Mono',ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px;max-height:520px;overflow:auto;color:var(--soft);margin:6px 0}
.adm-jobs{display:grid;grid-template-columns:1fr;gap:10px}
.adm-job{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:12px 14px;min-width:0}
.adm-job.st-failed{border-color:rgba(255,107,107,.35)}
.adm-job-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;color:var(--text)}
.adm-job-t{margin-left:auto;font-size:12px;color:var(--dim)}
.adm-pill{font:600 11px/1 'JetBrains Mono',ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em;padding:5px 8px;border-radius:999px;background:var(--tint);color:var(--acc1)}
.st-failed .adm-pill{background:rgba(255,107,107,.12);color:var(--dn)}
.adm-dl{display:grid;grid-template-columns:110px 1fr;gap:4px 12px;margin:0 0 10px;font-size:13px}
.adm-dl dt{color:var(--dim)}
.adm-dl dd{margin:0;overflow-wrap:anywhere;min-width:0}
.adm-dl a{color:var(--acc1)}
.adm-detail{margin-top:10px}
.adm-imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.adm-imgs figure{margin:0}
.adm-imgs img{width:100%;border-radius:8px;border:1px solid var(--line);background:var(--bg);min-height:40px}
.adm-imgs figcaption{font-size:11px;color:var(--dim)}
.adm-job:has(.adm-detail:not([hidden])){grid-column:1/-1}
.adm-sec-b > p{font-size:14px;line-height:1.5;color:var(--soft)}

/* ---------- документация (/docs/*): те же токены и шапка/футер, что у лендинга ---------- */
.doc-hero{position:relative;padding:150px 0 40px;text-align:center;background:var(--hero-bg)}
.doc-hero h1{margin:14px auto 18px;font-size:clamp(36px,6vw,72px)}
.doc-hero .sub{margin-bottom:22px}
.doc-hero .micro{margin-top:0}
.center-fine,.center-lead{text-align:center}
.center-lead{margin:0 auto 28px}
.mcards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.mcard{position:relative;display:flex;flex-direction:column;gap:14px;border:1px solid var(--line);border-radius:22px;padding:30px;background:var(--s1);transition:transform .2s var(--ease),border-color .2s}
.mcard:hover{transform:translateY(-3px);border-color:var(--line2)}
.mcard.hot{border-color:var(--acc1);box-shadow:0 30px 80px rgba(0,0,0,.45),0 0 60px var(--tint)}
.mcard h3{font-size:22px;margin:0;font-weight:700}
.mcard p{margin:0;color:var(--soft);font-size:15px}
.mcard .btn{margin-top:auto;align-self:flex-start}
.mprice{display:flex;align-items:baseline;gap:10px}
.mprice .amt{font-size:clamp(40px,4.4vw,56px)}
.mprice .per{margin:0}
.mfacts{margin:0;display:grid;gap:8px}
.mfacts div{display:flex;gap:14px;font-size:14px;border-top:1px solid var(--line);padding-top:8px}
.mfacts dt{flex:0 0 64px;color:var(--dim)}
.mfacts dd{margin:0;color:var(--text)}
.pick{margin:18px 0 0;color:var(--soft)}
.pick b{color:var(--acc1)}
.vstack{display:grid;gap:22px;margin-top:28px}
.vstack figure{margin:0}
.vstack video{width:100%;border-radius:var(--r);border:1px solid var(--line);background:#000}
.vstack figcaption{font-size:13px;color:var(--dim);margin-top:8px}
.vstack .tall{max-width:360px;margin:0 auto;width:100%}
.vtable-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--s1)}
.vtable{width:100%;border-collapse:collapse;font-size:14.5px;min-width:760px}
.vtable th,.vtable td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;color:var(--soft)}
.vtable thead th{color:var(--dim);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.vtable tbody th{color:var(--text);font-weight:600;white-space:nowrap}
.vtable .n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text)}
.vtable tfoot th,.vtable tfoot td{background:var(--s2);color:var(--acc1);font-weight:700;border-bottom:0}
.doc .final{padding:120px 0}

/* ---------- адаптив (все брейкпоинты в одном месте) ---------- */
@media (max-width:1180px){
  .float{display:none}
}
@media (max-width:980px){
  .mcards{grid-template-columns:1fr;max-width:520px;margin:0 auto}
  .navlinks{display:none}
  .demo-body{grid-template-columns:1fr}
  .stagepanel{min-height:400px}
  .steps{grid-template-columns:1fr}
  .who{grid-template-columns:1fr 1fr}
  .wcard.big{grid-column:span 2;grid-row:auto}
  .who .wcard:last-child{grid-column:auto}
  .bento{grid-template-columns:1fr 1fr}
  .bento .bx{grid-column:span 1;grid-row:auto}
  .b-script,.b-bible{grid-column:span 2!important}
  .prices{grid-template-columns:1fr;max-width:480px;margin:0 auto}
  .road{grid-template-columns:1fr 1fr;row-gap:30px}
  .road::before{display:none}
  .mkt{grid-template-columns:1fr 1fr}
  .reel-token{grid-template-columns:1fr}
}
@media (max-width:900px){
  .price.director{grid-template-columns:1fr}
}
@media (max-width:640px){
  .doc-hero{padding:104px 0 24px}
  .mcard{padding:24px}
  .doc .final{padding:84px 0}
  .best-meta span{display:none}
  .best-meta{justify-content:flex-end}
  :root{--gut:16px}
  .nav-in{padding:12px 16px}
  .sec{padding:84px 0}
  .hero{padding-top:58px}
  h1{font-size:clamp(36px,11vw,48px)}
  .urlrow{flex-wrap:wrap;padding:8px 8px 8px 14px}
  .urlrow .url{flex:1 1 60%;font-size:15px}
  .gen{width:100%;padding:15px}
  .chips{gap:8px 6px}
  .formats{margin-left:0}
  .pipe{flex-wrap:wrap;gap:6px}
  .pipe .ln{display:none}
  .badge{font-size:12px;white-space:normal;text-align:left}
  .demo{padding:12px;border-radius:18px}
  .demo-steps{grid-template-columns:repeat(4,1fr);gap:5px}
  .demo-steps button{flex-direction:column;gap:5px;padding:9px 2px;font-size:10.5px}
  .bpage{padding:14px}
  .stagepanel{min-height:360px}
  .grid-gal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 -16px;padding:0 16px 10px;scrollbar-width:none}
  .grid-gal::-webkit-scrollbar{display:none}
  .grid-gal .card{flex:0 0 80%;scroll-snap-align:start}
  .pane{padding:14px}
  .script li{grid-template-columns:40px 52px 1fr;font-size:13px}
  .board{grid-template-columns:repeat(3,1fr);gap:6px}
  .shot b{font-size:11px}
  .shot.s2 b{font-size:18px}
  .tabs{border-radius:16px;width:100%}
  .tabs button{padding:8px 11px;font-size:13px}
  .who{grid-template-columns:1fr}
  .wcard.big,.who .wcard:last-child{grid-column:auto}
  .bento{grid-template-columns:1fr}
  .bento .bx,.b-script,.b-bible{grid-column:auto!important}
  .ratios .r169{width:120px;height:68px}
  .ratios .r916{width:40px;height:72px}
  .ratios .r11{width:68px;height:68px}
  .ratios{height:76px}
  .road{grid-template-columns:1fr}
  .mkt{grid-template-columns:1fr}
  .reel-token{padding:22px;margin-top:60px}
  .rt-card div{flex-direction:column;gap:2px}
  .rt-card b{text-align:left}
  .price{padding:24px}
  .modal-in{padding:22px}
  .foot-links{gap:32px}
  .nav-connect .l-long{display:none}
  .nav-connect .l-short{display:inline}
  .nav .btn-sm{padding:8px 13px;font-size:13px}
  .tip-box{left:auto;right:-40px;transform:none}
}
@media (max-width:600px){
  html.is-admin .adm{padding-top:84px}
  .adm-tiles{grid-template-columns:1fr 1fr}
  .adm-dl{grid-template-columns:1fr}
  .adm-dl dt{margin-top:6px}
  .adm-tile b{font-size:18px}
}
@media (max-width:480px){
  .wallet-more ul{grid-template-columns:1fr}
  .nav .nav-disconnect .nd-t{display:none}
  html.is-app .dapp{padding-top:84px}
  .hist.dapp-grid{grid-template-columns:1fr}
  .dapp-btns{width:100%}
  .dapp-btns>*{flex:1}
}
@media (max-width:460px){
  .navcta .ticker-pill{display:none}
}
@media (max-width:400px){
  .nav-in{gap:8px}
  .navcta{gap:6px}
  .nav .logo{font-size:15px;gap:6px}
}
@media (max-width:380px){
  .ticker-pill{display:none}
}
@media (min-width:900px){
  .hist.dapp-grid{grid-template-columns:1fr 1fr}
}
@media (min-width:1000px){
  .adm-jobs{grid-template-columns:1fr 1fr;align-items:start}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js [data-reveal]{opacity:1;transform:none}
  .found li,.script li,.shot{opacity:1;transform:none}
  .gen-bar span{animation:none;width:100%;opacity:.5}
}

/* админка: якоря разделов конфига, липкие под шапкой */
.adm-anchors{position:sticky;top:72px;z-index:5;background:var(--bg,#050607);padding:10px 0;margin:0 0 12px;font-size:14px;line-height:1.9;border-bottom:1px solid var(--line)}
.adm-anchors a{color:var(--acc,#97fcd7);text-decoration:none;white-space:nowrap}
.adm-anchors a:hover{text-decoration:underline}
.adm-sec{scroll-margin-top:130px}

/* ---------- v2.2 (vidgen/021): окно «нужен Solana-кошелёк», возврат и повтор в истории, ровная галерея ---------- */
.need-wallet{margin:6px 0 0;padding:16px;border-radius:14px;border:1px solid rgba(151,252,215,.25);background:radial-gradient(120% 120% at 0 0,var(--tint),transparent 60%),var(--s2)}
.need-wallet[hidden]{display:none}
.nw-h{margin:0 0 6px;font-weight:700;font-size:17px;color:var(--text)}
.nw-why{margin:0;color:var(--soft);font-size:14px;line-height:1.5}
.nw-why b{color:var(--text);font-weight:600}
.nw-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.need-wallet .fine{margin-top:10px}
.privy-soon{margin-top:14px;padding:8px 12px;font-size:12px;opacity:.6}
.hc-refund{color:var(--soft);font-size:13px}
/* галерея: 3 колонки, последний неполный ряд по центру, одинаковые карточки (16:9, подпись в одну строку) */
.grid-gal{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.grid-gal .card{flex:0 0 calc((100% - 36px) / 3);width:auto}
.card-body>div{flex:1}
.card-body p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:980px){.grid-gal .card{flex-basis:calc((100% - 18px) / 2)}}
@media (max-width:640px){
  .nw-links{grid-template-columns:1fr}
  .grid-gal{justify-content:flex-start;flex-wrap:nowrap}
  .grid-gal .card{flex:0 0 80%}
}
/* вложенный span с числом (data-free-limit) внутри пункта .micro — без второй галочки */
.micro span span::before{content:none}

/* ---------- окно генерации: панель параметров (setup) и прогресс (progress), vidgen/021 ---------- */
.gen-dlg.wide{max-width:min(720px,calc(100vw - 32px))}
.modal-in:has([data-gen-step="setup"]:not([hidden])) .gen-me,.modal-in:has([data-gen-step="progress"]:not([hidden])) .gen-me{display:none}
.su-sec{margin:14px 0 0}
.su-lbl{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin:0 0 8px !important}
.su-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.su-mode{position:relative;display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px;border-radius:14px;border:1px solid var(--line2);background:rgba(255,255,255,.02);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.su-mode:hover{border-color:rgba(151,252,215,.5)}
.su-mode[aria-checked="true"]{border-color:var(--acc1);background:radial-gradient(120% 120% at 0 0,var(--tint),transparent 70%),rgba(151,252,215,.04);box-shadow:0 0 0 3px rgba(151,252,215,.12)}
.su-mode b{font-size:15px;color:var(--text)}
.su-mode .su-price{font:600 22px 'JetBrains Mono',monospace;color:var(--text);letter-spacing:-.02em}
.su-mode small{font-size:12px;color:var(--dim);line-height:1.4}
.su-mode .su-rec{position:absolute;top:-9px;right:10px;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:99px;background:var(--acc1);color:var(--on-acc)}
.su-free{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13.5px;color:var(--soft);cursor:pointer}
.su-free[hidden]{display:none}
.su-free input{accent-color:var(--acc1);width:16px;height:16px}
.su-fmts{display:flex;gap:8px;flex-wrap:wrap}
.su-fmt{font:600 13px 'JetBrains Mono',monospace;padding:9px 14px;border-radius:10px;border:1px solid var(--line2);background:transparent;color:var(--soft);cursor:pointer}
.su-fmt[aria-checked="true"]{border-color:var(--acc1);color:var(--text);background:rgba(151,252,215,.08)}
.su-fmt:disabled{opacity:.4;cursor:not-allowed}
.su-note{font-size:12.5px !important;color:var(--dim) !important;margin:8px 0 0 !important}
.su-more{margin-top:14px;border-top:1px solid var(--line);padding-top:6px}
.su-more>summary{cursor:pointer;font-size:13.5px;color:var(--soft);padding:6px 0}
.su-go{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}
.su-bal{margin:0 !important;font-size:14px}
.su-btn{margin-top:0 !important;min-width:220px}
.pg-graph{display:flex;align-items:flex-start;justify-content:space-between;gap:0;margin:18px 0 8px}
.pg-n{--c:#97FCD7;flex:0 0 auto;width:84px;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center}
.pg-n i{width:30px;height:30px;border-radius:50%;border:2px solid color-mix(in srgb,var(--c) 45%,transparent);background:#0a0d0e;display:grid;place-items:center;transition:all .3s}
.pg-n i::after{content:"";width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--c) 40%,transparent)}
.pg-n b{font-size:12.5px;color:var(--dim);font-weight:600}
.pg-n.on i{border-color:var(--c);box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 15%,transparent),0 0 26px var(--c);animation:pgpulse 1.4s ease-in-out infinite}
.pg-n.on i::after{background:var(--c)}
.pg-n.on b{color:#fff}
.pg-n.done i{border-color:var(--c);background:color-mix(in srgb,var(--c) 22%,#0a0d0e)}
.pg-n.done i::after{content:"✓";width:auto;height:auto;background:none;color:var(--c);font-size:13px;font-weight:700}
.pg-n.done b{color:var(--soft)}
.pg-l{flex:1;height:2px;margin-top:14px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.16) 0 6px,transparent 6px 11px)}
.pg-l.on{background:repeating-linear-gradient(90deg,var(--c,#97FCD7) 0 8px,transparent 8px 14px);background-size:28px 2px;animation:s2flow .5s linear infinite}
.pg-l.done{background:color-mix(in srgb,var(--c,#97FCD7) 55%,transparent)}
@keyframes pgpulse{50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--c) 6%,transparent),0 0 34px var(--c)}}
@keyframes s2flow{to{background-position:28px 0}}
.pg-now{font-size:16px;color:var(--text) !important;margin:14px 0 10px !important;text-align:center}
.pg-now b{color:var(--acc1)}
.pg-bar{height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.pg-bar span{display:block;height:100%;width:0;border-radius:inherit;background:var(--grad);transition:width .8s var(--ease)}
.pg-eta{font-size:13px;color:var(--soft) !important;text-align:center;margin:10px 0 0 !important}
.pg-fine{text-align:center}
.pg-fine a{color:var(--acc1)}
@media (max-width:640px){
  .su-modes{grid-template-columns:1fr}
  .su-btn{width:100%}
  .pg-n{width:56px}.pg-n b{font-size:10.5px}
  .pg-n i{width:24px;height:24px}.pg-l{margin-top:11px}
}
@media (prefers-reduced-motion:reduce){.pg-n.on i,.pg-l.on{animation:none}}
.su-instr{padding:0;margin-top:16px}

/* ---------- галерея v2.2: ровная сетка 9:16 без горизонтальной прокрутки (vidgen/021) ----------
   4 колонки на десктопе (vidgen/025, было 6 — карточки мелковаты), 3 — на планшете, 2 — на телефоне (первые 6 + «Show all»). */
.grid-gal{display:flex !important;flex-wrap:wrap !important;justify-content:center !important;gap:16px !important;overflow:visible !important;margin:0 !important;padding:0 !important}
.grid-gal .card.card-v{flex:0 0 calc((100% - 48px) / 4) !important;width:auto;scroll-snap-align:none}
.card-v .card-media{aspect-ratio:9/16;background:#0b0c0e}
.card-v .card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease),opacity .25s}
.card-v:hover .card-media img{transform:scale(1.03)}
.card-v.playing .card-media img{opacity:0}
.card-v .card-media video{object-fit:cover}
.card-v .card-media::after{content:"";position:absolute;inset:auto 0 0;height:30%;background:linear-gradient(transparent,rgba(0,0,0,.45));pointer-events:none}
.card-v .card-body{padding:10px 12px;gap:6px}
.card-v .card-body h3{font-size:15px}
.card-v .card-body .stl{font-size:9.5px;padding:3px 6px}
.gal-more-wrap{display:none;justify-content:center;margin-top:18px}
.pl-foot{gap:10px;flex-wrap:wrap}
.pl-foot .btn{margin-top:0}
.modal.player{max-width:min(1000px,calc(100vw - 32px))}
.pl-stage video{max-height:min(72vh,calc(100dvh - 220px));width:auto;max-width:100%}
@media (max-width:1100px){.grid-gal .card.card-v{flex-basis:calc((100% - 32px) / 3) !important}}
@media (max-width:640px){
  .grid-gal{gap:12px !important}
  .grid-gal .card.card-v{flex-basis:calc((100% - 12px) / 2) !important}
  .grid-gal:not(.all) .card.card-v:nth-child(n+7){display:none}
  .gal-more-wrap{display:flex}
  .card-v .card-body .stl{display:none}
}
.card-v .stl-o{position:absolute;top:8px;left:8px;z-index:3;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;padding:4px 7px;border-radius:6px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);color:#e6efec}
@media (max-width:640px){.card-v .stl-o{font-size:8.5px}}

/* ---------- dApp v2 (vidgen/026): /app, /app/videos, /app/new, /app/billing, /app/account ----------
   Боковая навигация на десктопе, нижняя панель вкладок на телефоне. Тёмная тема и мятный акцент — как у главной. */
html.is-app body{background:radial-gradient(60% 40% at 70% -10%,rgba(151,252,215,.07),transparent 70%),var(--bg)}
html.is-app .nav{background:rgba(5,6,7,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line)}
html.is-app .dapp{padding:0}
.dshell{max-width:1280px;margin:0 auto;padding:96px var(--gut) 72px;display:grid;grid-template-columns:224px minmax(0,1fr);gap:40px;align-items:start}
.dside{position:sticky;top:92px}
.dnav{display:flex;flex-direction:column;gap:2px}
.dnav-a{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:var(--dim);text-decoration:none;font-size:14.5px;font-weight:600;transition:background .15s,color .15s}
.dnav-a svg{width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dnav-a:hover{color:var(--text);background:rgba(255,255,255,.04)}
.dnav-a.on{color:var(--text);background:linear-gradient(90deg,rgba(151,252,215,.12),rgba(151,252,215,.03))}
.dnav-a.on svg{stroke:var(--acc1)}
.dnav-a.on::before{content:"";position:absolute;left:-1px;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--acc1)}
.dnav-n{margin-left:auto;font-style:normal;font-size:11px;font-weight:600;min-width:20px;height:20px;padding:0 6px;border-radius:99px;display:inline-grid;place-items:center;background:#00D4FF;color:#04161c}
.dnav-n[hidden]{display:none}
.dside-bal{display:flex;flex-direction:column;gap:2px;margin-top:22px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--s1);text-decoration:none;transition:border-color .15s}
.dside-bal:hover{border-color:rgba(151,252,215,.4)}
.dside-bal span{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.dside-bal b{font-size:22px;font-weight:600;color:var(--text)}
.dside-bal small{font-size:12px;color:var(--dim)}
.dside-bal small:empty{display:none}
.dpage[hidden]{display:none}
.dhead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 26px}
.dkick{margin:0 0 6px;font:600 11.5px 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--acc1)}
.dh{margin:0;font-size:clamp(28px,3.4vw,38px);line-height:1.1;letter-spacing:-.025em;font-weight:800;color:var(--text)}
.dhead .btn{flex:0 0 auto}
.bi{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.dh2{margin:38px 0 14px;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--text)}
.dh2row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.dlink{color:var(--acc1);font-size:14px;font-weight:600;text-decoration:none}
.dlink:hover{text-decoration:underline}
.dnote{margin:14px 0 0;font-size:13px;color:var(--dim);line-height:1.5}
.dcard{border:1px solid var(--line);border-radius:20px;background:var(--s1);padding:24px}
.dcard h3{margin:0 0 14px;font-size:18px;letter-spacing:-.01em;color:var(--text)}

/* обзор: плитки */
.dstats{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px}
.dstat{display:flex;flex-direction:column;gap:6px;min-height:150px;padding:20px 22px;border-radius:20px;border:1px solid var(--line);background:var(--s1);text-decoration:none;color:var(--text);transition:border-color .15s,transform .15s var(--ease)}
a.dstat:hover{border-color:rgba(151,252,215,.4);transform:translateY(-1px)}
.dstat-bal{background:radial-gradient(120% 140% at 0 0,rgba(151,252,215,.13),transparent 60%),var(--s1);border-color:rgba(151,252,215,.22)}
.dstat-l{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.dstat-v{font-size:34px;font-weight:600;letter-spacing:-.03em;line-height:1.1;color:var(--text)}
.dstat-s{font-size:13px;color:var(--soft)}
.dstat-cta{margin-top:auto;font-size:13px;font-weight:600;color:var(--acc1)}
.dstat-dots{display:flex;gap:5px}
.dstat-dots:empty{display:none}
.dstat-dots i{width:26px;height:6px;border-radius:3px;background:var(--line2)}
.dstat-dots i.on{background:var(--acc1);box-shadow:0 0 10px var(--glow)}
.dacc .dstat-v{display:block;margin:10px 0 8px}

/* обзор: пустое состояние */
.dempty{margin-top:22px;display:grid;grid-template-columns:1.35fr 1fr;gap:24px;align-items:center;padding:32px;border-radius:22px;border:1px solid rgba(151,252,215,.22);
  background:radial-gradient(90% 120% at 100% 0,rgba(151,252,215,.09),transparent 60%),var(--s1)}
.dempty h2{margin:0 0 8px;font-size:26px;letter-spacing:-.02em;color:var(--text)}
.dempty-txt>p{margin:0 0 18px;color:var(--soft)}
.dsteps{list-style:none;counter-reset:ds;margin:0 0 22px;padding:0;display:grid;gap:12px}
.dsteps li{counter-increment:ds;display:grid;grid-template-columns:30px 1fr;column-gap:12px;align-items:start}
.dsteps li::before{content:counter(ds);grid-row:span 2;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:600 13px 'JetBrains Mono',monospace;color:var(--on-acc);background:var(--acc1)}
.dsteps b{font-size:15px;color:var(--text)}
.dsteps span{font-size:13.5px;color:var(--dim)}
.dsteps-sm li::before{background:transparent;color:var(--acc1);border:1px solid rgba(151,252,215,.45)}
.dempty-art{position:relative;height:230px}
.dempty-art span{position:absolute;border-radius:14px;border:1px solid var(--line2);box-shadow:0 30px 60px rgba(0,0,0,.5)}
.dempty-art span:nth-child(1){left:6%;top:24%;width:62%;aspect-ratio:16/9;background:var(--th2);transform:rotate(-6deg)}
.dempty-art span:nth-child(2){right:4%;top:2%;width:30%;aspect-ratio:9/16;background:var(--th3);transform:rotate(5deg)}
.dempty-art span:nth-child(3){left:20%;top:40%;width:60%;aspect-ratio:16/9;background:var(--th1);border-color:rgba(151,252,215,.4)}
.dempty-art span:nth-child(3)::after{content:"";position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--acc1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5.5 3.5v9l7-4.5z' fill='%23072724'/%3E%3C/svg%3E") center/20px no-repeat;box-shadow:0 0 30px var(--glow)}

/* карточки роликов */
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;align-items:start}
.dv{display:flex;flex-direction:column;border-radius:18px;border:1px solid var(--line);background:var(--s1);overflow:hidden;transition:border-color .15s}
.dv:hover{border-color:var(--line2)}
.dv-media{position:relative;aspect-ratio:16/9;background:#08090b;overflow:hidden}
.dv-media img{width:100%;height:100%;object-fit:cover}
.dv-portrait .dv-media img{object-fit:contain}
.dv-ph{position:absolute;inset:0;display:grid;place-items:center;background:var(--th2)}
.dv-ph span{font:800 46px Inter,sans-serif;color:rgba(151,252,215,.35)}
.dv-queued .dv-ph,.dv-running .dv-ph{background:linear-gradient(110deg,#0b1513 30%,#12302a 50%,#0b1513 70%);background-size:220% 100%;animation:dvsh 2.2s linear infinite}
.dv-failed .dv-ph{background:linear-gradient(160deg,#2a1214,#0d0909 70%)}
.dv-failed .dv-ph span{color:rgba(255,107,107,.35)}
@keyframes dvsh{to{background-position:-120% 0}}
.dv-play{position:absolute;inset:0;border:0;padding:0;background:linear-gradient(transparent 55%,rgba(0,0,0,.35));cursor:pointer;display:grid;place-items:center}
.dv-play i{width:54px;height:54px;border-radius:50%;background:rgba(5,6,7,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5.5 3.5v9l7-4.5z' fill='%23fff'/%3E%3C/svg%3E") 55% 50%/22px no-repeat;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(6px);transition:transform .18s var(--ease),background-color .18s}
.dv-play:hover i{transform:scale(1.08);background-color:rgba(151,252,215,.25)}
.dv-st{position:absolute;left:10px;top:10px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:99px;font-size:12px;font-weight:600;background:rgba(5,6,7,.74);backdrop-filter:blur(8px);color:var(--text)}
.dv-st i{width:7px;height:7px;border-radius:50%;background:currentColor}
.dv-st-done{color:var(--acc1)}
.dv-st-running{color:#5fe1ff}
.dv-st-running i{animation:dvpulse 1.2s ease-in-out infinite}
.dv-st-queued{color:#ffcf7a}
.dv-st-failed{color:#ff8a8a}
@keyframes dvpulse{50%{opacity:.25}}
.dv-fmt{position:absolute;right:10px;top:10px;padding:4px 8px;border-radius:7px;font-size:10.5px;background:rgba(5,6,7,.7);color:var(--soft)}
.dv-fmt:empty{display:none}
.dv-body{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;min-width:0}
.dv-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.dv-host{font-size:16px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dv-mode{flex:0 0 auto;padding:3px 9px;border-radius:99px;font-size:11.5px;font-weight:600;border:1px solid var(--line2);color:var(--soft)}
.dv-mode-standard{color:var(--acc1);border-color:rgba(151,252,215,.35)}
.dv-mode-director{color:#FF9B73;border-color:rgba(255,138,91,.4)}
.dv-mode-agent{color:#F98BF1;border-color:rgba(249,107,238,.4)}
.dv-meta{margin:0;font-size:13px;color:var(--dim)}
.dv-bar{height:6px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden}
.dv-bar span{display:block;height:100%;width:2%;border-radius:inherit;background:linear-gradient(90deg,#00D4FF,var(--acc1));transition:width .8s var(--ease)}
.dv-queued .dv-bar span{background:#ffcf7a}
.dv-eta{margin:7px 0 0;font-size:12px;color:var(--soft)}
.dv-err{margin:0;font-size:13px;line-height:1.45;color:#ff9a9a}
.dv-refund{display:inline-flex;align-items:center;gap:6px;width:fit-content;margin:0;padding:4px 10px 4px 8px;border-radius:99px;font-size:12px;font-weight:600;color:var(--up);background:rgba(89,212,153,.1)}
.dv-refund svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dv-ins{margin:0;font-size:13px;color:var(--dim);font-style:italic;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dv-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.dv-btns .btn{padding:8px 14px;font-size:13px;box-shadow:none}
.dnone{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:14px;padding:44px 20px;border:1px dashed var(--line2);border-radius:18px;color:var(--dim);text-align:center}
.dnone p{margin:0}

/* фильтры */
.dfilters{display:flex;gap:6px;margin:0 0 18px;overflow-x:auto;scrollbar-width:none}
.dfilters button{flex:0 0 auto;padding:8px 14px;border-radius:99px;border:1px solid var(--line);background:transparent;color:var(--soft);font-size:13.5px;font-weight:600;cursor:pointer}
.dfilters button:hover{border-color:var(--line2)}
.dfilters button[aria-selected="true"]{background:var(--acc1);border-color:transparent;color:var(--on-acc)}
.dfilters i{font-style:normal;opacity:.65;margin-left:3px}

/* новый ролик */
.dnew{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.dlbl{display:block;margin:22px 0 8px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.dform>.dlbl:first-child{margin-top:0}
.dform .urlrow{padding-right:8px}
.dform .instr-in{color:var(--text)}
.dform .su-instr{margin-top:22px}
.dform .su-more{margin-top:16px}
.dform .gen-err{margin:14px 0 0}
.dform-go{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.dform-sum{display:grid;gap:2px}
.dform-sum span{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.dform-sum b{font-size:26px;font-weight:600;color:var(--text)}
.dform-sum small{font-size:12.5px;color:var(--dim)}
.dform-btn{min-width:240px;margin:0}
.dform-btn:disabled{opacity:.6;cursor:wait}
.dhelp{position:sticky;top:92px}
.dhelp p{margin:14px 0 0;font-size:13.5px;line-height:1.5;color:var(--soft)}
.dhelp a{color:var(--acc1)}
.dagents{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.dagents li{position:relative;display:flex;align-items:center;gap:10px;padding:7px 0;font-size:14px;color:var(--soft)}
.dagents li::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c);flex:0 0 9px}
.dagents b{color:var(--text);font-weight:600}

/* баланс */
.dbill{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.dbal{display:flex;flex-direction:column;gap:6px;background:radial-gradient(120% 120% at 0 0,rgba(151,252,215,.12),transparent 60%),var(--s1);border-color:rgba(151,252,215,.22)}
.dbal-v{font-size:52px;font-weight:600;letter-spacing:-.04em;line-height:1.05;color:var(--text)}
.dprices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:auto;padding-top:18px}
.dprice{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.dprice b{font-size:13px;color:var(--text)}
.dprice span{font-size:18px;font-weight:600;color:var(--text)}
.dprice small{font-size:11.5px;color:var(--dim);line-height:1.35}
.dprice em{font-style:normal;font-size:11.5px;color:var(--acc1);margin-top:4px}
.dtop .btn{margin-top:4px}
.dtop .dsteps{margin-bottom:18px}
.dwarn{margin:16px 0 0;padding:10px 12px;border-radius:12px;font-size:12.5px;line-height:1.45;color:#ffd58a;background:rgba(255,200,87,.07);border:1px solid rgba(255,200,87,.22)}
.dpay{border:1px solid var(--line);border-radius:18px;background:var(--s1);overflow:hidden}
.dpay .dnone{border:0}
.dpay-row{padding:14px 18px;border-bottom:1px solid var(--line)}
.dpay-row:last-child{border-bottom:0}
.dpay-main{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}
.dpay-main b{font-size:16px;color:var(--up)}
.dpay-main>span.mono{font-size:13.5px;color:var(--soft)}
.dpay-date{margin-left:auto;font-size:13px;color:var(--dim)}
.dpay-sig{display:block;margin-top:6px;font-size:11.5px;color:var(--dim);text-decoration:none;word-break:break-all}
.dpay-sig:hover{color:var(--acc1)}
.dpill{padding:3px 9px;border-radius:99px;font-size:11.5px;font-weight:600}
.dpill-ok{color:var(--up);background:rgba(89,212,153,.1)}
.dpill-wait{color:#ffcf7a;background:rgba(255,200,87,.1)}
.dpill-bad{color:#ff8a8a;background:rgba(255,107,107,.1)}

/* аккаунт */
.dacc{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;align-items:start}
.daddr{margin:10px 0 14px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:14.5px;color:var(--text);word-break:break-all}
.dacc-btns{display:flex;flex-wrap:wrap;gap:8px}
.dacc-btns .btn{box-shadow:none}
.ddanger:hover{border-color:var(--dn);color:#ff8a8a}

/* окно просмотра */
.modal.dwatch{max-width:min(980px,calc(100vw - 32px))}
.dwatch h3{margin:0;padding-right:44px}
.dw-stage{margin-top:16px;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:16/9}
.dw-stage.v{aspect-ratio:auto;height:min(68vh,calc(100dvh - 240px));display:flex;justify-content:center}
.dw-stage video{width:100%;height:100%;object-fit:contain}
.dw-btns{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}
.dw-fmts,.dw-dl{display:flex;flex-wrap:wrap;gap:8px}
.dw-fmts .su-fmt[aria-pressed="true"]{border-color:var(--acc1);color:var(--text);background:rgba(151,252,215,.08)}
.dwatch .btn{margin-top:0}

@media (max-width:1100px){
  .dshell{grid-template-columns:196px minmax(0,1fr);gap:28px}
  .dnew{grid-template-columns:1fr}
  .dhelp{position:static}
  .dbill{grid-template-columns:1fr}
}
/* телефон и узкий планшет: нижняя панель вкладок вместо боковой */
@media (max-width:860px){
  .dshell{display:block;padding:84px 16px 108px}
  .dside{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:45;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:rgba(5,6,7,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line)}
  .dnav{flex-direction:row;justify-content:space-around;gap:0}
  .dnav-a{flex:1 1 0;flex-direction:column;gap:4px;padding:7px 2px;font-size:10.5px;text-align:center;border-radius:10px}
  .dnav-a svg{width:22px;height:22px}
  .dnav-a.on{background:transparent;color:var(--acc1)}
  .dnav-a.on::before{left:30%;right:30%;top:-7px;bottom:auto;width:auto;height:2px}
  .dnav-n{position:absolute;top:2px;left:calc(50% + 6px);margin:0;min-width:17px;height:17px;font-size:10px;padding:0 4px}
  .dnav-new svg{stroke:var(--on-acc);background:var(--acc1);border-radius:50%;padding:3px;box-sizing:content-box;width:20px;height:20px;margin-top:-2px}
  .dnav-new.on{color:var(--acc1)}
  .dside-bal{display:none}
  .dhead{margin-bottom:18px}
  .dh{font-size:28px}
  .dhead .btn{padding:10px 14px;font-size:14px}
  .dstats{grid-template-columns:1fr 1fr;gap:10px}
  .dstat{min-height:0;padding:16px}
  .dstat-bal{grid-column:1/-1}
  .dstat-v{font-size:28px}
  .dstat-dots i{width:20px}
  .dempty{grid-template-columns:1fr;padding:22px}
  .dempty-art{display:none}
  .dempty .btn{width:100%}
  .dacc{grid-template-columns:1fr}
  .dcard{padding:18px;border-radius:18px}
  .dbal-v{font-size:44px}
  .dprices{grid-template-columns:1fr}
  .dprice{display:grid;grid-template-columns:1fr auto;column-gap:10px}
  .dprice span{grid-row:span 2;align-self:center}
  .dform-go{flex-direction:column;align-items:stretch}
  .dform-btn{width:100%;min-width:0}
  .dpay-row{padding:12px 14px}
  .dtop .btn{width:100%}
}
@media (max-width:480px){
  .dgrid{grid-template-columns:1fr}
  .dstat-bal .dstat-v{font-size:34px}
}
@media (prefers-reduced-motion:reduce){.dv-ph,.dv-st-running i{animation:none}}
.dof{font-size:16px;color:var(--dim);letter-spacing:0;font-weight:500}

@media (max-width:860px){
  .dnav-a.dnav-new svg,.dnav-a.dnav-new.on svg{stroke:var(--on-acc)}
  .dhead .btn{display:none}
  .dv-media:not(:has(img)){aspect-ratio:auto;height:64px}
  .dv-media:not(:has(img)) .dv-ph span{font-size:26px}
  .dform .su-mode{display:grid;grid-template-columns:1fr auto;column-gap:12px;padding:12px 14px}
  .dform .su-mode .su-price{grid-column:2;grid-row:1;font-size:18px}
  .dform .su-mode small{grid-column:1/-1}
}

/* ---------- мобильная шапка (vidgen/030): бургер ≤ 980 px, на ≤ 480 px — только знак, Connect и бургер ---------- */
.nav-burger{display:none;align-items:center;justify-content:center;box-sizing:border-box;width:42px;height:42px;flex:0 0 42px;padding:0;border-radius:999px;border:1px solid var(--line2);background:transparent;color:var(--text);cursor:pointer;transition:border-color .15s,color .15s}
.nav-burger svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.nav-burger:hover,.nav-burger[aria-expanded="true"]{border-color:var(--acc1);color:var(--acc1)}
.nav-drawer{position:absolute;top:100%;left:0;right:0;background:rgba(5,6,7,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px 16px 18px;max-height:calc(100vh - 66px);max-height:calc(100dvh - 66px);overflow-y:auto;box-sizing:border-box}
.nav-drawer[hidden]{display:none}
.nd-links{display:flex;flex-direction:column}
.nd-links a{display:flex;align-items:center;min-height:48px;font-size:17px;font-weight:600;color:var(--text);text-decoration:none;border-bottom:1px solid var(--line)}
.nd-links a:hover{color:var(--acc1)}
.nd-acts{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.nd-btn{display:flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;min-height:46px;padding:0 16px;border-radius:999px;border:1px solid var(--line2);background:transparent;color:var(--text);font:600 15px/1.2 Inter,system-ui,sans-serif;text-decoration:none;cursor:pointer;text-align:center}
.nd-btn.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:14px}
.nd-btn:not(:disabled):not(.nd-off):hover{border-color:var(--acc1);color:var(--acc1)}
.nd-btn[hidden]{display:none}
.nd-btn:disabled{opacity:.45;border-style:dashed;cursor:not-allowed}
.nd-soc{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nd-off{opacity:.5;cursor:default;font-size:12.5px;padding:0 8px;white-space:nowrap;gap:6px}
.nd-off svg{width:15px;height:15px;flex:0 0 15px;fill:currentColor}
.nd-x{font-size:12.5px;padding:0 8px;white-space:nowrap;gap:6px;text-decoration:none}
.nd-x svg{width:15px;height:15px;flex:0 0 15px;fill:currentColor}
html.is-app .nd-links,html.is-admin .nd-links{display:none}
@media (min-width:981px){.nav-drawer{display:none !important}}
@media (max-width:980px){.nav-burger{display:inline-flex}.navcta .soc{display:none}}
/* 481–640: справа Connect (или аккаунт + Disconnect) и бургер; dApp, $URL2REEL, My videos, Admin — в панели */
@media (max-width:640px){.navcta > :not(.nav-connect):not(.nav-burger):not(.nav-disconnect):not(.nav-keep){display:none !important}}
@media (max-width:480px){
  .nav .logo .live-pill,.nav .logo .logo-word{display:none}
  .nav .logo .mark{width:32px;height:32px;flex-basis:32px}
  .navcta > :not(.nav-connect):not(.nav-burger):not(.nav-keep){display:none !important}
  .nav .nav-connect{min-height:42px;padding:0 16px;max-width:calc(100vw - 32px - 32px - 42px - 24px);overflow:hidden;text-overflow:ellipsis}
  .nav .logo{min-height:42px}
}
