/* ============================================================
   V2 二次优化增量样式（在 official.css 之后加载）
   作品库筛选/排序/分页 · 动态示意播放器 · 版本画廊 · 成果时间线
   业务页组件 · 负责人卡 · 研究索引
   ============================================================ */

/* ---------- 作品库筛选栏 ---------- */
.filterbar { display: flex; flex-direction: column; gap: 14px; margin-bottom: 30px; }
.filterbar-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.filterbar-label { font-size: 12.5px; color: var(--muted, #8b93a3); min-width: 58px; letter-spacing: 0.06em; }
.fchip { appearance: none; border: 1px solid var(--line, rgba(255,255,255,.14)); background: transparent; color: var(--ink, #e8ecf3);
  font: inherit; font-size: 13px; padding: 7px 14px; border-radius: 999px; cursor: pointer; transition: all .18s ease; }
.fchip:hover { border-color: rgba(255,255,255,.4); }
.fchip[aria-pressed="true"] { background: var(--ink, #e8ecf3); color: #0b0d12; border-color: var(--ink, #e8ecf3); font-weight: 600; }
.filterbar-sort { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.filterbar-per { font-size: 12.5px; color: var(--muted, #8b93a3); }
.works-count { font-size: 13px; color: var(--muted, #8b93a3); margin: 0 0 16px; }
.works-count b { color: var(--ink, #e8ecf3); }

/* ---------- 分页 ---------- */
.work-pagerbar { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 38px; }
.pbtn { appearance: none; border: 1px solid var(--line, rgba(255,255,255,.14)); background: transparent; color: var(--ink, #e8ecf3);
  font: inherit; font-size: 13.5px; padding: 8px 16px; border-radius: 10px; cursor: pointer; }
.pbtn[disabled] { opacity: .35; cursor: default; }
.pbtn:not([disabled]):hover { border-color: rgba(255,255,255,.4); }
.pinfo { font-size: 13px; color: var(--muted, #8b93a3); }
.works-grid.empty-empty { display: none; }

/* ---------- 动态示意播放器 ---------- */
.player { position: relative; border-radius: 16px; overflow: hidden; background: #000; }
.player video { display: block; width: 100%; height: auto; }
.player .player-cover { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.35)); border: 0; cursor: pointer; width: 100%; }
.player .player-cover .play-disc { width: 76px; height: 76px; border-radius: 50%; background: rgba(232,236,243,.92);
  display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 30px rgba(0,0,0,.45); transition: transform .18s ease; }
.player .player-cover:hover .play-disc { transform: scale(1.06); }
.player .player-cover svg { width: 30px; height: 30px; fill: #0b0d12; margin-left: 4px; }
.player .player-cover .cover-hint { position: absolute; bottom: 14px; left: 16px; color: #fff; font-size: 13px;
  background: rgba(0,0,0,.55); padding: 6px 12px; border-radius: 999px; }
.player.playing .player-cover { display: none; }
.media-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--ink, #e8ecf3);
  border: 1px solid var(--line, rgba(255,255,255,.16)); border-radius: 999px; padding: 5px 12px; margin-right: 8px; }
.media-badge .dot { width: 7px; height: 7px; border-radius: 50%; background: #7dd3fc; }
.media-badge.silent .dot { background: #94a3b8; }

/* ---------- 逐图审核正文 ---------- */
.asset-story { margin: 18px 0; padding: 18px; border: 1px solid rgba(125,211,252,.25); border-radius: 12px; overflow-wrap: anywhere; }
.asset-story h3 { margin: 0 0 12px; font-size: 17px; }
.asset-story h4 { margin: 12px 0 6px; font-size: 14px; color: #9bd9f7; }
.asset-story p { line-height: 1.8; white-space: normal; }

/* ---------- 版本与组成画廊 ---------- */
.ver-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; margin-top: 18px; }
.ver-card { border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 12px; overflow: hidden; background: rgba(255,255,255,.03); }
.ver-card img { display: block; width: 100%; height: auto; cursor: zoom-in; }
.ver-card figcaption { font-size: 12px; color: var(--muted, #8b93a3); padding: 8px 10px; border-top: 1px solid var(--line, rgba(255,255,255,.08)); }

/* ---------- 卡片日期与媒介标注 ---------- */
.wc-date { font-size: 11.5px; color: var(--muted, #8b93a3); letter-spacing: .02em; }
.wc-flags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.wc-flag { font-size: 11px; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--line, rgba(255,255,255,.14)); color: var(--muted, #9aa3b2); }
.wc-flag.anim { color: #7dd3fc; border-color: rgba(125,211,252,.4); }

/* ---------- 成果与案例：时间线 ---------- */
.tl { position: relative; margin: 34px 0 8px; padding-left: 26px; }
.tl::before { content: ""; position: absolute; left: 7px; top: 6px; bottom: 6px; width: 2px; background: var(--line, rgba(255,255,255,.14)); }
.tl-node { position: relative; padding: 0 0 38px; }
.tl-node::before { content: ""; position: absolute; left: -26px; top: 7px; width: 12px; height: 12px; border-radius: 50%;
  background: #0b0d12; border: 2px solid #7dd3fc; }
.tl-node.dim::before { border-color: #64748b; }
.tl-period { font-size: 13px; letter-spacing: .08em; color: #7dd3fc; margin-bottom: 6px; }
.tl-node.dim .tl-period { color: #94a3b8; }
.tl-tag { display: inline-block; font-size: 11.5px; padding: 3px 10px; border-radius: 999px; margin-left: 10px; vertical-align: 1px; }
.tl-tag.owner-early { background: rgba(148,163,184,.14); color: #b7c0cd; }
.tl-tag.transition { background: rgba(125,211,252,.14); color: #9bd9f7; }
.tl-tag.current { background: rgba(52,211,153,.14); color: #7ce3b8; }
.tl-node h3 { font-size: 19px; font-weight: 650; margin: 8px 0 10px; }
.tl-node p { color: var(--muted, #aab3c0); font-size: 14.5px; line-height: 1.85; max-width: 720px; margin: 0 0 12px; }
.tl-refs { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.tl-refs li { font-size: 13px; color: var(--muted, #9aa3b2); }
.tl-refs a { color: #9bd9f7; }

/* ---------- 成果与案例：三分类 ---------- */
.case-type-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 30px 0 10px; align-items: stretch; }
.case-type { border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 16px; padding: 26px 24px; background: rgba(255,255,255,.03); display: flex; flex-direction: column; }
.case-type .tlink, .case-type p { align-self: flex-start; }
.case-type h3 { font-size: 17px; margin: 0 0 10px; }
.case-type p { font-size: 13.5px; color: var(--muted, #aab3c0); line-height: 1.8; margin: 0 0 14px; flex: 1; }
.case-type .tlink { font-size: 13.5px; }
@media (max-width: 1100px) { .case-type-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .case-type-grid { grid-template-columns: 1fr; } }

/* ---------- 智矩之声·公司新闻：收起式动态（点开展开，标注时间） ---------- */
.news-fold-list { display: grid; gap: 12px; margin: 26px 0 8px; }
.news-fold { border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 14px;
  background: rgba(255,255,255,.03); transition: border-color .3s; }
.news-fold:hover { border-color: rgba(110, 200, 255, .4); }
.news-fold summary { display: flex; align-items: baseline; gap: 16px; padding: 16px 20px;
  cursor: pointer; list-style: none; }
.news-fold summary::-webkit-details-marker { display: none; }
.news-fold--flat summary { cursor: default; }
.news-fold--flat:hover { border-color: var(--line, rgba(255,255,255,.12)); }
.nf-date { flex: none; min-width: 92px; font-size: 12.5px; font-weight: 700; color: var(--accent, #67e8f9);
  letter-spacing: .04em; }
.nf-title { font-size: 15px; font-weight: 600; color: var(--ink, #e8ecf3); line-height: 1.55; }
.news-fold summary::after { content: "＋"; margin-left: auto; flex: none; align-self: center;
  font-size: 15px; color: var(--accent-2, #a78bfa); }
.news-fold[open] summary::after { content: "－"; }
.news-fold--flat summary::after { content: none; }
.nf-body { padding: 0 56px 16px 128px; }
.nf-body p { margin: 0 0 8px; font-size: 13.5px; line-height: 1.85; color: var(--muted, #aab3c0); }
.nf-body .news-card-meta { margin-bottom: 0; }
.news-fold[open] { border-color: rgba(110, 200, 255, .35); }
@media (max-width: 640px) {
  .news-fold summary { flex-wrap: wrap; gap: 6px 12px; padding: 14px 16px; }
  .nf-date { min-width: 0; }
  .nf-title { flex-basis: 100%; }
  .nf-body { padding: 0 16px 14px; }
}

/* ---------- 业务页组件 ---------- */
.biz-flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 26px 0; }
.biz-flow .bf { border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 14px; padding: 20px 18px; background: rgba(255,255,255,.03); }
.biz-flow .bf b { display: block; font-size: 13px; letter-spacing: .08em; color: #7dd3fc; margin-bottom: 8px; }
.biz-flow .bf ul { margin: 0; padding-left: 18px; color: var(--muted, #aab3c0); font-size: 13.5px; line-height: 1.8; }
@media (max-width: 900px) { .biz-flow { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .biz-flow { grid-template-columns: 1fr; } }
.demo-box { border: 1px dashed rgba(125,211,252,.45); border-radius: 14px; padding: 22px 24px; margin: 24px 0; position: relative; }
.demo-box .demo-tag { position: absolute; top: -11px; left: 18px; background: #0b0d12; color: #7dd3fc; font-size: 12px;
  border: 1px solid rgba(125,211,252,.45); padding: 2px 12px; border-radius: 999px; }
.demo-box table { width: 100%; border-collapse: collapse; font-size: 13px; color: var(--muted, #b6bfcc); }
.demo-box th, .demo-box td { border-bottom: 1px solid var(--line, rgba(255,255,255,.1)); padding: 8px 10px; text-align: left; }
.demo-box th { color: var(--ink, #e8ecf3); font-weight: 600; }
.boundary-box { border-left: 3px solid rgba(148,163,184,.5); background: rgba(148,163,184,.07); border-radius: 0 12px 12px 0;
  padding: 16px 20px; font-size: 13.5px; color: var(--muted, #aab3c0); line-height: 1.85; margin: 24px 0; }
.boundary-box b { color: var(--ink, #e8ecf3); }
.mockui { border: 1px solid var(--line, rgba(255,255,255,.16)); border-radius: 12px; overflow: hidden; font-size: 13px; }
.mockui .mockbar { background: rgba(255,255,255,.06); padding: 9px 14px; color: var(--muted, #9aa3b2); font-size: 12.5px;
  border-bottom: 1px solid var(--line, rgba(255,255,255,.1)); }
.mockui .mockbody { padding: 18px 16px; display: grid; grid-template-columns: 130px 1fr; gap: 12px; }
.mockui .mockside { border-right: 1px solid var(--line, rgba(255,255,255,.08)); padding-right: 12px; color: var(--muted, #9aa3b2); }
.mockui .mockitem { padding: 7px 10px; border-radius: 8px; }
.mockui .mockitem.on { background: rgba(125,211,252,.12); color: #9bd9f7; }
.mockui .mockmain .wave { height: 74px; border-radius: 8px; background:
  repeating-linear-gradient(90deg, rgba(125,211,252,.5) 0 2px, transparent 2px 7px, rgba(125,211,252,.22) 7px 9px, transparent 9px 15px);
  margin-bottom: 12px; position: relative; }
.mockui .mockmain .seg { position: absolute; top: 0; bottom: 0; border: 1.5px solid #34d399; border-radius: 4px; }
.mockui .mocklegend { color: var(--muted, #9aa3b2); font-size: 12.5px; }
@media (max-width: 600px) { .mockui .mockbody { grid-template-columns: 1fr; } .mockui .mockside { border-right: 0; display: flex; gap: 6px; flex-wrap: wrap; } }

/* ---------- 负责人卡 ---------- */
.leader-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 20px; margin-top: 30px; }
.leader-main { border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 18px; padding: 30px 30px 26px; background: rgba(255,255,255,.03); }
.leader-side { display: flex; flex-direction: column; gap: 20px; }
.leader-name-row { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-bottom: 4px; }
.leader-name-row h2 { font-size: 26px; margin: 0; }
.leader-name-row span { color: var(--muted, #8b93a3); font-size: 13.5px; }
.leader-role { display: inline-block; font-size: 12.5px; color: #9bd9f7; border: 1px solid rgba(125,211,252,.35);
  padding: 4px 12px; border-radius: 999px; margin: 8px 0 16px; }
.leader-main > p.intro { color: var(--muted, #b6bfcc); font-size: 14.5px; line-height: 2; margin: 0; }
.leader-block h3 { font-size: 15px; margin: 0 0 10px; }
.leader-block ul { margin: 0; padding-left: 18px; color: var(--muted, #aab3c0); font-size: 13.5px; line-height: 1.9; }
.leader-card { border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 16px; padding: 22px 24px; background: rgba(255,255,255,.03); }
.leader-card h3 { font-size: 15px; margin: 0 0 12px; }
.ach-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ach-list li { font-size: 13.5px; line-height: 1.6; }
.ach-list .t { color: var(--ink, #e8ecf3); font-weight: 550; }
.ach-list .m { color: var(--muted, #8b93a3); font-size: 12.5px; }
.ach-list a { color: #9bd9f7; }
.edu-fold { border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 14px; background: rgba(255,255,255,.02); }
.edu-fold summary { cursor: pointer; padding: 14px 18px; font-size: 13.5px; color: var(--muted, #aab3c0); list-style: none; }
.edu-fold summary::-webkit-details-marker { display: none; }
.edu-fold summary::before { content: "› "; color: #7dd3fc; }
.edu-fold[open] summary::before { content: "⌄ "; }
.edu-fold .edu-body { padding: 2px 20px 16px; }
.edu-fold .edu-body ul { margin: 0; padding-left: 18px; color: var(--muted, #9aa3b2); font-size: 13px; line-height: 2; }
@media (max-width: 900px) { .leader-grid { grid-template-columns: 1fr; } }

/* ---------- 研究索引 ---------- */
.rs-controls { display: flex; gap: 10px; flex-wrap: wrap; margin: 18px 0 8px; }
.rs-year { font-size: 18px; font-weight: 650; color: var(--ink, #e8ecf3); margin: 40px 0 6px; scroll-margin-top: 90px; }
.rs-item { border-bottom: 1px solid var(--line, rgba(255,255,255,.08)); padding: 13px 2px; }
.rs-item .raw { font-size: 13px; color: var(--muted, #aab3c0); line-height: 1.75; }
.rs-item .raw a { color: #9bd9f7; word-break: break-all; }
.rs-item .meta { margin-top: 5px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.rs-role { font-size: 11px; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--line, rgba(255,255,255,.14)); color: var(--muted, #9aa3b2); }
.rs-role.first { color: #7ce3b8; border-color: rgba(52,211,153,.35); }
.rs-role.part { color: #d8b4fe; border-color: rgba(216,180,254,.3); }
.rs-item.merged-note .meta { color: #94a3b8; font-size: 12px; }

/* ---------- 批注系统（notes.js） ---------- */
.note-panel { position: fixed; left: 14px; bottom: 14px; z-index: 999; display: flex; align-items: center; gap: 8px;
  background: rgba(11,13,18,.92); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; padding: 8px 12px;
  backdrop-filter: blur(8px); box-shadow: 0 8px 30px rgba(0,0,0,.4); flex-wrap: wrap; max-width: calc(100vw - 28px); }
.note-toggle { appearance: none; border: 1px solid rgba(255,255,255,.24); background: transparent; color: #e8ecf3;
  font: inherit; font-size: 13px; padding: 6px 14px; border-radius: 999px; cursor: pointer; }
.note-toggle.on { background: #e8ecf3; color: #0b0d12; font-weight: 600; }
.note-counter { font-size: 12px; color: #9aa3b2; }
.note-act { appearance: none; border: 1px solid rgba(255,255,255,.24); background: transparent; color: #e8ecf3;
  font: inherit; font-size: 12.5px; padding: 5px 12px; border-radius: 999px; cursor: pointer; }
.note-act:hover { border-color: rgba(255,255,255,.5); }
.note-act.note-warn { color: #fca5a5; border-color: rgba(252,165,165,.4); }
.note-host { position: relative; }
.note-mode-on .note-btn { display: inline-flex; }
.note-btn { display: none; appearance: none; margin-top: 10px; border: 1px solid rgba(125,211,252,.5);
  background: rgba(125,211,252,.1); color: #9bd9f7; font: inherit; font-size: 12.5px;
  padding: 5px 12px; border-radius: 999px; cursor: pointer; }
.note-btn:hover { background: rgba(125,211,252,.2); }
.note-box { display: none; margin-top: 10px; border: 1px dashed rgba(125,211,252,.45); border-radius: 10px; padding: 10px 12px; }
.note-box-label { font-size: 11.5px; color: #7dd3fc; margin-bottom: 6px; }
.note-ta { width: 100%; min-height: 92px; resize: vertical; background: rgba(255,255,255,.05); color: #e8ecf3;
  border: 1px solid rgba(255,255,255,.16); border-radius: 8px; padding: 8px 10px; font: inherit; font-size: 13.5px; line-height: 1.7; }
.note-ta:focus { outline: 1px solid rgba(125,211,252,.6); }
.note-status { font-size: 11.5px; color: #94a3b8; margin-top: 4px; min-height: 14px; }
.note-copyfallback { position: fixed; inset: 0; z-index: 1000; background: rgba(0,0,0,.6);
  display: flex; align-items: center; justify-content: center; padding: 20px; }
.ncf-card { background: #12151c; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; padding: 18px;
  width: min(560px, 92vw); display: flex; flex-direction: column; gap: 10px; }
.ncf-card b { color: #e8ecf3; font-size: 13.5px; }
.ncf-card textarea { width: 100%; height: 180px; background: rgba(255,255,255,.05); color: #cbd5e1;
  border: 1px solid rgba(255,255,255,.16); border-radius: 8px; padding: 8px; font-size: 12px; }
.ncf-card > div { display: flex; gap: 8px; }
a.work-card > .note-btn { margin: 0 24px 20px; width: calc(100% - 48px); justify-content: center; }
a.work-card > .note-box { margin: 0 24px 20px; }
.work-figure > .note-btn, .player > .note-btn { margin: 12px auto 0; width: calc(100% - 32px); justify-content: center; }
.work-figure > .note-box, .player > .note-box { margin: 12px; }
.ver-card > .note-btn { margin: 0 10px 10px; width: calc(100% - 20px); justify-content: center; }
.ver-card > .note-box { margin: 0 10px 10px; }

/* ============================================================
   V3 增量：首页人体声音图谱 / 科技成果转化（音豆纪） / 联系页
   ============================================================ */

/* 身体场景默认自然展开；脚本成功增强后才启用单卡舞台。 */
.zs-layer.zs-body svg { height: min(82vh, 740px); width: auto; overflow: visible;
  transform-origin: 0 0; transition: transform 1.05s cubic-bezier(.25, .8, .25, 1); will-change: transform; }
/* 整组推进镜头（星河/洞察章）：短过渡软化章节切换，跟随手感对齐 V1 的 scrub */
.sound-enhanced .zs-layers { transition: transform .55s cubic-bezier(.25, .7, .3, 1); }
@media (prefers-reduced-motion: reduce) { .sound-enhanced .zs-layers { transition: none; } }
.zs-body .bs-mark { opacity: 0; transition: opacity .55s ease; }
.zs-body .bs-mark.lit { opacity: 1; }
.zs-body .bs-ring { fill: none; stroke: rgba(103, 232, 249, .5); stroke-width: 1.2; }
.zs-body .bs-dot { fill: #67e8f9; }
/* 器官亮点形态：仅激活模块显示（先于弧线出现）——贴纸图不压人体 */
.zs-body .bs-organ-g { opacity: 0; transform: scale(.72); transform-box: fill-box; transform-origin: center;
  transition: opacity .5s ease, transform .55s cubic-bezier(.22, .9, .28, 1); }
.zs-body .bs-mark.is-active .bs-organ-g { opacity: 1; transform: scale(1); }
.zs-body .bs-organ-g path { fill: none; stroke: rgba(103, 232, 249, .92); stroke-width: 1.8; stroke-linecap: round;
  filter: drop-shadow(0 0 4px rgba(103, 232, 249, .55)); }
.zs-body .bs-organ-g--hot path { stroke: rgba(244, 114, 182, .92); filter: drop-shadow(0 0 4px rgba(244, 114, 182, .5)); }
.zs-body .bs-organ-g .gl-dot { fill: #67e8f9; filter: drop-shadow(0 0 4px rgba(103, 232, 249, .9)); }
.zs-body .bs-organ-g--hot .gl-dot { fill: #f472b6; filter: drop-shadow(0 0 4px rgba(244, 114, 182, .85)); }
/* 声波弧线：仅激活模块显示并起伏（延迟 .25s = 器官先现、弧线随后） */
.zs-body .bs-wave path { fill: none; stroke: rgba(103, 232, 249, .85); stroke-width: 1.6; stroke-linecap: round; opacity: 0; }
.zs-body .bs-mark.is-active .bs-wave path { opacity: 1; animation: bsWave 2s ease-in-out .25s infinite; }
.zs-body .bs-mark--hot .bs-ring { stroke: rgba(244, 114, 182, .55); }
.zs-body .bs-mark--hot .bs-dot { fill: #f472b6; }
.zs-body .bs-mark--hot .bs-wave path { stroke: rgba(244, 114, 182, .9); }
.zs-body .bs-mark.lit .bs-ring { filter: drop-shadow(0 0 5px rgba(103, 232, 249, .75)); }
.zs-body .bs-mark.lit .bs-dot { filter: drop-shadow(0 0 7px rgba(103, 232, 249, .9)); }
.zs-body .bs-mark.is-active .bs-ring { filter: drop-shadow(0 0 7px rgba(103, 232, 249, .95)); }
.zs-body .bs-mark--hot.lit .bs-ring { filter: drop-shadow(0 0 6px rgba(244, 114, 182, .8)); }
.zs-body .bs-mark--hot.lit .bs-dot { filter: drop-shadow(0 0 8px rgba(244, 114, 182, .9)); }
.zs-body .bs-mark--hot.is-active .bs-ring { filter: drop-shadow(0 0 8px rgba(244, 114, 182, .95)); }
@keyframes bsWave { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
.voyage-bs { position: relative; width: 100%; max-width: 560px; z-index: 2; margin: 24px 0; }
.voyage-bs-head h2 { font-size: clamp(24px, 2.4vw, 32px); color: #e8ecf3; margin: 0 0 8px; }
.bs-steps { display: none; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.bs-steps button { min-height: 44px; border: 1px solid rgba(125,211,252,.3); border-radius: 999px; padding: 6px 12px; background: #101b2e; color: #c4d3e8; font: inherit; font-size: 12px; cursor: pointer; }
.bs-steps button[aria-current] { border-color: #67e8f9; color: #c4f5ff; background: #17364b; }
[data-sound-scene] [hidden] { display: none !important; }
[data-sound-scene] .sc-track, [data-sound-scene] .sc-progress { pointer-events: none; }
.voyage-bs-head .kicker { margin-bottom: 6px; }
.voyage-bs-lede { font-size: 14px; color: rgba(232, 234, 242, .62); margin-bottom: 14px; }
.voyage-bs .bs-mods { display: flex; flex-direction: column; gap: 10px; }
.voyage-bs .bs-mod { display: grid; grid-template-columns: clamp(96px, 34%, 168px) minmax(0, 1fr); gap: 16px; align-items: center;
  text-decoration: none; color: inherit; background: rgba(13, 17, 30, .78); border: 1px solid rgba(140, 170, 255, .16);
  border-radius: 16px; padding: 10px 14px 10px 10px; backdrop-filter: blur(6px);
  opacity: 1; transform: none;
  transition: border-color .3s, box-shadow .3s; }
.voyage-bs .bs-mod.bs-in { opacity: 1; transform: none; }
.voyage-bs .bs-mod.bs-active { border-color: rgba(110, 200, 255, .55); box-shadow: 0 8px 30px rgba(40, 110, 255, .18); }
.voyage-bs .bs-mod:hover { border-color: rgba(110, 200, 255, .5); }
/* 器官星座面板（替换原贴纸图）：深色玻璃底 + 方形星座画布 */
.bs-organ { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 1 / 1; flex: none;
  border-radius: 14px; background: rgba(255, 255, 255, .02); overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(140, 170, 255, .18), 0 4px 12px rgba(0, 0, 0, .35); }
.bs-copy { min-width: 0; }
.bs-name { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 15.5px; font-weight: 700; color: #e8ecf3; }
.bs-organ-tag { font-style: normal; font-size: 11px; font-weight: 600; color: #9bd9f7;
  border: 1px solid rgba(125, 211, 252, .38); background: rgba(125, 211, 252, .1);
  padding: 1px 8px; border-radius: 999px; white-space: nowrap; }
.bs-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  margin-top: 3px; font-size: 12.5px; line-height: 1.55; color: #aab6cc; }
.bs-go { display: inline-block; margin-top: 3px; font-size: 12px; color: #57c8ff; }
.voyage-bs-note { margin-top: 12px; font-size: 11.5px; color: rgba(154, 168, 196, .75); }

/* —— 器官星座连线图（源自独立板块实验室 03 v4.2；心/肺/鼻/说话为 OpenMoji CC BY-SA 4.0 轮廓转星座）—— */
.bc-svg { width: 100%; height: 100%; display: block; }
.bc-svg .gl-dot { fill: #fff; filter: drop-shadow(0 0 3px rgba(103, 232, 249, .95));
  transform-box: fill-box; transform-origin: center; }
.bc-svg .gl-dot.big { fill: #e8c8ff; filter: drop-shadow(0 0 6px rgba(192, 132, 252, 1)); }
.bc-svg .org-line { fill: none; stroke-width: 2.4; stroke-dasharray: .7 7;
  stroke-linecap: round; stroke-linejoin: round; }
.bc-svg .org-line.thin { stroke-width: 1.6; stroke-dasharray: .6 6; }
.bc-svg .org-soft { fill: rgba(129, 140, 248, .07); }
.bc-svg .air { fill: none; stroke: rgba(192, 132, 252, .85); stroke-width: 1.7; stroke-dasharray: 1 7;
  stroke-linecap: round; filter: drop-shadow(0 0 3px rgba(192, 132, 252, .85)); }
.bc-svg .slab { font-size: 10.5px; fill: #9fb2d8; letter-spacing: 1px; }
.bc-svg .slab-line { stroke: rgba(159, 178, 216, .5); stroke-width: .8; }
/* 星等差异：半径分层（与实验室 v4.2 同款） */
.bs-organ .gl-dot:nth-of-type(3n+2) { r: 1.7px; }
.bs-organ .gl-dot:nth-of-type(5n+3) { r: 2.6px; }

/* 入场序列（仅增强模式激活卡）：星点渐次点亮 → 连线浮现 → 标签收尾。
   总长 ≤1.0s，落在 v2.js 入场驻留 DWELL(1150ms) 窗口内——门控保证序列播完才切下一模块。 */
.sound-enhanced .bs-mod .bc-svg .gl-dot,
.sound-enhanced .bs-mod .bc-svg .org-line,
.sound-enhanced .bs-mod .bc-svg .org-soft,
.sound-enhanced .bs-mod .bc-svg .air,
.sound-enhanced .bs-mod .bc-svg .slab,
.sound-enhanced .bs-mod .bc-svg .slab-line { opacity: 0; }
.sound-enhanced .bs-mod.bs-active .bc-svg .gl-dot {
  animation: bcStarIn .34s cubic-bezier(.22, 1, .36, 1) both;
  animation-delay: calc(min(var(--i, 0), 20) * 20ms); }
.sound-enhanced .bs-mod.bs-active .bc-svg .org-soft { animation: bcFade .5s ease-out .3s both; }
.sound-enhanced .bs-mod.bs-active .bc-svg .org-line { animation: bcFade .35s ease-out .45s both; }
.sound-enhanced .bs-mod.bs-active .bc-svg .air { animation: bcFade .4s ease-out .55s both; }
.sound-enhanced .bs-mod.bs-active .bc-svg .slab,
.sound-enhanced .bs-mod.bs-active .bc-svg .slab-line { animation: bcFade .3s ease-out .7s both; }
@keyframes bcStarIn { from { opacity: 0; transform: scale(.2); } to { opacity: 1; transform: none; } }
@keyframes bcFade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .sound-enhanced .bs-mod .bc-svg .gl-dot, .sound-enhanced .bs-mod .bc-svg .org-line,
  .sound-enhanced .bs-mod .bc-svg .org-soft, .sound-enhanced .bs-mod .bc-svg .air,
  .sound-enhanced .bs-mod .bc-svg .slab, .sound-enhanced .bs-mod .bc-svg .slab-line { animation: none; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .voyage-bs .bs-mod { opacity: 1; transform: none; transition: none; }
  .zs-layer.zs-body svg { transition: none; }
  .zs-body .bs-organ-g { display: none; }
  .zs-body .bs-mark.lit .bs-wave path { animation: none; opacity: .55; }
}
/* motion-off（?static / 减动效）：模块静态可读，不再占位于绝对层；镜头与器官线稿停用，弧线静态可见 */
.motion-off .voyage-bs { position: static; transform: none; width: auto; max-width: 560px; margin: 18px 0 26px; opacity: 1; pointer-events: auto; }
.motion-off .zs-layer.zs-body svg { transition: none; }
.motion-off .zs-body .bs-organ-g { display: none; }
.motion-off .zs-body .bs-mark.lit .bs-wave path { animation: none; opacity: .55; }
[data-sound-scene]:not(.sound-enhanced) .sc-stage { position: static; height: auto; overflow: visible; padding: 72px 0 32px; display: block; }
[data-sound-scene]:not(.sound-enhanced) .zs-frame::before { left: 0; right: 0; }
[data-sound-scene]:not(.sound-enhanced) .sc-wrap { grid-template-columns: 1fr; max-width: 780px; }
[data-sound-scene]:not(.sound-enhanced) .sc-track,
[data-sound-scene]:not(.sound-enhanced) .sc-progress { display: none; }
[data-sound-scene]:not(.sound-enhanced) .sc-captions { height: auto; display: grid; gap: 32px; padding: 0; }
[data-sound-scene]:not(.sound-enhanced) .sc-captions::before { display: none; }
[data-sound-scene]:not(.sound-enhanced) .sc-cap { position: static; transform: none; opacity: 1; display: block; pointer-events: auto; }
[data-sound-scene]:not(.sound-enhanced) .zs-frame { height: auto; opacity: 1; transform: none; }
[data-sound-scene]:not(.sound-enhanced) .zs-layers { height: auto; width: min(74vw, 420px); display: flex; flex-direction: column; gap: 32px; transform: none; }
[data-sound-scene]:not(.sound-enhanced) .zs-layer { position: relative; inset: auto; opacity: 1; transform: none; }
[data-sound-scene]:not(.sound-enhanced) .zs-body svg { height: auto; width: 100%; }
[data-sound-scene]:not(.sound-enhanced) .bs-mark { opacity: 1; }
.sound-enhanced .voyage-bs { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 42%; max-height: calc(100vh - 140px); overflow: auto; margin: 0; opacity: 0; visibility: hidden; pointer-events: none; }
.sound-enhanced .voyage-bs.on { opacity: 1; visibility: visible; pointer-events: auto; }
.sound-enhanced .bs-steps { display: flex; }
.sound-enhanced.sound-active .sc-cap:nth-child(2) { visibility: hidden; }
.sound-enhanced .zs-frame { grid-column: 2; }
.sound-enhanced .bs-mod.bs-active { animation: bsCardIn .45s ease-out; }
@keyframes bsCardIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (max-width: 900px) {
  .voyage-bs { margin: 24px 0; }
  .voyage-bs .bs-mod { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
  .bs-organ { width: 64px; height: 64px; }
  .voyage-bs-note { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .voyage-bs *, .zs-body svg { animation: none !important; transition: none !important; }
}

.brand-mark { display: inline-flex; align-items: center; justify-content: center; background: transparent; border-radius: 9px; padding: 6px 10px; }
.brand-mark img { object-fit: contain; max-height: 46px; width: auto; }
.nav-logo .brand-mark img { height: 46px; }
.sound-preview { min-width: 0; border: 1px solid rgba(103,232,249,.35); border-radius: 22px; padding: 28px; background: linear-gradient(135deg,#14263c,#18162b); }
.sound-preview p { margin: 12px 0; }
.sound-wave { font-size: clamp(18px,3vw,32px); color: #67e8f9; letter-spacing: 3px; overflow: hidden; white-space: nowrap; }
.tf-card .tf-project-cover { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 30px; gap: 16px; background: radial-gradient(ellipse at 80% 20%,#234663,transparent),linear-gradient(135deg,#101b33,#271936); }
.project-wordmark { font-size: 38px; font-weight: 700; color: #d8f8ff; letter-spacing: .12em; }
.tf-project-cover > span:last-child { font-size: 14px; color: #b8cbdc; }

/* --- 科技成果转化 · 项目列表页 --- */
.tf-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 430px)); gap: 20px; margin: 6px 0 24px; justify-content: start; }
@media (max-width:600px) { .tf-list { grid-template-columns: minmax(0,1fr); } .tf-overview { gap:24px; } }
.ct-info dd, .ct-lead { overflow-wrap: anywhere; min-width: 0; }
.footer-brand .brand-mark img { margin-bottom: 0; }
.footer-brand .brand-mark { margin-bottom: 18px; }
.footer-brand .brand-mark img { height: 104px; max-height: 104px; }
.tf-card { display: flex; flex-direction: column; border: 1px solid rgba(110, 200, 255, .3);
  border-radius: 16px; text-decoration: none; color: inherit; background: rgba(13, 17, 30, .6); overflow: hidden;
  transition: border-color .3s, box-shadow .3s, transform .3s; }
.tf-card:hover { border-color: rgba(110, 200, 255, .6); box-shadow: 0 10px 34px rgba(40, 110, 255, .16); transform: translateY(-2px); }
.tf-card figure { margin: 0; height: 240px; background: #0a0d18; overflow: hidden; }
.tf-card figure img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.tf-card-body { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 20px; }
.tf-card-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tf-card-head b { font-size: 20px; color: #e8ecf3; }
.tf-status-live { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 600;
  color: #6ee7b7; border: 1px solid rgba(110, 231, 183, .4); background: rgba(110, 231, 183, .08); }
.tf-proj-desc { margin: 10px 0 0; font-size: 13.5px; line-height: 1.85; color: #aab6cc; flex: 1; }
.tf-proj-go { display: inline-block; margin-top: 14px; font-size: 13px; color: #57c8ff; }


/* --- 科技成果转化 · 音豆纪 --- */
.tf-overview { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 44px; align-items: center; }
.tf-overview > * { min-width: 0; }
.tf-overview p { line-height: 1.85; color: #aab6cc; overflow-wrap: anywhere; }
.tf-overview u { text-decoration-color: rgba(87, 200, 255, .6); text-underline-offset: 4px; }
.tf-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tf-facts > div { background: rgba(20, 26, 44, .72); border: 1px solid rgba(140, 170, 255, .16); border-radius: 14px; padding: 18px 16px; text-align: center; }
.tf-facts b { display: block; font-size: 26px; color: #57c8ff; }
.tf-facts span { font-size: 13px; color: #8fa0bd; }
.tf-caps { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.tf-cap { background: rgba(20, 26, 44, .72); border: 1px solid rgba(140, 170, 255, .16); border-radius: 16px; padding: 24px 22px; }
.tf-ic { font-size: 22px; color: #57c8ff; }
.tf-cap h3 { font-size: 17.5px; margin: 10px 0 8px; color: #e8ecf3; }
.tf-cap p { font-size: 14px; line-height: 1.8; color: #aab6cc; }
.tf-sounds { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.tf-sounds h3 { font-size: 16.5px; color: #e8ecf3; margin-bottom: 12px; }
.tf-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.tf-chip { display: inline-block; padding: 7px 14px; border-radius: 999px; border: 1px solid rgba(140, 170, 255, .25); color: #e8ecf3; font-size: 14px; text-decoration: none; background: rgba(30, 40, 70, .35); transition: border-color .25s, background .25s; }
a.tf-chip:hover { border-color: rgba(110, 200, 255, .7); background: rgba(50, 80, 150, .3); }
.tf-chip--plain { opacity: .92; }
.tf-evidence { background: rgba(20, 26, 44, .72); border: 1px solid rgba(140, 170, 255, .16); border-radius: 16px; padding: 24px; }
.tf-evidence p { line-height: 1.85; color: #aab6cc; }
.tf-dirs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-top: 22px; }
.tf-dir { border-left: 2px solid rgba(87, 200, 255, .45); padding: 4px 0 4px 16px; }
.tf-dir h3 { font-size: 15.5px; color: #e8ecf3; }
.tf-dir p { font-size: 13.5px; line-height: 1.75; color: #8fa0bd; margin-top: 6px; }
.tf-banner { display: flex; justify-content: space-between; align-items: center; gap: 22px; margin-top: 26px; padding: 26px 28px; border-radius: 16px; text-decoration: none;
  background: linear-gradient(135deg, rgba(38, 70, 140, .4), rgba(20, 30, 60, .55));
  border: 1px solid rgba(120, 180, 255, .28); color: inherit; transition: border-color .3s, transform .3s; }
.tf-banner:hover { border-color: rgba(110, 200, 255, .7); transform: translateY(-2px); }
.tf-banner .kicker { margin: 0; }
.tf-banner h3 { font-size: 20px; color: #e8ecf3; margin: 6px 0 8px; }
.tf-banner p { font-size: 14px; color: #aab6cc; }
.tf-banner-go { flex: none; color: #57c8ff; font-size: 15px; }
@media (max-width: 860px) {
  .tf-overview, .tf-sounds { grid-template-columns: 1fr; }
  .tf-banner { flex-direction: column; align-items: flex-start; }
}

/* --- 联系页 --- */
.ct-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, 1fr); gap: 44px; align-items: start; }
.ct-form-wrap p { color: #aab6cc; line-height: 1.8; font-size: 15px; }
.ct-leads h2 { margin-bottom: 18px; }
.ct-lead-list { display: flex; flex-direction: column; gap: 12px; }
.ct-lead { display: block; text-decoration: none; color: inherit; background: rgba(20, 26, 44, .72); border: 1px solid rgba(140, 170, 255, .16); border-radius: 14px; padding: 16px 20px; transition: border-color .25s, transform .25s; }
.ct-lead:hover { border-color: rgba(110, 200, 255, .6); transform: translateX(4px); }
.ct-role { font-size: 15px; font-weight: 700; color: #e8ecf3; }
.ct-en { margin-left: 10px; font-size: 11.5px; letter-spacing: .08em; color: #8fa0bd; }
.ct-person { margin-top: 6px; font-size: 14.5px; color: #aab6cc; }
.ct-person span { opacity: .75; font-size: 12.5px; margin-left: 6px; }
.ct-mail { margin-top: 4px; font-size: 14px; color: #57c8ff; word-break: break-all; }
/* 对口联系人：复制邮箱按钮（mailto 的无邮件客户端兜底） */
.ct-lead { position: relative; }
.ct-copy { position: absolute; right: 16px; top: 16px; min-height: 30px; padding: 4px 14px;
  border-radius: 999px; border: 1px solid rgba(125, 211, 252, .35); background: rgba(16, 27, 46, .92);
  color: #9bd9f7; font-size: 12px; cursor: pointer; transition: border-color .25s, color .25s; }
.ct-copy:hover { border-color: #67e8f9; color: #c4f5ff; }
.ct-copy.ok { color: #6ee7b7; border-color: rgba(110, 231, 183, .55); }
.ct-copy--inline { position: static; display: inline-flex; align-items: center; margin-left: 8px;
  padding: 1px 10px; min-height: 0; font-size: 11.5px; vertical-align: middle; }
.ct-tip { margin: -4px 0 16px; font-size: 13px; line-height: 1.8; color: rgba(232, 236, 243, .62); }
.ct-info dl { display: grid; grid-template-columns: max-content 1fr; gap: 14px 28px; background: rgba(20, 26, 44, .72); border: 1px solid rgba(140, 170, 255, .16); border-radius: 16px; padding: 28px 30px; margin: 0; }
.ct-info dt { font-weight: 700; color: #e8ecf3; white-space: nowrap; }
.ct-info dd { margin: 0; color: #aab6cc; line-height: 1.8; }
.ct-info a { color: #57c8ff; text-decoration: none; }
.ct-en-line { font-size: 13px; opacity: .72; }
.btn--ghost { background: transparent !important; border: 1px solid rgba(140, 170, 255, .35); color: #e8ecf3; }
.btn--ghost:hover { border-color: rgba(110, 200, 255, .7); }
@media (max-width: 900px) {
  .ct-grid { grid-template-columns: 1fr; }
  .ct-info dl { grid-template-columns: 1fr; gap: 6px 0; }
}

/* --- 科技成果转化 · 板块总览 + 详情页返回链接/配图 --- */
.subnav { margin-top: 22px; }
.sn-link { display: inline-block; font-size: 14px; color: #9bd9f7; text-decoration: none;
  border: 1px solid rgba(125, 211, 252, .34); background: rgba(125, 211, 252, .08);
  padding: 6px 16px; border-radius: 999px; }
.sn-link:hover { border-color: rgba(125, 211, 252, .7); background: rgba(125, 211, 252, .16); }
.tf-side { display: flex; flex-direction: column; gap: 16px; }
.tf-overview-fig img { display: block; width: 100%; height: auto; border-radius: 14px; background: #fff;
  box-shadow: inset 0 0 0 1px rgba(140, 170, 255, .18), 0 10px 30px rgba(0, 0, 0, .35); }
.tf-projects { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.tf-proj { display: grid; grid-template-columns: minmax(220px, 340px) minmax(0, 1fr); gap: 28px;
  text-decoration: none; color: inherit; align-items: center;
  background: rgba(20, 26, 44, .72); border: 1px solid rgba(140, 170, 255, .16);
  border-radius: 18px; padding: 22px; transition: border-color .3s, box-shadow .3s, transform .3s; }
.tf-proj:hover { border-color: rgba(110, 200, 255, .5); box-shadow: 0 12px 40px rgba(40, 110, 255, .16); transform: translateY(-2px); }
.tf-proj-fig img { display: block; width: 100%; height: auto; border-radius: 12px; background: #fff;
  box-shadow: inset 0 0 0 1px rgba(140, 170, 255, .18), 0 8px 24px rgba(0, 0, 0, .35); }
.tf-proj-no { display: inline-block; font-size: 11.5px; letter-spacing: .22em; color: #57c8ff; opacity: .9; }
.tf-proj h2 { font-size: 26px; color: #e8ecf3; margin: 8px 0 10px; }
.tf-proj p { font-size: 14.5px; line-height: 1.8; color: #aab6cc; }
.tf-proj-facts { display: block; margin-top: 12px; font-size: 13px; color: #8fa0bd; }
.tf-status { display: inline-block; margin-top: 14px; font-size: 12.5px; color: #86efac;
  border: 1px solid rgba(134, 239, 172, .34); background: rgba(134, 239, 172, .08);
  padding: 3px 12px; border-radius: 999px; }
.tf-proj .bs-go { display: inline-block; margin: 14px 0 0 18px; font-size: 13.5px; color: #57c8ff; }
.tf-pending { margin-top: 34px; font-size: 14px; line-height: 1.8; color: #8fa0bd;
  border: 1px dashed rgba(140, 170, 255, .28); border-radius: 12px; padding: 14px 18px; }
.tf-pending b { color: #c6d4ec; }
@media (max-width: 860px) {
  .tf-proj { grid-template-columns: 1fr; gap: 16px; }
  .tf-overview { grid-template-columns: 1fr; }
}

/* --- 2026-10-18 补充：呼吸模块双贴纸 + 覆盖声音节题图 --- */
.bs-organ--duo { display: flex; gap: 4px; padding: 8px; }
.bs-organ--duo img { width: calc(50% - 2px); height: auto; max-height: 100%; object-fit: contain; }
.tf-sounds--fig { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(200px, 280px); gap: 30px; align-items: center; }
.tf-sounds-fig img { display: block; width: 100%; height: auto; border-radius: 14px; background: #fff;
  box-shadow: inset 0 0 0 1px rgba(140, 170, 255, .18), 0 10px 30px rgba(0, 0, 0, .35); }
@media (max-width: 960px) {
  .tf-sounds--fig { grid-template-columns: 1fr; }
  .tf-sounds-fig { max-width: 320px; margin: 6px auto 0; }
}

/* --- 2026-10-18 需求校准：论文证据块 / 致谢卡 / 表单状态 / tf 补充 --- */
.tf-proj--nofig { grid-template-columns: 1fr; }
.tf-note-sm { font-size: 13px; line-height: 1.7; color: #8fa0bd; margin: 2px 0 10px; }
.paper-block { border: 1px solid rgba(140, 170, 255, .2); border-left: 3px solid #57c8ff;
  background: rgba(20, 26, 44, .6); border-radius: 12px; padding: 16px 18px; margin: 14px 0 20px; }
.pb-kicker { font-size: 12px; letter-spacing: .12em; color: #57c8ff; margin: 0 0 6px; }
.pb-zh-tag { font-size: 11.5px; letter-spacing: .08em; color: #9bd9f7; margin: 10px 0 4px; }
.pb-zh { font-size: 15px; line-height: 1.9; color: #c9d4e8; margin: 0 0 10px; }

/* —— 音豆纪专题页（独立板块实验室 01 深色化移植，token 全走站点变量）—— */
.ydj .prose p { font-size: 16px; }
.ydj-note { margin-top: 18px; padding: 12px 18px; border-left: 3px solid var(--accent);
  background: rgba(103, 232, 249, .06); border-radius: 0 12px 12px 0;
  font-size: 13.5px; color: var(--ink-2); }
.ydj-small { font-size: 14px; color: var(--ink-2); }
.ydj-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 20px 0; }
.ydj-card { position: relative; background: var(--card-bg); border: 1px solid var(--card-line);
  border-radius: 16px; padding: 20px 22px 26px; }
.ydj-card h4 { font-size: 16px; color: var(--ink); margin: 0 0 8px; }
.ydj-card p { font-size: 14px; color: var(--ink-2); line-height: 1.75; margin: 0; }
.ydj-tag { position: absolute; right: 16px; bottom: 14px; display: inline-block; font-size: 11.5px;
  padding: 2px 10px; border-radius: 999px; background: rgba(103, 232, 249, .1); color: var(--accent); }
.ydj-mapnav { display: flex; gap: 10px; flex-wrap: wrap; margin: 4px 0 22px; }
.ydj-mapnav button { font: inherit; font-size: 14px; padding: 9px 20px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--card-bg); color: var(--ink); cursor: pointer; transition: .15s; }
.ydj-mapnav button.on { background: var(--grad); border-color: transparent; color: #05070f; font-weight: 700; }
.ydj-mapnav button:hover:not(.on) { border-color: rgba(103, 232, 249, .5); }
.ydj-mapbody { display: none; }
.ydj-mapbody.on { display: block; }
.ydj-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 14px; }
.ydj-chip { font-size: 13.5px; background: var(--card-bg); border: 1px solid var(--line);
  border-radius: 999px; padding: 7px 16px; color: var(--ink-2); }
.ydj-chip b { color: var(--accent); font-weight: 650; }
.ydj-deep { background: var(--card-bg); border: 1px solid var(--line); border-radius: 12px; margin-top: 14px; overflow: hidden; }
.ydj-deep summary { cursor: pointer; padding: 14px 20px; font-size: 15px; color: var(--accent); list-style: none;
  display: flex; justify-content: space-between; align-items: center; }
.ydj-deep summary::-webkit-details-marker { display: none; }
.ydj-deep summary::after { content: "展开 ＋"; font-size: 12.5px; color: var(--accent-2); }
.ydj-deep[open] summary::after { content: "收起 －"; }
.ydj-deep .inner { padding: 4px 20px 18px; font-size: 14.5px; color: var(--ink-2); }
.ydj-deep .inner p { margin: 0 0 10px; line-height: 1.8; }
.ydj-table { width: 100%; border-collapse: collapse; background: var(--card-bg);
  border: 1px solid var(--line); border-radius: 14px; overflow: hidden; font-size: 14.5px; }
.ydj-table th, .ydj-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.ydj-table th { font-size: 13px; background: rgba(103, 232, 249, .07); color: var(--accent); letter-spacing: 1px; }
.ydj-table tr:last-child td { border-bottom: none; }
.ydj-case { display: grid; grid-template-columns: 74px 1fr; gap: 20px; background: var(--card-bg);
  border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 16px;
  padding: 22px 24px; margin-bottom: 16px; }
.ydj-icon { width: 64px; height: 64px; border-radius: 16px; background: rgba(103, 232, 249, .08);
  display: flex; align-items: center; justify-content: center; }
.ydj-case h4 { font-size: 17.5px; color: var(--ink); margin: 0; }
.ydj-meta { font-size: 12.5px; color: var(--ink-3); margin: 4px 0 10px; }
.ydj-case p { font-size: 15px; color: var(--ink-2); margin: 0 0 6px; line-height: 1.75; }
.ydj-src { font-size: 13px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line); color: var(--ink-3); }
.ydj-h3 { font-size: 18px; color: var(--ink); margin: 34px 0 10px; }
.ydj-plain { list-style: none; margin: 10px 0; padding: 0; }
.ydj-plain li { padding: 7px 0 7px 22px; position: relative; font-size: 15px; color: var(--ink-2); }
.ydj-plain li::before { content: ""; position: absolute; left: 2px; top: 16px; width: 8px; height: 8px;
  border-radius: 50%; background: var(--accent-2); }
.ydj-plain a { color: var(--accent); }
.ydj-faq details { border-bottom: 1px solid var(--line); padding: 4px 0; }
.ydj-faq summary { cursor: pointer; font-size: 15.5px; color: var(--ink); padding: 12px 0; list-style: none; }
.ydj-faq summary::-webkit-details-marker { display: none; }
.ydj-faq summary::before { content: "Q "; color: var(--accent-2); font-weight: 700; }
.ydj-faq .a { padding: 0 0 14px 26px; color: var(--ink-2); font-size: 14.5px; line-height: 1.75; }
@media (max-width: 560px) {
  .ydj-grid3 { grid-template-columns: 1fr; }
  .ydj-case { grid-template-columns: 1fr; }
}

/* —— 研究发表索引筛选（板块2 集成）—— */
.rs-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 26px; }
.rs-filters button { font: inherit; font-size: 13px; padding: 7px 18px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--card-bg); color: var(--ink-2); cursor: pointer; transition: .15s; }
.rs-filters button.on { background: var(--grad); border-color: transparent; color: #05070f; font-weight: 700; }
.rs-filters button:hover:not(.on) { border-color: rgba(103, 232, 249, .5); color: var(--ink); }
.paper-block h3 { font-size: 16.5px; color: #e8ecf3; margin: 0 0 6px; line-height: 1.5; }
.pb-meta { font-size: 13px; color: #8fa0bd; margin: 0 0 10px; }
.pb-abstract { font-size: 13.5px; }
.pb-abstract summary { cursor: pointer; color: #9bd9f7; font-size: 13px; }
.pb-abstract p { margin-top: 8px; line-height: 1.8; color: #c6d4ec; }
.pb-abstract .pb-abs-zh { color: #e3edff; padding-bottom: 10px; border-bottom: 1px dashed rgba(155, 217, 247, .25); }
.pb-abstract .pb-abs-zh b { color: #9bd9f7; font-weight: 700; margin-right: 4px; }
.pb-rel { font-size: 13px; line-height: 1.7; color: #aab6cc; margin: 10px 0 6px; }
.pb-links { font-size: 13px; margin: 4px 0 0; }
.pb-links a { color: #57c8ff; }
.pb-note { font-size: 11.5px; color: #7d8aa5; margin: 8px 0 0; }
.pb-jump { color: #57c8ff; }
.ack-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 18px; }
.ack-card { background: rgba(20, 26, 44, .72); border: 1px solid rgba(140, 170, 255, .16); border-radius: 16px; padding: 20px 22px; }
.ack-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.ack-tag { font-size: 12px; color: #86efac; border: 1px solid rgba(134, 239, 172, .34); background: rgba(134, 239, 172, .08); padding: 2px 10px; border-radius: 999px; }
.ack-tag--pending { color: #fcd34d; border-color: rgba(252, 211, 77, .34); background: rgba(252, 211, 77, .08); }
.ack-meta { font-size: 12.5px; color: #8fa0bd; }
.ack-card h3 { font-size: 15.5px; line-height: 1.55; color: #e8ecf3; margin: 0 0 10px; }
.ack-quote { margin: 0 0 8px; font-size: 13px; line-height: 1.75; color: #c6d4ec;
  border-left: 3px solid rgba(134, 239, 172, .5); padding: 6px 12px; background: rgba(255, 255, 255, .03); border-radius: 0 8px 8px 0; }
.ack-zh { font-size: 13px; color: #aab6cc; margin: 6px 0; line-height: 1.7; }
.ack-entity { color: #8fa0bd; margin: 6px 0; }
.ack-links { font-size: 12.5px; margin: 8px 0 0; }
.ack-links a { color: #57c8ff; }
.f-status { min-height: 20px; font-size: 13.5px; margin: 8px 0 0; color: #9bd9f7; }
.f-status--ok { color: #86efac; }
.f-status--err { color: #fca5a5; }
.f-status--info { color: #9bd9f7; }

/* --- 2026-10-19 需求校准：关于页两个四卡板块（核心业务/发展策略）改为两行两列；窄屏回退单列 --- */
.features.features--duo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .features.features--duo { grid-template-columns: minmax(0, 1fr); } }

/* -- 品牌 logo 可点击放大（2026-10-24） -- */
.brand-hint { font-size: 12px; color: var(--ink-3, #aeb8c8); text-align: center; margin-top: 10px; letter-spacing: .04em; }
.ct-logo .brand-hint { text-align: left; }
.brand-mark img[data-zoom], .ct-logo img[data-zoom], .brand-figure img[data-zoom] { transition: transform .18s ease; }
.brand-mark img[data-zoom]:hover, .ct-logo img[data-zoom]:hover, .brand-figure img[data-zoom]:hover { transform: scale(1.06); }

/* -- 页脚三列（微信咨询列暂撤，企业微信开通后再恢复） -- */
.footer-grid { grid-template-columns: 1.5fr 1fr 1.6fr; }

