
  html{scroll-behavior:smooth}
  :root{
    --violet:#157EFE; --indigo:#0B63D0; --violet-light:#F0F7FF; --violet-mid:#EAF3FF;
    --ink:#1E1B2E; --gray:#6B7280; --line:#ECECF4; --green:#059669;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;color:var(--ink);background:#fff;line-height:1.6}
  .wrap{max-width:1160px;margin:0 auto;padding:0 24px}
  a{color:inherit;text-decoration:none}
  /* header */
  header{position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);z-index:100}
  .nav{display:flex;align-items:center;justify-content:space-between;height:64px}
  .brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px}
  .brand img{width:36px;height:36px;border-radius:9px}
  .brand span small{font-size:12px;color:var(--gray);font-weight:500;display:block;line-height:1.1}
  .nav-links{display:flex;gap:28px;font-size:15px;color:#444}
  .nav-links a:hover{color:var(--violet)}
  .btn{display:inline-block;background:linear-gradient(135deg,var(--violet),var(--indigo));color:#fff;padding:11px 26px;border-radius:10px;font-weight:600;font-size:15px;border:none;cursor:pointer}
  .btn:hover{opacity:.92}
  .btn-ghost{background:#fff;color:var(--violet);border:1.5px solid var(--violet)}
  @media(max-width:820px){.nav-links{display:none}}
  /* mobile menu */
  .burger{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:var(--ink);padding:6px}
  @media(max-width:820px){.burger{display:block}}
  .mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 30px rgba(0,0,0,.08);z-index:99;padding:12px 24px 20px}
  .mobile-menu.open{display:block}
  .mobile-menu a{display:block;padding:13px 4px;font-size:16px;border-bottom:1px solid var(--line)}
  .mobile-menu a:last-child{border-bottom:none;color:var(--violet);font-weight:700}
  /* stats */
  .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-top:-8px}
  .stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 14px;text-align:center}
  .stat b{display:block;font-size:30px;font-weight:800;background:linear-gradient(135deg,var(--violet),var(--indigo));-webkit-background-clip:text;background-clip:text;color:transparent}
  .stat span{font-size:13.5px;color:var(--gray)}
  /* float contact */
  .float-wx{position:fixed;right:22px;bottom:22px;z-index:120}
  .float-wx .fab{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--violet),var(--indigo));color:#fff;border:none;font-size:26px;cursor:pointer;box-shadow:0 8px 24px rgba(21,126,254,.35)}
  .float-wx .panel{display:none;position:absolute;right:0;bottom:68px;width:250px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 12px 34px rgba(0,0,0,.14)}
  .float-wx .panel.open{display:block}
  .float-wx .panel h5{font-size:15px;margin-bottom:10px}
  .float-wx .panel .row{display:flex;justify-content:space-between;align-items:center;background:var(--violet-light);border-radius:9px;padding:9px 12px;margin-bottom:8px;font-size:14px}
  .float-wx .panel .row button{background:var(--violet);color:#fff;border:none;border-radius:7px;padding:4px 12px;font-size:12.5px;cursor:pointer}
  .float-wx .panel p{font-size:12.5px;color:var(--gray)}
  /* hero */
  .hero{padding:84px 0 64px;background:linear-gradient(180deg,var(--violet-light) 0%,#fff 100%);text-align:center}
  .hero .tag{display:inline-block;background:#fff;border:1px solid var(--violet-mid);color:var(--violet);font-size:13px;font-weight:600;padding:6px 16px;border-radius:999px;margin-bottom:22px}
  .hero h1{font-size:46px;line-height:1.25;font-weight:800;letter-spacing:-.5px}
  .hero h1 em{font-style:normal;background:linear-gradient(135deg,var(--violet),var(--indigo));-webkit-background-clip:text;background-clip:text;color:transparent}
  .hero p.sub{max-width:720px;margin:20px auto 0;color:var(--gray);font-size:18px}
  .hero .cta{margin-top:32px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
  .hero .badges{margin-top:40px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
  .hero .badges span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:13.5px;color:#555}
  @media(max-width:640px){.hero h1{font-size:32px}}
  .case-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
  .case{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#fff;transition:.15s}
  .case:hover{border-color:var(--violet);box-shadow:0 6px 20px rgba(21,126,254,.08)}
  .case .top{display:flex;gap:8px;align-items:center;margin-bottom:8px}
  .case .tag{background:var(--violet-light);color:var(--violet);font-size:11.5px;font-weight:700;border-radius:6px;padding:2px 8px;white-space:nowrap}
  .case .region{font-size:11.5px;color:#9CA3AF}
  .case h4{font-size:14.5px;margin-bottom:5px}
  .case p{font-size:12.5px;color:var(--gray)}
  .case .meta{margin-top:9px;padding-top:8px;border-top:1px dashed var(--line);font-size:12px;color:var(--green);font-weight:600}
  /* dog AI widget */
  .dog-widget{position:fixed;left:22px;bottom:22px;z-index:140}
  .sticky-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:119;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:9px 14px calc(9px + env(safe-area-inset-bottom));gap:10px}
  .sticky-cta .sbtn{flex:1;text-align:center;padding:12px 0;border-radius:10px;font-weight:700;font-size:15px}
  .sticky-cta .sbtn.wechat{background:#F0F7FF;color:var(--violet)}
  .sticky-cta .sbtn.quote{background:linear-gradient(135deg,var(--violet),var(--indigo));color:#fff}
  body.dark .sticky-cta{background:rgba(11,11,20,.96);border-top-color:#2A2A3F}
  body.dark .sticky-cta .sbtn.wechat{background:#1A1A2E;color:#BFDBFE}
  @media(max-width:820px){
    .dog-widget{bottom:78px}
    .sticky-cta{display:flex}
  }
  .dog-fab{width:64px;height:64px;border-radius:50%;border:3px solid #fff;background:#fff;box-shadow:0 8px 24px rgba(11,99,208,.30);cursor:pointer;padding:0;overflow:hidden;animation:breathe 2.6s ease-in-out infinite}
  .dog-fab img{width:100%;height:100%;object-fit:cover;animation:wag 3.2s ease-in-out infinite}
  @keyframes breathe{0%,100%{transform:scale(1);box-shadow:0 8px 24px rgba(11,99,208,.30)}50%{transform:scale(1.08);box-shadow:0 12px 32px rgba(11,99,208,.55)}}
  @keyframes wag{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}
  .dog-tip{position:absolute;left:74px;bottom:18px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:12.5px;color:var(--violet);font-weight:600;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.08);animation:breathe 2.6s ease-in-out infinite}
  .dog-panel{display:none;position:absolute;left:0;bottom:80px;width:330px;max-width:86vw;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 44px rgba(0,0,0,.16);overflow:hidden}
  .dog-panel.open{display:block}
  .dog-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(135deg,var(--violet),var(--indigo));color:#fff}
  .dog-head img{width:38px;height:38px;border-radius:50%;background:#fff;object-fit:cover}
  .dog-head b{font-size:14.5px}
  .dog-head small{display:block;font-size:11.5px;opacity:.85}
  .dog-msgs{height:280px;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#FAFAFF}
  .dog-msg{max-width:86%;padding:9px 12px;border-radius:12px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
  .dog-msg.bot{background:#fff;border:1px solid var(--line);align-self:flex-start}
  .dog-msg.user{background:var(--violet);color:#fff;align-self:flex-end}
  .dog-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
  .dog-chips button{background:#fff;border:1px solid var(--violet);color:var(--violet);border-radius:999px;font-size:12px;padding:4px 12px;cursor:pointer}
  .dog-input{display:flex;border-top:1px solid var(--line)}
  .dog-input input{flex:1;border:none;padding:12px;font-size:13.5px;outline:none}
  .dog-input button{background:var(--violet);color:#fff;border:none;padding:0 18px;cursor:pointer;font-size:14px}
  @media(max-width:640px){.dog-msgs{height:240px}}

  /* discount bar */
  .discount{background:linear-gradient(135deg,var(--violet),var(--indigo));color:#fff;padding:16px 0;text-align:center;font-size:15.5px}
  .discount b{font-size:18px}
  /* sections */
  section{padding:72px 0}
  .sec-head{text-align:center;margin-bottom:44px}
  .sec-head .kicker{color:var(--violet);font-weight:700;font-size:14px;letter-spacing:2px;text-transform:uppercase}
  .sec-head h2{font-size:34px;font-weight:800;margin-top:8px}
  .sec-head p{color:var(--gray);margin-top:10px;font-size:16px}
  .cat-title{display:flex;align-items:center;gap:12px;margin:44px 0 20px;font-size:21px;font-weight:800}
  .cat-title .dot{width:10px;height:26px;border-radius:5px;background:linear-gradient(180deg,var(--violet),var(--indigo))}
  .cat-title small{color:var(--gray);font-weight:500;font-size:14px}
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px}
  .card{border:1px solid var(--line);border-radius:14px;padding:22px;background:#fff;transition:.18s;display:flex;flex-direction:column}
  .card:hover{border-color:var(--violet);box-shadow:0 8px 28px rgba(21,126,254,.10);transform:translateY(-3px)}
  .card .ico{font-size:26px;margin-bottom:10px;height:42px;display:flex;align-items:center}
  .card .ico img{width:28px;height:28px;display:block;object-fit:contain;background:#fff;border-radius:9px;padding:6px;box-sizing:content-box;box-shadow:0 2px 8px rgba(0,0,0,.18)}
  .card h3{font-size:16.5px;font-weight:700;margin-bottom:6px}
  .card .desc{font-size:13.5px;color:var(--gray);flex:1}
  .price{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
  .price .mkt{font-size:12.5px;color:#9CA3AF;text-decoration:line-through}
  .price .ours{font-size:20px;font-weight:800;color:var(--violet)}
  .price .ours small{font-size:12.5px;font-weight:600;color:var(--gray)}
  .price .save{display:inline-block;background:#ECFDF5;color:var(--green);font-size:11.5px;font-weight:700;border-radius:6px;padding:2px 8px;margin-left:6px;vertical-align:2px}
  /* team */
  .team-sec{background:var(--violet-light)}
  .team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px}
  .member{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px 16px;text-align:center;transition:.18s}
  .member:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(21,126,254,.10)}
  .member img{width:96px;height:96px;border-radius:50%;border:3px solid var(--violet-mid)}
  .member h4{margin-top:12px;font-size:16px;font-weight:700}
  .member .role{color:var(--violet);font-size:13.5px;font-weight:600;margin-top:2px}
  .member .ex{font-size:12.5px;color:var(--gray);margin-top:6px}
  .member .loc{font-size:12px;color:#9CA3AF;margin-top:3px}
  .team-note{text-align:center;color:var(--gray);font-size:13.5px;margin-top:26px}
  /* process */
  .steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
  .step{border:1px solid var(--line);border-radius:14px;padding:26px;position:relative}
  .step .num{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--violet),var(--indigo));color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:17px;margin-bottom:14px}
  .step h4{font-size:16.5px;margin-bottom:6px}
  .step p{font-size:13.5px;color:var(--gray)}
  /* faq */
  .faq details{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;background:#fff}
  .faq summary{padding:18px 22px;font-weight:600;cursor:pointer;list-style:none;font-size:15.5px}
  .faq summary::after{content:"+";float:right;color:var(--violet);font-size:20px;font-weight:700}
  .faq details[open] summary::after{content:"−"}
  .faq .ans{padding:0 22px 18px;color:var(--gray);font-size:14.5px}
  /* cta */
  .cta-sec{background:linear-gradient(135deg,var(--violet),var(--indigo));color:#fff;text-align:center;border-radius:24px;margin:0 24px;padding:64px 24px}
  .cta-sec h2{font-size:32px;font-weight:800}
  .cta-sec p{margin:14px auto 28px;opacity:.9;max-width:560px}
  .cta-sec .btn{background:#fff;color:var(--violet);font-size:16px;padding:14px 38px}
  .contact-row{margin-top:26px;font-size:15px;opacity:.95;display:flex;gap:26px;justify-content:center;flex-wrap:wrap}
  footer{padding:44px 0 34px;text-align:center;color:#9CA3AF;font-size:13.5px}
  footer .links{margin-bottom:12px;display:flex;gap:22px;justify-content:center;flex-wrap:wrap}
  footer a:hover{color:var(--violet)}

/* ===== v7 新增：暗色模式 ===== */
body.dark{--violet:#7FB7FF;--violet-dark:#157EFE;--ink:#E5E7EB;--muted:#9CA3AF;background:#0B0B14;color:#E5E7EB}
body.dark .card,body.dark .panel,body.dark .nc,body.dark .tc,body.dark .calc,body.dark .sub-box{background:#151525;border-color:#2A2A3F;color:#E5E7EB}
body.dark section#ai,body.dark section#faq{background:#111122 !important}
body.dark section#bundles{background:linear-gradient(180deg,#0B0B14 0%,#1B1030 100%) !important}
body.dark .mkt{color:#9CA3AF}
body.dark footer{border-top-color:#2A2A3F}
.theme-fab{position:fixed;right:22px;top:90px;z-index:900;width:44px;height:44px;border-radius:50%;border:1px solid #E5E3FF;background:#fff;box-shadow:0 4px 14px rgba(76,29,149,.15);cursor:pointer;font-size:19px;line-height:42px;text-align:center}
body.dark .theme-fab{background:#151525;border-color:#2A2A3F}
/* ===== v7 新增：Hero 动态背景 ===== */
#top{position:relative;overflow:hidden}
#heroCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.6}
#top>*{position:relative;z-index:1}
/* ===== v7 新增：服务筛选 ===== */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;margin:0 0 22px}
.filters button{padding:8px 18px;border-radius:999px;border:1px solid #E5E3FF;background:#fff;color:#4C1D95;font-weight:600;font-size:14px;cursor:pointer;transition:.2s}
.filters button.on{background:var(--violet);color:#fff;border-color:var(--violet)}
.filters input{padding:9px 14px;border-radius:999px;border:1px solid #E5E3FF;min-width:220px;font-size:14px;outline:none}
body.dark .filters button{background:#151525;border-color:#2A2A3F;color:#BFDBFE}
/* ===== v7 新增：报价计算器 ===== */
.calc{background:#fff;border:1px solid #F0EEFF;border-radius:18px;padding:24px;box-shadow:0 4px 20px rgba(76,29,149,.07)}
.calc-mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:16px 0}
.calc-mods label{display:flex;align-items:flex-start;gap:8px;background:#FAFAFF;border:1px solid #F0EEFF;border-radius:12px;padding:11px 13px;cursor:pointer;font-size:13px;line-height:1.5}
body.dark .calc-mods label{background:#1A1A2E;border-color:#2A2A3F}
.calc-mods label.sel{border-color:var(--violet);background:#F0F7FF}
.calc-mods input{margin-top:2px;accent-color:#157EFE}
.calc-out{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-top:18px;text-align:center}
.calc-out div{background:#FAFAFF;border-radius:12px;padding:14px}
body.dark .calc-out div{background:#1A1A2E}
.calc-out b{display:block;font-size:24px;color:var(--violet)}
.calc-out span{font-size:12px;color:#6B7280}
.calc-bar{height:10px;border-radius:6px;background:#F0EEFF;overflow:hidden;margin:14px 0 6px}
.calc-bar i{display:block;height:100%;background:linear-gradient(90deg,#157EFE,#EC4899);width:0;transition:width .4s}
/* ===== v7 新增：新闻动态 ===== */
.news-tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}
.news-tabs button{padding:7px 16px;border-radius:999px;border:1px solid #E5E3FF;background:#fff;font-size:13px;cursor:pointer;color:#4C1D95}
body.dark .news-tabs button{background:#151525;border-color:#2A2A3F;color:#BFDBFE}
.news-tabs button.on{background:var(--violet);color:#fff;border-color:var(--violet)}
.nc{background:#fff;border:1px solid #F0EEFF;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:8px;transition:.25s}
.nc:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(76,29,149,.12)}
.nc .tag{align-self:flex-start;font-size:11px;padding:3px 10px;border-radius:999px;background:#F0F7FF;color:var(--violet);font-weight:600}
.nc h4{font-size:15px;line-height:1.5;color:#1F2937}
body.dark .nc h4{color:#E5E7EB}
.nc p{font-size:13px;color:#6B7280;line-height:1.7}
.nc small{color:#9CA3AF;font-size:12px;margin-top:auto}
/* ===== v7 新增：客户评价 ===== */
.tc{background:#fff;border:1px solid #F0EEFF;border-radius:14px;padding:20px;font-size:14px;line-height:1.8}
.tc .stars{color:#F59E0B;letter-spacing:2px;margin-bottom:6px}
.tc .who{margin-top:10px;font-size:12px;color:#9CA3AF}
/* ===== v7 新增：订阅 ===== */
.sub-box{max-width:720px;margin:0 auto;background:linear-gradient(135deg,#F0F7FF,#FFF);border:1px solid #F0EEFF;border-radius:18px;padding:28px;text-align:center}
body.dark .sub-box{background:linear-gradient(135deg,#1B1030,#151525);border-color:#2A2A3F}
.sub-box form{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.sub-box input{padding:12px 16px;border-radius:999px;border:1px solid #E5E3FF;min-width:260px;font-size:14px;outline:none}
.sub-box button{padding:12px 26px;border-radius:999px;border:0;background:var(--violet);color:#fff;font-weight:600;cursor:pointer;font-size:14px}
.sub-tip{font-size:12px;color:#6B7280;margin-top:10px}
.social{display:flex;gap:14px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.social a{font-size:13px;color:var(--violet);text-decoration:none;border:1px solid #E5E3FF;border-radius:999px;padding:7px 16px;background:#fff}
body.dark .social a{background:#151525;border-color:#2A2A3F;color:#BFDBFE}
@media(max-width:640px){.calc-out b{font-size:20px}.filters input{min-width:150px}}


/* ===== v8 视觉升级 ===== */
/* 卡片渐变流光边框 */
.card{position:relative}
.card::after{content:'';position:absolute;inset:-1px;border-radius:15px;padding:1.4px;
  background:linear-gradient(120deg,#157EFE,#EC4899,#0B63D0,#157EFE);background-size:250% 250%;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .35s;pointer-events:none}
.card:hover::after{opacity:1;animation:gradflow 3s linear infinite}
@keyframes gradflow{0%{background-position:0% 50%}100%{background-position:250% 50%}}
.card:hover{transform:translateY(-6px) scale(1.012);box-shadow:0 16px 40px rgba(21,126,254,.16)}
/* 滚动渐入 */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
/* Web3 / AI 装饰 */
#web3,#ai{position:relative;overflow:hidden}
.deco{position:absolute;pointer-events:none;z-index:0}
.deco+.wrap{position:relative;z-index:1}
.deco line,.deco path{stroke:#157EFE;opacity:.22}
body.dark .deco line,body.dark .deco path{stroke:#157EFE;opacity:.3}
.deco .flow{stroke-dasharray:5 5;animation:dashmove 1.2s linear infinite}
@keyframes dashmove{to{stroke-dashoffset:-20}}
.deco circle.nn{fill:#157EFE;animation:nnblink 2.6s ease-in-out infinite}
body.dark .deco circle.nn{fill:#7FB7FF}
@keyframes nnblink{0%,100%{opacity:.12}50%{opacity:.85}}
/* 新闻展开 */
.nc{cursor:pointer}
.nc .more{display:none;font-size:13px;color:#0B63D0;line-height:1.8;border-top:1px dashed #E5E3FF;margin-top:6px;padding-top:8px}
body.dark .nc .more{color:#BFDBFE;border-top-color:#2A2A3F}
.nc.open .more{display:block;animation:fadein .4s}
@keyframes fadein{from{opacity:0;transform:translateY(-4px)}to{opacity:1}}
.nc .hint{color:#9CA3AF}
/* 团队标签 */
.chips{margin-top:6px}
.chips i{font-style:normal;font-size:11px;padding:2px 9px;border-radius:999px;background:#F0F7FF;color:#157EFE;margin:2px 3px 0 0;display:inline-block;font-weight:600}
body.dark .chips i{background:#1A1A2E;color:#BFDBFE}
.chip{font-size:13px;padding:7px 16px;border-radius:999px;background:#fff;border:1px solid #E5E3FF;color:#4C1D95;font-weight:600}
body.dark .chip{background:#151525;border-color:#2A2A3F;color:#BFDBFE}
.member{transition:.25s}
.member:hover{transform:translateY(-4px)}
/* ===== 深色主题补全（默认启用） ===== */
body.dark header{background:rgba(11,11,20,.9);border-bottom-color:#2A2A3F}
body.dark .hero{background:linear-gradient(180deg,#17112E 0%,#0B0B14 100%) !important}
body.dark .hero .tag{background:#151525;border-color:#2A2A3F}
body.dark section[id="calc"],body.dark section[id="voices"],body.dark section[id="contact"]{background:#111122 !important}
body.dark input,body.dark textarea{background:#151525;border-color:#2A2A3F;color:#E5E7EB}
body.dark .member,body.dark details,body.dark .bundle,body.dark .pbox{background:#151525;border-color:#2A2A3F}
body.dark summary{color:#E5E7EB}
body.dark .dog-panel,body.dark .dog-msgs{background:#151525 !important;border-color:#2A2A3F}
body.dark .dog-msgs .bot{background:#1A1A2E;color:#E5E7EB}
body.dark .dog-input input{background:#0B0B14;color:#E5E7EB}
body.dark .cat-title small{color:#9CA3AF}
body.dark .sub-box{background:linear-gradient(135deg,#1B1030,#151525);border-color:#2A2A3F}
body.dark .ex,body.dark .loc,body.dark .sub-tip,body.dark .nc p,body.dark .tc .who{color:#9CA3AF}


  /* ===== v10：品牌片 / 技术装饰 / 生态 / 推荐返利 ===== */
  #heroCanvas{opacity:.9 !important}
  .hero-play{display:inline-flex;align-items:center;gap:8px;margin-top:20px;background:rgba(21,126,254,.10);border:1px solid var(--violet);color:var(--violet);padding:9px 20px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
  .hero-play:hover{background:var(--violet);color:#fff}
  .techdeco{max-width:1000px;margin:30px auto 0;opacity:.6}
  .techdeco svg{display:block;width:100%;height:auto}
  .techdeco .flow{stroke-dasharray:6 9;animation:dashflow 7s linear infinite}
  .techdeco .flow2{stroke-dasharray:6 9;animation:dashflow 11s linear infinite}
  @keyframes dashflow{to{stroke-dashoffset:-150}}
  .techdeco .nd{fill:#157EFE;animation:ndblink 3.4s ease-in-out infinite}
  .techdeco .nd:nth-of-type(2n){animation-delay:.6s}
  .techdeco .nd:nth-of-type(3n){animation-delay:1.2s}
  .techdeco .nd:nth-of-type(4n){animation-delay:1.8s}
  @keyframes ndblink{0%,100%{opacity:.26}50%{opacity:1}}
  .eco{margin-top:32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
  .eco .eb{border:1px solid var(--line);border-radius:14px;padding:18px 20px;background:#fff}
  .eco .eb h5{font-size:12.5px;color:var(--violet);font-weight:700;margin-bottom:8px;letter-spacing:.5px}
  .eco .eb p{font-size:13px;color:var(--gray);line-height:1.95}
  .eco-note{text-align:center;font-size:12.5px;color:#9CA3AF;margin-top:16px}
  .film{max-width:920px;margin:0 auto;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#000;position:relative;box-shadow:0 10px 40px rgba(76,29,149,.14)}
  .film video{display:block;width:100%;height:auto}
  .film .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(11,11,20,.35);cursor:pointer}
  .film .play span{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;font-size:26px;color:#157EFE;box-shadow:0 8px 26px rgba(0,0,0,.32)}
  .refer{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:26px}
  .refer .rbox{border:1px solid var(--line);border-radius:14px;padding:22px;background:#fff;text-align:center}
  .refer .rbox b{display:block;font-size:30px;color:var(--violet);font-weight:800;line-height:1.2}
  .refer .rbox span{font-size:13px;color:var(--gray)}
  body.dark section#stack,body.dark section#referral{background:#111122 !important}
  body.dark .eco .eb,body.dark .refer .rbox{background:#151525;border-color:#2A2A3F}
  body.dark .film{border-color:#2A2A3F}
  body.dark .hero-play{background:rgba(127,183,255,.14)}
  @media(prefers-reduced-motion:reduce){.techdeco .flow,.techdeco .flow2,.techdeco .nd{animation:none}}

  @keyframes kfFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  body.dark section#cases{background:#0B0B14 !important}
  body.dark .team-sec{background:#17112E}

  /* ===== v11：标识墙 / 阅读进度 / 回到顶部 ===== */
  .eco-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:920px;margin:18px auto 0}
  .eco-chips .chip{font-size:12.5px;padding:5px 12px}
  #kfProgress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#157EFE,#EC4899);z-index:200;transition:width .12s linear}
  #kfTop{display:none;position:fixed;right:22px;bottom:96px;z-index:118;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--violet);font-size:19px;cursor:pointer;box-shadow:0 4px 14px rgba(76,29,149,.15);line-height:42px;text-align:center}
  #kfTop:hover{background:var(--violet);color:#fff}
  body.dark #kfTop{background:#151525;border-color:#2A2A3F;color:#BFDBFE}
  @media(max-width:820px){#kfTop{bottom:104px;right:14px}}


  /* ===== v13：证言星级 / 匿名说明 / 多步询价表单 ===== */
  .tc .stars{color:#F59E0B;font-size:13px;letter-spacing:2px;margin-bottom:9px}
  .voices-note{max-width:840px;margin:22px auto 0;font-size:13px;color:var(--gray);line-height:1.95;text-align:center;border-top:1px dashed var(--line);padding-top:16px}
  body.dark .voices-note{color:#9CA3AF}
  .cform{max-width:660px;margin:26px auto 0;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}
  .csteps{display:flex;gap:8px;margin-bottom:18px;font-size:12.5px;color:#9CA3AF}
  .csteps span{flex:1;text-align:center;padding:6px 0;border-bottom:2px solid var(--line)}
  .csteps span.on{color:var(--violet);border-bottom-color:var(--violet);font-weight:700}
  .csteps span.done{color:var(--violet)}
  .cq{font-size:14px;font-weight:600;margin:0 0 10px}
  .copts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
  .copt{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:13.5px;cursor:pointer;font-family:inherit;color:var(--ink)}
  .copt:hover{border-color:var(--violet)}
  .copt.on{background:var(--violet);border-color:var(--violet);color:#fff}
  .cform input,.cform textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;margin-bottom:12px}
  .csum{background:var(--violet-light);border-radius:10px;padding:12px 14px;font-size:13px;color:var(--gray);line-height:1.9;margin-bottom:12px}
  .cnav{display:flex;gap:10px;justify-content:space-between;margin-top:6px}
  .cnav button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:10px 18px;font-size:14px;cursor:pointer;font-family:inherit}
  .cnav button.pri{background:var(--violet);border-color:var(--violet);color:#fff;font-weight:600}
  body.dark .cform{background:#151525;border-color:#2A2A3F}
  body.dark .copt{background:#151525;border-color:#2A2A3F;color:#E5E7EB}
  body.dark .cnav button{background:#151525;border-color:#2A2A3F;color:#E5E7EB}
  body.dark .cform input,body.dark .cform textarea{background:#0B0B14;border-color:#2A2A3F;color:#E5E7EB}
  @media(max-width:600px){.csteps{font-size:11.5px}.cform{padding:16px}}

  /* ===== v12：自托管字体 + 标题层级 + CTA 主次 + 骨架屏 + 无障碍 ===== */
  h1, h2, .brand, .sec-head h2, .cat-title, .page-hero h1 { font-family:'Space Grotesk', -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
  .stat b, .price .ours, .calc-out b, .refer .rbox b, .card .price, code, kbd, .mono { font-family:'JetBrains Mono', ui-monospace, SFMono-Regular, Consolas, monospace; }
  .hero h1{font-size:clamp(40px,6vw,72px) !important}
  .sec-head h2{font-size:clamp(28px,3.4vw,40px) !important}
  .cta-sec h2{font-size:clamp(26px,3vw,36px) !important}
  .btn-lg{padding:15px 38px !important;font-size:17px !important;border-radius:12px}
  .btn-sm{padding:8px 16px !important;font-size:13.5px !important;border-radius:8px}
  .btn-link{background:none !important;color:var(--violet);text-decoration:underline;padding:0 !important;font-size:14px}
  /* 骨架屏：JS 渲染前占位，防 CLS */
  .skel{background:linear-gradient(90deg,#F1F0F7 25%,#E9E7F5 37%,#F1F0F7 63%);background-size:400% 100%;animation:skel 1.3s ease infinite;border-radius:14px;height:150px}
  body.dark .skel{background:linear-gradient(90deg,#1A1A2E 25%,#22223C 37%,#1A1A2E 63%);background-size:400% 100%}
  @keyframes skel{0%{background-position:100% 50%}100%{background-position:0 50%}}
  /* 无障碍 */
  .skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--violet);color:#fff;padding:10px 18px;border-radius:0 0 10px 0}
  .skip:focus{left:0}
  a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #157EFE;outline-offset:2px;border-radius:6px}
  .nav-links a.active{color:var(--violet);font-weight:700}
  /* 隐私提示条 */
  #kfNotice{position:fixed;left:0;right:0;bottom:0;z-index:130;background:#151525;color:#E5E7EB;font-size:13px;padding:12px 20px;display:none;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;border-top:1px solid #2A2A3F}
  #kfNotice a{color:#BFDBFE;text-decoration:underline}
  #kfNotice button{background:#157EFE;color:#fff;border:none;border-radius:8px;padding:7px 16px;cursor:pointer;font-size:13px}
  @media(max-width:820px){#kfNotice{bottom:64px}}
  /* 窄屏收起次要导航 */
  @media(max-width:1200px){.nav-more{display:none}}


.geo-sum{max-width:1100px;margin:0 auto;padding:14px 22px;background:#F0F7FF;border:1px solid #EAF3FF;border-radius:14px;font-size:14px;line-height:1.85;color:#4C1D95;text-align:center}
body.dark .geo-sum{background:#151525;border-color:#2A2A3F;color:#BFDBFE}


    .pt{position:relative;z-index:1}
    .pt-kicker{font-family:"JetBrains Mono",Consolas,monospace;font-size:12.5px;letter-spacing:4px;color:#157EFE;font-weight:700;margin-bottom:14px}
    .pt h2{font-family:"Space Grotesk","Microsoft YaHei","PingFang SC",sans-serif;font-size:32px;color:#fff;line-height:1.35;margin:0 0 12px}
    .pt-lead{font-size:15.5px;color:#9FB2CE;max-width:640px;line-height:1.8;margin:0}
    .pt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:36px 0 0}
    .pt-card{background:rgba(255,255,255,.04);border:1px solid rgba(21,126,254,.22);border-radius:14px;padding:24px 22px;transition:.25s}
    .pt-card:hover{border-color:rgba(21,126,254,.55);background:rgba(21,126,254,.06);transform:translateY(-3px)}
    .pt-num{font-family:"JetBrains Mono",Consolas,monospace;font-size:22px;font-weight:700;color:#157EFE;letter-spacing:1px}
    .pt-card h3{font-size:17px;color:#fff;margin:12px 0 12px;font-family:"Space Grotesk","Microsoft YaHei","PingFang SC",sans-serif}
    .pt-card ul{margin:0;padding:0;list-style:none}
    .pt-card li{font-size:13.5px;color:#B8C6DE;line-height:1.75;padding-left:16px;position:relative;margin:8px 0}
    .pt-card li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:#157EFE}
    .pt-card li b{color:#fff;font-weight:600}
    .pt-ask{margin:36px 0 0;background:rgba(21,126,254,.07);border:1px solid rgba(21,126,254,.30);border-radius:14px;padding:26px 26px 20px}
    .pt-ask h3{font-size:16px;color:#fff;margin:0 0 6px;font-family:"Space Grotesk","Microsoft YaHei","PingFang SC",sans-serif}
    .pt-ask .sub{font-size:13px;color:#9FB2CE;margin:0 0 16px}
    .pt-q{font-size:14.5px;color:#DCE6F5;margin:12px 0;padding-left:30px;position:relative;line-height:1.7}
    .pt-q i{position:absolute;left:0;top:2px;font-style:normal;font-family:"JetBrains Mono",Consolas,monospace;color:#157EFE;font-weight:700;font-size:13px}
    .pt-q span{color:#8FA3C4;font-size:13px}
    .pt-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:36px 0 0}
    .pt-step{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 14px;font-size:12.5px;color:#B8C6DE;line-height:1.6}
    .pt-step b{display:block;font-family:"JetBrains Mono",Consolas,monospace;font-size:13px;color:#157EFE;margin-bottom:6px}
    .pt-faq{margin:36px 0 0}
    .pt-faq details{border:1px solid rgba(255,255,255,.10);border-radius:12px;margin:10px 0;background:rgba(255,255,255,.02)}
    .pt-faq summary{cursor:pointer;padding:15px 18px;font-size:14.5px;font-weight:600;color:#E6EDF7;list-style:none}
    .pt-faq summary::after{content:"+";float:right;color:#157EFE;font-family:"JetBrains Mono",Consolas,monospace}
    .pt-faq details[open] summary::after{content:"−"}
    .pt-faq .ans{padding:0 18px 16px;font-size:13.5px;color:#9FB2CE;line-height:1.75}
    .pt-cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:34px 0 0}
    .pt-btn{display:inline-block;background:linear-gradient(135deg,#157EFE,#0B63D0);color:#fff;padding:13px 30px;border-radius:10px;font-weight:600;font-size:15px;text-decoration:none}
    .pt-btn:hover{opacity:.92}
    .pt-link{color:#7FB3FF;font-size:14px;text-decoration:none;border-bottom:1px dashed rgba(127,179,255,.5);padding-bottom:1px}
    @media(max-width:860px){.pt-grid,.pt-steps{grid-template-columns:1fr 1fr}.pt-steps{grid-template-columns:1fr 1fr}}
    @media(max-width:560px){.pt-grid{grid-template-columns:1fr}.pt h2{font-size:25px}}
  

/* ===== 1) Hero：极光渐变光斑（缓慢漂移） ===== */
.hero{position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:-18%;z-index:0;pointer-events:none;
  background:
    radial-gradient(36% 40% at 22% 30%, rgba(21,126,254,.17), transparent 68%),
    radial-gradient(32% 36% at 78% 24%, rgba(21,126,254,.14), transparent 68%),
    radial-gradient(30% 34% at 60% 80%, rgba(147,51,234,.11), transparent 68%);
  filter:blur(44px);animation:aurora 16s ease-in-out infinite alternate}
@keyframes aurora{0%{transform:translate3d(-2%,-1%,0) scale(1)}50%{transform:translate3d(2%,2%,0) scale(1.07)}100%{transform:translate3d(-1%,2%,0) scale(1.02)}}
.hero .wrap{position:relative;z-index:2}

/* ===== 2) Hero 入场节奏（依次浮现） ===== */
.hero .tag,.hero h1,.hero .sub,.hero .cta,.hero .badges,.hero .hero-play{
  opacity:0;transform:translateY(18px);animation:heroIn .7s cubic-bezier(.2,.7,.3,1) forwards}
.hero h1{animation-delay:.08s}.hero .sub{animation-delay:.18s}
.hero .cta{animation-delay:.30s}.hero .badges{animation-delay:.42s}
.hero .hero-play{animation-delay:.54s}
@keyframes heroIn{to{opacity:1;transform:none}}

/* ===== 3) 大标题渐变流光 ===== */
.hero h1 em{background:linear-gradient(120deg,#157EFE,#0B63D0,#157EFE,#157EFE);
  background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:titleshine 6s linear infinite}
@keyframes titleshine{to{background-position:300% 50%}}

/* ===== 4) Hero 徽章轻微浮动 ===== */
.hero .badges span{animation:floaty 4.4s ease-in-out infinite}
.hero .badges span:nth-child(2n){animation-delay:1.1s}
.hero .badges span:nth-child(3n){animation-delay:2.2s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

/* ===== 5) 按钮扫光 ===== */
.btn{position:relative;overflow:hidden}
.btn::after{content:'';position:absolute;top:0;left:-80%;width:45%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.38),transparent);
  transform:skewX(-20deg);transition:left .55s ease}
.btn:hover::after{left:135%}

/* ===== 6) 卡片悬浮（只在渐入完成后生效，不影响 .rv 动画） ===== */
.rv.in{transition:opacity .7s ease,transform .3s ease,box-shadow .25s ease}
.card.in:hover,.case.in:hover,.nc.in:hover,.member.in:hover{transform:translateY(-4px);
  box-shadow:0 14px 34px rgba(21,126,254,.13)}
.stat.in:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(21,126,254,.10);
  border-color:var(--violet-mid)}
.step.in:hover{transform:translateY(-3px)}

/* ===== 7) 导航链接下划线滑入 ===== */
.nav-links a{position:relative}
.nav-links a::after{content:'';position:absolute;left:0;right:100%;bottom:-4px;height:2px;
  background:linear-gradient(90deg,var(--violet),var(--indigo));transition:right .25s ease;border-radius:1px}
.nav-links a:hover::after{right:0}

/* ===== 8) 区块淡网格纹理（科技感） ===== */
#web3,#ai,#stack,#calc{background-image:
  linear-gradient(rgba(21,126,254,.032) 1px,transparent 1px),
  linear-gradient(90deg,rgba(21,126,254,.032) 1px,transparent 1px);
  background-size:44px 44px}
body.dark #web3,body.dark #ai,body.dark #stack,body.dark #calc{background-image:
  linear-gradient(rgba(21,126,254,.05) 1px,transparent 1px),
  linear-gradient(90deg,rgba(21,126,254,.05) 1px,transparent 1px)}

/* ===== 9) 区块标题渐变装饰线（滚动到位后展开） ===== */
.sec-head h2::after{content:'';display:block;width:58px;height:4px;border-radius:2px;
  margin:13px auto 0;background:linear-gradient(90deg,#157EFE,#157EFE);
  transform:scaleX(0);transition:transform .55s cubic-bezier(.2,.7,.3,1) .12s}
.sec-head.vzin h2::after{transform:scaleX(1)}

/* ===== 10) 滚动进度条 ===== */
#kfProg{position:fixed;top:0;left:0;height:3px;width:0;z-index:300;pointer-events:none;
  background:linear-gradient(90deg,#157EFE,#157EFE,#0B63D0);transition:width .12s linear;
  box-shadow:0 0 8px rgba(147,51,234,.45)}

/* ===== 无动画偏好：全部豁免 ===== */
@media(prefers-reduced-motion:reduce){
  .hero::before,.hero h1 em,.hero .badges span,.btn::after,.sec-head h2::after{animation:none;transition:none}
  .hero .tag,.hero h1,.hero .sub,.hero .cta,.hero .badges,.hero .hero-play{animation:none;opacity:1;transform:none}
  .card.in:hover,.case.in:hover,.nc.in:hover,.member.in:hover,.stat.in:hover,.step.in:hover{transform:none}
  #kfProg{display:none}
}


/* 服务卡可点击 + 展开行动条 */
#web3 .card,#ai .card,#mfbs .card{cursor:pointer}
.kfxbar{display:none;gap:8px;margin-top:12px;padding-top:11px;border-top:1px dashed var(--violet-mid);flex-wrap:wrap}
.card.kfx .kfxbar{display:flex;animation:kfIn .32s ease}
.kfxbar .kbtn{flex:1;min-width:132px;text-align:center;padding:9px 10px;border-radius:9px;font-size:13px;font-weight:700;cursor:pointer;border:none;font-family:inherit}
.kfxbar .kmail{background:linear-gradient(135deg,var(--violet),var(--indigo));color:#fff}
.kfxbar .kdog{background:var(--violet-light);color:var(--violet);border:1px solid var(--violet-mid)}
.kfxbar .kbtn:hover{opacity:.9}
body.dark .kfxbar .kdog{background:#1A1A2E;color:#BFDBFE;border-color:#2A2A3F}
.card.kfx{border-color:var(--violet);box-shadow:0 8px 24px rgba(21,126,254,.10)}
@keyframes kfIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

/* 全站按钮涟漪 */
.btn,.hero-play,.kfxbar .kbtn,.dog-fab{position:relative;overflow:hidden}
.kfRip{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);transform:scale(0);pointer-events:none;
  animation:kfRip .55s ease-out forwards}
.btn-ghost .kfRip,.kfxbar .kdog .kfRip{background:rgba(21,126,254,.30)}
@keyframes kfRip{to{transform:scale(2.6);opacity:0}}

/* FAQ 平滑展开（details 原生无动画） */
.faq details[open] .ans{animation:kfIn .35s ease}

/* Hero 徽章可点击 */
.hero .badges span{cursor:pointer;transition:border-color .2s,color .2s}
.hero .badges span:hover{border-color:var(--violet);color:var(--violet)}

/* 统计卡点击弹跳 */
.stat{cursor:pointer}
.stat.pop{animation:kfPop .5s cubic-bezier(.2,.7,.3,1)}
@keyframes kfPop{0%{transform:scale(1)}35%{transform:scale(1.07)}65%{transform:scale(.97)}100%{transform:scale(1)}}

@media(prefers-reduced-motion:reduce){
  .kfxbar,.kfRip,.stat.pop,.faq details[open] .ans{animation:none}
}


/* ---- 底座：放大成气泡，让全身可见 ---- */
.dog-fab{width:92px !important;height:96px !important;border-radius:28px !important;border:2px solid #fff !important;
  background:linear-gradient(165deg,#fff 0%,#F0F7FF 100%) !important;
  box-shadow:0 10px 28px rgba(11,99,208,.32) !important;overflow:visible !important;
  animation:breathe 2.6s ease-in-out infinite;padding:0 !important;display:block !important}
.dog-fab .wang{width:100%;height:100%;display:block;overflow:visible}
@media(max-width:820px){.dog-fab{width:76px !important;height:80px !important;border-radius:24px !important}}
body.dark .dog-fab{background:linear-gradient(165deg,#151525,#1F1B3A) !important;border-color:#2A2A3F !important}

/* ---- 小精灵动作 ---- */
.wang{animation:wangFloat 2.2s ease-in-out infinite alternate}
@keyframes wangFloat{from{transform:translateY(0)}to{transform:translateY(-4px)}}
.wang-glow{animation:wangGlow 2.2s ease-in-out infinite alternate}
@keyframes wangGlow{from{opacity:.55;transform:scale(1)}to{opacity:.9;transform:scale(1.08)}}
.wang-tail{transform-origin:44px 92px;animation:wangWag .42s ease-in-out infinite alternate}
@keyframes wangWag{from{transform:rotate(-16deg)}to{transform:rotate(16deg)}}
.wang-body{transform-origin:60px 100px;animation:wangBreathe 2.2s ease-in-out infinite alternate}
@keyframes wangBreathe{from{transform:scale(1,1)}to{transform:scale(1.04,.97)}}
.wang-head{transform-origin:60px 74px;animation:wangNod 3.6s ease-in-out infinite}
@keyframes wangNod{0%,72%,100%{transform:rotate(0)}78%{transform:rotate(-4deg)}86%{transform:rotate(3deg)}}
.wang-ear{transform-origin:36px 12px;animation:wangEar 2.8s ease-in-out infinite}
.wang-earR{transform-origin:84px 12px;animation-duration:3.3s;animation-delay:.4s}
@keyframes wangEar{0%,80%,100%{transform:rotate(0)}84%{transform:rotate(-8deg)}90%{transform:rotate(4deg)}}
.wang-lids{transform-origin:center;animation:wangBlink 3.4s infinite}
@keyframes wangBlink{0%,90%,100%{transform:scaleY(0)}93%{transform:scaleY(1)}96%{transform:scaleY(0)}}
.wang-foot{animation:wangTap 1.1s ease-in-out infinite alternate}
.wang-foot:nth-of-type(2){animation-delay:.55s}
@keyframes wangTap{from{transform:translateY(0)}to{transform:translateY(-1.6px)}}

/* ---- 随机欢快动作（JS 触发） ---- */
.wang.mood-hop{animation:wangHop .62s cubic-bezier(.3,.8,.3,1)}
@keyframes wangHop{0%{transform:translateY(0) scale(1,1)}18%{transform:translateY(2px) scale(1.08,.9)}
  50%{transform:translateY(-16px) scale(.94,1.08)}72%{transform:translateY(2px) scale(1.06,.92)}
  100%{transform:translateY(0) scale(1,1)}}
.wang.mood-tilt{animation:wangTilt .9s ease-in-out}
@keyframes wangTilt{0%{transform:rotate(0)}25%{transform:rotate(-11deg)}60%{transform:rotate(9deg)}100%{transform:rotate(0)}}
.wang.mood-wave .wang-armR{transform-origin:84px 96px;animation:wangWave .45s ease-in-out 3}
@keyframes wangWave{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(-62deg)}}
.wang.mood-spin{animation:wangSpin .8s ease-in-out}
@keyframes wangSpin{0%{transform:rotate(0) scale(1)}45%{transform:rotate(160deg) scale(1.06)}100%{transform:rotate(360deg) scale(1)}}
.wang.mood-happy{animation:wangHappy .7s ease-in-out}
@keyframes wangHappy{0%,100%{transform:translateY(0)}30%{transform:translateY(-11px) rotate(-5deg)}60%{transform:translateY(-5px) rotate(4deg)}}

/* ---- 星光 ---- */
.wgSpark{position:absolute;width:9px;height:9px;border-radius:50%;pointer-events:none;z-index:5;
  background:radial-gradient(circle,#FDE68A,#F59E0B);animation:wgSpark .85s ease-out forwards}
@keyframes wgSpark{0%{opacity:1;transform:translate(0,0) scale(.4)}
  100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.1)}}

@media(prefers-reduced-motion:reduce){
  .wang,.wang-glow,.wang-tail,.wang-body,.wang-head,.wang-ear,.wang-lids,.wang-foot{animation:none}
}


/* ---- 头像恢复原样：64px 圆形 + 原有摇晃动画 ---- */
.dog-fab{width:64px !important;height:64px !important;border-radius:50% !important;
  border:3px solid #fff !important;background:#fff !important;
  box-shadow:0 8px 24px rgba(11,99,208,.30) !important;overflow:hidden !important;
  animation:breathe 2.6s ease-in-out infinite}
.dog-fab img{width:100%;height:100%;object-fit:cover;animation:wag 3.2s ease-in-out infinite}
body.dark .dog-fab{background:#fff !important;border-color:#fff !important}

/* ---- 聊天窗右上角关闭按钮 ---- */
.dog-panel{position:relative}
.dog-close{position:absolute;right:10px;top:10px;width:28px;height:28px;border-radius:50%;
  border:none;background:rgba(21,126,254,.10);color:var(--violet);font-size:15px;line-height:1;
  cursor:pointer;z-index:6;display:flex;align-items:center;justify-content:center;
  transition:background .2s,color .2s;padding:0}
.dog-close:hover{background:var(--violet);color:#fff}
.dog-head{padding-right:38px !important}
body.dark .dog-close{background:rgba(127,183,255,.16);color:#BFDBFE}
body.dark .dog-close:hover{background:#0B63D0;color:#fff}


.dog-panel{width:372px !important;max-width:92vw !important}
.dog-msgs{height:330px !important}
@media(max-width:640px){
  .dog-panel{width:calc(100vw - 32px) !important;max-width:calc(100vw - 32px) !important;bottom:74px !important}
  .dog-msgs{height:min(46vh,300px) !important}
}
.dog-chips{flex-wrap:nowrap !important;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.dog-chips::-webkit-scrollbar{display:none}
.dog-chips button{flex:none !important;white-space:nowrap}
/* 引导留联系方式 */
.dog-nudge{margin:6px 10px 10px;background:var(--violet-light);border:1px solid var(--violet-mid);
  border-radius:12px;padding:11px 12px;font-size:12.8px;line-height:1.6;color:#4C1D95}
.dog-nudge b{display:block;font-size:13px;color:var(--violet);margin-bottom:5px}
.dog-nudge .nb{margin-top:8px;display:block;width:100%;background:linear-gradient(135deg,var(--violet),var(--indigo));
  color:#fff;border:none;border-radius:9px;padding:9px 0;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
.dog-nudge .nb:hover{opacity:.92}
body.dark .dog-nudge{background:#1A1A2E;border-color:#2A2A3F;color:#BFDBFE}
/* 未读红点 */
.dog-fab::after{content:'';position:absolute;top:-2px;right:-2px;width:14px;height:14px;border-radius:50%;
  background:#EF4444;border:2px solid #fff;opacity:0;transform:scale(.5);transition:opacity .25s,transform .25s;pointer-events:none}
.dog-fab.unread::after{opacity:1;transform:scale(1)}

/* ===== Design v1.0 高级感覆盖层（2026-09-28，可整体回滚） ===== */
/* 深色 Hero：明暗节奏，高级感最大来源 */
.hero{background:#0B1220 !important;padding:100px 0 84px}
.hero::after{content:'';position:absolute;top:-140px;right:-100px;width:520px;height:520px;background:radial-gradient(circle,rgba(21,126,254,.22),transparent 70%);pointer-events:none;z-index:0}
.hero .tag{background:rgba(21,126,254,.12);border:1px solid rgba(127,183,255,.28);color:#7FB7FF}
.hero h1{color:#fff;font-size:clamp(40px,5.4vw,60px) !important;letter-spacing:-.02em}
.hero h1 em{background:linear-gradient(135deg,#157EFE,#7FB7FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.sub{color:#94A3B8;font-size:18px;max-width:680px}
.hero .badges span{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);color:#CBD5E1}
.hero .hero-play{background:rgba(21,126,254,.12);border:1px solid rgba(127,183,255,.30);color:#7FB7FF}
.hero .hero-play:hover{background:#157EFE;color:#fff}
.hero .btn{box-shadow:0 8px 24px -6px rgba(21,126,254,.45)}
.hero .btn-ghost{background:transparent;color:#CBD5E1;border:1.5px solid rgba(148,163,184,.45)}
.hero .btn-ghost:hover{border-color:#157EFE;color:#7FB7FF}
/* 顶部折扣横幅：深蓝渐变衔接深色 Hero */
.discount{background:linear-gradient(135deg,#0B63D0,#157EFE)}
/* CTA 区块：深色，与 Hero 呼应 */
.cta-sec{background:#0B1220;color:#fff;position:relative;overflow:hidden}
.cta-sec::after{content:'';position:absolute;bottom:-160px;left:-100px;width:460px;height:460px;background:radial-gradient(circle,rgba(21,126,254,.20),transparent 70%);pointer-events:none}
.cta-sec h2{color:#fff;letter-spacing:-.015em}
.cta-sec p{color:#94A3B8;opacity:1}
.cta-sec .btn{background:#157EFE;color:#fff;box-shadow:0 8px 24px -6px rgba(21,126,254,.5)}
.cta-sec .btn:hover{background:#0B63D0}
.cta-sec .contact-row{color:#CBD5E1}
.cta-sec .contact-row a{color:#E2E8F0}
.cta-sec .contact-row a:hover{color:#7FB7FF}
/* 页脚深色 */
footer{background:#0B1220;color:#64748B;padding:56px 0 40px;border-top:1px solid rgba(255,255,255,.06)}
footer a{color:#94A3B8}
footer a:hover{color:#157EFE}
/* 价格数字：加大 + 等宽 */
.price .ours{font-size:26px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
/* 卡片发丝边框 + 柔影（克制感） */
.svc-card,.team-card,.step-card,.faq-item{box-shadow:0 1px 2px rgba(15,23,42,.04),0 1px 3px rgba(15,23,42,.05) !important}
/* v1.0 补丁1：CTA 卡片在深色页面上加发丝边界 + 光斑不盖字 */
.cta-sec{border:1px solid rgba(255,255,255,.08)}
.cta-sec::after{z-index:0}
.cta-sec>*{position:relative;z-index:1}

/* ===== Design v2.0 调性升级（2026-10-10，参考 recent.design，可整体回滚） ===== */
:root{--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Consolas,monospace}
/* — Hero：编辑式左对齐 + 细网格 — */
.hero{text-align:left !important;padding:116px 0 92px !important;
  background-color:#0B1220 !important;
  background-image:linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px) !important;
  background-size:56px 56px !important}
.hero .tag{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  background:rgba(21,126,254,.10) !important;border:1px solid rgba(127,183,255,.25) !important;
  color:#7FB7FF !important;padding:8px 16px;border-radius:8px;margin-bottom:28px}
.hero h1{font-size:clamp(42px,6vw,76px) !important;line-height:1.08 !important;letter-spacing:-.03em;max-width:840px}
.hero p.sub{text-align:left;margin:26px 0 0;max-width:640px;font-size:17px;line-height:1.75}
.hero .cta{justify-content:flex-start !important;margin-top:38px}
.hero .badges{display:none !important}
.hero .hero-play{margin-top:34px;font-family:var(--mono);font-size:13px}
/* — 价值主张 bento 条 — */
.vprops{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.10);
  border-radius:16px;overflow:hidden;margin-top:56px}
.vp{background:#0E1626;padding:24px 22px 22px;transition:background .2s}
.vp:hover{background:#12203A}
.vp .no{font-family:var(--mono);font-size:12px;font-weight:700;color:#157EFE;letter-spacing:.08em}
.vp b{display:block;color:#fff;font-size:16.5px;font-weight:700;margin:12px 0 6px;letter-spacing:-.01em}
.vp p{font-size:13px;color:#64748B;line-height:1.65;margin:0}
@media(max-width:960px){.vprops{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.vprops{grid-template-columns:1fr}}
/* — 区块标题：编辑式 — */
.sec-head{text-align:left;margin-bottom:44px}
.sec-head .kicker{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:#157EFE}
.sec-head h2{font-size:clamp(30px,4vw,46px) !important;letter-spacing:-.02em}
.sec-head p{max-width:640px;font-size:15px}
/* — 数据条：bento 连接式，去渐变字 — */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:-8px}
.stat{background:#fff;border:none;border-radius:0;padding:26px 22px;text-align:left}
.stat b{display:block;font-family:var(--mono);font-size:30px;font-weight:700;color:#157EFE;
  background:none;-webkit-background-clip:initial;background-clip:initial;letter-spacing:-.02em}
.stat span{font-size:12.5px;color:#64748B}
body.dark .stats{background:#2A2A3F;border-color:#2A2A3F}
body.dark .stat{background:#0F1626}
body.dark .stat span{color:#94A3B8}
/* — 顶部横幅：mono 细条 — */
.discount{font-family:var(--mono);font-size:13px;letter-spacing:.02em;padding:13px 0 !important;background:linear-gradient(135deg,#0B63D0,#157EFE)}
/* — 案例卡元信息 mono — */
.case .meta{font-family:var(--mono);font-size:12px}
/* ===== v2.0 结束 ===== */
/* ===== 终端适配修复（2026-10-14）===== */
/* 深色模式移动菜单：浅字配深底，不再白底浅字 */
body.dark .mobile-menu{background:#0B1220;border-bottom:1px solid #1E2C4A;box-shadow:0 12px 30px rgba(0,0,0,.5)}
body.dark .mobile-menu a{color:#E6EDF7;border-bottom:1px solid #16233A}
body.dark .mobile-menu a:last-child{color:#157EFE;font-weight:700;border-bottom:none}
/* 浅色模式移动菜单可读性兜底 */
.mobile-menu a{color:#1E1B2E}
/* 菜单项变多后超高时滚动，不溢出屏幕 */
.mobile-menu{max-height:calc(100vh - 64px);overflow-y:auto}
/* 窄屏品牌区与按钮：防截断防挤压 */
@media(max-width:560px){
  .brand{font-size:17px;gap:8px}
  .brand img{width:32px;height:32px}
  .brand span small{display:none}
  header .btn{padding:9px 16px;font-size:14px;white-space:nowrap}
  header .nav{height:58px}
  .mobile-menu{top:58px;padding:10px 20px 16px}
  .mobile-menu a{font-size:15px;padding:12px 4px}
}
/* 合伙人板块小屏：流程卡单列、内边距收紧 */
@media(max-width:560px){
  .pt-steps{grid-template-columns:1fr}
  .pt-card{padding:20px 18px}
  .pt-ask{padding:20px 16px 14px}
  .pt h2{font-size:24px}
  .pt-lead{font-size:14.5px}
}
/* ===== mfbs 图标 SVG 化（2026-10-15，去 emoji / 去 AI 味儿，可整体回滚） ===== */
.card .ico.ico-svg{width:44px;height:44px;border-radius:13px;background:#F0F7FF;border:1px solid #DBEAFE;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.card .ico.ico-svg svg{width:22px;height:22px;stroke:#157EFE;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.dark .card .ico.ico-svg{background:rgba(21,126,254,.13);border-color:rgba(127,183,255,.22)}
/* ===== 团队分职能排版（2026-10-15，可整体回滚）===== */
.team-group{margin:0 0 46px}
.team-group:last-of-type{margin-bottom:28px}
.tg-head{display:flex;align-items:baseline;gap:12px;padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid #E9EDF4}
.tg-n{font-family:var(--mono);font-size:11.5px;font-weight:600;color:#157EFE;letter-spacing:.1em}
.tg-head h3{font-size:17.5px;font-weight:700;letter-spacing:-.01em;margin:0;color:#0F172A}
.tg-meta{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:#7A869A;letter-spacing:.02em;white-space:nowrap}
.tg-desc{font-size:13px;line-height:1.65;color:#5F6B7F;margin:0 0 16px}
/* 深色模式 */
body.dark .tg-head{border-bottom-color:#1E2C4A}
body.dark .tg-head h3{color:#E6EDF7}
body.dark .tg-meta{color:#7C8AA0}
body.dark .tg-desc{color:#94A3B8}
/* 小屏：编号换行、meta 独占一行 */
@media(max-width:640px){
  .team-group{margin-bottom:34px}
  .tg-head{flex-wrap:wrap;gap:6px 10px;padding-bottom:8px}
  .tg-head h3{font-size:16px}
  .tg-meta{margin-left:0;width:100%}
  .tg-desc{font-size:12.5px;margin-bottom:14px}
}
/* ===== 覆盖层结束 ===== */
