/* ============================================================
   首页专属样式
   ============================================================ */

/* Hero：左文右图错栏，标题两行错位排布 */
.hero{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
  gap:var(--s7);align-items:center;padding:var(--s8) 0 var(--s7)}
.hero-copy{min-width:0}
.hero h1{font-family:var(--f-sans);font-size:var(--t1);font-weight:400;
  letter-spacing:.03em;line-height:1.3;margin-top:var(--s5)}
.hero h1 span{display:block}
.hero h1 .l2{padding-left:1.6em}
.hero .lead{font-size:var(--t4);color:var(--tx2);max-width:48ch;margin-top:var(--s5)}
.hero .lead span{display:block}
.hero .lead span+span{margin-top:var(--s1)}
.hero .btns{display:flex;gap:var(--s3);margin-top:var(--s6);flex-wrap:wrap}
.hero .plat{font-family:var(--f-sans);font-size:var(--t6);color:var(--tx3);
  letter-spacing:.08em;margin-top:var(--s4)}

/* Hero 主视觉：薄罩面板 + 浮动参数签（示意，正式版替换为真实界面渲染） */
.hero-vis{position:relative;min-width:0}
.hero-panel{border:1px solid var(--hair);border-radius:var(--r-md);
  background:var(--veil-bg);
  -webkit-backdrop-filter:var(--veil-sm);backdrop-filter:var(--veil-sm);
  padding:0;margin:0;overflow:hidden}
.hero-panel svg{width:100%;height:auto;color:var(--mark)}
/* 细线动效：线稿描边绘入（全站 SVG 线稿统一，.rv.in 触发；html.js 门控：无 JS 时线稿常显） */
html.js .hero-panel svg :is(path,rect,circle),
html.js .step svg :is(path,rect),
html.js .deep-vis svg :is(path,rect,circle){stroke-dasharray:900;stroke-dashoffset:900}
.hero-vis.rv.in .hero-panel svg :is(path,rect,circle){animation:drw 2s var(--ease) .2s forwards}
.step.rv.in svg :is(path,rect),
.deep-vis.rv.in svg :is(path,rect,circle){animation:drw 1.8s var(--ease) .1s forwards}
@keyframes drw{to{stroke-dashoffset:0}}
.hero-panel figcaption{font-size:var(--t6);color:var(--tx3);margin-top:var(--s4);
  text-align:center;letter-spacing:.02em}
.chip{position:absolute;display:inline-flex;align-items:center;gap:8px;
  font-family:var(--f-sans);font-size:var(--t6);
  letter-spacing:.06em;color:var(--tx2);
  background:var(--veil-bg);border:1px solid var(--hair);border-radius:var(--r-pill);
  padding:7px 14px;
  -webkit-backdrop-filter:var(--veil-sm);backdrop-filter:var(--veil-sm)}
.chip::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--mark);
  animation:chip-pulse 2.8s ease-in-out infinite}
@keyframes chip-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
.chip.c1{left:-18px;top:14%}
.chip.c2{right:-14px;bottom:20%;color:var(--mark)}

/* 数字统计：大字号数字 + 累计动效（进入视口时 count-up）；三项恒在一行不折行 */
.stats{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  padding:var(--s6) var(--s5);
  display:flex;justify-content:center;gap:var(--s9);flex-wrap:nowrap}
.stat{text-align:center;min-width:120px}
.stat b{display:inline-flex;align-items:center;justify-content:center;gap:.14em;
  font-family:var(--f-sans);font-weight:400;
  font-size:clamp(36px,4.4vw,60px);letter-spacing:-.03em;line-height:1.1;
  color:var(--tx);font-variant-numeric:tabular-nums;white-space:nowrap}
.stat b .ic-arw{width:.5em;height:.5em;flex:none;stroke-width:2.4}
.stat b .dn{color:var(--dn)}
.stat b .up{color:var(--up)}
/* >span：仅命中直系标签；b 内数字 span 必须走继承拿大字号
   （曾用 .stat span 误伤数字 span——直接匹配规则压过继承，数字被压成 12px） */
.stat>span{display:block;margin-top:var(--s2);font-family:var(--f-sans);
  font-size:var(--t6);color:var(--tx3);letter-spacing:.12em}

/* 三件事：序号 + 左文右图（非图标网格），行 hover 染底 */
.steps{border-bottom:1px solid var(--hair)}
.step{display:grid;grid-template-columns:56px minmax(0,1fr) 300px;gap:var(--s5);
  padding:var(--s5) var(--s4);margin:0 calc(-1 * var(--s4));
  border-top:1px solid var(--hair);border-radius:var(--r-md);align-items:center}

.step>i{font-style:normal;font-family:var(--f-sans);font-size:var(--t6);color:var(--mark);
  letter-spacing:.1em;align-self:start;padding-top:6px;
  border-left:1px solid var(--hair);padding-left:var(--s4)}
.step h3{font-size:var(--t3);font-weight:500;letter-spacing:-.01em}
.step p{font-size:var(--t5);color:var(--tx2);margin-top:var(--s2);max-width:44ch}
.step svg{width:100%;height:66px;color:var(--mark)}

/* 单能力深预览：截图 + 三行注解 */
.deep{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:var(--s7);align-items:center}
.deep h2{font-family:var(--f-sans);font-size:var(--t2);font-weight:400;
  letter-spacing:.03em;line-height:1.4;margin:var(--s4) 0 var(--s4)}
.deep-anno li{display:flex;gap:var(--s4);padding:var(--s3) 0;border-top:1px solid var(--hair2);
  font-size:var(--t5);color:var(--tx2);line-height:1.7}
.deep-anno li i{font-style:normal;font-family:var(--f-sans);font-size:var(--t6);color:var(--mark);
  padding-top:4px;flex-shrink:0}
.deep-vis{border:1px solid var(--hair);border-radius:var(--r-md);
  background:var(--veil-bg);
  -webkit-backdrop-filter:var(--veil-sm);backdrop-filter:var(--veil-sm);
  padding:var(--s6)}
.deep-vis svg{width:100%;height:auto;color:var(--tx)}
.deep-vis figcaption{font-size:var(--t6);color:var(--tx3);margin-top:var(--s4);text-align:center;
  font-family:var(--f-sans);letter-spacing:.04em}

/* 模块速览条：一行指路，不展开清单 */
.mod-strip{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--s5);
  font-size:var(--t5)}
.mod-strip a{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 20px;
  border:1px solid var(--hair);border-radius:var(--r-pill);color:var(--tx);
  background:var(--veil-bg);-webkit-backdrop-filter:var(--veil-sm);backdrop-filter:var(--veil-sm);
  transition:border-color var(--d-fast) linear,transform var(--d-fast) var(--ease),background-color var(--d-fast) linear,box-shadow var(--d-fast) var(--ease),backdrop-filter var(--d-mid) linear}
.mod-strip a:hover{border-color:var(--mark);transform:translateY(-2px);
  color:var(--tx);box-shadow:var(--sh-frost);
  -webkit-backdrop-filter:var(--veil-hi);backdrop-filter:var(--veil-hi)}
.mod-strip a i{font-style:normal;font-family:var(--f-sans);font-size:var(--t6);color:var(--mark)}
.mod-strip .all{color:var(--mark);font-size:var(--t5);display:inline-flex;align-items:center;gap:6px}
.mod-strip .all .ic{transition:transform var(--d-fast) var(--ease)}
.mod-strip .all:hover .ic{transform:translateX(4px)}

/* 下载区：单平台 + 版本叠加 + Revit 适配标注 */
.dl-cards{display:flex;gap:var(--s3);justify-content:center;margin-top:var(--s6);flex-wrap:wrap}
.dl-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:220px;
  padding:var(--s5) var(--s6);border:1px solid var(--hair);border-radius:var(--r-md);
  background:var(--veil-bg);-webkit-backdrop-filter:var(--veil-sm);backdrop-filter:var(--veil-sm);
  transition:transform var(--d-fast) var(--ease),border-color var(--d-fast) linear,box-shadow var(--d-fast) var(--ease),backdrop-filter var(--d-mid) linear}
.dl-card:hover{transform:translateY(-2px);border-color:var(--mark);
  box-shadow:var(--sh-frost);
  -webkit-backdrop-filter:var(--veil-hi);backdrop-filter:var(--veil-hi)}
.dl-card b{font-size:var(--t4);font-weight:500}
.dl-card span{font-size:var(--t6);color:var(--tx3);font-family:var(--f-sans)}
.dl-card em{font-style:normal;font-size:var(--t5);color:var(--mark);margin-top:var(--s3);
  display:inline-flex;align-items:center;gap:5px}
/* 悬停光晕：与按钮同一语言（中性灰柔光从底部浮起） */
.mod-strip a,.dl-card{isolation:isolate}
.mod-strip a::after,.dl-card::after{
  content:'';position:absolute;left:8%;right:8%;bottom:-7px;height:14px;z-index:-1;
  border-radius:999px;background:var(--glow-c);pointer-events:none;
  filter:blur(14px);opacity:0;transform:translateY(5px) scaleX(.7);
  transition:opacity var(--d-mid) linear,transform var(--d-mid) var(--ease),filter var(--d-mid) linear}
.mod-strip a:hover::after,.dl-card:hover::after{opacity:.5;transform:translateY(0) scaleX(1)}
/* 版本叠加：历史版本行，最新置顶 */
.dl-ver{max-width:520px;margin:var(--s6) auto 0;text-align:left}
.dl-ver p{font-family:var(--f-sans);font-size:var(--t6);color:var(--tx3);
  letter-spacing:.12em;margin-bottom:var(--s2)}
.dl-ver a{position:relative;display:flex;align-items:baseline;gap:var(--s3);
  padding:var(--s3) var(--s4);border-top:1px solid var(--hair2);border-radius:var(--r-sm);
  font-size:var(--t5);color:var(--tx2);
  transition:color var(--d-fast) linear,padding-left var(--d-fast) var(--ease-exit)}
.dl-ver a::before{content:'';position:absolute;left:var(--s4);top:50%;width:5px;height:5px;
  margin-top:-2.5px;border-radius:50%;background:var(--mark);opacity:0;
  transform:translateX(-4px) scale(.4);
  transition:opacity var(--d-fast) linear,transform var(--d-fast) var(--ease-exit)}
.dl-ver a::after{content:'';position:absolute;left:var(--s4);right:var(--s4);bottom:0;height:1px;
  background:var(--mark);transform:scaleX(0);transform-origin:center;
  transition:transform var(--d-fast) var(--ease-exit)}
.dl-ver a:hover{color:var(--mark);padding-left:calc(var(--s4) + 14px);
  transition:color var(--d-fast) linear,padding-left var(--d-mid) var(--ease)}
.dl-ver a:hover::before{opacity:1;transform:translateX(0) scale(1);
  transition:opacity var(--d-fast) linear,transform var(--d-mid) var(--ease)}
.dl-ver a:hover::after{transform:scaleX(1);
  transition:transform var(--d-mid) var(--ease-spring)}
.dl-ver a:last-of-type{border-bottom:1px solid var(--hair2)}
.dl-ver b{font-family:var(--f-sans);font-weight:400;color:var(--tx);min-width:56px}
.dl-ver small{flex:1;color:var(--tx3);font-size:var(--t6)}
.dl-ver .tag{font-family:var(--f-sans);font-size:10px;color:var(--mark);
  border:1px solid color-mix(in srgb,var(--mark) 30%,transparent);border-radius:var(--r-sm);
  padding:1px 6px;letter-spacing:.08em}
.dl-ver .v-dl{font-family:var(--f-sans);font-size:var(--t6);color:var(--mark)}
/* 历史版本行：整体降噪，仅保留版本号可读 */
.dl-ver a.is-old{color:var(--tx3)}
.dl-ver a.is-old b{color:var(--tx2)}
.dl-ver .v-old{font-family:var(--f-sans);font-size:var(--t6);color:var(--tx3)}
/* Revit 适配版本 */
.dl-revit{display:flex;align-items:center;justify-content:center;gap:var(--s2);
  flex-wrap:wrap;margin-top:var(--s6)}
.dl-revit>p{font-family:var(--f-sans);font-size:var(--t6);color:var(--tx3);
  letter-spacing:.1em;margin-right:var(--s2)}
.dl-revit i{font-style:normal;font-family:var(--f-sans);font-size:var(--t6);
  color:var(--tx2);border:1px solid var(--hair);border-radius:var(--r-pill);
  padding:4px 12px;letter-spacing:.06em;
  background:var(--veil-bg);-webkit-backdrop-filter:var(--veil-sm);backdrop-filter:var(--veil-sm)}
.dl-meta{font-family:var(--f-sans);font-size:var(--t6);color:var(--tx3);
  letter-spacing:.06em;margin-top:var(--s5)}
.cta h2{font-family:var(--f-sans);font-size:var(--t2);font-weight:400;
  letter-spacing:.03em;margin-top:var(--s4)}
.dl-links{display:flex;gap:var(--s5);justify-content:center;margin-top:var(--s4);font-size:var(--t5)}
.dl-links a{position:relative;color:var(--tx2);padding-bottom:2px;
  transition:color var(--d-fast) linear,padding-left var(--d-fast) var(--ease-exit)}
.dl-links a::before{content:'';position:absolute;left:0;top:50%;width:5px;height:5px;
  margin-top:-2.5px;border-radius:50%;background:var(--mark);opacity:0;
  transform:translateX(-4px) scale(.4);
  transition:opacity var(--d-fast) linear,transform var(--d-fast) var(--ease-exit)}
.dl-links a::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:var(--mark);transform:scaleX(0);transform-origin:center;
  transition:transform var(--d-fast) var(--ease-exit)}
.dl-links a:hover{color:var(--mark);padding-left:14px;
  transition:color var(--d-fast) linear,padding-left var(--d-mid) var(--ease)}
.dl-links a:hover::before{opacity:1;transform:translateX(0) scale(1);
  transition:opacity var(--d-fast) linear,transform var(--d-mid) var(--ease)}
.dl-links a:hover::after{transform:scaleX(1);
  transition:transform var(--d-mid) var(--ease-spring)}

@media (max-width:1024px){
  .hero{grid-template-columns:1fr;gap:var(--s6)}
  .deep{grid-template-columns:1fr;gap:var(--s6)}
  .step{grid-template-columns:40px minmax(0,1fr)}
  .step svg{display:none}
}
@media (max-width:768px){
  .hero{padding:var(--s7) 0 var(--s5)}
  .hero h1 .l2{padding-left:1em}
  .hero-panel{border-radius:var(--r-md)}
  .chip.c1{left:8px}
  .chip.c2{right:8px}
  /* 双按钮一行等宽：不再上下堆叠（实测总宽 262px ≤ 320 视口内容宽 272px） */
  .hero .btns{flex-wrap:nowrap}
  .hero .btn-pri,.hero .btn-ghost{flex:1 1 0;min-width:0;justify-content:center;padding:12px 16px}
  .dl-card{flex:1 1 100%}
  /* 统计条一行并列：间距随视口自适应收缩（6→16px）、均分三栏，数字与标签均不折行 */
  .stats{gap:clamp(6px,2.4vw,16px);flex-wrap:nowrap;padding-left:var(--s3);padding-right:var(--s3)}
  .stat{min-width:0;flex:1 1 0}
  /* 标签缩字距保一行 */
  .stat>span{letter-spacing:.02em}
  /* 数字档位随视口缩放（390≈35px / 360≈32px），箭头与间距同步收档 */
  .stat b{font-size:clamp(30px,9vw,40px);gap:.08em}
  .stat b .ic-arw{width:.44em;height:.44em}
}
/* 360 以下小屏：内边距与间距再收一档，给百分比数字让位（三项并排不折行，320 实测可容） */
@media (max-width:360px){
  .stats{padding-left:var(--s2);padding-right:var(--s2);gap:var(--s1)}
  .stat b{font-size:clamp(28px,8.6vw,34px)}
}

/* ---------- 段落末尾通往手册的链接 ---------- */
.sec-more{margin-top:var(--s5);font-size:var(--t5)}
.sec-more a{position:relative;display:inline-flex;align-items:center;gap:6px;color:var(--tx2);
  transition:color var(--d-fast) linear,padding-left var(--d-fast) var(--ease-exit)}
.sec-more a::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:var(--mark);transform:scaleX(0);transform-origin:center;
  transition:transform var(--d-fast) var(--ease-exit)}
.sec-more a:hover{color:var(--mark);padding-left:14px;
  transition:color var(--d-fast) linear,padding-left var(--d-mid) var(--ease)}
.sec-more a:hover::after{transform:scaleX(1);transition:transform var(--d-mid) var(--ease-spring)}

/* ---------- 安装包未发布时的下载卡降级 ---------- */
.dl-card.is-disabled{opacity:.55;cursor:not-allowed}
.dl-card.is-disabled:hover{transform:none;border-color:var(--hair);box-shadow:none}
.dl-card.is-disabled:hover::after{opacity:0}
.dl-card.is-disabled em{color:var(--tx3)}

/* ---------- 首页功能展示带（第 2–4 页）：复用功能页版式 ---------- */
.fshow .fnhero{padding:0}
.fshow .fn-copy h2{display:flex;align-items:baseline;gap:var(--s4);margin-top:var(--s5);
  font-family:var(--f-sans);font-size:var(--t1);font-weight:400;letter-spacing:.02em}
.fshow .fn-copy h2 .fshow-n{font-style:normal;font-family:var(--f-sans);font-size:var(--t6);
  color:var(--mark);letter-spacing:.08em}
/* 奇偶页交替：偶数页图左文右 */
.fshow.flip .fnhero{grid-template-columns:minmax(0,1.26fr) minmax(0,1fr)}
.fshow.flip .fn-copy{order:2}
.fshow.flip .fn-vis{order:1}

@media (max-width:1024px){
  .fshow.flip .fnhero{grid-template-columns:1fr}
  .fshow.flip .fn-copy,.fshow.flip .fn-vis{order:0}
}
@media (max-width:768px){
  .fshow .fn-copy h2{font-size:var(--t2)}
}
