// Three Hero directions for Mika. All share: palette, typography, and the
// same watercolor Mika illustrations. They differ in composition and rhythm.
//
// Placeholder copy is marked [COPY] — user will swap in定版 after picking a
// direction. Tagline "你嚕貓、牠幫你工作。" is固定.

// ─── Shared palette (warm japandi, no pure black/white) ──────────
// Calling these out in one place makes the three heros obviously a family.
const MIKA_COLORS = {
  cream:    '#faf7f0',   // page bg — warmer than white
  paper:    '#f3ede1',   // card/surface bg
  linen:    '#e8dfc9',   // dividers, light accents
  wood:     '#d4b896',   // warm mid tone
  tea:      '#8a6f4a',   // headline color (奶茶)
  bark:     '#5a4632',   // body text
  moss:     '#8a9a6b',   // 苔綠 accent
  clay:     '#c88878',   // 陶器白的暖紅互補
};

// ─── Shared "paw print" decoration ────────────────────────────────
// Tiny SVG scatter — used as subtle bg accent on cards. Not too cutesy.
const PawPrint = ({ size = 16, color = '#8a6f4a', opacity = 0.15, style }) => (
  <svg viewBox="0 0 20 20" width={size} height={size} style={{ opacity, ...style }} aria-hidden="true">
    <ellipse cx="10" cy="13" rx="5" ry="4" fill={color} />
    <ellipse cx="4"  cy="7"  rx="2" ry="2.5" fill={color} />
    <ellipse cx="8"  cy="4"  rx="2" ry="2.5" fill={color} />
    <ellipse cx="12" cy="4"  rx="2" ry="2.5" fill={color} />
    <ellipse cx="16" cy="7"  rx="2" ry="2.5" fill={color} />
  </svg>
);

// ─── Small leaf SVG — 橄欖葉 / 龜背芋 suggestion ──────────────────
const OliveSprig = ({ w = 120, style }) => (
  <svg viewBox="0 0 120 180" width={w} style={style} aria-hidden="true">
    <defs>
      <filter id="leaf-wc" x="-10%" y="-10%" width="120%" height="120%">
        <feTurbulence type="fractalNoise" baseFrequency="0.02" numOctaves="2" seed="3" />
        <feDisplacementMap in="SourceGraphic" scale="2" />
      </filter>
    </defs>
    <g filter="url(#leaf-wc)">
      {/* Stem — gentle curve. */}
      <path d="M 60 10 Q 58 90 55 170" stroke="#6b7a4a" strokeWidth="1.2" fill="none" />
      {/* Leaves alternating — olive shaped. */}
      <ellipse cx="45" cy="30"  rx="12" ry="5" fill="#8a9a6b" opacity="0.85" transform="rotate(-35 45 30)" />
      <ellipse cx="72" cy="50"  rx="13" ry="5" fill="#a0b080" opacity="0.8"  transform="rotate(30 72 50)" />
      <ellipse cx="42" cy="72"  rx="14" ry="5" fill="#8a9a6b" opacity="0.85" transform="rotate(-28 42 72)" />
      <ellipse cx="74" cy="95"  rx="13" ry="5" fill="#9cac78" opacity="0.8"  transform="rotate(32 74 95)" />
      <ellipse cx="40" cy="118" rx="13" ry="5" fill="#8a9a6b" opacity="0.85" transform="rotate(-30 40 118)" />
      <ellipse cx="68" cy="140" rx="11" ry="4" fill="#a0b080" opacity="0.8"  transform="rotate(28 68 140)" />
      <ellipse cx="46" cy="158" rx="9"  ry="4" fill="#8a9a6b" opacity="0.85" transform="rotate(-32 46 158)" />
    </g>
  </svg>
);

// ─── Teacup (for方向 B) — chunky陶器, top-down perspective ──────
const TeaCup = ({ size = 110, style }) => (
  <svg viewBox="0 0 140 140" width={size} height={size} style={style} aria-hidden="true">
    <defs>
      <filter id="cup-wc" x="-10%" y="-10%" width="120%" height="120%">
        <feTurbulence type="fractalNoise" baseFrequency="0.025" numOctaves="2" seed="5" />
        <feDisplacementMap in="SourceGraphic" scale="2.5" />
      </filter>
    </defs>
    {/* Saucer. */}
    <ellipse cx="70" cy="76" rx="62" ry="18" fill="#e8dfc9" filter="url(#cup-wc)" />
    <ellipse cx="70" cy="73" rx="58" ry="15" fill="#f3ede1" filter="url(#cup-wc)" />
    {/* Cup outer. */}
    <ellipse cx="70" cy="68" rx="40" ry="11" fill="#d4b896" filter="url(#cup-wc)" />
    {/* Cup inner — the tea. */}
    <ellipse cx="70" cy="66" rx="34" ry="8.5" fill="#8a6f4a" filter="url(#cup-wc)" />
    <ellipse cx="70" cy="65" rx="30" ry="7" fill="#a88a66" opacity="0.6" />
    {/* Steam — wispy手寫 curls. */}
    <g stroke="#b8a888" strokeWidth="1.2" fill="none" opacity="0.55" strokeLinecap="round">
      <path d="M 58 55 Q 54 45 60 38 Q 65 30 60 22" />
      <path d="M 70 55 Q 74 44 68 36 Q 63 28 70 20" />
      <path d="M 82 55 Q 86 44 80 36 Q 75 28 82 20" />
    </g>
  </svg>
);

// ─── Open notebook (for方向 B) — slightly skewed, hand-drawn lines ──
const Notebook = ({ w = 300, style }) => (
  <svg viewBox="0 0 320 200" width={w} style={style} aria-hidden="true">
    <defs>
      <filter id="nb-wc" x="-5%" y="-5%" width="110%" height="110%">
        <feTurbulence type="fractalNoise" baseFrequency="0.03" numOctaves="2" seed="8" />
        <feDisplacementMap in="SourceGraphic" scale="1.5" />
      </filter>
    </defs>
    {/* Book shadow. */}
    <path d="M 20 180 Q 160 195 300 175 L 300 185 Q 160 200 20 188 Z" fill="#c8b896" opacity="0.3" />
    {/* Left page. */}
    <path d="M 20 30 Q 18 110 22 180 L 160 185 Q 158 110 158 30 Q 90 26 20 30 Z" fill="#faf5e6" filter="url(#nb-wc)" />
    {/* Right page — lifted a bit. */}
    <path d="M 160 30 Q 162 110 160 185 L 300 175 Q 302 105 300 28 Q 230 26 160 30 Z" fill="#f5efdf" filter="url(#nb-wc)" />
    {/* Spine crease. */}
    <path d="M 160 30 Q 158 110 160 185" stroke="#c8b896" strokeWidth="1" fill="none" opacity="0.5" />
    {/* Handwritten-looking lines (fake script). */}
    <g stroke="#8a6f4a" strokeWidth="1.1" fill="none" opacity="0.55" strokeLinecap="round">
      <path d="M 35 55 Q 60 52 92 55 Q 120 58 140 54" />
      <path d="M 35 72 Q 65 69 100 72 Q 125 74 145 70" />
      <path d="M 35 89 Q 55 86 80 89" />
      <path d="M 35 115 Q 62 112 95 115 Q 125 117 144 113" />
      <path d="M 35 132 Q 58 129 88 132" />
    </g>
    <g stroke="#8a6f4a" strokeWidth="1.1" fill="none" opacity="0.5" strokeLinecap="round">
      <path d="M 175 52 Q 205 49 240 52 Q 268 54 290 50" />
      <path d="M 175 70 Q 200 67 228 70" />
      <path d="M 175 88 Q 210 85 245 88 Q 270 90 288 86" />
      <path d="M 175 108 Q 195 105 220 108" />
      {/* A little checkbox doodle. */}
      <rect x="175" y="128" width="7" height="7" rx="1" />
      <path d="M 176 131 L 179 134 L 185 128" strokeWidth="0.9" />
      <path d="M 190 132 Q 215 129 248 132" />
    </g>
  </svg>
);

// ─── Pen (subtle prop) ────────────────────────────────────────────
const Pen = ({ w = 140, style }) => (
  <svg viewBox="0 0 180 30" width={w} style={style} aria-hidden="true">
    <g>
      <path d="M 8 15 L 150 12 L 168 15 L 150 18 Z" fill="#8a6f4a" />
      <path d="M 150 12 L 168 15 L 150 18 Z" fill="#5a4632" />
      <circle cx="12" cy="15" r="4" fill="#8a9a6b" />
    </g>
  </svg>
);

// ─── Shared Hero primitives ──────────────────────────────────────

const heroStyles = {
  tagline: {
    fontFamily: '"Noto Serif TC", "Source Han Serif", serif',
    fontWeight: 500,
    color: MIKA_COLORS.tea,
    letterSpacing: '0.04em',
    textWrap: 'pretty',
  },
  eyebrow: {
    fontFamily: '"Caveat", "Homemade Apple", cursive',
    color: MIKA_COLORS.moss,
    fontSize: 22,
    letterSpacing: '0.02em',
  },
  sub: {
    fontFamily: '"Noto Serif TC", serif',
    color: MIKA_COLORS.bark,
    lineHeight: 1.9,
    fontWeight: 400,
  },
  cta: {
    fontFamily: '"Noto Serif TC", serif',
    background: MIKA_COLORS.tea,
    color: MIKA_COLORS.cream,
    border: 'none',
    padding: '14px 32px',
    borderRadius: 999,
    fontSize: 16,
    letterSpacing: '0.08em',
    cursor: 'pointer',
    boxShadow: '0 2px 0 rgba(90,70,50,0.15), 0 8px 20px rgba(138,111,74,0.18)',
    transition: 'transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s',
  },
  ctaGhost: {
    fontFamily: '"Noto Serif TC", serif',
    background: 'transparent',
    color: MIKA_COLORS.tea,
    border: `1px solid ${MIKA_COLORS.tea}`,
    padding: '13px 28px',
    borderRadius: 999,
    fontSize: 15,
    letterSpacing: '0.06em',
    cursor: 'pointer',
  },
  nav: {
    fontFamily: '"Noto Serif TC", serif',
    fontSize: 14,
    color: MIKA_COLORS.bark,
    letterSpacing: '0.1em',
  },
  logo: {
    fontFamily: '"Caveat", cursive',
    fontSize: 32,
    color: MIKA_COLORS.tea,
    letterSpacing: '0.02em',
  },
};

// Shared top nav — consistent across all three directions so the user can
// focus on the hero composition differences.
const TopNav = ({ bg = 'transparent' }) => (
  <nav style={{
    display: 'flex', alignItems: 'center', justifyContent: 'space-between',
    padding: '24px 48px', background: bg, position: 'relative', zIndex: 5,
  }}>
    <div style={heroStyles.logo}>Mika</div>
    <div style={{ display: 'flex', gap: 36 }}>
      {['認識 Mika', '輕量版', '常見問題'].map((t, i) => (
        <span key={i} style={{ ...heroStyles.nav, cursor: 'pointer', opacity: 0.75 }}>{t}</span>
      ))}
    </div>
    <button style={{ ...heroStyles.ctaGhost, padding: '8px 18px', fontSize: 13 }}>跟 Mika 打招呼</button>
  </nav>
);

// A CTA that lifts + reveals paw prints on hover. The paw reveal is the only
// "interactive delight" — it's the user-requested hover motif.
const CTAButton = ({ children, primary = true }) => {
  const [hover, setHover] = React.useState(false);
  const base = primary ? heroStyles.cta : heroStyles.ctaGhost;
  return (
    <span style={{ position: 'relative', display: 'inline-block' }}>
      <button
        onMouseEnter={() => setHover(true)}
        onMouseLeave={() => setHover(false)}
        style={{
          ...base,
          transform: hover ? 'translateY(-2px)' : 'translateY(0)',
          boxShadow: primary
            ? (hover
              ? '0 4px 0 rgba(90,70,50,0.15), 0 14px 28px rgba(138,111,74,0.25)'
              : '0 2px 0 rgba(90,70,50,0.15), 0 8px 20px rgba(138,111,74,0.18)')
            : 'none',
        }}
      >
        {children}
      </button>
      {/* Paw trail — appears behind/beside button on hover. */}
      <span style={{
        position: 'absolute', left: -28, top: 8, pointerEvents: 'none',
        opacity: hover ? 1 : 0, transform: hover ? 'translateX(-4px) rotate(-18deg)' : 'translateX(4px) rotate(-18deg)',
        transition: 'opacity .45s ease, transform .45s ease',
      }}>
        <PawPrint size={14} opacity={0.35} />
      </span>
      <span style={{
        position: 'absolute', left: -48, top: 28, pointerEvents: 'none',
        opacity: hover ? 1 : 0, transform: hover ? 'translateX(-4px) rotate(8deg)' : 'translateX(4px) rotate(8deg)',
        transition: 'opacity .55s ease .08s, transform .55s ease .08s',
      }}>
        <PawPrint size={12} opacity={0.25} />
      </span>
    </span>
  );
};

// ═══════════════════════════════════════════════════════════════
// 方向 A ｜ 室友的下午
// ─────────────────────────────────────────────────────────────
// Left: text stack, generous negative space.
// Right: Mika sleeping curled on what reads as a rug / warm spot.
// Bg: cream with a soft "afternoon light" gradient sweeping from top-right.
// Feels: the most familiar, readable, "safe" pick. Good default.
// ═══════════════════════════════════════════════════════════════
window.HeroA = function HeroA() {
  return (
    <div data-mika-bg="cream" style={{
      width: '100%', minHeight: 780,
      position: 'relative', overflow: 'hidden',
      fontFamily: '"Noto Serif TC", serif',
    }}>
      {/* Afternoon light — warm radial gradient from top right corner. */}
      <div style={{
        position: 'absolute', inset: 0, pointerEvents: 'none',
        background: 'radial-gradient(ellipse 900px 700px at 90% 0%, rgba(255,230,180,0.55) 0%, rgba(255,230,180,0) 60%)',
      }} />
      {/* Window-shadow hint — slanted warm shapes on the floor. */}
      <svg style={{ position: 'absolute', bottom: 0, right: 0, width: 520, height: 320, pointerEvents: 'none', opacity: 0.35 }}
           viewBox="0 0 520 320">
        <defs>
          <filter id="lightA">
            <feGaussianBlur stdDeviation="8" />
          </filter>
        </defs>
        <g filter="url(#lightA)">
          <path d="M 380 0 L 520 0 L 520 260 L 280 320 Z" fill="#f5d89a" opacity="0.55" />
          <path d="M 420 0 L 480 0 L 360 320 L 300 320 Z" fill="#faf5e6" opacity="0.7" />
        </g>
      </svg>

      <TopNav />

      {/* Main hero row. */}
      <div style={{
        display: 'grid', gridTemplateColumns: '1.05fr 1fr', gap: 40,
        padding: '60px 80px 100px', alignItems: 'center', position: 'relative',
      }}>
        {/* Text column. */}
        <div style={{ position: 'relative', zIndex: 2 }}>
          <div style={{ ...heroStyles.eyebrow, marginBottom: 16 }}>
            an AI cat who lives in your computer
          </div>
          <h1 style={{
            ...heroStyles.tagline,
            fontSize: 'clamp(44px, 5.2vw, 76px)',
            lineHeight: 1.28,
            margin: '0 0 28px',
          }}>
            你嚕貓，<br />牠幫你工作。
          </h1>
          <p style={{ ...heroStyles.sub, fontSize: 18, maxWidth: 460, margin: '0 0 40px' }}>
            Mika 是住在你電腦裡的 AI 貓咪管家。<br />
            牠會整理檔案、記住你讀過的東西，<br />
            然後在你嚕牠的時候，安靜把事情做完。
          </p>
          <div style={{ display: 'flex', gap: 16, alignItems: 'center', flexWrap: 'wrap' }}>
            <CTAButton>跟 Mika 打個招呼</CTAButton>
            <CTAButton primary={false}>先看看牠怎麼工作</CTAButton>
          </div>

          {/* Signature line — tiny handwritten note. */}
          <div style={{
            marginTop: 72, display: 'flex', alignItems: 'center', gap: 12,
            fontFamily: '"Caveat", cursive', fontSize: 20, color: MIKA_COLORS.bark, opacity: 0.6,
          }}>
            <span style={{ width: 32, height: 1, background: MIKA_COLORS.bark, opacity: 0.4 }} />
            for the folks who'd rather nap than hustle
          </div>
        </div>

        {/* Mika column. */}
        <div style={{ position: 'relative', minHeight: 420 }}>
          {/* Rug / warm spot under her — organic blob shape. */}
          <svg viewBox="0 0 500 400" style={{ position: 'absolute', inset: 0, width: '100%', height: '100%' }} aria-hidden="true">
            <defs>
              <filter id="rugA"><feTurbulence baseFrequency="0.015" numOctaves="2" seed="11" /><feDisplacementMap in="SourceGraphic" scale="8" /></filter>
            </defs>
            <g filter="url(#rugA)">
              <ellipse cx="260" cy="260" rx="220" ry="70" fill="#e8dfc9" opacity="0.8" />
              <ellipse cx="260" cy="260" rx="180" ry="55" fill="#d4b896" opacity="0.35" />
            </g>
            {/* Rug fringe — tiny strokes. */}
            <g stroke="#c8b896" strokeWidth="1.2" opacity="0.5">
              {Array.from({ length: 40 }).map((_, i) => {
                const x = 60 + i * 11;
                return <line key={i} x1={x} y1={322} x2={x + (i % 3 - 1) * 2} y2={332} />;
              })}
            </g>
          </svg>

          <div style={{ position: 'absolute', left: '50%', top: '50%', transform: 'translate(-52%, -50%)' }}>
            <window.MikaSleeping size={460} />
          </div>

          {/* Olive sprig tucked into the corner. */}
          <div style={{ position: 'absolute', top: -20, right: 10, transform: 'rotate(12deg)' }}>
            <OliveSprig w={100} />
          </div>

          {/* Little handwritten note pinned upper-left. */}
          <div style={{
            position: 'absolute', top: 20, left: 0,
            fontFamily: '"Caveat", cursive', fontSize: 24, color: MIKA_COLORS.moss,
            transform: 'rotate(-4deg)',
          }}>
            she's napping.<br />
            <span style={{ fontSize: 18, opacity: 0.75 }}>(but still working.)</span>
          </div>
        </div>
      </div>

      {/* Bottom fine print — "scroll" hint in handwriting. */}
      <div style={{
        position: 'absolute', bottom: 28, left: '50%', transform: 'translateX(-50%)',
        fontFamily: '"Caveat", cursive', fontSize: 18, color: MIKA_COLORS.bark, opacity: 0.45,
      }}>
        往下捲，認識牠一點 ↓
      </div>
    </div>
  );
};

// ═══════════════════════════════════════════════════════════════
// 方向 B ｜ 茶與筆記
// ─────────────────────────────────────────────────────────────
// Centered composition, slightly top-heavy text. Below: a "desk scene"
// arranged like a flat-lay: notebook center, teacup right, Mika peeking in
// from left-bottom as if she just jumped up. The most 手帳-feeling.
// ═══════════════════════════════════════════════════════════════
window.HeroB = function HeroB() {
  return (
    <div style={{
      width: '100%', minHeight: 780, background: MIKA_COLORS.paper,
      position: 'relative', overflow: 'hidden',
      fontFamily: '"Noto Serif TC", serif',
    }}>
      {/* Soft linen texture — scatter of tiny paw prints as the surface. */}
      <div style={{ position: 'absolute', inset: 0, pointerEvents: 'none' }}>
        {Array.from({ length: 18 }).map((_, i) => {
          const top = (i * 53) % 100;
          const left = (i * 37) % 100;
          const rot = (i * 23) % 360;
          return (
            <div key={i} style={{
              position: 'absolute', top: `${top}%`, left: `${left}%`,
              transform: `rotate(${rot}deg)`,
            }}>
              <PawPrint size={10} opacity={0.06} />
            </div>
          );
        })}
      </div>

      <TopNav bg={MIKA_COLORS.paper} />

      {/* Two-column hero: text left, pointing Mika right. Her raised paw +
          gaze both aim up-left toward the headline — she guides the eye. */}
      <div style={{
        display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 24,
        padding: '40px 80px 40px', alignItems: 'center', position: 'relative',
      }}>
        {/* Text column. */}
        <div style={{ position: 'relative', zIndex: 2, paddingTop: 40 }}>
          <div style={{ ...heroStyles.eyebrow, marginBottom: 14 }}>
            a quiet little assistant, purring
          </div>
          <h1 style={{
            ...heroStyles.tagline,
            fontSize: 'clamp(44px, 5vw, 74px)',
            lineHeight: 1.24,
            margin: '0 0 28px',
          }}>
            你嚕貓，<br />牠幫你工作。
          </h1>
          <p style={{ ...heroStyles.sub, fontSize: 18, maxWidth: 460, margin: '0 0 36px' }}>
            整理昨天讀的那份報告、找那封三週前的 email、把散落的筆記串起來。
            泡好茶，摸摸牠就好。
          </p>
          <div style={{ display: 'flex', gap: 16, flexWrap: 'wrap' }}>
            <CTAButton>跟 Mika 打個招呼</CTAButton>
            <CTAButton primary={false}>輕量版・免費試試</CTAButton>
          </div>
        </div>

        {/* Mika column — mirrored so her raised paw points back toward text. */}
        <div style={{ position: 'relative', minHeight: 560, display: 'flex',
                      justifyContent: 'center', alignItems: 'flex-end' }}>
          {/* Sun halo behind her — the light source that motivates the rim. */}
          <div style={{
            position: 'absolute', right: -40, top: 20, width: 380, height: 380,
            borderRadius: '50%',
            background: 'radial-gradient(circle, rgba(245,214,138,0.55) 0%, rgba(245,214,138,0.15) 50%, rgba(245,214,138,0) 75%)',
            pointerEvents: 'none',
          }} />
          {/* Floor line. */}
          <div style={{
            position: 'absolute', bottom: 30, left: '5%', right: '5%',
            height: 1, background: MIKA_COLORS.bark, opacity: 0.1,
          }} />
          {/* No mirror — the cat is drawn pointing up-left, which in this
              right-column position naturally aims toward the headline on
              the left. */}
          <div style={{ position: 'relative', zIndex: 2 }}>
            <window.MikaPeeking size={460} />
          </div>
          {/* Tiny olive sprig behind her. */}
          <div style={{ position: 'absolute', right: '8%', bottom: 30, transform: 'rotate(-6deg)', opacity: 0.8 }}>
            <OliveSprig w={70} />
          </div>
        </div>
      </div>
    </div>
  );
};

// ═══════════════════════════════════════════════════════════════
// 方向 C ｜ 陽台的光
// ─────────────────────────────────────────────────────────────
// Full-bleed, quieter, more editorial. Mika sits tall on the right,
// backlit. Text is a left-aligned column that breathes. Tagline in
// large thin-weight serif, CTA is tiny and understated. Most "Kinfolk".
// ═══════════════════════════════════════════════════════════════
window.HeroC = function HeroC() {
  return (
    <div style={{
      width: '100%', minHeight: 780, background: MIKA_COLORS.cream,
      position: 'relative', overflow: 'hidden',
      fontFamily: '"Noto Serif TC", serif',
    }}>
      {/* Large sun-through-window wash from right. */}
      <div style={{
        position: 'absolute', inset: 0, pointerEvents: 'none',
        background: `
          linear-gradient(105deg, ${MIKA_COLORS.cream} 0%, ${MIKA_COLORS.cream} 45%, rgba(250,220,170,0.35) 70%, rgba(250,220,170,0.55) 100%)
        `,
      }} />
      {/* Window mullion shadows — faint vertical bars on the right third. */}
      <div style={{
        position: 'absolute', top: 0, right: 0, width: '40%', height: '100%',
        background: 'repeating-linear-gradient(95deg, transparent 0 120px, rgba(90,70,50,0.035) 120px 122px)',
        pointerEvents: 'none',
      }} />

      <TopNav />

      <div style={{
        display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 40,
        padding: '80px 100px 80px', alignItems: 'center', position: 'relative',
      }}>
        {/* Text — spare, editorial. */}
        <div style={{ position: 'relative', zIndex: 2, maxWidth: 480 }}>
          <div style={{
            display: 'flex', alignItems: 'center', gap: 14, marginBottom: 32,
            ...heroStyles.eyebrow,
          }}>
            <span style={{ width: 32, height: 1, background: MIKA_COLORS.moss, opacity: 0.6 }} />
            <span style={{ fontSize: 18 }}>Mika · 一隻 AI 貓咪管家</span>
          </div>

          <h1 style={{
            ...heroStyles.tagline,
            fontSize: 'clamp(42px, 5vw, 72px)',
            fontWeight: 400,
            lineHeight: 1.32,
            margin: '0 0 32px',
            letterSpacing: '0.02em',
          }}>
            你嚕貓，<br />
            <span style={{ color: MIKA_COLORS.bark, opacity: 0.85 }}>牠幫你工作。</span>
          </h1>

          <p style={{
            ...heroStyles.sub, fontSize: 17, maxWidth: 420, margin: '0 0 48px',
            fontStyle: 'normal',
          }}>
            市面上的 AI 都在催你快點學、快點用。<br />
            Mika 只想安靜坐在你旁邊，把零碎的東西收好，
            等你下班，等你嚕牠。
          </p>

          <div style={{ display: 'flex', gap: 24, alignItems: 'center' }}>
            <CTAButton>跟 Mika 打個招呼</CTAButton>
            <a style={{
              fontFamily: '"Caveat", cursive', fontSize: 22, color: MIKA_COLORS.tea,
              textDecoration: 'underline', textDecorationStyle: 'wavy',
              textDecorationColor: MIKA_COLORS.moss, textUnderlineOffset: 6, cursor: 'pointer',
            }}>
              read her full story →
            </a>
          </div>
        </div>

        {/* Mika — the whole right half is hers. */}
        <div style={{ position: 'relative', minHeight: 540, display: 'flex', justifyContent: 'center', alignItems: 'flex-end' }}>
          {/* Floor line. */}
          <div style={{
            position: 'absolute', bottom: 60, left: '5%', right: '5%',
            height: 1, background: MIKA_COLORS.bark, opacity: 0.12,
          }} />

          {/* The sun-shape behind her — a big soft circle. */}
          <div style={{
            position: 'absolute', right: 30, top: 40, width: 320, height: 320,
            borderRadius: '50%',
            background: 'radial-gradient(circle, rgba(250,215,155,0.6) 0%, rgba(250,215,155,0.2) 50%, rgba(250,215,155,0) 75%)',
          }} />

          <div style={{ position: 'relative', zIndex: 2 }}>
            <window.MikaSitting size={360} />
          </div>

          {/* Potted plant to her left — olive sprig from a clay pot. */}
          <div style={{ position: 'absolute', left: '5%', bottom: 60 }}>
            <svg viewBox="0 0 90 70" width={90} height={70} aria-hidden="true">
              {/* Pot. */}
              <path d="M 18 20 L 72 20 L 66 66 L 24 66 Z" fill={MIKA_COLORS.clay} opacity="0.9" />
              <ellipse cx="45" cy="20" rx="27" ry="5" fill="#b8695a" />
            </svg>
            <div style={{ marginTop: -84, marginLeft: 18 }}>
              <OliveSprig w={70} />
            </div>
          </div>

          {/* Caption — bottom right, tiny handwritten. */}
          <div style={{
            position: 'absolute', bottom: 20, right: 40, textAlign: 'right',
            fontFamily: '"Caveat", cursive', fontSize: 18, color: MIKA_COLORS.bark, opacity: 0.55,
          }}>
            3:47 pm · sunbeam found<br />
            <span style={{ color: MIKA_COLORS.moss }}>（今天也是好天氣）</span>
          </div>
        </div>
      </div>
    </div>
  );
};

// Expose shared tokens + CTAButton so homepage-sections.jsx (a separate
// Babel script with its own scope) can read them.
window.MIKA_COLORS = MIKA_COLORS;
window.heroStyles = heroStyles;
window.CTAButton = CTAButton;
window.TopNav = TopNav;
window.PawPrint = PawPrint;
window.OliveSprig = OliveSprig;
