// b-app.jsx — 版本 B · 编辑研报感（中文版）
// Bloomberg/Stripe 级别的克制。数据驱动。读起来像研究报告，而非营销文案。

const B_TWEAKS = /*EDITMODE-BEGIN*/{
  "showAnnotations": true,
  "density": "standard",
  "chineseSignals": true
}/*EDITMODE-END*/;

const B_NAV = [
  { label: '价差现状', href: '#gap' },
  { label: '案例研究', href: '#case' },
  { label: '方法论', href: '#method' },
  { label: '关于我们', href: '#about' },
  { label: '合作伙伴就绪度', href: '#readiness' },
];

const B_DOMAINS = [
  { n: '01', name: '品牌战略与定位', avg: 2.1, gap: '高' },
  { n: '02', name: '数字与电商', avg: 3.4, gap: '中' },
  { n: '03', name: '内容与创意', avg: 2.0, gap: '高' },
  { n: '04', name: '社交与社群', avg: 1.8, gap: '高' },
  { n: '05', name: '红人与口碑营销', avg: 1.5, gap: '严重' },
  { n: '06', name: '公关与传播', avg: 1.3, gap: '严重' },
  { n: '07', name: '零售就绪度', avg: 2.6, gap: '中' },
  { n: '08', name: '包装与开箱体验', avg: 2.4, gap: '中' },
  { n: '09', name: '市场研究与情报', avg: 2.2, gap: '高' },
  { n: '10', name: '组织就绪度', avg: 2.9, gap: '中' },
];

const B_PHASES = [
  { num: '01', name: '诊断', span: '2–4 周', body: '10 大能力域评估。240+ 项评分基准。5 级成熟度模型。两位评估师，得分一致。' },
  { num: '02', name: '蓝图规划', span: '1–2 周', body: '优先级行动计划。ROI 预测。依赖关系映射。按现金流排序。' },
  { num: '03', name: '领域执行手册', span: '每域 4–8 周', body: '我们离开后您的团队可立即运行的运营交付物。经真实合作验证。' },
  { num: '04', name: '持续导航', span: '持续进行', body: '季度重新评分。更新路线图。随市场发展提供持续顾问支持。' },
];

const eMono = {
  fontFamily: 'var(--font-mono)',
  fontSize: 11,
  letterSpacing: '0.16em',
  textTransform: 'uppercase',
  color: 'var(--text-tertiary)',
};

const eZh = {
  fontFamily: 'var(--font-zh)',
};

// ─────────────────────────────────────────────────────────────
// Nav
// ─────────────────────────────────────────────────────────────
function BNav() {
  const [scrolled, setScrolled] = React.useState(false);
  React.useEffect(() => {
    const onScroll = () => setScrolled(window.scrollY > 24);
    onScroll();
    window.addEventListener('scroll', onScroll, { passive: true });
    return () => window.removeEventListener('scroll', onScroll);
  }, []);

  return (
    <nav style={{
      position: 'fixed', top: 0, left: 0, right: 0, zIndex: 50,
      background: scrolled ? 'rgba(20, 22, 30, 0.85)' : 'transparent',
      backdropFilter: scrolled ? 'blur(18px) saturate(140%)' : 'none',
      WebkitBackdropFilter: scrolled ? 'blur(18px) saturate(140%)' : 'none',
      borderBottom: '1px solid ' + (scrolled ? 'var(--surface-border)' : 'transparent'),
      transition: 'all .3s ease',
    }}>
      <div className="container" style={{
        display: 'flex', alignItems: 'center', justifyContent: 'space-between',
        padding: scrolled ? '14px 48px' : '22px 48px',
        transition: 'padding .3s ease',
      }}>
        <a href="#" style={{
          display: 'flex', alignItems: 'baseline', gap: 4,
          fontFamily: 'var(--font-heading)', fontWeight: 700, fontSize: 19,
        }}>
          <span style={{ color: 'var(--white)' }}>Project</span>
          <span style={{ color: 'var(--light-blue)' }}>Silk</span>
        </a>
        <ul style={{
          ...eZh,
          display: 'flex', gap: 28, listStyle: 'none', margin: 0, padding: 0,
          fontSize: 13.5, color: 'var(--text-secondary)',
        }}>
          {B_NAV.map(it => (
            <li key={it.label}>
              <a href={it.href} style={{ transition: 'color .2s' }}
                 onMouseEnter={(e) => e.currentTarget.style.color = 'var(--white)'}
                 onMouseLeave={(e) => e.currentTarget.style.color = ''}>
                {it.label}
              </a>
            </li>
          ))}
          <li style={{
            paddingLeft: 24,
            borderLeft: '1px solid var(--surface-border)',
            fontFamily: 'var(--font-mono)', fontSize: 11, letterSpacing: '0.15em',
            color: 'var(--copper-hot)', textTransform: 'uppercase',
          }}>
            <a href="#cta">Contact ↗</a>
          </li>
        </ul>
      </div>
    </nav>
  );
}

// ─────────────────────────────────────────────────────────────
// Hero
// ─────────────────────────────────────────────────────────────
function BHero({ t }) {
  return (
    <section style={{
      position: 'relative',
      minHeight: '100vh',
      paddingBlock: '180px 80px',
      background: 'var(--rich-black)',
      display: 'flex', alignItems: 'center',
      borderBottom: '1px solid var(--surface-border)',
    }}>
      <div className="container" style={{ width: '100%' }}>
        <div style={{
          display: 'flex', justifyContent: 'space-between', alignItems: 'baseline',
          paddingBottom: 20,
          borderBottom: '1px solid var(--surface-border)',
          marginBottom: 64,
        }}>
          <span style={eMono}>
            研究报告 · 2026 年 Q2
          </span>
          <span style={eMono}>
            US Market Readiness System · v1.3
          </span>
        </div>

        <div style={{
          display: 'grid', gridTemplateColumns: '1.05fr 1.2fr',
          gap: 80, alignItems: 'center',
        }}>
          <div>
            {t.chineseSignals && (
              <div style={{ marginBottom: 24, fontFamily: 'var(--font-zh)', fontSize: 13, letterSpacing: '0.3em', color: 'var(--light-blue)', opacity: 0.85 }}>
                品 牌 出 海 · 数 据 说 话
              </div>
            )}
            <h1 style={{
              fontFamily: 'var(--font-heading), var(--font-zh)',
              fontSize: 'clamp(38px, 4.8vw, 72px)',
              lineHeight: 1.15,
              fontWeight: 700,
              letterSpacing: '-0.015em',
              marginBottom: 32,
            }}>
              中国品牌在美国市场
              <br />
              <span style={{ color: 'var(--light-blue)' }}>少赚 30–60%</span><sup style={{ fontSize: '0.4em', verticalAlign: 'top', marginLeft: 4, color: 'var(--text-tertiary)' }}>1</sup>。
            </h1>

            <p style={{
              ...eZh,
              fontSize: 17, lineHeight: 1.8, color: 'var(--text-secondary)',
              maxWidth: 560, marginBottom: 36,
              fontWeight: 400,
            }}>
              我们通过 10 大能力域中的 240+ 项评分基准衡量其原因——
              并构建弥合差距的运营系统。
            </p>

            <div style={{ display: 'flex', gap: 16, alignItems: 'center', flexWrap: 'wrap', marginBottom: 40 }}>
              <a href="#cta" className="btn btn-primary" style={eZh}>
                预约诊断
                <span className="arrow">→</span>
              </a>
              <a href="#method" style={{
                ...eZh,
                fontSize: 14, color: 'var(--light-blue)',
                display: 'inline-flex', alignItems: 'center', gap: 8,
                borderBottom: '1px solid rgba(96,165,250,0.3)',
                paddingBottom: 2,
              }}>
                阅读方法论
                <span style={{ display: 'inline-block' }}>↓</span>
              </a>
            </div>

            {t.showAnnotations && (
              <div style={{
                ...eZh,
                paddingTop: 24,
                borderTop: '1px solid var(--surface-border)',
                fontSize: 12, color: 'var(--text-tertiary)',
                lineHeight: 1.85,
              }}>
                <div style={{ display: 'flex', gap: 8, alignItems: 'flex-start', marginBottom: 6 }}>
                  <span style={{ fontFamily: 'var(--font-mono)', color: 'var(--light-blue)' }}>1.</span>
                  <span>定价权差距基于五个消费品类中同等 SKU 配对测量得出。数据来源：Silk 内部研究，2025–2026 年。样本量 n=1,184 个 SKU。</span>
                </div>
                <div style={{ display: 'flex', gap: 8, alignItems: 'flex-start' }}>
                  <span style={{ fontFamily: 'var(--font-mono)', color: 'var(--light-blue)' }}>↳</span>
                  <span>方法论及完整样本表备索。</span>
                </div>
              </div>
            )}
          </div>

          <BHeroChart />
        </div>
      </div>
    </section>
  );
}

// ─────────────────────────────────────────────────────────────
// Hero chart
// ─────────────────────────────────────────────────────────────
function BHeroChart() {
  const chineseDist = [3, 8, 16, 28, 42, 58, 64, 58, 48, 36, 24, 16, 10, 7, 4, 3, 2, 1, 1, 1, 0, 0, 0, 0];
  const westernDist = [0, 0, 0, 1, 2, 4, 8, 14, 22, 34, 46, 56, 62, 58, 50, 40, 30, 22, 14, 8, 4, 2, 1, 0];
  const maxV = Math.max(...chineseDist, ...westernDist);

  return (
    <div style={{
      position: 'relative',
      padding: '36px 32px 32px',
      border: '1px solid var(--surface-border-strong)',
      borderRadius: 4,
      background: 'linear-gradient(180deg, rgba(255,255,255,0.015) 0%, rgba(255,255,255,0) 100%)',
    }}>
      <div style={{
        display: 'flex', justifyContent: 'space-between', alignItems: 'baseline',
        marginBottom: 20, paddingBottom: 16,
        borderBottom: '1px solid var(--surface-border)',
      }}>
        <div>
          <div style={{ ...eMono, marginBottom: 4 }}>图 1</div>
          <div style={{ ...eZh, fontSize: 15, fontWeight: 500, color: 'var(--white)' }}>
            同等 SKU 货架价格分布
          </div>
        </div>
        <div style={{ display: 'flex', gap: 16 }}>
          <LegendDot color="var(--light-blue)" label="中国品牌" />
          <LegendDot color="var(--white)" label="西方竞品" />
        </div>
      </div>

      <div style={{ position: 'relative', paddingBottom: 28 }}>
        <svg viewBox="0 0 600 260" style={{ width: '100%', height: 'auto', display: 'block' }}>
          {[0.25, 0.5, 0.75].map((p, i) => (
            <line key={i} x1="0" x2="600" y1={260 * p} y2={260 * p}
              stroke="rgba(255,255,255,0.04)" strokeDasharray="2 4" />
          ))}

          <path d={makeAreaPath(westernDist, 600, 240, maxV)}
            fill="rgba(255,255,255,0.08)" stroke="rgba(255,255,255,0.8)" strokeWidth="1.5" />

          <path d={makeAreaPath(chineseDist, 600, 240, maxV)}
            fill="rgba(96,165,250,0.18)" stroke="var(--light-blue)" strokeWidth="1.5" />

          <line x1="240" x2="240" y1="0" y2="240" stroke="rgba(96,165,250,0.5)" strokeDasharray="3 3" />
          <line x1="380" x2="380" y1="0" y2="240" stroke="rgba(255,255,255,0.4)" strokeDasharray="3 3" />

          <line x1="0" x2="600" y1="240" y2="240" stroke="rgba(255,255,255,0.15)" />
        </svg>

        <div style={{
          display: 'flex', justifyContent: 'space-between',
          marginTop: 8, fontFamily: 'var(--font-mono)', fontSize: 10, color: 'var(--text-tertiary)',
        }}>
          <span>$10</span>
          <span>$30</span>
          <span>$50</span>
          <span>$70</span>
          <span>$90+</span>
        </div>
      </div>

      <div style={{
        marginTop: 24, paddingTop: 20,
        borderTop: '1px solid var(--surface-border)',
        display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 16,
      }}>
        <StatCell label="中国品牌中位数" value="$24" trend="较西方低 58%" />
        <StatCell label="西方竞品中位数" value="$58" trend="参考基线" />
        <StatCell label="复合损失" value="–$34" trend="每同等 SKU" hot />
      </div>
    </div>
  );
}

function LegendDot({ color, label }) {
  return (
    <div style={{ display: 'flex', alignItems: 'center', gap: 8, fontSize: 11, fontFamily: 'var(--font-zh)', color: 'var(--text-secondary)', letterSpacing: '0.04em' }}>
      <span style={{ width: 10, height: 2, background: color, borderRadius: 1 }} />
      {label}
    </div>
  );
}

function StatCell({ label, value, trend, hot }) {
  return (
    <div>
      <div style={{ ...eZh, fontSize: 11, letterSpacing: '0.04em', color: 'var(--text-tertiary)', marginBottom: 4 }}>{label}</div>
      <div style={{
        fontFamily: 'var(--font-heading)', fontSize: 28, fontWeight: 700,
        color: hot ? 'var(--copper-hot)' : 'var(--white)',
        lineHeight: 1, letterSpacing: '-0.02em', marginBottom: 6,
      }}>{value}</div>
      <div style={{ ...eZh, fontSize: 11.5, color: 'var(--text-tertiary)' }}>{trend}</div>
    </div>
  );
}

function makeAreaPath(vals, w, h, maxV) {
  const n = vals.length;
  const step = w / (n - 1);
  const pts = vals.map((v, i) => `${i * step},${h - (v / maxV) * h}`);
  return `M0,${h} L${pts.join(' L')} L${w},${h} Z`;
}

// ─────────────────────────────────────────────────────────────
// Domain map
// ─────────────────────────────────────────────────────────────
function BDomainMap({ t }) {
  return (
    <section className="section section--black" id="gap" style={{ position: 'relative' }}>
      <div className="container">
        <div style={{
          display: 'grid', gridTemplateColumns: '1fr 1.2fr',
          gap: 80, alignItems: 'start',
        }}>
          <div>
            <div style={eMono}>价差存在于何处</div>
            <h2 style={{
              fontFamily: 'var(--font-heading), var(--font-zh)',
              fontSize: 'clamp(28px, 3.4vw, 46px)',
              lineHeight: 1.25, letterSpacing: '-0.01em',
              marginTop: 16, marginBottom: 28,
            }}>
              十大能力域。
              <br />
              <span style={{ color: 'var(--text-secondary)' }}>大多数品牌在三到五个域同时「失血」。</span>
            </h2>
            <p style={{ ...eZh, fontSize: 15.5, lineHeight: 1.85, color: 'var(--text-secondary)', maxWidth: 500, marginBottom: 24 }}>
              每项能力均根据您所在品类中西方品牌的实际做法，按 5 级成熟度模型评分。
              分数越低，定价权流失越严重。
            </p>

            {t.showAnnotations && (
              <div style={{
                ...eZh,
                paddingTop: 20, borderTop: '1px solid var(--surface-border)',
                fontSize: 12, color: 'var(--text-tertiary)',
                lineHeight: 1.85, maxWidth: 500,
              }}>
                <span style={{ fontFamily: 'var(--font-mono)', color: 'var(--light-blue)' }}>2.</span>{' '}
                平均成熟度得分基于 2025 年 Q4 接受诊断的中国品牌队列。n = 14。
                领域顺序遵循 Silk 标准分类法。分数越高越好；5.0 为「领先」。
              </div>
            )}
          </div>

          <div>
            <div style={{ border: '1px solid var(--surface-border-strong)', borderRadius: 4, overflow: 'hidden' }}>
              <div style={{
                display: 'grid', gridTemplateColumns: '40px 1fr 80px 100px',
                gap: 0,
                padding: '12px 20px',
                background: 'rgba(255,255,255,0.02)',
                borderBottom: '1px solid var(--surface-border)',
                ...eMono, fontSize: 10,
              }}>
                <span>#</span>
                <span>能力域</span>
                <span style={{ textAlign: 'right' }}>平均</span>
                <span style={{ textAlign: 'right' }}>差距</span>
              </div>
              {B_DOMAINS.map(d => (
                <DomainRow key={d.n} {...d} />
              ))}
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

function DomainRow({ n, name, avg, gap }) {
  const gapColor = gap === '严重' ? 'var(--copper-hot)'
                 : gap === '高' ? 'var(--copper)'
                 : 'var(--text-secondary)';
  return (
    <div style={{
      display: 'grid', gridTemplateColumns: '40px 1fr 80px 100px',
      alignItems: 'center', padding: '16px 20px',
      borderBottom: '1px solid var(--surface-border)',
      transition: 'background .2s',
    }}
      onMouseEnter={(e) => e.currentTarget.style.background = 'rgba(255,255,255,0.015)'}
      onMouseLeave={(e) => e.currentTarget.style.background = ''}
    >
      <span style={{ fontFamily: 'var(--font-mono)', fontSize: 12, color: 'var(--text-tertiary)' }}>{n}</span>
      <span style={{ ...eZh, fontSize: 14, color: 'var(--white)' }}>{name}</span>
      <div style={{ textAlign: 'right' }}>
        <MiniBar value={avg} max={5} />
      </div>
      <span style={{
        textAlign: 'right',
        ...eZh, fontSize: 12,
        color: gapColor, fontWeight: 500,
      }}>{gap}</span>
    </div>
  );
}

function MiniBar({ value, max }) {
  const pct = (value / max) * 100;
  return (
    <div style={{
      display: 'inline-flex', alignItems: 'center', gap: 8,
      width: '100%', justifyContent: 'flex-end',
    }}>
      <span style={{ fontFamily: 'var(--font-mono)', fontSize: 11, color: 'var(--text-secondary)' }}>{value.toFixed(1)}</span>
      <div style={{ width: 36, height: 4, background: 'rgba(255,255,255,0.06)', borderRadius: 2, overflow: 'hidden' }}>
        <div style={{ width: `${pct}%`, height: '100%', background: 'var(--light-blue)', opacity: 0.7 }} />
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────
// Case Study
// ─────────────────────────────────────────────────────────────
function BCaseStudy({ t }) {
  return (
    <section className="section section--navy" id="case" style={{ borderTop: '1px solid var(--surface-border)' }}>
      <div className="container">
        <div style={{
          paddingBottom: 24,
          borderBottom: '1px solid var(--surface-border)',
          marginBottom: 56,
          display: 'flex', justifyContent: 'space-between', alignItems: 'baseline',
        }}>
          <span style={eMono}>近期合作 · 已匿名</span>
          <span style={eMono}>案例 001 / 2026</span>
        </div>

        <div style={{
          display: 'grid', gridTemplateColumns: '1fr 1.4fr',
          gap: 80, alignItems: 'start',
        }}>
          <div>
            <h2 style={{
              fontFamily: 'var(--font-heading), var(--font-zh)',
              fontSize: 'clamp(26px, 3.2vw, 42px)',
              lineHeight: 1.25, letterSpacing: '-0.01em',
              marginBottom: 28,
            }}>
              一家领先的中国婴童用品品牌。
            </h2>
            <p style={{ ...eZh, fontSize: 15.5, lineHeight: 1.85, color: 'var(--text-secondary)', marginBottom: 32 }}>
              亚马逊销量强劲，无品牌溢价。已诊断五大能力域。
              已规划三波干预。预期 ROI 源自跨协同能力的复合效应——
              而非单一渠道提升。
            </p>

            <dl style={{ margin: 0, fontSize: 14, lineHeight: 1.8 }}>
              {[
                ['品类', '婴童用品 · 亚马逊原生品牌'],
                ['合作前', '品类销量前 15，无独立站，零售渠道为 0'],
                ['评分能力域', '品牌 · 内容 · 红人 · 零售 · 组织'],
                ['合作时长', '6 周（诊断 + 蓝图规划）'],
                ['交付物', '38 页诊断报告 · 52 页蓝图 · ROI 模型'],
              ].map(([k, v]) => (
                <div key={k} style={{
                  display: 'grid', gridTemplateColumns: '140px 1fr',
                  paddingBlock: 11,
                  borderBottom: '1px dashed var(--surface-border)',
                  gap: 16,
                }}>
                  <dt style={{ ...eMono, fontSize: 10 }}>{k}</dt>
                  <dd style={{ ...eZh, margin: 0, color: 'var(--white)' }}>{v}</dd>
                </div>
              ))}
            </dl>

            <div style={{ marginTop: 32, display: 'flex', gap: 14, flexWrap: 'wrap' }}>
              <a href="#" className="btn btn-ghost" style={eZh}>阅读完整案例研究 →</a>
              <a href="#" style={{
                ...eZh,
                fontSize: 13, color: 'var(--text-secondary)',
                display: 'inline-flex', alignItems: 'center', gap: 8,
                padding: '14px 0',
              }}>
                下载 PDF（已匿名）↓
              </a>
            </div>
          </div>

          <BROITable />
        </div>
      </div>
    </section>
  );
}

function BROITable() {
  const rows = [
    { wave: 'Wave 1', label: '红人策略重置', q: 'Q1', roi: 1.4 },
    { wave: 'Wave 1', label: '商品详情页情感重构', q: 'Q1', roi: 2.1 },
    { wave: 'Wave 2', label: '独立站基础建设', q: 'Q2', roi: 1.8 },
    { wave: 'Wave 2', label: 'PR 活动 · 12 家媒体', q: 'Q2', roi: 0.9 },
    { wave: 'Wave 3', label: '零售渠道进入 · 2 家连锁', q: 'Q3–Q4', roi: 3.2 },
    { wave: 'Wave 3', label: '品牌架构重塑', q: 'Q4', roi: 0.6 },
  ];
  const maxROI = 4;
  return (
    <div>
      <div style={{
        padding: '20px 24px', border: '1px solid var(--surface-border-strong)', borderRadius: 4,
        background: 'linear-gradient(180deg, rgba(96,165,250,0.03) 0%, rgba(255,255,255,0) 100%)',
      }}>
        <div style={{
          display: 'flex', justifyContent: 'space-between', alignItems: 'baseline',
          paddingBottom: 16, borderBottom: '1px solid var(--surface-border)', marginBottom: 16,
        }}>
          <div>
            <div style={{ ...eMono, marginBottom: 4 }}>图 2</div>
            <div style={{ ...eZh, fontSize: 14, fontWeight: 500, color: 'var(--white)' }}>
              各干预措施预期 ROI，第一年
            </div>
          </div>
          <div style={{ textAlign: 'right' }}>
            <div style={{
              fontFamily: 'var(--font-heading)', fontSize: 32, fontWeight: 700,
              color: 'var(--white)', lineHeight: 1, letterSpacing: '-0.02em',
            }}>
              3.19×
            </div>
            <div style={{ ...eMono, marginTop: 4 }}>第一年合计</div>
          </div>
        </div>

        {rows.map((r, i) => (
          <div key={i} style={{
            display: 'grid', gridTemplateColumns: '50px 1fr 70px 1fr 50px',
            alignItems: 'center', gap: 12, paddingBlock: 12,
            borderBottom: i < rows.length - 1 ? '1px solid var(--surface-border)' : 'none',
            fontSize: 13,
          }}>
            <span style={{ fontFamily: 'var(--font-mono)', fontSize: 10, color: 'var(--text-tertiary)', letterSpacing: '0.08em' }}>
              {r.wave.replace('Wave ', 'W')}
            </span>
            <span style={{ ...eZh, color: 'var(--white)' }}>{r.label}</span>
            <span style={{ fontFamily: 'var(--font-mono)', fontSize: 10, color: 'var(--text-tertiary)' }}>{r.q}</span>
            <div style={{ height: 4, background: 'rgba(255,255,255,0.06)', borderRadius: 2, overflow: 'hidden' }}>
              <div style={{ width: `${(r.roi / maxROI) * 100}%`, height: '100%', background: 'var(--light-blue)', opacity: 0.8 }} />
            </div>
            <span style={{
              textAlign: 'right',
              fontFamily: 'var(--font-mono)', fontSize: 12, color: 'var(--white)',
            }}>{r.roi.toFixed(1)}×</span>
          </div>
        ))}

        <div style={{
          marginTop: 16, paddingTop: 16,
          borderTop: '1px dashed var(--surface-border)',
          display: 'flex', justifyContent: 'space-between',
          fontFamily: 'var(--font-mono)', fontSize: 11, color: 'var(--text-secondary)',
        }}>
          <span style={eZh}>第三年预期</span>
          <span style={{ color: 'var(--copper-hot)' }}>8.0×+</span>
        </div>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────
// Methodology
// ─────────────────────────────────────────────────────────────
function BMethodology() {
  return (
    <section className="section section--black" id="method">
      <div className="container">
        <div style={{
          paddingBottom: 24, borderBottom: '1px solid var(--surface-border)',
          marginBottom: 56,
          display: 'flex', justifyContent: 'space-between', alignItems: 'baseline',
        }}>
          <span style={eMono}>方法论 · 运营系统</span>
          <span style={eMono}>4 阶段 · 有序进行</span>
        </div>

        <div style={{ marginBottom: 64, maxWidth: 800 }}>
          <h2 style={{
            fontFamily: 'var(--font-heading), var(--font-zh)',
            fontSize: 'clamp(26px, 3.2vw, 42px)',
            lineHeight: 1.25, letterSpacing: '-0.01em',
            marginBottom: 24,
          }}>
            我们将您的业务映射为一个运营系统，然后对其进行优化。
          </h2>
          <p style={{ ...eZh, fontSize: 15.5, lineHeight: 1.85, color: 'var(--text-secondary)' }}>
            每次合作都遵循相同的四个阶段。每个阶段的深度根据您的评分、
            您所在的品类，以及真正让您损失金钱的差距进行校准。
          </p>
        </div>

        <div style={{ border: '1px solid var(--surface-border-strong)', borderRadius: 4 }}>
          <div style={{
            display: 'grid',
            gridTemplateColumns: '80px 200px 1.6fr 140px',
            padding: '14px 24px',
            ...eMono, fontSize: 10,
            borderBottom: '1px solid var(--surface-border)',
            background: 'rgba(255,255,255,0.02)',
          }}>
            <span>阶段</span>
            <span>名称</span>
            <span>作用</span>
            <span style={{ textAlign: 'right' }}>时长</span>
          </div>
          {B_PHASES.map(p => (
            <div key={p.num} style={{
              display: 'grid',
              gridTemplateColumns: '80px 200px 1.6fr 140px',
              padding: '24px',
              alignItems: 'start',
              borderBottom: '1px solid var(--surface-border)',
              gap: 16,
            }}>
              <span style={{ fontFamily: 'var(--font-mono)', fontSize: 14, color: 'var(--light-blue)' }}>{p.num}</span>
              <span style={{ ...eZh, fontSize: 18, fontWeight: 600, color: 'var(--white)' }}>{p.name}</span>
              <span style={{ ...eZh, fontSize: 14, color: 'var(--text-secondary)', lineHeight: 1.8 }}>{p.body}</span>
              <span style={{
                textAlign: 'right',
                ...eZh, fontSize: 12,
                color: 'var(--text-tertiary)',
              }}>{p.span}</span>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

// ─────────────────────────────────────────────────────────────
// Difference
// ─────────────────────────────────────────────────────────────
function BDifference() {
  return (
    <section className="section section--navy" id="about">
      <div className="container">
        <div style={{
          paddingBottom: 24, borderBottom: '1px solid var(--surface-border)',
          marginBottom: 56,
        }}>
          <span style={eMono}>我们的信念</span>
        </div>

        <div style={{
          display: 'grid', gridTemplateColumns: '1fr 1.4fr',
          gap: 80,
        }}>
          <h2 style={{
            fontFamily: 'var(--font-heading), var(--font-zh)',
            fontSize: 'clamp(26px, 3.2vw, 42px)',
            lineHeight: 1.25, letterSpacing: '-0.01em',
          }}>
            三个我们
            <br />
            绝不妥协的立场。
          </h2>

          <div style={{ display: 'flex', flexDirection: 'column', gap: 36 }}>
            <Belief
              n="01"
              title="方法论，而非观点"
              body="240+ 项评分基准，对照您所在品类中西方品牌的实际做法。两位评估师，同一品牌，同一分数。我们的交付物是地图，而非一份提案 PPT。"
            />
            <Belief
              n="02"
              title="一个运营层，而非两个供应商"
              body="一支中国专业服务团队，以中文深入您的运营。一支美国顾问团队，以英文做出战略决策。翻译在我们团队内部完成——而非以您团队的精力为代价。"
            />
            <Belief
              n="03"
              title="激励一致"
              body="我们像伙伴一样为您服务，而非为了完成自身 KPI 向您推销服务的代理机构。我们的声誉就是我们的业务——把事情做对，比证明自己正确更重要。"
            />
          </div>
        </div>

        <div style={{
          marginTop: 80, paddingTop: 32,
          borderTop: '1px solid var(--surface-border)',
          display: 'grid', gridTemplateColumns: '180px 1fr 1fr',
          gap: 48, alignItems: 'center',
        }}>
          <div style={{
            width: 140, height: 140, borderRadius: '50%',
            border: '1px solid var(--surface-border-strong)',
            background: 'linear-gradient(135deg, rgba(96,165,250,0.1), rgba(180,83,9,0.06))',
            display: 'flex', alignItems: 'center', justifyContent: 'center',
            ...eMono, fontSize: 9, textAlign: 'center',
          }}>
            Tim Jordan<br />photo
          </div>
          <div>
            <div style={{ ...eMono, marginBottom: 8 }}>创始人</div>
            <div style={{ ...eZh, fontSize: 19, fontWeight: 600, marginBottom: 6, color: 'var(--white)' }}>Tim Jordan</div>
            <p style={{ ...eZh, fontSize: 14, color: 'var(--text-secondary)', lineHeight: 1.8, margin: 0 }}>
              自 2014 年起常驻中国。从小型品牌办公室到阿里巴巴高管园区。
              教育者、顾问、横跨美中电商领域的连接者。
            </p>
          </div>
          <div>
            <p style={{
              fontFamily: 'var(--font-heading), var(--font-zh)', fontSize: 17, fontWeight: 500,
              lineHeight: 1.6, color: 'var(--white)', margin: 0,
              fontStyle: 'italic',
            }}>
              「我们打造的这套系统，正是 2014 年时我们希望有人能交给我们的东西。」
            </p>
            <a href="#about" style={{
              display: 'inline-flex', alignItems: 'center', gap: 8, marginTop: 14,
              ...eZh, fontSize: 13, color: 'var(--light-blue)',
            }}>
              团队、顾问与合作伙伴
              <span className="arrow">→</span>
            </a>
          </div>
        </div>
      </div>
    </section>
  );
}

function Belief({ n, title, body }) {
  return (
    <div style={{
      display: 'grid', gridTemplateColumns: '60px 1fr',
      gap: 24, paddingBottom: 28,
      borderBottom: '1px solid var(--surface-border)',
    }}>
      <span style={{ fontFamily: 'var(--font-mono)', fontSize: 13, color: 'var(--light-blue)', paddingTop: 4 }}>{n}</span>
      <div>
        <h3 style={{ ...eZh, fontSize: 21, fontWeight: 600, marginBottom: 10, letterSpacing: '-0.005em' }}>{title}</h3>
        <p style={{ ...eZh, fontSize: 14.5, color: 'var(--text-secondary)', lineHeight: 1.85, margin: 0 }}>{body}</p>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────
// CTA
// ─────────────────────────────────────────────────────────────
function BCTA() {
  return (
    <section className="section section--black" id="cta" style={{ paddingBlock: 'min(140px, 12vw)' }}>
      <div className="container">
        <div style={{
          paddingBottom: 24, borderBottom: '1px solid var(--surface-border)',
          marginBottom: 56,
        }}>
          <span style={eMono}>如何开始</span>
        </div>

        <div style={{
          display: 'grid', gridTemplateColumns: '1fr 1fr',
          gap: 56,
        }}>
          <div>
            <h2 style={{
              fontFamily: 'var(--font-heading), var(--font-zh)',
              fontSize: 'clamp(28px, 3.6vw, 50px)',
              lineHeight: 1.2, letterSpacing: '-0.01em',
              marginBottom: 24,
            }}>
              在做出任何承诺之前——
              <br />
              <span style={{ color: 'var(--text-secondary)' }}>先看清您品牌的现状。</span>
            </h2>
            <p style={{ ...eZh, fontSize: 15.5, lineHeight: 1.85, color: 'var(--text-secondary)', maxWidth: 500 }}>
              一次诊断对话约 45 分钟。无论您是否进一步合作，
              您都将带走我们对您前三大定价权差距及弥合方案的解读。
            </p>
          </div>

          <div style={{ display: 'flex', flexDirection: 'column', gap: 20 }}>
            <CTACard
              kind="primary"
              label="预约诊断"
              body="一次 45 分钟的对话。我们将展示您的前三大差距。"
              href="#cta"
              suffix="主要方式 →"
            />
            <CTACard
              kind="ghost"
              label="合作伙伴就绪度检查"
              body="提交 10 个字段。获得一份结构化的就绪度快照。完全匿名。"
              href="#readiness"
              suffix="备选方式 →"
            />
          </div>
        </div>
      </div>
    </section>
  );
}

function CTACard({ kind, label, body, href, suffix }) {
  const primary = kind === 'primary';
  return (
    <a href={href} style={{
      border: '1px solid ' + (primary ? 'rgba(217,119,6,0.4)' : 'var(--surface-border-strong)'),
      borderRadius: 4,
      padding: '24px 28px',
      display: 'flex', flexDirection: 'column', gap: 10,
      background: primary
        ? 'linear-gradient(180deg, rgba(180,83,9,0.08), rgba(180,83,9,0.01))'
        : 'transparent',
      transition: 'border-color .25s, transform .25s',
    }}
      onMouseEnter={(e) => { e.currentTarget.style.transform = 'translateY(-2px)'; }}
      onMouseLeave={(e) => { e.currentTarget.style.transform = ''; }}
    >
      <div style={{
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
      }}>
        <span style={{
          ...eZh, fontSize: 20, fontWeight: 600,
          color: 'var(--white)',
        }}>
          {label}
        </span>
        <span style={{
          fontFamily: 'var(--font-mono)', fontSize: 11, letterSpacing: '0.14em',
          color: primary ? 'var(--copper-hot)' : 'var(--light-blue)',
        }}>
          {suffix}
        </span>
      </div>
      <p style={{ ...eZh, fontSize: 14, color: 'var(--text-secondary)', margin: 0, lineHeight: 1.7 }}>{body}</p>
    </a>
  );
}

// ─────────────────────────────────────────────────────────────
// Footer
// ─────────────────────────────────────────────────────────────
function BFooter({ t }) {
  return (
    <footer style={{
      background: 'var(--rich-black)',
      borderTop: '1px solid var(--surface-border)',
      paddingBlock: 64,
    }}>
      <div className="container">
        <div style={{
          display: 'grid',
          gridTemplateColumns: '1.6fr 1fr 1fr 1.2fr',
          gap: 56,
          marginBottom: 48,
        }}>
          <div>
            <a href="#" style={{
              display: 'inline-flex', alignItems: 'baseline', gap: 4,
              fontFamily: 'var(--font-heading)', fontWeight: 700, fontSize: 22,
              marginBottom: 14,
            }}>
              <span style={{ color: 'var(--white)' }}>Project</span>
              <span style={{ color: 'var(--light-blue)' }}>Silk</span>
            </a>
            <p style={{ ...eZh, fontSize: 13, color: 'var(--text-secondary)', lineHeight: 1.8, maxWidth: 360 }}>
              为中国品牌打造的美国市场就绪度系统。
              为中国企业构建的西式战略。
            </p>
            {t.chineseSignals && (
              <div style={{ marginTop: 14, fontFamily: 'var(--font-zh)', fontSize: 13, color: 'var(--light-blue)', letterSpacing: '0.18em' }}>
                品牌出海，数据说话
              </div>
            )}
          </div>

          <div>
            <div style={{ ...eMono, marginBottom: 16 }}>网站</div>
            <ul style={{ ...eZh, listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexDirection: 'column', gap: 9, fontSize: 13 }}>
              {['价差现状', '案例研究', '方法论', '关于我们', '合作伙伴就绪度', '联系我们'].map(l => (
                <li key={l}><a href="#" style={{ color: 'var(--text-secondary)' }}>{l}</a></li>
              ))}
            </ul>
          </div>
          <div>
            <div style={{ ...eMono, marginBottom: 16 }}>联系我们</div>
            <ul style={{ ...eZh, listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexDirection: 'column', gap: 9, fontSize: 13 }}>
              <li><a href="#" style={{ color: 'var(--text-secondary)' }}>hello@project-silk.com</a></li>
              <li><a href="#" style={{ color: 'var(--text-secondary)' }}>LinkedIn</a></li>
              <li><a href="#" style={{ color: 'var(--text-secondary)' }}>Foundry Studio</a></li>
            </ul>
          </div>

          <BWeChatBlock />
        </div>

        <div style={{
          ...eZh,
          paddingTop: 24, borderTop: '1px solid var(--surface-border)',
          display: 'flex', justifyContent: 'space-between', flexWrap: 'wrap', gap: 12,
          fontSize: 11, color: 'var(--text-tertiary)',
        }}>
          <div>© 2026 Project Silk · A Foundry Studio venture</div>
          <div style={{ display: 'flex', gap: 20 }}>
            <a href="#">隐私政策</a>
            <a href="#">服务条款</a>
          </div>
        </div>
      </div>
    </footer>
  );
}

function BWeChatBlock() {
  return (
    <div>
      <div style={{ ...eMono, marginBottom: 16 }}>企业微信 · WeCom</div>
      <div style={{ display: 'flex', gap: 14 }}>
        <div style={{
          width: 76, height: 76,
          background: 'var(--deep-navy-2)',
          border: '1px solid var(--surface-border-strong)',
          borderRadius: 4,
          display: 'grid',
          gridTemplateColumns: 'repeat(8, 1fr)', gridTemplateRows: 'repeat(8, 1fr)',
          padding: 5, gap: 1.5,
        }}>
          {Array.from({ length: 64 }).map((_, i) => (
            <div key={i} style={{
              background: (i * 17 + Math.floor(i / 8) * 3) % 4 === 0 ? 'var(--white)' : 'transparent',
              borderRadius: 1,
            }} />
          ))}
        </div>
        <div style={{ ...eZh, fontSize: 12, color: 'var(--text-secondary)', lineHeight: 1.7 }}>
          Project Silk<br />
          项目丝路<br />
          <span style={{ color: 'var(--text-tertiary)', fontSize: 11 }}>扫码添加</span>
        </div>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────
// WeChat pill
// ─────────────────────────────────────────────────────────────
function BWeChatPill() {
  const [open, setOpen] = React.useState(false);
  return (
    <div style={{ position: 'fixed', left: 24, bottom: 24, zIndex: 40 }}>
      {open && (
        <div style={{
          position: 'absolute', bottom: 60, left: 0,
          background: 'rgba(20, 22, 30, 0.94)',
          border: '1px solid var(--surface-border-strong)',
          backdropFilter: 'blur(18px) saturate(140%)',
          WebkitBackdropFilter: 'blur(18px) saturate(140%)',
          borderRadius: 8, padding: 14, width: 200,
          boxShadow: '0 24px 60px rgba(0,0,0,0.6)',
        }}>
          <div style={{ ...eMono, fontSize: 10, marginBottom: 10 }}>企业微信 · WeCom</div>
          <div style={{
            width: '100%', aspectRatio: '1/1',
            background: 'var(--deep-navy-2)',
            border: '1px solid var(--surface-border-strong)', borderRadius: 4,
            display: 'grid', gridTemplateColumns: 'repeat(10, 1fr)', gridTemplateRows: 'repeat(10, 1fr)',
            padding: 7, gap: 1.5, marginBottom: 8,
          }}>
            {Array.from({ length: 100 }).map((_, i) => (
              <div key={i} style={{
                background: (i * 13 + Math.floor(i / 10) * 5) % 4 === 0 ? 'var(--white)' : 'transparent',
              }} />
            ))}
          </div>
          <div style={{ ...eZh, fontSize: 11, color: 'var(--text-secondary)', lineHeight: 1.6 }}>
            扫码添加 Project Silk<br />官方企业微信账号
          </div>
        </div>
      )}
      <button onClick={() => setOpen(o => !o)} style={{
        background: open ? 'var(--light-blue)' : 'rgba(20, 22, 30, 0.92)',
        color: open ? 'var(--rich-black)' : 'var(--white)',
        border: '1px solid ' + (open ? 'var(--light-blue)' : 'var(--surface-border-strong)'),
        borderRadius: 999, padding: '10px 16px',
        display: 'flex', alignItems: 'center', gap: 10,
        ...eZh, fontSize: 12, fontWeight: 500, cursor: 'pointer',
        backdropFilter: 'blur(18px) saturate(140%)',
        WebkitBackdropFilter: 'blur(18px) saturate(140%)',
        transition: 'all .25s ease',
      }}>
        <span style={{
          width: 6, height: 6, borderRadius: '50%',
          background: open ? 'var(--rich-black)' : 'var(--copper-hot)',
          boxShadow: open ? 'none' : '0 0 6px var(--copper-hot)',
        }} />
        微信 · WeChat
      </button>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────
// App
// ─────────────────────────────────────────────────────────────
function App() {
  const [t, setTweak] = useTweaks(B_TWEAKS);

  return (
    <div data-density={t.density} style={{ fontFamily: 'var(--font-zh)' }}>
      <BNav />
      <BHero t={t} />
      <BDomainMap t={t} />
      <BCaseStudy t={t} />
      <BMethodology />
      <BDifference />
      <BCTA />
      <BFooter t={t} />
      <BWeChatPill />

      <TweaksPanel>
        <TweakSection label="Editorial settings" />
        <TweakToggle label="Show research annotations"
          value={t.showAnnotations}
          onChange={(v) => setTweak('showAnnotations', v)} />
        <TweakToggle label="Show Chinese signals"
          value={t.chineseSignals}
          onChange={(v) => setTweak('chineseSignals', v)} />
        <TweakSection label="Density" />
        <TweakRadio label="Section rhythm"
          value={t.density}
          options={['compact', 'standard', 'spacious']}
          onChange={(v) => setTweak('density', v)} />
      </TweaksPanel>
    </div>
  );
}

ReactDOM.createRoot(document.getElementById('root')).render(<App />);
