:root{
  --green:#00483b;
  --green-deep:#04352c;
  --green-2:#063a32;
  --mint:#5beaab;
  --mint-soft:rgba(91,234,171,.15);
  --ink:#0d3a31;
  --muted:#5b6a61;
  --line:#e6ece7;
  --bg:#f5f6f3;
  --card:#eef3ef;
  --white:#ffffff;
  --max:1180px;
  --serif:"Songti SC","STSong","Noto Serif SC","Source Han Serif SC",Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  --shadow-sm:0 1px 2px rgba(9,52,43,.05);
  --shadow-md:0 2px 4px rgba(9,52,43,.04),0 18px 44px -18px rgba(9,52,43,.16);
  --ease:cubic-bezier(.22,.61,.36,1);
  --fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:21px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--bg);
  font-family:var(--sans);
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%}
::selection{background:var(--mint);color:var(--green-deep)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}

/* ---------- 导航 ---------- */
.nav{
  position:sticky;top:0;z-index:20;
  background:rgba(245,246,243,.84);
  backdrop-filter:blur(20px) saturate(1.5);
  -webkit-backdrop-filter:blur(20px) saturate(1.5);
  border-bottom:1px solid var(--line);
}
.nav-inner{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}
.brand-logo{width:136px;height:auto;display:block;border-radius:10px}
.links{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end}
.links a{color:#41584f;font-size:var(--fs-sm);font-weight:600;letter-spacing:.02em;padding:6px 1px;transition:color .25s var(--ease)}
.links a:hover{color:var(--green)}
.links a.active{color:var(--green);border-bottom:1.5px solid var(--mint)}
.links .contact-link{
  background:var(--green);color:var(--mint);padding:9px 18px;border-radius:999px;
  box-shadow:0 8px 20px -10px rgba(0,72,59,.5);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.links .contact-link:hover{color:var(--mint);transform:translateY(-1px);box-shadow:0 12px 26px -10px rgba(0,72,59,.55)}

/* 汉堡按钮（桌面隐藏） */
.nav-toggle{display:none;width:44px;height:44px;flex:0 0 44px;border:1px solid var(--line);border-radius:12px;background:var(--white);box-shadow:var(--shadow-sm);cursor:pointer;padding:0}
.nav-toggle span{display:block;width:18px;height:2px;background:var(--green);margin:0;border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease)}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- 首屏 ---------- */
.hero{
  padding:118px 0 108px;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(1100px 480px at 88% -12%, rgba(91,234,171,.10), transparent 62%),
    linear-gradient(90deg,rgba(245,246,243,.97) 0%,rgba(245,246,243,.88) 46%,rgba(245,246,243,.58) 100%),
    url("hero-v2.webp") right center / min(52vw,760px) auto no-repeat;
}
.hero-copy{max-width:700px}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  color:#4f6d63;font-size:var(--fs-xs);font-weight:700;letter-spacing:.05em;margin-bottom:24px;
}
.eyebrow::before{
  content:"";width:8px;height:8px;border-radius:50%;
  background:var(--mint);box-shadow:0 0 0 5px var(--mint-soft);
}
h1{
  margin:0 0 26px;
  font-family:var(--serif);font-weight:600;
  font-size:clamp(42px,5vw,64px);line-height:1.22;letter-spacing:.015em;max-width:680px;
}
h1 .hl{color:var(--green);background:linear-gradient(transparent 86%,rgba(91,234,171,.45) 86%)}
.lead{margin:0;max-width:600px;color:#54625b;font-size:var(--fs-xl);line-height:1.95;font-weight:500}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}
.button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;padding:12px 24px;border-radius:999px;font-weight:600;font-size:var(--fs-md);letter-spacing:.03em;
  border:1px solid var(--line);background:var(--white);color:var(--green);
  box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.button:hover{transform:translateY(-2px);border-color:#bfd2c8;box-shadow:var(--shadow-md)}
.button.primary{background:var(--green);color:var(--mint);border-color:var(--green);box-shadow:0 12px 28px -12px rgba(0,72,59,.55)}
.button.primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px -12px rgba(0,72,59,.6)}

/* ---------- 子页页头 ---------- */
.page-hero{
  padding:88px 0 72px;border-bottom:1px solid var(--line);
  background:
    radial-gradient(900px 420px at 90% -20%, rgba(91,234,171,.09), transparent 60%),
    linear-gradient(180deg,#edf2ed,var(--bg));
}
.page-hero h1{font-size:clamp(36px,4.4vw,54px)}
.page-hero .lead{font-size:var(--fs-lg)}

/* ---------- 通用板块 ---------- */
section{padding:104px 0;border-bottom:1px solid var(--line)}
section:last-of-type{border-bottom:none}
.section-head{display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:start;margin-bottom:52px}
.kicker{
  display:block;color:var(--green);font-size:var(--fs-xs);font-weight:700;
  letter-spacing:.05em;margin-bottom:16px;
}
.section-head h2{margin:0;font-family:var(--serif);font-weight:600;font-size:34px;line-height:1.3;letter-spacing:.015em}
.section-head p{margin:0;color:var(--muted);font-size:var(--fs-lg);line-height:1.9;font-weight:500;max-width:720px;padding-top:10px}

/* 数据带 */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.stat{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow-sm)}
.stat b{display:block;font-family:var(--serif);font-size:34px;font-weight:600;color:var(--green);line-height:1.15;margin-bottom:10px}
.stat span{color:var(--muted);font-size:var(--fs-sm);font-weight:500;line-height:1.65;display:block}

/* 卡片网格 */
.cards-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cards-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.cards-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.card{
  background:var(--white);border:1px solid var(--line);border-radius:22px;padding:32px 30px;
  display:flex;flex-direction:column;
  box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
}
.card.soft{background:var(--card);box-shadow:none}
.card.soft:hover{transform:none;box-shadow:none}
a.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:#c7d6cd}
.card .num{display:block;color:var(--green);font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;margin-bottom:26px}
.card h3{margin:0 0 12px;font-size:var(--fs-2xl);font-weight:700;letter-spacing:.01em}
.card p{margin:0;color:var(--muted);line-height:1.85;font-weight:500;font-size:var(--fs-md)}
.card ul{margin:20px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.card li{color:#3f5750;font-weight:600;line-height:1.6;display:flex;gap:10px;font-size:var(--fs-md)}
.card li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mint);flex:0 0 6px;margin-top:.62em}
.card .more{
  margin-top:auto;padding-top:24px;
  color:var(--green);font-weight:600;font-size:var(--fs-sm);letter-spacing:.04em;
  transition:letter-spacing .3s var(--ease);
}
a.card:hover .more{letter-spacing:.1em}

/* 深绿宣言块 */
.statement{
  background:
    radial-gradient(800px 360px at 88% -40%, rgba(91,234,171,.14), transparent 58%),
    linear-gradient(135deg,var(--green) 0%,var(--green-deep) 100%);
  color:#fff;border-radius:26px;padding:44px;
  display:flex;flex-direction:column;justify-content:space-between;gap:28px;
  box-shadow:0 26px 60px -26px rgba(4,53,44,.5);
}
.statement strong{display:block;color:var(--mint);font-size:var(--fs-sm);font-weight:700;letter-spacing:.06em;margin-bottom:20px}
.statement p{margin:0;font-family:var(--serif);font-size:26px;line-height:1.6;font-weight:600;letter-spacing:.02em}

/* 闭环流程 */
.flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:14px;align-items:stretch}
.flow .step{
  background:var(--white);border:1px solid var(--line);border-radius:22px;padding:28px;
  box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.flow .step:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.flow .step b{display:block;color:var(--green);font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;margin-bottom:12px}
.flow .step h3{margin:0 0 10px;font-size:var(--fs-2xl);font-weight:700}
.flow .step p{margin:0;color:var(--muted);font-size:var(--fs-md);font-weight:500;line-height:1.8}
.flow .arrow{display:flex;align-items:center;color:var(--green);font-size:24px;font-weight:300}

/* 列表行（产品页用） */
.feat-rows{display:grid;gap:14px}
.feat-row{
  background:var(--white);border:1px solid var(--line);border-radius:20px;padding:26px 30px;
  display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:start;
  box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.feat-row:hover{transform:translateX(4px);box-shadow:var(--shadow-md)}
.feat-row h3{margin:0;font-size:var(--fs-xl);font-weight:700}
.feat-row p{margin:0;color:var(--muted);font-weight:500;line-height:1.85;font-size:var(--fs-md)}

/* 标签 */
.tags{display:flex;flex-wrap:wrap;gap:10px}
.tag{
  background:var(--white);border:1px solid var(--line);border-radius:999px;
  padding:9px 18px;font-size:var(--fs-sm);font-weight:600;letter-spacing:.02em;color:#3f5750;
  box-shadow:var(--shadow-sm);
}
.tag.mint{background:var(--mint-soft);border-color:transparent;color:var(--green);box-shadow:none}

/* CTA 带 */
.cta-band{
  background:
    radial-gradient(900px 420px at 92% -50%, rgba(91,234,171,.15), transparent 55%),
    linear-gradient(135deg,var(--green) 0%,var(--green-deep) 100%);
  border-radius:26px;padding:52px 52px;color:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
  box-shadow:0 26px 60px -26px rgba(4,53,44,.5);
}
.cta-band h2{margin:0 0 12px;font-family:var(--serif);font-weight:600;font-size:30px;letter-spacing:.015em}
.cta-band p{margin:0;color:#c9e0d8;font-weight:500;line-height:1.85;max-width:540px;font-size:var(--fs-lg)}
.cta-band .button{background:var(--mint);border-color:var(--mint);color:var(--green-deep);box-shadow:0 10px 26px -12px rgba(91,234,171,.55)}
.cta-band .button:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(91,234,171,.6)}

/* 页脚 */
footer{padding:60px 0 52px;color:var(--muted);font-size:var(--fs-sm);font-weight:500}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px;margin-bottom:36px}
.foot-grid h4{margin:0 0 14px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;color:#4f6d63}
.foot-grid a{display:block;color:var(--muted);margin-bottom:10px;transition:color .25s}
.foot-grid a:hover{color:var(--green)}
.foot-brand img{width:126px;border-radius:8px;margin-bottom:14px}
.foot-brand p{margin:0;line-height:1.8;max-width:280px}
.foot-bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;letter-spacing:.02em}

/* 规格表 */
.spec-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--white);border:1px solid var(--line);border-radius:20px;overflow:hidden;font-size:var(--fs-md);box-shadow:var(--shadow-sm)}
.spec-table th,.spec-table td{text-align:left;padding:16px 24px;border-bottom:1px solid var(--line);font-weight:500}
.spec-table tr:last-child th,.spec-table tr:last-child td{border-bottom:none}
.spec-table th{background:var(--card);color:var(--ink);font-weight:700;width:32%;letter-spacing:.02em}
.spec-table td{color:#3f5750;line-height:1.75}
.spec-table tr{transition:background .25s}
.spec-table tbody tr:hover td{background:#fafbfa}
.tbd{color:#9aa7a2;font-style:italic;font-weight:500}
.tbd::before{content:"〔待补充〕";font-style:normal;font-size:var(--fs-xs);color:#9aa7a2;background:var(--card);padding:3px 9px;border-radius:6px;margin-right:10px;letter-spacing:.04em}
/* 芯片/模型列表 */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.chip{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 14px;font-size:var(--fs-sm);font-weight:600;color:var(--green);letter-spacing:.02em}
.chip.dim{color:#9aa7a2;background:transparent;border-style:dashed}

/* 滚动显现 */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* 响应式 */
@media (max-width: 940px){
  .hero{background-size:680px auto;background-position:right 74%}
  .section-head{grid-template-columns:1fr;gap:18px}
  .section-head p{padding-top:0}
  .stats,.cards-4{grid-template-columns:1fr 1fr}
  .cards-3,.cards-2{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr}
  .flow .arrow{justify-content:center;transform:rotate(90deg)}
  .feat-row{grid-template-columns:1fr;gap:10px}
  .foot-grid{grid-template-columns:1fr 1fr}
  section{padding:80px 0}
}
@media (max-width: 680px){
  .nav-inner{flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px 0}
  .nav-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;margin-left:auto}
  .links{display:none;width:100%;flex-direction:column;align-items:stretch;gap:2px;padding:6px 0 14px}
  .nav.open .links{display:flex}
  .links a{min-height:44px;display:flex;align-items:center;padding:10px 8px;font-size:var(--fs-md);border-bottom:1px solid var(--line)}
  .links a.active{border-bottom:1.5px solid var(--mint)}
  .links .contact-link{margin-top:10px;justify-content:center;text-align:center}
  .hero{
    padding:56px 0 380px;
    background:
      radial-gradient(600px 300px at 80% 0%, rgba(91,234,171,.10), transparent 60%),
      linear-gradient(180deg,rgba(245,246,243,.97) 0%,rgba(245,246,243,.96) 56%,rgba(245,246,243,.55) 100%),
      url("hero-v2.webp") center bottom / 620px auto no-repeat;
  }
  h1{font-size:40px}
  section{padding:60px 0}
  .stats,.cards-4{grid-template-columns:1fr}
  .statement,.card,.cta-band{border-radius:20px}
  .statement,.cta-band{padding:36px 28px}
  .statement p{font-size:22px}
  .cta-band h2{font-size:26px}
  .foot-grid{grid-template-columns:1fr}
}

/* ===== 请求流动线（产品 · 臻云智元） ===== */
.flow-fig{margin-top:30px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:20px 20px 10px;box-shadow:var(--shadow-sm)}
.flow-fig .flow-scroll{width:100%}
.flow-fig svg{width:100%;height:auto;display:block;min-width:640px}
.flow-fig figcaption{font-size:var(--fs-sm);color:var(--muted);text-align:center;padding:10px 0 6px}
@media (max-width:680px){.flow-fig{padding:12px 10px 6px}.flow-fig .flow-scroll{overflow-x:auto}.flow-fig figcaption{font-size:var(--fs-xs)}}

/* ===================== 主页动效（首屏粒子 · 编排入场 · 卡内微动效） ===================== */
/* 1) 首屏粒子层 */
.hero{position:relative;overflow:hidden}
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.4s var(--ease)}
.hero-canvas.ready{opacity:1}
.hero>.wrap{position:relative;z-index:1}

/* 2) 首屏一次编排入场（文字逐级浮现） */
.hero-copy>*{animation:heroIn .72s var(--ease) both}
.hero-copy>*:nth-child(1){animation-delay:.04s}
.hero-copy>*:nth-child(2){animation-delay:.13s}
.hero-copy>*:nth-child(3){animation-delay:.22s}
.hero-copy>*:nth-child(4){animation-delay:.31s}
@keyframes heroIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* 3) 卡片分层入场（容器由 JS 标记 .stagger，无 JS 时全部正常显示） */
.stagger>*{opacity:0}
.reveal.in .stagger>*{animation:cardIn .7s var(--ease) both}
.reveal.in .stagger>*:nth-child(1){animation-delay:.06s}
.reveal.in .stagger>*:nth-child(2){animation-delay:.16s}
.reveal.in .stagger>*:nth-child(3){animation-delay:.26s}
.reveal.in .stagger>*:nth-child(4){animation-delay:.36s}
@keyframes cardIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* 4) 卡内微动效（默认静态可读，滚动到时才动） */
.motif{display:flex;height:26px;margin:0 0 22px}
.motif i{display:block}
/* 4a 数据：方块依次点亮（清洗流水） */
.motif-data{align-items:center;gap:7px}
.motif-data i{width:15px;height:15px;border-radius:5px;background:#dbe6e0}
.reveal.in .motif-data i{animation:dataPulse 2.6s var(--ease) infinite}
.reveal.in .motif-data i:nth-child(2){animation-delay:.18s}
.reveal.in .motif-data i:nth-child(3){animation-delay:.36s}
.reveal.in .motif-data i:nth-child(4){animation-delay:.54s}
.reveal.in .motif-data i:nth-child(5){animation-delay:.72s}
@keyframes dataPulse{0%,62%,100%{background:#dbe6e0}16%,32%{background:var(--mint)}}
/* 4b 算力：机柜负载呼吸 */
.motif-compute{align-items:flex-end;gap:5px}
.motif-compute i{width:7px;border-radius:3px;background:var(--green);opacity:.22;transform-origin:bottom;height:100%}
.motif-compute i:nth-child(1){height:34%}
.motif-compute i:nth-child(2){height:62%}
.motif-compute i:nth-child(3){height:88%}
.motif-compute i:nth-child(4){height:54%}
.motif-compute i:nth-child(5){height:76%}
.motif-compute i:nth-child(6){height:42%}
.reveal.in .motif-compute i{animation:barBreath 3s var(--ease) infinite}
.reveal.in .motif-compute i:nth-child(2){animation-delay:.3s}
.reveal.in .motif-compute i:nth-child(3){animation-delay:.6s}
.reveal.in .motif-compute i:nth-child(4){animation-delay:.9s}
.reveal.in .motif-compute i:nth-child(5){animation-delay:1.2s}
.reveal.in .motif-compute i:nth-child(6){animation-delay:1.5s}
@keyframes barBreath{0%,100%{opacity:.18;transform:scaleY(.78)}50%{opacity:.8;transform:scaleY(1)}}
/* 4c 模型：请求流经节点（token 页流动线的缩微版） */
.motif-token{position:relative;width:132px;align-items:center}
.motif-token::before{content:"";position:absolute;left:4px;right:4px;top:50%;height:1.5px;background:var(--line);transform:translateY(-50%)}
.motif-token i{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;background:#cfe0d8;transform:translateY(-50%)}
.motif-token i:nth-child(1){left:0}
.motif-token i:nth-child(2){left:57px}
.motif-token i:nth-child(3){left:114px}
.motif-token::after{content:"";position:absolute;top:50%;left:0;width:7px;height:7px;border-radius:50%;background:var(--mint);transform:translateY(-50%);opacity:0}
.reveal.in .motif-token::after{animation:tokenFlow 2.8s var(--ease) infinite}
.reveal.in .motif-token i:nth-child(3){animation:nodePulse 2.8s var(--ease) infinite 1.4s}
@keyframes tokenFlow{0%{left:0;opacity:0}10%{opacity:1}48%{left:57px}90%{opacity:1}100%{left:114px;opacity:0}}
@keyframes nodePulse{0%,40%,100%{box-shadow:0 0 0 0 rgba(91,234,171,0)}20%{box-shadow:0 0 0 6px rgba(91,234,171,.28)}}

/* 5) 减动效降级 */
@media (prefers-reduced-motion: reduce){
  .hero-copy>*{animation:none}
  .stagger>*{opacity:1}
  .reveal.in .stagger>*,.reveal.in .motif i,.reveal.in .motif-token::after{animation:none}
  .motif-data i{background:var(--mint)}
  .motif-compute i{opacity:.55;transform:none}
}
