/* ============================================================
   砚佐 YZ LOOP · 官网设计系统
   严格遵循《砚佐品牌VI手册 260930》
   墨黑 #121417 · 宣纸白 #F5F0E8 · 古铜金 #D49E48 · 暖灰 #A0A0A5
   硅谷风：冷调 · 扁平 · 极简 · 留白 · 金色只做点睛
   ============================================================ */

:root{
  /* ---- VI 标准色 ---- */
  --ink:      #121417;   /* 墨黑   绝对主色 70% */
  --paper:    #F5F0E8;   /* 宣纸白 20% */
  --gold:     #D49E48;   /* 古铜金 强调 ≤10% */
  --warm:     #A0A0A5;   /* 暖灰   辅助 */

  /* ---- 墨黑同色系延伸（冷调，非新彩色）---- */
  --ink-1: #161A1F;
  --ink-2: #171B20;
  --ink-3: #1B2026;
  --ink-4: #1E232A;
  --ink-5: #232A32;
  --line:  #2A3038;
  --line-2:#343B44;
  --line-3:#454D57;
  --dim:   #6E7278;
  --dim-2: #55595F;

  --gold-soft: rgba(212,158,72,.16);
  --gold-line: rgba(212,158,72,.42);
  --paper-08: rgba(245,240,232,.08);
  --paper-14: rgba(245,240,232,.14);
  --paper-40: rgba(245,240,232,.40);
  --paper-64: rgba(245,240,232,.64);
  --paper-78: rgba(245,240,232,.78);

  --font: "Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei","Hiragino Sans GB",-apple-system,"Segoe UI",Roboto,sans-serif;

  --maxw: 1440px;
  --gutter: clamp(18px, 3vw, 40px);
  --sec: clamp(96px, 12vw, 172px);      /* 章节垂直间距 */
  --r: 4px;                              /* 扁平：圆角极小 */
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font);
  font-size:16px;
  line-height:1.85;
  font-weight:400;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  /* 中文正文按自然宽度换行（可逐字断行，属正常中文排版）；
     标题/标签等短文本的禁止拆字规则见文件末尾的短文本白名单 */
  overflow-wrap:break-word;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

::selection{ background:var(--gold); color:var(--ink); }

/* ---------- 布局 ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }
.wrap-wide{ max-width:1480px; }
section{ position:relative; }
.sec{ padding:var(--sec) 0; }
.sec-tight{ padding:calc(var(--sec) * .62) 0; }
/* 内容型两栏屏（产品金字塔 / LOOP 循环 / 双螺旋）：纵向留白压一档，
   让第三、四、五屏的整体高度向第一、二屏看齐 */
.sec-slim{ padding:calc(var(--sec) * .66) 0; }
.sec-slim .sec-head{ margin-bottom:clamp(34px,3.4vw,48px); }
/* 四段成环 / 双螺旋验证两屏：再压一档，画幅收敛到 4:3 */
#loop.sec-slim, #lab.sec-slim{ padding:calc(var(--sec) * .52) 0; }
#loop.sec-slim .sec-head, #lab.sec-slim .sec-head{ margin-bottom:clamp(26px,2.6vw,38px); }
.divide{ height:1px; background:var(--line); border:0; margin:0; }

/* ---------- 排版 ---------- */
.eyebrow{
  font-size:clamp(14px,1.15vw,16.5px); font-weight:500; letter-spacing:.2em;
  color:var(--gold); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin:0 0 22px;
}
.eyebrow::before{
  content:""; width:26px; height:1px; background:var(--gold); opacity:.8;
}
.eyebrow.plain::before{ display:none; }

h1,h2,h3,h4{ font-weight:700; line-height:1.22; margin:0; letter-spacing:-.01em; }
h1{ font-size:clamp(38px, 6.2vw, 84px); }
h2{ font-size:clamp(27px, 3.5vw, 46px); }
h3{ font-size:clamp(19px, 2vw, 25px); }
h4{ font-size:clamp(16px, 1.3vw, 18px); }

.lead{ font-size:clamp(16px,1.55vw,20px); color:var(--paper-64); line-height:1.9; }
.muted{ color:var(--warm); }
.dim{ color:var(--dim); }
.small{ font-size:13.5px; line-height:1.8; }
.tiny{ font-size:12px; line-height:1.7; letter-spacing:.02em; }
.gold{ color:var(--gold); }
.warmup{ color:var(--paper); }

.sec-head{ max-width:820px; margin-bottom:clamp(48px,5vw,72px); }
.sec-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.sec-head h2{ margin-bottom:20px; text-wrap:balance; }
.sec-head .lead{ text-wrap:pretty; }
.sec-head p{ margin:0; }
/* 宽版区块头：容器放宽 → 副标题一行放得下；标题仍锁 820px 保可读 */
.sec-head.wide{ max-width:1040px; }
.sec-head.wide h2{ max-width:820px; }
.sec-head.wide.center h2{ margin-left:auto; margin-right:auto; }

/* 大字号展示行 */
.display{
  font-size:clamp(24px,3vw,38px); line-height:1.42; font-weight:700; letter-spacing:-.005em;
}
.display .light{ font-weight:400; color:var(--paper-64); }

/* ---------- 顶部导航 ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:120;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding:18px var(--gutter);
  transition:background .4s var(--ease), border-color .4s var(--ease), padding .4s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.solid{
  background:rgba(18,20,23,.82);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
  padding-top:13px; padding-bottom:13px;
}
.brand{ display:flex; align-items:center; gap:13px; flex:none; }
.brand .mark{ width:33px; height:33px; flex:none; }
.brand .mark path{ stroke:var(--gold); }
.brand .mark .yz{ fill:var(--gold); }
img.mark, .foot-brand img.mark{ object-fit:contain; }
.brand .txt{ display:flex; align-items:baseline; gap:10px; }
.brand .txt b{ font-size:17.5px; font-weight:700; letter-spacing:.02em; }
.brand .txt span{ font-size:12.5px; letter-spacing:.2em; color:var(--warm); }

.nav-links{ display:flex; align-items:center; gap:30px; }
.nav-links a{
  font-size:16.5px; color:var(--paper-64); position:relative; padding:6px 0;
  transition:color .3s var(--ease);
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--gold); transition:width .35s var(--ease);
}
.nav-links a:hover{ color:var(--paper); }
.nav-links a:hover::after{ width:100%; }
.nav-links a.on{ color:var(--paper); }
.nav-links a.on::after{ width:100%; }

/* 产品生态下拉 */
.nav-item{ position:relative; display:flex; align-items:center; }
.nav-drop-btn{
  display:inline-flex; align-items:center; gap:7px;
  font-size:16.5px; color:var(--paper-64); position:relative; padding:6px 0;
  transition:color .3s var(--ease); font-family:inherit; letter-spacing:inherit;
}
.nav-drop-btn::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--gold); transition:width .35s var(--ease);
}
.nav-item:hover .nav-drop-btn,
.nav-item.open .nav-drop-btn,
.nav-drop-btn.on{ color:var(--paper); }
.nav-item:hover .nav-drop-btn::after,
.nav-item.open .nav-drop-btn::after,
.nav-drop-btn.on::after{ width:100%; }
.nav-drop-btn .caret{
  width:6px; height:6px; margin-top:-2px; flex:none;
  border-right:1px solid currentColor; border-bottom:1px solid currentColor;
  transform:rotate(45deg); transition:transform .3s var(--ease);
}
.nav-item.open .nav-drop-btn .caret{ transform:rotate(-135deg); margin-top:2px; }

.nav-drop{
  position:absolute; top:calc(100% + 20px); left:50%; transform:translateX(-50%) translateY(-8px);
  min-width:322px; padding:14px;
  background:rgba(18,20,23,.94);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid var(--line); border-radius:2px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;
}
.nav-item.open .nav-drop{
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
@media (hover:hover) and (pointer:fine){
  .nav-item.has-drop:hover .nav-drop{
    opacity:1; visibility:visible; pointer-events:auto;
    transform:translateX(-50%) translateY(0);
  }
}
.nav-drop::before{
  content:""; position:absolute; top:-20px; left:0; right:0; height:20px;
}
.nd-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  padding:2px 8px 10px; border-bottom:1px solid var(--line);
}
.nd-head b{ font-size:14.5px; font-weight:700; }
.nd-head span{ font-size:11.5px; color:var(--dim); letter-spacing:.06em; }
.nd-k{
  font-size:10.5px; color:var(--gold); letter-spacing:.1em; flex:none;
}
.nav-drop a{
  display:block; padding:9px 8px; border-radius:2px;
  transition:background .25s var(--ease);
}
.nav-drop a:hover{ background:rgba(212,158,72,.07); }
.nav-drop a b{
  display:block; font-size:14.5px; font-weight:600; color:var(--paper);
  margin-bottom:2px;
}
.nav-drop a .nd-d{ display:block; font-size:11.5px; color:var(--dim); line-height:1.5; }
.nav-drop a .nd-k{ display:inline-block; margin-top:4px; }

.nav-right{ display:flex; align-items:center; gap:18px; flex:none; }
.nav-burger{ display:none; width:38px; height:38px; place-items:center; }
.nav-burger i{ display:block; width:20px; height:1.5px; background:var(--paper); position:relative; }
.nav-burger i::before,.nav-burger i::after{
  content:""; position:absolute; left:0; width:20px; height:1.5px; background:var(--paper);
  transition:transform .3s var(--ease), top .3s var(--ease);
}
.nav-burger i::before{ top:-6px; } .nav-burger i::after{ top:6px; }
.menu-open .nav-burger i{ background:transparent; }
.menu-open .nav-burger i::before{ top:0; transform:rotate(45deg); }
.menu-open .nav-burger i::after{ top:0; transform:rotate(-45deg); }

.drawer{
  position:fixed; inset:0; z-index:110; background:var(--ink);
  padding:96px var(--gutter) 48px; display:flex; flex-direction:column; gap:4px;
  transform:translateY(-100%); transition:transform .5s var(--ease); overflow-y:auto;
}
.drawer.open{ transform:none; }
.drawer a{
  font-size:28px; font-weight:700; padding:16px 0; border-bottom:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:center;
}
.drawer a span{ font-size:13.5px; color:var(--dim); font-weight:400; }
.drawer .dw-group{ display:flex; flex-direction:column; }
.drawer .dw-t{
  font-size:12px; letter-spacing:.16em; color:var(--gold);
  padding:20px 0 6px; border-bottom:1px solid var(--line);
}
.drawer .dw-group a{ padding-left:14px; font-size:23px; }
.drawer .drawer-cta{ margin-top:28px; }
.drawer a.btn{
  font-size:16.5px; font-weight:700; padding:17px 24px; justify-content:center;
  border-bottom:0; color:var(--ink); gap:10px;
}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px; font-size:14.5px; font-weight:500; letter-spacing:.02em;
  border:1px solid var(--line-2); border-radius:var(--r);
  transition:border-color .3s var(--ease), background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
  white-space:nowrap;
}
.btn svg{ width:15px; height:15px; transition:transform .3s var(--ease); }
.btn:hover{ border-color:var(--gold-line); }
.btn:hover svg{ transform:translateX(4px); }
.btn-primary{
  background:var(--gold); border-color:var(--gold); color:var(--ink); font-weight:700;
}
.btn-primary:hover{ background:#E0AB58; border-color:#E0AB58; }
.btn-ghost{ color:var(--paper); }
.btn-ghost:hover{ background:var(--paper-08); }
.btn-sm{ padding:11px 20px; font-size:15px; }
.btn-lg{ padding:17px 34px; font-size:15.5px; }

.link-arrow{ display:inline-flex; align-items:center; gap:9px; font-size:14px; color:var(--gold); white-space:nowrap; border-bottom:1px solid transparent; transition:gap .3s var(--ease), border-color .3s var(--ease); }
.link-arrow svg{ width:16px; height:16px; flex:none; }
.link-arrow:hover{ gap:14px; border-bottom-color:var(--gold-line); }

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100svh; display:grid; grid-template-rows:1fr auto;
  align-items:center; padding:132px 0 34px; overflow:hidden;
}
#hero-canvas{
  position:absolute; inset:0; width:100%; height:100%; z-index:0;
}
.hero::after{  /* 底部渐隐，压住粒子 */
  content:""; position:absolute; inset:auto 0 0 0; height:34%;
  background:linear-gradient(to bottom, rgba(18,20,23,0), var(--ink)); z-index:1; pointer-events:none;
}
.hero-inner{ position:relative; z-index:2; width:100%; align-self:center; }
.hero-copy{
  max-width:880px; opacity:0; transform:translateY(18px);
  transition:opacity 1.1s var(--ease), transform 1.1s var(--ease);
}
.hero-copy.in{ opacity:1; transform:none; }
.hero-meta{
  position:relative; z-index:2; align-self:end; margin-top:56px;
  display:flex; justify-content:flex-start; align-items:flex-end; gap:24px;
}
.hero h1{ margin:0 0 26px; text-wrap:balance; }
.hero h1 .thin{ font-weight:400; color:var(--paper-64); }
.hero .lead{ max-width:840px; margin:0 0 22px; text-wrap:pretty; }
.hero .lead .nb{ white-space:nowrap; }
/* Hero 五大产品标签（纯展示，不跳转） */
.hero-tags{ display:flex; flex-wrap:wrap; gap:9px; margin:0 0 36px; max-width:860px; }
.hero-tags span{
  display:inline-flex; align-items:baseline; gap:6px;
  padding:7px 14px; border:1px solid var(--line); border-radius:999px;
  background:rgba(245,240,232,.025);
  font-size:13.5px; line-height:1.25; letter-spacing:.02em; color:var(--paper-64);
}
.hero-tags span b{ font-weight:600; color:var(--gold); letter-spacing:.03em; }
.hero .eyebrow{ font-size:clamp(15.5px,1.3vw,19px); letter-spacing:.2em; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.hero-scroll{ display:flex; align-items:center; gap:11px; font-size:12px; letter-spacing:.2em; color:var(--dim); }
.hero-scroll i{ display:block; width:1px; height:34px; background:linear-gradient(var(--gold), transparent); }
.hero-agents{
  margin-left:auto; text-align:right; display:flex; flex-direction:column; gap:5px;
  opacity:0; transform:translateY(10px); transition:opacity 1.2s var(--ease) .55s, transform 1.2s var(--ease) .55s;
}
.hero-agents.in{ opacity:1; transform:none; }.hero-agents b{ font-size:12px; font-weight:600; letter-spacing:.1em; color:rgba(212,158,72,.88); }
.hero-agents span{ font-size:12px; letter-spacing:.04em; color:var(--dim); }

/* 光标光晕 */
.cursor-glow{
  position:fixed; width:520px; height:520px; left:0; top:0; z-index:1; pointer-events:none;
  background:radial-gradient(circle, rgba(212,158,72,.10), rgba(212,158,72,0) 62%);
  transform:translate(-50%,-50%); opacity:0; transition:opacity .5s var(--ease); mix-blend-mode:screen;
}
body.has-cursor .cursor-glow{ opacity:1; }

/* ---------- 通用卡片 ---------- */
.card{
  border:1px solid var(--line); background:var(--ink-2); border-radius:var(--r);
  padding:clamp(24px,2.4vw,34px); position:relative;
  transition:border-color .35s var(--ease), background .35s var(--ease), transform .35s var(--ease);
}
.card:hover{ border-color:var(--line-3); background:var(--ink-3); }
a.card.line-hover:hover{ transform:translateY(-4px); border-color:var(--gold-line); }
.card .idx{ font-size:14px; letter-spacing:.16em; color:var(--gold); }
.card h3{ margin:16px 0 12px; }
.card p{ margin:0; color:var(--paper-64); font-size:14.5px; line-height:1.9; }
.card .tail{ margin-top:20px; padding-top:16px; border-top:1px solid var(--line); font-size:12.5px; color:var(--dim); }

/* 悬停时左侧金线延展 */
.card.line-hover::before{
  content:""; position:absolute; left:0; top:0; height:0; width:2px; background:var(--gold);
  transition:height .4s var(--ease);
}
.card.line-hover:hover::before{ height:100%; }

.grid{ display:grid; gap:clamp(16px,1.6vw,24px); }
.g2{ grid-template-columns:repeat(2,1fr); }
.g3{ grid-template-columns:repeat(3,1fr); }
.g4{ grid-template-columns:repeat(4,1fr); }
.g5{ grid-template-columns:repeat(5,1fr); }
.g-auto{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }

/* ---------- 痛点：四缺口 ---------- */
.gap-card{ display:flex; flex-direction:column; min-height:300px; }
.gap-card .num{ font-size:13px; letter-spacing:.18em; color:var(--gold); }
.gap-card h3{ margin:14px 0 14px; font-size:clamp(18px,1.7vw,22px); }
.gap-card .desc{ color:var(--paper-64); font-size:14.5px; }
.gap-card .fact{
  margin-top:auto; padding:14px 0 0 15px; border-top:1px solid var(--line); position:relative;
  font-size:12.5px; color:var(--warm); line-height:1.8;
}
.gap-card .fact::before{
  content:""; position:absolute; left:0; top:21px; width:2px; height:15px; background:var(--gold);
}

/* ---------- 线性图标 ---------- */
.glyph{ width:22px; height:22px; display:block; }
.glyph path,.glyph circle,.glyph rect,.glyph line,.glyph polyline{
  stroke:currentColor; stroke-width:1.35; fill:none; stroke-linecap:round; stroke-linejoin:round;
}
.ibox{
  width:46px; height:46px; flex:none; border:1px solid var(--line-2); border-radius:var(--r);
  display:grid; place-items:center; color:var(--gold);
  background:rgba(212,158,72,.05); margin-bottom:20px;
  transition:border-color .35s var(--ease), background .35s var(--ease), transform .35s var(--ease);
}
.card:hover .ibox,.engine:hover .ibox{ border-color:var(--gold-line); transform:translateY(-2px); }
.engine-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.engine-top .ibox{ margin-bottom:0; }
.lyr-icon{
  display:inline-grid; place-items:center; width:30px; height:30px; border:1px solid var(--line-2);
  border-radius:2px; margin-right:13px; color:var(--gold); vertical-align:middle; flex:none;
}
.lyr-icon svg{ width:16px; height:16px; }
.lab-ic{
  width:38px; height:38px; border:1px solid var(--line-2); border-radius:var(--r);
  display:grid; place-items:center; color:var(--gold); background:rgba(212,158,72,.05);
  margin-bottom:18px; transition:border-color .35s var(--ease);
}
.lab-ic svg{ width:19px; height:19px; }
.lab-cell:hover .lab-ic{ border-color:var(--gold-line); }

/* ---------- 一次循环：环图 + 侧栏 ---------- */
.loop-layout{ display:grid; grid-template-columns:1.12fr 0.88fr; gap:clamp(28px,4vw,72px); align-items:center; }
.loop-viz{ position:relative; }
/* 环不再撑满整列：按 4:3 收敛（宽 : 高 = 4 : 3.6，含上下留白） */
.loop-viz > svg{ max-width:clamp(300px,33vw,430px); margin:0 auto; }
.ringviz{ width:100%; height:auto; display:block; }
.ringviz .rk-halo{ stroke:rgba(245,240,232,.05); stroke-width:1; }
.ringviz .rk-base{
  stroke:var(--line-2); stroke-width:1;
  stroke-dasharray:100; stroke-dashoffset:100; transition:stroke-dashoffset 1.9s var(--ease);
}
.loop-viz.in .rk-base{ stroke-dashoffset:0; }
.ringviz .rk-dash{ stroke:var(--line); stroke-width:1; stroke-dasharray:2 9; fill:none; }
.ringviz .rk-rot{ transform-box:view-box; transform-origin:50% 50%; }
.ringviz .rk-arc{ stroke:var(--gold); stroke-width:2; fill:none; stroke-dasharray:13 87; stroke-linecap:round; animation:rkFlow 9s linear infinite; }
@keyframes rkFlow{ to{ stroke-dashoffset:-100; } }
@keyframes spin{ to{ transform:rotate(360deg); } }
.ringviz .rk-nd{
  fill:var(--ink); stroke:var(--line-2); stroke-width:1;
  transition:stroke .4s var(--ease), fill .4s var(--ease);
}
.ringviz .rk-node{ transform-box:fill-box; transform-origin:50% 50%; animation:rkPulse 5s var(--ease) infinite; cursor:pointer; }
@keyframes rkPulse{ 0%,88%,100%{ transform:scale(1); } 94%{ transform:scale(1.07); } }
.ringviz .rk-node:hover .rk-nd, .ringviz .rk-node.on .rk-nd{ stroke:var(--gold); fill:var(--ink-4); }
.ringviz .rk-node.on .rk-t{ fill:var(--gold); }
/* LOOP 屏：右侧单卡切换（悬停端点显示对应环节） */
.lp-hint{ margin:14px 0 0; text-align:center; font-size:12.5px; letter-spacing:.06em; color:var(--dim); }
/* 四卡叠放：grid 堆叠，--st=层级序（0=置顶），JS 在环节点 hover 时写入 */
.loop-side .lp-card{ grid-area:1/1; display:flex; flex-direction:column; height:100%;
  transform:translateX(calc(var(--st,0) * 22px));
  z-index:calc(40 - var(--st,0)); opacity:calc(1 - var(--st,0) * .16);
  transition:transform .45s var(--ease), opacity .45s var(--ease), border-color .3s var(--ease), background .3s var(--ease);
  pointer-events:none; }
.loop-side .lp-card.on{ transform:none; z-index:40; opacity:1; pointer-events:auto; border-color:var(--gold-line); }
.loop-side .lp-card .idx{ margin-bottom:6px; }
.loop-side .lp-card h3{ font-size:20px; }
.loop-side .lp-card h3 small{ font-size:13.5px; }
.loop-side .lp-card p{ font-size:15px; line-height:1.95; }
/* 卡片底部视觉图（等距立体，占位放大） */
.lp-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.lp-tags span{ padding:4.5px 12px; border:1px solid var(--line); border-radius:999px;
  font-size:12px; letter-spacing:.05em; color:var(--paper-64); }
.lp-viz{ margin-top:16px; padding-top:0; max-width:340px; }   /* 限宽＝限高，卡片不再被底图撑高 */
.lp-viz svg{ display:block; width:100%; height:auto; }
/* 四张卡底部视觉图动效（全部走 stroke-dashoffset / opacity，禁用 transform 旋转） */
.lp-viz svg .lv-travel{ stroke-dasharray:10 100; animation:lvTravel 3.6s linear infinite; }
@keyframes lvTravel{ from{ stroke-dashoffset:110; } to{ stroke-dashoffset:0; } }
.lp-viz svg .lv-pulse{ animation:lvPulse 2.4s var(--ease) infinite; }
@keyframes lvPulse{ 0%,100%{ opacity:.4; } 50%{ opacity:1; } }
.lp-viz svg .lv2-bar{ stroke-dasharray:100; animation:lvBar 4s var(--ease) infinite; }
@keyframes lvBar{ 0%{ stroke-dashoffset:100; } 60%,100%{ stroke-dashoffset:0; } }
.lp-viz svg .lv2-link{ stroke-dasharray:3 4; animation:lvLink 1.1s linear infinite; }
@keyframes lvLink{ to{ stroke-dashoffset:-14; } }
.lp-viz svg .lv2-node{ animation:lvNode 4.4s ease-in-out infinite; }
@keyframes lvNode{ 0%,100%{ opacity:.62; } 14%,86%{ opacity:1; } }
.lp-viz svg .lv3-arc{ stroke-dasharray:42 200; animation:lvArc 5s linear infinite; }
@keyframes lvArc{ to{ stroke-dashoffset:-242; } }
.lp-viz svg .lv3-dot{ animation:lvTyping 1.5s ease-in-out infinite; }
.lp-viz svg .lv3-dot.d2{ animation-delay:.18s; }
.lp-viz svg .lv3-dot.d3{ animation-delay:.36s; }
@keyframes lvTyping{ 0%,100%{ opacity:.28; } 40%{ opacity:1; } }
.lp-viz svg .lv4-float{ animation:lvFloat 6s ease-in-out infinite; }
@keyframes lvFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-7px); } }
.lp-viz svg .lv4-halo{ animation:lvHalo 3.4s ease-in-out infinite; }
@keyframes lvHalo{ 0%,100%{ opacity:.35; } 50%{ opacity:1; } }
.ringviz .rk-t{ text-anchor:middle; dominant-baseline:middle; font-size:14.5px; font-weight:500; fill:var(--paper); }
.ringviz .rk-core circle{ fill:rgba(212,158,72,.06); stroke:var(--gold-line); stroke-width:1; }
.ringviz .rk-inf{ stroke:var(--gold); stroke-width:3.6; fill:none; stroke-linecap:round; }
.ringviz .rk-core-s{ text-anchor:middle; font-size:10px; fill:var(--dim); letter-spacing:.2em; }
.ringviz .rk-en{ text-anchor:middle; dominant-baseline:middle; font-size:10.5px; font-weight:500;
  letter-spacing:.12em; fill:var(--gold); }
/* 循环屏收束句 */
.loop-punch{
  margin:clamp(30px,3.6vw,48px) 0 0; padding-top:clamp(22px,2.4vw,30px); border-top:1px solid var(--line);
  font-size:clamp(15px,1.5vw,18px); line-height:1.85; color:var(--paper-78);
}
.loop-side .card h3 small{ display:block; margin-top:7px; font-size:12.5px; font-weight:400;
  color:var(--warm); letter-spacing:.03em; }

/* ---------- 双螺旋 ---------- */
.helix-layout{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(30px,4.4vw,76px); align-items:center; }
.helixviz{ width:100%; max-width:560px; height:auto; display:block; margin:0 auto; }
.helixviz .hx-axis{ stroke:var(--line); stroke-width:1; stroke-dasharray:2 8; }
.helixviz .hx-chain{ fill:none; stroke-width:1.6; opacity:0; transition:opacity 1.2s var(--ease); }
.helix-viz.in .hx-chain{ opacity:1; }
.helixviz .hx-a{ stroke:var(--gold); }
.helixviz .hx-b{ stroke:rgba(245,240,232,.42); }
.helixviz .hx-rung{ stroke:var(--line-2); stroke-width:1; animation:rungPulse 3s ease-in-out infinite; }
@keyframes rungPulse{ 0%,100%{ opacity:.18; } 50%{ opacity:.7; } }
.helixviz .hx-flow{ fill:none; stroke-width:2.6; stroke-linecap:round; stroke-dasharray:5 95; opacity:.9; }
.helixviz .hx-dot-a{ stroke:var(--gold); animation:flowDown 4.2s linear infinite; }
.helixviz .hx-dot-b{ stroke:var(--paper); animation:flowUp 4.2s linear infinite; }
@keyframes flowDown{ from{ stroke-dashoffset:100; } to{ stroke-dashoffset:0; } }
@keyframes flowUp{ from{ stroke-dashoffset:0; } to{ stroke-dashoffset:100; } }
.helixviz .hx-cap{ font-size:23px; fill:var(--warm); letter-spacing:.04em; }
.helixviz .hx-cap-a{ fill:var(--gold); }
.helixviz .hx-foot{ font-size:22px; fill:var(--dim); letter-spacing:.14em; }
.helix-side{ display:flex; flex-direction:column; gap:20px; }
.helix-side h3{ margin:14px 0 10px; font-size:17px; }
.helix-side .card p{ margin:0; color:var(--paper-64); font-size:14.5px; line-height:1.9; }
/* 首页第五屏：双螺旋 + 四层验证场 */
.lab-helix{ display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(30px,4.2vw,70px); align-items:center; }
.lab-helix .helixviz{ max-width:430px; margin:0 auto; }
.val-ladder{
  display:flex; flex-direction:column; border:1px solid var(--line);
  border-radius:var(--r); background:var(--ink-2); overflow:hidden;
}
.vl-item{
  display:grid; grid-template-columns:auto 1fr; gap:16px;
  padding:clamp(13px,1.3vw,17px) clamp(18px,1.8vw,26px);
  border-top:1px solid var(--line); transition:background .35s var(--ease);
}
.vl-item:first-child{ border-top:0; }
.vl-item:hover{ background:var(--ink-3); }
.vl-item.on{ background:rgba(212,158,72,.06); }
.vl-n{ font-size:11.5px; letter-spacing:.16em; color:var(--gold); padding-top:3px; }
.vl-item b{ display:block; font-size:15.5px; font-weight:600; color:var(--paper); }
.vl-item i{ display:block; margin-top:3px; font-style:normal; font-size:12px;
  letter-spacing:.04em; color:var(--gold); }
.vl-item p{ margin:6px 0 0; font-size:13px; line-height:1.7; color:var(--paper-64); }

/* ---------- 四重验证说明（实验室双螺旋屏 · 图下文字） ---------- */
.val-note{ max-width:clamp(720px,86vw,1040px); margin:clamp(28px,3.2vw,46px) auto 0; }
.vn-lead{ margin:0 0 clamp(16px,1.6vw,22px); text-align:center;
  font-size:clamp(15px,1.25vw,17.5px); font-weight:600; color:var(--paper); letter-spacing:.02em; }
.val-note .val-ladder{ background:rgba(245,240,232,.02); }
.vn-foot{ margin:clamp(16px,1.6vw,22px) 0 0; text-align:center;
  font-size:clamp(12.5px,1.05vw,14.5px); line-height:1.85; color:var(--paper-40); }
@media (max-width:760px){
  .val-note{ margin-top:clamp(22px,5vw,34px); }
  .val-note .vl-item{ grid-template-columns:auto 1fr; }
}

/* ---------- 四层验证场 · 图示版（复制下沉 / 有效回流） ---------- */
.val-flow{
  margin-top:clamp(28px,3vw,44px); border:1px solid var(--line);
  border-radius:var(--r); background:var(--ink-2); padding:clamp(20px,2.1vw,30px);
}
.vf-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.4vw,22px); }
.vf-item{
  position:relative; display:flex; flex-direction:column; align-items:center;
  text-align:center; gap:9px; padding:16px 12px 14px;
  border:1px solid var(--line); border-radius:12px;
  background:rgba(245,240,232,.02); transition:border-color .35s var(--ease), background .35s var(--ease);
  animation:vfRise .7s var(--ease) both; animation-delay:calc(var(--i) * .1s);
}
@keyframes vfRise{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
.vf-item:hover{ border-color:var(--gold-line); background:rgba(212,158,72,.05); }
.vf-item.on{ border-color:rgba(212,158,72,.55); background:rgba(212,158,72,.07); }
.vf-n{ font-size:11px; letter-spacing:.18em; color:var(--gold); }
.vf-ic{ color:var(--gold); opacity:.92; }
.vf-ic svg{ width:34px; height:34px; display:block; }
.vf-item.on .vf-ic{ animation:vfPulse 3.2s var(--ease) infinite; }
@keyframes vfPulse{ 0%,100%{ opacity:.7; } 50%{ opacity:1; } }
.vf-item b{ font-size:14.5px; font-weight:600; color:var(--paper); }
.vf-item i{ font-style:normal; font-size:11.5px; letter-spacing:.04em; color:var(--gold); }
.vf-wire{ width:100%; height:auto; margin-top:6px; display:block; }
.vf-lab{ font-size:12px; letter-spacing:.06em; }
.vf-lab-a{ fill:rgba(212,158,72,.85); }
.vf-lab-b{ fill:var(--dim); }
/* 复制定线：金线沿弧长流动（stroke-dashoffset，避免 transform 旋转的兼容坑） */
.vf-copy{ fill:none; stroke-dasharray:14 86; animation:vfCopy 3.4s linear infinite; }
@keyframes vfCopy{ from{ stroke-dashoffset:100; } to{ stroke-dashoffset:0; } }
.vf-back{ fill:none; stroke-dasharray:14 86; animation:vfBack 4.2s linear infinite; }
@keyframes vfBack{ from{ stroke-dashoffset:-100; } to{ stroke-dashoffset:0; } }
.loop-side{ display:grid; }
.loop-side h3{ margin:14px 0 10px; font-size:17.5px; }

/* 步骤清单（引擎页） */
.step-list{ display:flex; flex-direction:column; }
.step-row{ display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:baseline;
  padding:16px 0; border-bottom:1px solid var(--line); }
.step-row:first-child{ border-top:1px solid var(--line); }
.step-row .sn{ font-size:11.5px; letter-spacing:.16em; color:var(--gold); }
.step-row .st{ font-size:15px; color:var(--paper); }
.step-row .st small{ display:block; font-size:12.5px; color:var(--warm); margin-top:4px; }

/* ---------- 数字员工 ---------- */
.agents-layout{
  display:grid; grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);
  gap:clamp(32px,5vw,84px); align-items:center;
}
.agents-points{ display:flex; flex-direction:column; gap:16px; margin-top:34px; }
.ap{ display:flex; gap:14px; align-items:flex-start; }
.ap-ic{
  flex:none; width:36px; height:36px; border:1px solid var(--line-2); border-radius:var(--r);
  display:grid; place-items:center; color:var(--gold); background:rgba(212,158,72,.05);
}
.ap-ic svg{ width:18px; height:18px; }
.ap b{ display:block; font-size:15px; color:var(--paper); font-weight:600; margin-bottom:2px; }
.ap span{ font-size:13.5px; color:var(--paper-64); }

.agents-figure{ position:relative; }
.agentviz{ width:100%; height:auto; display:block; }
.agentviz .av-orbit{ stroke:var(--line-2); stroke-width:1; stroke-dasharray:3 9; fill:none; }
.agentviz .av-orbit2{ stroke:rgba(212,158,72,.18); stroke-width:1; fill:none; }
.agentviz .av-halo{
  stroke:rgba(212,158,72,.16); stroke-width:1; fill:none;
  transform-box:fill-box; transform-origin:50% 50%; animation:avHalo 4.8s var(--ease) infinite;
}
@keyframes avHalo{ 0%,100%{ transform:scale(1); opacity:.95; } 50%{ transform:scale(1.08); opacity:.5; } }
.agentviz .av-link{ stroke:var(--line-3); stroke-width:1; fill:none; }
.agentviz .av-link.flow{
  stroke:var(--gold); stroke-width:1.4; stroke-dasharray:5 95; stroke-linecap:round;
  animation:avFlow 3.2s linear infinite;
}
.agentviz .av-link.flow.f1{ animation-delay:.0s } .agentviz .av-link.flow.f2{ animation-delay:.8s }
.agentviz .av-link.flow.f3{ animation-delay:1.6s } .agentviz .av-link.flow.f4{ animation-delay:2.4s }
@keyframes avFlow{ from{ stroke-dashoffset:100; } to{ stroke-dashoffset:0; } }
.agentviz .agent{ transition:opacity .5s var(--ease); }
.agentviz.ready .agent{ opacity:.4; }
.agentviz.ready .agent.on{ opacity:1; }
.agentviz .ag-ring{ fill:none; stroke:var(--line-2); stroke-width:1;
  transition:stroke .45s var(--ease), stroke-width .45s var(--ease); }
.agentviz .ag-dot{ fill:var(--ink-2); stroke:var(--line-2); stroke-width:1;
  transition:fill .45s var(--ease), stroke .45s var(--ease); }
.agentviz .ag-n{ text-anchor:middle; dominant-baseline:middle; font-size:15px; font-weight:500; fill:var(--paper); }
.agentviz .ag-r{ text-anchor:middle; dominant-baseline:middle; font-size:10.5px; fill:var(--dim); letter-spacing:.14em; }
.agentviz .agent.on .ag-ring{ stroke:var(--gold); stroke-width:1.4; }
.agentviz .agent.on .ag-dot{ fill:rgba(212,158,72,.13); stroke:var(--gold); }
.agentviz .agent.on .ag-n{ fill:#F1E3A6; }
.agentviz .av-hub-c{ fill:var(--ink-2); stroke:var(--gold-line); stroke-width:1; }
.agentviz .av-inf{ stroke:var(--gold); stroke-width:4.2; fill:none; stroke-linecap:round; }
.agentviz .av-hub-n{ text-anchor:middle; font-size:19px; font-weight:700; fill:var(--paper); letter-spacing:.06em; }
.agentviz .av-hub-s{ text-anchor:middle; font-size:9.5px; fill:var(--dim); letter-spacing:.1em; }
.agentviz .av-rot{ transform-box:view-box; transform-origin:50% 50%; animation:spin 14s linear infinite; }
.agentviz .av-comet{ fill:var(--gold); }

.agents-cap{
  display:flex; align-items:baseline; gap:16px; justify-content:center; flex-wrap:wrap;
  margin-top:4px; padding-top:20px; border-top:1px solid var(--line); min-height:58px;
}
.agents-cap .cap-n{ font-size:16px; font-weight:700; color:var(--gold); letter-spacing:.06em; }
.agents-cap .cap-d{ font-size:13.5px; color:var(--paper-64); }

/* ---------- 三曲线 ---------- */
.curve-block{
  display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(28px,4vw,72px); align-items:center;
  margin-top:clamp(56px,7vw,104px); padding-top:clamp(40px,5vw,64px); border-top:1px solid var(--line);
}
.curve-copy h3{ margin:14px 0 14px; font-size:clamp(20px,2vw,26px); }
.curve-copy p{ margin:0 0 20px; color:var(--paper-64); font-size:14.5px; }
.curve-legend{ list-style:none; margin:0 0 20px; padding:0; display:flex; gap:22px; flex-wrap:wrap; }
.curve-legend li{ font-size:12.5px; color:var(--paper-64); display:flex; align-items:center; gap:9px; }
.curve-legend li::before{ content:""; width:18px; height:2px; flex:none; }
.curve-legend .lg-a::before{ background:var(--dim); }
.curve-legend .lg-b::before{ background:rgba(245,240,232,.45); }
.curve-legend .lg-c::before{ background:var(--gold); }
.curves{ width:100%; height:auto; display:block; }
.curves .cv-axis{ stroke:var(--line-2); stroke-width:1; fill:none; }
.curves .cv-l{ fill:none; stroke-width:2; stroke-linecap:round; stroke-dasharray:100; stroke-dashoffset:100;
  transition:stroke-dashoffset 1.5s var(--ease); }
.curve-block.in .cv-l{ stroke-dashoffset:0; }
.curves .cv-a{ stroke:var(--dim); }
.curves .cv-b{ stroke:rgba(245,240,232,.42); transition-delay:.16s; }
.curves .cv-c{ stroke:var(--gold); transition-delay:.32s; }
.curves .cv-t{ font-size:12px; }
.curves .cv-t1{ fill:var(--dim); } .curves .cv-t2{ fill:rgba(245,240,232,.5); } .curves .cv-t3{ fill:var(--gold); }
.curves .cv-x{ font-size:11px; fill:var(--dim); letter-spacing:.1em; }

/* ---------- 品牌屋结构图 ---------- */
.house-layout{ display:grid; grid-template-columns:290px 1fr; gap:clamp(32px,4vw,68px); align-items:start; }
.houseviz{ width:100%; height:auto; display:block; }
.houseviz .hv-roof{ stroke:var(--gold); stroke-width:1.2; fill:rgba(212,158,72,.07); }
.houseviz .hv-roofline{ stroke:var(--gold-line); stroke-width:1; }
.houseviz .hv-band{ fill:var(--ink-2); stroke:var(--line-2); stroke-width:1; }
.houseviz .hv-lab{ font-size:13px; fill:var(--paper); font-weight:600; dominant-baseline:middle; }
.houseviz .hv-sub{ font-size:10px; fill:var(--dim); dominant-baseline:middle; }
.houseviz .hv-cross{ stroke:var(--gold-line); stroke-width:1; stroke-dasharray:4 5; }
.houseviz .hv-ground{ font-size:10.5px; fill:var(--dim); letter-spacing:.16em; }
.houseviz .hv-rooft{ font-size:13px; fill:var(--paper); font-weight:600; }

/* ---------- 滚动显影 ---------- */

/* ---------- 引擎卡 ---------- */
.engine{
  border:1px solid var(--line); background:var(--ink-2); border-radius:var(--r);
  padding:clamp(26px,2.6vw,38px); display:flex; flex-direction:column; gap:20px;
  position:relative; overflow:hidden; transition:border-color .4s var(--ease), transform .4s var(--ease);
}
.engine:hover{ border-color:var(--gold-line); transform:translateY(-4px); }
.engine .code{
  font-size:12px; letter-spacing:.2em; color:var(--gold);
}
.engine h3{ font-size:clamp(21px,2.1vw,27px); }
.engine h3 small{ display:block; font-size:13px; font-weight:400; color:var(--warm); letter-spacing:.04em; margin-top:8px; }
.engine .pitch{ color:var(--paper); font-size:15px; }
.engine ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.engine li{ font-size:13.5px; color:var(--paper-64); padding-left:16px; position:relative; }
.engine li::before{
  content:""; position:absolute; left:0; top:.68em; width:5px; height:1px; background:var(--gold); opacity:.75;
}
.engine .foot{ margin-top:auto; padding-top:20px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:12px; }
.engine .foot .tag{ font-size:11.5px; color:var(--dim); border:1px solid var(--line-2); padding:3px 9px; border-radius:2px; }

/* ---------- 引擎详解（各一屏） ---------- */
.detail{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(32px,5vw,88px); align-items:stretch; }
.detail .detail-visual .panel{ height:100%; box-sizing:border-box; }
.detail.flip .detail-visual{ order:-1; }
.detail .q{ display:flex; flex-direction:column; gap:26px; }
.q-item{ display:grid; grid-template-columns:74px 1fr; gap:20px; align-items:start; }
.q-item .k{ font-size:12px; letter-spacing:.14em; color:var(--gold); padding-top:5px; }
.q-item .v{ font-size:15.5px; color:var(--paper); line-height:1.8; }
.q-item .v em{ font-style:normal; color:var(--paper-64); display:block; font-size:13.5px; margin-top:6px; }

/* 可视化小面板 */
.panel{
  border:1px solid var(--line); background:var(--ink-1); border-radius:var(--r);
  padding:clamp(22px,2.2vw,30px); position:relative;
}
.panel .ph{ display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; }
.panel .ph .t{ font-size:13px; color:var(--paper); letter-spacing:.04em; }
.panel .ph .s{ font-size:11px; color:var(--dim); letter-spacing:.1em; }

/* 数据行 */
.bars{ display:flex; flex-direction:column; gap:18px; }
.bar-row{ display:grid; grid-template-columns:1fr auto; gap:10px; font-size:13px; }
.bar-row .lab{ color:var(--paper-64); }
.bar-row .val{ color:var(--paper); }
.bar{ grid-column:1/-1; height:2px; background:var(--line); position:relative; overflow:hidden; }
.bar i{ position:absolute; inset:0 auto 0 0; width:0; background:var(--gold); transition:width 1.4s var(--ease); }
.in .bar i{ width:var(--w); }

/* 目标靶点矩阵（GEO 所得）：横向三列，每列一个层面，列内纵排三个靶点 */
.gain-wide{ max-width:96ch; }.tgt-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:20px; }
.tgt-head .tgt-note{ font-size:11px; color:var(--dim); letter-spacing:.1em; }
.tgt-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.6vw,24px); }
.tgt-col{
  border:1px solid var(--line); border-top:2px solid rgba(212,158,72,.55);
  border-radius:2px; background:var(--ink-1); padding:clamp(16px,1.6vw,22px);
  display:flex; flex-direction:column; gap:14px;
}
.tgt-h{ display:flex; align-items:center; gap:9px; }
.tgt-h .tgt-ic{
  width:24px; height:24px; flex:0 0 24px; display:grid; place-items:center;
  border:1px solid rgba(212,158,72,.4); border-radius:2px;
  background:rgba(212,158,72,.12); color:var(--gold);
}
.tgt-h .tgt-ic .glyph{ width:14px; height:14px; }
.tgt-h b{ font-size:13.5px; color:var(--gold); letter-spacing:.12em; font-weight:500; }
.tgt-rows{ display:flex; flex-direction:column; gap:9px; }
.tgt-row{ border-left:2px solid rgba(212,158,72,.3); padding:2px 0 2px 11px; }
.tgt-row b{ display:block; font-size:13px; color:var(--paper); letter-spacing:.04em; margin-bottom:5px; }
.tgt-row p{
  margin:0; font-size:12.5px; line-height:1.75; color:var(--paper-64);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
@media (max-width:1024px){
  .tgt-grid{ grid-template-columns:1fr; gap:14px; }
  .tgt-col{ gap:11px; }
  .tgt-row b{ font-size:12.5px; }
  .tgt-row p{ font-size:12px; }
}

/* ---------- 技术底座：四层栈（tk-*） ---------- */
.tk-stack{ display:flex; flex-direction:column; gap:10px; }
.tk-row{ display:grid; grid-template-columns:96px 1fr; gap:12px; align-items:stretch; }
.tk-tag{
  background:var(--ink-3); border:1px solid var(--line); border-radius:var(--r);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:10px 6px;
}
.tk-tag b{ color:var(--gold); font-size:15px; letter-spacing:.05em; }
.tk-tag span{ font-size:10px; color:var(--dim); letter-spacing:.06em; text-align:center; }
.tk-body{
  background:var(--ink-2); border:1px solid var(--line); border-radius:var(--r);
  padding:12px 16px; display:flex; flex-direction:column; gap:9px;
}
.tk-head{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.tk-head b{ font-size:14px; color:var(--paper); letter-spacing:.04em; }
.tk-head em{ font-style:normal; font-size:11px; color:var(--gold); letter-spacing:.14em; text-transform:uppercase; }
.tk-body .tk-head + .tk-cells{ margin-top:0; }
.tk-cells{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:7px; }
.tk-cell{
  border:1px solid var(--line-2); border-radius:6px; padding:7px 11px;
  display:flex; flex-direction:column; gap:3px; min-width:0;
}
.tk-cell b{ font-size:12.5px; color:var(--paper); font-weight:500; letter-spacing:.02em; }
.tk-cell span{ font-size:11.5px; color:var(--paper-64); line-height:1.6; }
.tk-flows{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:16px; }
.tk-flow{
  border:1px solid var(--line); border-left:2px solid rgba(212,158,72,.5); border-radius:2px;
  padding:10px 13px; display:flex; gap:10px; align-items:flex-start;
}
.tk-flow i{ font-style:normal; color:var(--gold); font-size:12px; line-height:1.5; }
.tk-flow b{ display:block; font-size:12.5px; color:var(--paper); margin-bottom:3px; font-weight:500; }
.tk-flow span{ font-size:11.5px; color:var(--paper-64); line-height:1.6; }
.tk-note{ margin:14px 0 0; font-size:11.5px; color:var(--dim); letter-spacing:.03em; }
@media (max-width:1024px){
  .tk-row{ grid-template-columns:64px 1fr; gap:9px; }
  .tk-cells{ grid-template-columns:1fr 1fr; }
  .tk-flows{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .tk-cells{ grid-template-columns:1fr; }
}

/* ---------- 循环链路图 ---------- */
.loop-map{ position:relative; border:1px solid var(--line); background:var(--ink-1); border-radius:var(--r); padding:clamp(28px,3vw,52px); overflow:hidden; }
.loop-track{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; position:relative; z-index:1; }
.loop-node{ text-align:center; }
.loop-node .dot{
  width:52px; height:52px; margin:0 auto 16px; border:1px solid var(--line-2); border-radius:50%;
  display:grid; place-items:center; font-size:13px; color:var(--paper); background:var(--ink);
  transition:border-color .4s var(--ease), background .4s var(--ease);
}
.loop-node:hover .dot{ border-color:var(--gold); background:var(--ink-4); }
.loop-node h4{ font-size:14.5px; margin-bottom:6px; }
.loop-node p{ margin:0; font-size:12px; color:var(--dim); line-height:1.7; }
.loop-line{ position:absolute; left:10%; right:10%; top:26px; height:1px; background:var(--line-2); }
.loop-line i{ position:absolute; inset:0 auto 0 0; width:0; background:var(--gold); transition:width 1.8s var(--ease); }
.in .loop-line i{ width:100%; }

/* ---------- 案例三层 ---------- */
.layer{ display:grid; grid-template-columns:64px 1fr auto; gap:clamp(16px,2.4vw,40px); align-items:start;
  padding:clamp(26px,2.6vw,36px) 0; border-top:1px solid var(--line); }
.layer:last-child{ border-bottom:1px solid var(--line); }
.layer .n{ font-size:30px; font-weight:700; color:var(--gold); line-height:1; }
.layer h3{ margin:0 0 10px; }
.layer p{ margin:0; color:var(--paper-64); font-size:14.5px; max-width:620px; }
.layer .st{ font-size:12px; letter-spacing:.1em; padding:5px 11px; border:1px solid var(--line-2); border-radius:2px; color:var(--warm); white-space:nowrap; }
.layer .st.live{ border-color:var(--gold-line); color:var(--gold); }
.layer.locked{ opacity:.62; }

/* ---------- 实验室 ---------- */
.lab-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.lab-cell{ background:var(--ink-2); padding:clamp(26px,2.6vw,38px); transition:background .35s var(--ease); }
.lab-cell:hover{ background:var(--ink-3); }
.lab-cell .k{ font-size:12px; letter-spacing:.18em; color:var(--gold); }
.lab-cell h4{ margin:16px 0 10px; font-size:17px; }
.lab-cell p{ margin:0; font-size:13.5px; color:var(--paper-64); }
.lab-cell ul{ margin:14px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.lab-cell li{ font-size:12.5px; color:var(--warm); }

/* ---------- 保障 ---------- */
.guard{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,1.6vw,24px); }
.guard .card h4{ margin:14px 0 10px; }
.guard .card .k{ font-size:11.5px; letter-spacing:.16em; color:var(--gold); }

/* 标签组 */
.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{
  font-size:12.5px; color:var(--warm); border:1px solid var(--line-2); padding:7px 14px; border-radius:2px;
  transition:border-color .3s var(--ease), color .3s var(--ease);
}
.chip:hover{ border-color:var(--gold-line); color:var(--paper); }
.chip.on{ border-color:var(--gold); color:var(--gold); }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--line); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding:24px 0; text-align:left; font-size:clamp(16px,1.5vw,18.5px); font-weight:500; color:var(--paper);
  transition:color .3s var(--ease);
}
.faq-q:hover{ color:var(--gold); }
.faq-q .faq-no{
  flex:none; width:44px; font-family:ui-monospace, monospace; font-size:12px;
  letter-spacing:.1em; color:var(--gold); opacity:.8; font-weight:400;
}
.faq-q .faq-qt{ flex:1; min-width:0; }
.faq-more[hidden]{ display:none; }
.faq-more-bar{ border-top:1px solid var(--line); padding:18px 0 4px; }
.faq-more-btn{
  display:inline-flex; align-items:center; gap:9px; padding:9px 16px;
  border:1px solid var(--line-2); border-radius:999px; background:transparent;
  font-size:13px; color:var(--paper-64); letter-spacing:.04em;
  transition:border-color .3s var(--ease), color .3s var(--ease);
}
.faq-more-btn:hover{ border-color:var(--gold-line); color:var(--gold); }
.faq-more-btn i{ width:12px; height:12px; position:relative; }
.faq-more-btn i::before,.faq-more-btn i::after{ content:""; position:absolute; background:currentColor; }
.faq-more-btn i::before{ left:0; right:0; top:5.5px; height:1px; }
.faq-more-btn i::after{ top:0; bottom:0; left:5.5px; width:1px; transition:transform .3s var(--ease), opacity .3s var(--ease); }
.faq-more-btn.is-open i::after{ transform:scaleY(0); opacity:0; }
.faq-q i{ flex:none; width:16px; height:16px; position:relative; }
.faq-q i::before,.faq-q i::after{ content:""; position:absolute; background:var(--gold); transition:transform .35s var(--ease), opacity .35s var(--ease); }
.faq-q i::before{ left:0; right:0; top:7.5px; height:1px; }
.faq-q i::after{ top:0; bottom:0; left:7.5px; width:1px; }
.faq-item.open .faq-q i::after{ transform:scaleY(0); opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .45s var(--ease); }
.faq-a > div{ padding:0 60px 28px 0; color:var(--paper-64); font-size:15px; }

/* ---------- 行动 ---------- */
.cta-band{
  border:1px solid var(--line); background:var(--ink-1); border-radius:var(--r);
  padding:clamp(40px,5vw,84px); position:relative; overflow:hidden;
}
.cta-band .ripple{ position:absolute; right:-14%; top:-40%; width:640px; height:640px; opacity:.5; pointer-events:none; }
.cta-band .inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.3fr auto; gap:40px; align-items:center; }
.cta-band h2{ margin-bottom:18px; font-size:clamp(24px,2.25vw,32px); }
.cta-band p{ margin:0; color:var(--paper-64); max-width:560px; }

/* ---------- 页脚 ---------- */
.foot{ border-top:1px solid var(--line); padding:clamp(52px,6vw,88px) 0 40px; }
.foot-top{ display:grid; grid-template-columns:1.5fr repeat(4,1fr); gap:clamp(24px,2.6vw,44px); }.foot-brand .brand{ margin-bottom:20px; }
.foot-brand p{ margin:0; color:var(--dim); font-size:13px; max-width:320px; line-height:1.9; }
.foot-contact{ margin:16px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:6px; font-size:13px; line-height:1.7; color:var(--dim); }
.foot-contact li{ max-width:320px; word-break:break-word; display:flex; gap:9px; align-items:flex-start; }
.foot-contact li svg{ width:15px; height:15px; flex:none; margin-top:4px; color:var(--gold); }
.foot-col h5{ margin:0 0 18px; font-size:12.5px; letter-spacing:.16em; color:var(--paper); font-weight:600; }
.foot-col ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:11px; }
.foot-col a{ font-size:13.5px; color:var(--warm); transition:color .3s var(--ease); }
.foot-col a:hover{ color:var(--gold); }
.foot-bot{
  margin-top:clamp(40px,4vw,64px); padding-top:26px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:12px; color:var(--dim-2);
}
.foot-note{ margin-top:20px; font-size:11.5px; color:var(--dim-2); line-height:1.9; max-width:900px; }

/* ---------- 内页头部 ---------- */
.page-head{ padding:calc(var(--sec) * .68) 0 clamp(48px,5vw,72px); border-bottom:1px solid var(--line); }
.page-head .eyebrow{ margin-bottom:20px; }
.page-head h1{ font-size:clamp(32px,4.4vw,60px); margin-bottom:24px; max-width:900px; text-wrap:balance; }
.page-head .lead{ max-width:680px; text-wrap:pretty; }
/* 受控断行：仅在宽屏（标题必然两行）显示，断点落在语义停顿处；
   1000px 以下单行可容纳，隐藏 br 让文本自然流动 */
.br-wide{ display:none; }
@media (min-width:1000px){ .br-wide{ display:inline; } }
.pyr-note{ font-size:13px; color:var(--warm); line-height:1.8; margin-top:18px; }
.crumb{ font-size:12.5px; color:var(--dim); margin-bottom:22px; letter-spacing:.04em; }
.crumb a:hover{ color:var(--gold); }
.crumb span{ margin:0 8px; opacity:.5; }

/* ---------- 品牌屋 ---------- */
.house{ border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--ink-1); }
.house-row{ padding:clamp(20px,2vw,28px) clamp(20px,2.4vw,34px); border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:118px 1fr; gap:clamp(16px,2vw,30px); align-items:start; }
.house-row:last-child{ border-bottom:0; }
.house-row .rl{ font-size:12px; letter-spacing:.18em; color:var(--gold); padding-top:3px; }
.house-row .rc{ font-size:14.5px; color:var(--paper-64); line-height:1.85; }
.house-row .rc b{ color:var(--paper); font-weight:500; }
.house-row.roof{ background:linear-gradient(180deg, rgba(212,158,72,.10), rgba(212,158,72,0)); border-top:2px solid var(--gold); }
.house-row.cross{ background:var(--ink-2); }
.house-chips{ display:flex; flex-wrap:wrap; gap:10px; }
.house-chips span{ font-size:12.5px; border:1px solid var(--line-2); padding:7px 12px; border-radius:2px; color:var(--paper-64); }
.house-chips span b{ color:var(--gold); font-weight:500; }

/* ---------- 命名字卡 ---------- */
.name-card{ border:1px solid var(--line); background:var(--ink-2); border-radius:var(--r);
  padding:clamp(20px,2vw,28px); transition:border-color .35s var(--ease), transform .35s var(--ease), background .35s var(--ease); }
.name-card:hover{ border-color:var(--gold-line); transform:translateY(-3px) scale(1.03); background:var(--ink-3); }
.name-card .cn{ font-size:clamp(26px,2.6vw,34px); font-weight:700; color:var(--paper); letter-spacing:.04em; }
.name-card .py{ font-size:12.5px; letter-spacing:.14em; color:var(--gold); margin-top:6px; }
.name-card .gen{ font-size:11.5px; color:var(--dim); letter-spacing:.14em; margin-top:14px; }
.name-card .sem{ font-size:14px; color:var(--paper-64); margin-top:12px; line-height:1.8; }
.name-card .sem b{ color:var(--paper); font-weight:600; }

/* ---------- 三/四列自适应 ---------- */
.g-auto-2{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.span2{ grid-column:span 2; }

/* ---------- 滚动显影 ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; }
.reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }

/* ---------- 侧边进度环 ---------- */
.progress{
  position:fixed; right:26px; top:50%; transform:translateY(-50%); z-index:90;
  width:44px; height:44px; opacity:0; transition:opacity .5s var(--ease); pointer-events:none;
}
.progress.show{ opacity:1; }
.progress svg{ width:100%; height:100%; transform:rotate(-90deg); }
.progress .bg{ stroke:var(--line); }
.progress .fg{ stroke:var(--gold); transition:stroke-dashoffset .18s linear; }
.progress .pct{ position:absolute; inset:0; display:grid; place-items:center; font-size:10px; color:var(--warm); }

/* ---------- 表单 ---------- */
/* 表单两列轨用 minmax(0,1fr)：下拉框固有宽度不再把列撑破、溢进右侧卡片 */
.form{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; }
.field{ display:flex; flex-direction:column; gap:9px; }
.field.full{ grid-column:1/-1; }
.field label{ font-size:12.5px; color:var(--warm); letter-spacing:.06em; }
.field label b{ color:var(--gold); font-weight:400; }
.field input,.field select,.field textarea{
  background:var(--ink-1); border:1px solid var(--line-2); border-radius:var(--r);
  padding:13px 15px; color:var(--paper); font-family:var(--font); font-size:14.5px;
  transition:border-color .3s var(--ease);
}
.field input::placeholder,.field textarea::placeholder{ color:var(--dim-2); }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:110px; }
.field select{ appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--warm) 50%),linear-gradient(135deg,var(--warm) 50%,transparent 50%); background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }
.form-note{ grid-column:1/-1; font-size:12px; color:var(--dim); }

/* ---------- 表格（技术折叠区） ---------- */
.spec{ width:100%; border-collapse:collapse; font-size:13.5px; }
.spec th,.spec td{ text-align:left; padding:14px 16px; border-bottom:1px solid var(--line); }
.spec th{ font-size:11.5px; letter-spacing:.14em; color:var(--warm); font-weight:500; }
.spec td{ color:var(--paper-64); }
.spec td:first-child{ color:var(--paper); }

details.fold{ border-top:1px solid var(--line); }
details.fold summary{
  list-style:none; cursor:pointer; padding:22px 0; display:flex; justify-content:space-between; align-items:center;
  font-size:14px; color:var(--paper); letter-spacing:.03em;
}
details.fold summary::-webkit-details-marker{ display:none; }
details.fold summary::after{ content:"＋"; color:var(--gold); font-size:14px; }
details.fold[open] summary::after{ content:"－"; }
details.fold .fold-body{ padding:0 0 30px; }

/* ---------- 工具类 ---------- */
.stack{ display:flex; flex-direction:column; }
.row{ display:flex; align-items:center; }
.gap-8{ gap:8px; } .gap-12{ gap:12px; } .gap-16{ gap:16px; } .gap-24{ gap:24px; }
.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-48{margin-top:48px}
.mb-0{margin-bottom:0}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.mb-32{margin-bottom:32px}
.between{ justify-content:space-between; }
.center{ text-align:center; }
.hr{ height:1px; background:var(--line); border:0; margin:clamp(40px,4vw,64px) 0; }
.note{ font-size:12px; color:var(--dim); line-height:1.85; }
.badge-live{ display:inline-flex; align-items:center; gap:7px; font-size:11.5px; color:var(--gold); border:1px solid var(--gold-line); padding:4px 10px; border-radius:2px; }
.badge-live i{ width:5px; height:5px; border-radius:50%; background:var(--gold); }

/* ---------- ABOS 三层金字塔模型图（V4.0） ---------- */
.arch-split{ display:grid; grid-template-columns:minmax(0,1.24fr) minmax(0,0.94fr); gap:clamp(24px,3vw,44px); align-items:start; }
.arch-left{ position:sticky; top:104px; }
.archviz{
  background:var(--ink-2); border:1px solid var(--line); border-radius:var(--r);
  padding:clamp(12px,1.4vw,20px) clamp(8px,1vw,14px);
}
/* 立体金字塔（等距 3D SVG） */
.pyr3d-wrap{ display:flex; flex-direction:column; }
.arch-tip{
  position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center; gap:9px;
  margin:2px auto 10px; padding:9px 18px;
  border:1px solid rgba(212,158,72,.5); border-radius:999px;
  background:rgba(212,158,72,.09); color:var(--gold);
  font-size:13px; letter-spacing:.1em;
  animation:tipPulse 2.8s var(--ease) infinite;
}
/* 手指标已在 SVG 内翻转朝下（translate+rotate），此处只放大尺寸并让跳动方向向下 */
.arch-tip svg{ width:25px; height:25px; flex:none; animation:tipHand 1.9s var(--ease) infinite; }
.arch-tip::after{   /* 斜向扫光，强化「可点击」提示 */
  content:""; position:absolute; top:0; bottom:0; width:34%; left:-40%;
  background:linear-gradient(100deg, rgba(212,158,72,0), rgba(212,158,72,.3), rgba(212,158,72,0));
  animation:tipSheen 3.4s linear infinite;
}
@keyframes tipPulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(212,158,72,0); border-color:rgba(212,158,72,.5); background:rgba(212,158,72,.09); }
  50%{ box-shadow:0 0 26px 2px rgba(212,158,72,.32); border-color:rgba(212,158,72,.95); background:rgba(212,158,72,.18); }
}
@keyframes tipSheen{ 0%{ left:-40%; } 55%,100%{ left:120%; } }
@keyframes tipHand{ 0%,100%{ transform:translateY(0); } 40%{ transform:translateY(4px); } 70%{ transform:translateY(0); } }
/* 金字塔整体收窄：卡内限宽居中，不再撑满整卡 */
.pyr3d{ width:100%; height:auto; display:block; overflow:visible; max-width:468px; margin:0 auto; }
.pyr3d .hit{ cursor:pointer; transition:opacity .25s var(--ease); outline:none; }
.pyr3d .hit:focus{ outline:none; }
.pyr3d .hit .band{ transition:fill .3s var(--ease), stroke .3s var(--ease); }
/* 三面分档高亮：保持立体明暗关系（正面最亮、顶面次之、侧面最暗） */
.pyr3d .hit:hover .band-f,.pyr3d .hit.on .band-f{ fill:rgba(212,158,72,.26) !important; stroke:#D49E48; }
.pyr3d .hit:hover .band-t,.pyr3d .hit.on .band-t{ fill:rgba(212,158,72,.18) !important; stroke:rgba(212,158,72,.8); }
.pyr3d .hit:hover .band-s,.pyr3d .hit.on .band-s{ fill:rgba(212,158,72,.12) !important; stroke:rgba(212,158,72,.7); }
.pyr3d .hit:hover text,.pyr3d .hit.on text{ fill:#E0AB58 !important; }
.pyr3d .hit:focus-visible{ outline:none; }
.pyr3d .hit:focus-visible .band-f{ stroke:#D49E48; stroke-dasharray:4 3; }
.pyr3d .pyr-shadow{ fill:rgba(212,158,72,.07); }
.pyr3d .chain,.pyr3d .tierlab,.pyr3d .flowlines{ pointer-events:none; }
.pyr-note{ margin:16px 0 0; text-align:center; font-size:12.5px; letter-spacing:.04em; color:var(--dim); }
.arch-hint{ text-align:center; margin:18px 0 28px; }
.arch-agents{
  display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  border:1px solid var(--line); background:var(--ink-2);
  padding:17px 26px; border-radius:var(--r);
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.arch-agents:hover{ border-color:var(--gold-line); background:var(--ink-3); }
.aa-ic{ color:var(--gold); }
.aa-ic .glyph{ width:34px; height:34px; }
.aa-body{ flex:1; min-width:260px; }
.aa-body .idx{ color:var(--gold); font-size:11px; letter-spacing:.22em; }
.aa-body b{ display:block; font-size:18px; font-weight:600; margin:3px 0 4px; }
.aa-body > span:last-child{ font-size:13px; color:var(--warm); }
.arch-agents .link-arrow{ white-space:nowrap; }

/* ---------- 产品切换卡片（ABOS 五模块） ---------- */
@keyframes archIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.arch-panels{ margin-top:0; }
.arch-panel{
  display:none; border:1px solid var(--line); background:var(--ink-2);
  border-radius:var(--r); padding:clamp(22px,2.6vw,34px);
}
.arch-panel.on{ display:block; animation:archIn .36s var(--ease) both; }
.ap-top{ display:flex; gap:24px; align-items:flex-start; }
.ap-code{
  font-size:clamp(30px,3.4vw,42px); line-height:1; font-weight:600;
  color:var(--gold); letter-spacing:.02em; min-width:52px;
}
.ap-title{ flex:1; }
.ap-meta{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:8px; }
.ap-pos{ font-size:11px; letter-spacing:.2em; color:var(--dim); border:1px solid var(--line-2); padding:2px 10px; border-radius:999px; }
.ap-title h3{ margin:0 0 8px; font-size:clamp(20px,2.4vw,26px); }
.ap-title h3 i{ font-style:normal; color:var(--dim); font-size:13px; margin-left:10px; letter-spacing:.08em; }
.ap-tag{ margin:0; font-size:14.5px; color:var(--warm); }
.ap-list{ list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
/* 四项时一行并列（数据中台四大库），避免第 4 项掉行独占 */
.ap-list:has(> li:nth-child(4)){ grid-template-columns:repeat(4,minmax(0,1fr)); }
.ap-list li{ border-top:1px solid var(--line-2); padding-top:14px; }
.ap-list b{ display:block; font-size:14.5px; font-weight:600; }
.ap-list span{ display:block; font-size:12.5px; color:var(--warm); margin-top:6px; line-height:1.78; }
.ap-foot{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  flex-wrap:wrap; margin-top:30px; padding-top:22px; border-top:1px solid var(--line);
}
.ap-agent{ font-size:12.5px; color:var(--dim); letter-spacing:.04em; }
.ap-agent b{ color:var(--gold); }
/* 进入产品按钮：金色发亮（金字塔屏右卡主行动点） */
.arch-panel .btn-ghost{
  border-color:var(--gold-line); color:var(--gold); background:rgba(212,158,72,.08);
  box-shadow:0 0 24px rgba(212,158,72,.16), inset 0 0 14px rgba(212,158,72,.06);
}
.arch-panel .btn-ghost:hover{
  background:rgba(212,158,72,.16); box-shadow:0 0 36px rgba(212,158,72,.3), inset 0 0 18px rgba(212,158,72,.08);
}

/* ---------- 高频痛点与解决方案（四列并排 · 上下对照） ---------- */
.pain-list{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(12px,1.4vw,20px); align-items:stretch;
}
.pain{
  position:relative; overflow:hidden;
  border:1px solid var(--line); background:var(--ink-2);
  padding:20px 20px 22px; border-radius:var(--r);
  display:flex; flex-direction:column; gap:12px;
  transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.pain:hover{
  border-color:rgba(212,158,72,.5); transform:translateY(-3px);
  box-shadow:0 16px 38px rgba(0,0,0,.4);
}
/* 悬停某一张时，同级其余略退，形成聚焦 */
.pain-list.has-hover .pain:not(:hover){ opacity:.72; }
.pain{ transition:border-color .3s var(--ease), transform .3s var(--ease),
        box-shadow .3s var(--ease), opacity .3s var(--ease); }
.pain-top{ display:grid; grid-template-columns:auto auto 1fr auto; align-items:center; gap:9px; }
.pain-idx{
  font-size:11px; letter-spacing:.14em; color:var(--gold);
  font-family:ui-monospace, monospace; opacity:.85;
}
.pain-t-ico{
  display:grid; place-items:center; width:26px; height:26px; flex:none;
  border-radius:8px; border:1px solid var(--line); background:rgba(245,240,232,.05);
  color:var(--warm); transition:color .3s var(--ease), border-color .3s var(--ease);
}
.pain-t-ico svg{ width:13px; height:13px; }
.pain-top h3{
  margin:0; font-size:13.5px; font-weight:600; line-height:1.5; color:var(--paper);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;
}
.pain:hover .pain-t-ico{ color:var(--gold); border-color:rgba(212,158,72,.45); }
.pain-clue{
  display:grid; place-items:center; width:18px; height:18px; color:var(--dim);
  transition:transform .35s var(--ease), color .3s var(--ease);
}
.pain-clue svg{ width:13px; height:13px; transform:rotate(90deg); }
.pain:hover .pain-clue{ color:var(--gold); }

/* 「过去」：默认收起，只留两行；点击后展开全文 */
.pain-slot{ border-radius:10px; padding:11px 13px 12px; display:flex; flex-direction:column; }
.pain-lab{ display:inline-flex; align-items:center; gap:6px; font-size:11px; letter-spacing:.08em; }
.pain-lab i{ display:inline-grid; place-items:center; width:16px; height:16px; flex:none; border-radius:50%; }
.pain-lab i svg{ width:8px; height:8px; }
.pain-slot p{
  margin:8px 0 0; font-size:12.5px; line-height:1.75; transition:color .3s var(--ease);
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
}
.pain-past{ background:rgba(245,240,232,.02); border:1px dashed rgba(160,160,165,.4); }
.pain-past .pain-lab{ color:var(--dim); }
.pain-past .pl-x{ background:rgba(160,160,165,.14); color:var(--dim); }
.pain-past p{ color:var(--paper-64); }

.pain-arr{ display:flex; align-items:center; justify-content:center; gap:8px; padding:1px 0; }
/* 环：外圈虚线绕轴旋转，内圈箭头轻微呼吸 + 下移提示 */
.pain-arr-ring{
  display:grid; place-items:center; width:32px; height:32px; border-radius:50%; flex:none;
  background:rgba(212,158,72,.12); border:1px solid rgba(212,158,72,.5);
  color:var(--gold); position:relative;
  transition:background .3s var(--ease), box-shadow .3s var(--ease);
}
.pain-arr-ring::before{
  content:''; position:absolute; inset:-5px; border-radius:50%;
  border:1px dashed rgba(212,158,72,.45);
  animation:psSpin 7s linear infinite;
}
@keyframes psSpin{ to{ transform:rotate(360deg); } }
.pain-arr-ring::after{
  content:''; position:absolute; inset:-5px; border-radius:50%;
  border:1px solid transparent; border-top-color:rgba(212,158,72,.75);
  animation:psSpin 2.1s linear infinite;
}
.pain:hover .pain-arr-ring{ box-shadow:0 0 20px rgba(212,158,72,.34); background:rgba(212,158,72,.22); }
.pain:hover .pain-arr-ring::after{ animation-duration:.9s; }
.pain-arr-ring svg{ width:14px; height:14px; transform:rotate(90deg); animation:psNudge 2.2s var(--ease) infinite; }
@keyframes psNudge{
  0%,72%,100%{ transform:rotate(90deg) translateY(0); opacity:.9; }
  84%{ transform:rotate(90deg) translateY(3px); opacity:1; }
}
@media (prefers-reduced-motion: reduce){
  .pain-arr-ring::before, .pain-arr-ring::after, .pain-arr-ring svg{ animation:none; }
}
.pain-arr em{ font-style:normal; font-size:10px; letter-spacing:.1em; color:rgba(212,158,72,.78); white-space:nowrap; }

.pain-now{ background:rgba(212,158,72,.055); border:1px solid rgba(212,158,72,.3); }
.pain-now .pain-lab{ color:var(--gold); font-weight:600; }
.pain-now .pl-ok{ background:rgba(212,158,72,.16); color:var(--gold); }
.pain-now-t{
  display:block; margin:9px 0 0; font-size:13px; font-weight:600;
  color:var(--gold); letter-spacing:.02em; line-height:1.55;
}
.pain-now p{ color:var(--paper); }

/* 进入视口时轻推一下，暗示可点 */
@media (hover:hover){
  .pain:hover .pain-past p{ color:var(--paper); }
}
@media (max-width:1080px){
  .pain-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px){
  .pain-list{ grid-template-columns:1fr; }
  .pain{ padding:18px; }
}


/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .nav-links{ display:none; }
  .nav-burger{ display:grid; }
  .detail{ grid-template-columns:1fr; gap:40px; }
  .detail.flip .detail-visual{ order:0; }
  .foot-top{ grid-template-columns:1fr 1fr; }
  .nav-drop{ min-width:300px; }
  .g4{ grid-template-columns:repeat(2,1fr); }
  .g5{ grid-template-columns:repeat(2,1fr); }
  .g5 > :last-child{ grid-column:1/-1; }
  .cta-band .inner{ grid-template-columns:1fr; }
  .loop-layout,.agents-layout,.curve-block{ grid-template-columns:1fr; gap:38px; }
  .lab-helix{ grid-template-columns:1fr; gap:36px; }
  .lab-helix .helixviz{ max-width:520px; margin:0 auto; }
  .house-layout{ grid-template-columns:1fr; gap:34px; }
  .house-fig{ max-width:320px; margin:0 auto; }
}
@media (max-width:820px){
  body{ font-size:15.5px; }
  .g3,.guard,.lab-grid{ grid-template-columns:1fr; }
  .lab-grid{ gap:1px; }
  .loop-track{ grid-template-columns:1fr; gap:26px; }
  .loop-line{ display:none; }
  .house-row{ grid-template-columns:1fr; gap:10px; }
  .layer{ grid-template-columns:auto 1fr; }
  .layer .st{ grid-column:1/-1; }
  .progress{ display:none; }
  .hero-meta{ position:static; margin-top:56px; flex-direction:column; align-items:flex-start; }
  .hero-agents{ margin-left:0; text-align:left; }
  /* 移动端首屏：文案贴顶，中部空带留给 ∞ 数字人环 */
  .hero{ min-height:100svh; padding:120px 0 40px; }
  .hero-inner{ align-self:start; }
  .hero-tags{ gap:7px; margin-bottom:28px; }
  .hero-tags span{ padding:6px 11px; font-size:12.5px; gap:5px; }
  .form{ grid-template-columns:1fr; }
  .span2{ grid-column:span 1; }
  .agents-figure{ order:-1; }
  .agents-cap{ justify-content:flex-start; }
  .step-row{ grid-template-columns:auto 1fr; gap:14px; }
  .arch-split{ grid-template-columns:1fr; gap:34px; }
  .arch-left{ position:static; top:auto; }
  .pyr3d .tierlab{ display:none; }
  .pyr3d .flowlines text{ font-size:0; }
  .arch-agents{ flex-direction:column; align-items:flex-start; gap:14px; }
  .scene{ flex-direction:column; gap:6px; }
  .pain-flow{ grid-template-columns:1fr; gap:12px; }
  .pain-arr{ flex-direction:row; padding:2px 0; }
  .pain-arr em{ letter-spacing:.1em; }
  .pain-idx{ font-size:64px; right:12px; }
  .pain{ padding:20px 20px 22px; }
  .pain-past-t, .pain-now-t{ font-size:14px; }
  /* :has 里的四列规则特异性更高，这里必须一并覆盖，否则手机端仍是四列、每列只剩五六个字 */
  .ap-list, .ap-list:has(> li:nth-child(4)){ grid-template-columns:1fr; gap:14px; }
  .ap-top{ gap:16px; }
}
@media (max-width:560px){
  .g2,.g4{ grid-template-columns:1fr; }
  .g5{ grid-template-columns:1fr; }
  .g5 > :last-child{ grid-column:auto; }
  .foot-top{ grid-template-columns:1fr; gap:36px; }
  .hero-cta .btn{ width:100%; justify-content:center; }
  .curve-legend{ gap:16px; }
  .hero-agents{ text-align:left; margin-left:0; }
  .hero{ padding-bottom:40px; }
  .hero-meta{ margin-top:28px; gap:14px; }
  .loop-side .lp-card{ transform:translateX(calc(var(--st,0) * 13px)); }
  .loop-side .lp-card.on{ transform:none; }
  /* 页头收纳：390px 下 brand + CTA + 汉堡 恰好溢出，收字标、缩 CTA */
  .nav{ gap:12px; }
  .brand .txt span{ display:none; }
  .brand .txt b{ font-size:16.5px; }
  .nav-right{ gap:10px; }
  .nav-right .btn-sm{ padding:9px 13px; font-size:13px; }
}

/* ============================================================
   立体半透明图形（玻璃质感）
   orb=球体 · ring=环体 · prism=晶体；用于产品模块装饰
   ============================================================ */
.glassfig,.orbfield{ display:block; width:100%; height:auto; overflow:visible; }
.glassfig{ max-width:420px; margin:0 auto; }
.glassfig .gf-orbit{ transform-origin:180px 150px; animation:gfSpin 24s linear infinite; }
.glassfig .gf-orbit3{ transform-origin:180px 150px; animation:gfSpin 16s linear infinite reverse; }
.glassfig .glass-orb .go-spec{ animation:gfFloat 7s var(--ease) infinite; }
.glassfig .glass-orb:nth-of-type(2){ animation:gfBob 6s var(--ease) infinite; }
.glassfig .glass-orb:nth-of-type(3){ animation:gfBob 8s var(--ease) infinite .6s; }
@keyframes gfSpin{ to{ transform:rotate(360deg); } }
@keyframes gfFloat{ 0%,100%{ opacity:.28; } 50%{ opacity:.46; } }
@keyframes gfBob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }

/* 卡片内嵌小图：右上角浮动玻璃体 */
.glasschip{
  position:absolute; top:-26px; right:-18px; width:132px; height:132px;
  opacity:.85; pointer-events:none; z-index:0;
}
.glasschip .glass-orb{ animation:gfBob 7.5s var(--ease) infinite; }
.glasschip .glass-ring{ animation:gfBob 9s var(--ease) infinite .8s; }

/* 产品面板 / 引擎卡：玻璃体做底纹 */
.ap-glass{
  position:absolute; right:-40px; top:-56px; width:280px; height:280px;
  opacity:.55; pointer-events:none; z-index:0;
}
.arch-panel,.engine-card,.card,.gap-card{ position:relative; overflow:hidden; }
.arch-panel > *,.engine-card > *{ position:relative; z-index:1; }

/* 区块级背景玻璃体 */
.sec-glass{
  position:absolute; inset:auto auto 0 0; width:100%; height:100%;
  pointer-events:none; z-index:0; opacity:.6;
}
.has-glass{ position:relative; }
.has-glass > .wrap{ position:relative; z-index:1; }

/* 区块装饰：右上角一组浮动玻璃体 */
.sec-deco{
  position:absolute; top:clamp(24px,5vw,72px); right:calc(-1 * clamp(20px,4vw,60px));
  width:clamp(200px,26vw,380px); height:auto; pointer-events:none; z-index:0;
  opacity:.75; filter:saturate(.9);
}
.sec-deco .glassfig{ max-width:none; }
@media (max-width:1100px){ .sec-deco{ opacity:.42; right:-14%; } }
@media (max-width:760px){ .sec-deco{ display:none; } }

/* 产品面板内嵌玻璃体 */
.ap-glass{
  position:absolute; right:-40px; top:-56px; width:280px; height:280px;
  opacity:.55; pointer-events:none; z-index:0;
}
.ap-glass .glassfig{ max-width:none; }
@media (max-width:760px){ .ap-glass{ opacity:.3; width:200px; right:-50px; top:-40px; } }

/* 页面头 3D 装饰组（倾斜面板 + 环体 + 玻璃体） */
.page-head.has-glass .wrap{ position:relative; z-index:1; }
.ph-glass{
  position:absolute; right:clamp(40px,7vw,130px); top:50%;
  transform:translateY(-50%); width:clamp(380px,34vw,560px); height:440px;
  pointer-events:none; z-index:0;
}
.phd-ring{ position:absolute; left:-2%; bottom:2%; width:clamp(170px,17vw,240px); opacity:.85; }
.phd-panel{ position:absolute; right:2%; top:8%; width:clamp(280px,26vw,360px); animation:phdFloat 9s var(--ease) infinite; }
.phd-orbs{ position:absolute; right:-14px; bottom:-24px; width:clamp(120px,12vw,170px); opacity:.65; }
@keyframes phdFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-12px); } }
@media (max-width:980px){
  .ph-glass{ opacity:.4; right:-8%; }
  .phd-panel{ width:300px; }
}
@media (max-width:700px){ .ph-glass{ display:none; } }

/* ---- 3D 透视倾斜作业面板（半透明平面 + 循环行 + 状态徽章） ---- */
.tilt-scene{ perspective:1200px; }
.tilt-panel{
  position:relative; transform:rotateX(52deg) rotateZ(-26deg);
  transform-style:preserve-3d; border-radius:12px;
  border:1px solid rgba(245,240,232,.11);
  background:linear-gradient(150deg, rgba(245,240,232,.075), rgba(245,240,232,.02) 46%, rgba(212,158,72,.05) 88%);
  box-shadow:-26px 32px 64px rgba(0,0,0,.42);
}
.tilt-panel::after{   /* 远端渐隐入黑暗 */
  content:''; position:absolute; inset:0; border-radius:12px;
  background:linear-gradient(115deg, transparent 56%, rgba(18,20,23,.72) 97%);
}
.tp-head{ display:flex; align-items:center; gap:9px; padding:13px 16px;
  border-bottom:1px solid rgba(245,240,232,.09); transform:translateZ(4px); }
.tp-live{ width:7px; height:7px; border-radius:50%; background:var(--gold);
  box-shadow:0 0 10px rgba(212,158,72,.85); flex:none; }
.tp-head b{ font-size:12px; letter-spacing:.08em; color:var(--paper-78); font-weight:600; }
.tp-inf{ margin-left:auto; color:var(--gold); font-size:14px; opacity:.85; }
.tp-row{ display:flex; align-items:center; gap:12px; padding:11px 16px;
  border-bottom:1px solid rgba(245,240,232,.055); }
.tp-row:nth-child(3){ transform:translateZ(16px); }
.tp-row:nth-child(4){ transform:translateZ(6px); }
.tp-row:nth-child(5){ transform:translateZ(11px); }
.tp-en{ font-size:10px; letter-spacing:.14em; color:var(--warm); width:58px; flex:none; }
.tp-main{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.tp-main b{ font-size:12.5px; font-weight:600; color:var(--paper-78); }
.tp-main i{ font-style:normal; font-size:10.5px; color:var(--dim); }
.tp-chip{ margin-left:auto; font-size:10px; padding:3px 9px; border-radius:999px;
  border:1px solid rgba(245,240,232,.16); color:var(--dim); white-space:nowrap; flex:none; }
.tp-chip.hot{ border-color:rgba(212,158,72,.45); color:var(--gold);
  background:rgba(212,158,72,.12); box-shadow:0 0 16px rgba(212,158,72,.22); }
.tp-foot{ display:flex; justify-content:space-between; align-items:center;
  padding:10px 16px; font-size:10px; letter-spacing:.14em; color:var(--warm);
  transform:translateZ(18px); }
.tp-foot b{ color:var(--gold); font-weight:600; }

/* ---- 3D 透视倾斜环体（金弧发光 + 悬浮标签） ---- */
.tilt-ringscene{ position:relative; perspective:900px; }
.tilt-ring{
  width:100%; aspect-ratio:1; border-radius:50%; position:relative;
  border:15px solid rgba(245,240,232,.075);
  transform:rotateX(56deg) rotateZ(-16deg);
}
.tilt-ring i{ position:absolute; inset:-15px; border-radius:50%;
  background:conic-gradient(from 208deg, transparent 0 56%, rgba(212,158,72,.25) 69%, var(--gold) 80%, transparent 93%);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 16.5px), #000 calc(100% - 15.5px));
  mask:radial-gradient(farthest-side, transparent calc(100% - 16.5px), #000 calc(100% - 15.5px));
  filter:drop-shadow(0 0 14px rgba(212,158,72,.45));
  animation:ringArc 9s linear infinite;
}
@keyframes ringArc{ to{ transform:rotate(360deg); } }
.tilt-label{
  position:absolute; right:2%; top:-4%; display:flex; align-items:center; gap:8px;
  padding:7px 12px; border-radius:999px; font-size:11px; color:var(--paper-78);
  background:rgba(18,20,23,.86); border:1px solid rgba(245,240,232,.13);
  box-shadow:0 10px 30px rgba(0,0,0,.4);
}
.tl-dot{ width:6px; height:6px; border-radius:50%; background:var(--gold);
  box-shadow:0 0 9px rgba(212,158,72,.85); flex:none; }

/* 首页产品区右上角斜环 */
.sec-deco-ring{
  position:absolute; top:clamp(30px,5vw,80px); right:calc(-1 * clamp(20px,3vw,56px));
  width:clamp(190px,22vw,330px); pointer-events:none; z-index:0; opacity:.7;
}
@media (max-width:1100px){ .sec-deco-ring{ opacity:.4; right:-14%; } }
@media (max-width:760px){ .sec-deco-ring{ display:none; } }

/* 无障碍：尊重系统降级 */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition-duration:.01ms !important; transition-delay:0ms !important; }
  .reveal{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
  .ringviz .rk-base,.curves .cv-l{ stroke-dashoffset:0 !important; }
  .agentviz.ready .agent{ opacity:1; }
}

/* ================================================================
   首页第五屏 / 实验室：BP 同款双螺旋全景构图（hd-*）
   ================================================================ */
.dna-wrap{ max-width:clamp(560px,72vw,980px); margin:0 auto; }
.hdnaviz{ width:100%; height:auto; display:block; }
/* —— 立体双螺旋：管状底衬（外光晕）＋ 前后分层明暗 ＋ 高光芯 ——
   可见性策略：默认即为完整可见；JS 环境（html.js）下未显影前隐藏，
   进场时淡入——任何环境下图形都不会残缺 */
.hdnaviz .hd-tube{ fill:none; stroke-linecap:round; stroke-linejoin:round;
  opacity:.14; transition:opacity 1.1s var(--ease); }
html.js .dna-wrap:not(.in) .hd-tube{ opacity:0; }
.hdnaviz .hd-tube-a,.hdnaviz .hd-tube-a2{ stroke:var(--gold); }
.hdnaviz .hd-tube-b,.hdnaviz .hd-tube-b2{ stroke:rgba(245,240,232,.55); }
.hdnaviz .hd-tube-a,.hdnaviz .hd-tube-b{ stroke-width:7; }
.hdnaviz .hd-tube-a2,.hdnaviz .hd-tube-b2{ stroke-width:9.5; }
.hdnaviz .hd-chain{ fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round;
  opacity:1; transition:opacity 1.1s var(--ease); }
html.js .dna-wrap:not(.in) .hd-chain{ opacity:0; }
.dna-wrap.in .hd-chain.hd-back{ opacity:.3; }
.hdnaviz .hd-near .hd-chain{ stroke-width:3; }
.hdnaviz .hd-thin{ stroke-width:2; }
.hdnaviz .hd-near .hd-thin{ stroke-width:2.3; }
.hdnaviz .hd-a{ stroke:var(--gold); }
.hdnaviz .hd-b{ stroke:rgba(245,240,232,.5); }
.hdnaviz .hd-hi{ fill:none; stroke-linecap:round; opacity:.55; transition:opacity 1.1s var(--ease); }
html.js .dna-wrap:not(.in) .hd-hi{ opacity:0; }
.hdnaviz .hd-hi-a{ stroke:#F1E3A6; stroke-width:1; }
.hdnaviz .hd-hi-b{ stroke:rgba(245,240,232,.92); stroke-width:.9; }
.hdnaviz .hd-shadow{ fill:rgba(212,158,72,.07); }
.hdnaviz .hd-rung{ stroke:rgba(245,240,232,.34); stroke-width:1;
  opacity:1; transition:opacity 1.1s var(--ease); animation:rungPulse 3s ease-in-out infinite; }
html.js .dna-wrap:not(.in) .hd-rung{ opacity:0; }
.hdnaviz .hd-flow{ fill:none; stroke-width:2.6; stroke-linecap:round; stroke-dasharray:5 95; opacity:.9; }
.hdnaviz .hd-fa{ stroke:var(--gold); animation:flowDown 4.2s linear infinite; }
.hdnaviz .hd-fb{ stroke:rgba(245,240,232,.6); animation:flowUp 4.6s linear infinite; }
.hdnaviz .hd-mini{ opacity:1; transition:opacity .9s var(--ease); }
html.js .dna-wrap:not(.in) .hd-mini{ opacity:0; }
.hdnaviz .hd-badge{ fill:rgba(212,158,72,.08); stroke:rgba(212,158,72,.5); stroke-width:1; }
.hdnaviz .hd-badge-t{ font-size:12.5px; fill:var(--gold); letter-spacing:.1em; }
.hdnaviz .hd-box{ fill:rgba(18,20,23,.94); stroke:rgba(212,158,72,.45); stroke-width:1; }
.hdnaviz .hd-lead{ stroke:rgba(212,158,72,.45); stroke-width:1; }
.hdnaviz .hd-cap{ font-size:12.5px; font-weight:600; fill:var(--warm); }
.hdnaviz .hd-cap-a{ fill:var(--gold); }
.hdnaviz .hd-cap-b{ fill:var(--warm); }
.hdnaviz .hd-sub{ font-size:10.5px; fill:var(--dim); letter-spacing:.05em; }
.hdnaviz .hd-panel{ fill:rgba(245,240,232,.025); stroke:var(--line); stroke-width:1; }
.hdnaviz .hd-mini-lab{ font-size:12px; fill:var(--warm); letter-spacing:.06em; }
.hdnaviz .hd-arrow{ fill:rgba(212,158,72,.12); stroke:rgba(212,158,72,.75); stroke-width:1.2;
  stroke-dasharray:5 4; animation:hdArrFlow 1.6s linear infinite; }
@keyframes hdArrFlow{ from{ stroke-dashoffset:18; } to{ stroke-dashoffset:0; } }
.hdnaviz .hd-arrow-sm{ animation:hdArrFlow 1.6s linear infinite, hdArr 2.6s var(--ease) infinite; }
@keyframes hdArr{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
.hdnaviz .hd-arrow-t{ font-size:14px; font-weight:700; fill:var(--paper); }
.hdnaviz .hd-arrow-s{ font-size:11px; fill:var(--dim); letter-spacing:.08em; }
.hdnaviz .hd-note{ font-size:11.5px; fill:var(--dim); letter-spacing:.04em; }
.hdnaviz .hd-arc-b{ fill:none; stroke:rgba(212,158,72,.35); stroke-width:1.4; stroke-dasharray:6 5; }
.hdnaviz .hd-arc{ fill:none; stroke-width:2; stroke-linecap:round; }
.hdnaviz .hd-arc-flow{ stroke:var(--gold); stroke-dasharray:12 88; animation:hdArc 3.8s linear infinite; }
@keyframes hdArc{ from{ stroke-dashoffset:100; } to{ stroke-dashoffset:0; } }
.hdnaviz .hd-reflux{ font-size:13px; font-weight:700; fill:var(--gold); letter-spacing:.12em; }
.hdnaviz .hd-reflux-s{ font-size:10.5px; fill:var(--dim); letter-spacing:.08em; }
@media (max-width:900px){
  .dna-wrap{ max-width:560px; }
}

/* ================================================================
   在线咨询浮窗（chatw-*）
   ================================================================ */
.chatw{ position:fixed; right:clamp(14px,2vw,26px); bottom:clamp(14px,2vw,26px);
  z-index:100; display:flex; flex-direction:column; align-items:flex-end; gap:12px;
  /* 关键：容器不拦截点击——收起的面板仍占布局位，若容器可点会挡住整页（移动端全屏宽被盖） */
  pointer-events:none; }
.chatw .chatw-panel, .chatw .cq-bar, .chatw .chatw-fab{ pointer-events:auto; }
.chatw-fab{ position:relative; width:58px; height:58px; border-radius:50%; border:0;
  background:none; cursor:pointer; padding:0;
  display:flex; align-items:center; justify-content:center;
  animation:plBob 3.6s var(--ease) infinite; }
/* 行星核心 */
.pl-core{ position:relative; z-index:2; width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--gold);
  background:radial-gradient(circle at 32% 28%,rgba(245,240,232,.34),rgba(212,158,72,.46) 42%,rgba(212,158,72,.14) 72%,rgba(18,20,23,.92));
  border:1px solid rgba(212,158,72,.72);
  box-shadow:0 0 0 1px rgba(212,158,72,.16), 0 8px 26px rgba(0,0,0,.5), 0 0 22px rgba(212,158,72,.35);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
.pl-core svg{ width:22px; height:22px; position:relative; z-index:1; }
.pl-core::after{ content:''; position:absolute; inset:0; border-radius:50%; pointer-events:none;
  background:linear-gradient(120deg,rgba(245,240,232,.5) 0%,rgba(245,240,232,0) 44%); opacity:.5; }
.chatw-fab:hover .pl-core{ transform:scale(1.07);
  box-shadow:0 0 0 1px rgba(212,158,72,.34), 0 10px 32px rgba(0,0,0,.6), 0 0 30px rgba(212,158,72,.55); }
/* 行星轨道 */
.pl-orbit{ position:absolute; inset:0; border-radius:50%; z-index:1;
  border:1px solid rgba(212,158,72,.30); animation:plSpin 7s linear infinite; }
.pl-orbit2{ inset:-8px; border-color:rgba(212,158,72,.15); animation-duration:11s; animation-direction:reverse; }
@keyframes plSpin{ from{ transform:rotate(0); } to{ transform:rotate(360deg); } }
/* 卫星 */
.pl-moon{ position:absolute; top:-3px; left:50%; width:6px; height:6px; margin-left:-3px;
  border-radius:50%; background:var(--gold); box-shadow:0 0 8px rgba(212,158,72,.9); }
.pl-orbit2 .pl-moon{ width:4px; height:4px; margin-left:-2px; background:rgba(245,240,232,.85);
  box-shadow:0 0 7px rgba(245,240,232,.7); }
/* 呼吸光晕 */
.chatw-fab::before{ content:''; position:absolute; inset:-5px; border-radius:50%; pointer-events:none;
  border:1px solid rgba(212,158,72,.45); animation:plPulse 2.6s var(--ease) infinite; }
@keyframes plPulse{ 0%{ transform:scale(.86); opacity:.75; } 70%{ transform:scale(1.3); opacity:0; } 100%{ opacity:0; } }
@keyframes plBob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-5px); } }
/* 引导气泡 */
.chatw-tip{ position:absolute; right:74px; top:50%; transform:translateY(-50%) translateX(10px);
  white-space:nowrap; font-size:12.5px; padding:8px 14px; border-radius:999px;
  color:var(--paper); background:rgba(18,20,23,.94); border:1px solid rgba(212,158,72,.5);
  box-shadow:0 10px 30px rgba(0,0,0,.5); opacity:0; pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease); }
.chatw-tip::after{ content:''; position:absolute; right:-4px; top:50%; width:8px; height:8px;
  margin-top:-4px; transform:rotate(45deg); background:rgba(18,20,23,.94);
  border-right:1px solid rgba(212,158,72,.5); border-top:1px solid rgba(212,158,72,.5); }
.chatw:not(.open) .chatw-tip{ opacity:1; transform:translateY(-50%) translateX(0); }
.chatw.open .chatw-tip{ opacity:0 !important; pointer-events:none; }
@media (max-width:640px){ .chatw-tip{ right:70px; font-size:12px; } }
.chatw-panel{ width:min(348px,calc(100vw - 32px)); height:min(560px,calc(100vh - 230px));
  display:none; flex-direction:column; overflow:hidden;
  background:linear-gradient(180deg, rgba(212,158,72,.1), rgba(212,158,72,.04) 34%), var(--ink-2);
  border:1px solid rgba(212,158,72,.3); border-radius:16px;
  box-shadow:0 24px 70px rgba(0,0,0,.6);
  opacity:0; transform:translateY(14px) scale(.97); pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease); }
.chatw.open .chatw-panel{ display:flex; opacity:1; transform:none; pointer-events:auto; }
.chatw-body{ flex:1; min-height:0; display:flex; flex-direction:column; overflow:hidden; }

/* ---------- 独立按钮组：微信咨询 / 电话咨询 / 在线咨询 ---------- */
.cq-bar{ display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.cq-item{ position:relative; display:flex; }
.cq-btn{ display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 15px;
  border-radius:999px; cursor:pointer;
  background:linear-gradient(160deg, rgba(212,158,72,.34), rgba(212,158,72,.14));
  border:1px solid rgba(212,158,72,.55);
  color:var(--paper); font-size:12.5px; letter-spacing:.06em; white-space:nowrap;
  backdrop-filter:blur(8px);
  box-shadow:0 6px 20px rgba(0,0,0,.42), inset 0 0 14px rgba(212,158,72,.12);
  transition:filter .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease); }
.cq-btn svg{ width:15px; height:15px; flex:none; color:var(--gold); }
.cq-btn:hover, .cq-item.on .cq-btn{ border-color:rgba(212,158,72,.85);
  background:linear-gradient(160deg, rgba(212,158,72,.5), rgba(212,158,72,.24));
  filter:brightness(1.08); }

/* 气泡 */
.cq-pop{ position:absolute; right:calc(100% + 14px); top:50%;
  transform:translateY(-50%) translateX(10px);
  background:linear-gradient(180deg, rgba(212,158,72,.09), rgba(212,158,72,.035) 42%), var(--ink-2);
  border:1px solid rgba(212,158,72,.32); border-radius:14px;
  box-shadow:0 18px 50px rgba(0,0,0,.62); padding:14px 16px;
  opacity:0; pointer-events:none;
  transition:opacity .26s var(--ease), transform .26s var(--ease); }
.cq-item.on .cq-pop{ opacity:1; transform:translateY(-50%); pointer-events:auto; }
.cq-pop::after{ content:''; position:absolute; right:-5px; top:50%; width:9px; height:9px;
  margin-top:-4.5px; transform:rotate(45deg); background:var(--ink-2);
  border-right:1px solid var(--line); border-top:1px solid var(--line); }
.cq-pop-qr{ display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:13px; width:212px; padding:16px 16px 15px; }
.cq-tt{ margin:0; font-size:13.5px; font-weight:600; letter-spacing:.14em; color:var(--gold); }
.cq-qr{ width:150px; height:150px; flex:none; border-radius:8px; overflow:hidden;
  border:1px solid var(--line-2); background:rgba(245,240,232,.03);
  display:grid; place-items:center; }
.cq-qr svg{ width:100%; height:100%; }
.cq-cap{ margin:0; font-size:12.5px; color:var(--dim); letter-spacing:.05em; }
.cq-t b{ display:block; font-size:13px; color:var(--paper); font-weight:600; line-height:1.5; }
.cq-t span{ display:block; margin-top:6px; font-size:11.5px; color:var(--dim); line-height:1.7; }
.cq-pop-tel{ white-space:nowrap; text-align:left; }
.cq-pop-tel .cq-t b{ font-size:18px; letter-spacing:.05em; font-weight:700; }
@media (max-width:640px){
  .cq-pop-qr{ width:min(200px,calc(100vw - 110px)); }
  .cq-qr{ width:128px; height:128px; }
  .cq-btn{ height:38px; padding:0 13px; font-size:12px; }
}
.chatw-head{ display:flex; align-items:center; gap:10px; padding:14px 16px;
  border-bottom:1px solid var(--line); background:rgba(212,158,72,.05); }
.chatw-head .dot{ width:8px; height:8px; border-radius:50%; background:var(--gold);
  box-shadow:0 0 8px rgba(212,158,72,.8); animation:vfPulse 2.6s ease-in-out infinite; }
.chatw-head b{ display:block; font-size:13.5px; color:var(--paper); }
.chatw-head i{ display:block; font-style:normal; font-size:10.5px; color:var(--dim); }
.chatw-head div{ flex:1; }
.chatw-x{ background:none; border:0; color:var(--dim); font-size:20px; cursor:pointer; line-height:1; padding:2px 6px; }
.chatw-x:hover{ color:var(--paper); }
.chatw-msgs{ flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; }
.chatw-msgs .msg{ max-width:86%; padding:9px 12px; border-radius:12px;
  font-size:12.8px; line-height:1.75; }
.chatw-msgs .msg.bot{ background:rgba(245,240,232,.05); border:1px solid var(--line);
  color:var(--paper-64); border-bottom-left-radius:4px; align-self:flex-start; }
.chatw-msgs .msg.bot a{ color:var(--gold); }
.chatw-msgs .msg.me{ background:rgba(212,158,72,.16); border:1px solid rgba(212,158,72,.45);
  color:var(--paper); align-self:flex-end; border-bottom-right-radius:4px; }
.chatw-quick{ display:flex; flex-wrap:wrap; gap:6px; padding:0 14px 10px; }
.chatw-quick button{ font-size:11px; padding:5px 10px; border-radius:999px;
  border:1px solid var(--line); background:none; color:var(--warm); cursor:pointer;
  transition:border-color .25s, color .25s; }
.chatw-quick button:hover{ border-color:var(--gold-line); color:var(--gold); }
.chatw-form{ display:flex; gap:8px; padding:10px 14px 14px; border-top:1px solid var(--line); }
.chatw-form input{ flex:1; background:rgba(245,240,232,.04); border:1px solid var(--line);
  border-radius:10px; padding:9px 12px; color:var(--paper); font-size:12.8px; outline:none; }
.chatw-form input:focus{ border-color:var(--gold-line); }
@media (max-width:640px){ .chatw-panel{ height:min(520px,calc(100vh - 218px)); } }

/* ================================================================
   登录 / 注册模态框（authm-*）
   ================================================================ */
.nav-auth{
  display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
  background:none; border:1px solid var(--line-2); border-radius:999px;
  color:var(--warm); font-size:12.8px; padding:8px 15px; cursor:pointer;
  transition:color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);
}
.nav-auth svg{ width:14px; height:14px; }
.nav-auth:hover{ color:var(--gold); border-color:var(--gold-line); background:rgba(212,158,72,.07); }
@media (max-width:1100px){ .nav-auth span{ display:none; } .nav-auth{ padding:8px 10px; } }
.authm{ position:fixed; inset:0; z-index:220; display:grid; place-items:center; padding:20px;
  visibility:hidden; }
.authm.open{ visibility:visible; }
.authm-mask{ position:absolute; inset:0; background:rgba(10,11,13,.66); backdrop-filter:blur(4px);
  opacity:0; transition:opacity .3s var(--ease); }
.authm.open .authm-mask{ opacity:1; }
.authm-panel{
  position:relative; width:min(400px,100%); max-height:calc(100vh - 48px); overflow-y:auto;
  background:var(--ink-2); border:1px solid var(--line-2); border-radius:18px;
  box-shadow:0 30px 90px rgba(0,0,0,.65);
  padding:30px 30px 26px;
  opacity:0; transform:translateY(16px) scale(.97); pointer-events:none;
  transition:opacity .32s var(--ease), transform .32s var(--ease);
}
.authm.open .authm-panel{ opacity:1; transform:none; pointer-events:auto; }
.authm-x{ position:absolute; right:14px; top:12px; background:none; border:0;
  color:var(--dim); font-size:22px; line-height:1; cursor:pointer; padding:4px 8px; }
.authm-x:hover{ color:var(--paper); }
.authm-tabs{ display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:22px;
  background:rgba(245,240,232,.04); border:1px solid var(--line); border-radius:12px; padding:4px; }
.authm-tab{ background:none; border:0; border-radius:9px; padding:9px 0; cursor:pointer;
  font-size:13.5px; color:var(--dim); letter-spacing:.08em;
  transition:background .25s var(--ease), color .25s var(--ease); }
.authm-tab.on{ background:rgba(212,158,72,.14); color:var(--gold); font-weight:600; }
.authm-form{ display:none; flex-direction:column; gap:13px; }
.authm-form.on{ display:flex; }
.authm .fld{ display:flex; flex-direction:column; gap:6px; }
.authm .fld span{ font-size:12px; letter-spacing:.06em; color:var(--dim); }
.authm .fld span i{ color:var(--gold); font-style:normal; }
.authm .fld input{
  background:rgba(245,240,232,.04); border:1px solid var(--line); border-radius:10px;
  padding:10px 13px; color:var(--paper); font-size:13.5px; outline:none;
  transition:border-color .25s var(--ease);
}
.authm .fld input:focus{ border-color:var(--gold-line); }
.authm .fld-check{ display:flex; align-items:flex-start; gap:8px; font-size:11.5px;
  color:var(--dim); line-height:1.7; cursor:pointer; }
.authm .fld-check input{ margin-top:3px; accent-color:#D49E48; }
.authm .fld-check a{ color:var(--gold); }
.btn-block{ width:100%; justify-content:center; }
.authm-note{ margin:2px 0 0; font-size:11px; color:var(--dim); line-height:1.7; text-align:center; }
.authm-note a{ color:var(--gold); }
.authm-done{ display:flex; flex-direction:column; align-items:center; gap:12px; padding:26px 0 10px;
  text-align:center; }
.authm-done[hidden]{ display:none; }
.authm-done-ic{ display:grid; place-items:center; width:58px; height:58px; border-radius:50%;
  background:rgba(212,158,72,.12); border:1px solid rgba(212,158,72,.5); color:var(--gold); }
.authm-done-ic svg{ width:30px; height:30px; }
.authm-done h4{ margin:0; font-size:17px; color:var(--paper); }
.authm-done p{ margin:0; font-size:12.8px; color:var(--dim); line-height:1.75; }
.authm-error{ display:none; margin:0; font-size:11.5px; color:#e08a6d; }
.authm-error.on{ display:block; }

/* ================================================================
   案例与资讯（news / case / post）
   ================================================================ */
.case-card .cc-cover{ height:120px; border-radius:10px; margin-bottom:16px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,rgba(212,158,72,.14),rgba(212,158,72,.03));
  border:1px solid rgba(212,158,72,.25); }
.case-card .cc-cover svg{ width:44px; height:44px; color:var(--gold); opacity:.85; }
.case-card .cc-tags{ display:inline-flex; gap:6px; }
.case-card .cc-tags i{ font-style:normal; font-size:10.5px; padding:3px 9px; border-radius:999px;
  border:1px solid rgba(212,158,72,.4); color:var(--gold); }
.case-card .cc-more{ display:inline-flex; align-items:center; gap:5px; color:var(--warm); font-size:12.5px; }
.case-card .cc-more svg{ width:14px; height:14px; }
.news-list{ display:flex; flex-direction:column; border:1px solid var(--line);
  border-radius:var(--r); background:var(--ink-2); overflow:hidden; }
.news-row{ display:grid; grid-template-columns:96px auto 1fr auto; gap:18px; align-items:center;
  padding:18px clamp(16px,2vw,26px); border-bottom:1px solid var(--line);
  transition:background .25s var(--ease); }
.news-row:last-child{ border-bottom:0; }
.news-row:hover{ background:rgba(212,158,72,.05); }
.nr-date{ font-size:12px; color:var(--dim); letter-spacing:.06em; }
.nr-kind{ font-size:10.5px; padding:3px 10px; border-radius:999px; justify-self:start;
  border:1px solid rgba(212,158,72,.4); color:var(--gold); white-space:nowrap; }
.nr-body b{ display:block; font-size:14.5px; font-weight:600; color:var(--paper); margin-bottom:4px; }
.nr-body i{ font-style:normal; font-size:12.5px; color:var(--paper-64); }
.nr-more{ display:inline-flex; align-items:center; gap:5px; color:var(--warm); font-size:12.5px; white-space:nowrap; }
.nr-more svg{ width:14px; height:14px; }
@media (max-width:760px){
  .news-row{ grid-template-columns:auto 1fr; grid-template-rows:auto auto; }
  .nr-date{ order:1; } .nr-kind{ order:2; } .nr-body{ order:3; grid-column:1/-1; }
  .nr-more{ display:none; }
}
.article{ max-width:820px; margin:0 auto; }
.article .art-meta{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:22px; }
.article .art-meta span{ font-size:11.5px; padding:4px 12px; border-radius:999px;
  border:1px solid var(--line); color:var(--warm); }
.article .art-block{ padding:20px 22px; border:1px solid var(--line); border-radius:12px;
  background:var(--ink-2); margin-bottom:14px; }
.article .art-block .k{ font-size:12px; letter-spacing:.14em; color:var(--gold); margin-bottom:8px; }
.article .art-block p{ margin:0; color:var(--paper-64); line-height:1.9; font-size:14.5px; }
.article .art-title{ font-size:clamp(22px,2.4vw,30px); margin:0 0 18px; }
.article blockquote{ margin:22px 0; padding:16px 20px; border-left:2px solid var(--gold);
  background:rgba(212,158,72,.06); color:var(--warm); font-size:14px; line-height:1.9; }

/* 关于页副标题单行 */
.page-head .lead.oneline{ white-space:nowrap; font-size:clamp(12.5px,1.05vw,15.5px); }
@media (max-width:720px){ .page-head .lead.oneline{ white-space:normal; } }
/* 页头副标题小号（与关于页一致） */
.page-head .lead.sm{ font-size:clamp(12.5px,1.05vw,15.5px); }

/* ================================================================
   在线咨询 CTA（.js-consult）· 导航 / 抽屉 / 表单内的并列按钮
   ================================================================ */
.btn.js-consult svg{ width:16px; height:16px; }
.btn.js-consult:hover svg{ transform:none; }
.nav-consult{ display:inline-flex; }
@media (max-width:1100px){ .nav-consult{ display:none !important; } }
.drawer-acts{ display:flex; flex-direction:column; gap:12px; margin-top:28px; }
.drawer-acts .drawer-cta{ margin-top:0; }
.drawer button.btn{ width:100%; justify-content:center; font-size:16.5px; font-weight:700; padding:17px 24px; }
.form-acts{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }

/* ================================================================
   产品页 · 预留产品图位（shot-ph）
   ================================================================ */
.shot-ph{
  position:relative; width:100%; aspect-ratio:16/9; min-height:clamp(200px,24vw,340px);
  border:1px dashed var(--line-2); border-radius:var(--r);
  background:
    repeating-linear-gradient(45deg, rgba(245,240,232,.018) 0 12px, transparent 12px 24px),
    linear-gradient(180deg, rgba(245,240,232,.03), rgba(245,240,232,.008));
  display:grid; place-items:center;
}
.shot-ph::before{
  content:''; position:absolute; inset:16px; border:1px solid rgba(245,240,232,.06);
  border-radius:calc(var(--r) - 4px); pointer-events:none;
}
.shot-ph-lab{
  font-size:12.5px; letter-spacing:.3em; color:var(--dim);
  padding:11px 20px; border:1px solid var(--line); border-radius:999px;
  background:rgba(18,20,23,.55);
}
@media (max-width:640px){ .shot-ph-lab{ letter-spacing:.18em; font-size:11.5px; } }

/* ================================================================
   自进化实验室 · 研究产出（学术论文 / 发明专利 / 行业洞察）
   ================================================================ */
.papers{ border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.paper{
  display:grid; grid-template-columns:76px 1fr; gap:22px; align-items:start;
  padding:24px 26px; border-top:1px solid var(--line);
  transition:background .3s var(--ease);
}
.paper:first-child{ border-top:0; }
.paper:hover{ background:rgba(245,240,232,.03); }
.paper .pa-idx{ font-size:26px; font-weight:700; line-height:1; letter-spacing:.02em;
  color:rgba(212,158,72,.5); padding-top:4px; }
.paper .pa-meta{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.paper .pa-kind{ font-size:12.5px; letter-spacing:.14em; color:var(--gold);
  padding:4px 10px; border:1px solid rgba(212,158,72,.4); border-radius:999px; }
.paper .pa-st{ font-size:12.5px; letter-spacing:.1em; color:var(--dim); }
.paper .pa-st.st-sub{ color:#D49E48; }
.paper h4{ margin:0 0 10px; font-size:17px; font-weight:600; color:var(--paper); line-height:1.5; }
.paper p{ margin:0; font-size:13.5px; line-height:1.85; color:var(--paper-64); max-width:780px; }

/* 专利卡片 · 悬停翻转查看证书 */
.patent{ padding:0; overflow:visible; perspective:1400px; background:transparent; border:0; cursor:pointer; }
.patent:hover{ background:transparent; }
.patent .pt-flip{
  position:relative; height:100%; min-height:0;
  aspect-ratio:210 / 310;            /* 竖版：证书 A4（210:297）＋ 底部标题行 */
  transform-style:preserve-3d;
  transition:transform .78s cubic-bezier(.22,.61,.24,1);
}
.patent:hover .pt-flip,
.patent:focus-visible .pt-flip,
.patent.is-flip .pt-flip{ transform:rotateY(180deg); }
.patent .pt-face{
  position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden;
  border:1px solid var(--line); border-radius:var(--r); background:var(--ink-2);
  padding:14px 15px 12px; display:flex; flex-direction:column;
  transition:border-color .25s var(--ease);
}
.patent:hover .pt-face{ border-color:var(--line-2); }
.patent .pt-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
.patent .pt-badge{ font-size:10px; letter-spacing:.12em; color:var(--gold);
  padding:2.5px 8px; border:1px solid rgba(212,158,72,.4); border-radius:999px; white-space:nowrap; }
.patent .pt-status{ font-size:9.5px; letter-spacing:.08em; color:var(--dim); white-space:nowrap; }
.patent h4{ margin:0 0 10px; font-size:13px; font-weight:600; color:var(--paper); line-height:1.6;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.patent p{ display:none; }   /* 紧凑证书墙：正文与要点不再展示，完整信息在证书背面 */
.patent .pt-pts{ display:none; }
.patent .pt-hint{
  margin-top:auto; padding-top:0; display:inline-flex; align-items:center; gap:6px;
  font-size:10px; letter-spacing:.08em; color:var(--dim);
  transition:color .25s var(--ease);
}
.patent .pt-hint svg{ width:11px; height:11px; }
.patent:hover .pt-hint, .patent.is-flip .pt-hint{ color:var(--gold); }
.patent .pt-back{
  transform:rotateY(180deg);
  background:linear-gradient(160deg, rgba(212,158,72,.1), rgba(18,20,23,.94) 52%);
  border-color:rgba(212,158,72,.34);
  padding:8px 8px 7px;
}
.pt-cert{
  position:relative; flex:0 0 auto; width:100%;
  aspect-ratio:210 / 297;            /* 竖版 A4 */
  border:1px solid rgba(212,158,72,.45); border-radius:6px;
  background:
    repeating-linear-gradient(90deg, rgba(245,240,232,.045) 0 1px, transparent 1px 14px),
    rgba(245,240,232,.04);
  padding:14px 12px 34px;
  display:flex; flex-direction:column;
}
.pt-cert::before{
  content:''; position:absolute; inset:6px; border:1px solid rgba(212,158,72,.2);
  border-radius:3px; pointer-events:none;
}
.cert-cap{ font-size:9.5px; letter-spacing:.28em; text-indent:.28em; color:var(--gold); text-align:center; }
.cert-seal{
  position:absolute; right:16px; bottom:48px;
  width:32px; height:32px; border-radius:50%; display:grid; place-items:center;
  border:1px solid rgba(212,158,72,.55); color:rgba(212,158,72,.8);
  font-size:8.5px; letter-spacing:.04em;
  box-shadow:inset 0 0 0 2px rgba(212,158,72,.1);
}
.cert-line{ height:1px; background:rgba(245,240,232,.14); margin-top:10px; }
.cert-line-1{ width:78%; margin-top:auto; }
.cert-line-2{ width:58%; }
.cert-line-3{ width:68%; margin-bottom:auto; }
.cert-no{ position:absolute; left:14px; bottom:10px; font-size:8.5px; letter-spacing:.06em; color:var(--dim); }
@media (hover:none){
  .pt-hint{ display:none; }
}
@media (max-width:820px){
  .patent .pt-flip{ min-height:0; }
}

/* 专利证书墙：一排 5-6 个（≥1280 六个 / 1280↓ 五个 / 1080↓ 四个 / 820↓ 三个 / 560↓ 两个），
   超出一屏的证书折叠进「显示更多」，展开后可收起 */
.pt-grid{ grid-template-columns:repeat(6,1fr); gap:14px; }
@media (max-width:1280px){ .pt-grid{ grid-template-columns:repeat(5,1fr); } }
@media (max-width:1080px){ .pt-grid{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:820px){ .pt-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .pt-grid{ grid-template-columns:repeat(2,1fr); } }

.insights{ border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.ins{
  display:grid; grid-template-columns:96px auto 1fr auto; gap:18px; align-items:center;
  padding:18px 24px; border-top:1px solid var(--line);
  transition:background .3s var(--ease), padding-left .3s var(--ease);
}
.ins:first-child{ border-top:0; }
.ins:hover{ background:rgba(245,240,232,.03); padding-left:30px; }
.ins-date{ font-size:12.5px; color:var(--dim); letter-spacing:.06em; }
.ins-k{ font-size:12.5px; letter-spacing:.12em; color:var(--gold);
  border:1px solid rgba(212,158,72,.35); border-radius:999px; padding:3px 10px; }
.ins-body b{ display:block; font-size:15px; font-weight:600; color:var(--paper); line-height:1.5; }
.ins-body i{ display:block; margin-top:5px; font-style:normal; font-size:13px; color:var(--paper-64); }
.ins-more{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; color:var(--gold); white-space:nowrap; }
.ins-more svg{ width:14px; height:14px; }
@media (max-width:760px){
  .paper{ grid-template-columns:1fr; gap:10px; padding:20px; }
  .paper .pa-idx{ font-size:20px; }
  .ins{ grid-template-columns:1fr; gap:8px; }
  .ins-more{ display:none; }
}

/* ---------- 金字塔 · 浮动动画 + 放大（2026-10-13 第二轮） ---------- */
.arch-split{ grid-template-columns:minmax(0,1.4fr) minmax(0,0.9fr); }
@media (prefers-reduced-motion: no-preference){
  @keyframes pyrFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-5px); } }
  .pyr3d .hit-fl{ animation:pyrFloat 6.4s ease-in-out infinite; will-change:transform; }
  .pyr3d .f1{ animation-duration:5.8s; }
  .pyr3d .f2{ animation-duration:5.2s; }
  .pyr3d .f2a{ animation-delay:-1.1s; }
  .pyr3d .f2b{ animation-delay:-2.7s; }
  .pyr3d .f2c{ animation-delay:-3.9s; }
  .pyr3d .f3{ animation-duration:7.2s; animation-delay:-1.8s; }
}

/* ---------- 实验室研究产出 · 选项卡 ---------- */
.lab-tabs{ display:flex; gap:10px; flex-wrap:wrap; margin:28px 0 0; border-bottom:1px solid var(--line); }
.lab-tab{ appearance:none; background:transparent; border:1px solid var(--line); border-bottom:0;
  border-radius:10px 10px 0 0; padding:12px 28px; cursor:pointer;
  color:var(--dim); font-size:14.5px; letter-spacing:.08em; position:relative;
  transition:color .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease); }
.lab-tab b{ font-weight:600; }
.lab-tab:hover{ color:var(--warm); }
.lab-tab.on{ color:var(--gold); background:rgba(212,158,72,.07); border-color:rgba(212,158,72,.45); }
.lab-tab.on::after{ content:""; position:absolute; left:14px; right:14px; bottom:-1px; height:2px; background:var(--gold); }
.lab-panel{ display:none; padding:36px 0 8px; }
.lab-panel.on{ display:block; animation:labPanelIn .45s var(--ease); }
@keyframes labPanelIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
@media (max-width:720px){
  .lab-tab{ flex:1; text-align:center; padding:11px 8px; font-size:13.5px; }
  .lab-panel{ padding:26px 0 4px; }
}

/* ---------- 显示更多折叠（2026-10-13） ---------- */
.more-box{ position:relative; overflow:hidden; }
.more-box::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:88px;
  background:linear-gradient(rgba(18,20,23,0), var(--ink) 82%); pointer-events:none; display:none; }
.more-wrap.has-more .more-box::after{ display:block; }
.more-wrap.open .more-box{ max-height:none !important; }
.more-wrap.open .more-box::after{ display:none; }
.more-toggle{ display:none; align-items:center; gap:8px; margin:20px auto 0;
  padding:10px 26px; border-radius:999px; cursor:pointer;
  background:transparent; border:1px solid rgba(212,158,72,.45);
  color:var(--gold); font-size:13.5px; letter-spacing:.1em;
  transition:background .25s var(--ease), color .25s var(--ease); }
.more-toggle svg{ width:14px; height:14px; transition:transform .3s var(--ease); }
.more-toggle:hover{ background:rgba(212,158,72,.1); }
.more-wrap.has-more .more-toggle, .more-wrap.force .more-toggle{ display:inline-flex; }
.more-wrap.open .more-toggle svg{ transform:rotate(180deg); }

/* ================================================================
   LTC 产品页：业务流总览（ltc-flow）＋ 六层技术架构（ltc-arch）
   依据 2026-10-15《LTC 业务流总览图》《LTC 产品技术架构图》
   ================================================================ */
.badge-plan{ display:inline-flex; align-items:center; gap:7px; font-size:11px;
  color:var(--gold); border:1px dashed var(--gold-line); padding:3px 9px; border-radius:2px; }
.badge-plan i{ width:5px; height:5px; border-radius:50%; border:1px solid var(--gold); }

/* ---- 业务流：四阶段接力 ---- */
.ltc-flow{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.lf-col{ background:var(--ink-2); border:1px solid var(--line); border-radius:var(--r);
  padding:16px 15px 14px; display:flex; flex-direction:column; gap:11px; }
.lf-head{ display:flex; align-items:baseline; gap:10px; padding-bottom:11px;
  border-bottom:1px solid var(--line); }
.lf-no{ font-size:12px; color:var(--gold); letter-spacing:.14em; font-weight:700; }
.lf-head b{ font-size:16.5px; color:var(--paper); letter-spacing:.02em; }
.lf-step{ display:flex; gap:9px; }
.lf-step i{ font-style:normal; flex:none; width:17px; height:17px; border-radius:50%;
  border:1px solid var(--gold-line); color:var(--gold); font-size:10.5px;
  display:flex; align-items:center; justify-content:center; margin-top:2px; }
.lf-step p{ font-size:12.8px; line-height:1.68; color:var(--warm); margin:0; }
.lf-step b{ display:block; color:var(--paper); font-size:13.2px; margin-bottom:2px; }

/* ---- 业务流：认知复盘闭环横条 ---- */
.ltc-loop{ margin-top:18px; border:1px dashed var(--gold-line); background:var(--gold-soft);
  border-radius:var(--r); padding:15px 22px; display:flex; flex-wrap:wrap;
  align-items:center; gap:10px 22px; }
.ltc-loop-t{ font-size:13px; letter-spacing:.08em; color:var(--paper); font-weight:700; }
.ltc-loop-agents{ display:inline-flex; align-items:center; gap:10px; }
.ltc-loop-agents b{ font-size:13.5px; color:var(--gold); }
.ltc-loop-chips{ display:inline-flex; flex-wrap:wrap; gap:8px; margin-left:auto; }
.ltc-loop-chip{ font-size:12px; color:var(--warm); border:1px solid var(--line-2);
  border-radius:999px; padding:4px 12px; background:var(--ink-3); }

/* ---- 技术架构：L1–L6 六层堆叠 ---- */
.ltc-arch{ display:flex; flex-direction:column; gap:10px; }
.la-row{ display:grid; grid-template-columns:88px 1fr; gap:10px; align-items:stretch; }
.la-tag{ background:var(--ink-3); border:1px solid var(--line); border-radius:var(--r);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:2px; padding:10px 6px; }
.la-tag b{ color:var(--gold); font-size:15px; letter-spacing:.05em; }
.la-tag span{ font-size:11px; color:var(--dim); letter-spacing:.1em; }
.la-body{ background:var(--ink-2); border:1px solid var(--line); border-radius:var(--r);
  padding:11px; display:flex; flex-wrap:wrap; gap:8px; align-items:stretch; }
.la-card{ border:1px solid var(--line-2); border-radius:8px; padding:9px 13px;
  font-size:12.6px; color:var(--warm); line-height:1.65; background:var(--ink-3);
  flex:1 1 180px; }
.la-card b{ color:var(--paper); font-size:13px; margin-right:9px; }
.la-plan{ border-style:dashed; border-color:var(--gold-line); background:rgba(212,158,72,.05); }
.la-note{ margin:14px 0 0; text-align:center; font-size:12px; color:var(--dim); letter-spacing:.04em; }

@media (max-width:1080px){ .ltc-flow{ grid-template-columns:1fr 1fr; } }
@media (max-width:820px){
  .la-row{ grid-template-columns:64px 1fr; }
  .ltc-loop-chips{ margin-left:0; }
}
@media (max-width:560px){ .ltc-flow{ grid-template-columns:1fr; } }

/* ---- 预约体验页：右侧「我们会怎么聊」卡片收窄，不再压表单 ---- */
.contact-detail{ grid-template-columns:minmax(0,1.08fr) minmax(0,.78fr); gap:clamp(32px,4.5vw,76px); }
.contact-detail .panel{ padding:20px 22px; }
.contact-detail .panel .ph{ margin-bottom:16px; }
.contact-detail .q{ gap:20px; }
.contact-detail .q-item{ grid-template-columns:76px 1fr; gap:14px; }
.contact-detail .q-item .k{ font-size:11.5px; padding-top:4px; white-space:nowrap; }
.contact-detail .q-item .v{ font-size:14px; line-height:1.7; }

/* ---- 详情页（案例/资讯）顶部：无封面头，仅一行小面包屑 ---- */
.art-crumb{ display:inline-flex; align-items:center; gap:9px; margin:0 0 18px;
  font-size:12px; color:var(--dim); letter-spacing:.05em; }
.art-crumb a{ color:var(--warm); border-bottom:1px solid rgba(160,160,165,.5); padding-bottom:1px;
  transition:color .25s var(--ease), border-color .25s var(--ease); }
.art-crumb a:hover{ color:var(--gold); border-color:rgba(212,158,72,.7); }
.art-crumb span{ margin:0 2px; color:var(--dim-2); }
.art-crumb .back{
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:22px; height:22px; border-radius:50%; border:1px solid var(--line-2);
  color:var(--warm); margin-right:2px;
  transition:color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);
}
.art-crumb .back svg{ width:11px; height:11px; }
.art-crumb .back:hover{ color:var(--gold); border-color:rgba(212,158,72,.6); background:rgba(212,158,72,.08); }

/* ================================================================
   移动端修复（2026-10-21）
   注意：必须放在文件末尾，覆盖上方同权重的两列布局规则
   ================================================================ */
/* 金字塔：窄屏单列，对应产品卡片排在金字塔下方 */
@media (max-width:820px){
  .arch-split{ grid-template-columns:1fr; gap:34px; }
  .arch-left{ position:static; top:auto; }
}
/* 预约体验页：窄屏单列，表单在上、「我们会怎么聊」移到表单下方 */
@media (max-width:1080px){
  .contact-detail{ grid-template-columns:1fr; gap:34px; }
}
/* 痛点切片：序号收小、标题允许换行完整显示 */
@media (max-width:820px){
  .pain-idx{ font-size:11px; }
}
@media (max-width:640px){
  .pain-top h3{ white-space:normal; overflow:visible; text-overflow:clip; }
  .pain-top{ grid-template-columns:auto auto 1fr auto; }
}

/* ================================================================
   移动端修复 · 第二轮（2026-10-21）
   ================================================================ */
/* 1. 首页 ∞ 动效专用展示带：桌面不占位，手机在「在线咨询」CTA 之前留出一条空带 */
.hero-loop-band{ display:none; }
@media (max-width:900px){
  .hero-loop-band{ display:block; height:clamp(210px,34vh,340px); margin:6px 0 4px; }
  .hero .hero-cta{ margin-top:6px; }
}

/* 2. 导航文字收小（手机端品牌字标 / CTA / 登录入口 / 抽屉） */
@media (max-width:560px){
  .brand .txt b{ font-size:15px; letter-spacing:.01em; }
  .brand .mark{ width:29px; height:29px; }
  .nav{ padding:14px var(--gutter); }
  .nav.solid{ padding-top:11px; padding-bottom:11px; }
  .nav-right{ gap:8px; }
  .nav-right .btn-sm{ padding:8px 12px; font-size:12px; }
  .nav-auth{ padding:7px 9px; }
  .nav-auth svg{ width:13px; height:13px; }
  .nav-burger{ width:34px; height:34px; }
  .drawer a{ font-size:21px; padding:14px 0; }
  .drawer .dw-group a{ font-size:18px; }
  .drawer .dw-t{ font-size:11px; padding:16px 0 5px; }
  .drawer a.btn, .drawer button.btn{ font-size:15px; padding:15px 20px; }
}

/* 3. 发明专利卡片：手机端翻面规则见文件末尾「第三轮」块（正面撑高 + 背面覆盖 + 点击翻转） */

/* ================================================================
   移动端修复 · 第三轮（2026-10-21）
   ================================================================ */
/* 导航文字再收小一档 */
@media (max-width:560px){
  .brand .txt b{ font-size:14px; }
  .brand .mark{ width:26px; height:26px; }
  .brand{ gap:9px; }
  .nav-right .btn-sm{ padding:7px 10px; font-size:11.5px; }
  .nav-auth{ padding:6px 8px; }
  .drawer a{ font-size:19px; padding:13px 0; }
  .drawer .dw-group a{ font-size:17px; }
  .drawer .dw-t{ font-size:10.5px; }
  .drawer a.btn, .drawer button.btn{ font-size:14.5px; padding:14px 18px; }
}
/* 发明专利：手机端保留可翻面——竖版卡按 A4 比例定高，正反面绝对铺满，点击翻转（尺寸随 .pt-grid 列数） */
@media (max-width:820px){
  .patent{ perspective:1200px; cursor:pointer; }
  .patent .pt-flip{
    min-height:0; height:auto; width:100%; position:relative; aspect-ratio:210 / 310;
    transform-style:preserve-3d; transition:transform .62s cubic-bezier(.22,.61,.24,1);
  }
  .patent .pt-face{
    position:absolute; inset:0; height:auto;
    backface-visibility:hidden; -webkit-backface-visibility:hidden;
  }
  .patent .pt-back{ display:flex; transform:rotateY(180deg); }
  .patent .pt-hint{ display:inline-flex; }
  .patent.is-flip .pt-flip{ transform:rotateY(180deg); }
  .patent.is-flip .pt-hint{ color:var(--gold); }
}

/* ================================================================
   断行与溢出修复（2026-10-21 · 批次 N）
   中文改 keep-all 后，长串不再任意拆字，需要把网格列的最小尺寸放开，
   否则 min-content（SVG / 长串）会把单列布局撑宽、产生横向滚动。
   ================================================================ */
@media (max-width:820px){
  .arch-split, .loop-layout{ grid-template-columns:minmax(0,1fr); }
  .arch-left, .arch-right, .archviz, .arch-panels, .arch-panel,
  .loop-viz, .loop-side{ min-width:0; }
  .pyr3d{ max-width:100%; }
  .loop-viz > svg{ max-width:min(430px, 100%); }
}
/* 单行/短文本元素：中文不拆字（正文段落不在此列，按自然宽度换行） */
h1, h2, h3, h4, h5, h6, .eyebrow, .badge-live, .page-head .crumb a,
.chip, .btn, .nav-links a, .drawer a, .tabs .tab, .lab-tab,
.tk-cell b, .tk-tag, .tgt-row p, .pain-top h3, .pt-pts li,
.pa-kind, .ins-k, .cert-cap, .hero-tags span, .brand .txt b{
  word-break:keep-all; line-break:strict;
}
