/* ============================================================
 * TuringFlow v5 · Landing Page · 亮底简约大气
 * 浅色调色板 · 森林墨绿文字 · 极度克制金色
 * ============================================================ */

/* ---------- Design Tokens ---------- */
:root {
  /* 浅色基调 · 四层（v3 加第三层浅苔绿 + 深墨绿）*/
  --c-paper:      #FBF9F4;   /* 层 1 · 米白（默认）*/
  --c-cream:      #F5F0E8;   /* 层 2 · 暖米 */
  --c-moss:       #E8EEE9;   /* 层 3 · 浅苔绿（v3 新增 · 打破明度同质化）*/
  --c-moss-line:  #D4DDD6;   /* 浅苔绿边线 */
  --c-forest:     #1C2920;   /* 层 4 · 深墨绿（climax/knowledge/cta）*/
  --c-forest-2:   #243328;   /* 深墨绿次层 · 卡片底 */
  --c-forest-line:#2F4033;   /* 深墨绿边线 */
  --c-cream-hi:   #FFFFFF;
  --c-line:       #E6DFD3;
  --c-line-soft:  #F0E9DC;

  /* 文字 · 森林墨绿系 */
  --c-ink:        #1C2920;
  --c-ink-2:      #2C3A30;
  --c-dim:        #6B7A6E;
  --c-dim-2:      #8A9B8F;
  --c-muted:      #B0B8AE;

  /* 金色 · 浅底烫金体系（v2 升级 2026-04-18）
     - --c-gold        浅底小面积用 · 青铜压深，保可读性（对比度 6:1）
     - --c-gold-hi     hover 提亮
     - --c-gold-ink    次要文字 / eyebrow / 小标签纯色（对比度 7:1）
     - --c-gold-dark   描边 / 深端色（烫金工艺暗面）
     - --c-gold-lite   烫金工艺亮面（高光）
     - 深底段保留发光亮金 --c-gold-glow */
  --c-gold:       #8C6A3D;
  --c-gold-hi:    #A88048;
  --c-gold-ink:   #6D5022;
  --c-gold-dark:  #5A3E18;
  --c-gold-lite:  #E6C078;
  --c-gold-glow:  #E8C782;   /* 深底段亮金 · 深色版同款 */

  /* 深色 · 仅用于 CTA 按钮 */
  --c-ink-deep:   #0F1410;

  /* 字体 */
  --f-serif:   'Noto Serif SC', 'Source Han Serif CN', 'Songti SC', Georgia, serif;
  --f-sans:    'Inter', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --f-display: 'Playfair Display', 'Noto Serif SC', Georgia, serif;
  --f-mono:    'JetBrains Mono', 'SF Mono', Menlo, monospace;

  /* 节奏 */
  --rail:      clamp(24px, 5vw, 80px);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --eye-size:  11px;
  --eye-letter: .22em;

  --ease-out:   cubic-bezier(.22,.61,.36,1);
  --ease-inout: cubic-bezier(.65,.05,.35,1);

  --shadow-card:  0 1px 2px rgba(28,41,32,.04), 0 8px 24px rgba(28,41,32,.04);
  --shadow-lift:  0 2px 6px rgba(28,41,32,.06), 0 20px 50px rgba(28,41,32,.08);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--f-sans);
  font-size: 16px;
  line-height: 1.7;
  background: var(--c-paper);
  color: var(--c-ink);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: .01em;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
ul, ol { list-style: none; }

/* ---------- Scrollbar ---------- */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--c-cream); }
::-webkit-scrollbar-thumb { background: var(--c-line); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--c-dim-2); }

/* ---------- Shared Components ---------- */
/* v5.3 · eyebrow 统一样式：无金线，inline-block，统一字号字距 */
.eyebrow {
  display: inline-block;
  padding-left: 0;
  font-family: var(--f-sans);
  font-size: var(--eye-size);
  letter-spacing: var(--eye-letter);
  text-transform: uppercase;
  color: var(--c-dim);
  position: relative;
  font-weight: 500;
}
.eyebrow::before { content: none; }

.scene h2 {
  font-family: var(--f-serif); font-weight: 700;
  font-size: clamp(36px, 4vw, 56px); line-height: 1.15;
  color: var(--c-ink);
  letter-spacing: -.015em;
  margin: 16px 0 22px;
}
.scene h2 em {
  font-family: var(--f-display); font-style: italic;
  font-weight: 700;
  /* 烫金工艺 · 文档 §4.2C */
  background: linear-gradient(135deg,
    #D4A84B 0%, #E6C078 22%, #8C6A3D 48%,
    #C79447 72%, #F0D58A 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  /* text-shadow 在 font-synthesis italic + background-clip:text 组合下会产生幽灵字；
     改用 filter drop-shadow，它跟随真实绘制形状。*/
  filter: drop-shadow(0 1px 0 rgba(109,80,34,.12));
}
/* 深底段切回发光亮金纯色 */
.dark-stage h2 em, .scene-climax h2 em, .scene-knowledge h2 em, .scene-cta h2 em {
  background: none;
  -webkit-text-fill-color: var(--c-gold-glow);
  color: var(--c-gold-glow);
  text-shadow: none;
  filter: none;
}

.lede {
  font-family: var(--f-sans);
  font-size: clamp(16px, 1.1vw, 17px);
  line-height: 1.8;
  color: var(--c-dim);
  max-width: 60ch;
}

.shot {
  position: relative;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  border: 1px solid var(--c-line);
  overflow: hidden;
  background: var(--c-cream-hi);
}
.shot img { width:100%; display:block; }
.shot-cap {
  position: absolute; top: 12px; left: 12px;
  background: rgba(28,41,32,.85);
  color: var(--c-cream);
  font-size: 11px; letter-spacing: .08em;
  padding: 6px 10px; border-radius: 4px;
  z-index: 2;
  font-weight: 500;
}

/* v6 · 通用产品视图布晦 — macOS 窗口 chrome + 金色数据徽章 */
/* 用法：<div class="shot-framed">
 *          <div class="shot-chrome"><span class="shot-dot r"></span>...·url</div>
 *          <img ...>
 *          <div class="shot-medal"><span class="shot-medal-num">99</span><span class="shot-medal-cap">...</span></div>
 *        </div>
 */
.shot-framed {
  position: relative;
  border-radius: 14px;
  overflow: visible;
  background: var(--c-cream, #FBF9F4);
  box-shadow: 0 20px 40px -24px rgba(28,41,32,.25), 0 4px 12px -6px rgba(28,41,32,.12);
}
.shot-framed > img {
  display: block; width: 100%; height: auto;
  border-radius: 0 0 14px 14px;
}
.shot-chrome {
  display: flex; align-items: center; gap: 6px;
  padding: 10px 16px;
  background: linear-gradient(180deg, #fbf7ef 0%, #f4ecdd 100%);
  border-bottom: 1px solid rgba(201,161,106,.22);
  border-radius: 14px 14px 0 0;
}
.shot-dot { width: 10px; height: 10px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(0,0,0,.05) inset; }
.shot-dot.r { background: #e8a6a0; }
.shot-dot.y { background: #e8d39a; }
.shot-dot.g { background: #aac7a1; }
.shot-url {
  margin-left: 14px;
  font-family: var(--f-sans);
  font-size: 12px; letter-spacing: .06em;
  color: var(--c-dim);
}
.shot-medal {
  position: absolute;
  right: -14px; bottom: -22px;
  /* 烫金工艺渐变 · 文档 §4.2C */
  background: linear-gradient(135deg,
    #D4A84B 0%, #E6C078 22%, #8C6A3D 48%,
    #C79447 72%, #F0D58A 100%);
  color: #FBF9F4;
  padding: 16px 22px 14px;
  border-radius: 14px;
  border: 1px solid #6D5022;
  box-shadow:
    0 18px 40px -16px rgba(109,80,34,.55),
    0 6px 16px -6px rgba(28,41,32,.30),
    inset 0 1px 0 rgba(255,240,200,.35),
    inset 0 -1px 0 rgba(80,54,18,.35);
  display: flex; flex-direction: column; gap: 2px;
  min-width: 160px;
  z-index: 3;
}
.shot-medal-num {
  font-family: var(--f-display); font-weight: 700;
  font-size: 34px; line-height: 1;
  letter-spacing: -.02em;
}
.shot-medal-num sup { font-size: 18px; vertical-align: super; margin-left: 2px; }
.shot-medal-cap {
  font-size: 11px; letter-spacing: .08em;
  color: rgba(255,255,255,.92);
}
@media (max-width: 960px) {
  .shot-medal { right: 10px; bottom: -16px; min-width: 140px; padding: 12px 16px 10px; }
  .shot-medal-num { font-size: 26px; }
}

.kpi-num {
  font-family: var(--f-display); font-weight: 700;
  font-size: clamp(44px, 5.6vw, 72px); line-height: 1;
  letter-spacing: -.02em;
  /* 烫金工艺 · 文档 §4.2C 五停点 */
  background: linear-gradient(135deg,
    #D4A84B 0%, #E6C078 22%, #8C6A3D 48%,
    #C79447 72%, #F0D58A 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-shadow: 0 1px 0 rgba(109,80,34,.1);
}
/* 深底幕里的 kpi-num · 切换为亮金纯色 */
.dark-stage .kpi-num,
.scene-climax .kpi-num,
.scene-knowledge .kpi-num,
.scene-cta .kpi-num {
  background: none;
  -webkit-text-fill-color: var(--c-gold-glow);
  color: var(--c-gold-glow);
  text-shadow: none;
}
.kpi-label {
  font-family: var(--f-sans); font-size: 13px;
  color: var(--c-dim); margin-top: 8px; letter-spacing: .04em;
}

.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 24px; border-radius: 999px;
  font-family: var(--f-sans); font-size: 15px; font-weight: 500;
  transition: all .25s var(--ease-out);
  border: 1px solid transparent;
  white-space: nowrap;
}
.btn.primary {
  /* 烫金工艺：渐变 + 描边 + 顶部高光 + 底部暗边 */
  background: linear-gradient(135deg,
    #D4A84B 0%, #B8893E 35%, #8C6A3D 65%, #B8893E 100%);
  color: #FBF9F4;
  font-weight: 600;
  border: 1px solid var(--c-gold-dark);
  box-shadow:
    0 2px 6px rgba(109,80,34,.32),
    inset 0 1px 0 rgba(255,230,180,.42),
    inset 0 -1px 0 rgba(80,54,18,.35);
  position: relative;
  overflow: hidden;
}
.btn.primary::before {
  content: "";
  position: absolute; inset: 1px;
  border-radius: 999px;
  background: linear-gradient(180deg,
    rgba(255,240,200,.22) 0%, transparent 45%);
  pointer-events: none;
}
.btn.primary > * { position: relative; z-index: 1; }
.btn.primary:hover {
  background: linear-gradient(135deg,
    #E0B456 0%, #C6974A 35%, #A07948 65%, #C6974A 100%);
  transform: translateY(-1px);
  box-shadow:
    0 10px 24px rgba(109,80,34,.28),
    inset 0 1px 0 rgba(255,240,200,.55),
    inset 0 -1px 0 rgba(80,54,18,.4);
}
.btn.ghost {
  color: var(--c-ink); border-color: var(--c-ink-2);
}
.btn.ghost:hover {
  border-color: var(--c-gold);
  color: var(--c-gold-ink);
}

.chip {
  display: inline-flex; align-items: center;
  padding: 6px 14px; border-radius: 999px;
  font-size: 12px; letter-spacing: .04em;
  border: 1px solid var(--c-line);
  color: var(--c-ink-2);
  background: var(--c-cream-hi);
  font-family: var(--f-sans);
}
.chip.gold {
  border-color: var(--c-gold);
  color: var(--c-gold-ink);
  background: rgba(201,161,106,.06);
}
.chip.slug {
  font-family: var(--f-mono);
  font-size: 11px;
}

.badge-gold {
  display: inline-block;
  padding: 3px 8px;
  background: var(--c-gold);
  color: var(--c-ink-deep);
  font-size: 10px;
  letter-spacing: .06em;
  font-weight: 600;
  border-radius: 3px;
  text-transform: uppercase;
}

/* ---------- Navigation ---------- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px var(--rail);
  transition: background .3s var(--ease-out), border-color .3s;
  border-bottom: 1px solid transparent;
}
.nav.scrolled {
  background: rgba(251,249,244,.88);
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  border-bottom-color: var(--c-line);
}
.nav-logo {
  display: inline-flex; align-items: center;
  line-height: 0;
}
.nav-logo-img {
  height: 26px; width: auto; display: block;
  /* 米白/暖米底色天然和谐，无需额外处理 */
}
@media (max-width: 760px) {
  .nav-logo-img { height: 22px; }
}
.nav-links {
  display: flex; gap: 28px; align-items: center;
  font-size: 13px; font-family: var(--f-sans); color: var(--c-dim);
}
.nav-links a { transition: color .2s; position: relative; }
.nav-links a:hover { color: var(--c-ink); }
.nav-links a.active { color: var(--c-gold-ink); }
.nav-links a.active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px;
  height: 1px; background: var(--c-gold);
}
.nav-cta {
  padding: 8px 16px; border-radius: 999px;
  background: linear-gradient(135deg,
    #D4A84B 0%, #B8893E 35%, #8C6A3D 65%, #B8893E 100%);
  color: #FBF9F4 !important;
  font-weight: 600;
  border: 1px solid var(--c-gold-dark);
  box-shadow:
    0 2px 5px rgba(109,80,34,.28),
    inset 0 1px 0 rgba(255,230,180,.38),
    inset 0 -1px 0 rgba(80,54,18,.3);
  position: relative;
  overflow: hidden;
}
.nav-cta::before {
  content: "";
  position: absolute; inset: 1px;
  border-radius: 999px;
  background: linear-gradient(180deg,
    rgba(255,240,200,.22) 0%, transparent 45%);
  pointer-events: none;
}
.nav-cta:hover {
  background: linear-gradient(135deg,
    #E0B456 0%, #C6974A 35%, #A07948 65%, #C6974A 100%);
  box-shadow:
    0 4px 10px rgba(109,80,34,.32),
    inset 0 1px 0 rgba(255,240,200,.5),
    inset 0 -1px 0 rgba(80,54,18,.35);
}

/* ====== 烫金文字工具类 · 用于关键标题字 ======
   用法：<em class="gold-foil">分工</em>
   限用于浅底段的句眼字 / KPI 数字，深底段不使用（深底直接 --c-gold-glow）*/
.gold-foil {
  background: linear-gradient(135deg,
    #D4A84B 0%, #E6C078 22%, #8C6A3D 48%,
    #C79447 72%, #F0D58A 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-shadow: 0 1px 0 rgba(109,80,34,.12);
  font-style: normal;
}
/* 深底段中使用时 · 切换为发光亮金纯色
   激活条件：父元素有 .dark-stage 类标记。
   Step 3 节奏重排时，climax/knowledge/cta 要手动带上 .dark-stage。*/
.dark-stage .gold-foil {
  background: none;
  -webkit-text-fill-color: var(--c-gold-glow);
  color: var(--c-gold-glow);
  text-shadow: none;
}

@media (max-width: 860px) {
  .nav-links a:not(.nav-cta) { display: none; }
  .nav-links { gap: 12px; }
}

/* ---------- Scene 基础 ---------- */
/* 幕间节奏：统一 100/100（相邻 200px） · hero/cta 首尾特别· climax 特别 */
.scene {
  position: relative;
  padding: 100px var(--rail);
  overflow: hidden;
}
/* v3 · 幕间菱形装饰移除，改用背景色变化 + 章节扉页图承担区隔 */

.scene-inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
@media (max-width: 760px) {
  .scene { padding: 72px var(--rail); }
}

/* 背景变体 */
.scene.bg-paper { background: var(--c-paper); }
.scene.bg-cream { background: var(--c-cream); }
.scene.bg-paper-dotted {
  background-color: var(--c-paper);
  background-image: radial-gradient(rgba(201,161,106,.14) 1px, transparent 1px);
  background-size: 28px 28px;
}
.scene.bg-cream-lines {
  background-color: var(--c-cream);
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 47px,
    rgba(201,161,106,.08) 47px,
    rgba(201,161,106,.08) 48px
  );
}

/* 进入动画 */
[data-anim] { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); transition-delay: calc(var(--i, 0) * 80ms); }
.scene.in-view [data-anim] { opacity: 1; transform: none; }

/* =====================================================
 * 幕 01 · Hero
 * ===================================================== */
.scene-hero {
  padding: 140px var(--rail) 64px;
  display: flex; flex-direction: column; justify-content: flex-start;
  background: var(--c-paper);
}
/* hero-bg 扩展点，保留不用 · ambient 图统一走 .scene-hero::before */
.hero-bg { display: none; }
.hero-dots {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
}
.hero-dots span {
  position: absolute;
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--c-gold);
  opacity: .35;
  animation: floatDot 12s ease-in-out infinite;
}
@keyframes floatDot {
  0%, 100% { transform: translate(0, 0); opacity: .15; }
  50%      { transform: translate(8px, -10px); opacity: .5; }
}

.hero-inner {
  position: relative; z-index: 1;
  max-width: 1280px; margin: 0 auto;
  text-align: left;
  /* 文字占左 2/3，右侧留给 ambient 图主体 */
  padding-right: min(44%, 520px);
}
.hero-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 12px; letter-spacing: .18em;
  color: var(--c-dim);
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 28px;
}
.hero-eyebrow .dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--c-gold);
  box-shadow: 0 0 0 3px rgba(201,161,106,.18);
}
.hero-title {
  font-family: var(--f-serif); font-weight: 700;
  font-size: clamp(44px, 5.5vw, 84px);
  line-height: 1.1;
  letter-spacing: -.02em;
  color: var(--c-ink);
  margin-bottom: 28px;
}
.hero-title .gold {
  font-family: var(--f-display); font-style: italic;
  font-weight: 700;
  /* 烫金渐变 · 限用于 hero 标题关键字 */
  background: linear-gradient(135deg,
    #D4A84B 0%, #E6C078 22%, #8C6A3D 48%,
    #C79447 72%, #F0D58A 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-shadow: 0 1px 0 rgba(109,80,34,.12);
}
.hero-sub {
  font-size: 17px; line-height: 1.75;
  color: var(--c-dim);
  max-width: 560px;
  margin: 0 0 40px 0;
}
.hero-search {
  display: flex; align-items: center; gap: 14px;
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: 999px;
  padding: 16px 26px;
  max-width: 560px;
  margin: 0 0 32px 0;
  box-shadow: var(--shadow-card);
}
.hero-search .s-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--c-gold);
  box-shadow: 0 0 0 4px rgba(201,161,106,.15);
  flex-shrink: 0;
}
.hero-search .s-text {
  flex: 1;
  font-family: var(--f-sans);
  font-size: 15px;
  color: var(--c-ink);
  text-align: left;
  min-height: 22px;
}
.hero-search .s-caret {
  width: 2px; height: 18px;
  background: var(--c-gold-ink);
  animation: blink 1s steps(2) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

.hero-cta {
  display: flex; gap: 14px; justify-content: flex-start;
  flex-wrap: wrap;
  margin-bottom: 56px;
}
.hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  max-width: 640px;
  margin: 56px 0 0 0;
  padding: 28px 0;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
}
.hero-stats .stat { text-align: center; }
.hero-stats .stat-num {
  display: block;
  font-family: var(--f-display); font-weight: 700;
  font-size: clamp(26px, 2.6vw, 34px);
  color: var(--c-gold-ink);
  line-height: 1;
  letter-spacing: -.01em;
}
.hero-stats .stat-label {
  display: block;
  font-size: 12px; color: var(--c-dim);
  margin-top: 8px; letter-spacing: .06em;
}
@media (max-width: 640px) {
  .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}

.hero-scroll {
  position: relative;
  margin: 72px auto 0;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  font-size: 11px; color: var(--c-dim-2);
  letter-spacing: .15em;
  animation: bob 2.6s ease-in-out infinite;
}
.hero-scroll .arrow {
  width: 1px; height: 32px;
  background: linear-gradient(to bottom, var(--c-gold), transparent);
}
@keyframes bob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(6px); }
}

/* =====================================================
 * 幕 01.5 · VS 对比
 * ===================================================== */
.scene-vs { background: var(--c-cream); }
.vs-head { text-align: center; margin-bottom: 64px; }
.vs-head .eyebrow {
  display: inline-block; padding-left: 0;
}
.vs-head .eyebrow::before { display: none; }
.vs-head h2 { margin-top: 18px; }
.vs-head .lede { margin: 18px auto 0; text-align: center; }

.vs-badge-top {
  display: inline-block;
  background: var(--c-ink-deep); color: var(--c-cream);
  padding: 6px 14px; border-radius: 999px;
  font-size: 11px; letter-spacing: .1em;
  font-family: var(--f-mono);
  margin-bottom: 12px;
}

.vs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-bottom: 64px;
}
@media (max-width: 820px) { .vs-grid { grid-template-columns: 1fr; } }

.vs-card {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  padding: 36px 32px;
  box-shadow: var(--shadow-card);
  position: relative;
}
.vs-card.vs-us {
  border-left: 4px solid var(--c-gold);
}
.vs-tag {
  display: inline-block;
  font-size: 11px;
  letter-spacing: .1em;
  color: var(--c-dim);
  text-transform: uppercase;
  margin-bottom: 14px;
  font-family: var(--f-mono);
}
.vs-tag.vs-tag-us { color: var(--c-gold-ink); }
.vs-card h3 {
  font-family: var(--f-serif);
  font-size: 26px; color: var(--c-ink);
  margin-bottom: 22px;
  letter-spacing: -.01em;
}
.vs-list {
  margin-bottom: 24px;
}
.vs-list li {
  display: flex; justify-content: space-between; gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--c-line-soft);
  font-size: 14px;
}
.vs-list li:last-child { border-bottom: none; }
.vs-k { color: var(--c-dim); flex-shrink: 0; }
.vs-v { color: var(--c-ink-2); text-align: right; }

.vs-score { display: grid; gap: 10px; }
.vs-bar {
  display: grid; grid-template-columns: 90px 1fr 36px; gap: 12px;
  align-items: center;
}
.vs-bl { font-size: 12px; color: var(--c-dim); }
.vs-bar > i {
  height: 6px; border-radius: 3px;
  background: var(--c-dim-2);
  display: block;
  width: 0;
  transition: width .9s var(--ease-out);
  position: relative;
}
.vs-bar.animate > i { width: var(--v); }
.vs-bar.vs-bar-us > i { background: var(--c-gold); }
.vs-bv { font-family: var(--f-mono); font-size: 12px; color: var(--c-ink); text-align: right; }

.vs-pillars {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 40px;
}
@media (max-width: 880px) { .vs-pillars { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .vs-pillars { grid-template-columns: 1fr; } }
.vs-pillar {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 24px 22px;
}
.vs-p-num {
  font-family: var(--f-display); font-size: 28px;
  color: var(--c-gold-ink);
  font-weight: 700;
}
.vs-p-ttl {
  font-family: var(--f-serif); font-size: 17px;
  color: var(--c-ink);
  margin: 10px 0 8px;
}
.vs-p-desc { font-size: 13px; color: var(--c-dim); line-height: 1.7; }
.vs-foot { font-size: 12px; color: var(--c-dim-2); text-align: center; letter-spacing: .06em; }

/* =====================================================
 * 幕 02 · 组织架构图
 * ===================================================== */
.scene-org { background: var(--c-paper); }
.org-head { text-align: center; margin-bottom: 72px; }
.org-head .eyebrow { display: inline-block; padding-left: 0; }
.org-head .eyebrow::before { display: none; }
.org-head h2 { margin-top: 18px; }
.org-head .lede { margin: 18px auto 0; }

.org-chart {
  display: grid;
  gap: 36px;
  max-width: 1100px;
  margin: 0 auto;
}
.org-layer {
  display: grid; gap: 18px;
  justify-items: center;
}
.org-layer-title {
  font-family: var(--f-mono);
  font-size: 11px; letter-spacing: .2em;
  color: var(--c-dim); text-transform: uppercase;
  padding: 4px 12px;
  border: 1px solid var(--c-line);
  border-radius: 999px;
  background: var(--c-cream-hi);
}
.org-nodes {
  display: flex; flex-wrap: wrap; gap: 18px; justify-content: center;
  width: 100%;
}
/* L1 框限宽，避免单框过宽打乱版式 */
.org-node.l1 { max-width: 360px; }
.org-node {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  min-width: 180px;
  text-align: center;
  box-shadow: var(--shadow-card);
  position: relative;
  transition: transform .25s var(--ease-out), box-shadow .25s var(--ease-out);
}
.org-node:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lift);
}
.org-node.l1::before {
  content: "";
  position: absolute; top: 0; left: 16px; right: 16px; height: 3px;
  background: var(--c-gold);
  border-radius: 3px 3px 0 0;
}
.org-node-name {
  font-family: var(--f-serif); font-weight: 700;
  font-size: 16px; color: var(--c-ink);
  margin-bottom: 4px;
}
.org-node-slug {
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-gold-ink);
  letter-spacing: .04em;
}
.org-node-cap {
  font-size: 12px; color: var(--c-dim);
  margin-top: 8px;
}
.org-l3 .org-node { min-width: 130px; padding: 14px 12px; }
.org-l3 .org-node-name { font-size: 14px; }
.org-l3 .org-node-slug { font-size: 10px; }

.org-connector {
  width: 1px; height: 32px;
  background: linear-gradient(to bottom, var(--c-gold), var(--c-line));
  margin: 0 auto;
}
@media (max-width: 760px) {
  .org-nodes { flex-direction: column; }
  .org-node { width: 100%; }
}

/* =====================================================
 * 幕 03 · 董事长
 * ===================================================== */
.scene-chairman { background: var(--c-cream); }
.scene-chairman .scene-inner {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 56px 48px; align-items: center;
}
.scene-chairman .chairman-text { align-self: center; }
@media (max-width: 960px) { .scene-chairman .scene-inner { grid-template-columns: 1fr; } }

.chairman-pts {
  display: grid; gap: 14px;
  margin-top: 28px;
}
.chairman-pt {
  display: flex; gap: 14px;
  padding: 14px 18px;
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  font-size: 14px; color: var(--c-ink-2);
  line-height: 1.7;
}
.chairman-pt::before {
  content: "→";
  color: var(--c-gold-ink);
  font-weight: 600;
  flex-shrink: 0;
}

.chairman-dual {
  display: grid; grid-template-rows: 1fr 1fr;
  gap: 20px;
}
.chairman-dual .shot { height: 320px; position: relative; }
.chairman-dual .shot img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.chairman-dual .shot .shot-cap { top: auto; bottom: 12px; }
@media (max-width: 960px) {
  .chairman-dual .shot { height: 260px; }
}

/* =====================================================
 * 幕 04 · 思想智库
 * ===================================================== */
.scene-thoughts { background: var(--c-paper); }
.scene-thoughts .scene-inner {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 56px; align-items: center;
}
@media (max-width: 960px) { .scene-thoughts .scene-inner { grid-template-columns: 1fr; } }

.thoughts-stats {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 20px; margin-top: 32px;
}
.thoughts-stats .s { text-align: left; }
.thoughts-stats .n {
  font-family: var(--f-display); font-size: 36px;
  color: var(--c-gold-ink); font-weight: 700;
  line-height: 1;
}
.thoughts-stats .l { font-size: 12px; color: var(--c-dim); margin-top: 6px; }

.thoughts-dual {
  display: grid; grid-template-rows: 1fr 1fr;
  gap: 20px;
}
.thoughts-dual .shot { height: 320px; position: relative; }
.thoughts-dual .shot img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.thoughts-dual .shot .shot-cap { top: auto; bottom: 12px; }
@media (max-width: 960px) {
  .thoughts-dual .shot { height: 260px; }
}

/* =====================================================
 * 幕 05 · DSTE
 * ===================================================== */
.scene-dste { background: var(--c-cream); }
.dste-head { text-align: center; margin-bottom: 56px; }
.dste-head .eyebrow { display: inline-block; padding-left: 0; }
.dste-head .eyebrow::before { display: none; }
.dste-head h2 { margin-top: 18px; }
.dste-head .lede { margin: 18px auto 0; }

/* v5.2 滚动驱动垂直 sticky */
.scene-dste { overflow: visible; }
.dste-sticky {
  display: grid; grid-template-columns: 280px 1fr;
  gap: 48px; align-items: start;
  position: relative;
}
@media (max-width: 960px) { .dste-sticky { grid-template-columns: 1fr; } }

.dste-nav {
  display: flex; flex-direction: column; gap: 14px;
  position: sticky; top: 18vh;
  align-self: start;
}
@media (max-width: 960px) { .dste-nav { position: static; flex-direction: row; flex-wrap: wrap; top: auto; } }

.dste-dot {
  display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto;
  column-gap: 14px; row-gap: 4px;
  padding: 16px 18px;
  background: transparent;
  border: 1px solid transparent;
  border-left: 3px solid var(--c-line);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  text-decoration: none;
  transition: all .35s cubic-bezier(.4,0,.2,1);
  cursor: pointer;
  opacity: .55;
}
.dste-dot:hover { opacity: .85; background: var(--c-cream-hi); }
.dste-dot.active {
  opacity: 1;
  background: var(--c-cream-hi);
  border-color: var(--c-line);
  border-left-color: var(--c-gold);
  box-shadow: var(--shadow-card);
}
.dste-dot .d-num {
  grid-row: 1 / 3;
  align-self: center;
  font-family: var(--f-display);
  font-size: 28px; font-weight: 700;
  color: var(--c-gold-ink);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.dste-dot.active .d-num { color: var(--c-gold-ink); }
.dste-dot .d-tag {
  font-family: var(--f-mono);
  font-size: 10px; letter-spacing: .18em;
  color: var(--c-dim);
}
.dste-dot .d-name {
  font-family: var(--f-serif);
  font-size: 16px; font-weight: 700;
  color: var(--c-ink);
  grid-column: 2;
}
.dste-dot .d-cap {
  grid-column: 2;
  font-size: 11px; color: var(--c-dim);
  font-family: var(--f-mono);
  letter-spacing: .03em;
}

.dste-track {
  display: flex; flex-direction: column; gap: 24vh;
  padding-bottom: 20vh;
}
.dste-slide {
  min-height: 70vh;
  display: flex; flex-direction: column; justify-content: center; gap: 18px;
  opacity: .45;
  transition: opacity .5s ease;
}
.dste-slide.active { opacity: 1; }
.dste-slide-head {
  display: flex; align-items: baseline; gap: 16px;
}
.dste-slide-head .num {
  font-family: var(--f-mono);
  font-size: 12px; color: var(--c-gold-ink);
  letter-spacing: .18em;
}
.dste-slide-head h3 {
  font-family: var(--f-serif);
  font-size: 30px; color: var(--c-ink);
  font-weight: 700; margin: 0;
}
.dste-slide .shot {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--c-line);
}
.dste-slide .shot img {
  width: 100%; height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  object-position: center;
  background: var(--c-cream, #FBF9F4);
  display: block;
}
@media (max-width: 960px) { .dste-slide .shot img { aspect-ratio: 4 / 3; } }
.dste-desc {
  font-size: 15px; color: var(--c-ink-2);
  line-height: 1.8;
  max-width: 640px;
}

/* DSTE 智能体品牌 chip */
.agent-chip-xl {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 12px 22px;
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: 999px;
  margin: 18px 0 10px;
  box-shadow: var(--shadow-card);
}
.agent-chip-xl .aci-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--c-gold);
  box-shadow: 0 0 0 3px rgba(201,161,106,.18);
}
.agent-chip-xl .aci-zh {
  font-family: var(--f-serif);
  font-size: 18px; font-weight: 700;
  color: var(--c-ink);
}
.agent-chip-xl .aci-en {
  font-family: var(--f-mono);
  font-size: 12px; color: var(--c-gold-ink);
  letter-spacing: .08em;
}
.dste-card .tag {
  font-size: 11px; color: var(--c-dim);
  letter-spacing: .06em;
  font-family: var(--f-mono);
}

/* =====================================================
 * 幕 06 · 项目管理 · IPD 五阶段
 * ===================================================== */
.scene-pm { background: var(--c-paper); }
.pm-head { text-align: center; margin-bottom: 56px; }
.pm-head .eyebrow { display: inline-block; padding-left: 0; }
.pm-head .eyebrow::before { display: none; }
.pm-head h2 { margin-top: 18px; }
.pm-head .lede { margin: 18px auto 0; }

.ipd-pipeline {
  display: flex; gap: 8px;
  align-items: stretch;
  margin-bottom: 48px;
  overflow-x: auto;
  padding: 12px 0;
}
.ipd-phase {
  flex: 1; min-width: 180px;
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 20px 18px;
  box-shadow: var(--shadow-card);
  position: relative;
}
.ipd-phase-tag {
  display: inline-block;
  background: var(--c-ink-deep); color: var(--c-cream);
  padding: 4px 10px; border-radius: 4px;
  font-size: 11px; letter-spacing: .08em;
  font-family: var(--f-mono); font-weight: 600;
  margin-bottom: 14px;
}
.ipd-phase h4 {
  font-family: var(--f-serif);
  font-size: 16px; color: var(--c-ink);
  margin-bottom: 12px;
}
.ipd-phase ul { display: grid; gap: 6px; }
.ipd-phase li {
  font-size: 12px; color: var(--c-dim);
  padding-left: 14px; position: relative;
  line-height: 1.6;
}
.ipd-phase li::before {
  content: "·"; position: absolute; left: 4px;
  color: var(--c-gold);
  font-weight: 700;
}
.ipd-gate {
  align-self: center;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  flex-shrink: 0;
  padding: 0 4px;
}
.ipd-gate-badge {
  background: var(--c-gold);
  color: var(--c-ink-deep);
  padding: 3px 8px; border-radius: 4px;
  font-size: 10px; font-weight: 700;
  font-family: var(--f-mono);
  letter-spacing: .08em;
}
.ipd-gate-arrow {
  color: var(--c-gold);
  font-size: 18px;
}

.pm-l3-call {
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  padding: 32px;
  margin-bottom: 40px;
}
.pm-l3-call-title {
  font-family: var(--f-serif);
  font-size: 20px; color: var(--c-ink);
  margin-bottom: 6px;
}
.pm-l3-call-sub {
  font-size: 13px; color: var(--c-dim);
  margin-bottom: 20px;
}
.pm-l3-flow {
  display: flex; align-items: center; gap: 16px;
  flex-wrap: wrap;
}
.pm-l3-hub {
  background: var(--c-ink-deep); color: var(--c-cream);
  padding: 14px 22px; border-radius: var(--radius-md);
  font-family: var(--f-serif); font-weight: 600;
  font-size: 15px;
  flex-shrink: 0;
}
.pm-l3-hub small {
  display: block; font-size: 10px;
  color: var(--c-gold-hi);
  font-family: var(--f-mono); font-weight: 400;
  letter-spacing: .1em;
  margin-top: 2px;
}
.pm-l3-arrow { color: var(--c-gold); font-size: 22px; }
.pm-l3-chips {
  display: flex; flex-wrap: wrap; gap: 10px;
  flex: 1;
  min-width: 300px;
}
.pm-l3-chips .chip.zh {
  font-family: var(--f-serif);
  font-size: 14px;
  font-weight: 600;
  color: var(--c-ink);
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  padding: 8px 16px;
  letter-spacing: .02em;
  text-transform: none;
  border-radius: 999px;
  transition: all .25s var(--ease-out);
}
.pm-l3-chips .chip.zh:hover {
  border-color: var(--c-gold);
  color: var(--c-gold-ink);
  transform: translateY(-1px);
}

.pm-kanban-shot {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 28px; align-items: center;
}
@media (max-width: 860px) { .pm-kanban-shot { grid-template-columns: 1fr; } }
.pm-kanban-cap {
  font-family: var(--f-mono); font-size: 13px;
  color: var(--c-dim);
}

/* =====================================================
 * 幕 07 · 团队智库
 * ===================================================== */
.scene-team { background: var(--c-cream); }
.scene-team .scene-inner {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 56px; align-items: center;
}
@media (max-width: 960px) { .scene-team .scene-inner { grid-template-columns: 1fr; } }

.team-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 18px; margin-top: 28px;
}
.team-stats .s {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 18px 16px;
  text-align: center;
}
.team-stats .n {
  font-family: var(--f-display); font-size: 30px;
  color: var(--c-gold-ink); font-weight: 700;
  line-height: 1;
}
.team-stats .l { font-size: 11px; color: var(--c-dim); margin-top: 6px; }

/* =====================================================
 * 幕 08 · 7 位专家 · 椭圆轨道
 * ===================================================== */
.scene-orbit { background: var(--c-paper); }
.orbit-head { text-align: center; margin-bottom: 56px; }
.orbit-head .eyebrow { display: inline-block; padding-left: 0; }
.orbit-head .eyebrow::before { display: none; }
.orbit-head h2 { margin-top: 18px; }
.orbit-head .lede { margin: 18px auto 0; }

.orbit-stage {
  display: grid; grid-template-columns: 1.35fr 1fr;
  gap: 56px; align-items: center;
}
@media (max-width: 1100px) { .orbit-stage { grid-template-columns: 1fr; gap: 40px; } }

/* 椭圆轨道 · SVG */
.orbit-svg-wrap { position: relative; }
.orbit-svg { width: 100%; height: auto; display: block; }
.orbit-path {
  fill: none;
  stroke: var(--c-line);
  stroke-width: 1.5;
  stroke-dasharray: 4 4;
}
.orbit-comet {
  fill: var(--c-gold);
  filter: drop-shadow(0 0 6px rgba(201,161,106,.6));
  transition: cx .8s var(--ease-inout), cy .8s var(--ease-inout);
}
.orbit-hub .hub-c {
  fill: var(--c-cream-hi);
  stroke: var(--c-gold);
  stroke-width: 2;
  animation: hubPulse 2.6s ease-in-out infinite;
}
.orbit-hub text {
  font-family: var(--f-serif);
  font-size: 18px; font-weight: 700;
  fill: var(--c-ink);
  text-anchor: middle;
}
@keyframes hubPulse {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(201,161,106,0)); }
  50%      { filter: drop-shadow(0 0 14px rgba(201,161,106,.5)); }
}
.orbit-node { cursor: default; pointer-events: none; }
.orbit-node .node-bg {
  fill: var(--c-cream-hi);
  stroke: var(--c-line);
  stroke-width: 1.5;
  transition: all .3s var(--ease-out);
}
.orbit-node text {
  font-family: var(--f-sans);
  font-size: 14px; font-weight: 500;
  fill: var(--c-ink-2);
  text-anchor: middle; pointer-events: none;
}
.orbit-node.active .node-bg {
  fill: var(--c-gold);
  stroke: var(--c-gold-hi);
  stroke-width: 2;
}
.orbit-node.active text { fill: var(--c-ink-deep); font-weight: 600; }

.orbit-info {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow-card);
}
.orbit-info .o-label {
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-gold-ink);
  letter-spacing: .1em;
  margin-bottom: 10px;
}
.orbit-info h3 {
  font-family: var(--f-serif);
  font-size: 22px; color: var(--c-ink);
  margin-bottom: 12px;
}
.orbit-info p {
  font-size: 14px; color: var(--c-dim);
  line-height: 1.75;
  margin-bottom: 20px;
  min-height: 100px;
}
.orbit-info .shot { border-radius: var(--radius-md); overflow: hidden; }
.orbit-info .shot img {
  width: 100%;
  height: auto;
  aspect-ratio: 1.85 / 1;
  object-fit: cover;
  object-position: center top;
  background: var(--c-cream, #FBF9F4);
  display: block;
  transition: opacity .3s;
}
@media (max-width: 1000px) {
  .orbit-info .shot img { aspect-ratio: 16 / 10; }
}
.orbit-info .shot.swapping img { opacity: .3; }

/* 左侧 · 树形组织图 */
.tree-wrap {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  padding: 32px 28px 28px;
  box-shadow: var(--shadow-card);
}
.tree-title {
  font-family: var(--f-sans);
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--c-dim);
  text-align: center;
  margin-bottom: 20px;
}
.tree-layer { text-align: center; }
.tree-eyebrow {
  font-family: var(--f-mono);
  font-size: 10px; letter-spacing: .12em;
  color: var(--c-gold-ink);
  margin-bottom: 10px;
  opacity: .85;
}
.tree-node {
  position: relative;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 22px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(201,161,106,.5);
  font-family: var(--f-serif);
  font-size: 17px; color: var(--c-ink);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 10px 24px -14px rgba(28,41,32,.22);
}
.tree-node .tn-ico {
  color: var(--c-gold);
  font-size: 15px;
}
.tree-l2-node { border-color: var(--c-gold); box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 12px 28px -14px rgba(201,161,106,.35); }
.tn-pulse {
  position: absolute; inset: -6px;
  border-radius: 999px;
  border: 1px solid rgba(201,161,106,.5);
  animation: tnPulse 2.4s ease-out infinite;
  pointer-events: none;
}
@keyframes tnPulse {
  0%   { transform: scale(1);    opacity: .7; }
  100% { transform: scale(1.18); opacity: 0;  }
}
.tree-stem {
  width: 1px; height: 22px;
  background: linear-gradient(to bottom, rgba(201,161,106,.15), rgba(201,161,106,.55));
  margin: 6px auto;
}
.tree-branch {
  margin: 6px auto 0;
  max-width: 560px;
}
.tree-branch svg { width: 100%; height: 64px; display: block; }
.tree-branch .tb-main,
.tree-branch .tb-arm {
  fill: none;
  stroke: rgba(201,161,106,.45);
  stroke-width: 1;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.tree-l3 { margin-top: 4px; }
.tree-l3-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  margin-top: 6px;
}
.tree-leaf {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 12px 6px 10px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--c-line);
  transition: transform .3s var(--ease-out), border-color .3s, box-shadow .3s, background .3s;
}
.tree-leaf .tl-ico {
  font-size: 18px; color: var(--c-dim);
}
.tree-leaf .tl-zh {
  font-family: var(--f-sans);
  font-size: 12px; color: var(--c-ink-2);
  white-space: nowrap;
  letter-spacing: .02em;
}
.tree-leaf.active {
  background: linear-gradient(180deg, #FFF8E8 0%, #F9EAC8 100%);
  border-color: var(--c-gold);
  box-shadow:
    0 0 0 3px rgba(201,161,106,.14),
    0 12px 24px -14px rgba(201,161,106,.45);
  transform: translateY(-2px);
}
.tree-leaf.active .tl-ico { color: var(--c-gold-ink); }
.tree-leaf.active .tl-zh { color: var(--c-ink-deep); font-weight: 600; }
@media (max-width: 760px) {
  .tree-l3-row { grid-template-columns: repeat(4, 1fr); }
  .tree-branch { display: none; }
}

/* 右侧 · AI 正在做事终端 */
.doing {
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 24px 60px -30px rgba(28,41,32,.28),
    0 10px 24px -14px rgba(28,41,32,.18);
}
.doing-chrome {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px;
  background: linear-gradient(180deg, #fbf7ef 0%, #f5efe0 100%);
  border-bottom: 1px solid rgba(201,161,106,.22);
}
.doing-dot {
  width: 10px; height: 10px; border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(0,0,0,.05) inset;
}
.doing-dot-r { background: #e8a6a0; }
.doing-dot-y { background: #e8d39a; }
.doing-dot-g { background: #aac7a1; }
.doing-chrome-label {
  margin-left: 8px;
  font-family: var(--f-mono);
  font-size: 11px; letter-spacing: .06em;
  color: var(--c-dim);
}
.doing-live {
  margin-left: auto;
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--f-mono);
  font-size: 10px; letter-spacing: .14em;
  color: #8a6a3d;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(201,161,106,.12);
  border: 1px solid rgba(201,161,106,.32);
}
.live-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #d27d5a;
  box-shadow: 0 0 0 0 rgba(210,125,90,.55);
  animation: liveBlink 1.6s ease-in-out infinite;
}
@keyframes liveBlink {
  0%, 100% { box-shadow: 0 0 0 0 rgba(210,125,90,.55); opacity: 1; }
  50%      { box-shadow: 0 0 0 6px rgba(210,125,90,0); opacity: .5; }
}
.doing-body {
  padding: 22px 22px 20px;
  display: flex; flex-direction: column; gap: 18px;
}
.doing-tag {
  font-family: var(--f-mono);
  font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-gold-ink);
}
.doing-prompt {
  position: relative;
  display: flex; flex-direction: column; gap: 8px;
  padding: 14px 14px 12px;
  background: #fbf9f3;
  border: 1px solid var(--c-line);
  border-left: 3px solid var(--c-gold);
  border-radius: 10px;
}
.doing-text {
  font-family: var(--f-serif);
  font-size: 16px; line-height: 1.55;
  color: var(--c-ink);
  min-height: 1.55em;
}
.doing-prompt .doing-caret {
  position: absolute; right: 14px; bottom: 14px;
  width: 2px; height: 16px;
  background: var(--c-gold-ink);
  animation: blink 1.1s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

.doing-steps {
  display: flex; flex-direction: column; gap: 8px;
}
.doing-step {
  display: grid;
  grid-template-columns: 20px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--c-line);
  background: #fff;
  font-family: var(--f-sans);
  font-size: 13px;
  position: relative;
  overflow: hidden;
}
.doing-step .ds-mark {
  font-family: var(--f-mono);
  font-size: 14px; text-align: center;
  color: var(--c-dim);
}
.doing-step .ds-name { color: var(--c-ink); }
.doing-step .ds-skill {
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-dim-2);
  letter-spacing: .02em;
}
.doing-step .ds-bar {
  position: absolute; left: 0; bottom: 0;
  height: 2px; width: 100%;
  background: transparent;
}
.doing-step .ds-bar i {
  display: block; height: 100%; width: 0;
  background: linear-gradient(to right, transparent, var(--c-gold));
}
.doing-step-done {
  background: #f7f2e6;
  border-color: rgba(201,161,106,.4);
}
.doing-step-done .ds-mark { color: var(--c-gold-ink); font-weight: 700; }
.doing-step-done .ds-bar i { width: 100%; background: var(--c-gold); opacity: .5; }
.doing-step-running {
  background: linear-gradient(180deg, #fff 0%, #fef7e4 100%);
  border-color: var(--c-gold);
  box-shadow: 0 0 0 3px rgba(201,161,106,.1);
}
.doing-step-running .ds-mark { color: var(--c-gold-ink); animation: runningPulse 1.4s ease-in-out infinite; }
.doing-step-running .ds-bar i {
  width: 55%;
  background: linear-gradient(to right, transparent, var(--c-gold), transparent);
  animation: barSlide 1.8s ease-in-out infinite;
}
@keyframes runningPulse {
  0%, 100% { transform: scale(1);   opacity: .9; }
  50%      { transform: scale(1.15); opacity: 1; }
}
@keyframes barSlide {
  0%   { transform: translateX(-80%); }
  100% { transform: translateX(200%); }
}
.doing-step-pending { opacity: .55; }
.doing-step-pending .ds-mark { color: var(--c-dim-2); }

.doing-artifacts {
  display: flex; flex-direction: column; gap: 8px;
  padding-top: 14px;
  border-top: 1px dashed var(--c-line);
}
.doing-files {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.doing-file {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 12px;
  border-radius: 999px;
  background: #fbf9f3;
  border: 1px solid var(--c-line);
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--c-ink-2);
}
.doing-file .df-ico { color: var(--c-gold-ink); font-size: 11px; }
.doing-file .df-name { color: var(--c-ink); }
.doing-file .df-size { color: var(--c-dim-2); font-size: 10px; }


/* =====================================================
 * 幕 09 · 12 秒高潮
 * ===================================================== */
.scene-climax { background: var(--c-cream); }
.climax-head { text-align: center; margin-bottom: 48px; }
.climax-head .eyebrow { display: inline-block; padding-left: 0; }
.climax-head .eyebrow::before { display: none; }
.climax-head h2 { margin-top: 18px; }
.climax-head .lede { margin: 18px auto 0; }

/* =====================================================
 * 幕 09 · 45 秒协同剧场
 *   — 左树形 5 层 + 右动态终端 · 顶部进度条 + 底部回放按钮
 * ===================================================== */
.climax-theater {
  max-width: 1240px; margin: 0 auto;
  display: grid; gap: 28px;
}

/* ---- 顶部进度条 ---- */
.theater-progress {
  position: relative;
  padding: 14px 22px 18px;
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}
.tp-scale {
  position: relative; height: 14px;
  margin-bottom: 4px;
}
.tp-scale .tp-tick {
  position: absolute; top: 0;
  transform: translateX(-50%);
  font-family: var(--f-mono);
  font-size: 10px; letter-spacing: .05em;
  color: var(--c-dim-2);
}
.tp-track {
  position: relative;
  height: 4px;
  background: linear-gradient(to right, var(--c-line-soft), var(--c-line));
  border-radius: 999px;
  overflow: hidden;
}
.tp-fill {
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 0%;
  background: linear-gradient(to right, var(--c-gold-hi), var(--c-gold));
  border-radius: 999px;
  transition: width .2s linear;
  box-shadow: 0 0 10px rgba(201,161,106,.55);
}
.tp-acts {
  display: grid; grid-template-columns: auto auto auto auto auto auto;
  gap: 6px 14px;
  margin-top: 12px;
  justify-content: space-between;
}
.tp-act {
  font-family: var(--f-sans);
  font-size: 11px; color: var(--c-dim);
  letter-spacing: .04em;
  padding: 4px 10px;
  border-radius: 999px;
  background: transparent;
  border: 1px solid transparent;
  transition: background .3s, color .3s, border-color .3s, transform .3s;
  white-space: nowrap;
}
.tp-act.active {
  background: linear-gradient(180deg, #FFF8E8 0%, #F6E3BF 100%);
  color: var(--c-gold-ink);
  border-color: rgba(201,161,106,.5);
  transform: translateY(-1px);
  box-shadow: 0 6px 14px -10px rgba(201,161,106,.6);
}
.tp-act.done {
  color: var(--c-gold-ink); opacity: .75;
}
.tp-act.done::before { content: "✓ "; font-weight: 700; }
@media (max-width: 820px) {
  .tp-acts { grid-template-columns: repeat(3, 1fr); }
}

/* ---- 主舞台 · 左右分栏 ---- */
.theater-stage {
  display: grid; grid-template-columns: 1fr 1.05fr;
  gap: 36px; align-items: start;
}
@media (max-width: 1040px) {
  .theater-stage { grid-template-columns: 1fr; gap: 28px; }
}

/* ---- 左侧 · 5 层组织树 v2 ---- */
.tree-wrap.tree-v2 {
  padding: 26px 24px 22px;
}
.tree-wrap.tree-v2 .tree-layer { margin-bottom: 4px; }
.tree-wrap.tree-v2 .tree-stem { height: 18px; margin: 4px auto; }
.tree-wrap.tree-v2 .tree-stem-library { height: 26px; }

/* 节点状态系统（适用于所有 .tree-node 与 .tree-leaf） */
.tree-node,
.tree-leaf {
  transition: border-color .35s, background .35s, box-shadow .35s, transform .35s, opacity .35s;
}
.tree-node.idle,
.tree-leaf.idle {
  opacity: .6;
}
.tree-node.lit {
  border-color: var(--c-gold);
  background: linear-gradient(180deg, #FFF8E8 0%, #F6E3BF 100%);
  color: var(--c-ink-deep);
  box-shadow:
    0 0 0 3px rgba(201,161,106,.16),
    0 16px 32px -16px rgba(201,161,106,.55);
  transform: translateY(-1px);
}
.tree-node.lit .tn-ico { color: var(--c-gold-ink); }
.tree-node.active {
  animation: nodeActivePulse 2s ease-in-out infinite;
}
@keyframes nodeActivePulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(201,161,106,.16), 0 12px 24px -14px rgba(201,161,106,.4); }
  50%      { box-shadow: 0 0 0 6px rgba(201,161,106,.22), 0 18px 36px -16px rgba(201,161,106,.7); }
}
.tree-node.done {
  border-color: rgba(201,161,106,.55);
  background: #FBF5E8;
  opacity: .85;
  box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 8px 20px -14px rgba(201,161,106,.3);
}
.tree-node.done .tn-ico { color: var(--c-gold-ink); }

/* tn-pulse · 仅在 lit/active 状态显示 */
.tree-node .tn-pulse {
  opacity: 0;
  animation: none;
}
.tree-node.lit .tn-pulse,
.tree-node.active .tn-pulse {
  opacity: 1;
  animation: tnPulse 2.4s ease-out infinite;
}

/* tn-check · done 状态右上角 ✓ */
.tree-node .tn-check {
  position: absolute; top: -6px; right: -6px;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--c-gold);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-sans);
  font-size: 11px; font-weight: 800;
  opacity: 0;
  transform: scale(.5);
  transition: opacity .25s, transform .25s var(--ease-out);
  box-shadow: 0 4px 10px -4px rgba(201,161,106,.65);
}
.tree-node .tn-check::before { content: "✓"; }
.tree-node.done .tn-check {
  opacity: 1;
  transform: scale(1);
}

/* 光流 · 铜金流线从上至下 */
.tree-stem {
  position: relative;
}
.ts-flow {
  position: absolute; left: 50%; top: 0;
  width: 3px; height: 0%;
  transform: translateX(-50%);
  background: linear-gradient(to bottom, rgba(201,161,106,0), var(--c-gold), rgba(201,161,106,0));
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(201,161,106,.6);
  opacity: 0;
  transition: opacity .2s;
}
.ts-flow.run {
  opacity: 1;
  animation: tsFlow .5s ease-out forwards;
}
@keyframes tsFlow {
  0%   { height: 0%;   top: 0%;   opacity: 0; }
  20%  { opacity: 1; }
  100% { height: 100%; top: 0%;   opacity: 1; }
}

/* 叶节点状态 */
.tree-leaf .tl-check {
  position: absolute; top: 4px; right: 4px;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--c-gold);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 9px; font-weight: 800;
  opacity: 0;
  transform: scale(.3);
  transition: opacity .25s, transform .25s var(--ease-out);
}
.tree-leaf .tl-check::before { content: "✓"; }
.tree-leaf { position: relative; }
.tree-leaf.lit {
  background: linear-gradient(180deg, #FFF8E8 0%, #F9EAC8 100%);
  border-color: var(--c-gold);
  box-shadow:
    0 0 0 3px rgba(201,161,106,.14),
    0 12px 24px -14px rgba(201,161,106,.45);
  transform: translateY(-2px);
  animation: leafPulse 1.6s ease-in-out infinite;
}
@keyframes leafPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(201,161,106,.14), 0 12px 24px -14px rgba(201,161,106,.45); }
  50%      { box-shadow: 0 0 0 6px rgba(201,161,106,.22), 0 16px 32px -16px rgba(201,161,106,.7); }
}
.tree-leaf.lit .tl-ico { color: var(--c-gold-ink); }
.tree-leaf.lit .tl-zh { color: var(--c-ink-deep); font-weight: 600; }
.tree-leaf.done {
  background: #FBF5E8;
  border-color: rgba(201,161,106,.45);
  opacity: .85;
}
.tree-leaf.done .tl-ico { color: var(--c-gold-ink); }
.tree-leaf.done .tl-check { opacity: 1; transform: scale(1); }
.tree-leaf.idle { opacity: .55; }

/* 团队智库节点 · 新生 + 同心圆波纹 */
.tree-library .tree-node {
  position: relative;
  background: linear-gradient(180deg, #FFF5DC 0%, #F1D79C 100%);
  border-color: var(--c-gold);
  color: var(--c-ink-deep);
}
.tree-library {
  opacity: 0;
  transform: scale(.7);
  transition: opacity .5s var(--ease-out), transform .5s var(--ease-out);
}
.tree-library.born {
  opacity: 1;
  transform: scale(1);
}
.tn-ring {
  position: absolute; left: 50%; top: 50%;
  width: 100%; height: 100%;
  transform: translate(-50%, -50%) scale(1);
  border: 1px solid var(--c-gold);
  border-radius: 999px;
  opacity: 0;
  pointer-events: none;
}
.tree-library.born .tn-ring-1 { animation: tnRing 1.6s ease-out .15s forwards; }
.tree-library.born .tn-ring-2 { animation: tnRing 1.8s ease-out .45s forwards; }
.tree-library.born .tn-ring-3 { animation: tnRing 2.0s ease-out .75s forwards; }
@keyframes tnRing {
  0%   { transform: translate(-50%, -50%) scale(1);   opacity: .75; }
  100% { transform: translate(-50%, -50%) scale(2.1); opacity: 0;   }
}

/* 树形连接线 · 高亮当前派单路径 */
.tree-branch .tb-arm,
.tree-branch .tb-main {
  transition: stroke .35s, stroke-width .35s, opacity .35s;
}
.tree-branch .tb-arm.active,
.tree-branch .tb-main.active {
  stroke: var(--c-gold);
  stroke-width: 1.5;
  opacity: 1;
}

/* ---- 右侧 · 动态终端 (多 mode) ---- */
.doing-theater {
  min-height: 520px;
}
.doing-body-theater {
  padding: 22px 22px 20px;
  display: flex; flex-direction: column; gap: 16px;
  min-height: 480px;
}

/* 占位 */
.theater-placeholder {
  display: flex; align-items: center; justify-content: center;
  gap: 12px;
  min-height: 440px;
  font-family: var(--f-sans);
  color: var(--c-dim);
  font-size: 14px;
}
.theater-placeholder .tp-ico {
  color: var(--c-gold-ink);
  font-size: 18px;
}

/* 通用：prompt 框 · 打字 + 光标 + 回车脉冲 */
.doing-prompt-box {
  position: relative;
  padding: 14px 16px 14px;
  background: #fbf9f3;
  border: 1px solid var(--c-line);
  border-left: 3px solid var(--c-gold);
  border-radius: 10px;
  font-family: var(--f-serif);
  font-size: 15.5px; line-height: 1.6;
  color: var(--c-ink);
  min-height: 1.6em;
  transition: box-shadow .2s, border-color .2s;
}
.doing-prompt-box.flash {
  border-color: var(--c-gold);
  box-shadow: 0 0 0 3px rgba(201,161,106,.22);
  animation: promptFlash .4s ease-out;
}
@keyframes promptFlash {
  0%   { box-shadow: 0 0 0 0 rgba(201,161,106,.5); }
  100% { box-shadow: 0 0 0 3px rgba(201,161,106,.22); }
}
.typing-caret {
  display: inline-block;
  width: 2px; height: 1em;
  vertical-align: -2px;
  margin-left: 2px;
  background: var(--c-gold-ink);
  animation: blinkCaret 1s steps(1) infinite;
}
@keyframes blinkCaret { 50% { opacity: 0; } }

/* 屏震 · 回车按压 */
.shake {
  animation: shake .1s ease-in-out;
}
@keyframes shake {
  0%, 100% { transform: translate(0, 0); }
  25%      { transform: translate(1.5px, -1px); }
  50%      { transform: translate(-1px, 1px); }
  75%      { transform: translate(1px, 1px); }
}

/* 模式标签（chrome label 变化） */
.doing-theater .doing-chrome-label {
  font-size: 12px;
  color: var(--c-gold-ink);
  font-weight: 500;
}

/* 模式 · chairman · 董事长下令 */
.theater-mode-chairman .mode-eyebrow,
.theater-mode-strategy .mode-eyebrow,
.theater-mode-pm .mode-eyebrow,
.theater-mode-expert .mode-eyebrow,
.theater-mode-aggregate .mode-eyebrow,
.theater-mode-flywheel .mode-eyebrow {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--c-gold-ink);
  margin-bottom: 2px;
}
.mode-directive {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #FFF5DC;
  border: 1px solid var(--c-gold);
  font-family: var(--f-mono);
  font-size: 12px; color: var(--c-gold-ink);
  align-self: flex-start;
  opacity: 0; transform: translateY(6px);
  transition: opacity .35s, transform .35s;
}
.mode-directive.show { opacity: 1; transform: none; }
.mode-directive .md-ico { font-size: 12px; }

/* 模式 · strategy · DSTE 四格流程条 + 五看扫描 */
.dste-flow {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 6px;
}
.dste-cell {
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  text-align: center;
  font-family: var(--f-sans);
  font-size: 11.5px; color: var(--c-dim);
  letter-spacing: .02em;
  transition: background .3s, color .3s, border-color .3s, transform .3s, box-shadow .3s;
}
.dste-cell.lit {
  background: linear-gradient(180deg, #FFF8E8 0%, #F6E3BF 100%);
  color: var(--c-gold-ink);
  border-color: var(--c-gold);
  transform: translateY(-1px);
  box-shadow: 0 6px 14px -10px rgba(201,161,106,.6);
}
.dste-cell.done { color: var(--c-gold-ink); opacity: .85; }
.dste-cell.done::before { content: "✓ "; font-weight: 700; }

.five-scan {
  display: grid; gap: 6px;
}
.fs-row {
  display: grid;
  grid-template-columns: 12px 1fr 54px;
  align-items: center; gap: 10px;
  padding: 6px 10px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  background: #fff;
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-dim);
}
.fs-row .fs-mark { color: var(--c-gold-ink); text-align: center; }
.fs-row .fs-bar {
  height: 4px; background: var(--c-line-soft); border-radius: 3px;
  overflow: hidden;
}
.fs-row .fs-bar i {
  display: block; width: 0%; height: 100%;
  background: linear-gradient(to right, var(--c-gold-hi), var(--c-gold));
  transition: width .22s ease-out;
}
.fs-row.done .fs-bar i { width: 100%; }
.fs-row.done .fs-mark::before { content: "✓"; }
.fs-row.done { color: var(--c-ink-2); }

.charter-card {
  padding: 12px 14px;
  border: 1px solid var(--c-gold);
  border-radius: 8px;
  background: linear-gradient(180deg, #FFF5DC 0%, #F1D79C 100%);
  font-family: var(--f-mono);
  font-size: 12px; color: var(--c-gold-ink);
  display: flex; align-items: center; gap: 10px;
  opacity: 0;
  transform: translateX(8px);
  transition: opacity .35s, transform .35s;
}
.charter-card.show { opacity: 1; transform: none; }
.charter-card .cc-pdf { font-size: 14px; }

/* 模式 · pm · IPD 拆单 */
.pm-tasks {
  display: grid; gap: 6px;
  margin-top: 4px;
}
.pm-task {
  display: grid;
  grid-template-columns: 16px 1fr auto;
  gap: 10px; align-items: center;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid var(--c-line);
  font-family: var(--f-sans);
  font-size: 13px; color: var(--c-ink);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .3s, transform .3s;
}
.pm-task.show { opacity: 1; transform: none; }
.pm-task .pt-mark {
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--c-gold); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-sans);
  font-size: 10px; font-weight: 800;
}
.pm-task .pt-mark::before { content: "→"; }
.pm-task .pt-slug {
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-gold-ink);
}

/* 模式 · expert · 七专家 · Skill 逐步打勾 */
.expert-head {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: linear-gradient(180deg, #fbf9f3 0%, #f5efe0 100%);
  border: 1px solid rgba(201,161,106,.3);
}
.expert-head .eh-zh {
  font-family: var(--f-serif);
  font-size: 15px; color: var(--c-ink-deep);
  font-weight: 600;
}
.expert-head .eh-slug {
  margin-left: auto;
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-gold-ink);
  padding: 3px 8px;
  background: rgba(201,161,106,.1);
  border-radius: 999px;
}

.skill-rows {
  display: grid; gap: 6px;
}
.skill-row {
  display: grid;
  grid-template-columns: 22px 1fr auto;
  align-items: center; gap: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--c-line);
  background: #fff;
  font-family: var(--f-sans);
  font-size: 12.5px; color: var(--c-dim);
  transition: background .3s, border-color .3s, color .3s;
  position: relative;
  overflow: hidden;
}
.skill-row .sr-check {
  width: 18px; height: 18px;
  display: flex; align-items: center; justify-content: center;
}
.skill-row .sr-check svg {
  width: 16px; height: 16px;
  stroke: var(--c-dim-2);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke .3s;
}
.skill-row .sr-check svg path {
  stroke-dasharray: 20;
  stroke-dashoffset: 20;
  transition: stroke-dashoffset .35s ease-out;
}
.skill-row .sr-name {
  font-family: var(--f-sans);
}
.skill-row .sr-skill {
  font-family: var(--f-mono);
  font-size: 10.5px; color: var(--c-dim-2);
  letter-spacing: .02em;
}
.skill-row.done {
  background: #FBF5E8;
  border-color: rgba(201,161,106,.4);
  color: var(--c-ink-2);
}
.skill-row.done .sr-check svg { stroke: var(--c-gold-ink); }
.skill-row.done .sr-check svg path { stroke-dashoffset: 0; }
.skill-row.done .sr-name { color: var(--c-ink-deep); font-weight: 600; }
.skill-row.done .sr-skill { color: var(--c-gold-ink); }
.skill-row.running {
  background: linear-gradient(180deg, #fff 0%, #fef7e4 100%);
  border-color: var(--c-gold);
  box-shadow: 0 0 0 3px rgba(201,161,106,.12);
  animation: skillRowBreath 1.2s ease-in-out infinite;
}
@keyframes skillRowBreath {
  0%, 100% { background: linear-gradient(180deg, #fff 0%, #fef7e4 100%); }
  50%      { background: linear-gradient(180deg, #FFF8E8 0%, #F9EAC8 100%); }
}

/* 产出角标 */
.expert-files {
  display: flex; flex-wrap: wrap; gap: 6px;
  padding-top: 10px;
  border-top: 1px dashed var(--c-line);
}
.expert-file {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #fbf9f3;
  border: 1px solid var(--c-line);
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-ink-2);
  opacity: 0;
  transform: translateX(20px);
  transition: opacity .32s, transform .32s var(--ease-out);
}
.expert-file.show { opacity: 1; transform: none; }
.expert-file .ef-ico { color: var(--c-gold-ink); }
.expert-file .ef-size { color: var(--c-dim-2); font-size: 10px; }
.expert-counter {
  margin-left: auto;
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-gold-ink);
  font-variant-numeric: tabular-nums;
}

/* 模式 · aggregate · 产物卡合流 */
.agg-products {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.agg-product {
  padding: 14px 12px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--c-line);
  text-align: center;
  font-family: var(--f-mono);
  font-size: 11.5px; color: var(--c-ink-2);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .35s, transform .35s, background .5s, border-color .5s, filter .5s;
}
.agg-product.show { opacity: 1; transform: none; }
.agg-product.merge {
  animation: aggMerge 1s ease-in forwards;
}
@keyframes aggMerge {
  0%   { opacity: 1; transform: none; }
  60%  { opacity: .55; transform: scale(.85) translateY(18px); filter: blur(.5px); }
  100% { opacity: 0;   transform: scale(.2) translateY(90px);  filter: blur(1.5px); }
}
.agg-product .ap-name { display: block; color: var(--c-ink-deep); font-weight: 600; font-size: 12.5px; margin-bottom: 2px; }
.agg-product .ap-from { display: block; color: var(--c-gold-ink); font-size: 10px; letter-spacing: .06em; }

.agg-final {
  padding: 16px 18px;
  border-radius: 12px;
  background: linear-gradient(180deg, #FFF5DC 0%, #F1D79C 100%);
  border: 1px solid var(--c-gold);
  display: flex; align-items: center; gap: 14px;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .45s, transform .45s;
}
.agg-final.show { opacity: 1; transform: none; }
.agg-final .af-ico {
  width: 40px; height: 40px;
  border-radius: 8px;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-gold-ink);
  font-weight: 700;
  border: 1px solid var(--c-gold);
}
.agg-final .af-name {
  font-family: var(--f-serif);
  font-size: 16px; color: var(--c-ink-deep);
  font-weight: 600;
}
.agg-final .af-size {
  margin-left: auto;
  font-family: var(--f-mono);
  font-size: 11px; color: var(--c-gold-ink);
}

/* PDF 飞行元素 */
.pdf-plane {
  position: absolute;
  z-index: 50;
  width: 40px; height: 50px;
  border-radius: 6px;
  background: #fff;
  border: 1px solid var(--c-gold);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-mono);
  font-size: 10px; color: var(--c-gold-ink);
  font-weight: 700;
  box-shadow: 0 10px 20px -8px rgba(201,161,106,.6);
  pointer-events: none;
  transition: transform 1s cubic-bezier(.55, .05, .25, 1), opacity .3s;
}
.pdf-plane::before { content: "PDF"; }

/* 模式 · flywheel · 知识库厅 */
.library-hall {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "intake stats"
    "intake folders";
  gap: 12px;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .5s ease-out, transform .5s ease-out;
}
.library-hall.show { opacity: 1; transform: none; }

/* 左侧 · 入库清单 */
.lib-intake {
  grid-area: intake;
  background: #ffffff;
  border: 1px solid var(--c-line);
  border-left: 3px solid var(--c-gold);
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 3px 12px rgba(28, 41, 32, 0.05);
  display: flex; flex-direction: column; min-height: 0;
}
.li-list {
  display: flex; flex-direction: column; gap: 6px;
  flex: 1; min-height: 0;
}
.li-item {
  display: flex; align-items: center; gap: 10px;
  padding: 7px 10px;
  border-radius: 7px;
  background: #fbf9f3;
  border: 1px solid rgba(201, 161, 106, 0.18);
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--c-ink-2);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .28s ease-out, transform .28s ease-out;
}
.li-item.show { opacity: 1; transform: none; }
.li-item .li-ico { color: var(--c-gold-ink); font-size: 11px; }
.li-item .li-name {
  flex: 1; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--c-ink-deep);
}
.li-item .li-size { font-size: 11px; opacity: 0.7; flex-shrink: 0; }

/* 右上 · 三 KPI 卡 */
.lib-stats {
  grid-area: stats;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.ls-kpi {
  background: #1C2920;
  color: #FBF9F4;
  border-radius: 10px;
  padding: 10px 8px 9px;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .35s ease-out, transform .35s ease-out;
}
.ls-kpi.show { opacity: 1; transform: none; }
.ls-kpi .lk-num {
  font-family: var(--f-serif);
  font-size: 22px;
  font-weight: 700;
  color: var(--c-gold);
  letter-spacing: 0.01em;
  line-height: 1;
}
.ls-kpi .lk-label {
  font-family: var(--f-sans);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: rgba(251, 249, 244, 0.7);
}

/* 右下 · 三档分类 */
.lib-folders {
  grid-area: folders;
  background: #fbf9f3;
  border: 1px solid var(--c-line);
  border-radius: 10px;
  padding: 10px 12px;
  display: flex; flex-direction: column; gap: 4px;
}
.lib-folders .lf-head {
  font-family: var(--f-sans);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-gold);
  margin-bottom: 2px;
  opacity: 0.85;
}
.lf-row {
  display: flex; align-items: center; gap: 8px;
  padding: 5px 8px;
  font-family: var(--f-sans);
  font-size: 12px;
  color: var(--c-ink-2);
  border-radius: 6px;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity .3s, transform .3s, background .25s;
}
.lf-row.show { opacity: 1; transform: none; }
.lf-row .lf-ico { color: var(--c-gold-ink); font-size: 11px; }
.lf-row .lf-name { flex: 1; color: var(--c-ink-deep); }
.lf-row .lf-count {
  font-family: var(--f-mono);
  font-size: 11.5px;
  color: var(--c-gold-ink);
  font-weight: 600;
}
.lf-row:hover { background: rgba(201, 161, 106, 0.08); }

/* 模式 · flywheel · 飞轮回流提示（保留兼容） */
.flywheel-toast {
  align-self: center;
  padding: 12px 20px;
  border-radius: 999px;
  background: linear-gradient(180deg, #FFF5DC 0%, #F1D79C 100%);
  border: 1px solid var(--c-gold);
  font-family: var(--f-serif);
  font-size: 14px; color: var(--c-ink-deep);
  box-shadow: 0 14px 28px -12px rgba(201,161,106,.55);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .4s, transform .4s;
}
.flywheel-toast.show { opacity: 1; transform: none; }
.flywheel-toast .ft-plus { color: var(--c-gold-ink); font-weight: 700; margin-right: 6px; }

/* ---- 底部 · 回放按钮 ---- */
.theater-footer {
  display: flex; justify-content: center;
  min-height: 48px;
}
.theater-replay {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 11px 22px;
  background: #fff;
  border: 1px solid var(--c-gold);
  border-radius: 999px;
  color: var(--c-gold-ink);
  font-family: var(--f-serif);
  font-size: 14px;
  cursor: pointer;
  box-shadow: 0 8px 18px -10px rgba(201,161,106,.4);
  opacity: 0; visibility: hidden;
  transform: translateY(4px);
  transition: opacity .4s, transform .4s, background .3s, box-shadow .3s, visibility 0s .4s;
}
.theater-replay.show {
  opacity: 1; visibility: visible;
  transform: none;
  transition: opacity .4s, transform .4s, background .3s, box-shadow .3s, visibility 0s 0s;
}
.theater-replay:hover {
  background: linear-gradient(180deg, #FFF5DC 0%, #F6E3BF 100%);
  box-shadow: 0 12px 24px -10px rgba(201,161,106,.55);
}
.theater-replay .tr-ico {
  font-size: 16px;
  transition: transform .4s;
}
.theater-replay:hover .tr-ico { transform: rotate(-180deg); }

/* Relative anchor for absolutely-positioned flying elements */
.climax-theater { position: relative; }
.doing-theater { position: relative; }

/* =====================================================
 * 幕 09 · 和谐版（1440×900 一屏，对齐图 2）
 *   策略：大气 + 和谐，严格控制在一屏
 * ===================================================== */
.scene-climax { padding: 48px var(--rail) 44px; }
.scene-climax .climax-head { margin-bottom: 20px; }
.scene-climax .climax-head h2 {
  margin-top: 10px;
  font-size: clamp(28px, 3.2vw, 42px);
  line-height: 1.18;
}
.scene-climax .climax-head .lede { margin: 10px auto 0; font-size: 14px; }
.scene-climax .climax-theater { gap: 14px; }

/* 顶部进度条已删除 · 保留兵马俑 */
.scene-climax .theater-progress { display: none; }

/* 左树形·和谐版 */
.scene-climax .tree-wrap.tree-v2 {
  padding: 22px 22px 20px;
}
.scene-climax .tree-wrap.tree-v2 .tree-title {
  margin-bottom: 12px; font-size: 11px;
}
.scene-climax .tree-wrap.tree-v2 .tree-layer { margin-bottom: 3px; }
.scene-climax .tree-wrap.tree-v2 .tree-stem { height: 12px; margin: 3px auto; }
.scene-climax .tree-wrap.tree-v2 .tree-stem-library { height: 14px; }
.scene-climax .tree-wrap.tree-v2 .tree-node {
  padding: 11px 22px; font-size: 15px;
}
.scene-climax .tree-wrap.tree-v2 .tree-node .tn-ico { font-size: 14px; }
.scene-climax .tree-wrap.tree-v2 .tree-branch { margin: 3px auto 0; }
.scene-climax .tree-wrap.tree-v2 .tree-branch svg { height: 44px; }
.scene-climax .tree-wrap.tree-v2 .tree-l3-row { gap: 8px; margin-top: 3px; }
.scene-climax .tree-wrap.tree-v2 .tree-leaf {
  padding: 11px 5px 10px; border-radius: 11px; gap: 5px;
}
.scene-climax .tree-wrap.tree-v2 .tree-leaf .tl-ico { font-size: 17px; }
.scene-climax .tree-wrap.tree-v2 .tree-leaf .tl-zh { font-size: 12px; }

/* 右终端拉伸等高于左树 */
.scene-climax .theater-stage { align-items: stretch; gap: 28px; }
.scene-climax .theater-stage > .tree-wrap.tree-v2 { align-self: stretch; }
.scene-climax .doing-theater {
  min-height: 0;
  align-self: stretch;
  display: flex; flex-direction: column;
}
.scene-climax .doing-theater .doing-body-theater {
  flex: 1 1 auto;
  min-height: 0;
  padding: 16px 20px 16px;
  gap: 12px;
  overflow: hidden;
}
.scene-climax .theater-placeholder { min-height: 0; flex: 1; }

/* 右终端·chrome 栏 */
.scene-climax .doing-chrome {
  padding: 11px 18px;
}
.scene-climax .doing-chrome .dc-title { font-size: 13.5px; }

/* 右终端·交付输入 eyebrow 小字 */
.scene-climax .doing-eyebrow-label {
  font-family: var(--f-sans);
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-gold);
  font-weight: 600;
  margin: 2px 0 -4px 2px;
  padding: 0;
  opacity: 0.9;
}

/* 右终端·prompt-box 和谐版 */
.scene-climax .doing-prompt-box {
  padding: 13px 16px;
  font-size: 15.5px;
  line-height: 1.5;
  border-left-width: 4px;
  box-shadow: 0 3px 12px rgba(28, 41, 32, 0.06), 0 1px 2px rgba(201, 161, 106, 0.12);
  background: #ffffff;
  font-weight: 500;
  letter-spacing: 0.005em;
}

/* Skill 行和谐版 */
.scene-climax .skill-rows { gap: 6px; }
.scene-climax .skill-row {
  padding: 9px 14px; font-size: 12.5px;
  border-radius: 9px;
}

/* 默认态：左树文字清晰 + 隐藏 done 的 ✓ 勋章 */
.scene-climax .tree-node.idle,
.scene-climax .tree-leaf.idle { opacity: 1; }
.scene-climax .tree-node .tn-check,
.scene-climax .tree-leaf .tl-check,
.scene-climax .tree-node.done .tn-check,
.scene-climax .tree-leaf.done .tl-check { display: none !important; }
.scene-climax .tree-node.done { opacity: 0.92; }
.scene-climax .tree-leaf.done { opacity: 0.88; }
.scene-climax .skill-row .sr-check { width: 18px; height: 18px; }
.scene-climax .skill-row .sr-check svg { width: 14px; height: 14px; }
.scene-climax .mode-eyebrow { font-size: 10px; }

/* 产出文件 */
.scene-climax .expert-files { gap: 6px; padding-top: 2px; }
.scene-climax .expert-file {
  padding: 6px 10px; font-size: 12px; border-radius: 7px;
}
.scene-climax .expert-counter { font-size: 11.5px; }

/* footer 回放按钮 */
.scene-climax .theater-footer { padding-top: 10px; }

/* 窄屏上不强求一屏 */
@media (max-width: 1040px) {
  .scene-climax { padding: 80px var(--rail); }
  .scene-climax .doing-theater { min-height: 440px; }
  .scene-climax .climax-head h2 { font-size: clamp(26px, 5vw, 36px); }
  .scene-climax .doing-prompt-box { font-size: 15.5px; padding: 14px 16px; }
}

/* =====================================================
 * 幕 10 · Skill 工厂
 * ===================================================== */
.scene-skill { background: var(--c-paper); }
.skill-head { text-align: center; margin-bottom: 56px; }
.skill-head .eyebrow { display: inline-block; padding-left: 0; }
.skill-head .eyebrow::before { display: none; }
.skill-head h2 { margin-top: 18px; }
.skill-head .lede { margin: 18px auto 0; }

.skill-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 40px; align-items: center;
  margin-bottom: 48px;
}
@media (max-width: 960px) { .skill-grid { grid-template-columns: 1fr; } }
.skill-stack { display: grid; gap: 14px; }
.skill-layer {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-left: 3px solid var(--c-gold);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  box-shadow: var(--shadow-card);
}
.sl-head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 8px;
}
.sl-tag {
  font-family: var(--f-serif); font-weight: 600;
  font-size: 15px; color: var(--c-ink);
}
.sl-sub {
  font-family: var(--f-mono); font-size: 11px;
  color: var(--c-dim); letter-spacing: .08em;
}
.sl-body {
  font-size: 13px; color: var(--c-dim);
  line-height: 1.7;
}

.skill-cats {
  display: flex; flex-wrap: wrap; gap: 10px;
  justify-content: center;
  max-width: 900px; margin: 0 auto;
}
.skill-cat {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  padding: 10px 18px; border-radius: 999px;
  font-size: 13px; color: var(--c-ink-2);
  display: inline-flex; align-items: center; gap: 8px;
}
.skill-cat .n {
  font-family: var(--f-mono); font-size: 11px;
  color: var(--c-gold-ink); font-weight: 600;
}

/* =====================================================
 * 幕 11 · MCP 生态
 * ===================================================== */
.scene-mcp { background: var(--c-cream); }
.mcp-head { text-align: center; margin-bottom: 40px; }
.mcp-head .eyebrow { display: inline-block; padding-left: 0; }
.mcp-head .eyebrow::before { display: none; }
.mcp-head h2 { margin-top: 18px; }
.mcp-head .lede { margin: 18px auto 0; }

.mcp-wrap { max-width: 900px; margin: 0 auto; }
.mcp-svg { width: 100%; height: auto; }
.mcp-line { stroke: var(--c-line); stroke-width: 1; }
.mcp-host { fill: var(--c-ink-deep); stroke: var(--c-gold); stroke-width: 2; }
.mcp-host-text { fill: var(--c-cream); font-family: var(--f-serif); font-size: 13px; font-weight: 600; text-anchor: middle; }
.mcp-node-circle { fill: var(--c-cream-hi); stroke: var(--c-line); stroke-width: 1.5; }
.mcp-node-text { font-family: var(--f-sans); font-size: 11px; fill: var(--c-ink-2); text-anchor: middle; }
.mcp-dot { opacity: 0; }

/* =====================================================
 * 幕 11.5 · 自动化 v5.2 · 3 类触发 + 4 场景 + 4 核心价值
 * ===================================================== */
.scene-auto { background: var(--c-cream); }
.scene-auto .scene-inner {
  display: flex; flex-direction: column; gap: 48px;
}
.auto-head { text-align: center; }
.auto-head .eyebrow { display: inline-block; padding-left: 0; }
.auto-head .eyebrow::before { display: none; }
.auto-head h2 { margin-top: 18px; }
.auto-head .lede { margin: 18px auto 0; max-width: 780px; }

/* chip 已上线 tag */
.agent-chip-xl .aci-state {
  padding: 4px 10px;
  font-family: var(--f-mono);
  font-size: 11px; letter-spacing: .1em;
  background: var(--c-gold); color: var(--c-ink-deep);
  border-radius: 999px;
  font-weight: 600;
  margin-left: 6px;
}

/* 核心四价值 */
.auto-values {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media (max-width: 1000px) { .auto-values { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .auto-values { grid-template-columns: 1fr; } }
.auto-val {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 24px 22px;
  display: flex; flex-direction: column; gap: 8px;
  box-shadow: var(--shadow-card);
  border-top: 3px solid var(--c-gold);
}
.auto-val .av-n {
  font-family: var(--f-display);
  font-size: 30px; font-weight: 700;
  color: var(--c-gold-ink); line-height: 1;
  font-variant-numeric: tabular-nums;
}
.auto-val .av-t {
  font-family: var(--f-serif);
  font-size: 16px; font-weight: 700;
  color: var(--c-ink);
  line-height: 1.4;
}
.auto-val .av-d {
  font-size: 13px; color: var(--c-dim);
  line-height: 1.6;
}

/* 三类触发模式 */
.auto-modes {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 960px) { .auto-modes { grid-template-columns: 1fr; } }
.auto-mode {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 28px 26px;
  display: flex; flex-direction: column; gap: 12px;
  box-shadow: var(--shadow-card);
}
.auto-mode .am-tag {
  font-family: var(--f-mono);
  font-size: 10px; letter-spacing: .2em;
  color: var(--c-gold-ink);
  text-transform: uppercase;
}
.auto-mode h3 {
  font-family: var(--f-serif);
  font-size: 22px; font-weight: 700;
  color: var(--c-ink); margin: 0;
}
.auto-mode .am-sub {
  font-size: 12px; color: var(--c-dim);
  font-family: var(--f-mono);
  letter-spacing: .04em;
  padding-bottom: 10px;
  border-bottom: 1px dashed var(--c-line);
}
.auto-mode ul {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 10px;
}
.auto-mode li {
  font-size: 13px; color: var(--c-ink-2);
  line-height: 1.7;
  padding-left: 16px; position: relative;
}
.auto-mode li::before {
  content: "·"; position: absolute; left: 0; top: -2px;
  color: var(--c-gold-ink); font-size: 20px; font-weight: 700;
}
.auto-mode li strong {
  color: var(--c-ink);
  font-weight: 700;
  font-family: var(--f-serif);
}

/* 已落地场景表 */
.auto-scenes {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  padding: 32px 28px;
  box-shadow: var(--shadow-card);
}
.auto-scenes-head {
  font-family: var(--f-serif);
  font-size: 16px; font-weight: 700;
  color: var(--c-ink);
  padding-bottom: 18px;
  border-bottom: 1px solid var(--c-line);
  margin-bottom: 8px;
}
.auto-scene-table {
  display: grid; gap: 2px;
}
.ast-row {
  display: grid;
  grid-template-columns: 1.1fr 1.3fr 1.1fr 1fr 1.5fr;
  gap: 18px;
  padding: 16px 0;
  align-items: center;
  border-bottom: 1px solid var(--c-line);
}
.ast-row:last-child { border-bottom: none; }
.ast-th {
  font-family: var(--f-mono);
  font-size: 10px; letter-spacing: .18em;
  color: var(--c-dim);
  text-transform: uppercase;
  padding: 10px 0;
}
.ast-name {
  font-family: var(--f-serif);
  font-size: 15px; font-weight: 700;
  color: var(--c-ink);
}
.ast-trigger {
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--c-ink-2);
  letter-spacing: .02em;
  display: flex; align-items: center; gap: 8px;
}
.ast-tmode {
  display: inline-block;
  font-family: var(--f-sans);
  font-size: 11px; font-weight: 600; letter-spacing: .08em;
  padding: 3px 8px;
  border-radius: 3px;
  background: rgba(201,161,106,.14);
  color: var(--c-gold-ink);
  border: 1px solid rgba(201,161,106,.35);
}
.ast-tmode-evt {
  background: rgba(28,41,32,.08);
  color: var(--c-ink);
  border-color: rgba(28,41,32,.25);
}
.ast-tmode-man {
  background: rgba(28,41,32,.04);
  color: var(--c-ink-2);
  border-color: rgba(28,41,32,.15);
}
.ast-agent {
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--c-gold-ink);
  letter-spacing: .04em;
}
.ast-freq {
  font-size: 13px;
  color: var(--c-ink-2);
}
.ast-val {
  font-size: 13px;
  color: var(--c-ink-2);
  line-height: 1.55;
}
.ast-chain {
  background: linear-gradient(to right, rgba(201,161,106,.08), transparent 85%);
  border-radius: var(--radius-sm);
  padding: 16px 12px;
  margin: 4px -12px 0;
  border-bottom: none;
}
.auto-scenes-foot {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--c-line);
  font-size: 12px;
  color: var(--c-dim);
  letter-spacing: .02em;
}
.auto-scenes-foot em {
  font-style: normal;
  color: var(--c-gold-ink);
  font-family: var(--f-mono);
}
@media (max-width: 900px) {
  .ast-row { grid-template-columns: 1fr 1fr; row-gap: 8px; }
  .ast-th { display: none; }
  .ast-name { grid-column: 1 / -1; }
}

/* 双图错位 */
.auto-visual {
  position: relative;
  min-height: 520px;
}
.auto-visual .shot { position: absolute; border-radius: var(--radius-md); overflow: hidden; }
.auto-shot-main {
  top: 0; left: 0;
  width: 72%; height: 420px;
  z-index: 2;
  box-shadow: 0 2px 4px rgba(28,41,32,.04), 0 16px 44px rgba(28,41,32,.09);
  border: 1px solid var(--c-line);
}
.auto-shot-main img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.auto-shot-side {
  bottom: 0; right: 0;
  width: 56%; height: 300px;
  z-index: 3;
  box-shadow: 0 2px 4px rgba(28,41,32,.04), 0 16px 44px rgba(28,41,32,.12);
  border: 1px solid var(--c-line);
  background: var(--c-cream-hi);
}
.auto-shot-side img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
@media (max-width: 1000px) {
  .auto-visual { min-height: 580px; }
  .auto-shot-main { width: 100%; height: 300px; }
  .auto-shot-side { width: 88%; height: 240px; }
}

/* =====================================================
 * 幕 12 · 四层记忆
 * ===================================================== */
.scene-memory { background: var(--c-paper); }
.memory-head { text-align: center; margin-bottom: 56px; }
.memory-head .eyebrow { display: inline-block; padding-left: 0; }
.memory-head .eyebrow::before { display: none; }
.memory-head h2 { margin-top: 18px; }
.memory-head .lede { margin: 18px auto 0; }

.memory-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 20px; margin-bottom: 36px;
}
@media (max-width: 960px) { .memory-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .memory-grid { grid-template-columns: 1fr; } }
.memory-card {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 26px 22px;
  position: relative;
  box-shadow: var(--shadow-card);
}
.memory-card .mem-level {
  font-family: var(--f-mono); font-size: 11px;
  color: var(--c-gold-ink);
  letter-spacing: .1em;
}
.memory-card h3 {
  font-family: var(--f-serif);
  font-size: 20px; color: var(--c-ink);
  margin: 8px 0 12px;
}
.memory-card p { font-size: 13px; color: var(--c-dim); line-height: 1.7; }
.memory-bottom {
  display: flex; gap: 40px; justify-content: center; flex-wrap: wrap;
  padding-top: 28px;
  border-top: 1px solid var(--c-line);
}
.memory-bottom .s { text-align: center; }
.memory-bottom .n {
  font-family: var(--f-display); font-size: 30px;
  color: var(--c-gold-ink); font-weight: 700;
  line-height: 1;
}
.memory-bottom .l { font-size: 12px; color: var(--c-dim); margin-top: 4px; }

/* =====================================================
 * 幕 13 · Token 观测
 * ===================================================== */
.scene-token { background: var(--c-paper); }
.token-head { text-align: center; margin-bottom: 56px; display: flex; flex-direction: column; align-items: center; gap: 0; }
.token-head .eyebrow { display: block; padding-left: 0; margin-bottom: 14px; }
.token-head .eyebrow::before { display: none; }
.token-head .agent-chip-xl { margin: 0 0 10px; }
.token-head h2 { margin-top: 18px; max-width: 900px; }
.token-head .lede { margin: 18px auto 0; max-width: 760px; }

.token-kpis {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: 20px; margin-bottom: 40px;
}
@media (max-width: 960px) { .token-kpis { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 520px) { .token-kpis { grid-template-columns: repeat(2, 1fr); } }
.token-kpi {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 22px 20px;
  text-align: center;
  box-shadow: var(--shadow-card);
}
.token-kpi .kpi-num { font-size: clamp(30px, 3.2vw, 42px); }
.token-meta {
  display: flex; gap: 24px; justify-content: center; flex-wrap: wrap;
  margin-top: 20px;
  font-family: var(--f-mono); font-size: 12px;
  color: var(--c-dim);
}

/* =====================================================
 * 幕 14 · 知识库 · 三层同心圆
 * ===================================================== */
.scene-knowledge { background: var(--c-paper); }
.know-head { text-align: center; margin-bottom: 48px; }
.know-head .eyebrow { display: inline-block; padding-left: 0; }
.know-head .eyebrow::before { display: none; }
.know-head h2 { margin-top: 18px; }
.know-head .lede { margin: 18px auto 0; }

.know-flywheel {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 48px; align-items: center;
  max-width: 1100px; margin: 0 auto;
}
@media (max-width: 960px) { .know-flywheel { grid-template-columns: 1fr; } }

.know-rings-wrap {
  position: relative;
  aspect-ratio: 1;
  max-width: 500px;
  margin: 0 auto;
}
.know-rings-svg { width: 100%; height: 100%; }
.know-ring {
  fill: none;
  stroke: var(--c-line);
  stroke-width: 1.5;
}
.know-ring.r-l1 { stroke: var(--c-dim-2); stroke-dasharray: 6 4; }
.know-ring.r-l2 { stroke: var(--c-gold); }
.know-ring.r-l3 { stroke: var(--c-ink-2); }
.know-ring-label {
  font-family: var(--f-mono); font-size: 10px;
  fill: var(--c-dim); text-anchor: middle;
  letter-spacing: .15em;
}
.know-core {
  fill: var(--c-gold);
}
.know-spark {
  fill: var(--c-gold);
  filter: drop-shadow(0 0 4px rgba(201,161,106,.7));
  animation: knowSpiral 6s ease-in-out infinite;
}
@keyframes knowSpiral {
  0%   { transform: translate(0, -180px) scale(1); opacity: .2; }
  50%  { transform: translate(0, 0) scale(1.4); opacity: 1; }
  100% { transform: translate(0, -180px) scale(1); opacity: .2; }
}

.know-layers { display: grid; gap: 16px; }
.know-layer {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 20px 22px;
  box-shadow: var(--shadow-card);
}
.know-layer-title {
  font-family: var(--f-serif);
  font-size: 17px; color: var(--c-ink);
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 8px;
}
.know-layer-title .tag {
  font-family: var(--f-mono); font-size: 10px;
  background: var(--c-gold);
  color: var(--c-ink-deep);
  padding: 2px 8px; border-radius: 3px;
  letter-spacing: .08em; font-weight: 600;
}
.know-layer p { font-size: 13px; color: var(--c-dim); line-height: 1.7; }

.know-meta {
  text-align: center;
  margin-top: 36px;
  font-size: 13px; color: var(--c-dim);
  font-family: var(--f-mono);
}

/* =====================================================
 * 幕 15 · 合规 · GDPR/CCPA/EU AI Act 大字
 * ===================================================== */
.scene-security { background: var(--c-cream); }
.security-head { text-align: center; margin-bottom: 56px; }
.security-head .eyebrow { display: inline-block; padding-left: 0; }
.security-head .eyebrow::before { display: none; }
.security-head h2 { margin-top: 18px; }
.security-head .lede { margin: 18px auto 0; }

/* 幕15 合规 + 安全 左右布局 */
.sec-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  max-width: 1180px;
  margin: 0 auto 48px;
  align-items: start;
}
@media (max-width: 1000px) { .sec-split { grid-template-columns: 1fr; } }
.sec-left, .sec-right { display: flex; flex-direction: column; gap: 18px; }
.sec-label {
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--c-gold-ink);
  letter-spacing: .14em;
  text-transform: uppercase;
  border-left: 3px solid var(--c-gold);
  padding-left: 12px;
}
.sec-right .shot {
  border-radius: var(--radius-md);
  border: 1px solid var(--c-line);
  box-shadow: var(--shadow-card);
  background: var(--c-cream-hi);
  overflow: hidden;
}
.sec-right .shot { position: relative; }
.sec-right .shot img {
  width: 100%; height: 340px;
  object-fit: cover; object-position: top;
  display: block;
}
.sec-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.sec-chips .chip { font-size: 12px; }
.compliance-big {
  display: grid; gap: 14px;
}
.compliance-row {
  display: grid;
  grid-template-columns: minmax(120px, auto) 1fr auto;
  gap: 20px;
  align-items: baseline;
  padding: 18px 22px;
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
}
.compliance-name {
  font-family: var(--f-display); font-weight: 700;
  font-size: clamp(26px, 2.6vw, 36px);
  color: var(--c-gold-ink);
  letter-spacing: -.01em;
  line-height: 1;
}
.compliance-desc {
  font-family: var(--f-serif);
  font-size: 14px;
  color: var(--c-ink-2);
  line-height: 1.55;
}
.compliance-state {
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--c-gold-ink);
  font-weight: 700;
  letter-spacing: .08em;
  text-align: right;
  padding: 4px 10px;
  border: 1px solid var(--c-gold);
  border-radius: 999px;
}
@media (max-width: 760px) {
  .compliance-row { grid-template-columns: 1fr; gap: 10px; text-align: left; padding: 20px 24px; }
  .compliance-state { text-align: left; }
}

.security-support { display: none; }

/* =====================================================
 * 幕 16 · 企业数据集成
 * ===================================================== */
.scene-integration { background: var(--c-paper); }
.scene-integration .scene-inner {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 56px; align-items: center;
}
@media (max-width: 960px) { .scene-integration .scene-inner { grid-template-columns: 1fr; } }
.integ-chips { display: flex; gap: 10px; flex-wrap: wrap; margin: 20px 0 24px; }
.integ-api {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 16px 20px;
  font-family: var(--f-mono);
  box-shadow: var(--shadow-card);
}
.integ-api .row {
  display: grid; grid-template-columns: 60px 1fr auto;
  gap: 14px; align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--c-line-soft);
  font-size: 12px;
}
.integ-api .row:last-child { border-bottom: none; }
.integ-api .verb {
  background: var(--c-gold);
  color: var(--c-ink-deep);
  padding: 2px 6px; border-radius: 3px;
  font-size: 10px; font-weight: 700;
  text-align: center;
}
.integ-api .path { color: var(--c-ink); }
.integ-api .desc { color: var(--c-dim); font-family: var(--f-sans); font-size: 12px; }

/* =====================================================
 * 幕 17 · Portal
 * ===================================================== */
.scene-portal { background: var(--c-cream); }
.portal-head { text-align: center; margin-bottom: 48px; }
.portal-head .eyebrow { display: inline-block; padding-left: 0; }
.portal-head .eyebrow::before { display: none; }
.portal-head h2 { margin-top: 18px; }

.portal-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 28px;
}
@media (max-width: 960px) { .portal-grid { grid-template-columns: 1fr; } }
.portal-card {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow-card);
}
.portal-card h3 {
  font-family: var(--f-serif);
  font-size: 20px; color: var(--c-ink);
  margin: 6px 0 16px;
}
.portal-card .shot { margin-bottom: 18px; }
.portal-card .shot img { height: 260px; object-fit: cover; object-position: top; }

.portal-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.portal-stats .s { text-align: center; }
.portal-stats .n { font-family: var(--f-display); font-size: 22px; color: var(--c-gold-ink); font-weight: 700; }
.portal-stats .l { font-size: 11px; color: var(--c-dim); margin-top: 2px; }

.portal-bars { display: grid; gap: 6px; }
.portal-bar {
  display: grid; grid-template-columns: 30px 1fr 40px;
  align-items: center; gap: 10px;
  font-family: var(--f-mono); font-size: 11px;
  color: var(--c-dim);
}
.pb-track { height: 6px; background: var(--c-line); border-radius: 3px; overflow: hidden; }
.pb-fill { display: block; height: 100%; background: var(--c-gold); border-radius: 3px; }

.portal-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.pill {
  padding: 6px 12px;
  background: var(--c-paper);
  border: 1px solid var(--c-line);
  border-radius: 999px;
  font-size: 12px;
  color: var(--c-ink-2);
}

/* =====================================================
 * 幕 18 · CTA
 * ===================================================== */
.cta-stats {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-top: 40px;
  max-width: 720px;
  margin-left: 0; margin-right: 0;
}
@media (max-width: 900px) {
  .cta-stats { grid-template-columns: repeat(2, 1fr); }
}
.cta-s {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: 18px 14px;
  text-align: center;
}
.cta-s .n {
  font-family: var(--f-display);
  font-size: 26px;
  font-weight: 700;
  color: var(--c-gold-ink);
  line-height: 1;
  letter-spacing: .02em;
}
.cta-s .n small {
  display: block;
  font-family: var(--f-sans);
  font-size: 10px;
  font-weight: 500;
  color: var(--c-dim);
  letter-spacing: .1em;
  margin-top: 4px;
  text-transform: uppercase;
}
.cta-s .l {
  font-size: 11px;
  color: var(--c-dim);
  margin-top: 10px;
  letter-spacing: .04em;
}

.scene-cta {
  background: var(--c-paper);
  text-align: left;
  padding: 120px var(--rail);
}
.cta-inner {
  max-width: 1280px; margin: 0 auto;
  position: relative; z-index: 1;
  padding-right: min(44%, 520px);
}
.scene-cta .eyebrow { display: inline-block; padding-left: 0; }
.scene-cta .eyebrow::before { display: none; }
.scene-cta h2 { margin-top: 20px; }
.cta-sub {
  font-size: 18px; color: var(--c-dim);
  margin: 24px 0 36px;
  line-height: 1.7;
}
.cta-buttons { display: flex; gap: 14px; justify-content: flex-start; flex-wrap: wrap; margin-bottom: 28px; }
.cta-note { font-size: 13px; color: var(--c-dim-2); letter-spacing: .04em; }

/* ---------- Footer ---------- */
.footer {
  text-align: center;
  padding: 40px var(--rail);
  font-size: 12px; color: var(--c-dim-2);
  border-top: 1px solid var(--c-line);
  background: var(--c-paper);
  letter-spacing: .04em;
}


/* =====================================================
 * 幕 04.5 · Discovery Portal 洞察
 * ===================================================== */
.scene-discovery {
  padding: clamp(72px, 7vw, 100px) var(--rail);
  background: var(--c-paper);
  position: relative;
  overflow: hidden;
}
.scene-discovery .scene-inner {
  max-width: 1360px; margin: 0 auto;
  position: relative; z-index: 1;
}
.disc-head {
  text-align: center;
  max-width: 860px;
  margin: 0 auto clamp(40px, 5vw, 64px);
}
.disc-head h2 {
  font-family: var(--f-serif); font-weight: 700;
  font-size: clamp(36px, 4.2vw, 60px);
  line-height: 1.18; letter-spacing: -.01em;
  color: var(--c-ink);
  margin: 18px 0 18px;
}
.disc-head h2 em {
  font-family: var(--f-display); font-style: italic;
  font-weight: 700;
  /* 烫金工艺 */
  background: linear-gradient(135deg,
    #D4A84B 0%, #E6C078 22%, #8C6A3D 48%,
    #C79447 72%, #F0D58A 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-shadow: 0 1px 0 rgba(109,80,34,.12);
}
.disc-head .lede {
  font-size: 16px; line-height: 1.85;
  color: var(--c-dim);
  max-width: 760px; margin: 0 auto;
}
.scene-discovery .agent-chip-xl { margin: 8px auto 4px; }

/* 主体双栏 */
.disc-body {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(32px, 4vw, 56px);
  align-items: stretch;
}

/* 左 · 产品大屏 */
.disc-hero {
  position: relative;
}
.disc-shot {
  background: #fff;
  border: 1px solid rgba(201,161,106,.28);
  border-radius: 16px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 40px 80px -30px rgba(28,41,32,.28),
    0 14px 32px -18px rgba(28,41,32,.2);
  overflow: hidden;
  transform: perspective(1800px) rotateY(-2deg);
  transform-origin: left center;
}
.disc-shot-chrome {
  display: flex; align-items: center; gap: 6px;
  padding: 10px 16px;
  background: linear-gradient(180deg, #fbf7ef 0%, #f4ecdd 100%);
  border-bottom: 1px solid rgba(201,161,106,.22);
}
.disc-dot { width: 10px; height: 10px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(0,0,0,.05) inset; }
.disc-dot-r { background: #e8a6a0; }
.disc-dot-y { background: #e8d39a; }
.disc-dot-g { background: #aac7a1; }
.disc-shot-url {
  margin-left: 14px;
  font-family: var(--f-sans);
  font-size: 12px; letter-spacing: .06em;
  color: var(--c-dim);
}
.disc-shot img {
  display: block; width: 100%; height: auto;
}
/* 右下角 · 55+ 来源徽章 · 烫金工艺 */
.disc-badge {
  position: absolute;
  right: -14px; bottom: -22px;
  background: linear-gradient(135deg,
    #D4A84B 0%, #E6C078 22%, #8C6A3D 48%,
    #C79447 72%, #F0D58A 100%);
  color: #FBF9F4;
  padding: 18px 24px 16px;
  border-radius: 14px;
  border: 1px solid #6D5022;
  box-shadow:
    0 18px 40px -16px rgba(109,80,34,.55),
    0 6px 16px -6px rgba(28,41,32,.30),
    inset 0 1px 0 rgba(255,240,200,.35),
    inset 0 -1px 0 rgba(80,54,18,.35);
  display: flex; flex-direction: column; gap: 4px;
  min-width: 180px;
}
.disc-badge-num {
  font-family: var(--f-display); font-weight: 700;
  font-size: 38px; line-height: 1;
  letter-spacing: -.02em;
}
.disc-badge-num sup { font-size: 20px; vertical-align: super; margin-left: 2px; }
.disc-badge-cap {
  font-size: 11px; letter-spacing: .08em;
  color: rgba(255,255,255,.92);
}

/* 右 · 四频道卡 2×2 */
.disc-rails {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-content: stretch;
}
.disc-rail {
  background: var(--c-cream-hi);
  border: 1px solid var(--c-line);
  border-radius: 14px;
  padding: 20px 20px 18px;
  position: relative;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.disc-rail:hover {
  transform: translateY(-2px);
  border-color: rgba(201,161,106,.45);
  box-shadow: 0 12px 28px -14px rgba(28,41,32,.18);
}
.disc-rail-tag {
  display: inline-block;
  font-family: var(--f-sans);
  font-size: 10.5px; letter-spacing: .12em;
  color: var(--c-gold-ink);
  text-transform: uppercase;
  margin-bottom: 12px;
  padding: 3px 9px;
  border: 1px solid rgba(201,161,106,.35);
  border-radius: 999px;
  background: rgba(201,161,106,.07);
}
.disc-rail-head {
  display: flex; align-items: baseline; gap: 10px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.disc-rail-ico {
  font-size: 18px; color: var(--c-gold-ink);
  line-height: 1;
}
.disc-rail-head h4 {
  font-family: var(--f-serif); font-weight: 700;
  font-size: 19px; color: var(--c-ink);
  margin: 0;
}
.disc-rail-meta {
  font-size: 11px; letter-spacing: .06em;
  color: var(--c-dim);
  margin-left: auto;
}
.disc-rail p {
  font-size: 13.5px; line-height: 1.7;
  color: var(--c-dim);
  margin: 0;
}

/* 协同条 */
.disc-foot {
  margin-top: clamp(32px, 4vw, 48px);
  display: flex; align-items: center; gap: 16px;
  padding: 18px 24px;
  background: linear-gradient(90deg, rgba(201,161,106,.06), rgba(201,161,106,.02));
  border: 1px solid rgba(201,161,106,.22);
  border-radius: 12px;
}
.disc-foot-pill {
  flex-shrink: 0;
  font-family: var(--f-sans);
  font-size: 11px; letter-spacing: .14em;
  color: #fff;
  background: var(--c-gold-ink);
  padding: 5px 12px;
  border-radius: 999px;
}
.disc-foot-text {
  font-size: 13.5px; line-height: 1.65;
  color: var(--c-ink);
}

@media (max-width: 980px) {
  .disc-body { grid-template-columns: 1fr; }
  .disc-rails { grid-template-columns: 1fr; }
  .disc-shot { transform: none; }
  .disc-badge { right: 12px; bottom: -18px; min-width: 150px; padding: 14px 18px 12px; }
  .disc-badge-num { font-size: 30px; }
}

/* =====================================================
 * V2 · 极简宇宙 ambient 图系 (v21 系列)
 * 5 张同风格：Hero 星盘 / Discovery 罗盘 / Climax 浑天仪 / Knowledge 天象册 / CTA 北斗
 * 统一构图：右 1/3 主体悬浮 + 左 2/3 星空留白 + 淡银河
 * Hero 和 CTA 做大背景（文字左对齐），其他 3 幕做低透明度柔雾 overlay
 * ===================================================== */

/* ===== Hero · 星盘 · 大背景 ===== */
.scene-hero { position: relative; overflow: hidden; }
.scene-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url('assets/ambient/v21-1-hero-minimal.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 1;
  pointer-events: none;
  z-index: 0;
}
/* 左 2/3 米白渐隐覆层 · 保证文字可读 */
.scene-hero::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(100deg, rgba(251,249,244,.92) 0%, rgba(251,249,244,.80) 25%, rgba(251,249,244,.45) 48%, rgba(251,249,244,.10) 68%, rgba(251,249,244,0) 85%);
  pointer-events: none;
  z-index: 0;
}
.scene-hero > * { position: relative; z-index: 1; }

/* =====================================================
 * v3 · Step 3 落地：21 幕深浅节奏表（决策文档 §5.2）
 * 4 层底色：米白 / 暖米 / 浅苔绿 / 深墨绿
 * 浅苔绿 × 3（chairman/pm/memory）· 深墨绿 × 3（climax/knowledge/cta）
 * ===================================================== */

/* ---- 浅苔绿底 · chairman / pm / memory ---- */
.scene-chairman,
.scene-pm,
.scene-memory {
  background: var(--c-moss) !important;
}
.scene-chairman .card,
.scene-pm .card,
.scene-memory .card {
  background: #FBFCF9;
  border-color: var(--c-moss-line);
}

/* ---- 决策文档 §5.2 暖米/米白交替 ---- */
.scene-vs,
.scene-portal,
.scene-discovery,
.scene-team,
.scene-mcp,
.scene-auto,
.scene-token {
  background: var(--c-cream);
}
.scene-org,
.scene-thoughts,
.scene-dste,
.scene-orbit,
.scene-skill,
.scene-security,
.scene-integration {
  background: var(--c-paper);
}

/* ---- 深墨绿底 · climax / knowledge / cta ---- */
.scene-climax,
.scene-knowledge,
.scene-cta {
  background: var(--c-forest) !important;
  color: #EDEDE5;
  position: relative; overflow: hidden;
}

/* 深底幕文字反白 */
.scene-climax h2,
.scene-knowledge h2,
.scene-cta h2 { color: #F5F3EA; }

/* 深底幕金色用深色版同款发光亮金 */
.scene-climax h2 em,
.scene-knowledge h2 em,
.scene-cta h2 em {
  background: linear-gradient(135deg, #E8C782 0%, #F0D58A 22%, #D4A84B 48%, #E8C782 72%, #F0D58A 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  font-style: normal;
}

.scene-climax p, .scene-climax .lede,
.scene-knowledge p, .scene-knowledge .lede,
.scene-cta p, .scene-cta .lede, .scene-cta .cta-sub {
  color: #B8BFB5;
}
.scene-climax .eyebrow,
.scene-knowledge .eyebrow,
.scene-cta .eyebrow {
  color: #8B9A8E;
}

/* 深底幕内的卡片 · 深墨绿次层 */
.scene-climax .card,
.scene-knowledge .card,
.scene-cta .card,
.scene-climax .tree-node,
.scene-climax .tree-leaf,
.scene-climax .tree-wrap {
  background: var(--c-forest-2);
  border-color: var(--c-forest-line);
  color: #DCDFD5;
}
.scene-climax .tree-layer,
.scene-climax .tree-title,
.scene-climax .tn-zh,
.scene-climax .tl-zh { color: #DCDFD5; }
.scene-climax .tl-ico,
.scene-climax .tn-ico { filter: brightness(1.3); }

/* 深底幕 chip */
.scene-climax .agent-chip-xl,
.scene-knowledge .agent-chip-xl,
.scene-cta .agent-chip-xl {
  background: var(--c-forest-2);
  border-color: var(--c-forest-line);
  color: #F5F3EA;
}
.scene-climax .agent-chip-xl .aci-zh,
.scene-knowledge .agent-chip-xl .aci-zh,
.scene-cta .agent-chip-xl .aci-zh { color: #F5F3EA; }

/* ---- 深底幕 ambient 图 · 右侧装饰（不再全幕铺满）---- */
.scene-climax::before {
  content: "";
  position: absolute; right: 0; top: 0; bottom: 0;
  width: min(42%, 560px);
  background-image: url('assets/ambient/v21-3b-climax-cosmic.png');
  background-size: cover; background-position: right center;
  background-repeat: no-repeat;
  opacity: .65;
  mask-image: linear-gradient(to left, #000 55%, transparent 100%);
  -webkit-mask-image: linear-gradient(to left, #000 55%, transparent 100%);
  pointer-events: none; z-index: 0;
}
.scene-knowledge::before {
  content: "";
  position: absolute; right: 0; top: 0; bottom: 0;
  width: min(42%, 560px);
  background-image: url('assets/ambient/v21-4b-knowledge-cosmic.png');
  background-size: cover; background-position: right center;
  background-repeat: no-repeat;
  opacity: .65;
  mask-image: linear-gradient(to left, #000 55%, transparent 100%);
  -webkit-mask-image: linear-gradient(to left, #000 55%, transparent 100%);
  pointer-events: none; z-index: 0;
}
.scene-climax > *, .scene-knowledge > * { position: relative; z-index: 1; }

/* CTA · 北斗大图全屏 + 深墨绿左渐隐保可读 */
.scene-cta::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url('assets/ambient/v21-5c-cta-cosmic.png');
  background-size: cover; background-position: center center;
  background-repeat: no-repeat;
  opacity: .85;
  pointer-events: none; z-index: 0;
}
.scene-cta::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(95deg, rgba(28,41,32,.95) 0%, rgba(28,41,32,.82) 28%, rgba(28,41,32,.50) 50%, rgba(28,41,32,.15) 72%, rgba(28,41,32,0) 92%);
  pointer-events: none; z-index: 0;
}
.scene-cta .cta-inner { position: relative; z-index: 1; }
.scene-cta .cta-note { color: #8B9A8E; }

/* ---- Discovery 撤掉 ambient 薄涂（opacity 0.06 看不见，决策文档 §7.4 要求「图片承担区隔」不是「薄涂背景」）---- */
/* Discovery 纯暖米底，ambient 不在此幕出现 */

/* ---- 深底 climax · 右侧 doing 终端：保持亮底但加暖金边框（"剧场聚光灯"）---- */
.scene-climax .doing {
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 0 0 1px rgba(232,199,130,.28),
    0 32px 80px -30px rgba(0,0,0,.6),
    0 14px 32px -14px rgba(0,0,0,.5);
  border-color: rgba(232,199,130,.35);
}

/* ---- 深底 climax · 左侧 tree-wrap 边界提亮（避免与背景融为一体）---- */
.scene-climax .tree-wrap.tree-v2 {
  background: var(--c-forest-2);
  border: 1px solid var(--c-forest-line);
  box-shadow:
    0 1px 0 rgba(232,199,130,.06) inset,
    0 24px 60px -30px rgba(0,0,0,.5);
}
.scene-climax .tree-node {
  background: rgba(36,51,40,.9);
  border-color: rgba(232,199,130,.2);
  color: #F5F3EA;
}
.scene-climax .tree-node .tn-zh { color: #F5F3EA; }
.scene-climax .tree-leaf {
  background: rgba(36,51,40,.7);
  border-color: rgba(232,199,130,.18);
}
.scene-climax .tree-leaf .tl-zh { color: #DCDFD5; }
.scene-climax .tree-leaf .tl-ico { color: #E8C782; }
.scene-climax .tree-node .tn-ico { color: #E8C782; }
/* tree-branch svg path 反白 */
.scene-climax .tree-branch path { stroke: rgba(232,199,130,.35); }
.scene-climax .tree-stem { background: linear-gradient(to bottom, transparent, rgba(232,199,130,.35), transparent); }

/* ---- 深底 cta · KPI 5 卡反白（深墨绿次层底 + 亮金数字）---- */
.scene-cta .cta-s {
  background: rgba(36,51,40,.72);
  border: 1px solid rgba(232,199,130,.22);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.scene-cta .cta-s .n {
  background: linear-gradient(135deg, #E8C782 0%, #F0D58A 22%, #D4A84B 48%, #E8C782 72%, #F0D58A 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.scene-cta .cta-s .n small {
  background: none; color: #B8BFB5;
  -webkit-text-fill-color: #B8BFB5;
}
.scene-cta .cta-s .l { color: #8B9A8E; }

/* ---- 深底 cta · ghost 按钮反白 ---- */
.scene-cta .btn.ghost {
  color: #F5F3EA;
  border-color: rgba(232,199,130,.35);
  background: transparent;
}
.scene-cta .btn.ghost:hover {
  background: rgba(232,199,130,.1);
  border-color: rgba(232,199,130,.55);
}

/* 响应式：手机上深底幕 ambient 收小 */
@media (max-width: 960px) {
  .scene-climax::before,
  .scene-knowledge::before {
    width: 60%; opacity: .4;
  }
  .scene-cta::before { background-size: cover; opacity: .65; }
  .scene-cta .cta-s { padding: 14px 10px; }
}

/* =====================================================
 * v3 · Step 4A：Perplexity 式章节扉页
 * 全屏通栏 · 上下渐隐 · 顶部幕号 + 下部导语
 * 插在关键幕间作呼吸带
 * ===================================================== */
.interlude {
  position: relative;
  width: 100%;
  height: clamp(340px, 48vw, 560px);
  overflow: hidden;
  background: var(--c-forest);
  margin: 0;
  padding: 0;
  display: flex; align-items: center;
}
.interlude::before {
  content: "";
  position: absolute; inset: 0;
  background-size: cover; background-position: center center;
  background-repeat: no-repeat;
  z-index: 0;
}
.interlude::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg,
    rgba(28,41,32,.82) 0%,
    rgba(28,41,32,.25) 18%,
    rgba(28,41,32,.15) 50%,
    rgba(28,41,32,.35) 82%,
    rgba(28,41,32,.92) 100%);
  pointer-events: none; z-index: 1;
}
.interlude-inner {
  position: relative; z-index: 2;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--rail);
  display: flex; flex-direction: column; gap: 14px;
}
.interlude-act {
  font-family: var(--f-mono);
  font-size: 11px; letter-spacing: .28em;
  color: #D4DDD6;
  text-transform: uppercase;
  opacity: .75;
}
.interlude-title {
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(34px, 4.2vw, 58px);
  line-height: 1.15;
  letter-spacing: -.015em;
  color: #F5F3EA;
  margin: 0;
  max-width: 820px;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.interlude-title em {
  font-style: normal;
  background: linear-gradient(135deg, #E8C782 0%, #F0D58A 22%, #D4A84B 48%, #E8C782 72%, #F0D58A 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.interlude-sub {
  font-family: var(--f-serif);
  font-size: clamp(14px, 1.2vw, 17px);
  line-height: 1.55;
  color: #B8BFB5;
  max-width: 620px;
  margin: 4px 0 0;
}
.interlude-rule {
  width: 56px; height: 1px;
  background: linear-gradient(90deg, rgba(232,199,130,.75), rgba(232,199,130,0));
  margin: 0 0 2px;
}

/* 四张扉页各自的背景图 */
.interlude-1::before { background-image: url('assets/interlude/chapter-1-origin.png'); }
.interlude-2::before {
  background-image: url('assets/interlude/chapter-2-navigation-v2.png');
  background-position: right center;
  background-size: cover;
}
.interlude-3::before { background-image: url('assets/interlude/chapter-3-orchestra.png'); background-position: right center; background-size: auto 120%; }
.interlude-4::before {
  background-image: url('assets/interlude/chapter-4-convergence-v2.png');
  background-position: right center;
  background-size: cover;
}

/* 扉页 2 和 4 的元素在中心偏右 · 覆盖默认遍坑遍渐隐 · 用左强右弱的横向渐变保证左侧文字可读 */
.interlude-2::after,
.interlude-4::after {
  background: linear-gradient(90deg,
    rgba(28,41,32,.88) 0%,
    rgba(28,41,32,.72) 18%,
    rgba(28,41,32,.42) 38%,
    rgba(28,41,32,.10) 60%,
    rgba(28,41,32,.05) 80%,
    rgba(28,41,32,.45) 100%);
}

/* 章节扉页与上下幕的连接 · 上下各减少 padding 避免双层空白 */
.scene + .interlude { margin-top: 0; }
.interlude + .scene { margin-top: 0; }

/* 手机端 · 扉页更矮，标题缩小 */
@media (max-width: 960px) {
  .interlude { height: clamp(280px, 60vw, 400px); }
  .interlude-title { font-size: clamp(26px, 6vw, 38px); }
  .interlude-sub { font-size: 14px; }
}

/* =====================================================
 * v3 · Step 4C：色家族串联
 * 浅苔绿 ↔ 深墨绿 同为森林绿族，添加交界金色分隔线
 * · 深底幕 → 亮底幕：亮金标调封线（收尾）
 * · 亮底幕 → 深底幕：亮金开线（开幕）
 * ===================================================== */
.scene-climax,
.scene-knowledge,
.scene-cta {
  border-top: 1px solid rgba(232,199,130,.18);
}
/* 苔绿 ↔ 深绿 直接相邻时的交界加细金线（仅 深底幕的 border-top 负责）*/
/* 逐幕深浅对比太突兑？加一层无像素的微草绿表层纹理（shadow-line）让浅苔绿幕与深墨绿幕之间有质感呼应 */
.scene-chairman::after,
.scene-pm::after,
.scene-memory::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(28,41,32,.18) 35%,
    rgba(232,199,130,.35) 50%,
    rgba(28,41,32,.18) 65%,
    transparent 100%);
  pointer-events: none; z-index: 2;
}
.scene-chairman,
.scene-pm,
.scene-memory { position: relative; }

/* 深底幕幕尾·木日式亮金封线·不再重复顶部边框 */
.scene-climax::after, .scene-knowledge::after { pointer-events: none; }


/* =====================================================
 * V4-Mobile · 移动端优化块 (集中管理·便于回滚)
 * P0 + P1 修复·在 V4 基础上专项迭代
 * ===================================================== */

/* ---------- P0-1 · Hero 巨字收敛 ---------- */
@media (max-width: 520px) {
  .hero-title {
    font-size: clamp(40px, 11vw, 52px);
    line-height: 1.15;
    margin-bottom: 20px;
  }
  .hero-sub {
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 28px;
  }
}

/* ---------- P0-2 · Hero 搜索打字机滴定高度 ---------- */
@media (max-width: 520px) {
  .hero-search {
    padding: 12px 18px;
    gap: 10px;
    /* 它会随长句换行·用 min-height + align-items 控制底线 */
    min-height: 48px;
    align-items: center;
  }
  .hero-search .s-text {
    font-size: 13px;
    line-height: 1.5;
    /* 允许换行但限两行·超过截断避免容器高度大幅跳变 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
  }
  .hero-search .s-caret {
    /* 光标跟随文本最后一行底部·不再取容器中点 */
    align-self: flex-end;
    margin-bottom: 3px;
  }
  .hero-search .s-dot {
    align-self: flex-start;
    margin-top: 7px;
  }
}

/* ---------- P0-3 · Hero KPI 金字组收紧 ---------- */
@media (max-width: 520px) {
  .hero-stats {
    gap: 14px;
    margin: 36px 0 0 0;
    padding: 20px 0;
  }
  .hero-stats .stat-num {
    font-size: 28px;
  }
  .hero-stats .stat-label {
    font-size: 11px;
    margin-top: 6px;
  }
}

/* ---------- P0-4 · 扇页大片留白压缩 ---------- */
/* 扇页在桌面 min-height: 100vh 营造电影感·移动端屟场太高 */
@media (max-width: 760px) {
  .interlude-scene,
  section[class*="interlude-"] {
    min-height: 70vh;
  }
  .interlude-inner {
    padding-block: 80px;
  }
}
@media (max-width: 520px) {
  .interlude-scene,
  section[class*="interlude-"] {
    min-height: 56vh;
  }
  .interlude-inner {
    padding-block: 56px;
  }
  .interlude-title {
    font-size: clamp(22px, 7vw, 30px);
  }
  .interlude-sub {
    font-size: 13px;
    line-height: 1.7;
  }
}

/* ---------- P1-5 · 章节标题中文断行友好 ---------- */
@media (max-width: 520px) {
  .scene-title h2,
  section h2,
  .scene-lede,
  .scene-title .lede,
  .org-node-cap {
    text-wrap: balance;
    /* 中文断行不断词·标点不独立成行 */
    word-break: keep-all;
    overflow-wrap: break-word;
  }
}

/* ---------- P1-6 · Hero 装饰星球背景重心内收 ---------- */
@media (max-width: 520px) {
  .scene-hero::before {
    /* 让金色霆球从右下向中移·不再半截出屏 */
    background-position: 72% center;
    background-size: cover;
    opacity: .85;
  }
  .scene-hero::after {
    /* 米白渐隐改为自上而下·保证文字可读 */
    background:
      linear-gradient(180deg,
        rgba(251,249,244,.92) 0%,
        rgba(251,249,244,.78) 35%,
        rgba(251,249,244,.45) 62%,
        rgba(251,249,244,.15) 85%,
        rgba(251,249,244,0) 100%);
  }
}

/* ---------- P1-7 · IPD Pipeline 横滚提示 ---------- */
@media (max-width: 760px) {
  .ipd-pipeline {
    /* 右边缘淑出·暗示“后面还有” */
    -webkit-mask-image: linear-gradient(to right, black 0%, black 88%, transparent 100%);
    mask-image: linear-gradient(to right, black 0%, black 88%, transparent 100%);
    scroll-snap-type: x mandatory;
    scroll-padding-left: 16px;
  }
  .ipd-pipeline > * {
    scroll-snap-align: start;
  }
}

/* ---------- P1-8 · Orbit 轨道图窧屏适配 ---------- */
/* 窧屏下 SVG 椭圆图的节点圆+文字整体被同比例缩小不可读；
   设计策略：移动端隐藏 SVG 装饰图，保留下方 7 张详情卡片作为主体。 */
@media (max-width: 520px) {
  .orbit-stage .orbit-svg-wrap,
  .orbit-stage svg {
    display: none;
  }
  .scene-orbit .scene-inner { padding-inline: 16px; }
}

/* ---------- P2-9 · Portal CTA 内边距收紧 ---------- */
@media (max-width: 520px) {
  .scene-portal .scene-inner,
  .scene-portal {
    padding-block: 56px;
  }
  .scene-portal .portal-cta,
  .scene-portal [class*="cta"] {
    gap: 14px;
  }
}

/* ---------- P2-10 · VS 支柱间距收紧 ---------- */
@media (max-width: 520px) {
  .vs-pillars {
    gap: 20px;
  }
  .vs-pillar {
    padding: 24px 20px;
  }
}

/* ---------- P2-11 · 正文字号微调 ---------- */
@media (max-width: 520px) {
  .scene-lede,
  .lede,
  .scene-body p {
    font-size: 15px;
    line-height: 1.7;
  }
}

/* ---------- P2-12 · 导航 Portal CTA 简化 ---------- */
@media (max-width: 420px) {
  .nav-cta .nav-cta-text,
  header .cta-text-long {
    display: none;
  }
}
