/* ============================================
   GE-WORLD — BP 路演单页 · 深色复古风(简洁版)
   ============================================ */

:root {
  --bg: #000000;          /* 纯黑 */
  --bg-alt: #0a0c0a;      /* 交替区块,仅轻微区分 */
  --panel: #101310;       /* 卡片 */
  --ink: #e8e5da;         /* 暖白文字 */
  --accent: #35c48d;      /* 磷光绿 */
  --accent-warm: #d08a3e; /* 暖橙 */
  --border: #232823;      /* 极细分割线 */
  --dim: #8b9188;
  --mono: "Courier New", "Consolas", "Lucida Console", monospace;
  --sans: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  /* 整页吸附:滚动总是停在某一屏,不会卡在半页 */
  scroll-snap-type: y mandatory;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  line-height: 1.7;
}

::selection {
  background: var(--accent);
  color: #0d100e;
}

/* ===== 左侧浮动导航条(纯条,无文字) ===== */
.rail {
  position: fixed;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 200;
  display: flex;
  flex-direction: column;
  gap: 22px;                  /* 条间距加大 */
}

.rail-bar {
  display: block;
  width: 22px;
  height: 3px;
  border-radius: 2px;
  background: var(--border);
  transition: width 0.2s, background 0.2s;
}

.rail-bar:hover,
.rail-bar.active {
  width: 34px;
  background: var(--accent);
}

/* ===== 封面 Hero:整幅地球日出 + 文字叠加 ===== */
.hero {
  position: relative;
  max-width: none;
  margin: 0;
  padding: 0;
  height: 100vh;              /* 封面图与屏幕同高 */
  display: flex;
  align-items: center;
  overflow: hidden;
  scroll-snap-align: start;
}

.hero-media {
  position: absolute;
  /* 顶满左、上边缘,右下留出过渡空间 */
  inset: 0 2vw 3vh 0;
}

.hero-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left top;
  /* 羽化中心偏向左上:左上保持完整,向右下平滑溶入黑色 */
  -webkit-mask-image: radial-gradient(ellipse 95% 90% at 28% 24%, #000 52%, transparent 100%);
  mask-image: radial-gradient(ellipse 95% 90% at 28% 24%, #000 52%, transparent 100%);
}

/* 右侧压暗,保证文字可读;左侧保留图片细节 */
.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(0, 0, 0, 0) 30%,
    rgba(0, 0, 0, 0.55) 60%,
    rgba(0, 0, 0, 0.92) 100%
  );
}

.hero-content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 2vw 0 6vw;      /* 内容推到最右侧 */
  text-align: right;
}

.hero-tag {
  font-family: var(--mono);
  font-size: 16px;
  letter-spacing: 4px;
  color: var(--accent-warm);
  margin-bottom: 24px;
}

.hero-title {
  font-family: var(--mono);
  font-size: clamp(38px, 5.6vw, 74px);  /* 保证一行放下 */
  white-space: nowrap;
  letter-spacing: 5px;
  line-height: 1.12;
  color: var(--accent);
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.7);
  margin-bottom: 14px;
}

.hero-subtitle {
  font-family: var(--sans);
  font-size: clamp(18px, 2.2vw, 26px);
  letter-spacing: 14px;      /* 中文字距拉开,与英文标题气质一致 */
  line-height: 1.4;
  color: var(--ink);
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.7);
  margin-bottom: 26px;
}

.hero-meta {
  font-family: var(--mono);
  font-size: 15px;
  letter-spacing: 3px;
  color: var(--dim);
}

/* ===== 通用区块:每块满一屏,内容垂直居中 ===== */
.section {
  max-width: 1060px;
  margin: 0 auto;
  min-height: 100vh;
  padding: 60px 6vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  scroll-snap-align: start;
}

.section-alt {
  max-width: none;
  background: var(--bg-alt);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.section-alt > * {
  width: 100%;
  max-width: 1060px;
  margin-left: auto;
  margin-right: auto;
}

.section-no {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 3px;
  color: var(--accent-warm);
  text-align: center;
  margin-bottom: 12px;
}

.section-title {
  font-family: var(--mono);
  font-size: 34px;
  letter-spacing: 5px;
  margin-bottom: 48px;
  text-align: center;
}
.section-title::after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin: 16px auto 0;
  background: var(--accent-warm);
}

.section-text {
  text-align: center;
  color: var(--dim);
  font-size: 18px;
  max-width: 760px;
  margin: 0 auto 52px;
}

/* ===== 引用(柏拉图洞穴隐喻):左文右图,占屏 80% ===== */
#origin,
#history,
#trend {
  max-width: none;
}

#origin > *,
#history > *,
#trend > * {
  width: 80vw;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

#origin .section-no,
#history .section-no,
#trend .section-no {
  font-size: 17px;
}

#origin .section-title,
#history .section-title,
#trend .section-title {
  font-size: 42px;
}

.origin-row {
  display: flex;
  align-items: center;
  gap: 64px;
  width: 100%;
  min-height: 64vh;
}

.quote {
  position: relative;
  flex: 1.15;
  min-width: 0;
  margin: 0;
  padding: 8px 0 0 32px;
}

.quote-mark {
  position: absolute;
  top: -56px;
  left: -24px;
  font-size: 110px;
  line-height: 1;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--accent);
  opacity: 0.35;
  user-select: none;
}

.quote-text {
  font-family: "Palatino Linotype", "Book Antiqua", Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: 24px;
  line-height: 2;
  color: #d6d2c5;
}

.quote-cite {
  margin-top: 30px;
  text-align: right;
  font-family: var(--mono);
  font-size: 17px;
  letter-spacing: 1px;
  color: var(--accent-warm);
}
.quote-cite cite { font-style: italic; }

/* ===== 现状(影子世界):左右二分 failure case ===== */
.fail-grid {
  display: flex;
  gap: 28px;
  width: 100%;
}

.fail-card {
  flex: 1;
  min-width: 0;
  background: var(--panel);
  border: 1px solid var(--border);
  border-top: 3px solid var(--accent-warm);
  border-radius: 6px;
  padding: 32px 30px;
}

.fail-no {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 3px;
  color: var(--accent-warm);
  margin-bottom: 14px;
}

.fail-card h3 {
  font-family: var(--mono);
  font-size: 26px;
  letter-spacing: 2px;
  margin-bottom: 6px;
}

.fail-sub {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 3px;
  color: var(--dim);
  margin-bottom: 20px;
}

/* failure case 演示位:微光流动,海市蜃楼感 */
.fail-media {
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 2px;
  color: var(--dim);
  border: 1px dashed var(--border);
  border-radius: 4px;
  margin-bottom: 20px;
  background: linear-gradient(
    110deg,
    rgba(53, 196, 141, 0.03) 30%,
    rgba(208, 138, 62, 0.08) 50%,
    rgba(53, 196, 141, 0.03) 70%
  );
  background-size: 220% 100%;
  animation: mirage 5s ease-in-out infinite;
}

@keyframes mirage {
  0%, 100% { background-position: 0% 0; }
  50%      { background-position: 100% 0; }
}

/* 放入视频后:去掉占位样式,视频铺满 */
.fail-media-video {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--border);
  background: none;
  animation: none;
  padding: 0;
  margin: 0 0 20px;           /* 清除 figure 默认 margin */
}

.fail-media-video video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left top;
  display: block;
}

.fail-media-video figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 4px 10px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 1.5px;
  color: var(--ink);
  background: rgba(0, 0, 0, 0.55);
  border-top-right-radius: 4px;
  pointer-events: none;
}

.fail-desc {
  font-size: 17px;
  line-height: 1.95;
  color: #c9ccc2;
}

.fail-outro {
  margin-top: 44px;
  text-align: center;
  font-family: var(--mono);
  font-size: 20px;
  letter-spacing: 2px;
  color: var(--accent);
}

.origin-media {
  flex: 1;
  min-width: 0;
}

.origin-img {
  display: block;
  width: 100%;
  max-height: 68vh;
  object-fit: contain;
  /* 四边羽化,溶入黑色背景 */
  -webkit-mask-image: radial-gradient(ellipse 88% 86% at 50% 50%, #000 60%, transparent 100%);
  mask-image: radial-gradient(ellipse 88% 86% at 50% 50%, #000 60%, transparent 100%);
}

/* ===== 卡片 ===== */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}

.card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-top: 3px solid var(--accent);
  border-radius: 6px;
  padding: 32px 26px;
  transition: border-color 0.2s;
}
.card:hover { border-color: var(--accent); }

.card-icon {
  font-size: 24px;
  color: var(--accent-warm);
}

.card h3 {
  font-family: var(--mono);
  font-size: 19px;
  letter-spacing: 2px;
  margin: 16px 0 12px;
}

.card p {
  font-size: 16px;
  color: var(--dim);
}

/* ===== 历史 · 三个时代(横向手风琴:hover 展开,其余收缩) ===== */
#history {
  max-width: none;
}

#history > * {
  width: 80vw;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

#history .section-no {
  font-size: 17px;
}

#history .section-title {
  font-size: 42px;
}

.era-list {
  display: flex;
  flex-direction: row;
  gap: 20px;
  width: 100%;
  height: 56vh;               /* 卡片 + 时间轴,整页不超一屏 */
  margin: 0 auto;
}

.era-col {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
  transition: flex 0.45s ease;
}

.era {
  position: relative;         /* demo 网格的定位基准 */
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 32px 28px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-top: 3px solid var(--accent);
  border-radius: 6px;
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.3s;
}
.era-col:hover .era { border-color: var(--accent); }

/* ===== 时间轴(每列底部一段,随卡片伸缩) ===== */
.era-tick {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.era-year {
  font-family: var(--mono);
  font-size: 17px;
  letter-spacing: 2px;
  color: var(--dim);
  white-space: nowrap;
  transition: color 0.3s;
}

.era-line {
  flex: 1;
  height: 2px;
  background: var(--border);
  min-width: 8px;
  transition: background 0.3s;
}

.era-col:hover .era-year { color: var(--accent); }
.era-col:hover .era-line { background: var(--accent); }

/* 悬停某列时:整列(卡片+时间轴段)展开,其余收缩成窄条(桌面端才启用) */
@media (hover: hover) and (min-width: 721px) {
  .era-list:hover .era-col { flex: 0 0 92px; }
  .era-list .era-col:hover { flex: 1 1 0; }

  /* 展开时才显示 demo 网格 */
  .era-list .era-col:hover .era-demos { display: grid; }

  /* 收缩态:序号 + 纵向英文副标,其余内容隐藏 */
  .era-list:hover .era-col:not(:hover) .era {
    align-items: center;
    gap: 28px;
    padding: 32px 0;
  }
  .era-list:hover .era-col:not(:hover) .era-body {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .era-list:hover .era-col:not(:hover) .era-body h3,
  .era-list:hover .era-col:not(:hover) .era-desc,
  .era-list:hover .era-col:not(:hover) .era-tags,
  .era-list:hover .era-col:not(:hover) .era-logos,
  .era-list:hover .era-col:not(:hover) .era-demos {
    display: none;
  }
  .era-list:hover .era-col:not(:hover) .era-sub {
    writing-mode: vertical-rl;   /* 英文纵向排列 */
    margin: 0;
    font-size: 15px;
    letter-spacing: 5px;
    opacity: 0.9;
  }
}

.era-num {
  font-family: var(--mono);
  font-size: 52px;
  font-weight: bold;
  line-height: 1;
  color: var(--accent);
  opacity: 0.85;
  white-space: nowrap;
}

.era-body h3 {
  font-family: var(--mono);
  font-size: 24px;
  letter-spacing: 2px;
  white-space: nowrap;
}

.era-sub {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 3px;
  color: var(--accent-warm);
  margin: 8px 0 14px;
  white-space: nowrap;
}

.era-desc {
  font-size: 18px;
  color: var(--dim);
  line-height: 1.9;
}

.era-tags {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 16px;
}

.era-tags span {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 1px;
  padding: 5px 14px;
  border: 1px solid var(--border);
  border-radius: 3px;
  color: var(--dim);
  white-space: nowrap;
}

/* ===== 展开态:左文右图(2×2 demo 网格,GIF 占左上) ===== */
.era-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.era-flex {
  flex: 1;                    /* 撑满卡片剩余高度 */
  display: flex;
  align-items: stretch;
  gap: 24px;
  margin-top: 14px;
}

/* 文字列宽度锁定为"三等分默认态"的宽度,
   展开/收起时文字和 logo 完全不位移 */
.era-text {
  flex: 0 0 auto;
  width: calc((80vw - 40px) / 3 - 56px);
  min-width: 0;
}

.era-demos {
  /* 绝对定位:顶端与卡片序号"01"齐平,底端贴卡片下缘,
     左缘 = 左内边距 + 文字列宽 + 间隙 */
  position: absolute;
  top: 32px;
  bottom: 32px;
  right: 28px;
  left: calc((80vw - 40px) / 3 - 4px);
  display: none;              /* 默认隐藏,仅 hover 展开时显示(见手风琴媒体查询) */
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
}

.era-demo {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  border: 1px solid var(--border);
}

.era-gif {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left top;  /* 宽屏 GIF 只裁右侧,保留左上角内容 */
  display: block;
}

.era-demo figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 4px 10px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 1.5px;
  color: var(--ink);
  background: rgba(0, 0, 0, 0.55);
  border-top-right-radius: 4px;
  pointer-events: none;
}

/* 单个大 demo(数字孪生卡片) */
.era-demos-single {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}

/* 空 demo 占位 */
.era-demo-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 2px;
  color: var(--dim);
  background: rgba(53, 196, 141, 0.04);
  border: 1px dashed var(--border);
  border-radius: 4px;
}

/* ===== 公司 logo 墙(图形学时代,黑底) ===== */
.era-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;                   /* 行距收紧 */
  margin-top: 18px;
}

.era-logos img {
  height: 18px;               /* 加高,行高一致 */
  width: auto;
  max-width: none;
  object-fit: contain;
  padding: 6px 10px;
  background: #000;
  border: 1px solid rgba(232, 229, 218, 0.75);  /* 白色边框 */
  border-radius: 4px;
  box-sizing: content-box;
  transition: transform 0.2s, border-color 0.2s;
}
.era-logos img:hover {
  transform: translateY(-2px);
  border-color: #fff;
}

/* 黑色图案的 logo 反色,黑底下才看得见;
   反色用外层 .chip 做黑底,避免 filter 把底也反白 */
.era-logos .chip {
  display: inline-flex;
  align-items: center;
  box-sizing: content-box;
  padding: 7px 11px;
  background: #000;
  border: 1px solid rgba(232, 229, 218, 0.75);  /* 白色边框 */
  border-radius: 4px;
  transition: transform 0.2s, border-color 0.2s;
}
.era-logos .chip:hover {
  transform: translateY(-2px);
  border-color: #fff;
}
.era-logos .chip img {
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
}
.era-logos .chip:hover img { transform: none; border: none; }
.era-logos img.inv { filter: invert(1); }

/* 收缩的卡片:描述与标签淡出(过渡用,隐藏逻辑在手风琴媒体查询内) */
.era-desc,
.era-tags,
.era-logos,
.era-demos {
  transition: opacity 0.3s ease;
}

/* ===== 市场数据 ===== */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 24px;
}

.stat {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 32px 20px;
  text-align: center;
}

.stat-num {
  font-family: var(--mono);
  font-size: 46px;
  font-weight: bold;
  color: var(--accent);
  line-height: 1.2;
}

.stat-unit {
  font-size: 22px;
  margin-left: 2px;
}

.stat-label {
  margin-top: 12px;
  font-size: 15px;
  color: var(--dim);
}

/* ===== 时间轴 ===== */
.timeline {
  list-style: none;
  max-width: 680px;
  margin: 0 auto;
  border-left: 2px solid var(--border);
  padding-left: 32px;
}

.timeline-item {
  position: relative;
  padding-bottom: 30px;
}
.timeline-item:last-child { padding-bottom: 0; }

.timeline-item::before {
  content: "";
  position: absolute;
  left: -39px;
  top: 6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--accent);
}

.timeline-date {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 2px;
  color: var(--accent-warm);
  display: block;
  margin-bottom: 6px;
}

.timeline-item p {
  font-size: 16.5px;
}

/* ===== 团队头像占位 ===== */
.card-team { text-align: center; }

.avatar {
  width: 72px;
  height: 72px;
  margin: 0 auto 6px;
  border-radius: 50%;
  border: 2px solid var(--accent);
  color: var(--accent);
  font-family: var(--mono);
  font-size: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== 融资计划 ===== */
.funding-box {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 40px;
  align-items: center;
  background: var(--panel);
  border: 1px solid var(--border);
  border-left: 4px solid var(--accent-warm);
  border-radius: 6px;
  padding: 44px 40px;
}

.funding-amount { text-align: center; }

.funding-num {
  font-family: var(--mono);
  font-size: 64px;
  font-weight: bold;
  color: var(--accent-warm);
  line-height: 1.1;
}

.funding-use {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
  font-size: 16px;
}

.funding-use b {
  font-family: var(--mono);
  color: var(--accent);
  margin-right: 8px;
}

.use-bar {
  display: block;
  height: 6px;
  width: var(--p);
  background: var(--accent);
  border-radius: 3px;
  margin-bottom: 6px;
  opacity: 0.85;
}

/* ===== 页脚 ===== */
.footer {
  padding: 56px 6vw 48px;
  text-align: center;
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 1px;
  background: var(--bg-alt);
  border-top: 1px solid var(--border);
  scroll-snap-align: start;
}

.footer-cta {
  font-size: 21px;
  letter-spacing: 3px;
  color: var(--accent);
  margin-bottom: 16px;
}

.footer-dim {
  color: var(--dim);
  margin-top: 10px;
}

/* ===== 技术路线 · 从条件到可交互世界 ===== */
.pipeline-section {
  max-width: none;
  padding-left: 3.5vw;
  padding-right: 3.5vw;
  background:
    linear-gradient(rgba(53, 196, 141, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(53, 196, 141, 0.035) 1px, transparent 1px),
    radial-gradient(circle at 50% 45%, #111912 0, #050706 42%, #000 76%);
  background-size: 34px 34px, 34px 34px, auto;
  overflow: hidden;
}

.pipeline-section .section-title { margin-bottom: 10px; }
.pipeline-section .section-no { font-size: 17px; }
.pipeline-section .section-title { font-size: 42px; }
.pipeline-lead {
  /* 自适应窗口宽度:全屏单行,半屏(约960px)自动换行 */
  max-width: min(84vw, 1000px);
  margin: 0 auto 38px;
  color: var(--dim);
  text-align: center;
  font-size: 17px;
}

.pipeline {
  width: 80vw;
  margin: 0 auto;
  display: flex;
  align-items: stretch;
  gap: 14px;
}

.pipeline-node {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  height: 290px;
  padding: 24px 18px 20px;
  background: rgba(13, 17, 14, 0.96);
  border: 1px solid var(--border);
  border-top: 3px solid var(--accent);
  outline: none;
  overflow: hidden;
  cursor: pointer;
  transition: border-color .2s, background .2s, transform .2s;
}
.pipeline-node:first-child,
.pipeline-node:last-child { border-radius: 5px; }
.pipeline-node:hover,
.pipeline-node:focus-visible {
  z-index: 3;
  border-color: var(--accent);
  background: #121a15;
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .55), 0 0 20px rgba(53, 196, 141, .07);
}

.node-index {
  position: absolute;
  top: 12px;
  right: 14px;
  font: 14px var(--mono);
  color: #536058;
}
.node-symbol {
  width: 72px;
  height: 72px;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
  border: 1px solid #493722;
  border-radius: 4px;
  background: #0b110d;
}
.node-symbol img {
  display: block;
  width: 46px;
  height: 46px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(57%) sepia(45%) saturate(894%) hue-rotate(348deg) brightness(94%) contrast(89%);
  opacity: .82;
}

.node-kicker { font: 13px var(--mono); letter-spacing: 2px; color: var(--accent-warm); white-space: nowrap; }
.pipeline-node h3 { margin: 10px 0 12px; font: bold 24px/1.5 var(--mono); letter-spacing: 2px; white-space: nowrap; }
.node-summary { padding: 0; list-style: none; font: 13px/2 var(--mono); letter-spacing: 1.5px; color: var(--dim); }
.node-summary li { position: relative; padding-left: 15px; white-space: nowrap; }
.node-summary li::before { content: "•"; position: absolute; left: 0; color: var(--accent-warm); }
.node-detail { max-height: 0; margin-top: 13px; opacity: 0; transform: translateY(8px); overflow: hidden; transition: max-height .3s ease, opacity .25s, transform .3s; }
.node-detail p { font-size: 17px; line-height: 1.7; color: #b9bdb5; }
.node-detail ul { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; list-style: none; }
.node-detail li { padding: 3px 8px; border: 1px solid #2d493b; font: 13px var(--mono); color: var(--accent); }

.world-optimizer {
  width: 80vw;
  min-height: 128px;
  margin: 24px auto 0;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #2b4236;
  border-radius: 5px;
  background: rgba(8, 12, 9, .9);
  outline: none;
  cursor: pointer;
  transition: border-color .2s, background .2s, transform .2s;
}
.world-optimizer p { color: #fff; font: 400 30px/1.2 Calibri, "Segoe UI", sans-serif; letter-spacing: 3px; }
.world-optimizer:hover,
.world-optimizer:focus-visible { border-color: var(--accent-warm); background: #11130f; transform: translateY(-2px); }
.world-optimizer .node-detail { display: none; }

.icon-credit { margin-top: 8px; font-size: 10px; color: #50564f; }
.icon-credit a { color: #69736b; text-decoration: none; }
.icon-credit a:hover { color: var(--accent); }

/* ===== 市场机会 ===== */
.market-section, .model-section, .funding-section { max-width: none; padding-left: 5vw; padding-right: 5vw; }
.market-section > *, .model-section > *, .funding-section > * { width: 80vw; max-width: none; margin-left: auto; margin-right: auto; }
.market-section .section-no, .model-section .section-no, .funding-section .section-no { font-size: 17px; }
.market-section .section-title, .model-section .section-title, .funding-section .section-title { margin-bottom: 32px; font-size: 42px; }
.market-intro { margin: -12px auto 24px; max-width: min(1100px, 100%); font-size: 16px; line-height: 1.75; color: var(--dim); text-align: center; }
.market-intro b { color: #e7eae4; font-weight: 600; }
.market-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 22px; align-items: start; }
.market-hero { position: relative; overflow: hidden; border: 1px solid var(--border); height: 100%; min-height: 560px; }
.market-hero img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.65) brightness(.68); }
.market-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.94),transparent 72%); }
.market-hero figcaption { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; }
.market-hero figcaption > p { font:13px var(--mono); letter-spacing:2px; color:var(--accent-warm); }
.market-hero h3 { margin:5px 0 8px; font:bold 27px/1.35 var(--mono); letter-spacing:2px; }
.market-hero figcaption span { font-size:15px; line-height:1.6; color:#c4c7c0; }
.market-groups { display: flex; flex-direction: column; gap: 26px; }
.market-group-head { grid-column: 1 / -1; }  /* 分组头部横跨3列(在market-paths网格内) */
.market-paths .market-group-head:not(:first-child) { margin-top: 14px; }  /* 恢复两组间26px间距:12px行距+14px */
.market-group-head > p { font: 13px var(--mono); letter-spacing: 2px; color: var(--accent-warm); }
.market-group-head h3 { margin: 4px 0 5px; font: bold 21px/1.3 var(--mono); letter-spacing: 1px; color: var(--accent); }
.market-group-head span { font-size: 13.5px; line-height: 1.55; color: var(--dim); }
.market-paths { display:grid; grid-template-columns:repeat(3, 1fr); grid-template-rows:auto 1fr auto 1fr; gap:12px; }  /* 两个卡片行均用1fr,强制两组等高 */
.market-paths article { position:relative; padding:16px 14px 14px 50px; border:1px solid var(--border); background:#0d120e; overflow:hidden; }
.market-paths article > span { position:absolute; left:16px; top:15px; font:bold 24px var(--mono); color:var(--accent); opacity:.7; }
.market-paths article p { font:12px var(--mono); letter-spacing:1.5px; color:var(--accent-warm); }
.market-paths h3 { margin:4px 0 7px; font:bold 18px/1.4 var(--mono); }
.market-paths b { display:block; font-size:14px; color:#c5c9c1; }
.market-paths small { display:block; margin-top:6px; font-size:13px; line-height:1.55; color:var(--dim); min-height:41px; }  /* 固定2行高,两组卡片等高对齐 */

/* ===== 市场卡片灯箱:点击卡片弹出引擎生态与商业模式 ===== */
.market-paths article.has-dialog { cursor: pointer; outline: none; transition: border-color .2s, background .2s; }
.market-paths article.has-dialog:hover,
.market-paths article.has-dialog:focus-visible { border-color: var(--accent); background: #10160f; }
.card-plus { position: absolute; right: 12px; bottom: 9px; font: 14px var(--mono); color: var(--dim); opacity: .55; transition: color .2s, opacity .2s; }
.market-paths article.has-dialog:hover .card-plus,
.market-paths article.has-dialog:focus-visible .card-plus { color: var(--accent); opacity: 1; }

.market-card-dialog {
  position: fixed;
  inset: 0;
  z-index: 450;
  padding: 6vh 4vw;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(7px) brightness(.5);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s, visibility .22s;
}
.market-dialog-panel {
  width: min(880px, 100%);
  max-height: 100%;
  overflow: auto;
  padding: 26px 30px;
  border: 1px solid #4d5e50;
  border-top: 3px solid var(--accent);
  background: rgba(7, 10, 8, .98);
  box-shadow: 0 24px 70px rgba(0,0,0,.9);
  transform: translateY(12px) scale(.985);
  transition: transform .25s ease;
}
.market-paths article.dialog-open .market-card-dialog { opacity: 1; visibility: visible; pointer-events: auto; }
.market-paths article.dialog-open .market-dialog-panel { transform: none; }
body.market-dialog-open { overflow: hidden; }

.market-dialog-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.market-dialog-head p { font: 12px var(--mono); letter-spacing: 2px; color: var(--accent-warm); }
.market-dialog-head h5 { margin-top: 4px; font: bold 24px/1.3 var(--mono); }
/* 弹窗内子页切换:引擎的商业格局 / 应用的商业格局 */
.market-dialog-tabs { display: flex; gap: 10px; margin-top: 8px; }
.market-dialog-tabs button { padding: 7px 16px; border: 1px solid var(--border); background: transparent; color: var(--dim); font: bold 16px/1.2 var(--mono); letter-spacing: 1px; cursor: pointer; transition: color .2s, border-color .2s, background .2s; }
.market-dialog-tabs button:hover { color: var(--ink); border-color: #4d5e50; }
.market-dialog-tabs button.active { border-color: var(--accent); color: var(--accent); background: rgba(53,196,141,.09); }
.market-dialog-page { display: none; }
.market-dialog-page.active { display: block; }
.market-dialog-head > span { font: 12px var(--mono); letter-spacing: 1px; color: var(--dim); white-space: nowrap; }

.market-dialog-body { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 20px; }
.engine-card { display: flex; flex-direction: column; padding: 16px 16px 14px; border: 1px solid var(--border); background: #0d120e; }
.engine-logo { display: flex; align-items: center; justify-content: center; height: 84px; margin: 0 0 12px; border: 1px solid rgba(232,229,218,.75); background: #000; }  /* 黑底logo板,与历史区块一致 */
.engine-logo img { max-width: 62%; max-height: 60px; object-fit: contain; }
/* 深色logo在黑底板上提亮(保持色相,仅提升亮度) */
.engine-logo img[src*="deepmind"] { filter: brightness(2.1); }
.engine-logo img[src*="baidu"] { filter: brightness(1.9); }
.engine-card h6 { font: bold 17px/1.3 var(--mono); }
.engine-model { margin: 6px 0 8px; font: bold 13px var(--mono); letter-spacing: 1px; color: var(--accent); }
.engine-card small { font-size: 13px; line-height: 1.65; color: var(--dim); }

.market-dialog-note { margin: 18px 0 0; padding: 12px 14px; border-left: 2px solid var(--accent); background: #090d0a; font-size: 14px; line-height: 1.7; color: #b9bdb6; }
.market-dialog-note b { color: var(--accent); font-weight: 600; }

/* ===== 页脚 FROM WORDS TO WORLDS · 空间智能灯箱 ===== */
/* 呼吸动画:明暗与暖橙光晕缓慢起伏,兼作可点击的视觉提示 */
@keyframes kicker-breathe {
  0%, 100% { opacity: .5;  text-shadow: 0 0 0 rgba(208,138,62,0); }
  50%      { opacity: 1;   text-shadow: 0 0 18px rgba(208,138,62,.55); }
}
.final-kicker { cursor: pointer; outline: none; animation: kicker-breathe 3.6s ease-in-out infinite; }
.final-kicker:hover, .final-kicker:focus-visible { color: #e8a45c; animation-play-state: paused; opacity: 1; }

/* 关键修复:页脚的 .final-footer > * 会把所有子元素强制 position:relative,
   该规则声明晚于 .market-card-dialog(同特异性)而胜出,导致灯箱留在文档流内
   撑开页脚(文字移位)且无法覆盖整页、点空白也关不掉。
   此处以更高特异性显式恢复 fixed 并提升层级:灯箱脱离文档流、覆盖整个视口,
   底页排版保持原样。
   过渡拆分:visibility 不参与时间轴(打开即时可见=立即可点击;关闭延迟 .22s
   隐藏=保留淡出),避免过渡未推进时(如动画时钟冻结环境)遮罩无法命中点击。 */
.final-footer .final-dialog { position: fixed; z-index: 450; transition: opacity .22s, visibility 0s .22s; }

/* 打开态:复用 .market-card-dialog 的遮罩淡入过渡,由 footer 上的 .dialog-open 驱动 */
.final-footer.dialog-open .final-dialog { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .22s, visibility 0s; }
.final-footer.dialog-open .final-dialog-panel { transform: none; }

/* 底图(image47,16:9)整幅铺满弹窗,文字叠印在压暗渐变上 */
.final-dialog-panel { position: relative; width: min(960px, 100%); padding: 0; overflow: hidden; background: #050805; aspect-ratio: 16/9; }
.final-dialog-media { position: absolute; inset: 0; margin: 0; }
.final-dialog-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* 双层渐变:左下强压暗保证文字可读,右上留出底图细节 */
.final-dialog-media::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(78deg, rgba(4,7,5,.94) 0%, rgba(4,7,5,.68) 45%, rgba(4,7,5,.25) 100%),
    linear-gradient(0deg, rgba(4,7,5,.88) 0%, transparent 48%);
}

.final-dialog-content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; padding: 30px 36px 32px; text-align: center; }
.final-dialog-content h3 { margin: 0 0 18px; font: bold 27px/1.35 var(--mono); letter-spacing: 1px; color: #f2f0e6; text-shadow: 0 2px 16px rgba(0,0,0,.75); }
.final-dialog-quote { font: 13px/1.6 var(--mono); color: #d3d7cf; text-shadow: 0 1px 10px rgba(0,0,0,.7); }
.final-dialog-quote::before { content: "❝ "; color: var(--accent); }
.final-dialog-quote-cn { margin-top: 3px; font-size: 12px; line-height: 1.7; color: var(--dim); text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.final-dialog-cite { margin-top: 12px; font: bold 14px var(--mono); letter-spacing: 1px; color: var(--accent); }

.final-dialog-hint { position: absolute; z-index: 2; top: 12px; right: 14px; font: 11px var(--mono); letter-spacing: 1px; color: rgba(232,229,218,.72); text-shadow: 0 1px 8px rgba(0,0,0,.85); }

@media (max-width: 760px) {
  /* 窄屏:底图改为顶部横幅,文字落到面板实体底上,避免 16:9 高度过矮叠不下文字 */
  .final-dialog-panel { aspect-ratio: auto; }
  .final-dialog-media { position: relative; height: 34vw; min-height: 180px; max-height: 300px; }
  .final-dialog-content { height: auto; padding: 22px 22px 26px; }
  .final-dialog-content h3 { font-size: 21px; }
  .final-dialog-quote { font-size: 12px; }
  .final-dialog-hint { top: 8px; }
}

@media (max-width: 760px) {
  .market-dialog-body { grid-template-columns: 1fr; }
  .market-dialog-head { flex-direction: column; align-items: flex-start; gap: 6px; }
  .tob-row { grid-template-columns: 1fr; gap: 6px; }
  .tob-foot { flex-direction: column; }
  .tob-stat { justify-content: center; }
  .arr-grid { grid-template-columns: 1fr; }
  .eco-grid { grid-template-columns: 1fr; }
  .eco-lead h6 { font-size: 20px; }
  .eco-cosmos { height: 260px; }
}
.market-progress { margin-top:20px; display:flex; align-items:center; gap:16px; font:13px var(--mono); letter-spacing:1px; color:var(--dim); }
.market-progress i { flex:1; height:1px; background:linear-gradient(90deg,var(--accent),var(--accent-warm)); }

/* ===== 商业模式 ===== */
.revenue-ladder { display:grid; grid-template-columns:1fr 42px 1fr 42px 1fr; align-items:stretch; }
.revenue-ladder article { position:relative; min-height:330px; padding:26px 24px; border:1px solid var(--border); border-top:3px solid var(--accent); background:#0b100c; }
.revenue-ladder article > span { font:13px var(--mono); letter-spacing:2px; color:var(--accent-warm); }
.revenue-ladder h3 { margin:12px 0 10px; font:bold 26px var(--mono); }
.revenue-ladder article > p { min-height:64px; font-size:16px; line-height:1.7; color:var(--dim); }
.revenue-ladder ul { margin-top:20px; display:grid; gap:9px; list-style:none; }
.revenue-ladder li { padding-left:15px; position:relative; font-size:15px; color:#c4c7c0; }
.revenue-ladder li::before { content:"•"; position:absolute; left:0; color:var(--accent); }
.revenue-ladder strong { display:block; margin-top:25px; padding-top:12px; border-top:1px solid var(--border); font:13px var(--mono); letter-spacing:2px; color:var(--accent); }
.ladder-arrow { align-self:center; text-align:center; font:27px var(--mono); color:var(--accent-warm); }

/* ===== 第7页 项目交付卡片灯箱(复用 market 弹窗结构) ===== */
.revenue-ladder article.has-dialog { cursor:pointer; outline:none; transition:border-color .2s, background .2s; }
.revenue-ladder article.has-dialog:hover,
.revenue-ladder article.has-dialog:focus-visible { border-color:var(--accent); background:#0d140f; }
.revenue-ladder article.has-dialog:hover .card-plus,
.revenue-ladder article.has-dialog:focus-visible .card-plus { color:var(--accent); opacity:1; }
.revenue-ladder article.dialog-open .market-card-dialog { opacity:1; visibility:visible; pointer-events:auto; }
.revenue-ladder article.dialog-open .market-dialog-panel { transform:none; }

.tob-goal { margin:18px 0 0; font:bold 17px/1.6 var(--mono); letter-spacing:.5px; color:var(--ink); }
.tob-body { display:grid; gap:10px; margin-top:16px; }
.tob-row { display:grid; grid-template-columns:132px 1fr; gap:14px; align-items:center; padding:13px 16px; border:1px solid var(--border); background:#0d120e; }
.tob-row h6 { font:bold 16px/1.4 var(--mono); }
.tob-row p { font-size:14px; line-height:1.7; color:#c4c7c0; }
.tob-foot { display:flex; gap:14px; align-items:stretch; margin-top:18px; }
.tob-stat { flex:0 0 auto; display:flex; align-items:baseline; gap:12px; padding:16px 22px; border:1px solid var(--border); border-top:3px solid var(--accent); background:#0b100c; }
.tob-stat b { font:bold 32px/1 var(--mono); color:var(--accent); }
.tob-stat b small { font-size:16px; font-weight:bold; }
.tob-stat span { font:12px var(--mono); letter-spacing:2px; color:var(--dim); }
.tob-foot .market-dialog-note { margin:0; flex:1; display:flex; align-items:center; }

/* ===== 第7页 平台订阅卡片灯箱(C端UGC平台 / ARR 规划) ===== */
.arr-title { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin:20px 0 0; font:bold 15px/1.4 var(--mono); letter-spacing:2px; color:var(--accent-warm); }
.arr-title small { font:12px var(--mono); letter-spacing:.5px; color:var(--dim); }
.arr-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:12px; }
.arr-card { display:flex; flex-direction:column; gap:8px; padding:16px; border:1px solid var(--border); border-top:3px solid var(--accent-warm); background:#0d120e; }
.arr-card span { font:12px var(--mono); letter-spacing:2px; color:var(--dim); }
.arr-card b { font:bold 30px/1 var(--mono); color:var(--accent); }
.arr-card b small { font-size:16px; font-weight:bold; }
.arr-card p { font-size:13px; line-height:1.6; color:#c4c7c0; }

/* ===== 第7页 世界生态卡片灯箱(留白设计) ===== */
/* 与前两张数据密集型灯箱形成节奏对比:大留白 + 虚线框隐喻"待书写" */
.eco-lead { margin:36px 0 0; text-align:center; }
.eco-lead > p { font:15px/1.9 var(--mono); letter-spacing:1.5px; color:var(--dim); }
.eco-lead h6 { margin:12px 0 0; font:bold 23px/1.7 var(--mono); color:var(--ink); }
.eco-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:36px 0 0; }
.eco-cell { padding:22px 16px; border:1px dashed #3a4a3f; text-align:center; }
.eco-cell b { display:block; font:bold 16px/1.3 var(--mono); color:var(--accent-warm); }
.eco-cell p { margin-top:8px; font-size:13.5px; line-height:1.7; color:var(--dim); }
/* 动态黑洞:Three.js 渲染容器(深空径向背景为 WebGL/CDN 不可用时的兜底) */
.eco-cosmos {
  position: relative;
  margin: 36px 0 0;
  height: 340px;
  overflow: hidden;
  border: 1px solid #14202c;
  background: radial-gradient(ellipse 62% 46% at 50% 48%, #0b1322 0%, #04070d 62%, #020409 100%);
  cursor: grab;
}
.eco-cosmos:active { cursor: grabbing; }
.eco-cosmos canvas { display: block; width: 100% !important; height: 100% !important; }
.eco-hint {
  position: absolute; right: 12px; bottom: 10px; z-index: 5;
  pointer-events: none;
  font: 11px var(--mono); letter-spacing: 1px; color: var(--dim);
  opacity: .55;
}
.eco-tail { margin:28px 0 2px; text-align:center; font-size:14px; line-height:1.9; color:var(--dim); }
.eco-tail b { color:var(--accent); font-weight:600; }
.moat-line { margin-top:24px; padding:15px 18px; display:grid; grid-template-columns:auto repeat(3,1fr); gap:12px; align-items:center; border:1px solid #324238; background:#080c09; }
.moat-line p { font:13px var(--mono); letter-spacing:2px; color:var(--accent-warm); }
.moat-line span { padding-left:13px; border-left:1px solid var(--border); font-size:14px; color:#b9bdb6; }

/* ===== 融资初稿 ===== */
.funding-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:38px; align-items:stretch; }
.round-ask { padding:36px 30px; display:flex; flex-direction:column; justify-content:center; border:1px solid #4a3925; border-top:3px solid var(--accent-warm); background:radial-gradient(circle at 50% 35%,#20170d,#0a0c0a 68%); text-align:center; }
.round-ask > p:first-child { font:14px var(--mono); letter-spacing:3px; color:var(--accent-warm); }
.round-ask h3 { margin:14px 0 8px; font:bold 66px/1 var(--mono); color:#fff; }
.round-ask h3 span { font-size:27px; color:var(--accent-warm); }
.round-ask h3 small { margin-left:5px; font-size:22px; color:var(--dim); }
.round-ask > b { font:14px var(--mono); letter-spacing:2px; color:var(--accent); }
.round-copy { margin-top:24px; font-size:15px; line-height:1.75; color:var(--dim); }
.funding-right { display:grid; grid-template-rows:1fr auto; gap:16px; }
.allocation-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.allocation-grid article { position:relative; padding:18px 18px 20px; border:1px solid var(--border); background:#0d120e; overflow:hidden; }
.allocation-grid article::after { content:""; position:absolute; left:0; bottom:0; width:var(--share); height:3px; background:var(--accent); }
.allocation-grid b { float:right; font:bold 27px var(--mono); color:var(--accent); }
.allocation-grid h4 { font:bold 18px var(--mono); }
.allocation-grid p { clear:both; padding-top:9px; font-size:14px; line-height:1.55; color:var(--dim); }
.funding-milestones { padding:14px 16px; border:1px solid #3e3527; background:#0a0c09; }
.funding-milestones > p { font:12px var(--mono); letter-spacing:2px; color:var(--accent-warm); }
.funding-milestones ol { margin-top:9px; display:grid; grid-template-columns:repeat(4,1fr); gap:8px; list-style:none; }
.funding-milestones li { font-size:13px; color:#b9bdb6; }
.funding-milestones li b { margin-right:6px; font:13px var(--mono); color:var(--accent); }

/* ===== 结尾 ===== */
.final-footer { position:relative; min-height:72vh; padding:10vh 6vw; display:flex; flex-direction:column; justify-content:center; overflow:hidden; background:radial-gradient(circle at 50% 45%,#112019 0,#060907 38%,#000 72%); }
.final-footer::before { content:""; position:absolute; width:42vw; height:42vw; left:50%; top:50%; border:1px solid rgba(53,196,141,.15); border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 90px rgba(53,196,141,.08); }
.final-footer > * { position:relative; z-index:1; }
.final-kicker { font:14px var(--mono); letter-spacing:5px; color:var(--accent-warm); }
.final-footer .footer-cta { margin:20px 0 34px; font:bold 35px/1.4 var(--mono); letter-spacing:4px; color:var(--accent); }
.final-contact { font:16px var(--mono); letter-spacing:2px; color:var(--ink); }
.final-contact span { margin:0 10px; color:var(--accent-warm); }

/* ===== 关于我们 · 团队与公司履历 ===== */
.about-section {
  max-width: none;
  padding-left: 5vw;
  padding-right: 5vw;
  background: var(--bg-alt);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.about-section > .section-no,
.about-section > .section-title,
.about-layout { width: 80vw; max-width: none; margin-left: auto; margin-right: auto; }
.about-section .section-no { font-size: 17px; }
.about-section .section-title { margin-bottom: 30px; font-size: 42px; }
.about-layout { display: grid; grid-template-columns: .92fr 1.08fr; gap: 5vw; }
.about-team { min-height: 0; padding-right: 4vw; border-right: 1px solid var(--border); display: flex; flex-direction: column; }
.about-column-head { margin-bottom: 20px; }
.about-column-head > p { font: 13px var(--mono); letter-spacing: 2px; color: var(--accent-warm); }
.about-column-head h3 { margin-top: 5px; font: bold 21px/1.4 var(--mono); letter-spacing: 1px; }
.people-list { display: flex; flex-direction: column; }
.person-row { padding: 12px 0; display: grid; grid-template-columns: 84px 1fr; gap: 17px; align-items: start; border-top: 1px solid var(--border); outline: none; cursor: default; transition: background .25s, padding .35s; }
.person-row .person-copy { padding: 4px 0 2px; }
.people-list .person-row:hover,
.people-list .person-row:focus-visible { padding-left: 10px; background: rgba(53,196,141,.035); }
.person-row img { width: 84px; height: 100px; object-fit: cover; object-position: center 25%; filter: saturate(.65) contrast(1.06); transition: filter .25s; }
.person-row:hover img,
.person-row:focus-visible img,
.person-row.expanded img { filter: saturate(.85) contrast(1.06); }
.person-row:first-of-type img { object-position: center 32%; }
.person-role { font: 13px/1.5 var(--mono); letter-spacing: 1px; color: var(--accent-warm); }
.person-row h4 { margin: 2px 0 4px; font: bold 21px/1.25 var(--mono); letter-spacing: 2px; }
.person-one-line { font-size: 14px; line-height: 1.6; color: var(--dim); }
.person-detail { max-height: 0; opacity: 0; overflow: hidden; transform: translateY(5px); transition: max-height .45s, opacity .25s, transform .35s; }
.person-row.expanded .person-detail { max-height: 760px; margin-top: 7px; opacity: 1; transform: none; }
.person-detail p { padding-left: 12px; border-left: 1px solid #365441; font-size: 14px; line-height: 1.55; color: #a5aba4; }
.person-year { font-weight: bold; color: var(--accent); }
.person-detail p + p { margin-top: 3px; }

.engine-stack { display: flex; flex-direction: column; }
.stack-layer { border: 1px solid var(--border); background: #0d120e; }
.go2-layer { position: relative; min-height: 430px; padding: 22px 24px 20px; border-top: 3px solid var(--accent-warm); outline: none; cursor: pointer; transition: border-color .2s, background .2s; }
.go2-layer:hover, .go2-layer:focus-visible { border-color: var(--accent-warm); background: #111610; }
.go2-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 13px; }
.go2-head h4 { font: bold 25px/1.2 var(--mono); letter-spacing: 3px; }
.go2-head > span { padding: 4px 7px; border: 1px solid var(--border); font: 12px var(--mono); color: var(--dim); }
.go2-mini-timeline { position: relative; margin-top: 8px; padding-left: 26px; }
.go2-mini-timeline::before { content: ""; position: absolute; left: 6px; top: 10px; bottom: 11px; width: 1px; background: #405044; }
.go2-mini-timeline article { position: relative; min-height: 66px; display: grid; grid-template-columns: 92px 1fr; gap: 10px; align-items: start; }
.go2-mini-timeline article::before { content: ""; position: absolute; left: -24px; top: 7px; width: 8px; height: 8px; border: 2px solid var(--accent-warm); border-radius: 50%; background: #0d120e; }
.go2-mini-timeline time { font: 13px/1.6 var(--mono); color: var(--accent-warm); }
.go2-mini-timeline b { font: bold 16px/1.5 var(--mono); color: var(--ink); }
.go2-mini-timeline p { font-size: 14px; line-height: 1.55; color: var(--dim); }
.go2-mini-timeline .is-now::before { background: var(--accent-warm); box-shadow: 0 0 10px rgba(208,138,62,.45); }
.go2-ending { margin-top: 3px; padding: 10px 12px; border-left: 2px solid var(--accent); background: #090d0a; font-size: 14px; line-height: 1.65; color: #b9bdb6; }
.go2-demo-dialog {
  position: fixed;
  inset: 0;
  z-index: 450;
  width: 100vw;
  height: 100vh;
  padding: 4vh 4vw;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(7px) brightness(.5);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s, visibility .22s;
}
.go2-dialog-panel {
  width: 100%;
  height: 100%;
  padding: 28px 32px 30px;
  border: 1px solid #4d5e50;
  border-top: 3px solid var(--accent-warm);
  background: rgba(7, 10, 8, .98);
  box-shadow: 0 24px 70px rgba(0,0,0,.9);
  transform: translateY(12px) scale(.985);
  transform-origin: center;
  transition: transform .25s ease;
}
.go2-layer.demo-open .go2-demo-dialog { opacity: 1; visibility: visible; pointer-events: auto; }
.go2-layer.demo-open .go2-dialog-panel { transform: none; }
body.go2-demo-open { overflow: hidden; }
.demo-dialog-head { height: 62px; margin-bottom: 18px; display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 1px solid var(--border); padding-bottom: 12px; }
.demo-dialog-head p { font: 13px var(--mono); letter-spacing: 2px; color: var(--accent-warm); }
.demo-dialog-head h5 { font: bold 27px/1.25 var(--mono); }
.demo-dialog-head > span { font: 13px var(--mono); letter-spacing: 1px; color: var(--dim); }
.go2-dialog-layout { height: calc(100% - 80px); display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(330px, .8fr); gap: 34px; }
.go2-showcase { min-width: 0; display: grid; grid-template-rows: minmax(0, 1fr) 155px auto; gap: 12px; }
.showcase-hero, .showcase-pair figure { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--border); background: #020403; }
.showcase-hero img, .showcase-pair img { display: block; width: 100%; height: 100%; object-fit: cover; }
.showcase-hero figcaption, .showcase-pair figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 13px; background: linear-gradient(transparent, rgba(0,0,0,.92)); }
.showcase-hero figcaption b, .showcase-pair figcaption b { display: block; font: 15px/1.5 var(--mono); letter-spacing: 1px; color: var(--accent-warm); }
.showcase-hero figcaption span, .showcase-pair figcaption span { font-size: 14px; color: #d3d5cf; }
.showcase-pair { display: grid; grid-template-columns: .8fr 1.2fr; gap: 12px; }
.showcase-pair figure:nth-child(2) img { object-fit: contain; }
/* 演示视频框:TOD/earth.mp4 自动播放,原题图作为视频封面(poster),视频铺满整个框 */
.showcase-video video { display: block; width: 100%; height: 100%; max-height: 100%; object-fit: cover; cursor: zoom-in; }
/* TOD 大框限高,防止视频把下方内容挤出弹窗 */
.showcase-hero.showcase-video { flex-shrink: 0; }
.go2-showcase .showcase-hero.showcase-video { min-height: 0; }
.go2-showcase .showcase-hero.showcase-video video { max-height: 46vh; }

/* ===== 视频放大灯箱:点击演示视频后全屏放大播放 ===== */
.video-lightbox {
  position: fixed;
  inset: 0;
  z-index: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5vh 5vw;
  background: rgba(0, 0, 0, .88);
  backdrop-filter: blur(10px) brightness(.55);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s, visibility .22s;
}

.video-lightbox.open { opacity: 1; visibility: visible; pointer-events: auto; }

.video-lightbox video,
.video-lightbox img {
  max-width: 100%;
  max-height: 100%;
  border: 1px solid var(--border);
  background: #000;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .85);
  cursor: zoom-out;
}

/* NATIVE ENGINE 配图:可点击放大 */
.showcase-image img { cursor: zoom-in; }
.showcase-summary { padding: 12px 15px; display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; align-items: center; border: 1px solid #314238; background: #0c120e; }
.showcase-summary p { font-size: 15px; line-height: 1.65; color: #b9beb7; }
.showcase-summary span { padding-left: 16px; border-left: 1px solid var(--accent); font: 13px/1.6 var(--mono); color: var(--accent); }
.go2-detail-timeline { position: relative; padding: 4px 0 4px 29px; border-left: 1px solid var(--border); }
.go2-detail-timeline::before { content: ""; position: absolute; left: 10px; top: 20px; bottom: 20px; width: 1px; background: #405044; }
.go2-detail-timeline article { position: relative; height: 25%; padding: 12px 8px 12px 0; display: grid; grid-template-columns: 92px 1fr; gap: 12px; align-content: center; border-bottom: 1px solid var(--border); }
.go2-detail-timeline article::before { content: ""; position: absolute; left: -23px; top: 50%; width: 9px; height: 9px; border: 2px solid var(--accent-warm); border-radius: 50%; background: #070a08; transform: translateY(-50%); }
.go2-detail-timeline time { font: 14px/1.5 var(--mono); color: var(--accent-warm); }
.go2-detail-timeline b { font: bold 17px/1.45 var(--mono); color: var(--ink); }
.go2-detail-timeline p { margin-top: 6px; font-size: 15px; line-height: 1.6; color: var(--dim); }
.go2-detail-timeline .is-now::before { background: var(--accent-warm); box-shadow: 0 0 10px rgba(208,138,62,.45); }

/* 节点详情子页 */
.stage-subpage[hidden] { display: none; }
.stage-subpage {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 7vh 7vw;
  background: rgba(0, 0, 0, .84);
  backdrop-filter: blur(9px) brightness(.42);
  animation: subpage-in .24s ease-out;
}
@keyframes subpage-in { from { opacity: 0; } to { opacity: 1; } }
.subpage-shell {
  width: min(1040px, 86vw);
  min-height: 64vh;
  max-height: 84vh;
  padding: 42px 54px 48px;
  display: flex;
  flex-direction: column;
  gap: 26px;
  align-items: stretch;
  background: #0b0f0c;
  border: 1px solid #365442;
  border-top: 3px solid var(--accent);
  box-shadow: 0 28px 90px #000;
}
.subpage-head { position: relative; padding-left: 62px; padding-bottom: 22px; border-bottom: 1px solid var(--border); }
.subpage-index { position: absolute; left: 0; top: 2px; display: block; font: bold 34px/1 var(--mono); color: var(--accent); opacity: .75; }
.subpage-kicker { font: 14px var(--mono); letter-spacing: 3px; color: var(--accent-warm); }
.subpage-head h2 { margin: 5px 0 6px; font: bold 30px/1.25 var(--mono); letter-spacing: 3px; }
.subpage-summary { font: 14px var(--mono); letter-spacing: 2px; color: var(--dim); }
.subpage-content { max-height: 60vh; padding: 0 8px 0 2px; overflow-y: auto; scrollbar-color: #355443 #0b0f0c; font-family: "SimSun", "Songti SC", "STSong", serif; }
.subpage-content p { font-size: 21px; line-height: 1.9; color: #c9ccc2; }
.subpage-content ul { margin-top: 26px; display: grid; gap: 12px; list-style: none; }
.subpage-content li { padding: 10px 14px; border-left: 2px solid var(--accent); background: #101611; font-size: 18px; color: var(--ink); }

.detail-section + .detail-section { margin-top: 30px; }
.subpage-content .detail-eyebrow { margin-bottom: 8px; font: 15px/1.6 var(--mono); letter-spacing: 2px; color: var(--accent-warm); }
.subpage-content h4 { margin-bottom: 12px; font: bold 25px/1.45 "SimSun", "Songti SC", "STSong", serif; letter-spacing: 1px; color: var(--ink); }
.subpage-content h5 { font: bold 19px/1.5 "SimSun", "Songti SC", "STSong", serif; letter-spacing: 1px; color: var(--ink); }
.subpage-content .detail-goal > p:last-child { font-size: 19px; line-height: 1.85; color: #b8bdb7; }
.detail-flow,
.constructor-flow {
  margin: 25px 0 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  font: 15px/1.5 var(--mono);
  color: var(--dim);
}
.detail-flow span,
.constructor-flow span { flex: 1; padding: 8px 6px; border: 1px solid #31483a; text-align: center; background: #0e1510; }
.detail-flow b,
.constructor-flow b { color: var(--accent); font-weight: normal; }
.method-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.method-grid article { padding: 13px 14px; border: 1px solid var(--border); background: #0e1310; }
.method-grid b { font: 16px/1.5 var(--mono); color: var(--accent); }
.method-grid article p { margin-top: 5px; font-size: 17px; line-height: 1.7; color: var(--dim); }

.state-code {
  margin: 22px 0 18px;
  padding: 20px 22px;
  overflow-x: auto;
  border: 1px solid #2a4033;
  border-left: 3px solid var(--accent);
  background: #050806;
  color: #c9ccc2;
  font: 15px/1.8 var(--mono);
  tab-size: 2;
}
.code-dim { color: #758078; }
.code-key { color: var(--accent-warm); }
.state-legend { display: flex; gap: 8px; flex-wrap: wrap; }
.state-legend span { padding: 7px 11px; border: 1px solid var(--border); font: 14px/1.5 var(--mono); color: var(--dim); }

.generation-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.generation-grid article { min-width: 0; padding: 16px 14px; border: 1px solid var(--border); background: #0e1310; }
.generation-grid article > span { font: 14px/1.5 var(--mono); letter-spacing: 1px; color: var(--accent-warm); }
.generation-grid h5 { margin: 8px 0; }
.generation-grid article p { font-size: 17px; line-height: 1.7; color: var(--dim); }
.generation-grid a { display: inline-block; margin-top: 12px; font: 14px/1.5 var(--mono); letter-spacing: 1px; color: var(--accent); text-decoration: none; }
.generation-grid a:hover { text-decoration: underline; }
.subpage-content .detail-note { margin-top: 19px; font: 14px/1.7 var(--mono); letter-spacing: 1px; color: #78827a; }

.detail-split { margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.detail-split article { padding: 16px; border: 1px solid var(--border); background: #0e1310; }
.detail-split article > p:last-child { margin-top: 7px; font-size: 17px; line-height: 1.75; color: var(--dim); }
.action-space { margin-top: 18px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.action-space b { margin-right: 6px; font: 15px/1.5 var(--mono); color: var(--accent-warm); }
.action-space span { padding: 6px 9px; border: 1px solid #30493a; font: 14px/1.5 var(--mono); color: var(--accent); }

.protocol-grid { margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.protocol-grid article { position: relative; padding: 14px 14px 14px 48px; border: 1px solid var(--border); background: #0e1310; }
.protocol-grid article > span { position: absolute; left: 14px; top: 13px; font: 18px var(--mono); color: var(--accent); opacity: .7; }
.protocol-grid article p { margin-top: 3px; font-size: 16px; line-height: 1.7; color: var(--dim); }
.rule-layers { margin-top: 18px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rule-layers b { margin-right: 7px; font: 15px/1.5 var(--mono); color: var(--accent-warm); }
.rule-layers span { padding: 7px 10px; background: #141711; border-bottom: 1px solid var(--accent-warm); font: 14px/1.5 var(--mono); color: var(--ink); }
.optimizer-paths { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.optimizer-paths > article { padding: 20px; border: 1px solid var(--border); background: #0e1310; }
.optimizer-paths h5 { margin-bottom: 10px; color: var(--accent-warm); }
.optimizer-paths article > p:not(.detail-eyebrow) { font-size: 17px; line-height: 1.8; color: #adb3ac; }
.optimizer-loop { margin: 18px 0; display: flex; align-items: center; gap: 6px; }
.optimizer-loop span { flex: 1; padding: 7px 4px; border: 1px solid #33483b; text-align: center; font: 14px/1.4 var(--mono); color: var(--accent); }
.optimizer-loop b { color: var(--accent-warm); font-weight: normal; }
.optimizer-roadmap { margin-top: 24px; padding: 20px; border-top: 1px solid #33483b; background: #090d0a; }
.optimizer-roadmap ol { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; list-style: none; }
.optimizer-roadmap li { display: grid; grid-template-columns: 34px 1fr; gap: 10px; padding: 11px 12px; border-left: 2px solid var(--accent-warm); background: #101511; font-size: 17px; line-height: 1.65; }
.optimizer-roadmap li b { font: 15px/1.6 var(--mono); color: var(--accent-warm); }
body.subpage-open { overflow: hidden; }
body.subpage-open > :not(.stage-subpage) { filter: brightness(.32); }

/* ===== 响应式 ===== */
@media (max-width: 720px) {
  /* 移动端内容可能超出一屏,放宽吸附避免截断 */
  html { scroll-snap-type: y proximity; }
  .rail { left: 10px; gap: 16px; }
  .hero { height: 100vh; }
  /* 移动端文字居中,压暗整幅图保证可读 */
  .hero-media::after {
    background: rgba(0, 0, 0, 0.55);
  }
  .hero-content { text-align: center; padding: 0 6vw; }
  .hero-title { font-size: clamp(22px, 6.8vw, 34px); }
  .hero-subtitle { font-size: 17px; letter-spacing: 8px; }
  .origin-row { flex-direction: column-reverse; gap: 36px; }
  .origin-img { max-height: 34vh; }
  .quote { padding-left: 20px; }
  .quote-text { font-size: 19px; }
  .quote-cite { font-size: 14px; }
  #origin .section-title { font-size: 30px; }
  .quote-mark { left: -12px; font-size: 80px; top: -44px; }
  /* 移动端:恢复纵向堆叠,关闭手风琴 */
  .era-list { flex-direction: column; height: auto; gap: 24px; }
  .era-col { flex: none; }
  .era { flex-direction: row; align-items: flex-start; gap: 20px; padding: 22px 20px; cursor: default; }
  .era-num { font-size: 34px; }
  .era-body h3 { font-size: 19px; white-space: normal; }
  .era-sub { white-space: normal; }
  .era-desc { font-size: 15px; }
  .era-flex { flex-direction: column; }
  .era-text { width: auto; }
  /* 移动端无 hover:回到文档流,直接显示 */
  .era-demos {
    position: static;
    width: 100%;
    height: 44vh;
    display: grid;
  }
  #history .section-title,
  #trend .section-title { font-size: 30px; }
  .fail-grid { flex-direction: column; }
  .fail-card h3 { font-size: 21px; }
  .fail-desc { font-size: 15px; }
  .fail-outro { font-size: 16px; }
  .pipeline-section { padding-top: 70px; padding-bottom: 70px; overflow: visible; }
  .pipeline-section .section-title { font-size: 28px; }
  .pipeline-lead { margin-bottom: 28px; }
  .pipeline { width: 88vw; flex-direction: column; }
  .pipeline-node { flex: none; width: 100%; height: auto; min-height: 205px; border-radius: 0; }
  .pipeline-node:first-child { border-radius: 5px 5px 0 0; }
  .pipeline-node:last-child { border-radius: 0 0 5px 5px; }
  .pipeline-node:hover, .pipeline-node:focus-visible { flex: none; transform: none; }
  .world-optimizer { width: 88vw; min-height: 110px; padding: 22px; }
  .world-optimizer p { font-size: 25px; }
  .about-section { padding-top: 70px; padding-bottom: 70px; }
  .about-section > .section-no, .about-section > .section-title, .about-layout { width: 88vw; }
  .about-section .section-title { font-size: 30px; }
  .about-layout { grid-template-columns: 1fr; gap: 42px; }
  .about-team { padding-right: 0; border-right: 0; }
  .people-list { height: auto; }
  .person-row { grid-template-columns: 82px 1fr; }
  .person-row img { width: 82px; height: 104px; }
  .person-row.expanded .person-detail { max-height: 760px; }
  .go2-layer { min-height: auto; }
  .go2-demo-dialog { padding: 3vh 3vw; }
  .go2-dialog-panel { padding: 20px; overflow-y: auto; }
  .go2-dialog-layout { height: auto; grid-template-columns: 1fr; }
  .go2-showcase { grid-template-rows: 240px auto auto; }
  .go2-showcase .showcase-hero.showcase-video video { max-height: none; }
  .showcase-pair { grid-template-columns: 1fr; }
  .showcase-pair figure { height: 180px; }
  .showcase-summary { grid-template-columns: 1fr; }
  .showcase-summary span { padding: 12px 0 0; border-left: 0; border-top: 1px solid var(--accent); }
  .go2-detail-timeline article { min-height: 150px; height: auto; grid-template-columns: 72px 1fr; }
  .stage-subpage { padding: 74px 5vw 5vh; align-items: flex-start; overflow-y: auto; }
  .subpage-shell { width: 100%; min-height: auto; padding: 30px 24px 36px; gap: 24px; }
  .subpage-head { padding-left: 48px; padding-bottom: 18px; }
  .subpage-index { font-size: 28px; }
  .subpage-head h2 { font-size: 28px; }
  .subpage-content { padding: 0; }
  .method-grid, .generation-grid, .detail-split, .protocol-grid, .optimizer-paths, .optimizer-roadmap ol { grid-template-columns: 1fr; }
  .detail-flow, .constructor-flow { align-items: stretch; flex-direction: column; }
  .detail-flow b, .constructor-flow b { transform: rotate(90deg); align-self: center; }
  .optimizer-loop { align-items: stretch; flex-direction: column; }
  .optimizer-loop b { transform: rotate(90deg); align-self: center; }
  .market-section, .model-section, .funding-section { padding-top: 70px; padding-bottom: 70px; }
  .market-section > *, .model-section > *, .funding-section > * { width: 88vw; }
  .market-section .section-title, .model-section .section-title, .funding-section .section-title { font-size: 30px; }
  .market-layout { height: auto; grid-template-columns: 1fr; }
  .market-hero { height: 54vh; min-height: 0; }
  .market-paths { grid-template-columns: 1fr; grid-template-rows: none; }  /* 单列时不约束行高 */
  .market-progress { align-items: stretch; flex-direction: column; text-align: center; }
  .market-progress i { flex: none; width: 1px; height: 28px; align-self: center; }
  .revenue-ladder { grid-template-columns: 1fr; }
  .revenue-ladder article { min-height: auto; }
  .ladder-arrow { padding: 7px 0; transform: rotate(90deg); }
  .moat-line { grid-template-columns: 1fr; }
  .moat-line span { padding: 9px 0 0; border-left: 0; border-top: 1px solid var(--border); }
  .funding-layout { grid-template-columns: 1fr; }
  .allocation-grid { grid-template-columns: 1fr; }
  .funding-milestones ol { grid-template-columns: 1fr 1fr; }
  .final-footer { min-height: 78vh; }
  .final-footer .footer-cta { font-size: 27px; }
  .funding-box { grid-template-columns: 1fr; gap: 28px; padding: 32px 24px; }
}

/* ===== 主题切换开关(深/浅色合并后共用,浅色适配见 style-light.css) ===== */
.theme-toggle {
  position: fixed;
  top: 18px;
  right: 20px;
  z-index: 90;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 5px 7px;
  font: 11px var(--mono);
  letter-spacing: 2px;
  color: var(--dim);
  background: rgba(16, 19, 16, .72);
  border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer;
  backdrop-filter: blur(6px);
  transition: border-color .25s ease;
}

.theme-toggle:hover { border-color: var(--accent); }

.theme-toggle .tt-option {
  padding: 4px 12px;
  border-radius: 999px;
  transition: background .25s ease, color .25s ease;
}

.theme-toggle .tt-option.active {
  background: var(--accent);
  color: #0d100e;
}

@media (max-width: 760px) {
  .theme-toggle { top: 12px; right: 12px; font-size: 10px; letter-spacing: 1px; }
  .theme-toggle .tt-option { padding: 3px 9px; }
}
