:root{
  --bg:#f6f6fa;--bg2:#ffffff;--card:#ffffff;--card2:#f1f1f7;--line:#e5e5ee;--line2:#d4d4e2;
  --tx:#13131b;--tx2:#4b4b5f;--mut:#8a8aa0;
  --soft:rgba(20,20,45,.045);--soft2:rgba(20,20,45,.085);--glass:rgba(255,255,255,.8);--seg-on:#fff;
  --okt:#15803d;--badt:#dc2626;--ok:#22c55e;--bad:#ef4444;
  --a1:#8b5cf6;--a2:#ec4899;--a3:#f59e0b;
  --grad:linear-gradient(120deg,var(--a1) 0%,var(--a2) 55%,var(--a3) 100%);
  --link:color-mix(in srgb,var(--a1) 80%,var(--tx));
  --glow1:color-mix(in srgb,var(--a1) 14%,transparent);--glow2:color-mix(in srgb,var(--a2) 10%,transparent);
  --r:16px;--r2:22px;--sh:0 12px 36px -16px rgba(30,30,70,.22);
  --f:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--fh:'Space Grotesk',var(--f);
  color-scheme:light;
}
[data-theme=dark]{
  --bg:#08080d;--bg2:#0f0f17;--card:#14141f;--card2:#1b1b29;--line:#262638;--line2:#33334a;
  --tx:#f4f4fa;--tx2:#b4b4c8;--mut:#7c7c95;
  --soft:rgba(255,255,255,.05);--soft2:rgba(255,255,255,.1);--glass:rgba(8,8,13,.74);--seg-on:var(--card2);
  --okt:#86efac;--badt:#fca5a5;
  --link:color-mix(in srgb,var(--a1) 45%,#fff);
  --glow1:color-mix(in srgb,var(--a1) 20%,transparent);--glow2:color-mix(in srgb,var(--a2) 14%,transparent);
  --sh:0 10px 40px -12px rgba(0,0,0,.6);
  color-scheme:dark;
}
[data-accent=ocean]{--a1:#2563eb;--a2:#0ea5e9;--a3:#14b8a6}
[data-accent=mint]{--a1:#059669;--a2:#10b981;--a3:#84cc16}
[data-accent=sunset]{--a1:#e11d48;--a2:#f97316;--a3:#eab308}
[data-accent=candy]{--a1:#d946ef;--a2:#6366f1;--a3:#06b6d4}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--bg);color:var(--tx);font:15px/1.6 var(--f);min-height:100vh;overflow-x:hidden}
body:before{content:"";position:fixed;inset:-20% -10% auto;height:70vh;background:radial-gradient(ellipse at 20% 0%,var(--glow1),transparent 55%),radial-gradient(ellipse at 85% 10%,var(--glow2),transparent 50%);pointer-events:none;z-index:-1}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
svg{width:1em;height:1em;flex:none}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
h1,h2,h3{font-family:var(--fh);letter-spacing:-.02em;line-height:1.15}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.muted{color:var(--mut)}.small{font-size:13px}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
[hidden]{display:none!important}
.sm-only{display:none}

/* header */
.top{position:sticky;top:0;z-index:50;background:var(--glass);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
.top-in{max-width:1400px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:24px}
.logo{display:flex;align-items:center;gap:10px;font:700 18px var(--fh);letter-spacing:-.03em;color:var(--tx)}
.logo-t{display:flex;align-items:baseline}
.logo-t b{margin-left:2px;padding:2px 7px 3px;border-radius:8px;background:var(--grad);color:#fff;font-size:14px;letter-spacing:0;line-height:1.2;transform:translateY(-1px)}
.logo-mark{width:34px;height:34px;flex:none;filter:drop-shadow(0 6px 14px color-mix(in srgb,var(--a2) 45%,transparent));transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.logo:hover .logo-mark{transform:rotate(-8deg) scale(1.06)}
.logo-mark svg{width:100%;height:100%}
/* theme + palette switcher */
.tsw{display:flex;align-items:center;gap:4px;padding:3px;border-radius:99px;background:var(--soft);border:1px solid var(--line);position:relative}
.tsw button{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--tx2);transition:.15s}
.tsw button:hover{color:var(--tx);background:var(--soft2)}
.tsw button svg{width:16px;height:16px}
.tsw .dot{width:16px;height:16px;border-radius:50%;background:var(--grad);box-shadow:0 0 0 2px var(--card)}
.pal{position:absolute;right:0;top:44px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px;box-shadow:var(--sh);display:none;min-width:200px;z-index:60}
.pal.open{display:block}
.pal h5{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin:2px 2px 8px}
.pal-list{display:grid;gap:4px}
.pal-list button{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:10px;font-size:14px;font-weight:500;color:var(--tx2);text-align:left}
.pal-list button:hover{background:var(--soft);color:var(--tx)}
.pal-list button.on{color:var(--tx);font-weight:600;background:var(--soft)}
.pal-list button i{width:22px;height:22px;border-radius:50%;flex:none;box-shadow:0 0 0 2px var(--card),0 0 0 3px var(--line2)}
.pal-list button.on i{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--tx)}
.pal-list button svg{margin-left:auto;width:16px;height:16px;opacity:0}
.pal-list button.on svg{opacity:1}
.tt{position:relative;overflow:hidden}
.tt svg{position:absolute;transition:transform .45s cubic-bezier(.4,1.4,.5,1),opacity .3s}
.tt .sun{transform:translateY(24px) rotate(-90deg);opacity:0}
[data-theme=dark] .tt .sun{transform:none;opacity:1}
[data-theme=dark] .tt .moon{transform:translateY(-24px) rotate(90deg);opacity:0}
.mnav-theme{display:none}

.nav{display:flex;gap:4px}
.nav a{padding:7px 13px;border-radius:10px;color:var(--tx2);font-weight:500;font-size:14px;transition:.15s}
.nav a:hover,.nav a.on{color:var(--tx);background:var(--soft)}
.top-r{margin-left:auto;display:flex;align-items:center;gap:10px}
.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;background:var(--card);border:1px solid var(--line);font-weight:600;font-size:14px}
.pill svg{color:var(--a3)}.pill small{color:var(--mut);font-weight:500}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--grad);font-weight:700;color:#fff;display:grid;place-items:center}
.menu{position:relative}
.menu-pop{position:absolute;right:0;top:44px;min-width:220px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:var(--sh);display:none;z-index:60}
.menu.open .menu-pop{display:block}
.menu-pop a{display:block;padding:9px 12px;border-radius:9px;color:var(--tx2);font-size:14px}
.menu-pop a:hover{background:var(--card2);color:var(--tx)}
.menu-h{padding:10px 12px;border-bottom:1px solid var(--line);margin-bottom:4px}
.menu-h b{display:block}.menu-h small{color:var(--mut);font-size:12px}
.burger{display:none;width:36px;height:36px;border-radius:10px;background:var(--card);border:1px solid var(--line);flex-direction:column;gap:5px;align-items:center;justify-content:center}
.burger span{width:16px;height:2px;background:var(--tx);border-radius:2px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:12px;background:var(--grad);color:#fff;font-weight:700;font-size:15px;border:0;transition:transform .12s,box-shadow .2s,opacity .2s;box-shadow:0 8px 24px -10px color-mix(in srgb,var(--a2) 70%,transparent);white-space:nowrap}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 30px -10px color-mix(in srgb,var(--a2) 85%,transparent)}
.btn:active{transform:translateY(0)}
.btn[disabled]{opacity:.55;pointer-events:none}
.btn.sm{padding:8px 14px;font-size:14px;border-radius:10px}
.btn.lg{padding:16px 28px;font-size:17px;border-radius:14px}
.btn.wide{width:100%}
.btn.ghost{background:var(--card);color:var(--tx);box-shadow:0 1px 2px rgba(0,0,0,.05);border:1px solid var(--line2)}
.btn.ghost:hover{background:var(--card2);border-color:color-mix(in srgb,var(--a1) 45%,var(--line2))}
.btn.google{background:#fff;color:#1f1f1f;box-shadow:none;border:1px solid var(--line2)}
.btn.danger{background:rgba(239,68,68,.12);color:var(--badt);box-shadow:none;border:1px solid rgba(239,68,68,.3)}
.ibtn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;background:var(--soft);border:1px solid var(--line);color:var(--tx2);font-size:13px;font-weight:600;transition:.15s}
.ibtn:hover{color:var(--tx);background:var(--soft2)}
.ibtn.on{color:#fff;border-color:transparent;background:var(--grad)}
.ibtn svg{width:15px;height:15px}

/* hero */
.hero{padding:56px 0 24px;text-align:center}
.hero h1{font-size:clamp(34px,6vw,64px);font-weight:700;max-width:900px;margin:0 auto}
.hero p.lead{font-size:clamp(16px,2vw,19px);color:var(--tx2);max-width:640px;margin:16px auto 0}
.badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:22px}
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;background:var(--soft);border:1px solid var(--line);font-size:13px;color:var(--tx2)}
.badge svg{color:var(--ok)}
.eyebrow{display:inline-flex;gap:8px;align-items:center;padding:5px 12px;border-radius:99px;border:1px solid color-mix(in srgb,var(--a1) 40%,transparent);background:color-mix(in srgb,var(--a1) 10%,transparent);font-size:13px;color:var(--link);margin-bottom:18px;font-weight:600}

/* generator */
.gen{max-width:980px;margin:30px auto 0;background:linear-gradient(180deg,var(--card),var(--card2));border:1px solid var(--line2);border-radius:var(--r2);padding:18px;box-shadow:var(--sh),0 0 0 1px color-mix(in srgb,var(--a1) 8%,transparent) inset;text-align:left;position:relative}
.gen:before{content:"";position:absolute;inset:-1px;border-radius:var(--r2);padding:1px;background:var(--grad);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.35;pointer-events:none}
.gen-box{position:relative}
.gen textarea{display:block;width:100%;min-height:96px;max-height:340px;resize:none;overflow-y:auto;background:transparent;border:0;outline:0;font-size:18px;line-height:1.5;padding:6px 4px;color:var(--tx)}
.gen textarea::placeholder{color:var(--mut)}
.gen-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}
.gen-tools .cnt{margin-left:auto;font-size:12px;color:var(--mut)}
.img-chip{display:flex;align-items:center;gap:8px;padding:6px;border-radius:12px;background:var(--card2);border:1px solid var(--line);margin:4px 0 10px;width:max-content}
.img-chip img{width:44px;height:44px;border-radius:8px;object-fit:cover}
.img-chip button{color:var(--mut);padding:4px}
.gen-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;min-width:0;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.gen-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);font-weight:700;margin-right:2px}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:0 28px 2px 0;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);min-width:0;flex:1}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:99px;background:var(--soft);border:1px solid var(--line);font-size:13px;color:var(--tx2);font-weight:500;transition:.12s}
.chip:hover{color:var(--tx);border-color:var(--line2)}
.chip.on{background:color-mix(in srgb,var(--a1) 14%,transparent);border-color:color-mix(in srgb,var(--a1) 55%,transparent);color:var(--tx);font-weight:600}
.chip svg{width:14px;height:14px}
.chip .ar{font-size:11px;color:var(--mut);font-weight:600}
.chip.on .ar{color:var(--link)}
.seg{display:inline-flex;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:3px}
.seg button{padding:6px 12px;border-radius:9px;font-size:13px;font-weight:600;color:var(--tx2)}
.grp{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0;max-width:100%}
.seg button .pd{font-style:normal;font-size:9px;font-weight:800;margin-left:2px;padding:0 3px;border-radius:4px;background:var(--grad);color:#fff;vertical-align:super}
.seg{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%;min-width:0}.seg::-webkit-scrollbar{display:none}.seg button{flex:none;white-space:nowrap}
.seg button.on{background:var(--seg-on);color:var(--tx);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.gen-go{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.gen-go .btn{min-width:230px}
.gen-go .hint{font-size:13px;color:var(--mut)}
.adv{margin-top:10px}
.adv summary{cursor:pointer;color:var(--mut);font-size:13px;font-weight:600;list-style:none}
.adv summary::-webkit-details-marker{display:none}
.adv-g{display:grid;grid-template-columns:1fr 160px;gap:10px;margin-top:10px}
.field{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:11px 13px;outline:0;transition:border .15s}
.field:focus{border-color:color-mix(in srgb,var(--a1) 70%,transparent)}
label.tog{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--tx2);cursor:pointer}
label.tog input{accent-color:var(--a1);width:16px;height:16px}

/* results */
.results{max-width:980px;margin:18px auto 0;display:grid;gap:14px;text-align:left}
.res{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:22px;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:14px;animation:pop .35s ease}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}
.res-media{position:relative;border-radius:14px;overflow:hidden;background:#0b0b10;display:grid;place-items:center;max-height:520px}
.res-media video{width:100%;max-height:520px;object-fit:contain;background:#0b0b10}
.res-info{display:flex;flex-direction:column;gap:10px;min-width:0}
.res-prompt{color:var(--tx);font-size:16px;font-weight:500;line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.res-actions{display:flex;flex-wrap:wrap;gap:8px}
.res-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--mut)}
.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:99px;width:max-content}
.status.pub{background:rgba(34,197,94,.12);color:var(--okt)}.status.priv{background:var(--soft);color:var(--tx2)}
.render{position:relative;width:100%;aspect-ratio:9/16;max-height:520px;background:linear-gradient(135deg,#1a1030,#2a0f22,#1f1508);display:grid;place-items:center;overflow:hidden}
.render:before{content:"";position:absolute;inset:-50%;background:conic-gradient(from 0deg,transparent,color-mix(in srgb,var(--a1) 35%,transparent),transparent 30%,color-mix(in srgb,var(--a2) 30%,transparent),transparent 60%,color-mix(in srgb,var(--a3) 25%,transparent),transparent);animation:spin 4s linear infinite}
.render:after{content:"";position:absolute;inset:2px;border-radius:12px;background:rgba(10,10,18,.84)}
@keyframes spin{to{transform:rotate(1turn)}}
.render-in{position:relative;z-index:1;text-align:center;padding:20px;color:#fff}
.render-in b{display:block;font:700 34px var(--fh)}
.render-in small{color:#c9c9d8}
.bar{height:6px;border-radius:9px;background:var(--soft);overflow:hidden;margin-top:14px;width:200px}
.bar i{display:block;height:100%;width:0;background:var(--grad);border-radius:9px;transition:width .8s linear}
.fail{padding:30px;text-align:center;color:var(--badt)}

/* sections */
.sec{padding-top:64px;padding-bottom:64px}
.sec-h{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px;flex-wrap:wrap}
.sec-h h2{font-size:clamp(26px,3.6vw,40px)}
.sec-h p{color:var(--tx2);max-width:560px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.step i{font:700 13px var(--fh);color:#fff;background:var(--grad);width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-style:normal;margin-bottom:14px}
.step h3{font-size:19px;margin-bottom:6px}
.step p{color:var(--tx2);font-size:14px}
.fmt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.fmt{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;transition:.15s}
.fmt:hover{border-color:var(--line2);transform:translateY(-2px)}
.fmt .shape{border:2px solid var(--tx2);border-radius:5px;background:color-mix(in srgb,var(--a1) 15%,transparent)}
.fmt b{font-size:14px}.fmt small{color:var(--mut);font-size:12px}
.fmt svg{width:18px;height:18px;color:var(--tx2)}

/* cards grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.grid.masonry{grid-auto-flow:dense}
.card{position:relative;border-radius:14px;overflow:hidden;background:var(--card);border:1px solid var(--line);display:block;aspect-ratio:9/16}
.card.a169{grid-column:span 2;aspect-ratio:16/9}
.card.a11{aspect-ratio:1}.card.a45{aspect-ratio:4/5}.card.a23{aspect-ratio:2/3}
.card img,.card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card video{opacity:0;transition:opacity .2s}
.card.playing video{opacity:1}
.card-ov{position:absolute;inset:auto 0 0;padding:34px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.85));font-size:12.5px;line-height:1.35}
.card-ov p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#eee}
.card-ov .m{display:flex;gap:10px;color:#bbb;margin-top:6px;font-size:12px;align-items:center}
.card-ov .m svg{width:12px;height:12px}
.card .tag{position:absolute;top:8px;left:8px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px)}
.card .tag.q{background:color-mix(in srgb,var(--a3) 85%,transparent);color:#111}

/* pricing */
.price-card{max-width:760px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pc{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:26px}
.pc.hl{border-color:transparent;background:linear-gradient(var(--card),var(--card)) padding-box,var(--grad) border-box;border:1.5px solid transparent}
.pc .big{font:700 52px var(--fh);letter-spacing:-.03em}
.pc ul{list-style:none;margin:16px 0 22px;display:grid;gap:9px}
.pc li{display:flex;gap:9px;color:var(--tx2);font-size:14px}
.pc li svg{color:var(--ok);margin-top:4px}
.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pack{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);padding:18px;text-align:center;transition:.15s;cursor:pointer}
.pack:hover,.pack.on{border-color:var(--a1);background:color-mix(in srgb,var(--a1) 8%,transparent)}
.pack b{display:block;font:700 30px var(--fh)}
.pack small{color:var(--mut)}

/* faq */
.faq{max-width:820px;margin:0 auto;display:grid;gap:10px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary:after{content:"+";color:var(--mut);font-size:20px;line-height:1}
.faq details[open] summary:after{content:"–"}
.faq details p{color:var(--tx2);margin-top:10px;font-size:14.5px}

/* content pages */
.page{max-width:860px;margin:0 auto;padding:40px 20px 20px}
.page h1{font-size:clamp(30px,4.6vw,48px);margin-bottom:16px}
.crumbs{font-size:13px;color:var(--mut);margin-bottom:18px}
.crumbs a:hover{color:var(--tx)}
.prose{color:var(--tx2);font-size:16px;line-height:1.75}
.prose h2{color:var(--tx);font-size:26px;margin:38px 0 12px}
.prose h3{color:var(--tx);font-size:19px;margin:24px 0 8px}
.prose p{margin:0 0 14px}
.prose a:not(.btn){color:var(--link);text-decoration:underline;text-underline-offset:3px}
.prose ul,.prose ol{margin:0 0 16px 22px}.prose li{margin:5px 0}
.prose strong{color:var(--tx)}
.prose table{width:100%;border-collapse:collapse;margin:14px 0 22px;font-size:14px;display:block;overflow-x:auto}
.prose th,.prose td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{color:var(--tx);background:var(--card);font-weight:600}
.prose tr td:nth-child(2){color:var(--tx)}
.prose code{background:var(--card2);padding:2px 6px;border-radius:6px;font-size:.9em}
.prose blockquote{border-left:3px solid var(--a1);padding:4px 16px;margin:0 0 16px;color:var(--tx)}
.cta-box{margin:28px 0;padding:24px;border-radius:var(--r2);background:linear-gradient(135deg,color-mix(in srgb,var(--a1) 18%,transparent),color-mix(in srgb,var(--a2) 12%,transparent));border:1px solid color-mix(in srgb,var(--a1) 35%,transparent)}
.cta-box h3{font-size:22px;margin-bottom:6px}
.hub-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.hub-list a{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;font-weight:600;transition:.15s}
.hub-list a:hover{border-color:var(--line2);transform:translateY(-2px)}
.hub-list small{display:block;color:var(--mut);font-weight:400;font-size:12px;margin-top:4px}

/* video page */
.vp{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:28px;padding:30px 20px;max-width:1240px;margin:0 auto}
.vp-media{background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--a1) 14%,var(--card2)),var(--card2));border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;display:grid;place-items:center;min-height:60vh;padding:18px}
.vp-media video{max-height:76vh;max-width:100%;width:auto;border-radius:14px;box-shadow:0 20px 50px -20px rgba(0,0,0,.45);background:#000}
.vp-side{display:flex;flex-direction:column;gap:14px}
.vp-side h1{font-size:22px;line-height:1.35;font-family:var(--f);font-weight:600;letter-spacing:0}
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.box h4{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);margin-bottom:10px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13px}
.kv span{color:var(--mut)}
.exp{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.exp button{padding:9px 6px;border-radius:10px;background:var(--bg2);border:1px solid var(--line);font-size:12px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--tx2)}
.exp button:hover{border-color:var(--a1);color:var(--tx)}
.exp button svg{width:18px;height:18px}
.exp button small{font-size:10.5px;color:var(--mut)}
.author{display:flex;align-items:center;gap:10px}
.author .avatar{width:38px;height:38px;display:grid;place-items:center}

/* TikTok feed */
body.is-feed{overflow:hidden}
.feed{height:calc(100dvh - 55px);overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none}
.feed::-webkit-scrollbar{display:none}
.fi{height:calc(100dvh - 55px);scroll-snap-align:start;scroll-snap-stop:always;display:grid;place-items:center;position:relative;padding-top:52px}
.fi-wrap{position:relative;height:calc(100dvh - 55px - 52px - 22px);display:flex;align-items:flex-end;gap:16px}
.fi-stage{position:relative;height:100%;max-width:100%;aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 24px 60px -24px rgba(0,0,0,.5)}
.fi-stage.w{aspect-ratio:16/9;height:auto;width:min(78vw,960px)}
.fi-wrap:has(.fi-stage.w){align-items:center}
.fi-stage.s{aspect-ratio:1}
.fi-stage video{width:100%;height:100%;object-fit:cover}
.fi-stage.w video,.fi-stage.s video{object-fit:contain}
.fi-cap{position:absolute;left:0;right:0;bottom:0;padding:70px 16px 16px;background:linear-gradient(transparent,rgba(0,0,0,.85));font-size:14px;color:#fff}
.fi-cap a.h{font-weight:700;color:#fff}
.fi-cap .t{color:rgba(255,255,255,.7)}
.fi-cap p{margin-top:6px;color:#f0f0f0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fi-cap .rx{display:inline-flex;gap:6px;align-items:center;margin-top:10px;padding:8px 14px;border-radius:99px;background:#fff;color:#111;font-weight:700;font-size:13px}
.fi-cap .rx svg{width:14px;height:14px}
.fi-act{display:flex;flex-direction:column;gap:14px;align-items:center;padding-bottom:6px}
.fi-act button,.fi-act a{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--tx2)}
.fi-act .ic{width:48px;height:48px;border-radius:50%;background:var(--card);border:1px solid var(--line);box-shadow:0 4px 14px -6px rgba(0,0,0,.25);display:grid;place-items:center;color:var(--tx);transition:transform .15s,background .15s}
.fi-act button:hover .ic,.fi-act a:hover .ic{background:var(--card2)}
.fi-act .ic svg{width:21px;height:21px}
.fi-act button:active .ic{transform:scale(.88)}
.fi-act .liked .ic{background:var(--a2);border-color:transparent;color:#fff}
.fi-act .liked{color:var(--a2)}
.fi-tabs{position:fixed;top:68px;left:50%;transform:translateX(-50%);z-index:20;display:flex;gap:4px;background:var(--glass);border:1px solid var(--line);box-shadow:var(--sh);backdrop-filter:blur(12px);padding:4px;border-radius:99px}
.fi-tabs button{padding:6px 14px;border-radius:99px;font-size:14px;font-weight:600;color:var(--tx2);white-space:nowrap}
.fi-tabs button.on{background:var(--tx);color:var(--bg)}
.fi-mute{position:fixed;top:68px;right:16px;z-index:20;width:42px;height:42px;border-radius:50%;background:var(--card);border:1px solid var(--line);color:var(--tx);box-shadow:var(--sh);display:grid;place-items:center}
.fi-mute svg{width:18px;height:18px}
.fi-big-heart{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.fi-big-heart svg{width:110px;height:110px;color:#ec4899;animation:heart .7s ease forwards;filter:drop-shadow(0 6px 20px color-mix(in srgb,var(--a2) 60%,transparent))}
@keyframes heart{0%{transform:scale(.3);opacity:0}30%{transform:scale(1.1);opacity:1}100%{transform:scale(1);opacity:0}}
.fi-side{position:fixed;left:24px;bottom:28px;z-index:20;max-width:260px}
.fi-empty{height:100%;display:grid;place-items:center;text-align:center;color:var(--tx2)}

/* studio / billing / admin tables */
.dash{max-width:1240px;margin:0 auto;padding:30px 20px}
.dash h1{font-size:32px;margin-bottom:6px}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:18px 0}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.stat b{display:block;font:700 28px var(--fh)}.stat small{color:var(--mut)}
table.t{width:100%;border-collapse:collapse;font-size:13.5px}
table.t th,table.t td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
table.t th{color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.tw{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.pos{color:var(--okt)}.neg{color:var(--badt)}
.codeblk{background:#05050a;border:1px solid var(--line);border-radius:12px;padding:14px 16px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto;color:#d6d6e6;white-space:pre}
.keybox{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.testmode{display:inline-flex;gap:6px;align-items:center;font-size:12px;font-weight:800;letter-spacing:.06em;color:#111;background:var(--a3);padding:4px 10px;border-radius:99px}

/* auth + modal */
.auth{max-width:420px;margin:50px auto;padding:0 20px}
.auth-card,.modal-card{background:var(--card);border:1px solid var(--line2);border-radius:var(--r2);padding:28px;box-shadow:var(--sh)}
.auth-card h1,.modal-card h3{font-size:26px;margin-bottom:6px}
form[data-auth-form],.auth form{display:grid;gap:10px;margin-top:16px}
form input{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;outline:0}
form input:focus{border-color:color-mix(in srgb,var(--a1) 70%,transparent)}
.err{color:var(--badt);font-size:13px;min-height:18px}
.or{display:flex;align-items:center;gap:10px;color:var(--mut);font-size:12px;margin:14px 0 0}
.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line)}
.btn.google{margin-top:16px}
.modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.65);backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px}
.modal-card{width:100%;max-width:420px;position:relative;animation:pop .25s ease}
.modal .x{position:absolute;top:14px;right:14px;color:var(--mut);width:30px;height:30px;display:grid;place-items:center}
.modal .x svg{width:18px;height:18px}
.sheet{max-width:520px}
.sheet .opts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}

/* toasts */
.toasts{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:200;display:grid;gap:8px;width:max-content;max-width:92vw}
.toast{background:var(--card);color:var(--tx);border:1px solid var(--line2);padding:11px 16px;border-radius:12px;font-size:14px;box-shadow:var(--sh);animation:pop .25s ease;display:flex;gap:8px;align-items:center}
.toast.err{border-color:rgba(239,68,68,.5)}
.toast.ok svg{color:var(--ok)}

/* footer */
.foot{border-top:1px solid var(--line);margin-top:60px;padding:44px 0 26px;background:var(--bg2)}
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:24px}
.foot h4{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin-bottom:10px}
.foot a:not(.logo){display:block;color:var(--tx2);font-size:14px;padding:3px 0}
.foot a:hover{color:var(--tx)}
.foot p{margin-top:12px;font-size:14px}
.foot-b{margin-top:30px;font-size:13px}

.embed{margin:0;background:#000;height:100vh;display:grid;place-items:center;overflow:hidden}
.embed video{width:100%;height:100%;object-fit:contain}
.embed a.brand{position:fixed;left:10px;bottom:10px;background:rgba(0,0,0,.6);padding:6px 10px;border-radius:99px;font:600 12px var(--f);color:#fff}

@media (max-width:980px){
  .vp{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}
  .res{grid-template-columns:1fr}
  .price-card{grid-template-columns:1fr}
  .fi-side{display:none}
}
@media (max-width:760px){
  .nav{display:none;position:fixed;top:55px;left:0;right:0;flex-direction:column;background:var(--bg2);padding:10px;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .burger{display:flex}
  .top-r .btn.ghost{display:none}
  .hero{padding-top:34px}
  .gen{padding:14px;border-radius:18px}
  .gen textarea{font-size:16px}
  .gen-go .btn{width:100%}
  .adv-g{grid-template-columns:1fr}
  .grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .card.a169{grid-column:span 2}
  .fi{height:calc(100dvh - 55px);padding-top:0}
  .fi-wrap{height:100%;width:100%}
  .fi-tabs{white-space:nowrap}
  .fi-stage{height:100%;border-radius:0;width:100%;aspect-ratio:auto;box-shadow:none}
  .fi-stage.w,.fi-stage.s{width:100%;height:100%}
  .fi-cap{right:70px;padding-bottom:22px}
  .fi-act{position:absolute;right:10px;bottom:22px;z-index:2;padding:0}
  .fi-act button,.fi-act a{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.8)}
  .fi-act .ic{background:rgba(15,15,20,.55);border:1px solid rgba(255,255,255,.18);color:#fff;backdrop-filter:blur(10px);box-shadow:0 4px 14px rgba(0,0,0,.35)}
  .fi-act .liked .ic{background:var(--a2)}
  .fi-tabs{top:64px;background:rgba(15,15,20,.5);border-color:rgba(255,255,255,.15)}
  .fi-tabs button{color:#ddd}.fi-tabs button.on{background:#fff;color:#111}
  .fi-mute{top:64px;background:rgba(15,15,20,.55);color:#fff;border-color:rgba(255,255,255,.18)}
  .top-r{gap:6px}
  .tsw{display:none}
  .sm-only{display:inline}.lg-only{display:none}
  .top-in{gap:10px;padding:10px 14px}
  .logo-t{min-width:0}
  .mnav-theme{display:flex;gap:8px;align-items:center;padding:12px 13px 4px;border-top:1px solid var(--line);margin-top:6px;flex-wrap:wrap}
  .mnav-theme button.sw{width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 2px var(--bg2),0 0 0 3px var(--line2)}
  .mnav-theme button.sw.on{box-shadow:0 0 0 2px var(--bg2),0 0 0 4px var(--tx)}
  .mnav-theme .ibtn{margin-left:auto}
  .pill small{display:none}
  .logo{font-size:16px}.logo-mark{width:30px;height:30px}
  .res{grid-template-columns:1fr}
  .vp-media{min-height:auto;padding:10px}
  .exp{grid-template-columns:repeat(3,1fr)}
  .sec{padding-top:40px;padding-bottom:40px}
  .stats{grid-template-columns:1fr 1fr;gap:10px}
  .stat{padding:14px}.stat b{font-size:24px}
  .packs{grid-template-columns:repeat(3,1fr)!important;gap:8px}
  .pack{padding:14px 6px}.pack b{font-size:22px}
  .nav.open{box-shadow:0 30px 60px -10px rgba(0,0,0,.35)}
  .nav.open:after{content:"";position:fixed;left:0;right:0;top:100%;height:100vh;background:rgba(0,0,0,.35);z-index:-1}
  .dash{padding:22px 16px}.dash h1{font-size:26px}
  .page{padding:28px 16px 12px}
}
