// urlapi.me Landing Page — root
// Composes Nav, Hero (in landing-sections.jsx), and remaining sections inline below.

const { useState: lpUS, useEffect: lpUE } = React;

// ─── Section helper ─────────────────────────────────────────────
const Section = ({ id, eyebrow, title, sub, children, bg = "var(--bg-0)", pad = "16px" }) => (
  <section id={id} style={{ background: bg, padding: `${pad} 0`, position: "relative", borderTop: "1px solid var(--border-soft)" }}>
    <div className="wrap">
      {eyebrow && <div className="mono" style={{ fontSize: 11, color: "var(--accent)", letterSpacing: 0.18, textTransform: "uppercase", marginBottom: 10, textAlign: "center" }}>{eyebrow}</div>}
      {title && <h2 className="display" style={{ fontSize: "clamp(22px, 4.5vw, 40px)", fontWeight: 700, textAlign: "center", margin: 0, maxWidth: 900, marginInline: "auto", letterSpacing: -0.025, lineHeight: 1.3 }}>{title}</h2>}
      {sub && <p style={{ fontSize: 14, color: "var(--text-mid)", textAlign: "center", maxWidth: 680, marginInline: "auto", marginTop: 12, lineHeight: 1.7 }}>{sub}</p>}
      <div style={{ marginTop: title ? 24 : 0 }}>{children}</div>
    </div>
  </section>
);

// ─── Problem Section ────────────────────────────────────────────
function Problem() {
  const items = [
    { stat: "−42%", label: "iOS 14 以降のCV計測欠損", desc: "ATTで広告プラットフォームにCVが届かず、最適化が機能しなくなった。" },
    { stat: "1日", label: "Bitlyブラックリスト解除", desc: "他社の不正利用で短縮ドメインがブロックされ、自社の広告が届かない。" },
    { stat: "5+", label: "広告プラットフォームに個別実装", desc: "Meta CAPI / Google Enhanced CV / TikTok Events… 全部独自で書く?" },
    { stat: "?", label: "管理画面で迷子", desc: "Bitly Enterprise の操作研修に半日。"} ,
  ];
  return (
    <Section id="problem" eyebrow="Why now" title={<>計測できないCVは、<br />存在しないCVと同じ。</>}
      sub="ATT・Cookie規制・ブラックリスト被害・分散したAPI実装。広告運用の現場は壊れたままだ。">
      <div className="grid-4" style={{ display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 12 }}>
        {items.map((it, i) => (
          <div key={i} className="problem-card" style={{ padding: 26, background: "var(--bg-1)", border: "1px solid var(--border)", borderRadius: 14 }}>
            <div className="display problem-stat" style={{ fontSize: 44, fontWeight: 700, color: "var(--danger)", letterSpacing: -0.02 }}>{it.stat}</div>
            <div style={{ fontSize: 14, fontWeight: 600, marginTop: 14 }}>{it.label}</div>
            <div style={{ fontSize: 12.5, color: "var(--text-mute)", marginTop: 8, lineHeight: 1.6 }}>{it.desc}</div>
          </div>
        ))}
      </div>
    </Section>
  );
}

// ─── Benefits (AIに任せるとどうなる) ──────────────────────────
function Benefits() {
  const items = [
    {
      title: "プロモーションごとの効果が一発で出る",
      desc: "「春のセール、夏より40%伸びてる」AIが秒で並べて比較してくれる。",
    },
    {
      title: "チャネル横断の比較が即できる",
      desc: "「メルマガA経由とInstagram経由、CV率どっち上?」聞くだけで答えが返る。",
    },
    {
      title: "CVの取りこぼしをAIが先に発見",
      desc: "「Meta未送信のCVが23件あります」気付く前にAIから通知が届く。",
    },
    {
      title: "広告予算の配分までAIが提案",
      desc: "データを見て「来週はGoogleに振り替えるべき」と具体的にアドバイス。",
    },
  ];
  return (
    <Section id="benefits" eyebrow="BENEFITS" title={<>メリット</>} sub="AIに任せると、こんな使い方ができる。">
      <div className="grid-2" style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 14 }}>
        {items.map((it, i) => (
          <div key={i} className="benefit-card" style={{
            padding: 28, background: "var(--bg-1)", border: "1px solid var(--border)",
            borderRadius: 14, display: "flex", flexDirection: "column", gap: 10, position: "relative", overflow: "hidden",
          }}>
            <div style={{ position: "absolute", top: -40, right: -40, width: 160, height: 160, background: "radial-gradient(circle, var(--accent-glow), transparent 60%)", opacity: 0.2 }} />
            <h3 className="display" style={{ fontSize: 22, fontWeight: 700, margin: 0, lineHeight: 1.25, position: "relative" }}>{it.title}</h3>
            <p style={{ fontSize: 14, color: "var(--text-mid)", lineHeight: 1.65, margin: 0, position: "relative" }}>{it.desc}</p>
          </div>
        ))}
      </div>
    </Section>
  );
}

// ─── Pillars (3 differentiators — full-width alternating rows) ─────
function Pillars() {
  const pillars = [
    {
      tag: "01 / AI",
      title: "AIチャットで全機能操作",
      desc: "「春キャンペーンを作って、Metaに送って、結果を週次でSlackに」— 自然言語が業務UIになる。Claude / ChatGPT から MCP 経由で直接呼び出せる。",
      kpis: [["接続可能AI","Claude / ChatGPT / Cursor / Gemini"], ["呼び出し","MCP / API / SDK"], ["平均応答","< 2.4s"]],
      logosLabel: "対応する AI / 通知先",
      logos: ["Claude", "ChatGPT", "MCP", "Slack"],
      mock: "chat",
    },
    {
      tag: "02 / Domain",
      title: "自社ドメイン運用",
      desc: "go.your-brand.co で短縮。CNAME 1行・SSL自動・WHOIS Privacy 込み。Bitlyのブラックリスト被害から永久に独立。",
      kpis: [["セットアップ","CNAME 1行"], ["SSL","自動 / 永続"], ["所有権","100% 顧客"]],
      logosLabel: "EC プラットフォーム互換",
      logos: ["Shopify", "BASE", "WordPress"],
      mock: "domain",
    },
    {
      tag: "03 / Ads",
      title: "広告API自動連携",
      desc: "Meta CAPI / Google Enhanced CV / LINE Tag / TikTok Events / X CAPI — クリックを正確なCVシグナルに変換し、5プラットフォームへ同時送信。",
      kpis: [["対応媒体","5+"], ["送信レイテンシ","< 800ms"], ["CV回復率","平均 +38%"]],
      logosLabel: "送信先プラットフォーム",
      logos: ["Meta", "Google", "LINE", "TikTok", "X"],
      mock: "ads",
    },
  ];
  return (
    <section id="pillars" style={{ padding: "80px 0 40px", position: "relative" }}>
      <div className="wrap">
        <div style={{ textAlign: "center", marginBottom: 56, maxWidth: 880, marginInline: "auto" }}>
          <div className="mono" style={{ fontSize: 11, color: "var(--accent-2)", letterSpacing: 0.2, textTransform: "uppercase", marginBottom: 12 }}>The 3 pillars</div>
          <h2 className="display" style={{ fontSize: "clamp(28px, 4.4vw, 44px)", fontWeight: 700, margin: 0, letterSpacing: -0.025, lineHeight: 1.2 }}>
            3つの武器で、<br />広告運用を取り戻す。
          </h2>
        </div>

        <div style={{ display: "flex", flexDirection: "column", gap: 0 }}>
          {pillars.map((p, i) => (
            <div key={i} className="pillar-row" style={{
              display: "grid",
              gridTemplateColumns: i % 2 === 0 ? "1fr 1.05fr" : "1.05fr 1fr",
              gap: 64, alignItems: "center",
              padding: "56px 0",
              borderTop: i === 0 ? "none" : "1px solid var(--border-soft)",
            }}>
              <div style={{ order: i % 2 === 0 ? 0 : 1, display: "flex", flexDirection: "column", alignItems: "center", textAlign: "center" }}>
                <div className="mono" style={{ fontSize: 11, color: "var(--accent-2)", letterSpacing: 0.18, marginBottom: 14 }}>{p.tag}</div>
                <h3 className="display" style={{ fontSize: "clamp(22px, 3vw, 30px)", fontWeight: 700, margin: 0, lineHeight: 1.25, letterSpacing: -0.02 }}>{p.title}</h3>
                <p style={{ fontSize: 15, color: "var(--text-mid)", marginTop: 16, lineHeight: 1.75, maxWidth: 460 }}>{p.desc}</p>

                {/* Brand logos */}
                {p.logos && (
                  <div style={{ marginTop: 26, paddingTop: 22, borderTop: "1px dashed var(--border)", width: "100%", maxWidth: 460 }}>
                    <div className="mono" style={{ fontSize: 10, color: "var(--text-mute)", letterSpacing: 0.14, textTransform: "uppercase", marginBottom: 14 }}>{p.logosLabel}</div>
                    <div style={{ display: "flex", flexWrap: "wrap", gap: 8, justifyContent: "center" }}>
                      {p.logos.map((b, k) => {
                        const ent = BRAND[b];
                        if (!ent) return null;
                        const L = ent.L;
                        return (
                          <span key={k} className="brand-chip" style={{
                            display: "inline-flex", alignItems: "center", gap: 8,
                            padding: "8px 14px 8px 10px",
                            background: "var(--bg-1)",
                            border: "1px solid var(--border-strong)",
                            borderRadius: 999, fontSize: 12.5, fontWeight: 600,
                            color: "var(--text)",
                          }}>
                            <L size={16} />
                            <span>{b}</span>
                          </span>
                        );
                      })}
                    </div>
                  </div>
                )}

                <div style={{ display: "flex", gap: 28, marginTop: 26, flexWrap: "wrap", justifyContent: "center" }}>
                  {p.kpis.map(([k,v]) => (
                    <div key={k} style={{ textAlign: "center" }}>
                      <div className="mono" style={{ fontSize: 10, color: "var(--text-mute)", letterSpacing: 0.12, textTransform: "uppercase" }}>{k}</div>
                      <div className="display" style={{ fontSize: 16.5, fontWeight: 600, color: "var(--text)", marginTop: 4 }}>{v}</div>
                    </div>
                  ))}
                </div>
              </div>
              <div style={{ order: i % 2 === 0 ? 1 : 0, position: "relative" }}>
                <div style={{ position: "absolute", inset: -40, background: "radial-gradient(ellipse at 50% 50%, var(--accent-glow), transparent 65%)", filter: "blur(20px)", pointerEvents: "none" }} />
                <div style={{ position: "relative" }}>
                  {p.mock === "chat" && <PillarChatMock />}
                  {p.mock === "domain" && <PillarDomainMock />}
                  {p.mock === "ads" && <PillarAdsMock />}
                </div>
              </div>
            </div>
          ))}
        </div>
      </div>
      <style>{`
        @media (max-width: 880px) {
          .pillar-row { grid-template-columns: 1fr !important; gap: 28px !important; padding: 40px 0 !important; }
          .pillar-row > div:first-child { order: 0 !important; }
          .pillar-row > div:last-child { order: 1 !important; }
        }
      `}</style>
    </section>
  );
}

// Large product-feel mocks for the pillars
const PillarChatMock = () => (
  <div style={{ background: "var(--bg-1)", border: "1px solid var(--border-strong)", borderRadius: 16, overflow: "hidden", boxShadow: "0 24px 60px -20px rgba(0,0,0,0.7)" }}>
    <div style={{ display: "flex", alignItems: "center", gap: 8, padding: "10px 14px", background: "var(--bg-2)", borderBottom: "1px solid var(--border)" }}>
      <span style={{ width: 9, height: 9, borderRadius: 5, background: "#FF5F57" }} />
      <span style={{ width: 9, height: 9, borderRadius: 5, background: "#FEBC2E" }} />
      <span style={{ width: 9, height: 9, borderRadius: 5, background: "#28C840" }} />
      <span className="mono" style={{ flex: 1, textAlign: "center", fontSize: 11, color: "var(--text-mute)" }}>claude · MCP urlapi</span>
    </div>
    <div style={{ padding: 22, display: "flex", flexDirection: "column", gap: 14 }}>
      <div style={{ display: "flex", gap: 10 }}>
        <div style={{ width: 24, height: 24, borderRadius: 6, background: "var(--bg-3)", display: "grid", placeItems: "center", fontSize: 10, fontWeight: 700, flexShrink: 0 }}>9</div>
        <div style={{ flex: 1, fontSize: 13, color: "var(--text)", padding: "9px 13px", background: "var(--bg-2)", borderRadius: 10, border: "1px solid var(--border)" }}>春キャンペーンを作って、Metaに送って、結果を週次でSlackに送って</div>
      </div>
      <div style={{ display: "flex", gap: 10 }}>
        <div style={{ width: 24, height: 24, borderRadius: 6, background: "linear-gradient(135deg, var(--accent), var(--accent-2))", display: "grid", placeItems: "center", flexShrink: 0 }}>
          <I.Logo size={12} color="#0A0A0A" />
        </div>
        <div style={{ flex: 1, display: "flex", flexDirection: "column", gap: 6 }}>
          {[
            { t: "create_campaign", a: '{ name:"spring-2026" }' },
            { t: "connect_meta",    a: '{ pixel:"auto" }' },
            { t: "schedule_report", a: '{ to:"#growth" }' },
          ].map((tl, j) => (
            <div key={j} className="mono" style={{ display: "inline-flex", alignItems: "center", gap: 8, padding: "5px 10px", background: "rgba(124,92,255,0.06)", border: "1px solid var(--accent-soft)", borderRadius: 6, fontSize: 11, width: "fit-content" }}>
              <I.Check size={10} style={{ color: "var(--success)" }} />
              <span style={{ color: "var(--accent)" }}>{tl.t}</span>
              <span style={{ color: "var(--text-mute)" }}>{tl.a}</span>
            </div>
          ))}
          <div style={{ fontSize: 13, color: "var(--text)", lineHeight: 1.6, marginTop: 6 }}>準備できました。<strong style={{ color: "var(--success)" }}>spring-2026</strong> を発行、Meta CAPI 接続済み、毎週月曜 9 時に <span className="mono" style={{ color: "var(--accent)" }}>#growth</span> へ。</div>
        </div>
      </div>
    </div>
  </div>
);

const PillarDomainMock = () => (
  <div style={{ background: "var(--bg-1)", border: "1px solid var(--border-strong)", borderRadius: 16, overflow: "hidden", boxShadow: "0 24px 60px -20px rgba(0,0,0,0.7)" }}>
    <div style={{ display: "flex", alignItems: "center", padding: "10px 14px", background: "var(--bg-2)", borderBottom: "1px solid var(--border)" }}>
      <span className="mono" style={{ fontSize: 11, color: "var(--text-mute)" }}>DNS / Domain Setup</span>
      <span className="mono" style={{ marginLeft: "auto", fontSize: 10, color: "var(--success)", padding: "2px 8px", background: "rgba(46,230,168,0.10)", border: "1px solid rgba(46,230,168,0.25)", borderRadius: 4 }}>● LIVE</span>
    </div>
    <div style={{ padding: 22, fontFamily: "var(--font-mono)", fontSize: 12.5, lineHeight: 2 }}>
      <div style={{ color: "var(--text-mute)" }}># Add this single CNAME record</div>
      <div style={{ display: "flex", gap: 14, padding: "8px 12px", background: "rgba(0,0,0,0.40)", border: "1px solid var(--border)", borderRadius: 8, marginTop: 8 }}>
        <span style={{ color: "var(--accent-2)" }}>CNAME</span>
        <span style={{ color: "var(--info)" }}>go</span>
        <span style={{ color: "var(--text-mute)" }}>→</span>
        <span style={{ color: "var(--success)" }}>cname.urlapi.me</span>
      </div>
      <div style={{ color: "var(--text-mute)", marginTop: 16 }}># urlapi handles the rest</div>
      <div style={{ display: "flex", flexDirection: "column", gap: 4, marginTop: 6 }}>
        {[
          ["SSL Certificate",   "auto-renewed"],
          ["CDN propagation",   "global · 14 PoPs"],
          ["WHOIS Privacy",     "enabled"],
          ["Blacklist immunity","100%"],
        ].map(([k,v]) => (
          <div key={k} style={{ display: "flex", justifyContent: "space-between" }}>
            <span style={{ color: "var(--text-mid)" }}>✓ {k}</span>
            <span style={{ color: "var(--text-mute)" }}>{v}</span>
          </div>
        ))}
      </div>
      <div style={{ marginTop: 16, padding: "10px 12px", background: "rgba(124,92,255,0.08)", borderLeft: "2px solid var(--accent)", borderRadius: 4 }}>
        <span style={{ color: "var(--text)" }}>https://go.your-brand.co/spring</span>
      </div>
    </div>
  </div>
);

const PillarAdsMock = () => {
  const platforms = [
    { n: "Meta CAPI",       v: 847,  pct: 96 },
    { n: "Google ECV",      v: 293,  pct: 91 },
    { n: "TikTok Events",   v: 164,  pct: 88 },
    { n: "LINE Tag",        v: 92,   pct: 95 },
    { n: "X CAPI",          v: 41,   pct: 84 },
  ];
  return (
    <div style={{ background: "var(--bg-1)", border: "1px solid var(--border-strong)", borderRadius: 16, overflow: "hidden", boxShadow: "0 24px 60px -20px rgba(0,0,0,0.7)" }}>
      <div style={{ display: "flex", alignItems: "center", padding: "10px 14px", background: "var(--bg-2)", borderBottom: "1px solid var(--border)" }}>
        <span className="mono" style={{ fontSize: 11, color: "var(--text-mute)" }}>CV Distribution · Last 24h</span>
        <span className="mono" style={{ marginLeft: "auto", fontSize: 10, color: "var(--accent-2)" }}>1,437 total</span>
      </div>
      <div style={{ padding: 22, display: "flex", flexDirection: "column", gap: 13 }}>
        {platforms.map((p, i) => {
          const ent = BRAND[p.n];
          const L = ent ? ent.L : null;
          const c = ent ? ent.c : "#A88BFF";
          return (
            <div key={i}>
              <div style={{ display: "flex", alignItems: "center", gap: 10, marginBottom: 6 }}>
                {L ? <L size={18} /> : <span style={{ width: 18, height: 18, borderRadius: 4, background: c }} />}
                <span style={{ flex: 1, fontSize: 12.5, fontWeight: 600 }}>{p.n}</span>
                <span className="mono" style={{ fontSize: 11.5, color: "var(--text-mid)" }}>{p.v}</span>
                <span className="mono" style={{ fontSize: 10.5, color: "var(--success)", minWidth: 32, textAlign: "right" }}>{p.pct}%</span>
              </div>
              <div style={{ height: 4, background: "var(--bg-3)", borderRadius: 2, overflow: "hidden" }}>
                <div style={{ width: `${p.pct}%`, height: "100%", background: c, opacity: 0.85 }} />
              </div>
            </div>
          );
        })}
      </div>
    </div>
  );
};

// ─── Developer Section ──────────────────────────────────────────
function Developer() {
  const [tab, setTab] = lpUS("api");
  const codes = {
    api: { lang: "bash", body: `# 短縮URL作成 + 全広告プラットフォームに自動接続
curl -X POST https://api.urlapi.me/v1/links \\
  -H "Authorization: Bearer urlapi_sk_live_..." \\
  -d '{
    "url": "https://acme.co/spring-sale",
    "domain": "go.acme.co",
    "slug": "spring",
    "campaign": "spring-2026",
    "track": ["meta", "google", "tiktok", "line"]
  }'

# → https://go.acme.co/spring` },
    mcp: { lang: "json", body: `// claude_desktop_config.json
{
  "mcpServers": {
    "urlapi": {
      "command": "npx",
      "args": ["@urlapi/mcp"],
      "env": {
        "URLAPI_KEY": "urlapi_sk_live_..."
      }
    }
  }
}

// Claudeに「春キャンペーンを作って、結果週次で」と言うだけ` },
    sdk: { lang: "ts", body: `import { urlapi } from "@urlapi/sdk";

const client = urlapi({ key: process.env.URLAPI_KEY });

// CVをトラッキング (5プラットフォーム同時送信)
await client.track("purchase", {
  value: 4980,
  currency: "JPY",
  items: [{ id: "sku_42", name: "Spring Bundle" }],
  user: { email_hash: "..." },
});` },
  };
  const code = codes[tab];

  return (
    <Section id="developer" eyebrow="Built for builders" title={<>API・MCPファースト。<br />開発者が直接組み込める。</>}
      sub="管理画面はオプション。すべての機能はAPIから呼べる。Claude/ChatGPT統合はMCP1行で。"
      bg="var(--bg-1)"
    >
      <div style={{ maxWidth: 920, marginInline: "auto" }}>
        <div className="dev-tabs" style={{ display: "flex", gap: 4, marginBottom: 14, padding: 4, background: "var(--bg-2)", border: "1px solid var(--border)", borderRadius: 10, width: "fit-content", marginInline: "auto" }}>
          {[{ k: "api", l: "REST API" }, { k: "mcp", l: "MCP Server" }, { k: "sdk", l: "TypeScript SDK" }].map(t => (
            <button key={t.k} onClick={() => setTab(t.k)} className="mono" style={{
              padding: "8px 18px",
              background: tab === t.k ? "var(--bg-3)" : "transparent",
              border: tab === t.k ? "1px solid var(--border-strong)" : "1px solid transparent",
              color: tab === t.k ? "var(--text)" : "var(--text-mute)",
              borderRadius: 6, fontSize: 12, cursor: "pointer",
            }}>{t.l}</button>
          ))}
        </div>

        <div className="dev-codeblock" style={{ background: "#06060A", border: "1px solid var(--border-strong)", borderRadius: 14, overflow: "hidden", boxShadow: "0 20px 60px -20px rgba(124,92,255,0.2)" }}>
          <div style={{ padding: "10px 18px", background: "var(--bg-2)", borderBottom: "1px solid var(--border)", display: "flex", alignItems: "center", gap: 10 }}>
            <span style={{ width: 9, height: 9, borderRadius: 5, background: "#FF5F57" }} />
            <span style={{ width: 9, height: 9, borderRadius: 5, background: "#FEBC2E" }} />
            <span style={{ width: 9, height: 9, borderRadius: 5, background: "#28C840" }} />
            <span className="mono" style={{ flex: 1, textAlign: "center", fontSize: 11, color: "var(--text-mute)" }}>{code.lang}</span>
            <button className="mono" style={{ padding: "4px 10px", background: "var(--bg-3)", border: "1px solid var(--border)", color: "var(--text-mid)", borderRadius: 4, fontSize: 10.5, cursor: "pointer" }}>COPY</button>
          </div>
          <pre className="mono" style={{ margin: 0, padding: 24, fontSize: 13, lineHeight: 1.75, color: "var(--text-mid)", overflow: "auto" }}>
            <code dangerouslySetInnerHTML={{ __html: code.body
              .replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;")
              .replace(/("[^"]*")/g, "<span style='color:#2EE6A8'>$1</span>")
              .replace(/(^|\n)([ \t]*)(#[^\n]*|\/\/[^\n]*)/g, "$1$2<span style='color:#6B6B78'>$3</span>")
              .replace(/\b(curl|import|const|await|from|process)\b/g, "<span style='color:#FF9A3C'>$1</span>")
              .replace(/\b(POST|GET|Bearer)\b/g, "<span style='color:#5CC8FF'>$1</span>")
            }} />
          </pre>
        </div>
      </div>
    </Section>
  );
}

// ─── Features matrix (no heavy cards — icon + horizontal chips) ──
function Features() {
  const cats = [
    { title: "コア機能",   icon: "Link",    items: ["短縮URL作成", "独自ドメイン", "UTM管理", "キャンペーン", "ABテスト", "ブラックリスト管理"] },
    { title: "トラッキング", icon: "Chart",   items: ["クリック計測", "リファラー解析", "CV計測", "CV属性記録", "ユーザー識別", "EP計測"] },
    { title: "広告連携",   icon: "Bolt",    items: ["Meta CAPI", "Google ECV", "LINE Tag", "X CAPI", "TikTok Events", "オーディエンス自動生成"] },
    { title: "AI / MCP",   icon: "Sparkle", items: ["MCPサーバー", "AIチャットUI", "AI分析・要約", "改善提案", "AIキャンペーン作成", "API/MCPキー発行"] },
  ];
  return (
    <Section id="features" eyebrow="29 features · 1 platform" title={<>機能、全部入り。<br />1ヶ月で全リリース。</>}>
      <div style={{ display: "flex", flexDirection: "column", gap: 0, maxWidth: 1080, marginInline: "auto" }}>
        {cats.map((c, i) => {
          const Ico = I[c.icon];
          return (
            <div key={i} style={{
              display: "grid", gridTemplateColumns: "200px 1fr", gap: 32, alignItems: "center",
              padding: "28px 4px",
              borderTop: i === 0 ? "1px solid var(--border-soft)" : "1px solid var(--border-soft)",
              borderBottom: i === cats.length - 1 ? "1px solid var(--border-soft)" : "none",
            }} className="feat-row">
              <div style={{ display: "flex", alignItems: "center", gap: 14 }}>
                <div style={{ width: 36, height: 36, borderRadius: 9, background: "var(--accent-soft)", color: "var(--accent-2)", display: "grid", placeItems: "center", flexShrink: 0 }}>
                  <Ico size={17} />
                </div>
                <div className="display" style={{ fontSize: 18, fontWeight: 700, color: "var(--text)" }}>{c.title}</div>
              </div>
              <div style={{ display: "flex", flexWrap: "wrap", gap: 8 }}>
                {c.items.map((it, j) => {
                  const ent = BRAND[it];
                  const L = ent ? ent.L : null;
                  return (
                    <span key={j} className="mono" style={{
                      padding: "6px 12px",
                      background: "transparent",
                      border: "1px solid var(--border)",
                      color: "var(--text-mid)",
                      borderRadius: 999, fontSize: 11.5, letterSpacing: 0.02,
                      display: "inline-flex", alignItems: "center", gap: 6,
                    }}>
                      {L ? <L size={13} /> : <I.Check size={10} style={{ color: "var(--success)" }} />} {it}
                    </span>
                  );
                })}
              </div>
            </div>
          );
        })}
      </div>
      <style>{`
        @media (max-width: 760px) {
          .feat-row { grid-template-columns: 1fr !important; gap: 14px !important; padding: 22px 4px !important; }
        }
      `}</style>
    </Section>
  );
}

// ─── Pricing ─────────────────────────────────────────────────────
function Pricing() {
  const plans = [
    {
      name: "Free", price: "¥0", sub: "お試し",
      metrics: [
        ["クリック", "5万"],
        ["events", "—"],
        ["独自ドメイン", "—"],
        ["AI", "—"],
        ["広告連携", "—"],
        ["アカウント", "1"],
        ["体験", "共有ドメイン"],
      ],
      footer: "クレカ登録なし",
      cta: "無料ではじめる", primary: false,
      items: ["共有ドメイン体験", "Dashboard 閲覧", "AI Console お試し"],
    },
    {
      name: "Starter", price: "¥2,980", sub: "個人EC・小規模",
      metrics: [
        ["クリック", "150万"],
        ["events", "5万"],
        ["独自ドメイン", "1個"],
        ["AI", "30万 tok/月"],
        ["MCP接続", "読取1本"],
        ["広告連携", "—"],
        ["アカウント", "1"],
        ["超過従量", "中"],
      ],
      footer: "年払い 20%OFF / 14日無料",
      cta: "無料ではじめる", primary: false,
      items: ["独自ドメイン 1個", "events計測 5万/月", "AIコンソール 30万 tok/月", "MCP 連携（読取）", "メールサポート"],
    },
    {
      name: "Pro", price: "¥9,800", sub: "中堅EC・D2C",
      metrics: [
        ["クリック", "500万"],
        ["events", "50万"],
        ["独自ドメイン", "3個"],
        ["AI", "100万 tok/月"],
        ["MCP接続", "書込 1/アカウント"],
        ["広告連携", "標準装備"],
        ["アカウント", "1 (+¥2,980)"],
        ["超過従量", "安"],
      ],
      footer: "年払い 20%OFF / 14日無料",
      cta: "無料ではじめる", primary: true,
      items: ["AIコンソール 100万 tok/月", "MCP 連携（書込 1/アカウント）", "広告CAPI 標準 (Meta/Google/LINE/TikTok)", "CV計測 + A/Bテスト", "Webhook はアドオン"],
    },
    {
      name: "Business", price: "¥39,800", sub: "代理店・大手",
      metrics: [
        ["クリック", "2,000万"],
        ["events", "500万"],
        ["独自ドメイン", "無制限"],
        ["AI", "500万 tok/月"],
        ["MCP接続", "1/アカウント"],
        ["広告連携", "標準＋Webhook"],
        ["アカウント", "8 (+¥2,980)"],
        ["超過従量", "安"],
      ],
      footer: "年払い 20%OFF / 法人請求書対応",
      cta: "無料ではじめる", primary: false,
      items: ["AIコンソール 500万 tok/月・チーム共有", "MCP アカウント数分接続", "Webhook 配信 + Connect / LTV 分析", "監査ログ + 専任オンボ + 99.9% SLA"],
    },
  ];
  return (
    <Section id="pricing" eyebrow="Transparent pricing" title={<>成長フェーズに、<br />ぴったり合うプラン。</>}
      sub="月額固定 + CV従量のハイブリッド。Free から Business まで4プラン、加えて Enterprise (応相談)。いつでもアップグレード可能。">
      <div className="grid-4" style={{ display: "grid", gridTemplateColumns: "1fr 1fr 1fr 1fr", gap: 12 }}>
        {plans.map((p, i) => (
          <div key={i} className={`price-card ${p.primary ? "price-card-popular" : ""}`} style={{
            padding: 26,
            background: p.primary ? "linear-gradient(180deg, var(--accent-soft), transparent), var(--bg-1)" : "var(--bg-1)",
            border: `1px solid ${p.primary ? "var(--accent)" : "var(--border)"}`,
            borderRadius: 14, display: "flex", flexDirection: "column", gap: 14,
            boxShadow: p.primary ? "0 0 40px var(--accent-glow)" : "none",
            position: "relative",
          }}>
            {p.primary && (
              <span className="mono" style={{ position: "absolute", top: -10, left: 22, padding: "3px 10px", background: "var(--accent)", color: "white", borderRadius: 4, fontSize: 10, fontWeight: 600, letterSpacing: 0.08 }}>POPULAR</span>
            )}
            <div>
              <div className="display" style={{ fontSize: 22, fontWeight: 700 }}>{p.name}</div>
              <div className="mono" style={{ fontSize: 11, color: "var(--text-mute)", marginTop: 2 }}>{p.sub}</div>
            </div>
            <div className="display" style={{ fontSize: 38, fontWeight: 700, letterSpacing: -0.02 }}>
              {p.price}<span style={{ fontSize: 13, color: "var(--text-mute)", fontWeight: 400 }}> / 月</span>
            </div>
            <div style={{ display: "flex", flexDirection: "column", gap: 4, padding: "10px 0", borderTop: "1px solid var(--border)", borderBottom: "1px solid var(--border)" }}>
              {p.metrics.map(([k, v]) => (
                <div key={k} style={{ display: "flex", justifyContent: "space-between", fontSize: 11.5 }}>
                  <span className="mono" style={{ color: "var(--text-mute)", letterSpacing: 0.04 }}>{k}</span>
                  <span style={{ color: "var(--text)" }}>{v}</span>
                </div>
              ))}
            </div>
            <ul style={{ margin: 0, padding: 0, listStyle: "none", display: "flex", flexDirection: "column", gap: 6, flex: 1 }}>
              {p.items.map((it, j) => (
                <li key={j} style={{ fontSize: 12, color: "var(--text-mid)", display: "flex", gap: 7, alignItems: "flex-start" }}>
                  <I.Check size={11} style={{ color: "var(--success)", marginTop: 4, flexShrink: 0 }} />
                  <span>{it}</span>
                </li>
              ))}
            </ul>
            <div className="mono" style={{ fontSize: 10.5, color: "var(--text-mute)", letterSpacing: 0.04 }}>{p.footer}</div>
            <button onClick={() => location.href = '/app/signup'} style={{
              padding: "10px 14px", marginTop: 4,
              background: p.primary ? "var(--accent)" : "var(--bg-3)",
              color: p.primary ? "white" : "var(--text)",
              border: p.primary ? "none" : "1px solid var(--border-strong)",
              borderRadius: 7, fontSize: 12.5, fontWeight: 500, cursor: "pointer",
              boxShadow: p.primary ? "0 0 20px var(--accent-glow)" : "none",
            }}>{p.cta}</button>
          </div>
        ))}
      </div>
      <EnterpriseStrip />

      {/* Full feature × plan comparison matrix (collapsed by default) */}
      <PricingMatrix />
    </Section>
  );
}

// ─── Enterprise Strip ───────────────────────────────────────
function EnterpriseStrip() {
  const specs = [
    ["01", "SCALE",    "UNLIMITED",         "クリック / events / アカウント 上限なし"],
    ["02", "AI · MCP", "DEDICATED",         "専用トークン枠 · プライベート MCP"],
    ["03", "RELAY",    "ALL CHANNELS",      "Meta · Google · LINE · TikTok · X +"],
    ["04", "DEPLOY",   "DEDICATED INFRA",   "プライベートクラウド / オンプレ / VPC"],
    ["05", "SLA",      "99.99% CUSTOM",     "RPO/RTO 個別合意 · 24/7 監視"],
    ["06", "BRAND",    "WHITE-LABEL",       "完全 OEM · 独自ロゴ"],
  ];
  return (
    <div style={{
      marginTop: 20, position: "relative",
      padding: "36px 40px",
      background: `
        radial-gradient(ellipse 600px 320px at 100% 0%, rgba(224,201,126,0.10), transparent 60%),
        radial-gradient(ellipse 600px 320px at 0% 100%, rgba(124,92,255,0.14), transparent 60%),
        linear-gradient(180deg, #0a0a14 0%, #07070C 100%)
      `,
      border: "1px solid var(--border-strong)",
      borderRadius: 16,
      overflow: "hidden",
      boxShadow: "0 30px 80px -32px rgba(0,0,0,0.7), inset 0 1px 0 rgba(255,255,255,0.04)",
    }}>
      {/* grid backdrop */}
      <div aria-hidden style={{
        position: "absolute", inset: 0, pointerEvents: "none",
        backgroundImage: `
          linear-gradient(to right, rgba(255,255,255,0.025) 1px, transparent 1px),
          linear-gradient(to bottom, rgba(255,255,255,0.025) 1px, transparent 1px)
        `,
        backgroundSize: "40px 40px",
        maskImage: "radial-gradient(ellipse 80% 70% at 50% 50%, #000 30%, transparent 80%)",
      }} />

      {/* corner brackets */}
      {[
        { top: 10, left: 10, t: 1, l: 1 },
        { top: 10, right: 10, t: 1, r: 1 },
        { bottom: 10, left: 10, b: 1, l: 1 },
        { bottom: 10, right: 10, b: 1, r: 1 },
      ].map((c, i) => (
        <div key={i} style={{
          position: "absolute", width: 14, height: 14,
          top: c.top, bottom: c.bottom, left: c.left, right: c.right,
          borderTop: c.t ? "1px solid rgba(168,139,255,0.4)" : "none",
          borderBottom: c.b ? "1px solid rgba(168,139,255,0.4)" : "none",
          borderLeft: c.l ? "1px solid rgba(168,139,255,0.4)" : "none",
          borderRight: c.r ? "1px solid rgba(168,139,255,0.4)" : "none",
        }} />
      ))}

      <div style={{ position: "relative", display: "grid", gridTemplateColumns: "minmax(280px, 1fr) 1.4fr", gap: 36, alignItems: "center" }} className="ent-strip-grid">
        {/* LEFT: identity */}
        <div>
          <div style={{ display: "flex", alignItems: "center", gap: 8, marginBottom: 10 }}>
            <span className="mono" style={{
              padding: "3px 9px",
              background: "linear-gradient(135deg, var(--accent), var(--accent-2))",
              color: "white",
              borderRadius: 3, fontSize: 9, fontWeight: 700, letterSpacing: 0.18,
              boxShadow: "0 0 14px var(--accent-glow)",
            }}>BESPOKE TIER</span>
            <span className="mono" style={{ fontSize: 10, color: "var(--text-mute)", letterSpacing: 0.14 }}>
              05 / 05
            </span>
          </div>

          <div style={{ display: "flex", alignItems: "baseline", gap: 12 }}>
            <span className="display" style={{
              fontSize: 72, fontWeight: 800, lineHeight: 0.9, letterSpacing: -0.05,
              background: "linear-gradient(135deg, #E0C97E 0%, var(--accent-2) 60%, var(--info) 100%)",
              WebkitBackgroundClip: "text", WebkitTextFillColor: "transparent",
              filter: "drop-shadow(0 0 22px rgba(168,139,255,0.4))",
            }}>∞</span>
            <div className="display" style={{
              fontSize: 32, fontWeight: 800, letterSpacing: -0.03, lineHeight: 1,
              background: "linear-gradient(135deg, #FAFAFA 0%, #E0C97E 50%, var(--accent-2) 100%)",
              WebkitBackgroundClip: "text", WebkitTextFillColor: "transparent",
            }}>Enterprise</div>
          </div>

          <div className="mono" style={{
            marginTop: 6, fontSize: 10.5, color: "var(--text-mute)", letterSpacing: 0.16, textTransform: "uppercase",
          }}>
            Custom-fit · Above the plans
          </div>

          <p style={{ marginTop: 14, fontSize: 13, color: "var(--text-mid)", lineHeight: 1.7 }}>
            Business の上限を超え、要件が個別契約レベルに達した組織向け。<strong style={{ color: "var(--text)" }}>規模・契約・運用を個別設計</strong>。
          </p>

          <div style={{ marginTop: 18, display: "flex", flexWrap: "wrap", gap: 8 }}>
            <a href="mailto:contact@urlapi.me" style={{
              padding: "12px 22px",
              background: "linear-gradient(135deg, #E0C97E, var(--accent-2))",
              color: "#0a0a14",
              border: "none", borderRadius: 7,
              fontSize: 13, fontWeight: 700, textDecoration: "none",
              display: "inline-flex", alignItems: "center", gap: 8,
              boxShadow: "0 0 22px rgba(224,201,126,0.30), 0 0 14px var(--accent-glow)",
            }}>
              セールスに相談 →
            </a>
            <a href="mailto:contact@urlapi.me" className="mono" style={{
              padding: "12px 18px",
              background: "transparent",
              color: "var(--text-mid)",
              border: "1px solid var(--border-strong)",
              borderRadius: 7,
              fontSize: 11.5, fontWeight: 500, textDecoration: "none",
              letterSpacing: 0.06,
            }}>contact@urlapi.me</a>
          </div>
        </div>

        {/* RIGHT: spec sheet */}
        <div>
          <div style={{
            display: "flex", justifyContent: "space-between", alignItems: "baseline",
            marginBottom: 10, paddingBottom: 8, borderBottom: "1px solid var(--border)",
          }}>
            <span className="mono" style={{ fontSize: 9.5, color: "var(--accent-2)", letterSpacing: 0.2, textTransform: "uppercase" }}>
              Specification sheet
            </span>
            <span className="mono" style={{ fontSize: 9, color: "var(--text-mute)", letterSpacing: 0.12 }}>
              REV. 2026.07
            </span>
          </div>

          <div>
            {specs.map(([n, k, v, d], i) => (
              <div key={n} style={{
                display: "grid",
                gridTemplateColumns: "26px 90px 1fr",
                alignItems: "center",
                columnGap: 12,
                padding: "9px 0",
                borderBottom: i < specs.length - 1 ? "1px solid rgba(255,255,255,0.04)" : "none",
              }}>
                <span className="mono" style={{ fontSize: 9.5, color: "var(--text-dim)", letterSpacing: 0.06 }}>{n}</span>
                <span className="mono" style={{ fontSize: 10, color: "var(--text-mute)", letterSpacing: 0.14, textTransform: "uppercase" }}>{k}</span>
                <div style={{ display: "flex", flexDirection: "column", gap: 1 }}>
                  <span className="mono" style={{
                    fontSize: 12.5, fontWeight: 700, letterSpacing: 0.04,
                    background: "linear-gradient(90deg, #FAFAFA, #E0C97E)",
                    WebkitBackgroundClip: "text", WebkitTextFillColor: "transparent",
                  }}>{v}</span>
                  <span style={{ fontSize: 11, color: "var(--text-mute)", lineHeight: 1.4 }}>{d}</span>
                </div>
              </div>
            ))}
          </div>
        </div>
      </div>
      <style>{`
        @media (max-width: 880px) {
          .ent-strip-grid { grid-template-columns: 1fr !important; gap: 24px !important; }
        }
      `}</style>
    </div>
  );
}

// ─── FAQ ────────────────────────────────────────────────────────
function FAQ() {
  const [open, setOpen] = lpUS(0);
  const qs = [
    { q: "自分のドメインを使うのに、既存サイトに影響はある?", a: "ありません。サブドメインを1つ追加するだけ。メール（MX）には一切触れません。link.example.co や go.example.co 等を新規追加する形です。" },
    { q: "iOS 14 / ATT でCV計測が落ちないの?", a: "urlapi はクリックを基点とした計測なので、ATTの影響を受けにくい設計。さらに Meta CAPI / Google Enhanced CV といったサーバーサイドAPIを通じて、Pixel/Tag単独より高い計測精度を実現します。" },
    { q: "Bitlyとの違いは?", a: "Bitlyは管理画面中心の汎用短縮URL。urlapi は API / MCP / AIチャットでの操作が前提で、広告API連携が標準装備。データの所有権は完全に顧客側にあります。" },
    { q: "MCPって何?", a: "Model Context Protocol。Claude や ChatGPT から外部ツールを呼び出すための標準プロトコル。urlapi MCP を入れると、AIに「春キャンペーン作って、Metaに送って」と言うだけで全部自動実行されます。" },
    { q: "解約したらドメインはどうなる?", a: "顧客のもの。CNAMEレコードを削除すれば切り離し完了。urlapi に何も残りません。「いつでも辞められる」前提の設計です。" },
    { q: "Enterprise プランはどんな企業向け?", a: "ホワイトラベル・カスタムSLA・専属サポート・プライベートデプロイなどが必要な代理店や大手向け。クリック数・events量・アカウント数・AI処理量を要件に合わせてカスタマイズします。応相談です。" },
  ];
  return (
    <Section id="faq" eyebrow="Questions" title={<>よくある質問。</>}>
      <div style={{ maxWidth: 760, marginInline: "auto", display: "flex", flexDirection: "column", gap: 8 }}>
        {qs.map((f, i) => (
          <div key={i} onClick={() => setOpen(open === i ? -1 : i)} style={{ background: "var(--bg-1)", border: "1px solid var(--border)", borderRadius: 10, cursor: "pointer", overflow: "hidden" }}>
            <div className="faq-q" style={{ padding: "16px 20px", display: "flex", alignItems: "center", gap: 12 }}>
              <span style={{ flex: 1, fontSize: 14.5, fontWeight: 500 }}>{f.q}</span>
              <span style={{ color: "var(--text-mute)", transform: open === i ? "rotate(45deg)" : "rotate(0)", transition: "transform .2s" }}><I.Plus size={16} /></span>
            </div>
            {open === i && (
              <div className="faq-a" style={{ padding: "0 20px 18px", fontSize: 13.5, color: "var(--text-mid)", lineHeight: 1.7 }}>{f.a}</div>
            )}
          </div>
        ))}
      </div>
    </Section>
  );
}

// ─── CTA + Footer ───────────────────────────────────────────────
function FinalCTA() {
  return (
    <section style={{ padding: "60px 0 60px", position: "relative", overflow: "hidden", borderTop: "1px solid var(--border-soft)" }}>
      <div style={{ position: "absolute", inset: 0, background: "radial-gradient(ellipse 600px 400px at 50% 50%, var(--accent-glow), transparent 70%)", pointerEvents: "none" }} />
      <div className="wrap" style={{ position: "relative", textAlign: "center" }}>
        <h2 className="display final-cta-h" style={{ fontSize: "clamp(36px, 8vw, 72px)", fontWeight: 800, margin: 0, letterSpacing: -0.03, maxWidth: 900, marginInline: "auto", lineHeight: 1.1 }}>
          クリックを、<br />データ資産に変えるAI。
        </h2>
        <p className="final-cta-sub" style={{ fontSize: 17, color: "var(--text-mid)", marginTop: 22, maxWidth: 540, marginInline: "auto", lineHeight: 1.6 }}>
          あなたの AI を urlapi に紹介するところから。<br />クレカ登録なし、いますぐ無料ではじめられます。
        </p>
        <div className="final-cta-row" style={{ display: "flex", gap: 12, justifyContent: "center", marginTop: 36, flexWrap: "wrap" }}>
          <button onClick={() => location.href = '/app/signup'} style={{
            padding: "14px 26px", background: "var(--accent)", color: "white",
            border: "none", borderRadius: 10, fontSize: 14.5, fontWeight: 600, cursor: "pointer",
            display: "inline-flex", alignItems: "center", gap: 8,
            boxShadow: "0 0 36px var(--accent-glow), 0 8px 24px rgba(124,92,255,0.3)",
          }}>
            <I.Sparkle size={14} /> 無料ではじめる
          </button>
        </div>
      </div>
    </section>
  );
}

function Footer() {
  return (
    <footer style={{ borderTop: "1px solid var(--border)", padding: "40px 0", background: "var(--bg-1)" }}>
      <div className="wrap footer-grid" style={{ display: "grid", gridTemplateColumns: "2fr 1fr 1fr 1fr 1fr", gap: 40 }}>
        <div className="footer-brand">
          <div style={{ display: "flex", alignItems: "center", gap: 8, marginBottom: 14 }}>
            <div style={{ width: 22, height: 22, borderRadius: 5, background: "linear-gradient(135deg, var(--accent), var(--accent-2))", display: "grid", placeItems: "center" }}>
              <I.Logo size={12} color="#0A0A0A" />
            </div>
            <span className="display" style={{ fontSize: 15, fontWeight: 700 }}>urlapi<span style={{ color: "var(--accent)" }}>.</span>me</span>
          </div>
          <p className="mono" style={{ fontSize: 11, color: "var(--text-mute)", lineHeight: 1.7, margin: 0 }}>
            AIで完結する、<br />トラッキング & データ分析プラットフォーム<br /><br />
            © 2026 株式会社9lick.me
          </p>
        </div>
        {[
          { t: "Product", l: [["機能", "#features"], ["API/MCP", "#developer"], ["料金", "#pricing"], ["TQO 白書", "/tqo"]] },
          { t: "Developers", l: [["Docs", "/docs/"], ["API Reference", "/docs/api/events"], ["MCP Server", "/docs/auth#mcp-key"], ["Status", "/status"]] },
          { t: "Company", l: [["About", "#"], ["Blog", "#"], ["Careers", "#"], ["Press", "#"]] },
          { t: "Legal", l: [["利用規約", "/terms"], ["プライバシー", "/privacy"], ["トラッキング", "/tracking"], ["サブプロセッサ", "/subprocessors"], ["特定商取引法", "/tokutei"], ["Status", "/status"]] },
        ].map((c, i) => (
          <div key={i}>
            <div className="mono" style={{ fontSize: 10.5, color: "var(--text-mute)", letterSpacing: 0.14, textTransform: "uppercase", marginBottom: 12 }}>{c.t}</div>
            <ul style={{ margin: 0, padding: 0, listStyle: "none", display: "flex", flexDirection: "column", gap: 8 }}>
              {c.l.map(([label, href]) => <li key={label}><a href={href} style={{ fontSize: 12.5, color: "var(--text-mid)" }}>{label}</a></li>)}
            </ul>
          </div>
        ))}
      </div>
    </footer>
  );
}

// ─── App ─────────────────────────────────────────────────────────
function VariantSwitch({ id, label, options, value, onChange }) {
  return (
    <div style={{
      position: "sticky", top: 70, zIndex: 30,
      display: "flex", justifyContent: "center", marginBottom: 8, pointerEvents: "none",
    }}>
      <div className="mono variant-switch" style={{
        display: "inline-flex", alignItems: "center", gap: 6, padding: 4,
        background: "rgba(10,10,18,0.86)", border: "1px solid var(--accent-soft)",
        borderRadius: 999, backdropFilter: "blur(14px)", WebkitBackdropFilter: "blur(14px)",
        boxShadow: "0 8px 28px rgba(0,0,0,0.45)", pointerEvents: "auto",
      }}>
        <span style={{ fontSize: 10, color: "var(--accent-2)", letterSpacing: 0.12, padding: "0 10px 0 12px", textTransform: "uppercase" }}>{label}</span>
        <span style={{ width: 1, height: 12, background: "var(--border-strong)" }} />
        {options.map(o => (
          <button key={o.k} onClick={() => onChange(o.k)} className="mono" style={{
            padding: "6px 14px",
            background: value === o.k ? "linear-gradient(135deg, var(--accent), var(--accent-2))" : "transparent",
            color: value === o.k ? "white" : "var(--text-mute)",
            border: "none", borderRadius: 999,
            fontSize: 11, fontWeight: 600, letterSpacing: 0.06, cursor: "pointer",
            transition: "all .15s",
          }}>{o.l}</button>
        ))}
      </div>
    </div>
  );
}

function App() {
  // SP-only redesign — switch trees below 768px
  const isMobile = (typeof window !== "undefined" && typeof window.useIsMobile === "function")
    ? window.useIsMobile(768)
    : false;
  if (isMobile && window.SPApp) {
    return <window.SPApp />;
  }

  return (
    <>
      <Nav />

      {/* 1. HERO (A · Cinematic) */}
      <Hero />

      {/* 2. About — 3 panels (AI Console / Tracking Health / Capabilities) as tabs */}
      <AboutTabs />

      {/* 4. Pillars (visual story) */}
      <Pillars />

      {/* 6. Developer (priority) */}
      <Developer />

      {/* 8. Pricing */}
      <Pricing />

      {/* 9. FAQ */}
      <FAQ />

      {/* 10. Final CTA */}
      <FinalCTA />

      <Footer />
      <ScrollToTop />
    </>
  );
}

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