// ── Resonance Pitch Deck · Slides 01–11 ──────────────────────────────────────

const TOTAL_SLIDES = 16;

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 01 — Cover
// ═══════════════════════════════════════════════════════════════════════════
function Slide01Cover() {
  return (
    <SlideFrame
      background="var(--color-cream)"
      grain={0.06}
      decor={
        <>
          <div style={{ position: 'absolute', top: '-8%', left: '-6%', opacity: 0.42, pointerEvents: 'none' }}>
            <OrganiBlob variant={1} fill="var(--color-terracotta-light)" size={780} />
          </div>
          <div style={{ position: 'absolute', bottom: '-10%', right: '-8%', opacity: 0.30, pointerEvents: 'none' }}>
            <OrganiBlob variant={3} fill="var(--color-lavender)" size={680} />
          </div>
          <div style={{ position: 'absolute', top: '30%', right: '12%', opacity: 0.22, pointerEvents: 'none' }}>
            <OrganiBlob variant={2} fill="var(--color-sage)" size={340} />
          </div>
        </>
      }
    >
      <div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'center', alignItems: 'flex-start', height: '100%', maxWidth: 1600, gap: 40 }}>
        <div style={{ display: 'flex', alignItems: 'center', gap: 20 }}>
          <ResonanceIcon size={76} />
          <div style={{ display: 'flex', flexDirection: 'column' }}>
            <span style={{ fontFamily: 'var(--font-heading)', fontSize: 56, fontWeight: 800, color: 'var(--color-text)', letterSpacing: '-0.03em', lineHeight: 1 }}>
              共振
            </span>
            <span style={{ fontFamily: 'var(--font-heading)', fontSize: 28, fontWeight: 400, fontStyle: 'italic', color: 'var(--color-text-muted)', letterSpacing: '-0.01em', marginTop: 2 }}>
              Resonance
            </span>
          </div>
        </div>

        <h1 style={{
          fontFamily: 'var(--font-heading)',
          fontSize: 64,
          fontWeight: 800,
          lineHeight: 1.3,
          letterSpacing: '-0.03em',
          color: 'var(--color-text)',
          margin: 0,
          maxWidth: 1600,
          wordBreak: 'keep-all',
          lineBreak: 'strict',
        }}>
          讓世界上每個<span style={{ position: 'relative', display: 'inline-block', color: 'var(--color-terracotta)', whiteSpace: 'nowrap' }}>
            同頻的靈魂
            <Squiggle color="var(--color-terracotta)" />
          </span><br />都能透過真實故事彼此相遇
        </h1>

        <div style={{ display: 'flex', alignItems: 'center', gap: 24, flexWrap: 'nowrap' }}>
          <span style={{ whiteSpace: 'nowrap' }}>
            <TagPill color="var(--color-terracotta-light)">✦ Pitch Deck · 2026</TagPill>
          </span>
          <span style={{ fontFamily: 'var(--font-body)', fontSize: 24, color: 'var(--color-text-muted)', fontStyle: 'italic', whiteSpace: 'nowrap' }}>
            A belief-driven business plan for venture partners
          </span>
        </div>
      </div>
    </SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 02 — One-liner / Thesis
// ═══════════════════════════════════════════════════════════════════════════
function Slide02Thesis() {
  return (
    <SlideFrame
      background="var(--color-cream)"
      grain={0.06}
      chrome={<><BrandMark /><SlideNumber n={2} total={TOTAL_SLIDES} /></>}
      decor={
        <>
          <div style={{ position: 'absolute', top: '-10%', right: '-8%', opacity: 0.30, pointerEvents: 'none' }}>
            <OrganiBlob variant={0} fill="var(--color-terracotta-light)" size={720} />
          </div>
          <div style={{ position: 'absolute', bottom: '-12%', left: '-6%', opacity: 0.22, pointerEvents: 'none' }}>
            <OrganiBlob variant={4} fill="var(--color-yellow)" size={520} />
          </div>
        </>
      }
    ><div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'space-between', height: '100%' }}>
        <div>
          <Eyebrow>One-liner · 30 秒版</Eyebrow>

          <div style={{ position: 'relative', maxWidth: 1500 }}>
            <span style={{
              position: 'absolute', top: -80, left: -40,
              fontFamily: 'var(--font-heading)',
              fontSize: 240, lineHeight: 1,
              color: 'var(--color-terracotta)', opacity: 0.22,
              fontWeight: 800,
            }}>"</span>
            <h2 style={{
              fontFamily: 'var(--font-heading)',
              fontSize: 64,
              fontWeight: 800,
              lineHeight: 1.18,
              letterSpacing: '-0.025em',
              color: 'var(--color-text)',
              margin: 0,
              textWrap: 'balance',
              position: 'relative',
              zIndex: 2,
            }}>
              我們做的不是社群，<br />
              是一個<span style={{ position: 'relative', display: 'inline-block', color: 'var(--color-terracotta)' }}>
                思想的共振場
                <Squiggle color="var(--color-terracotta)" />
              </span>
            </h2>
            <p style={{
              fontFamily: 'var(--font-heading)',
              fontStyle: 'italic',
              fontSize: 34,
              fontWeight: 400,
              lineHeight: 1.5,
              letterSpacing: '-0.01em',
              color: 'var(--color-text-muted)',
              margin: '28px 0 0',
              position: 'relative',
              zIndex: 2,
            }}>
              寫下你心中的微小轉折，世界另一端有人和你想的一樣
            </p>
          </div>
        </div>

        <div style={{ maxWidth: 1500, display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 32 }}>
          {[
            {
              anchor: '歸屬',
              text: '當你的故事讓另一個人共振，你的想法終於被真正看見──那一刻你知道，這個世界上有人和你同頻。',
              fill: 'var(--color-terracotta-light)',
              textColor: 'oklch(35% 0.17 45)',
              seed: 13,
            },
            {
              anchor: '渴望',
              text: '有人說出了你心裡一直有、說不清楚的體悟，我們重新看見那些被忽略的自己，變得更完整而立體。',
              fill: 'var(--color-lavender)',
              textColor: 'oklch(38% 0.1 290)',
              seed: 29,
            },
          ].map(item => (
            <HandDrawnCard key={item.anchor} seed={item.seed} fill={item.fill} stroke="oklch(36% 0.06 60 / 0.55)" padding={40}>
              <div style={{ display: 'flex', flexDirection: 'column', gap: 14 }}>
                <div style={{ fontFamily: 'var(--font-heading)', fontSize: 44, fontWeight: 800, lineHeight: 1, color: 'var(--color-text)', opacity: 0.9 }}>
                  {item.anchor}
                </div>
                <p style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, lineHeight: 1.65, color: 'var(--color-text)', margin: 0, textWrap: 'pretty' }}>
                  {item.text}
                </p>
              </div>
            </HandDrawnCard>
          ))}
        </div>
      </div></SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 03 — Beliefs (我相信...)
// ═══════════════════════════════════════════════════════════════════════════
function Highlight({ color, children }) {
  return (
    <span style={{
      color,
      textDecorationLine: 'underline',
      textDecorationStyle: 'wavy',
      textDecorationColor: color,
      textDecorationThickness: '0.1em',
      textUnderlineOffset: '0.25em',
    }}>
      {children}
    </span>
  );
}

function Slide03Beliefs() {
  const beliefs = [
    {
      tag: '立體',
      textNode: <>人，生而立體。面對不同的人事物，我們展現出不同的面向，每個人都是<Highlight color="oklch(42% 0.11 45)">這些面構築成的一個立體存在，擁有自己的哲學與體悟</Highlight>。</>,
      color: 'var(--color-terracotta-light)',
      imageSrc: 'assets/03 立體 t.png',
      seed: 13,
    },
    {
      tag: '體悟',
      textNode: <>故事，因體悟而深刻。我們發現專注於<Highlight color="oklch(44% 0.12 90)">故事中的體悟</Highlight>，既能避免故事流於庸俗，又能容納每一個人，讓彼此因故事而連結。</>,
      color: 'var(--color-yellow)',
      imageSrc: 'assets/03 體悟 t.png',
      seed: 29,
    },
    {
      tag: '共振',
      textNode: <>當有人將我們心中未竟的想法說出口，那便是共振發生的時刻。而我們相信：<Highlight color="oklch(40% 0.11 145)">每個共振的點，都是通往世界的線</Highlight>。</>,
      color: 'var(--color-sage)',
      imageSrc: 'assets/03 共振 t.png',
      seed: 47,
    },
  ];
  return (
    <SlideFrame background="var(--color-cream)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={3} total={TOTAL_SLIDES} /></>}><div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第一章 · 我們相信"
          title="三件事我們深信不疑"
          highlight="深信不疑"
          subtitle="這是我們對人、對故事、對連結最深層的理解，也是共振存在的理由"
        />
        <div style={{ marginTop: 100, display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 40, flex: 1, alignContent: 'end', alignItems: 'stretch' }}>
          {beliefs.map((b, i) => (
            <HandDrawnCard key={i} seed={b.seed} fill={b.color} stroke="oklch(36% 0.06 60 / 0.6)" padding={40} style={{ height: '100%' }}>
              <div style={{ position: 'relative', display: 'flex', flexDirection: 'column', height: '100%', justifyContent: 'flex-end', gap: 40, minHeight: 40 }}>
                <img
                  src={b.imageSrc}
                  alt={b.tag}
                  style={{
                    position: 'absolute',
                    top: 0,
                    right: 0,
                    width: 100,
                    height: 100,
                    objectFit: 'contain',
                  }}
                />
                <div style={{ fontFamily: 'var(--font-heading)', fontSize: 80, fontWeight: 800, lineHeight: 0.9, color: 'var(--color-text)', opacity: 0.92 }}>
                  {b.tag}
                </div>
                <div>
                  <p style={{
                    fontFamily: 'var(--font-body)',
                    fontSize: TYPE_SCALE.bodySm,
                    lineHeight: 1.65,
                    color: 'var(--color-text)',
                    margin: 0,
                    textWrap: 'pretty',
                  }}>
                    {b.textNode}
                  </p>
                </div>
              </div>
            </HandDrawnCard>
          ))}
        </div>
      </div></SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 04 — Why Now
// ═══════════════════════════════════════════════════════════════════════════
function Slide04WhyNow() {
  return (
    <SlideFrame
      background="var(--color-cream)"
      grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={4} total={TOTAL_SLIDES} /></>}
      decor={
        <div style={{ position: 'absolute', bottom: '-8%', right: '-4%', opacity: 0.20, pointerEvents: 'none' }}>
          <OrganiBlob variant={2} fill="var(--color-terracotta-light)" size={540} />
        </div>
      }
    ><div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第二章 · 為什麼是現在"
          title="AI 讓我們有機會，有發心地建造一個平台"
          highlight="有發心地"
        />

        <div style={{ marginTop: 72, display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 48, flex: 1 }}>
          {/* Past decade */}
          <div style={{ paddingTop: 52 }}>
            <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'var(--color-text-muted)', marginBottom: 24, fontWeight: 600 }}>
              過去十年
            </div>
            <h3 style={{ fontFamily: 'var(--font-heading)', fontSize: 48, fontWeight: 700, color: 'var(--color-text)', margin: '0 0 32px', lineHeight: 1.2, letterSpacing: '-0.02em' }}>
              中性平台被流量經濟異化
            </h3>
            <ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexDirection: 'column', gap: 20 }}>
              {[
                { k: '按讚', v: '人們為了它而表演' },
                { k: '曝光', v: '人們為了它而焦慮' },
                { k: '演算法', v: '人們為了它而扭曲自己' },
              ].map((it, i) => (
                <li key={i} style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, color: 'var(--color-text)', lineHeight: 1.55, textWrap: 'pretty' }}>
                  <span style={{ fontFamily: 'var(--font-heading)', fontWeight: 800, color: 'var(--color-text)', marginRight: 12, letterSpacing: '0.02em' }}>{it.k}</span>
                  <span>{it.v}</span>
                </li>
              ))}
            </ul>
          </div>

          {/* Now */}
          <HandDrawnCard seed={73} fill="var(--color-terracotta)" stroke="oklch(30% 0.14 45)" padding={52}>
            <div style={{ display: 'flex', flexDirection: 'column', height: '100%', minHeight: 440, color: 'var(--color-cream)' }}>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'oklch(96% 0.015 75 / 0.75)', marginBottom: 24, fontWeight: 600 }}>
                此刻 · AI 時代
              </div>
              <h3 style={{ fontFamily: 'var(--font-heading)', fontSize: 48, fontWeight: 800, margin: '0 0 28px', lineHeight: 1.15, letterSpacing: '-0.02em' }}>
                共振放大的，是體悟
              </h3>
              <ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexDirection: 'column', gap: 18 }}>
                {[
                  { k: '提取', v: '透過 AI 對每篇故事取樣、建構專屬詞向量。' },
                  { k: '感知', v: '結合你的真實狀態、分享內容與想法卡片。' },
                  { k: '共振', v: '為你精準配對並推薦，產生真正的內心共鳴。' },
                ].map((it, i) => (
                  <li key={i} style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, lineHeight: 1.55, color: 'oklch(96% 0.015 75 / 0.92)', textWrap: 'pretty' }}>
                    <span style={{ fontFamily: 'var(--font-heading)', fontWeight: 800, color: 'oklch(92% 0.12 88)', marginRight: 12, letterSpacing: '0.02em' }}>{it.k}</span>
                    <span>{it.v}</span>
                  </li>
                ))}
              </ul>
            </div>
          </HandDrawnCard>
        </div>
      </div></SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 05 — VS Comparison
// ═══════════════════════════════════════════════════════════════════════════
function Slide05Versus() {
  const rows = [
    { old: '追逐流量', nw: '看見那些被忽略的自己，並與世界連結' },
    { old: '演算法餵養', nw: '同頻共鳴' },
    { old: '表演與曝光', nw: '故事與體悟的記錄' },
    { old: '創作者 vs. 讀者', nw: '對等的雙向互動' },
    { old: 'Follower 數字', nw: '真實故事連結' },
  ];
  return (
    <SlideFrame background="var(--color-cream-dark)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={5} total={TOTAL_SLIDES} /></>}><div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第三章 · 定位"
          title="傳統平台 vs. 共振"
        />

        <div style={{ marginTop: 60, display: 'grid', gridTemplateColumns: '660px auto 660px', gap: 48, alignItems: 'stretch', justifyContent: 'center', flex: 1 }}>
          {/* Left: traditional */}
          <HandDrawnCard seed={19} fill="oklch(92% 0.01 75)" stroke="oklch(45% 0.03 70)" padding={44}>
            <div style={{ display: 'flex', flexDirection: 'column', gap: 20, height: '100%' }}>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'var(--color-text-muted)', fontWeight: 600 }}>
                傳統社群與平台
              </div>
              <div style={{ fontFamily: 'var(--font-heading)', fontSize: 42, fontWeight: 700, color: 'var(--color-text-muted)', letterSpacing: '-0.02em', lineHeight: 1.15, textDecoration: 'line-through', textDecorationColor: 'oklch(55% 0.04 70 / 0.55)' }}>
                Medium · Threads
              </div>
              <ul style={{ listStyle: 'none', padding: 0, margin: '8px 0 0', display: 'flex', flexDirection: 'column', gap: 14 }}>
                {rows.map((r, i) => (
                  <li key={i} style={{ display: 'flex', alignItems: 'flex-start', gap: 10 }}>
                    <span style={{ color: 'oklch(45% 0.03 70)', fontWeight: 700, flexShrink: 0, fontSize: TYPE_SCALE.bodySm, lineHeight: 1.35 }}>✦</span>
                    <span style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, color: 'var(--color-text-muted)', lineHeight: 1.35 }}>{r.old}</span>
                  </li>
                ))}
              </ul>
            </div>
          </HandDrawnCard>

          {/* Center: arrow */}
          <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', gap: 12 }}>
            <svg width="180" height="60" viewBox="0 0 180 60" style={{ overflow: 'visible' }}>
              <path d="M 10,30 C 50,22 130,38 170,30" stroke="var(--color-terracotta)" strokeWidth="3" fill="none" strokeLinecap="round" opacity="0.7" />
              <path d="M 158,18 L 172,30 L 158,42" stroke="var(--color-terracotta)" strokeWidth="3" fill="none" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
            <span style={{ fontFamily: 'var(--font-heading)', fontStyle: 'italic', fontSize: 26, color: 'var(--color-terracotta)' }}>
              shift
            </span>
          </div>

          {/* Right: resonance */}
          <HandDrawnCard seed={83} fill="var(--color-terracotta-light)" stroke="oklch(36% 0.13 45)" padding={44}>
            <div style={{ display: 'flex', flexDirection: 'column', gap: 20, height: '100%' }}>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'var(--color-terracotta)', fontWeight: 700 }}>
                共振
              </div>
              <div style={{ fontFamily: 'var(--font-heading)', fontSize: 42, fontWeight: 800, color: 'var(--color-text)', letterSpacing: '-0.02em', lineHeight: 1.15 }}>
                Resonance
              </div>
              <ul style={{ listStyle: 'none', padding: 0, margin: '8px 0 0', display: 'flex', flexDirection: 'column', gap: 14 }}>
                {rows.map((r, i) => (
                  <li key={i} style={{ display: 'flex', alignItems: 'flex-start', gap: 10 }}>
                    <span style={{ color: 'oklch(36% 0.13 45)', fontWeight: 700, flexShrink: 0, fontSize: TYPE_SCALE.bodySm, lineHeight: 1.35 }}>✦</span>
                    <span style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, color: 'var(--color-text)', lineHeight: 1.35, fontWeight: 500 }}>{r.nw}</span>
                  </li>
                ))}
              </ul>
            </div>
          </HandDrawnCard>
        </div>
      </div></SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 06 — Product: the thought card
// ═══════════════════════════════════════════════════════════════════════════
function Slide06Product() {
  return (
    <SlideFrame background="var(--color-cream)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={6} total={TOTAL_SLIDES} /></>}><div style={{ display: 'flex', height: '100%', gap: 80, alignItems: 'flex-start' }}>
        {/* Left: explanation */}
        <div style={{ flex: 1.1, display: 'flex', flexDirection: 'column' }}>
          <Eyebrow>第四章 · 產品</Eyebrow>
          <h2 style={{
            fontFamily: 'var(--font-heading)',
            fontSize: TYPE_SCALE.title,
            fontWeight: 800,
            lineHeight: 1.15,
            letterSpacing: '-0.025em',
            color: 'var(--color-text)',
            margin: 0,
            textWrap: 'balance',
          }}>
            最小單位：一張<span style={{ position: 'relative', display: 'inline-block', color: 'var(--color-terracotta)' }}>
              故事卡片
              <Squiggle color="var(--color-terracotta)" />
            </span>
          </h2>

          <div style={{ marginTop: 80, fontFamily: 'var(--font-heading)', fontSize: 38, fontWeight: 700, color: 'var(--color-text)', letterSpacing: '-0.01em', lineHeight: 1.3 }}>
            一張卡片 = 一個真實故事 + 一個核心體悟
          </div>

          <div style={{ margin: '48px 0 0', display: 'flex', flexDirection: 'column' }}>
            {[
              { k: '私下記錄', v: '先用卡片捕捉每個靈光，不必一次寫出完整故事', seed: 41 },
              { k: 'AI 整理', v: '幫你找回過去的洞見，讓碎片成為故事的材料', seed: 67 },
              { k: '你來述說', v: '故事永遠由你親自完成──真實感與人的溫度，無法外包', seed: 93 },
            ].map(item => (
              <React.Fragment key={item.k}>
                <HandDrawnHLine seed={item.seed} />
                <div style={{ paddingTop: 24, paddingBottom: 24 }}>
                  <div style={{ fontFamily: 'var(--font-heading)', fontSize: 36, fontWeight: 700, color: 'var(--color-terracotta)', lineHeight: 1.1, marginBottom: 8 }}>{item.k}</div>
                  <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, color: 'var(--color-text-muted)', lineHeight: 1.55 }}>{item.v}</div>
                </div>
              </React.Fragment>
            ))}
          </div>
        </div>

        {/* Right: stacked cards */}
        <div style={{ flex: 1, display: 'flex', justifyContent: 'center', alignItems: 'center', paddingTop: 100 }}>
          <div style={{ position: 'relative', width: 440, height: 680 }}>
            {/* Left card — tilted left, behind */}
            <div style={{
              position: 'absolute', bottom: 0, left: '50%',
              transform: 'translateX(-50%) rotate(-9deg)',
              transformOrigin: 'bottom center',
              width: 440, zIndex: 1,
            }}>
              <HandDrawnCard seed={142} fill="oklch(93% 0.042 30)" stroke="oklch(38% 0.11 30)" padding={36}>
                <div style={{ minHeight: 540 }} />
              </HandDrawnCard>
            </div>
            {/* Right card — tilted right, behind */}
            <div style={{
              position: 'absolute', bottom: 0, left: '50%',
              transform: 'translateX(-50%) rotate(9deg)',
              transformOrigin: 'bottom center',
              width: 440, zIndex: 1,
            }}>
              <HandDrawnCard seed={153} fill="oklch(93% 0.042 290)" stroke="oklch(38% 0.11 290)" padding={36}>
                <div style={{ minHeight: 540 }} />
              </HandDrawnCard>
            </div>
            {/* Center card — straight, front */}
            <div style={{
              position: 'absolute', bottom: 0, left: '50%',
              transform: 'translateX(-50%)',
              transformOrigin: 'bottom center',
              width: 440, zIndex: 2,
            }}>
              <HandDrawnCard seed={131} fill="oklch(93% 0.042 140)" stroke="oklch(38% 0.11 140)" padding={36}>
                <div style={{ display: 'flex', flexDirection: 'column', gap: 22, minHeight: 540 }}>
                  <div style={{ position: 'relative', width: '100%', paddingBottom: '62%', borderRadius: '14px 18px 12px 16px', overflow: 'hidden', flexShrink: 0 }}>
                    <img
                      src="images/story-card-breakdown.webp"
                      style={{ position: 'absolute', inset: 0, width: '100%', height: '100%', objectFit: 'cover' }}
                      alt="19 歲時破產，反而是覺察幸福的開端"
                    />
                  </div>
                  <TagPill color="oklch(90% 0.075 88)">Thought</TagPill>
                  <h3 style={{ fontFamily: 'var(--font-heading)', fontSize: 30, fontWeight: 700, color: 'var(--color-text)', lineHeight: 1.3, margin: 0 }}>
                    19 歲時破產，反而是覺察幸福的開端
                  </h3>
                  <p style={{ fontFamily: 'var(--font-body)', fontSize: 18, lineHeight: 1.65, color: 'var(--color-text-muted)', margin: 0 }}>
                    看著螢幕上跳動的數字，我愚笨地把槓桿交易當作戳戳樂。整個人在恐懼與貪婪的極限當中，瘋狂擺盪。隨著一則又一則的爆倉通知出現，我明白，自己嚴然沒有了回頭路...
                  </p>
                  <div style={{ display: 'flex', alignItems: 'center', gap: 12, marginTop: 'auto', paddingTop: 12 }}>
                    <HandDrawnAvatar initials="NC" size={36} color="oklch(88% 0.08 88)" seed={77} />
                    <div>
                      <div style={{ fontFamily: 'var(--font-body)', fontSize: 16, fontWeight: 600, color: 'var(--color-text)' }}>念誠</div>
                      <div style={{ fontFamily: 'var(--font-body)', fontSize: 14, color: 'var(--color-text-muted)' }}>168 人與你共振</div>
                    </div>
                  </div>
                </div>
              </HandDrawnCard>
            </div>
          </div>
        </div>
      </div></SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 07 — AI: the two worlds meet
// ═══════════════════════════════════════════════════════════════════════════
function Slide07WhyUs() {
  const stages = [
    {
      num: '01',
      title: 'Tuckin\n用聚餐，連起溫度',
      body: '以個性與飲食習慣配對成大不同科系的陌生同學共餐，探索人與人相聚的起點，並於雙平臺上架。',
      images: ['images/project-tuckin-1.webp', 'images/project-tuckin-2.webp'],
      bullets: [
        '上線後吸引 200 位同學註冊',
        '第一次活動有 6 組同學，共 30 人參加',
      ],
      fill: 'oklch(86% 0.065 140)',
      stroke: 'oklch(40% 0.10 145)',
    },
    {
      num: '02',
      title: '真實聚會\n精細組合',
      body: '保留線下場域設計，以興趣、人生狀態、邊界與聚會習慣多維配對，讓真正相似的人面對面相聚。',
      images: ['images/project-gathering-1.webp', 'images/project-gathering-2.webp'],
      bullets: [
        '透過表單實現 POC',
        '實際舉辦真實聚會',
      ],
      fill: 'oklch(86% 0.060 290)',
      stroke: 'oklch(42% 0.10 280)',
    },
    {
      num: '03',
      title: '共振\n真實故事',
      body: '發現連結的核心是信念的相遇。打造線上平臺，讓每個人的獨特洞見找到共鳴，形成真正的歸屬。',
      images: ['images/project-resonance.webp'],
      bullets: [],
      fill: 'var(--color-terracotta-light)',
      stroke: 'oklch(36% 0.13 45)',
    },
  ];

  function ImageGrid({ images, stroke }) {
    const single = images.length === 1;
    return (
      <div style={{
        display: 'grid',
        gridTemplateColumns: single ? '1fr' : '1fr 1fr',
        gap: 8,
        flexShrink: 0,
      }}>
        {images.map((src, i) => (
          <div key={i} style={{
            height: single ? 200 : 170,
            borderRadius: 10,
            overflow: 'hidden',
            border: `1.5px solid ${stroke}`,
          }}>
            <img src={src} alt="" style={{ width: '100%', height: '100%', objectFit: 'cover', display: 'block' }} />
          </div>
        ))}
      </div>
    );
  }

  return (
    <SlideFrame background="var(--color-cream)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={8} total={TOTAL_SLIDES} /></>}>
      <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第六章 · 為何非得是我們"
          title="我們走過的路"
        />

        <div style={{ marginTop: 80, display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: 28, flex: 1, minHeight: 0 }}>
          {stages.map((stage, i) => (
            <HandDrawnCard key={i} seed={31 + i * 17} fill={stage.fill} stroke={stage.stroke} padding={36} style={{ display: 'flex', flexDirection: 'column' }}>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.eyebrow, fontWeight: 700, color: stage.stroke, letterSpacing: '0.12em', marginBottom: 12 }}>
                {stage.num}
              </div>
              <div style={{ fontFamily: 'var(--font-heading)', fontSize: 36, fontWeight: 800, color: 'var(--color-text)', lineHeight: 1.25, marginBottom: 16, whiteSpace: 'pre-line' }}>
                {stage.title}
              </div>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, color: 'var(--color-text)', lineHeight: 1.65, marginBottom: 20, flex: 1 }}>
                {stage.body}
              </div>

              <ImageGrid images={stage.images} stroke={stage.stroke} />

              {stage.bullets.length > 0 && (
                <ul style={{ listStyle: 'none', padding: 0, margin: '14px 0 0', display: 'flex', flexDirection: 'column', gap: 8 }}>
                  {stage.bullets.map((b, j) => (
                    <li key={j} style={{ display: 'flex', alignItems: 'flex-start', gap: 10 }}>
                      <span style={{ color: stage.stroke, fontWeight: 700, flexShrink: 0, fontSize: TYPE_SCALE.small, lineHeight: 1.45 }}>✦</span>
                      <span style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, color: 'var(--color-text)', lineHeight: 1.45 }}>{b}</span>
                    </li>
                  ))}
                </ul>
              )}
            </HandDrawnCard>
          ))}
        </div>
      </div>
    </SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 08 — Team intro
// ═══════════════════════════════════════════════════════════════════════════
function Slide08Team() {
  const members = [
    { initials: '陳', name: '陳念誠', dept: '資訊工程學系大五', role: 'Tuckin App 發想人', color: 'var(--color-terracotta-light)', seed: 11, photo: 'images/member-chen.webp' },
    { initials: '蕭', name: '蕭力文', dept: '工程科學系碩二', role: 'App 開發者・AI 應用專長', color: 'var(--color-sage)', seed: 37, photo: 'images/member-hsiao.webp' },
    { initials: '方', name: '方昱晴', dept: '資訊工程學系大三', role: '驗證真實聚會提案・賣帽帽負責人', color: 'var(--color-lavender)', seed: 61, photo: 'images/member-fang.webp' },
    { initials: '鄭', name: '鄭義信', dept: '成大工資管所 碩士\n工資管・電機 雙學士', role: '翔超科技 董事\n泳鉅鑫再生塑料 資訊顧問', color: 'var(--color-yellow)', seed: 83, photo: 'images/member-cheng.webp' },
  ];

  return (
    <SlideFrame background="var(--color-cream)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={7} total={TOTAL_SLIDES} /></>}
      decor={
        <div style={{ position: 'absolute', bottom: '-10%', right: '-6%', opacity: 0.18, pointerEvents: 'none' }}>
          <OrganiBlob variant={1} fill="var(--color-terracotta-light)" size={560} />
        </div>
      }
    >
      <div style={{ display: 'flex', flexDirection: 'column', height: '100%', paddingBottom: 80 }}>
        <SectionTitle
          eyebrow="第五章 · 團隊"
          title="頻審團"
          subtitle={
            <>
              頻審團的工作是<span style={{ fontWeight: 600, position: 'relative', display: 'inline-block', color: 'var(--color-terracotta)' }}>頻分<Squiggle color="var(--color-terracotta)" /></span>，將所有說故事的機會
              <span style={{ fontWeight: 600, position: 'relative', display: 'inline-block', color: 'var(--color-terracotta)' }}>平分<Squiggle color="var(--color-terracotta)" /></span>給每一個人
            </>
          }
        />

        {/* Team members — 2×2 grid */}
        <div style={{ marginTop: 40, display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gridTemplateRows: 'repeat(2, 270px)', gap: 28 }}>
          {members.map((m, i) => (
            <HandDrawnCard key={i} seed={m.seed} fill={m.color} stroke="oklch(36% 0.06 60 / 0.55)" padding={32}>
              <div style={{ display: 'flex', flexDirection: 'row', gap: 24, alignItems: 'stretch', height: '100%' }}>
                <HandDrawnAvatar initials={m.initials} size={160} color="oklch(97% 0.01 75 / 0.7)" seed={m.seed + 5} src={m.photo || null} style={{ alignSelf: 'stretch', aspectRatio: '1 / 1', flexShrink: 0 }} />
                <div style={{ flex: 1, display: 'flex', flexDirection: 'column', gap: 6, alignContent: 'start' }}>
                  <div style={{ fontFamily: 'var(--font-heading)', fontSize: 32, fontWeight: 800, color: 'var(--color-text)', letterSpacing: '-0.02em', lineHeight: 1.1 }}>
                    {m.name}
                  </div>
                  <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, color: 'var(--color-text-muted)', lineHeight: 1.45, whiteSpace: 'pre-line' }}>
                    {m.dept}
                  </div>
                  <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, color: 'var(--color-text)', lineHeight: 1.45, whiteSpace: 'pre-line' }}>
                    {m.role}
                  </div>
                </div>
              </div>
            </HandDrawnCard>
          ))}
        </div>
      </div>
    </SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 09 — First battlefield: who we serve
// ═══════════════════════════════════════════════════════════════════════════
function Slide09WhoWeServe() {
  const signals = [
    'Notion / 日記 App 的重度使用者，但從來不發出去',
    '聽完 Podcast，總會記下一些想法，也想找到同樣感受的人',
    '讀書會裡發言最有深度、但平時最不常說話的那種人',
    '想過寫部落格，最後因為「我沒資格」或「太麻煩」而作罷',
  ];
  return (
    <SlideFrame background="var(--color-cream-dark)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={9} total={TOTAL_SLIDES} /></>}><div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第七章 · 第一戰場"
          title="服務誰：有感，說不出口的城市生活者"
          highlight="有感，說不出口"
        />

        <div style={{ marginTop: 56, display: 'grid', gridTemplateColumns: 'auto 1fr', gap: 56, alignItems: 'center', flex: 1 }}>
          {/* Persona card */}
          <HandDrawnCard seed={211} fill="var(--color-cream)" stroke="oklch(40% 0.06 60)" padding={48} style={{ width: 520 }}>
            <div style={{ display: 'flex', flexDirection: 'column', gap: 24 }}>
              <HandDrawnAvatar initials="？" size={92} color="var(--color-terracotta-light)" seed={7} />
              <div>
                <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, letterSpacing: '0.14em', textTransform: 'uppercase', color: 'var(--color-text-muted)', fontWeight: 600, marginBottom: 8 }}>
                  The Quiet Observer
                </div>
                <div style={{ fontFamily: 'var(--font-heading)', fontSize: 56, fontWeight: 800, color: 'var(--color-text)', letterSpacing: '-0.02em', lineHeight: 1.05 }}>
                  25–40 歲
                </div>
              </div>
              <p style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, color: 'var(--color-text)', lineHeight: 1.55, margin: 0, textWrap: 'pretty' }}>
                在城市生活，通勤、洗澡、走路時心裡說了很多話。想被理解，但不知道誰會懂；想開口，卻覺得自己「講不好」。
              </p>
            </div>
          </HandDrawnCard>

          {/* Signals */}
          <div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'center' }}>
            <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'var(--color-text-muted)', fontWeight: 600, marginBottom: 32 }}>
              行為訊號（已經在說，只是沒有出口）
            </div>
            <div style={{ display: 'flex', flexDirection: 'column', gap: 24 }}>
              {signals.map((s, i) => (
                <div key={i} style={{ display: 'flex', alignItems: 'flex-start', gap: 22 }}>
                  <span style={{ fontFamily: 'var(--font-heading)', fontSize: 34, fontWeight: 800, color: 'var(--color-terracotta)', minWidth: 54, lineHeight: 1 }}>
                    {String(i + 1).padStart(2, '0')}
                  </span>
                  <span style={{ fontFamily: 'var(--font-body)', fontSize: 30, color: 'var(--color-text)', lineHeight: 1.4 }}>
                    {s}
                  </span>
                </div>
              ))}
            </div>
          </div>
        </div>
      </div></SlideFrame>
  );
}

// ── HandDrawnHLine ────────────────────────────────────────────────────────────
// Horizontal companion to HandDrawnVLine — measures wrapper width via
// ResizeObserver, then renders a wobbly SVG path scaled to fit.
function HandDrawnHLine({ seed = 77, amp = 3, steps = 7, stroke = 'oklch(60% 0.07 70 / 0.4)', strokeWidth = 2.5 }) {
  const W = 600;
  const wrapRef = React.useRef(null);
  const { w: wrapW } = useElementSize(wrapRef, 0, 0);
  const path = React.useMemo(() => {
    const rnd = makePrng(seed);
    const pts = [];
    for (let i = 0; i <= steps; i++) {
      const t = i / steps;
      const x = t * W;
      const y = (i === 0 || i === steps) ? 0 : (rnd() - 0.5) * 2 * amp;
      pts.push([x, y]);
    }
    const f = n => +n.toFixed(2);
    let d = `M ${f(pts[0][0])},${f(pts[0][1])}`;
    for (let i = 1; i < pts.length; i++) {
      const [x0, y0] = pts[i - 1];
      const [x1, y1] = pts[i];
      const ctrl = (x1 - x0) / 3;
      d += ` C ${f(x0 + ctrl)},${f(y0)} ${f(x1 - ctrl)},${f(y1)} ${f(x1)},${f(y1)}`;
    }
    return d;
  }, [seed, amp, steps]);
  const vbH = (amp + 3) * 2;
  const svgW = Math.max(0, wrapW);
  return (
    <div ref={wrapRef} style={{ width: '100%', height: vbH, position: 'relative', flexShrink: 0 }}>
      {svgW > 0 && (
        <svg
          viewBox={`0 ${-(vbH / 2)} ${W} ${vbH}`}
          preserveAspectRatio="none"
          style={{ position: 'absolute', top: '50%', left: 0, transform: 'translateY(-50%)', width: svgW, height: vbH }}
        >
          <path d={path} stroke={stroke} strokeWidth={strokeWidth} fill="none" strokeLinecap="round" strokeLinejoin="round" vectorEffect="non-scaling-stroke" />
        </svg>
      )}
    </div>
  );
}

// ── HandDrawnVLine ────────────────────────────────────────────────────────────
// SVG is absolutely positioned so it never contributes to grid row sizing.
// useElementSize measures the wrapper (which stretches to grid row height),
// then passes that height explicitly to the SVG — no feedback loop.
function HandDrawnVLine({ seed = 77, amp = 3.5, steps = 8, stroke = 'oklch(60% 0.07 70 / 0.5)', strokeWidth = 3 }) {
  const H = 600;
  const wrapRef = React.useRef(null);
  const { h: wrapH } = useElementSize(wrapRef, 0, 0);
  const path = React.useMemo(() => {
    const rnd = makePrng(seed);
    const pts = [];
    for (let i = 0; i <= steps; i++) {
      const t = i / steps;
      const y = t * H;
      const x = (i === 0 || i === steps) ? 0 : (rnd() - 0.5) * 2 * amp;
      pts.push([x, y]);
    }
    const f = n => +n.toFixed(2);
    let d = `M ${f(pts[0][0])},${f(pts[0][1])}`;
    for (let i = 1; i < pts.length; i++) {
      const [x0, y0] = pts[i - 1];
      const [x1, y1] = pts[i];
      const ctrl = (y1 - y0) / 3;
      d += ` C ${f(x0)},${f(y0 + ctrl)} ${f(x1)},${f(y1 - ctrl)} ${f(x1)},${f(y1)}`;
    }
    return d;
  }, [seed, amp, steps]);
  const vbW = (amp + 3) * 2;
  const svgH = Math.max(0, wrapH - 12);
  return (
    <div ref={wrapRef} style={{ position: 'relative', alignSelf: 'stretch', minHeight: 0 }}>
      {svgH > 0 && (
        <svg
          viewBox={`${-(vbW / 2)} 0 ${vbW} ${H}`}
          preserveAspectRatio="none"
          style={{ position: 'absolute', top: 6, left: '50%', transform: 'translateX(-50%)', width: vbW, height: svgH }}
        >
          <path d={path} stroke={stroke} strokeWidth={strokeWidth} fill="none" strokeLinecap="round" strokeLinejoin="round" vectorEffect="non-scaling-stroke" />
        </svg>
      )}
    </div>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 — Where to fight, who to fight
// ═══════════════════════════════════════════════════════════════════════════
function Slide10Battlefield() {
  return (
    <SlideFrame background="var(--color-cream)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={10} total={TOTAL_SLIDES} /></>}><div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第八章 · 戰場 & 對手"
          title="困難與產品創新"
        />

        <div style={{ marginTop: 154, display: 'grid', gridTemplateColumns: '1fr 20px 1.15fr', columnGap: 32, alignItems: 'start' }}>
          {/* 起始點 — where we begin */}
          <div style={{ display: 'flex', flexDirection: 'column', gap: 22 }}>
            <Eyebrow color="var(--color-text-muted)">戰場 · 選擇的場域</Eyebrow>
            <h3 style={{ fontFamily: 'var(--font-heading)', fontSize: 40, fontWeight: 800, color: 'var(--color-text)', letterSpacing: '-0.02em', margin: 0, lineHeight: 1.2 }}>
              打造自己愛用的產品，<br />從台灣出發，走向世界
            </h3>

            <div style={{ display: 'flex', alignItems: 'center', gap: 12, flexWrap: 'wrap', marginTop: 4 }}>
              <span style={{ fontFamily: 'var(--font-heading)', fontSize: 24, fontWeight: 700, color: 'var(--color-text)', padding: '8px 18px', background: 'var(--color-yellow)', borderRadius: 999 }}>
                自己的生活圈
              </span>
              <span style={{ fontFamily: 'var(--font-heading)', fontSize: 26, color: 'var(--color-text-muted)' }}>→</span>
              <span style={{ fontFamily: 'var(--font-heading)', fontSize: 24, fontWeight: 700, color: 'var(--color-text)', padding: '8px 18px', background: 'oklch(92% 0.05 75)', borderRadius: 999 }}>
                台灣
              </span>
              <span style={{ fontFamily: 'var(--font-heading)', fontSize: 26, color: 'var(--color-text-muted)' }}>→</span>
              <span style={{ fontFamily: 'var(--font-heading)', fontSize: 24, fontWeight: 700, color: 'var(--color-cream)', padding: '8px 18px', background: 'var(--color-terracotta)', borderRadius: 999 }}>
                世界
              </span>
            </div>

            <p style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, color: 'var(--color-text)', lineHeight: 1.6, margin: 0, textWrap: 'pretty', marginTop: 6 }}>
              共振相信，<Highlight color="oklch(35% 0.17 45)">每一個人都有值得被聽見的故事</Highlight>。<br />但宏大願景必須始於一個真心喜愛產品的使用者。
            </p>
          </div>

          {/* hand-drawn vertical divider */}
          <HandDrawnVLine seed={42} amp={4} steps={8} />

          {/* 對手 — who we're up against */}
          <div style={{ display: 'flex', flexDirection: 'column', gap: 20, paddingLeft: 64 }}>
            <Eyebrow color="var(--color-text-muted)">對手 · 內部的痛點</Eyebrow>

            <HandDrawnCard seed={188} fill="oklch(96% 0.018 70)" stroke="oklch(60% 0.04 70 / 0.7)" padding={24} strokeWidth={1.5}>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: 18, color: 'var(--color-text-muted)', letterSpacing: '0.08em', marginBottom: 8, textTransform: 'uppercase', fontWeight: 600 }}>
                表面的競品
              </div>
              <div style={{ fontFamily: 'var(--font-heading)', fontSize: 30, fontWeight: 700, color: 'var(--color-text-muted)', textDecoration: 'line-through', textDecorationColor: 'oklch(55% 0.04 70 / 0.6)', letterSpacing: '-0.01em' }}>
                Medium · Threads · 小紅書
              </div>
            </HandDrawnCard>

            <HandDrawnCard seed={233} fill="var(--color-terracotta-light)" stroke="oklch(38% 0.11 55)" padding={28}>
              <div style={{ fontFamily: 'var(--font-body)', fontSize: 18, color: 'var(--color-terracotta)', letterSpacing: '0.08em', fontWeight: 700, marginBottom: 10, textTransform: 'uppercase' }}>
                真正的對手
              </div>
              <div style={{ fontFamily: 'var(--font-heading)', fontSize: 30, fontWeight: 800, color: 'var(--color-text)', lineHeight: 1.3, letterSpacing: '-0.01em' }}>
                Doomscrolling 本身，<br />
                <span style={{ color: 'var(--color-terracotta)' }}>以及人們覺得「自己不夠格發聲」的想法。</span>
              </div>
            </HandDrawnCard>
          </div>
        </div>
      </div></SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 11 — How to win
// ═══════════════════════════════════════════════════════════════════════════
function Slide11HowToWin() {
  const weapons = [
    {
      n: '01',
      title: '有發心，以「體悟」為信號',
      textNode: <>我們不讓流量決定誰被看見。共振以「體悟」為核心，根據你分享的文章、你記下的想法卡片，為你推薦最合適的故事。<Highlight color="oklch(35% 0.17 45)">真實、有體悟的故事，感染生命的熱情</Highlight>，且不會因產生比較心態而焦慮。</>,
      color: 'var(--color-terracotta-light)',
      stroke: 'oklch(38% 0.11 55)',
      seed: 41,
    },
    {
      n: '02',
      title: '讀寫完全平等，付費買工具不買特權',
      textNode: <>沒有 Premium 文章牆，沒有付費才能讀到的思想。共振的付費功能只提供 AI 寫作工具，幫使用者整理與連結卡片、建構個人知識體系。<Highlight color="oklch(42% 0.09 290)">促進思想的流通，是正向影響世界的根本方法</Highlight>。</>,
      color: 'oklch(94% 0.032 290)',
      stroke: 'oklch(42% 0.09 290)',
      seed: 67,
    },
    {
      n: '03',
      title: '用故事交朋友，不做創作者粉絲制',
      textNode: <>沒有追蹤數、沒有「創作者 vs 讀者」的上下階層。在共振，<Highlight color="oklch(34% 0.11 150)">分享是對等的雙向互動</Highlight> ── 交流像朋友，而非仰望。連結讓我們相遇，故事讓彼此共振。</>,
      color: 'oklch(93% 0.042 140)',
      stroke: 'oklch(38% 0.11 140)',
      seed: 97,
    },
  ];
  return (
    <SlideFrame background="var(--color-cream-dark)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={11} total={TOTAL_SLIDES} /></>}><div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第九章 · 如何贏"
          title="三個產品設計哲學"
          highlight="設計哲學"
        />

        <div style={{ marginTop: 64, display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 36, flex: 1, alignItems: 'stretch', alignContent: 'end' }}>
          {weapons.map(w => (
            <HandDrawnCard key={w.n} seed={w.seed} fill={w.color} stroke={w.stroke} padding={40} style={{ height: '100%' }}>
              <div style={{ display: 'flex', flexDirection: 'column', height: '100%', gap: 24 }}>
                <div style={{ fontFamily: 'var(--font-heading)', fontSize: 96, fontWeight: 800, color: 'var(--color-text)', opacity: 0.85, lineHeight: 0.9, letterSpacing: '-0.03em' }}>
                  {w.n}
                </div>
                <h3 style={{ fontFamily: 'var(--font-heading)', fontSize: 38, fontWeight: 700, color: 'var(--color-text)', letterSpacing: '-0.02em', lineHeight: 1.2, margin: 0 }}>
                  {w.title}
                </h3>
                <p style={{ fontFamily: 'var(--font-body)', fontSize: 26, lineHeight: 1.55, color: 'var(--color-text)', margin: 'auto 0 0', textWrap: 'pretty' }}>
                  {w.textNode}
                </p>
              </div>
            </HandDrawnCard>
          ))}
        </div>
      </div></SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 — Business Model
// ═══════════════════════════════════════════════════════════════════════════
function Slide12BusinessModel() {
  const freeItems = [
    { label: '撰寫文章', desc: '不受限地記錄你的想法、體悟與故事' },
    { label: '分享內容', desc: '讓你的文章在社群中自由流通，讓同頻的人找到你' },
    { label: '閱讀他人作品', desc: '所有內容完全對所有人開放，思想的流通不設牆' },
  ];

  const paidItems = [
    {
      n: '01',
      title: '智慧標籤整理',
      textNode: <>AI 根據你為文章設定的<Highlight color="oklch(38% 0.11 55)">關鍵字標籤</Highlight>，自動分類與銜接卡片，讓你<Highlight color="oklch(38% 0.11 55)">快速找到先前撰寫過的類似點子或故事延伸</Highlight>。</>,
      fill: 'var(--color-terracotta-light)',
      stroke: 'oklch(38% 0.11 55)',
      seed: 171,
      img: 'assets/10 標籤.png',
      imgHeight: 170,
    },
    {
      n: '02',
      title: '卡片快速連結',
      textNode: <>當文章或卡片中提到相關概念時，AI 幫你<Highlight color="oklch(42% 0.09 290)">迅速串聯另一張卡片</Highlight>，協助快速釐清思緒，<Highlight color="oklch(42% 0.09 290)">大幅提升寫作效率</Highlight>。</>,
      fill: 'oklch(94% 0.032 290)',
      stroke: 'oklch(42% 0.09 290)',
      seed: 190,
      img: 'assets/10 連結.png',
      imgHeight: 150,
    },
  ];

  return (
    <SlideFrame background="var(--color-cream)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={12} total={TOTAL_SLIDES} /></>}>
      <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第十章 · 營收模式"
          title="思想流通，永遠免費"
          highlight="永遠免費"
        />
        {/* <p style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.body, color: 'var(--color-text-muted)', lineHeight: 1.55, margin: '16px 0 0', whiteSpace: 'nowrap' }}>
          付費功能只提供 AI 寫作工具，不設內容牆──思想的流通，不應由錢包決定。
        </p> */}

        <div style={{ marginTop: 64, display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: 44, flex: 1 }}>
          {/* Col 1: Free */}
          <div style={{ display: 'flex', flexDirection: 'column' }}>
            <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'var(--color-text-muted)', fontWeight: 600, marginBottom: 32 }}>
              免費 · Free — 所有人皆可使用
            </div>
            <div style={{ display: 'flex', flexDirection: 'column', flex: 1 }}>
              {freeItems.map((item, i) => (
                <React.Fragment key={i}>
                  <HandDrawnHLine seed={50 + i * 29} />
                  <div style={{ display: 'flex', alignItems: 'flex-start', gap: 22, paddingTop: 28, paddingBottom: 28 }}>
                    <span style={{ fontFamily: 'var(--font-heading)', fontSize: 32, fontWeight: 800, color: 'var(--color-text-muted)', minWidth: 44, lineHeight: 1, flexShrink: 0 }}>
                      {String(i + 1).padStart(2, '0')}
                    </span>
                    <div>
                      <div style={{ fontFamily: 'var(--font-heading)', fontSize: 34, fontWeight: 700, color: 'var(--color-text)', lineHeight: 1.1, marginBottom: 8 }}>
                        {item.label}
                      </div>
                      <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, color: 'var(--color-text-muted)', lineHeight: 1.55 }}>
                        {item.desc}
                      </div>
                    </div>
                  </div>
                </React.Fragment>
              ))}
            </div>
          </div>

          {/* Col 2 & 3: Paid AI cards */}
          {paidItems.map((item, i) => (
            <div key={i} style={{ display: 'flex', flexDirection: 'column' }}>
              {i === 0 && (
                <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'var(--color-terracotta)', fontWeight: 700, marginBottom: 32 }}>
                  付費 · Pro — AI 寫作工具
                </div>
              )}
              {i === 1 && (
                <div style={{ marginBottom: 32, visibility: 'hidden', fontSize: TYPE_SCALE.small }}>
                  &nbsp;
                </div>
              )}
              <HandDrawnCard seed={item.seed} fill={item.fill} stroke={item.stroke} padding={36} style={{ flex: 1 }}>
                <div style={{ display: 'flex', flexDirection: 'column', height: '100%', gap: 16 }}>
                  <div style={{ fontFamily: 'var(--font-heading)', fontSize: 76, fontWeight: 800, color: 'var(--color-text)', opacity: 0.75, lineHeight: 0.9, letterSpacing: '-0.03em' }}>
                    {item.n}
                  </div>
                  <h3 style={{ fontFamily: 'var(--font-heading)', fontSize: 34, fontWeight: 700, color: 'var(--color-text)', margin: 0, lineHeight: 1.2 }}>
                    {item.title}
                  </h3>
                  <p style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, color: 'var(--color-text)', lineHeight: 1.55, margin: 0, textWrap: 'pretty' }}>
                    {item.textNode}
                  </p>
                  {item.img && (
                    <img src={item.img} alt={item.title} style={{ height: item.imgHeight || 150, width: 'auto', maxWidth: '100%', objectFit: 'contain', marginTop: 'auto', alignSelf: 'center', display: 'block' }} />
                  )}
                </div>
              </HandDrawnCard>
            </div>
          ))}
        </div>
      </div>
    </SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 13 — Budget
// ═══════════════════════════════════════════════════════════════════════════
function Slide13Budget() {
  const items = [
    { label: '平台開發費', en: 'Platform Dev', amount: 35000, pct: 35, color: 'var(--color-terracotta)', detail: 'AI 推薦引擎、APP 上架費' },
    { label: '儀器/設備使用費', en: 'Equipment', amount: 25000, pct: 25, color: 'var(--color-sky)', detail: '雲端主機、資料庫、API' },
    { label: '打樣費', en: 'Prototyping', amount: 15000, pct: 15, color: 'var(--color-lavender)', detail: 'UI/UX 設計、品牌識別、插圖素材' },
    { label: '測試費', en: 'Testing', amount: 15000, pct: 15, color: 'var(--color-sage)', detail: '使用者測試招募、市場調研' },
    { label: '顧問諮詢費', en: 'Consulting', amount: 10000, pct: 10, color: 'var(--color-yellow)', detail: '法律顧問、業師諮詢' },
  ];

  return (
    <SlideFrame background="var(--color-cream)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={13} total={TOTAL_SLIDES} /></>}
      decor={
        <div style={{ position: 'absolute', top: '-10%', right: '-6%', opacity: 0.18, pointerEvents: 'none' }}>
          <OrganiBlob variant={3} fill="var(--color-terracotta-light)" size={600} />
        </div>
      }
    >
      <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第十一章 · 資源規劃"
          title="經費預估"
          subtitle="打造 MLP 並驗證產品市場"
        />

        <div style={{ marginTop: 70, flex: 1, display: 'flex', gap: 40, alignItems: 'stretch', justifyContent: 'space-between' }}>
          {/* Left: bar chart */}
          <div style={{ flex: 1, display: 'flex', flexDirection: 'column', justifyContent: 'space-around', paddingRight: 65 }}>
            {items.map((item, i) => (
              <div key={i} style={{ display: 'flex', alignItems: 'center', gap: 16 }}>
                <div style={{ width: 220, textAlign: 'right', flexShrink: 0 }}>
                  <div style={{ fontFamily: 'var(--font-heading)', fontSize: 28, fontWeight: 700, color: 'var(--color-text)', lineHeight: 1.1 }}>
                    {item.label}
                  </div>
                </div>
                <div style={{ flex: 1, height: 40, background: 'oklch(91% 0.015 75)', borderRadius: 10, overflow: 'hidden', position: 'relative' }}>
                  <div style={{
                    width: `${item.pct}%`, height: '100%',
                    background: item.color,
                    borderRadius: 10,
                    transition: 'width 0.6s ease',
                  }} />
                </div>
                <div style={{ width: 56, flexShrink: 0, fontFamily: 'var(--font-body)', fontSize: 20, fontWeight: 700, color: 'var(--color-text)' }}>
                  {item.pct}%
                </div>
                <div style={{ width: 140, flexShrink: 0, fontFamily: 'var(--font-heading)', fontSize: 26, fontWeight: 800, color: 'var(--color-text)', textAlign: 'right' }}>
                  NT${item.amount.toLocaleString()}
                </div>
              </div>
            ))}
          </div>

          {/* Right: total + details */}
          <div style={{ width: 440, flexShrink: 0, display: 'flex', flexDirection: 'column', gap: 24 }}>
            <HandDrawnCard seed={311} fill="var(--color-terracotta)" stroke="oklch(30% 0.14 45)" padding={40}>
              <div style={{ display: 'flex', flexDirection: 'column', gap: 4, color: 'var(--color-cream)' }}>
                <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, letterSpacing: '0.14em', textTransform: 'uppercase', opacity: 0.8 }}>
                  Total Budget
                </div>
                <div style={{ fontFamily: 'var(--font-heading)', fontSize: 44, fontWeight: 800, lineHeight: 1, letterSpacing: '-0.02em', marginTop: 8 }}>
                  NT$
                </div>
                <div style={{ fontFamily: 'var(--font-heading)', fontSize: 68, fontWeight: 800, lineHeight: 0.95, letterSpacing: '-0.03em' }}>
                  100,000
                </div>
              </div>
            </HandDrawnCard>

            <div style={{ display: 'flex', flexDirection: 'column', gap: 18, flex: 1, justifyContent: 'center' }}>
              {items.map((item, i) => (
                <div key={i} style={{ display: 'flex', alignItems: 'flex-start', gap: 14 }}>
                  <div style={{
                    width: 14, height: 14, borderRadius: '50%', background: item.color,
                    flexShrink: 0, marginTop: 5, border: '2px solid oklch(36% 0.06 60 / 0.25)',
                  }} />
                  <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, color: 'var(--color-text)', lineHeight: 1.4 }}>
                    {item.detail}
                  </div>
                </div>
              ))}
            </div>
          </div>
        </div>
      </div>
    </SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 14 — Timeline
// ═══════════════════════════════════════════════════════════════════════════
function Slide14Timeline() {
  const months = ['Apr', 'May', 'Aug', 'Sep', 'Oct'];
  const phases = [
    {
      title: '規格確認',
      items: ['需求分析與定義', 'UI/UX 原型設計', '技術架構規劃'],
      color: 'var(--color-terracotta-light)',
      stroke: 'oklch(38% 0.11 55)',
      done: true,
    },
    {
      title: 'MLP 開發',
      items: ['核心功能實作', '故事卡片系統', 'AI 推薦引擎'],
      color: 'var(--color-yellow)',
      stroke: 'oklch(44% 0.12 88)',
      current: true,
    },
    {
      title: '內部測試',
      items: ['Alpha 測試', '用戶反饋收集', 'Bug 修復優化'],
      color: 'var(--color-sage)',
      stroke: 'oklch(40% 0.10 145)',
    },
    {
      title: 'Beta 公測',
      items: ['首批用戶招募', '社群行銷啟動', '產品迭代優化'],
      color: 'var(--color-lavender)',
      stroke: 'oklch(42% 0.10 280)',
    },
    {
      title: '正式上線',
      items: ['全平台正式發布', '行銷活動啟動', '規模化推廣'],
      color: 'var(--color-sky)',
      stroke: 'oklch(46% 0.09 220)',
    },
  ];

  const svgW = 1580;
  const svgH = 130;
  const nodeY = 54;
  const nodeR = 15;
  const positions = months.map((_, i) => 60 + (i / (months.length - 1)) * (svgW - 120));
  const currentIdx = phases.findIndex(p => p.current);

  return (
    <SlideFrame background="var(--color-cream-dark)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={14} total={TOTAL_SLIDES} /></>}>
      <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第十二章 · 時程規劃"
          title="里程碑時間軸"
        />

        {/* Timeline SVG */}
        <div style={{ marginTop: 180, width: '100%' }}>
          <svg viewBox={`0 0 ${svgW} ${svgH}`} style={{ width: '100%', height: 'auto', overflow: 'visible' }}>
            {/* Background track */}
            <line
              x1={positions[0]} y1={nodeY}
              x2={positions[positions.length - 1]} y2={nodeY}
              stroke="oklch(36% 0.06 60 / 0.18)" strokeWidth="4" strokeLinecap="round"
            />
            {/* Progress track (up to current) */}
            <line
              x1={positions[0]} y1={nodeY}
              x2={positions[currentIdx]} y2={nodeY}
              stroke="var(--color-terracotta)" strokeWidth="4" strokeLinecap="round"
            />

            {positions.map((x, i) => {
              const phase = phases[i];
              const isDone = phase.done;
              const isCurrent = phase.current;
              const isFuture = !isDone && !isCurrent;

              return (
                <g key={i}>
                  {/* Outer pulse ring for current */}
                  {isCurrent && (
                    <circle cx={x} cy={nodeY} r={nodeR + 10} fill="none"
                      stroke="var(--color-terracotta)" strokeWidth="2" opacity="0.4" />
                  )}
                  {/* Node */}
                  <circle cx={x} cy={nodeY} r={nodeR}
                    fill={isFuture ? 'oklch(91% 0.015 75)' : 'var(--color-terracotta)'}
                    stroke={isFuture ? 'oklch(52% 0.04 70 / 0.4)' : 'var(--color-terracotta)'}
                    strokeWidth="2.5"
                  />
                  {/* Checkmark for done */}
                  {isDone && (
                    <path
                      d={`M ${x - 8} ${nodeY + 1} L ${x - 2} ${nodeY + 7} L ${x + 8} ${nodeY - 7}`}
                      stroke="var(--color-cream)" strokeWidth="2.5" fill="none"
                      strokeLinecap="round" strokeLinejoin="round"
                    />
                  )}
                  {/* Inner dot for current */}
                  {isCurrent && (
                    <circle cx={x} cy={nodeY} r={5} fill="var(--color-cream)" />
                  )}
                  {/* "目前進度" label above */}
                  {isCurrent && (
                    <>
                      <line x1={x} y1={nodeY - nodeR - 8} x2={x} y2={nodeY - nodeR - 28}
                        stroke="var(--color-terracotta)" strokeWidth="1.5" strokeDasharray="4 3" />
                      <text x={x} y={nodeY - nodeR - 34} textAnchor="middle"
                        fontFamily="var(--font-body)" fontSize="20" fontWeight="600"
                        fill="var(--color-terracotta)">
                        ▲ 目前進度
                      </text>
                    </>
                  )}
                  {/* Month label */}
                  <text x={x} y={nodeY + nodeR + 28} textAnchor="middle"
                    fontFamily="var(--font-heading)" fontSize="30" fontWeight={isCurrent ? '800' : '600'}
                    fill={isCurrent ? 'oklch(38% 0.14 45)' : 'oklch(36% 0.06 60)'}>
                    {months[i]}
                  </text>
                </g>
              );
            })}
          </svg>
        </div>

        {/* Phase cards */}
        <div style={{ marginTop: 24, display: 'grid', gridTemplateColumns: 'repeat(5, 1fr)', gap: 22, flex: 1, minHeight: 0, maxHeight: 300 }}>
          {phases.map((phase, i) => (
            <HandDrawnCard key={i} seed={301 + i * 13} fill={phase.color} stroke={phase.stroke} padding={30}>
              <div style={{ display: 'flex', flexDirection: 'column', height: '100%', gap: 14 }}>
                <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.eyebrow, fontWeight: 700, color: phase.stroke, letterSpacing: '0.12em', textTransform: 'uppercase' }}>
                  Phase {i + 1}
                </div>
                <div style={{ fontFamily: 'var(--font-heading)', fontSize: 32, fontWeight: 800, color: 'var(--color-text)', lineHeight: 1.2 }}>
                  {phase.title}
                </div>
                <ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexDirection: 'column', gap: 10, flex: 1 }}>
                  {phase.items.map((item, j) => (
                    <li key={j} style={{ display: 'flex', alignItems: 'flex-start', gap: 10 }}>
                      <span style={{ color: phase.stroke, fontWeight: 700, flexShrink: 0, fontSize: 16, marginTop: 2 }}>✦</span>
                      <span style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.small, color: 'var(--color-text)', lineHeight: 1.4 }}>{item}</span>
                    </li>
                  ))}
                </ul>
                {phase.current && (
                  <div style={{ marginTop: 8 }}>
                    <TagPill color="var(--color-terracotta-light)">進行中</TagPill>
                  </div>
                )}
                {phase.done && (
                  <div style={{ marginTop: 8 }}>
                    <TagPill color="oklch(90% 0.07 140 / 0.7)">已完成</TagPill>
                  </div>
                )}
              </div>
            </HandDrawnCard>
          ))}
        </div>
      </div>
    </SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 15 — Product Prototype
// ═══════════════════════════════════════════════════════════════════════════
function Slide15Prototype() {
  const screens = [
    {
      src: 'assets/demo1.png',
      label: '首頁',
      desc: '透過介面與體驗的設計，讓這份使命自然地被傳遞。在每一個細節中，都貫徹有機、人性與溫暖的設計原則。',
      fill: 'var(--color-terracotta-light)',
      stroke: 'oklch(38% 0.11 55)',
      seed: 361,
    },
    {
      src: 'assets/demo2.png',
      label: '故事探索頁',
      desc: '卡片式瀏覽介面讓使用者快速找到值得共鳴的故事，每張卡片呈現故事精華、分類標籤與作者，讓同頻的人自然相遇。',
      fill: 'oklch(94% 0.032 290)',
      stroke: 'oklch(42% 0.09 290)',
      seed: 377,
    },
  ];

  return (
    <SlideFrame background="var(--color-cream-dark)" grain={0.05}
      chrome={<><BrandMark /><SlideNumber n={15} total={TOTAL_SLIDES} /></>}
      decor={
        <>
          <div style={{ position: 'absolute', top: '-8%', right: '-5%', opacity: 0.18, pointerEvents: 'none' }}>
            <OrganiBlob variant={0} fill="var(--color-terracotta-light)" size={560} />
          </div>
          <div style={{ position: 'absolute', bottom: '-10%', left: '-4%', opacity: 0.14, pointerEvents: 'none' }}>
            <OrganiBlob variant={4} fill="var(--color-lavender)" size={480} />
          </div>
        </>
      }
    >
      <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
        <SectionTitle
          eyebrow="第十三章 · 產品雛形"
          title="我們正在打造的樣子"
          highlight="正在打造"
        />
        <div style={{ marginTop: 44, display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 40, flex: 1, minHeight: 0 }}>
          {screens.map((screen, i) => (
            <HandDrawnCard key={i} seed={screen.seed} fill={screen.fill} stroke={screen.stroke} padding={32}>
              <div style={{ display: 'flex', flexDirection: 'column', height: '100%', gap: 20 }}>
                <div style={{ flex: 1, borderRadius: 12, overflow: 'hidden', border: `1.5px solid ${screen.stroke}`, minHeight: 0 }}>
                  <img
                    src={screen.src}
                    alt={screen.label}
                    style={{ width: '100%', height: '100%', objectFit: 'cover', objectPosition: 'top', display: 'block' }}
                  />
                </div>
                <div>
                  <div style={{ fontFamily: 'var(--font-heading)', fontSize: 34, fontWeight: 800, color: 'var(--color-text)', marginBottom: 10, lineHeight: 1.1 }}>
                    {screen.label}
                  </div>
                  <div style={{ fontFamily: 'var(--font-body)', fontSize: TYPE_SCALE.bodySm, color: 'var(--color-text)', lineHeight: 1.6 }}>
                    {screen.desc}
                  </div>
                </div>
              </div>
            </HandDrawnCard>
          ))}
        </div>
      </div>
    </SlideFrame>
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 16 — Closing: our belief
// ═══════════════════════════════════════════════════════════════════════════
function Slide16Closing() {
  return (
    <SlideFrame
      background="var(--color-terracotta)"
      grain={0.08}
      chrome={<><BrandMark dark /><SlideNumber n={16} total={TOTAL_SLIDES} dark /></>}
      decor={
        <>
          <div style={{ position: 'absolute', top: '-12%', left: '-8%', opacity: 0.16, pointerEvents: 'none' }}>
            <OrganiBlob variant={2} fill="oklch(98% 0.01 75)" size={640} />
          </div>
          <div style={{ position: 'absolute', bottom: '-14%', right: '-6%', opacity: 0.14, pointerEvents: 'none' }}>
            <OrganiBlob variant={0} fill="oklch(98% 0.01 75)" size={560} />
          </div>
        </>
      }
    ><div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'center', height: '100%', alignItems: 'flex-start', maxWidth: 1500 }}>
        <Eyebrow color="oklch(96% 0.015 75 / 0.75)">尾聲 · 我們的信念</Eyebrow>
        <h2 style={{
          fontFamily: 'var(--font-heading)',
          fontSize: 64,
          fontWeight: 800,
          lineHeight: 1.16,
          letterSpacing: '-0.025em',
          color: 'var(--color-cream)',
          margin: 0,
          textWrap: 'balance',
        }}>
          人人都是故事的分享者<br />
          獨一無二的你 <br />
          <span style={{ position: 'relative', display: 'inline-block', color: 'var(--color-yellow)' }}>
            必能為世界帶來漣漪
            <Squiggle color="var(--yellow)" />
          </span><br />
        </h2>
        <p style={{
          fontFamily: 'var(--font-heading)',
          fontStyle: 'italic',
          fontSize: 34,
          color: 'oklch(96% 0.015 75 / 0.85)',
          margin: '56px 0 0',
          letterSpacing: '-0.005em',
        }}>
          Let lives influence lives.
        </p>
      </div></SlideFrame>
  );
}

Object.assign(window, {
  TOTAL_SLIDES,
  Slide01Cover, Slide02Thesis, Slide03Beliefs, Slide04WhyNow,
  Slide05Versus, Slide06Product, Slide07WhyUs, Slide08Team,
  Slide09WhoWeServe, Slide10Battlefield, Slide11HowToWin,
  Slide12BusinessModel, Slide13Budget, Slide14Timeline,
  Slide15Prototype, Slide16Closing,
});
