/* ============ NOVI · 首页其余区块 · 暗黑霓虹 ============ */
.page{position:relative;z-index:4;background:var(--void)}
.sec{position:relative;max-width:1180px;margin:0 auto;padding:clamp(64px,9vw,128px) clamp(18px,4vw,52px)}
.sec-head{max-width:760px;margin-bottom:clamp(34px,5vw,60px)}
.eyebrow{display:inline-flex;align-items:center;gap:11px;font-family:var(--font-m);font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--txt-faint)}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--c1);box-shadow:0 0 8px var(--glow1)}
.sec h2{font-family:var(--font-cn);font-weight:700;font-size:clamp(28px,4.4vw,52px);letter-spacing:-.03em;
  line-height:1.05;margin:16px 0 0;text-wrap:balance}
.sec h2 .grad{background:linear-gradient(100deg,var(--c1-hi),var(--c2) 60%,var(--c3));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.sec .sub{font-family:var(--font-cn);font-weight:300;font-size:clamp(15px,1.8vw,19px);color:var(--txt-dim);
  max-width:620px;margin:16px 0 0;line-height:1.65;text-wrap:pretty}

/* hairline divider between sections */
.divline{max-width:1180px;margin:0 auto;height:1px;
  background:linear-gradient(90deg,transparent,var(--line),transparent)}

/* reveal-on-scroll — base visible-safe (only translate, never hide opacity hard) */
.reveal{opacity:1;transform:translateY(22px);transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .7s}
.reveal.in{transform:none}
@media (prefers-reduced-motion: reduce){.reveal{transition:none;transform:none}}
.fcard,.tcard,.bcard,.pcard{will-change:transform}

/* ---------- live build ---------- */
.live-head{text-align:center;margin:0 auto clamp(34px,5vw,56px)}
.live-head .eyebrow{justify-content:center}.live-head .eyebrow::before{display:none}
.live-head h2,.live-head .sub{margin-left:auto;margin-right:auto}
.browser{position:relative;border:1px solid var(--line);border-radius:16px;overflow:hidden;
  background:rgba(10,14,24,.7);backdrop-filter:blur(14px);
  box-shadow:0 40px 110px -50px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.02) inset}
.browser .bar{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.02)}
.dots{display:flex;gap:7px}.dots i{width:11px;height:11px;border-radius:50%;font-style:normal}
.dots i:nth-child(1){background:#ff5f57}.dots i:nth-child(2){background:#febc2e}.dots i:nth-child(3){background:#28c840}
.urlbar{flex:1;max-width:340px;display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;
  border-radius:8px;border:1px solid var(--line);background:rgba(255,255,255,.03);
  font-family:var(--font-m);font-size:12px;color:var(--txt-dim)}
.urlbar svg{width:13px;height:13px;color:var(--txt-faint)}
.statusb{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-m);font-size:12px;
  padding:6px 11px;border-radius:999px;border:1px solid var(--line)}
.statusb i{width:7px;height:7px;border-radius:50%;font-style:normal}
.statusb.build{color:var(--c1)}.statusb.build i{background:var(--c1);box-shadow:0 0 8px var(--glow1);animation:pulse 1.6s infinite}
.statusb.ready{color:var(--c3)}.statusb.ready i{background:var(--c3);box-shadow:0 0 8px var(--c3)}
.browser .body{display:grid;grid-template-columns:300px 1fr;min-height:380px}
.chatcol{border-right:1px solid var(--line);display:flex;flex-direction:column;background:rgba(255,255,255,.012)}
.chatcol .ch-h{font-family:var(--font-m);font-size:11px;letter-spacing:.14em;color:var(--txt-faint);padding:16px 18px 8px}
.msgs{flex:1;display:flex;flex-direction:column;gap:12px;padding:8px 18px;overflow:hidden}
.msg{font-family:var(--font-cn);font-size:13.5px;line-height:1.5;padding:11px 13px;border-radius:13px;max-width:90%}
.msg.user{align-self:flex-end;color:#04060B;border-bottom-right-radius:3px;
  background:linear-gradient(120deg,var(--c1-hi),var(--c2))}
.msg.ai{align-self:flex-start;color:var(--txt);background:rgba(255,255,255,.05);border:1px solid var(--line);border-bottom-left-radius:3px}
.msg.think{align-self:flex-start;border-left:1.5px solid var(--line);padding-left:12px;border-radius:0;
  font-family:var(--font-m);font-size:11px;color:var(--txt-faint);max-width:100%}
.typing{display:inline-flex;gap:4px;align-items:center}
.typing i{width:5px;height:5px;border-radius:50%;background:var(--c1);font-style:normal;animation:td 1.2s infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
@keyframes td{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.ch-input{margin:8px 14px 14px;display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:11px;
  border:1px solid var(--line);background:rgba(255,255,255,.03);font-family:var(--font-cn);font-size:13px;color:var(--txt-faint)}
.ch-input svg{width:15px;height:15px;margin-left:auto;color:var(--c1)}
.prevcol{display:flex;flex-direction:column;position:relative;background:
  linear-gradient(rgba(120,160,220,.05) 1px,transparent 1px),
  linear-gradient(90deg,rgba(120,160,220,.05) 1px,transparent 1px);background-size:26px 26px}
.tabs{display:flex;gap:2px;padding:10px 16px 0;border-bottom:1px solid var(--line)}
.tab{font-family:var(--font-cn);font-size:13px;color:var(--txt-faint);padding:9px 14px;border-bottom:1.5px solid transparent;cursor:pointer}
.tab.on{color:var(--txt);border-bottom-color:var(--c1)}
.preview-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:26px}
/* mini app being built (neon kanban) */
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:520px;
  opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s}
.kanban.show{opacity:1;transform:none}
.kcol{border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.02);padding:11px;min-height:170px}
.kcol h5{font-family:var(--font-cn);font-size:12px;color:var(--txt-dim);margin-bottom:9px;display:flex;align-items:center;gap:7px}
.kcol h5 i{width:7px;height:7px;border-radius:50%;font-style:normal}
.kcol:nth-child(1) h5 i{background:var(--c1)}.kcol:nth-child(2) h5 i{background:var(--c2)}.kcol:nth-child(3) h5 i{background:var(--c3)}
.kcard{height:34px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid var(--line-2);margin-bottom:8px}
.kcard.sm{height:24px;width:70%}

/* ---------- features grid ---------- */
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fcard{border:1px solid var(--line);border-radius:16px;padding:26px;background:rgba(255,255,255,.012);
  transition:border-color .3s,transform .3s,background .3s;position:relative;overflow:hidden}
.fcard:hover{border-color:rgba(255,166,64,.34);transform:translateY(-3px);background:rgba(255,166,64,.04)}
.ficon{width:46px;height:46px;border-radius:12px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  color:var(--c1);background:rgba(255,166,64,.07);box-shadow:0 0 22px -8px var(--glow1)}
.ficon svg{width:22px;height:22px}
.fcard h3{font-family:var(--font-cn);font-weight:700;font-size:18px;margin:18px 0 4px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.fcard h3 .en{font-family:var(--font-m);font-size:11px;color:var(--txt-faint);font-weight:400}
.fcard p{font-family:var(--font-cn);font-weight:300;font-size:14px;color:var(--txt-dim);line-height:1.65;margin-top:8px}

/* ---------- templates ---------- */
.tpl-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.tabs-pill{display:flex;gap:8px;flex-wrap:wrap}
.tpill{font-family:var(--font-cn);font-size:13px;color:var(--txt-dim);border:1px solid var(--line);border-radius:999px;
  padding:7px 14px;background:rgba(255,255,255,.02);cursor:pointer;transition:.2s}
.tpill.on{color:#04060B;background:linear-gradient(120deg,var(--c1-hi),var(--c2));border-color:transparent}
.tpill:not(.on):hover{color:var(--txt);border-color:var(--c1)}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.tcard{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.012);
  transition:.3s;cursor:pointer}
.tcard:hover{border-color:rgba(255,166,64,.34);transform:translateY(-3px)}
.tcover{position:relative;aspect-ratio:16/10;
  background-image:repeating-linear-gradient(135deg,rgba(120,160,220,.06) 0 10px,transparent 10px 20px);
  border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.tcover .lab{font-family:var(--font-m);font-size:11px;letter-spacing:.12em;color:var(--txt-faint)}
.tcover .cat{position:absolute;left:12px;top:12px;font-family:var(--font-m);font-size:11px;
  display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);
  background:rgba(8,12,20,.6);color:var(--txt-dim)}
.tcover .cat i{width:6px;height:6px;border-radius:50%;background:var(--c1);font-style:normal}
.tbody{padding:18px}
.tbody h4{font-family:var(--font-cn);font-weight:600;font-size:16px;display:flex;justify-content:space-between;gap:10px}
.tbody h4 span{font-family:var(--font-m);font-size:11px;color:var(--txt-faint);font-weight:400}
.tbody .meta{display:flex;justify-content:space-between;align-items:center;margin-top:14px;
  font-family:var(--font-m);font-size:11px;color:var(--txt-faint)}
.tbody .use{color:var(--c1)}

/* ---------- pricing ---------- */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
.pcard{border:1px solid var(--line);border-radius:18px;padding:30px;background:rgba(255,255,255,.012);position:relative}
.pcard.hot{border-color:rgba(255,166,64,.45);background:radial-gradient(420px 220px at 50% 0,rgba(255,166,64,.1),transparent 60%)}
.pcard .pop{position:absolute;top:-12px;left:50%;transform:translateX(-50%);font-family:var(--font-cn);font-size:12px;
  color:#04060B;padding:5px 13px;border-radius:999px;background:linear-gradient(120deg,var(--c1-hi),var(--c2));font-weight:600}
.pcard .nm{font-family:var(--font-cn);font-weight:700;font-size:20px;display:flex;align-items:baseline;gap:8px}
.pcard .nm span{font-family:var(--font-m);font-size:12px;color:var(--txt-faint);font-weight:400}
.pcard .price{display:flex;align-items:baseline;gap:6px;margin:18px 0 4px}
.pcard .price b{font-family:var(--font-d);font-weight:700;font-size:46px;letter-spacing:-.03em}
.pcard .price em{font-family:var(--font-cn);font-style:normal;font-size:14px;color:var(--txt-faint)}
.pcard .credits{font-family:var(--font-m);font-size:12px;color:var(--c1)}
.pbtn{display:block;width:100%;text-align:center;margin:22px 0;height:44px;line-height:44px;border-radius:11px;
  font-family:var(--font-cn);font-weight:600;font-size:14px;border:1px solid var(--line);color:var(--txt);
  background:rgba(255,255,255,.03);transition:.2s;cursor:pointer}
.pbtn:hover{border-color:var(--c1);color:var(--c1)}
.pbtn.solid{border:none;color:#04060B;background:linear-gradient(120deg,var(--c1-hi),var(--c2));
  box-shadow:0 12px 30px -12px var(--glow1)}
.pcard ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.pcard li{font-family:var(--font-cn);font-weight:300;font-size:14px;color:var(--txt-dim);display:flex;gap:10px;line-height:1.45}
.pcard li svg{width:16px;height:16px;color:var(--c3);flex:none;margin-top:2px}

/* ---------- blog ---------- */
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.bcard{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.012);transition:.3s;cursor:pointer}
.bcard:hover{border-color:rgba(255,166,64,.34);transform:translateY(-3px)}
.bcover{aspect-ratio:16/9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  background-image:repeating-linear-gradient(135deg,rgba(120,160,220,.06) 0 10px,transparent 10px 20px)}
.bcover .lab{font-family:var(--font-m);font-size:11px;letter-spacing:.12em;color:var(--txt-faint)}
.bbody{padding:20px}
.bbody .tag{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-m);font-size:11px;color:var(--c1)}
.bbody .tag .dt{color:var(--txt-faint);margin-left:6px}
.bbody h4{font-family:var(--font-cn);font-weight:600;font-size:17px;line-height:1.4;margin:12px 0 8px;text-wrap:pretty}
.bbody p{font-family:var(--font-cn);font-weight:300;font-size:13.5px;color:var(--txt-dim);line-height:1.6}
.bbody .by{margin-top:16px;font-family:var(--font-m);font-size:11px;color:var(--txt-faint)}

/* ---------- partners (合作企业 · scrolling logos) ---------- */
.partners{padding:clamp(48px,6vw,84px) 0}
.partners .ptitle{text-align:center;font-family:var(--font-m);font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--txt-faint);margin-bottom:clamp(28px,4vw,44px)}
.partners .ptitle b{display:block;font-family:var(--font-cn);font-weight:700;font-size:clamp(22px,3vw,34px);
  letter-spacing:-.02em;color:var(--txt);text-transform:none;margin-top:10px}
.partners .ptitle b .grad{background:linear-gradient(100deg,var(--c1-hi),var(--c2) 60%,var(--c3));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.marquee{position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee+.marquee{margin-top:18px}
.mtrack{display:flex;align-items:center;gap:18px;width:max-content;
  animation:scrollx var(--dur,42s) linear infinite}
.mtrack.rev{animation-direction:reverse}
.marquee:hover .mtrack{animation-play-state:paused}
@keyframes scrollx{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.mtrack{animation:none}}
.plogo{flex:none;display:flex;align-items:center;gap:12px;height:64px;padding:0 26px;border:1px solid var(--line);
  border-radius:14px;background:rgba(255,255,255,.014);transition:.25s;filter:grayscale(1);opacity:.62}
.plogo:hover{filter:none;opacity:1;border-color:rgba(255,166,64,.34);background:rgba(255,166,64,.04)}
.plogo .mk{width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--c1)}
.plogo .mk svg{width:100%;height:100%}
.plogo .nm{font-family:var(--font-cn);font-weight:700;font-size:18px;letter-spacing:-.01em;color:var(--txt);white-space:nowrap}
.plogo .nm small{display:block;font-family:var(--font-m);font-weight:400;font-size:10px;letter-spacing:.12em;
  color:var(--txt-faint);text-transform:uppercase;margin-top:1px}

/* ---------- friendly links (友情链接) ---------- */
.flinks{border-top:1px solid var(--line);background:var(--ink-0)}
.flinks-in{max-width:1180px;margin:0 auto;padding:26px clamp(18px,4vw,52px);
  display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.flinks-in .lab{font-family:var(--font-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--txt-faint);flex:none}
.flinks-in .fl-list{display:flex;flex-wrap:wrap;gap:8px 22px}
.flinks-in a{font-family:var(--font-cn);font-size:13.5px;color:var(--txt-dim);transition:color .2s}
.flinks-in a:hover{color:var(--c1)}

/* ---------- final CTA ---------- */
.finalcta{text-align:center;padding:clamp(70px,10vw,140px) clamp(18px,4vw,52px);position:relative}
.finalcta h2{font-family:var(--font-cn);font-weight:900;font-size:clamp(34px,6.5vw,80px);letter-spacing:-.03em;line-height:.98}
.finalcta h2 .grad{background:linear-gradient(100deg,var(--c1-hi),var(--c2) 55%,var(--c3));
  -webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 30px var(--glow1))}
.finalcta .row{display:flex;gap:14px;justify-content:center;margin-top:30px;flex-wrap:wrap}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;height:50px;padding:0 24px;border-radius:12px;
  font-family:var(--font-cn);font-weight:500;font-size:15px;color:var(--txt);border:1px solid var(--line);
  background:rgba(255,255,255,.03);transition:.2s;cursor:pointer}
.btn-ghost:hover{border-color:var(--c1);color:var(--c1)}
.btn-lg{height:50px;padding:0 26px;font-size:15px;border-radius:12px}
.btn-ghost svg,.btn-primary svg{width:18px;height:18px;flex:none}
.btn-ghost,.btn-primary{white-space:nowrap}
.finalcta .btn-primary{border:none;color:#04060B;
  background:linear-gradient(120deg,var(--c1-hi),var(--c2));
  box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 14px 34px -12px var(--glow1)}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line);background:var(--ink-0)}
.foot-in{max-width:1180px;margin:0 auto;padding:56px clamp(18px,4vw,52px) 30px;
  display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:32px}
.foot .brand img{width:30px;height:30px;filter:drop-shadow(0 0 9px var(--glow1))}
.foot .fdesc{font-family:var(--font-cn);font-weight:300;font-size:13.5px;color:var(--txt-dim);margin-top:16px;max-width:260px;line-height:1.6}
.fcol h5{font-family:var(--font-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-faint);margin-bottom:16px}
.fcol a{display:block;font-family:var(--font-cn);font-size:14px;color:var(--txt-dim);margin-bottom:11px;transition:color .2s}
.fcol a:hover{color:var(--txt)}
.foot-company{max-width:1180px;margin:0 auto;padding:16px clamp(18px,4vw,52px) 10px;
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  font-family:var(--font-cn);font-size:12px;color:var(--txt-faint)}
.foot-company .sepdot{width:3px;height:3px;border-radius:50%;background:var(--txt-faint);flex-shrink:0}
.foot-bot{max-width:1180px;margin:0 auto;padding:20px clamp(18px,4vw,52px);border-top:1px solid var(--line);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-family:var(--font-m);font-size:11px;color:var(--txt-faint)}
.foot-acct{display:inline-flex;align-items:center;gap:11px}
.foot-acct a{color:var(--c1);transition:color .2s}
.foot-acct a:hover{color:var(--c1-hi)}
.foot-acct .sepdot{width:3px;height:3px;border-radius:50%;background:var(--txt-faint)}

@media(max-width:900px){
  .fgrid,.tgrid,.pgrid,.bgrid{grid-template-columns:1fr 1fr}
  .browser .body{grid-template-columns:1fr}
  .chatcol{display:none}
  .foot-in{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .fgrid,.tgrid,.pgrid,.bgrid{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr 1fr}
  .pcard.hot{order:-1}
}
