> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polygon.technology/llms.txt
> Use this file to discover all available pages before exploring further.

# Polygon Developer Docs

> Polygon developer documentation: the Open Money Stack API for stablecoin payments, non-custodial wallets, on-ramps and off-ramps, cross-chain settlement, and the Polygon Chain, CDK, and Agglayer infrastructure that powers it.

export const Resources = () => {
  const [dark, setDark] = React.useState(false);
  React.useEffect(() => {
    const update = () => setDark(document.documentElement.classList.contains("dark"));
    update();
    const obs = new MutationObserver(update);
    obs.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => obs.disconnect();
  }, []);
  const bg1 = dark ? "#1C1C1C" : "#fff";
  const bg3 = dark ? "rgba(103,13,229,0.12)" : "#FAF8FE";
  const fg1 = dark ? "#e5e7eb" : "#020005";
  const fg2 = dark ? "#9ca3af" : "#48526F";
  const fg4 = dark ? "#6b7280" : "#929EBA";
  const s1 = dark ? "rgba(255,255,255,0.12)" : "#C8CFE1";
  const s2 = dark ? "rgba(255,255,255,0.08)" : "#DFE3F0";
  const icon = dark ? "rgba(103,13,229,0.3)" : "#EAE4F5";
  const sepLine = dark ? "linear-gradient(to right, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.08) 60%, transparent 100%)" : "linear-gradient(to right, #C8CFE1 0%, #DFE3F0 60%, transparent 100%)";
  const getCardIcon = title => {
    if (title === "API reference") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" /></svg>;
    if (title === "GitHub") {
      const d = "M15 22v-4a4.8 4.8 0 0 0-1-3.2c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65S9.03 17.38 9 18v4";
      return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d={d} /><path d="M9 18c-4.51 2-5-2-7-2" /></svg>;
    }
    if (title === "Changelog") {
      const d = "M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2";
      return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d={d} /><path d="M18 14h-8" /><path d="M15 18h-5" /><path d="M10 6h8v4h-8V6Z" /></svg>;
    }
    if (title === "Guides & tutorials") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M22 10v6M2 10l10-5 10 5-10 5z" /><path d="M6 12v5c3 3 9 3 12 0v-5" /></svg>;
    if (title === "Community & support") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z" /><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1" /></svg>;
    return null;
  };
  const getBandLinkIcon = name => {
    if (name === "Quickstart") {
      const d1 = "M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z";
      const d2 = "m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z";
      const d3 = "M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0";
      const d4 = "M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5";
      return <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"><path d={d1} /><path d={d2} /><path d={d3} /><path d={d4} /></svg>;
    }
    if (name === "Compliance & KYC") return <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" /><path d="m9 12 2 2 4-4" /></svg>;
    if (name === "Status & uptime") return <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2" /></svg>;
    if (name === "Request OMS access") return <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"><path d="m22 2-7 20-4-9-9-4z" /><path d="M22 2 11 13" /></svg>;
    if (name === "Book a live demo") {
      return <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"><rect width="18" height="18" x="3" y="4" rx="2" ry="2" /><line x1="16" x2="16" y1="2" y2="6" /><line x1="8" x2="8" y1="2" y2="6" /><line x1="3" x2="21" y1="10" y2="10" /></svg>;
    }
    if (name === "Contact support") return <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"><circle cx="12" cy="12" r="10" /><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" /><path d="M12 17h.01" /></svg>;
    if (name === "Partner program") {
      const d = "m11 17 2 2a1 1 0 1 0 3-3m0 0 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4";
      return <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"><path d={d} /><path d="m21 3 1 11h-1" /><path d="M4.72 4.72 3 3" /><path d="M3 21 8.5 15.5" /><path d="m7 10-1.5-1.5A2 2 0 0 0 3 10v1a6.65 6.65 0 0 0 1.7 4.3" /></svg>;
    }
    if (name === "Security & disclosure") return <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"><rect width="11" height="11" x="3" y="11" rx="2" ry="2" /><path d="M7 11V7a5 5 0 0 1 10 0v4" /></svg>;
    return null;
  };
  const CARDS = [{
    title: "API reference",
    sub: "REST endpoints, schemas, errors",
    href: "/api-reference/overview"
  }, {
    title: "GitHub",
    sub: "SDKs, samples, OpenAPI spec",
    href: "https://github.com/0xPolygon"
  }, {
    title: "Changelog",
    sub: "What shipped this week",
    href: "/changelog"
  }, {
    title: "Guides & tutorials",
    sub: "End-to-end walkthroughs",
    href: "/payments/get-started"
  }, {
    title: "Community & support",
    sub: "Discord, forum, status page",
    href: "https://discord.gg/0xPolygon"
  }];
  const BANDS = [{
    label: "Build",
    links: [{
      name: "Quickstart",
      href: "/payments/get-started"
    }]
  }, {
    label: "Operate",
    links: [{
      name: "Compliance & KYC",
      href: "/payments/compliance"
    }, {
      name: "Status & uptime",
      href: "https://status.polygon.technology"
    }]
  }, {
    label: "Talk to us",
    links: [{
      name: "Request OMS access",
      href: "https://info.polygon.technology/get-early-access?utm_source=docs&utm_medium=footer&utm_campaign=oms_access"
    }, {
      name: "Book a live demo",
      href: "https://info.polygon.technology/get-early-access?utm_source=docs&utm_medium=footer&utm_campaign=oms_access"
    }, {
      name: "Contact support",
      href: "https://support.polygon.technology"
    }, {
      name: "Partner program",
      href: "https://polygon.technology/ecosystem"
    }, {
      name: "Security & disclosure",
      href: "/tools/security/disclosure"
    }]
  }];
  return <section style={{
    padding: "64px 0"
  }}>
      <div style={{
    display: "grid",
    gridTemplateColumns: "auto 1fr",
    alignItems: "center",
    gap: "16px",
    marginBottom: "36px"
  }}>
        <span style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    letterSpacing: "0.08em",
    color: fg4,
    textTransform: "uppercase",
    fontWeight: "500"
  }}>
          <span style={{
    color: "#670DE5"
  }}>07</span> · Resources
        </span>
        <span style={{
    height: "1px",
    background: sepLine
  }} />
      </div>

      <div style={{
    display: "flex",
    alignItems: "end",
    justifyContent: "space-between",
    marginBottom: "28px",
    gap: "24px"
  }}>
        <div>
          <h2 style={{
    fontSize: "clamp(28px, 6vw, 36px)",
    fontWeight: "700",
    letterSpacing: "-0.025em",
    color: fg1,
    lineHeight: "1.05",
    margin: "0 0 12px"
  }}>Everything else, in one place</h2>
          <p style={{
    fontSize: "16px",
    color: fg2,
    maxWidth: "64ch",
    margin: 0,
    lineHeight: "1.55"
  }}>
            Reference, tooling, guides, and the humans behind the stack: for when the docs aren't enough.
          </p>
        </div>
      </div>

      <div style={{
    display: "grid",
    gridTemplateColumns: "repeat(auto-fit, minmax(240px, 1fr))",
    gap: "12px"
  }}>
        {CARDS.map(c => <a key={c.title} href={c.href} style={{
    display: "flex",
    alignItems: "center",
    gap: "12px",
    padding: "16px 18px",
    background: bg1,
    border: `1px solid ${s1}`,
    borderRadius: "12px",
    textDecoration: "none",
    color: "inherit"
  }} onMouseEnter={e => {
    e.currentTarget.style.borderColor = "#670DE5";
    e.currentTarget.style.background = bg3;
  }} onMouseLeave={e => {
    e.currentTarget.style.borderColor = s1;
    e.currentTarget.style.background = bg1;
  }}>
            <span style={{
    width: "34px",
    height: "34px",
    borderRadius: "8px",
    background: icon,
    color: "#670DE5",
    display: "inline-flex",
    alignItems: "center",
    justifyContent: "center",
    flexShrink: 0
  }}>
              {getCardIcon(c.title)}
            </span>
            <span style={{
    display: "flex",
    flexDirection: "column",
    minWidth: 0
  }}>
              <span style={{
    fontSize: "13.5px",
    fontWeight: "700",
    color: fg1
  }}>{c.title}</span>
              <span style={{
    fontSize: "11.5px",
    color: fg4,
    marginTop: "1px"
  }}>{c.sub}</span>
            </span>
            <span style={{
    marginLeft: "auto",
    color: s1,
    flexShrink: 0
  }}>
              <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M7 7h10v10" /><path d="M7 17 17 7" /></svg>
            </span>
          </a>)}
      </div>

      <div style={{
    display: "grid",
    gridTemplateColumns: "repeat(auto-fit, minmax(150px, 1fr))",
    gap: "28px",
    marginTop: "28px",
    paddingTop: "28px",
    borderTop: `1px solid ${s2}`
  }}>
        {BANDS.map(b => <div key={b.label}>
            <h6 style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    fontWeight: "600",
    textTransform: "uppercase",
    letterSpacing: "0.06em",
    color: fg4,
    margin: "0 0 10px"
  }}>{b.label}</h6>
            {b.links.map(l => <a key={l.name} href={l.href} style={{
    display: "flex",
    alignItems: "center",
    gap: "8px",
    padding: "6px 0",
    fontSize: "13px",
    color: fg2,
    fontWeight: "500",
    textDecoration: "none",
    transition: "color 120ms ease"
  }} onMouseEnter={e => {
    e.currentTarget.style.color = "#670DE5";
  }} onMouseLeave={e => {
    e.currentTarget.style.color = fg2;
  }}>
                <span style={{
    color: fg4,
    flexShrink: 0
  }}>{getBandLinkIcon(l.name)}</span>
                {l.name}
              </a>)}
          </div>)}
      </div>
    </section>;
};

export const Customers = () => {
  const [dark, setDark] = React.useState(false);
  React.useEffect(() => {
    const update = () => setDark(document.documentElement.classList.contains("dark"));
    update();
    const obs = new MutationObserver(update);
    obs.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => obs.disconnect();
  }, []);
  const bg1 = dark ? "#1C1C1C" : "#fff";
  const fg1 = dark ? "#e5e7eb" : "#020005";
  const fg2 = dark ? "#9ca3af" : "#48526F";
  const fg4 = dark ? "#6b7280" : "#929EBA";
  const s1 = dark ? "rgba(255,255,255,0.12)" : "#C8CFE1";
  const s2 = dark ? "rgba(255,255,255,0.08)" : "#DFE3F0";
  const gridGap = dark ? "rgba(255,255,255,0.06)" : "#DFE3F0";
  const sepLine = dark ? "linear-gradient(to right, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.08) 60%, transparent 100%)" : "linear-gradient(to right, #C8CFE1 0%, #DFE3F0 60%, transparent 100%)";
  const STATS = [{
    num: "$2.5",
    unit: "T",
    label: "Total transfer volume",
    trend: "+38% YoY",
    down: false
  }, {
    num: "159",
    unit: "M",
    label: "Unique wallet addresses",
    trend: "+22% YoY",
    down: false
  }, {
    num: "6.4",
    unit: "B",
    label: "Total transactions",
    trend: "+47% YoY",
    down: false
  }, {
    num: "$0.002",
    unit: "",
    label: "Average transaction cost",
    trend: "-18% YoY",
    down: true
  }];
  const LOGO_NAMES = ["Stripe", "Revolut", "Polymarket", "Securitize", "Google", "Reddit"];
  const getLogo = name => {
    if (name === "Stripe") {
      const d1 = "M69 30.4339C69 25.9907 66.7267 22.4846 62.3817 22.4846C58.0183 22.4846 55.3783 25.9907 55.3783 30.3992C55.3783 35.6235 58.495 38.2617 62.9683 38.2617C65.15 38.2617 66.8 37.7931 68.0467 37.1335V33.6622C66.8 34.2523 65.37 34.6168 63.555 34.6168C61.7767 34.6168 60.2 34.0267 59.9983 31.9786H68.9633C68.9633 31.753 69 30.8505 69 30.4339ZM59.9433 28.785C59.9433 26.8238 61.2083 26.008 62.3633 26.008C63.4817 26.008 64.6733 26.8238 64.6733 28.785H59.9433ZM48.3017 22.4846C46.505 22.4846 45.35 23.283 44.7083 23.8385L44.47 22.7623H40.4367V43L45.02 42.0801L45.0383 37.1682C45.6983 37.6195 46.67 38.2617 48.2833 38.2617C51.565 38.2617 54.5533 35.7623 54.5533 30.2603C54.535 25.227 51.51 22.4846 48.3017 22.4846ZM47.2017 34.4433C46.12 34.4433 45.4783 34.0788 45.0383 33.6275L45.02 27.1883C45.4967 26.6849 46.1567 26.3378 47.2017 26.3378C48.87 26.3378 50.025 28.1081 50.025 30.3818C50.025 32.7076 48.8883 34.4433 47.2017 34.4433ZM34.13 21.4606L38.7317 20.5234V17L34.13 17.9199V21.4606ZM34.13 22.7797H38.7317V37.9666H34.13V22.7797ZM29.1983 24.0641L28.905 22.7797H24.945V37.9666H29.5283V27.6742C30.61 26.3378 32.4433 26.5808 33.0117 26.7717V22.7797C32.425 22.5714 30.28 22.1896 29.1983 24.0641ZM20.0317 19.0134L15.5583 19.9159L15.54 33.8184C15.54 36.3872 17.575 38.279 20.2883 38.279C21.7917 38.279 22.8917 38.0187 23.4967 37.7063V34.1829C22.91 34.4085 20.0133 35.2069 20.0133 32.6382V26.4766H23.4967V22.7797H20.0133L20.0317 19.0134ZM7.63833 27.1883C7.63833 26.5113 8.225 26.251 9.19667 26.251C10.59 26.251 12.35 26.6502 13.7433 27.3618V23.283C12.2217 22.7103 10.7183 22.4846 9.19667 22.4846C5.475 22.4846 3 24.3244 3 27.3965C3 32.1869 9.96667 31.4232 9.96667 33.4887C9.96667 34.287 9.23333 34.5474 8.20667 34.5474C6.685 34.5474 4.74167 33.9573 3.20167 33.1589V37.2897C4.90667 37.984 6.63 38.279 8.20667 38.279C12.02 38.279 14.6417 36.4913 14.6417 33.3845C14.6233 28.2123 7.63833 29.1322 7.63833 27.1883Z";
      return <svg height="48" viewBox="0 0 72 60" fill="none" aria-label="Stripe"><path fillRule="evenodd" d={d1} fill="currentColor" /></svg>;
    }
    if (name === "Revolut") {
      const d1 = "M58.7573 21H61.9511V38.3654H58.7573V21ZM84.5 28.3231V25.6308H81.2236V22.1308H78.0299V34.9192C78.0299 36.1038 78.3328 36.9923 78.9385 37.5846C79.5442 38.1769 80.4528 38.4731 81.6917 38.4731H84.5V35.7808H82.4351C81.9946 35.7808 81.6642 35.6731 81.4715 35.4846C81.3063 35.3231 81.1961 34.8654 81.1961 34.3808V28.3231H84.5ZM37.1445 34.9731L40.4208 25.6038H43.7522L39.0167 38.3385H35.2447L30.5092 25.6308H33.8406L37.1445 34.9731ZM72.8538 31.9846C72.8538 32.7923 72.7162 33.4923 72.4959 34.0577C72.2481 34.6231 71.8902 35.0808 71.4497 35.3769C71.0092 35.6731 70.4585 35.8077 69.8253 35.8077C68.9167 35.8077 68.2284 35.5115 67.7879 34.9462C67.3474 34.3538 67.0996 33.4923 67.0996 32.3346V25.6038H63.9058V32.6577C63.9058 33.7615 64.0435 34.7038 64.3188 35.4308C64.5942 36.1846 64.9796 36.7769 65.4477 37.2346C65.9157 37.6923 66.4663 38.0154 67.0996 38.2038C67.7053 38.3923 68.3661 38.5 69.0544 38.5C70.0455 38.5 70.8715 38.3115 71.5048 37.9885C72.0829 37.6654 72.551 37.2885 72.9364 36.8846L73.2118 38.3654H75.9925V25.6308H72.7988V31.9846H72.8538ZM53.8841 26.2769C52.8929 25.7385 51.6815 25.4692 50.36 25.4692C49.0384 25.4692 47.8545 25.7385 46.8358 26.2769C45.8171 26.8154 45.0187 27.5962 44.4681 28.5654C43.9174 29.5346 43.6421 30.6923 43.6421 31.9846C43.6421 33.2769 43.9174 34.4077 44.4681 35.3769C45.0187 36.3462 45.8171 37.1269 46.8358 37.6654C47.8545 38.2038 49.0384 38.4731 50.36 38.4731C51.709 38.4731 52.8929 38.2038 53.8841 37.6654C54.8753 37.1269 55.6737 36.3462 56.2243 35.3769C56.775 34.4077 57.0503 33.25 57.0503 31.9846C57.0503 30.6923 56.775 29.5346 56.2243 28.5654C55.7012 27.5962 54.9028 26.8423 53.8841 26.2769ZM52.2046 35.3769C51.6815 35.7 51.0758 35.8615 50.36 35.8615C49.6441 35.8615 49.0384 35.7 48.5153 35.3769C47.9922 35.0538 47.5792 34.5962 47.3039 34.0038C47.0286 33.4115 46.8634 32.7385 46.8634 31.9846C46.8634 31.2038 47.001 30.5308 47.3039 29.9654C47.5792 29.4 47.9922 28.9154 48.5153 28.5923C49.0384 28.2692 49.6441 28.0808 50.36 28.0808C51.0758 28.0808 51.709 28.2423 52.2046 28.5923C52.7277 28.9154 53.1132 29.4 53.416 29.9654C53.6914 30.5308 53.8566 31.2308 53.8566 31.9846C53.8566 32.7385 53.7189 33.4115 53.416 34.0038C53.1407 34.5962 52.7277 35.0538 52.2046 35.3769ZM6.80387 25.2808H3.5V38.3385H6.80387V25.2808ZM17.1835 26.0346C17.1835 23.2615 14.8708 21 12.035 21H3.5V23.8H11.622C12.916 23.8 13.9623 24.7962 13.9898 26.0077C13.9898 26.6269 13.7695 27.1923 13.329 27.6231C12.8885 28.0269 12.3103 28.2692 11.7046 28.2692H8.53841C8.42828 28.2692 8.34568 28.35 8.34568 28.4577V30.9615C8.34568 31.0154 8.34568 31.0423 8.37322 31.0692L13.742 38.3385H17.6791L12.2828 31.0423C14.981 30.9346 17.1835 28.7 17.1835 26.0346ZM27.343 26.2231C26.3793 25.7385 25.2505 25.4692 23.984 25.4692C22.7175 25.4692 21.5612 25.7385 20.5976 26.2769C19.6064 26.8154 18.863 27.5962 18.3124 28.5654C17.7617 29.5346 17.5139 30.6923 17.5139 32.0115C17.5139 33.3038 17.7893 34.4346 18.3399 35.4038C18.8906 36.3731 19.689 37.1538 20.6802 37.6654C21.6988 38.2038 22.9103 38.4731 24.2869 38.4731C25.3882 38.4731 26.3518 38.2846 27.2053 37.8808C28.0588 37.4769 28.7471 36.9385 29.2427 36.2654C29.7383 35.6192 30.0687 34.9192 30.2339 34.1385L30.2614 34.0577H27.0401L27.0126 34.1115C26.8474 34.7038 26.4895 35.1615 26.0214 35.4846C25.4983 35.8346 24.8375 36.0231 24.0942 36.0231C23.4609 36.0231 22.8827 35.8885 22.3872 35.6192C21.8916 35.35 21.5061 34.9731 21.2308 34.5154C20.9555 34.0308 20.8178 33.4654 20.7627 32.8192V32.7115H30.3165V32.6577C30.344 32.4692 30.3715 32.2808 30.3715 32.1192C30.3715 31.9308 30.3715 31.7692 30.3715 31.5808C30.344 30.3423 30.0687 29.2654 29.5455 28.35C29.05 27.4077 28.2791 26.7077 27.343 26.2231ZM26.1866 28.6192C26.7373 29.0769 27.0676 29.6962 27.2053 30.5038H20.9004C20.983 29.9923 21.1482 29.5346 21.4235 29.1577C21.7264 28.7538 22.0843 28.4577 22.5523 28.2423C22.9929 28.0269 23.4884 27.9192 24.0116 27.9192C24.8926 27.9192 25.6084 28.1615 26.1866 28.6192Z";
      return <svg height="48" viewBox="0 0 88 60" fill="none" aria-label="Revolut"><path fillRule="evenodd" d={d1} fill="currentColor" /></svg>;
    }
    if (name === "Polymarket") {
      const d1 = "M25.1764 43C23.7822 42.8523 23.7819 42.8527 23.162 42.6826C23.0217 42.6446 22.8812 42.6066 22.7367 42.5675C22.5873 42.526 22.4379 42.4841 22.2839 42.4414C22.0436 42.376 22.0434 42.3761 21.7983 42.3094C21.3622 42.1905 20.9263 42.0705 20.4906 41.9505C20.0304 41.824 19.5696 41.6985 19.1092 41.573C18.9207 41.5217 18.7321 41.4704 18.5436 41.419C18.4496 41.3934 18.3555 41.3675 18.2586 41.3411C17.9702 41.2625 17.6814 41.1838 17.393 41.105C15.2876 40.5299 13.1785 39.967 11.0692 39.4047C8.37665 38.6866 5.68846 37.9542 3 37.2219V22.7781C10.1625 20.8084 10.1627 20.8082 12.2287 20.283C12.6826 20.1613 13.1359 20.0381 13.5888 19.9132C14.6609 19.6193 15.7345 19.3303 16.8089 19.0439C17.0238 18.9866 17.0238 18.9865 17.243 18.928C17.9842 18.7305 18.7256 18.5333 19.4669 18.3364C19.7632 18.2576 20.0594 18.1782 20.3556 18.0994C20.4985 18.0615 20.6416 18.0242 20.7889 17.9852C21.4332 17.8136 22.0763 17.6388 22.7163 17.4528C22.8232 17.4219 22.9302 17.3907 23.0403 17.3589C23.2339 17.3024 23.4272 17.2456 23.6201 17.187C24.1871 17.0215 24.5572 17 25.1764 17V43ZM23.1105 31.7079C22.7998 31.7079 22.7996 31.7077 22.0211 31.9009C21.906 31.93 21.7938 31.9581 21.682 31.9864C20.8609 32.1929 20.0442 32.4104 19.2317 32.6457C18.0651 32.9856 16.8947 33.304 15.716 33.6038C14.3848 33.9421 13.0556 34.2871 11.7298 34.6439C11.1387 34.803 10.5476 34.9623 9.95504 35.1162C9.78734 35.1595 9.62419 35.2011 9.46142 35.2432C9.14423 35.3258 8.8269 35.4086 8.5097 35.4911C8.35547 35.5304 8.20572 35.5682 8.05603 35.6063C7.84617 35.6612 7.84618 35.6616 7.64054 35.7154C7.5153 35.7476 7.39366 35.779 7.2721 35.8102C6.995 35.9098 6.99435 35.9098 6.85661 36.1725C8.5129 36.5834 10.1584 37.0294 11.8034 37.4792C12.0969 37.5595 12.3907 37.6395 12.6841 37.7196C13.2615 37.8772 13.839 38.035 14.4162 38.1927C15.3501 38.4479 16.284 38.7026 17.2181 38.957C17.7591 39.1042 18.3003 39.2515 18.841 39.3996C19.2238 39.5046 19.6068 39.6095 19.9899 39.7136C20.1289 39.7513 20.2642 39.7879 20.3991 39.8245C20.616 39.8843 20.6162 39.8843 20.8288 39.943C20.9718 39.9816 21.1109 40.0189 21.2496 40.0564C21.8711 40.2262 21.871 40.2269 23.1105 40.3746V31.7079ZM5.20441 34.3342C5.47935 34.3342 5.47958 34.3335 5.8019 34.2597C5.93964 34.2243 6.07393 34.1899 6.20763 34.1556C6.36064 34.1164 6.50922 34.0786 6.65774 34.0405C6.82187 33.998 6.9814 33.9565 7.14071 33.9152C8.28143 33.621 9.42001 33.3213 10.5525 32.9995C15.6639 31.5844 15.6642 31.5838 20.7951 30.2336C20.9267 30.1989 21.0545 30.1657 21.1822 30.132V29.8688C17.8473 28.9667 14.5109 28.0698 11.1722 27.1808C10.7969 27.0809 10.4209 26.9805 10.0456 26.8803C9.59331 26.7595 9.14057 26.6392 8.68814 26.5189C8.43173 26.4508 8.43166 26.4503 8.18032 26.3835C7.93972 26.3192 7.93918 26.3196 7.70357 26.2566C7.47727 26.1966 7.47703 26.1961 7.25523 26.1372C6.59888 25.9625 6.59865 25.9629 5.20441 25.6675V34.3342ZM23.1105 19.6271C22.5034 19.6271 22.5027 19.6271 19.815 20.3423C19.6711 20.3809 19.5312 20.4182 19.3915 20.4557C18.4612 20.7043 17.5324 20.9564 16.6082 21.225C15.1871 21.6391 13.7561 22.0157 12.3219 22.3862C12.1266 22.4366 11.9313 22.4873 11.736 22.5377C11.5889 22.5757 11.5888 22.5758 11.4448 22.613C9.91277 23.0086 8.38416 23.4175 6.85661 23.8284C6.99435 24.091 6.99489 24.0912 7.25346 24.1872C7.37016 24.2178 7.48377 24.2481 7.59704 24.2778C7.79317 24.33 7.79351 24.3298 7.98589 24.3811C8.13097 24.4185 8.27212 24.4547 8.41293 24.4911C8.87132 24.6123 9.33017 24.7337 9.78902 24.8533C10.1023 24.9349 10.4153 25.0173 10.7283 25.0996C11.1845 25.2198 11.641 25.34 12.0973 25.4602C13.3159 25.7799 14.5331 26.1045 15.7479 26.4368C16.739 26.708 17.7308 26.9763 18.7239 27.2409C18.932 27.2962 19.1407 27.3513 19.3489 27.4068C19.6687 27.4926 19.9885 27.5789 20.3086 27.6641C20.4129 27.6918 20.5145 27.7184 20.6158 27.7453C21.4434 27.9686 22.2627 28.1321 23.1105 28.2938V19.6271Z";
      const d2 = "M69.0569 26.5782C69.1679 26.5788 69.279 26.5793 69.3933 26.5799C69.6686 26.5814 69.9438 26.5833 70.219 26.5858C70.1404 27.2431 69.9877 27.8285 69.7458 28.4495C69.6709 28.647 69.5952 28.8444 69.5203 29.0419C69.4784 29.1515 69.4366 29.2616 69.3933 29.3745C69.1231 30.0827 68.8577 30.7927 68.5917 31.5023C68.533 31.6584 68.4746 31.8146 68.4141 31.9754C67.9544 33.2009 67.5064 34.4301 67.0691 35.663C65.9649 38.7428 65.9645 38.7428 64.6232 39.717C63.8849 39.9255 62.802 40.0554 62.0921 39.717V38.0099C62.3534 37.9801 62.6148 37.9509 62.884 37.9202C63.5555 37.8159 63.5556 37.8157 64.1065 37.4521C64.5996 36.512 64.6233 35.8453 64.3045 34.8479C64.1296 34.3591 63.947 33.8733 63.762 33.388C63.6945 33.2082 63.6269 33.0278 63.5596 32.848C63.3832 32.3774 63.2059 31.9071 63.0278 31.4371C62.7424 30.683 62.4591 29.9279 62.1755 29.1731C62.0766 28.9103 61.9767 28.6478 61.8772 28.3852C61.817 28.2257 61.7572 28.0662 61.6952 27.9019C61.6421 27.7616 61.5884 27.6207 61.5336 27.4762C61.4031 27.1114 61.4032 27.1109 61.2655 26.5858H63.7452C64.0205 27.2858 64.2846 27.982 64.5255 28.6924C64.5582 28.7883 64.5904 28.8847 64.6241 28.9835C64.6925 29.1846 64.761 29.3859 64.8292 29.587C64.9332 29.8939 65.0377 30.2011 65.1426 30.5078C65.2093 30.7043 65.2765 30.9012 65.3432 31.0977C65.3897 31.2337 65.3898 31.234 65.4373 31.3728C65.5919 31.8312 65.7248 32.2828 65.8111 32.7574C65.8352 32.6818 65.8599 32.6059 65.8848 32.5281C65.919 32.4209 65.9534 32.3135 65.9886 32.2031C66.0272 32.0822 66.0652 31.9611 66.1049 31.8366C66.1908 31.5677 66.2773 31.2989 66.3633 31.03C66.5934 30.3102 66.8225 29.59 67.0495 28.8693C67.1149 28.6625 67.1143 28.6621 67.1809 28.4512C67.2653 28.1841 67.3494 27.9169 67.4331 27.6497C67.4712 27.5292 67.5101 27.409 67.5494 27.2849C67.5829 27.1783 67.616 27.0714 67.6506 26.9616C67.7394 26.7174 67.7393 26.7171 67.877 26.5858C68.2713 26.5762 68.6627 26.5743 69.0569 26.5782Z";
      const d3 = "M119.541 26.4098C120.626 26.439 121.433 26.7205 122.286 27.3746C123.601 28.7231 123.664 30.1651 123.664 31.9703H117.051C117.609 33.4782 117.609 33.4786 118.842 34.3342C119.807 34.4147 120.588 34.3477 121.459 33.9398L121.769 33.6444C121.849 33.5686 121.929 33.4931 122.011 33.415C122.474 33.4612 122.697 33.6303 123.009 33.9482C123.117 34.056 123.117 34.0566 123.227 34.1666C123.28 34.2218 123.333 34.2773 123.388 34.3342C123.209 34.867 123.031 35.1029 122.535 35.4006C122.434 35.4632 122.333 35.5265 122.228 35.591C120.907 36.2885 119.646 36.3522 118.154 36.1725C116.994 35.8455 116.019 35.1863 115.366 34.2106C114.607 32.865 114.492 31.299 114.805 29.8138C115.222 28.5109 115.957 27.5496 117.19 26.849C117.886 26.5139 118.474 26.3912 119.247 26.4064C119.344 26.4075 119.441 26.4086 119.541 26.4098ZM119.807 28.1626C119.203 28.0681 118.809 28.113 118.257 28.3758C117.486 29.0107 117.337 29.4146 117.19 30.3952H121.322C121.275 29.9934 121.23 29.6029 121.184 29.2129C120.837 28.6488 120.449 28.3861 119.807 28.1626Z";
      const d4 = "M47.4913 27.6361C49.2049 26.1485 51.7247 25.9455 53.6819 27.1444C54.5885 27.803 55.2002 28.8263 55.4806 29.8688C55.6755 31.722 55.586 33.385 54.37 34.908C53.4901 35.7648 52.4945 36.2002 51.2431 36.252C49.7169 36.2618 48.5757 35.9859 47.4469 34.9596C46.3716 33.8795 46.0279 32.5005 46.0486 31.0427C46.1085 29.7432 46.5338 28.5763 47.4913 27.6361ZM51.4864 28.1617C50.3081 27.9995 49.5344 28.2399 48.8692 29.212C48.3123 30.2761 48.2626 31.6105 48.5593 32.7574C48.903 33.5437 49.2938 34.0834 50.1085 34.4645C50.7748 34.5417 51.4202 34.5474 51.9987 34.1852C52.0819 34.1214 52.1629 34.0593 52.2437 33.9973C52.3269 33.9359 52.4079 33.8758 52.4887 33.8162C53.0757 33.1459 53.1899 32.3914 53.1892 31.548C53.1869 31.4375 53.1843 31.3302 53.1821 31.223C53.1844 30.662 53.1894 30.1553 53.0134 29.6166C52.649 28.9543 52.1891 28.4968 51.4864 28.1617Z";
      const d5 = "M128.209 26.5858H130V28.1617H128.209C128.219 28.9774 128.231 29.793 128.246 30.6085C128.25 30.8861 128.254 31.1638 128.257 31.4413C128.262 31.84 128.269 32.2386 128.277 32.6372C128.278 32.7615 128.279 32.8858 128.279 33.0139C128.284 33.1873 128.283 33.1875 128.287 33.3643C128.289 33.466 128.29 33.5683 128.292 33.6732C128.361 34.0081 128.479 34.1271 128.76 34.3333C129.074 34.3808 129.075 34.3807 129.406 34.3579C129.602 34.3498 129.798 34.3417 130 34.3333V36.0404C129.144 36.3124 128.026 36.3188 127.159 36.0667C126.413 35.6747 126.114 35.0884 125.867 34.3333C125.8 33.8523 125.803 33.3816 125.814 32.8971C125.815 32.7648 125.815 32.6322 125.816 32.4959C125.819 32.0771 125.827 31.6578 125.834 31.2391C125.836 30.9536 125.838 30.6681 125.841 30.3826C125.847 29.686 125.856 28.9894 125.867 28.2929H124.353V26.5858H125.867V24.2228H128.209V26.5858Z";
      const d6 = "M107.685 30C108.558 29.076 108.559 29.0762 109.424 28.1456C109.504 28.0627 109.583 27.9797 109.665 27.8943C109.899 27.6415 109.899 27.6413 110.066 27.3382C110.307 26.9741 110.457 26.8016 110.854 26.5867C111.762 26.4551 112.696 26.5226 113.609 26.5867C113.609 26.8488 113.608 26.8492 113.319 27.1376C113.256 27.1954 113.192 27.2533 113.127 27.3128C112.751 27.6617 112.398 28.0332 112.042 28.4004C111.963 28.4809 111.884 28.5612 111.804 28.6441C111.246 29.2184 110.698 29.7995 110.165 30.3944C110.386 31.031 110.764 31.5224 111.172 32.06C111.243 32.1561 111.316 32.2522 111.39 32.3512C111.789 32.8833 112.192 33.4129 112.596 33.9415C112.718 34.1015 112.718 34.1015 112.842 34.2648C113.001 34.4718 113.159 34.6789 113.318 34.8852C113.39 34.9791 113.463 35.0728 113.537 35.1695C113.6 35.2523 113.664 35.3356 113.73 35.4209C113.884 35.6468 113.884 35.647 114.021 36.0404C111.848 36.3303 111.848 36.3307 111.154 35.8771C110.699 35.4269 110.38 34.8933 110.061 34.3511C109.777 33.8872 109.439 33.4615 109.106 33.0291C108.99 32.8749 108.874 32.7199 108.759 32.5653C108.678 32.4556 108.596 32.3457 108.512 32.2327C108.141 32.4404 107.936 32.5656 107.685 32.8895C107.56 33.4271 107.563 33.9569 107.564 34.506C107.562 34.6533 107.559 34.801 107.556 34.9529C107.55 35.3153 107.548 35.6779 107.548 36.0404H105.205V22.6469H107.548C107.593 25.0734 107.638 27.4999 107.685 30Z";
      const d7 = "M89.1931 27.2104C90.6625 26.2562 92.8403 26.0466 94.4622 26.849C94.5491 26.8906 94.6363 26.9323 94.7259 26.9751C95.4786 27.4058 95.8174 28.0506 96.1153 28.8193C96.2034 29.3132 96.2078 29.7935 96.2023 30.2937C96.2044 30.4973 96.2045 30.4975 96.2067 30.705C96.2108 31.1349 96.2104 31.565 96.2094 31.9949C96.2106 32.4261 96.2128 32.8577 96.2165 33.2889C96.2185 33.556 96.2194 33.8233 96.2183 34.0904C96.2188 34.2123 96.2195 34.3347 96.22 34.4603C96.2198 34.5661 96.2194 34.672 96.2192 34.7811C96.2521 35.2256 96.2519 35.2259 96.5281 36.0413H94.0485C94.003 35.7813 93.9577 35.5212 93.9109 35.2533C93.6979 35.4076 93.6975 35.4074 93.4803 35.5648C92.46 36.304 91.2832 36.2719 90.0543 36.1725C89.198 35.9631 88.6029 35.4242 88.126 34.7277C87.7578 33.9992 87.745 33.2899 87.8498 32.4959C88.1733 31.6887 88.8176 31.03 89.6432 30.6661C90.3212 30.4155 90.9433 30.2461 91.6745 30.2505C91.7968 30.2509 91.9196 30.2518 92.0456 30.2522C92.1723 30.2533 92.2995 30.2545 92.43 30.2556C92.5588 30.2562 92.6879 30.2567 92.8206 30.2573C93.1381 30.2588 93.4558 30.2605 93.7733 30.2632C93.7539 29.3425 93.7534 29.3424 93.3081 28.5485C92.7219 28.136 92.1434 28.0702 91.4312 28.1626C90.737 28.4935 90.6275 28.6337 90.3295 29.3441H87.9883C88.1569 28.3798 88.4001 27.8105 89.1931 27.2104ZM93.7733 31.5776C92.5129 31.532 91.4077 31.4329 90.3987 32.2505C90.153 32.6994 90.0953 33.0231 90.1226 33.5259C90.2166 33.9096 90.4154 34.1381 90.7547 34.3604C91.3706 34.6072 91.9967 34.5298 92.6289 34.3757C92.7369 34.3172 92.8419 34.2606 92.9467 34.2038C93.4029 33.9823 93.4031 33.9817 93.6135 33.8145C93.8986 33.3367 93.8986 33.3367 93.7733 31.5776Z";
      const d8 = "M34.6812 23.3036C42.3604 23.3036 42.3607 23.303 43.7456 24.5833C44.7447 25.5951 44.9555 26.4517 44.9229 27.8359C44.8247 28.7516 44.4725 29.6143 43.7723 30.2632C42.3879 31.3297 40.692 31.3709 38.9853 31.3381C38.3832 31.33 37.7811 31.3219 37.1608 31.3135V36.0404H34.6812V23.3036ZM38.813 25.1081C38.2513 25.1192 37.7061 25.1303 37.1608 25.1411V29.4744C37.7783 29.48 38.3779 29.4859 38.9773 29.4913C39.1707 29.4938 39.3586 29.4957 39.5463 29.4981C39.7002 29.4988 39.8498 29.4991 39.9991 29.4998C40.7045 29.5062 41.2315 29.4384 41.8165 29.0453C42.2106 28.6618 42.3802 28.4045 42.4521 27.8621C42.4588 26.9002 42.4049 26.384 41.7064 25.6667C40.8986 25.1713 40.2825 25.0846 39.3279 25.0937C39.0682 25.101 39.0676 25.1009 38.813 25.1081Z";
      const d9 = "M59.8885 36.0404H57.5465V22.6469H59.8885V36.0404Z";
      const d10 = "M74.8658 26.7712C75.8555 26.1829 77.4181 26.2761 78.44 26.75C78.8818 26.9959 79.2592 27.2546 79.5853 27.6361C79.6421 27.5839 79.699 27.5317 79.7575 27.4779C80.8038 26.5628 81.6894 26.3762 83.109 26.4081C83.942 26.4898 84.5468 26.7266 85.1465 27.2832C85.7977 28.31 85.8399 29.0917 85.8239 30.2827C85.8233 30.4474 85.8227 30.6123 85.8221 30.782C85.8202 31.2174 85.8169 31.6526 85.8123 32.088C85.8081 32.5333 85.8064 32.979 85.8044 33.4243C85.7998 34.2963 85.7924 35.1685 85.7839 36.0404H83.5804C83.5784 35.837 83.5763 35.633 83.5742 35.4234C83.5662 34.6686 83.5554 33.9134 83.544 33.1586C83.5394 32.832 83.5356 32.5051 83.5325 32.1785C83.5279 31.709 83.5206 31.2396 83.5129 30.7702C83.5121 30.6242 83.5112 30.4779 83.5103 30.3275C83.5076 30.191 83.5042 30.0544 83.5014 29.9137C83.4999 29.7938 83.4985 29.6732 83.497 29.5497C83.4304 29.1404 83.2808 28.8905 83.0291 28.5553C82.4725 28.2369 81.8708 28.2145 81.2384 28.2929C80.6633 28.5296 80.3238 28.835 79.999 29.3432C79.9135 29.8522 79.9153 30.358 79.9147 30.8726C79.9124 31.0202 79.9099 31.1682 79.9076 31.3203C79.9009 31.7911 79.898 32.262 79.8951 32.7329C79.8913 33.0525 79.8871 33.3722 79.8827 33.6918C79.8725 34.4746 79.8656 35.2576 79.8605 36.0404H77.5194C77.5188 35.833 77.5182 35.6253 77.5176 35.4116C77.5146 34.642 77.5069 33.8723 77.4981 33.1027C77.4949 32.7698 77.4935 32.4369 77.4928 32.104C77.4915 31.6251 77.485 31.1458 77.4786 30.6669C77.4791 30.5182 77.4798 30.3691 77.4803 30.2158C77.4706 29.3799 77.4707 29.3795 77.0568 28.6611C76.4611 28.2728 75.8846 28.2005 75.1774 28.2929C74.7246 28.467 74.3016 28.6499 74.0756 29.0809C74.0592 29.3033 74.0511 29.5265 74.0472 29.7495C74.0445 29.8887 74.042 30.0283 74.0392 30.1718C74.0369 30.3226 74.0345 30.4735 74.0321 30.6288C74.0292 30.7829 74.0262 30.9373 74.0232 31.096C74.0142 31.5896 74.0065 32.0835 73.9984 32.5771C73.9924 32.9112 73.9867 33.2452 73.9806 33.5792C73.9658 34.3996 73.9515 35.2201 73.938 36.0404H71.596V26.5858H73.8004C73.8458 26.8458 73.8912 27.1059 73.938 27.3738C74.0226 27.3185 74.1074 27.2632 74.1946 27.2062C74.3059 27.1342 74.4172 27.0619 74.5319 26.9878C74.6421 26.9163 74.7523 26.8448 74.8658 26.7712Z";
      const d11 = "M101.511 26.7712C102.146 26.3039 102.931 26.4461 103.691 26.4546V28.5553C103.273 28.5715 103.273 28.5717 102.847 28.5883C101.997 28.6483 101.54 28.7676 100.936 29.3432C100.919 29.5527 100.911 29.7629 100.908 29.9729C100.905 30.1069 100.902 30.2411 100.899 30.3792C100.896 30.5249 100.895 30.6708 100.893 30.821C100.89 30.9694 100.887 31.1183 100.884 31.2712C100.875 31.7474 100.866 32.2236 100.858 32.6999C100.852 33.0219 100.846 33.3444 100.84 33.6664C100.825 34.4577 100.812 35.2491 100.798 36.0404H98.4564V26.5858H100.66C100.705 26.8458 100.752 27.1059 100.798 27.3738C100.863 27.3185 100.928 27.2632 100.995 27.2062C101.08 27.1342 101.166 27.0619 101.255 26.9878C101.339 26.9163 101.424 26.8448 101.511 26.7712Z";
      return <svg height="48" viewBox="0 0 132 60" fill="none" aria-label="Polymarket"><path fillRule="evenodd" d={d1} fill="currentColor" /><path fillRule="evenodd" d={d2} fill="currentColor" /><path fillRule="evenodd" d={d3} fill="currentColor" /><path fillRule="evenodd" d={d4} fill="currentColor" /><path fillRule="evenodd" d={d5} fill="currentColor" /><path d={d6} fill="currentColor" /><path d={d7} fill="currentColor" /><path d={d8} fill="currentColor" /><path d={d9} fill="currentColor" /><path d={d10} fill="currentColor" /><path d={d11} fill="currentColor" /></svg>;
    }
    if (name === "Securitize") {
      const d1 = "M11.591 16.7968C14.829 16.1003 18.2081 16.6396 21.0749 18.3103C21.5588 18.5909 22.0231 18.9048 22.4649 19.249C21.0559 20.1793 19.9497 21.5081 19.2861 23.0696C17.5231 21.7403 15.3195 21.1491 13.1349 21.419L14.105 25.077C15.1884 25.0614 16.2461 25.4111 17.1106 26.0702C17.9751 26.7293 18.5976 27.6608 18.8785 28.7166C19.1591 29.7723 19.0828 30.8929 18.6615 31.9C18.2401 32.907 17.4973 33.7438 16.5516 34.2775L17.5235 37.9337C19.4198 37.1184 20.9611 35.64 21.8639 33.7703C22.7665 31.9009 22.9702 29.7657 22.4378 27.7568C22.1395 26.6276 22.2498 25.4283 22.7474 24.373C23.2452 23.3178 24.0982 22.4754 25.1547 21.9964V21.9929C27.1185 24.682 28.0247 28.0102 27.6976 31.334C27.3704 34.6576 25.8336 37.7407 23.3842 39.9878C20.9348 42.2348 17.7465 43.4863 14.4356 43.4999C11.1249 43.5133 7.9265 42.2885 5.45905 40.0616C2.9916 37.8345 1.43037 34.7631 1.07659 31.4421C0.722927 28.1213 1.60226 24.7858 3.54424 22.0808C5.48629 19.3759 8.35317 17.4932 11.591 16.7968ZM10.8081 22.0509C8.9128 22.8664 7.37285 24.3444 6.47112 26.2135C5.56945 28.0826 5.36666 30.2173 5.89992 32.2252C6.43327 34.2332 7.66704 35.9797 9.37439 37.1436C11.0816 38.3074 13.1477 38.811 15.1932 38.5613L14.2231 34.9041C13.14 34.919 12.083 34.5693 11.2192 33.9101C10.3552 33.2506 9.73351 32.3193 9.45312 31.2637C9.17272 30.2079 9.24958 29.0881 9.67093 28.0811C10.0923 27.0743 10.8345 26.2381 11.7799 25.7046L10.8081 22.0509Z";
      const d2 = "M82.1879 33.5726L84.3677 27.3631H87.04L83.102 37.7228C82.8031 38.4837 82.4623 39.0337 82.082 39.3708C81.5019 39.8865 80.7107 40.1504 79.7088 40.1504C79.3188 40.1547 78.9296 40.1138 78.5489 40.0282V37.7386C78.8971 37.8399 79.2583 37.8874 79.6205 37.8801C79.8865 37.8962 80.1515 37.8279 80.3771 37.685C80.5647 37.5486 80.6964 37.3475 80.7463 37.1199L80.8871 36.7296L77.1074 27.3631H79.7788L82.1879 33.5726Z";
      const d3 = "M48.0467 27.1293C49.3413 27.1293 50.5879 27.6236 51.536 28.5127C52.0007 28.9341 52.37 29.4522 52.6181 30.0306C52.8664 30.609 52.9876 31.2346 52.9741 31.8649C52.9858 32.4976 52.8635 33.1257 52.6155 33.7071C52.3675 34.2884 51.9996 34.8098 51.536 35.2364C50.582 36.1138 49.3376 36.6004 48.0467 36.6004C46.7557 36.6004 45.5106 36.1139 44.5565 35.2364C44.098 34.8068 43.7346 34.2843 43.4893 33.7035C43.2439 33.1227 43.1228 32.4961 43.1333 31.8649C43.121 31.2362 43.2412 30.6119 43.4867 30.0341C43.7321 29.4561 44.0968 28.9373 44.5565 28.5127C45.5047 27.6235 46.7521 27.1293 48.0467 27.1293ZM48.0572 29.5234C47.7528 29.5234 47.4509 29.5849 47.1702 29.7036C46.8896 29.8225 46.6356 29.997 46.4223 30.216C46.2055 30.4305 46.0342 30.6874 45.9193 30.971C45.8044 31.2546 45.748 31.5586 45.754 31.8649C45.7477 32.1738 45.8037 32.481 45.9185 32.7675C46.0333 33.0541 46.2051 33.3143 46.4223 33.5322C46.8589 33.9639 47.4459 34.2063 48.0572 34.2063C48.6685 34.2062 49.2557 33.9639 49.6921 33.5322C49.908 33.3133 50.0786 33.0529 50.1933 32.7666C50.308 32.4804 50.364 32.1735 50.3595 31.8649C50.3654 31.5587 50.3098 31.2546 50.1951 30.971C50.0803 30.6876 49.9089 30.4304 49.6921 30.216C49.4788 29.997 49.224 29.8225 48.9433 29.7036C48.6627 29.5849 48.3614 29.5235 48.0572 29.5234Z";
      const d4 = "M57.1361 32.4713C57.1362 33.5998 57.7867 34.1201 58.7535 34.1201C59.7203 34.1201 60.3709 33.6062 60.3709 32.4713V27.3631H63.0258V32.7051C63.0257 33.9465 62.6213 34.9045 61.795 35.5607C60.9688 36.2169 59.9662 36.5539 58.7579 36.5539C57.55 36.5538 56.521 36.2166 55.6998 35.5607C54.8783 34.9045 54.4866 33.9481 54.4865 32.7051L54.4813 27.3631H57.1361V32.4713Z";
      const d5 = "M74.8042 27.3622H76.7732V29.7572H74.8042V32.9494C74.8042 33.8006 75.1383 34.1377 75.923 34.1377C76.1469 34.1326 76.3701 34.1093 76.5904 34.0683V36.4123C76.1709 36.5057 75.7418 36.5479 75.3124 36.538C73.2731 36.538 72.2534 35.4734 72.2534 33.3441L72.2552 29.7572H71.0944V27.3622H72.2552V23.9397H74.8042V27.3622Z";
      const d6 = "M91.3648 27.0792C93.7377 27.0793 95.162 28.197 95.162 30.0947V33.4645C95.1621 34.0849 95.3551 34.1562 95.8294 34.1562H95.8819V36.2515C95.5495 36.3959 95.1896 36.4628 94.8279 36.4466C94.3803 36.4647 93.939 36.3268 93.5796 36.0564C93.4001 35.8968 93.2611 35.6966 93.1746 35.4719C92.5952 36.181 91.5927 36.5371 90.1865 36.5372C88.2183 36.5372 86.8819 35.4556 86.8817 33.7967C86.8817 31.9572 88.0767 31.0165 90.8014 30.7504C92.0804 30.6262 92.5955 30.4846 92.5955 29.9348C92.5955 29.4382 92.1908 29.1894 91.3998 29.1894C90.4676 29.1894 89.694 29.5625 89.0441 30.3074L87.4967 28.9768C88.4288 27.7176 89.7122 27.0792 91.3648 27.0792ZM92.5947 32.1162C92.4494 32.2284 92.2782 32.3017 92.0969 32.3289L91.7768 32.3825C91.5837 32.4003 91.0921 32.4709 90.8627 32.524C89.9492 32.6659 89.4248 32.9143 89.4246 33.5348C89.4305 34.0846 89.8179 34.3513 90.609 34.3513C91.8566 34.3512 92.5945 33.8205 92.5947 32.7728V32.1162Z";
      const d7 = "M114.524 34.0841C115.104 33.5197 115.982 33.5197 116.545 34.0841C117.124 34.6485 117.124 35.5298 116.545 36.0942C115.982 36.6586 115.104 36.6586 114.524 36.0942C113.961 35.5298 113.961 34.6485 114.524 34.0841Z";
      const d8 = "M38.1674 23.7446C39.1093 23.7468 40.0402 23.954 40.8957 24.3519C41.7511 24.7498 42.5111 25.3297 43.1245 26.0509L41.2745 27.6294C40.8913 27.1779 40.4128 26.8178 39.8749 26.5756C39.3367 26.3332 38.7512 26.2138 38.1621 26.2275C37.6513 26.2166 37.1432 26.3106 36.6689 26.5026C36.1948 26.6946 35.7639 26.9814 35.4023 27.3455C35.0342 27.7054 34.7447 28.1389 34.5521 28.6182C34.3594 29.0976 34.2677 29.6128 34.2835 30.1299C34.2694 30.6457 34.3607 31.1593 34.5512 31.6381C34.7416 32.1171 35.0273 32.5514 35.3909 32.9143C35.7586 33.2743 36.1937 33.557 36.6707 33.7457C37.1474 33.9344 37.657 34.0255 38.1691 34.0138C38.7624 34.0266 39.3512 33.906 39.8924 33.6605C40.4334 33.4151 40.9136 33.0512 41.2981 32.5952L43.1438 34.1738C42.5331 34.904 41.7708 35.4906 40.9114 35.892C40.0521 36.2932 39.1159 36.4995 38.1691 36.4967C36.3233 36.4967 34.7761 35.8955 33.4928 34.6879C32.2095 33.4803 31.5745 31.9566 31.5744 30.1299C31.5744 28.3031 32.2142 26.7955 33.4928 25.5718C34.7713 24.3481 36.3199 23.7446 38.1674 23.7446Z";
      const d9 = "M112.615 36.3016H109.996V35.1309C109.732 35.9112 108.695 36.4606 107.359 36.4607C106.772 36.4738 106.187 36.3628 105.645 36.1337C105.103 35.9046 104.615 35.5626 104.213 35.1309C103.388 34.2369 102.939 33.0538 102.964 31.8323C102.936 30.6156 103.385 29.4368 104.213 28.5514C104.612 28.114 105.098 27.7668 105.641 27.5345C106.184 27.302 106.77 27.1892 107.359 27.2031C108.699 27.2032 109.735 27.7527 109.996 28.5329V23.9397H112.615V36.3016ZM107.834 29.5973C107.537 29.59 107.241 29.6443 106.967 29.7572C106.691 29.8701 106.443 30.0395 106.235 30.2538C106.023 30.456 105.855 30.7009 105.744 30.9728C105.631 31.2446 105.577 31.5379 105.585 31.8323C105.58 32.129 105.635 32.4237 105.746 32.6981C105.858 32.9726 106.025 33.2215 106.235 33.4284C106.445 33.6379 106.696 33.8029 106.969 33.9136C107.244 34.0244 107.538 34.0789 107.834 34.0736C108.135 34.0813 108.436 34.0278 108.717 33.9171C108.998 33.8064 109.254 33.6404 109.472 33.4284H109.468C109.687 33.2258 109.863 32.9784 109.98 32.7033C110.098 32.4286 110.158 32.1319 110.154 31.8323C110.159 31.535 110.1 31.2397 109.982 30.9675C109.863 30.6951 109.688 30.4518 109.468 30.2538C109.254 30.0374 109 29.8675 108.719 29.7546C108.437 29.6417 108.136 29.5881 107.834 29.5973Z";
      const d10 = "M127.08 27.0141C128.433 27.0142 129.593 27.4734 130.559 28.3905C131.526 29.2901 132 30.4014 132 31.7242C132 33.0469 131.526 34.1584 130.559 35.0755C129.593 35.975 128.433 36.4334 127.08 36.4334C125.709 36.4334 124.548 35.9751 123.581 35.0755C122.633 34.1584 122.158 33.0469 122.158 31.7242C122.158 30.4015 122.633 29.2901 123.581 28.3905C124.548 27.4734 125.709 27.0141 127.08 27.0141ZM127.08 29.396C126.43 29.396 125.885 29.6249 125.446 30.0833C125.006 30.5242 124.777 31.0716 124.777 31.7242C124.777 32.3768 125.006 32.941 125.446 33.3819C125.885 33.8228 126.43 34.0525 127.08 34.0525C127.729 34.0524 128.274 33.8229 128.714 33.3819C129.154 32.9233 129.382 32.3767 129.382 31.7242C129.382 31.0716 129.154 30.5242 128.714 30.0833C128.274 29.6248 127.729 29.396 127.08 29.396Z";
      const d11 = "M69.8111 27.1688C70.0406 27.1728 70.2697 27.1901 70.4969 27.2216V29.7054C70.2076 29.6467 69.913 29.617 69.6178 29.6166C68.1236 29.6166 67.2447 30.4676 67.2447 31.9396V36.3025H64.6248V27.3639H67.2447V28.5874C67.649 27.6831 68.5982 27.1688 69.8111 27.1688Z";
      const d12 = "M102 27.1688C102.23 27.1728 102.459 27.1901 102.687 27.2216V29.7054C102.397 29.6467 102.102 29.617 101.807 29.6166C100.313 29.6167 99.4334 30.4677 99.4334 31.9396V36.3025H96.8144V27.3639H99.4334V28.5874C99.8373 27.683 100.787 27.1689 102 27.1688Z";
      const d13 = "M121.117 36.2418H118.498V27.3516H121.117V36.2418Z";
      const d14 = "M119.799 23.6128C120.625 23.6128 121.293 24.2648 121.293 25.1113C121.293 25.9403 120.625 26.5931 119.799 26.5931C118.973 26.5931 118.305 25.9403 118.305 25.1113C118.305 24.2649 118.973 23.6128 119.799 23.6128Z";
      return <svg height="48" viewBox="0 0 132 60" fill="none" aria-label="Securitize"><path fillRule="evenodd" d={d1} fill="currentColor" /><path fillRule="evenodd" d={d2} fill="currentColor" /><path fillRule="evenodd" d={d3} fill="currentColor" /><path fillRule="evenodd" d={d4} fill="currentColor" /><path fillRule="evenodd" d={d5} fill="currentColor" /><path d={d6} fill="currentColor" /><path d={d7} fill="currentColor" /><path d={d8} fill="currentColor" /><path d={d9} fill="currentColor" /><path d={d10} fill="currentColor" /><path d={d11} fill="currentColor" /><path d={d12} fill="currentColor" /><path d={d13} fill="currentColor" /><path d={d14} fill="currentColor" /></svg>;
    }
    if (name === "Google") {
      const d1 = "M59.9502 25.3027C61.5906 25.3028 62.8668 26.0324 63.5352 26.8223H63.7773V25.668H66.5723V37.8193C66.5722 42.8014 63.595 44.8672 60.1318 44.8672C56.8513 44.867 54.8464 42.6193 54.1172 40.8574L56.6689 39.7637C57.155 40.918 58.2488 42.1933 60.0713 42.1934C62.2586 42.1934 63.6562 40.796 63.6562 38.2441V37.2725H63.5352C62.8668 38.0623 61.5906 38.7909 59.9502 38.791C56.5477 38.791 53.6309 35.8139 53.6309 32.0469C53.631 28.2192 56.5478 25.3027 59.9502 25.3027ZM60.2539 28.0371C58.249 28.0371 56.6691 29.7381 56.6689 32.1074C56.6689 34.4162 58.1881 36.1787 60.2539 36.1787C62.3195 36.1786 63.8995 34.4775 63.8389 32.1689C63.8389 29.7994 62.2589 28.0372 60.2539 28.0371Z";
      const d2 = "M12.1328 18.1328C15.2923 18.1328 17.6015 19.4093 19.3027 21.0498L17.2969 23.0547C16.0817 21.9003 14.3808 20.9883 12.1328 20.9883C7.87986 20.9883 4.65942 24.3909 4.65918 28.583C4.65918 32.7753 7.94046 36.1787 12.1328 36.1787C14.8669 36.1787 16.4468 35.0844 17.4189 34.1123C18.2695 33.3224 18.8158 32.107 18.998 30.5273H12.1328V27.6719H21.793C21.8537 28.1579 21.915 28.7662 21.915 29.4346C21.9149 31.561 21.3071 34.2338 19.4238 36.1172C17.6011 38.0007 15.2315 39.0342 12.1328 39.0342C6.36073 39.0342 1.5 34.355 1.5 28.583C1.50027 22.8112 6.36089 18.1328 12.1328 18.1328Z";
      const d3 = "M71.7363 38.8516H68.8203V18.4365H71.7363V38.8516Z";
      const d4 = "M30.4219 25.3027C34.1888 25.3027 37.2273 28.1584 37.2275 32.1074C37.2275 35.9959 34.1889 38.791 30.4219 38.791C26.655 38.7909 23.6172 35.9353 23.6172 32.0469C23.6173 28.1586 26.7158 25.3029 30.4219 25.3027ZM30.4219 28.0371C28.3563 28.0373 26.595 29.6775 26.5947 32.1074C26.5947 34.4769 28.3562 36.1785 30.4219 36.1787C32.4877 36.1787 34.25 34.477 34.25 32.1074C34.2498 29.6774 32.4875 28.0371 30.4219 28.0371Z";
      const d5 = "M45.5488 25.3027C49.3157 25.3027 52.3542 28.1584 52.3545 32.1074C52.3545 35.9959 49.3159 38.791 45.5488 38.791C41.7819 38.7909 38.7441 35.9353 38.7441 32.0469C38.7443 28.1586 41.8428 25.3029 45.5488 25.3027ZM45.5488 28.0371C43.4833 28.0373 41.7219 29.6775 41.7217 32.1074C41.7217 34.4769 43.4832 36.1785 45.5488 36.1787C47.6146 36.1787 49.377 34.477 49.377 32.1074C49.3767 29.6774 47.6145 28.0371 45.5488 28.0371Z";
      const d6 = "M80.4248 25.3027C83.8879 25.3029 85.6495 28.0983 86.1963 29.6172L86.5 30.4062L77.4473 34.1133C78.1764 35.5106 79.2096 36.1787 80.7285 36.1787C82.2474 36.1787 83.2805 35.4493 84.0703 34.2949L86.3789 35.8145C85.589 36.9081 83.8269 38.791 80.7285 38.791C76.9007 38.791 74.0449 35.8139 74.0449 32.0469C74.0451 28.037 76.9616 25.3027 80.4248 25.3027ZM80.5459 27.8545C79.0269 27.8546 76.9617 29.0705 77.0225 31.8652L83.0977 29.3135C82.7939 28.4629 81.7611 27.8545 80.5459 27.8545Z";
      return <svg height="48" viewBox="0 0 88 60" fill="none" aria-label="Google"><path fillRule="evenodd" d={d1} fill="currentColor" /><path fillRule="evenodd" d={d2} fill="currentColor" /><path fillRule="evenodd" d={d3} fill="currentColor" /><path fillRule="evenodd" d={d4} fill="currentColor" /><path d={d5} fill="currentColor" /><path d={d6} fill="currentColor" /></svg>;
    }
    if (name === "Reddit") {
      const d1 = "M18.2429 25.2307C22.1738 25.2308 24.9887 28.0433 24.9887 32.002C24.9887 32.6949 24.9208 33.3487 24.7716 33.9752H14.9243C15.3732 35.4812 16.7062 36.6535 18.7054 36.6535C19.8071 36.6534 21.3709 36.2671 22.214 35.6277L23.5471 38.7733C22.3093 39.5997 20.4189 40 18.7597 40C14.1215 40 11.0065 37.067 11.0065 32.6554C11.0065 28.5099 13.904 25.2307 18.2429 25.2307ZM18.1876 28.5228C16.4199 28.523 15.2225 29.6433 14.8419 31.3356H21.0307C21.0307 29.4962 19.7519 28.5228 18.1876 28.5228Z";
      const d2 = "M41.2139 39.7861H37.1202V38.0802H36.9975C35.9366 39.4129 34.2909 40 32.5499 40C28.388 39.9998 25.8312 36.7335 25.8312 32.6149C25.8314 28.4962 28.5656 25.2446 32.6866 25.2446C34.3593 25.2446 35.6375 25.6978 36.8206 26.804H36.902L36.9161 19.2594H41.2139V39.7861ZM33.5432 28.8703C31.4378 28.8704 29.9652 30.5017 29.9652 32.6188C29.9653 34.7358 31.4379 36.3673 33.5432 36.3673C34.5404 36.3673 35.3951 36.0007 36.0193 35.3901L36.9784 36.3673H37.1212V32.6188C37.1212 30.5017 35.6486 28.8703 33.5432 28.8703Z";
      const d3 = "M57.6291 39.7861H53.5354V38.0802H53.4137C52.3529 39.4129 50.707 39.9989 48.9661 39.999C44.804 39.999 42.2464 36.7336 42.2464 32.6149C42.2465 28.4962 44.9807 25.2446 49.1018 25.2446C50.7746 25.2446 52.0536 25.6976 53.2368 26.804H53.3182L53.3313 19.2594H57.6291V39.7861ZM49.9382 28.8693C47.8328 28.8693 46.3602 30.5017 46.3602 32.6188C46.3604 34.7358 47.8329 36.3673 49.9382 36.3673C50.9355 36.3673 51.7902 36.0007 52.4144 35.3901L53.3735 36.3673H53.5163V32.6188C53.5163 30.5017 52.0437 28.8693 49.9382 28.8693Z";
      const d4 = "M10.1771 25.2307C10.8841 25.2307 11.5649 25.3638 11.8369 25.5238L10.1097 29.5495C9.89194 29.443 9.37495 29.3218 8.88522 29.3218C8.39563 29.3218 7.90608 29.4426 7.4305 29.6693C6.49202 30.1359 5.79783 31.0687 5.79783 32.4149V39.7861H1.5V25.4436H5.67618V27.4564H5.75761C6.73699 26.177 8.23265 25.2308 10.1771 25.2307Z";
      const d5 = "M64.0231 39.7861H59.7252V25.4446H64.0231V39.7861Z";
      const d6 = "M72.3573 25.4446H75.5V29.0297H72.3573V39.7861H68.0595V29.0297H64.9309V25.4446H68.0595V21.5455H72.3573V25.4446Z";
      const d7 = "M61.8736 19C63.3154 19 64.4984 20.1594 64.4986 21.5723C64.4986 22.9853 63.3155 24.1455 61.8736 24.1455C60.4318 24.1455 59.2487 22.9852 59.2487 21.5723C59.2488 20.1594 60.4319 19.0001 61.8736 19Z";
      return <svg height="48" viewBox="0 0 76 60" fill="none" aria-label="Reddit"><path fillRule="evenodd" d={d1} fill="currentColor" /><path fillRule="evenodd" d={d2} fill="currentColor" /><path fillRule="evenodd" d={d3} fill="currentColor" /><path d={d4} fill="currentColor" /><path d={d5} fill="currentColor" /><path d={d6} fill="currentColor" /><path d={d7} fill="currentColor" /></svg>;
    }
    return null;
  };
  return <section style={{
    padding: "64px 0"
  }}>
      <div style={{
    display: "grid",
    gridTemplateColumns: "auto 1fr",
    alignItems: "center",
    gap: "16px",
    marginBottom: "36px"
  }}>
        <span style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    letterSpacing: "0.08em",
    color: fg4,
    textTransform: "uppercase",
    fontWeight: "500"
  }}>
          <span style={{
    color: "#670DE5"
  }}>06</span> · Trusted by
        </span>
        <span style={{
    height: "1px",
    background: sepLine
  }} />
      </div>

      <div style={{
    display: "flex",
    alignItems: "end",
    justifyContent: "space-between",
    marginBottom: "28px",
    gap: "24px"
  }}>
        <div>
          <h2 style={{
    fontSize: "clamp(28px, 6vw, 36px)",
    fontWeight: "700",
    letterSpacing: "-0.025em",
    color: fg1,
    lineHeight: "1.05",
    margin: "0 0 12px"
  }}>Trillions moved in production</h2>
          <p style={{
    fontSize: "16px",
    color: fg2,
    maxWidth: "64ch",
    margin: 0,
    lineHeight: "1.55"
  }}>
            Polygon's settlement layer runs at fintechs, neobanks, and payment networks worldwide.
          </p>
        </div>
      </div>

      <div style={{
    display: "grid",
    gridTemplateColumns: "repeat(auto-fit, minmax(150px, 1fr))",
    border: `1px solid ${s2}`,
    borderRadius: "20px",
    overflow: "hidden",
    marginBottom: "16px"
  }}>
        {STATS.map((s, i) => <div key={s.label} style={{
    background: bg1,
    padding: "28px 24px 24px",
    display: "flex",
    flexDirection: "column",
    gap: "10px",
    borderRight: i < STATS.length - 1 ? `1px solid ${s2}` : "none"
  }}>
            <div style={{
    display: "flex",
    alignItems: "baseline",
    gap: "4px"
  }}>
              <span style={{
    fontSize: "clamp(36px, 8vw, 54px)",
    fontWeight: "700",
    letterSpacing: "-0.03em",
    color: fg1,
    lineHeight: 1
  }}>
                {s.num}
              </span>
              {s.unit && <span style={{
    fontSize: "28px",
    fontWeight: "700",
    color: "#670DE5"
  }}>{s.unit}</span>}
            </div>
            <span style={{
    fontSize: "13px",
    color: s.down ? "#ff2121" : "#00b104",
    fontWeight: "500",
    display: "inline-flex",
    alignItems: "center",
    gap: "3px"
  }}>
              {s.down ? <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round"><path d="M22 17 13.5 8.5 8.5 13.5l-6-6" /><path d="M16 17h6v-6" /></svg> : <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round"><path d="M22 7 13.5 15.5 8.5 10.5l-6 6" /><path d="M16 7h6v6" /></svg>}
              {s.trend}
            </span>
            <div style={{
    fontSize: "11px",
    fontWeight: "500",
    letterSpacing: "0.04em",
    textTransform: "uppercase",
    color: fg4
  }}>{s.label}</div>
          </div>)}
      </div>

      <div style={{
    display: "grid",
    gridTemplateColumns: "auto 1fr",
    background: bg1,
    border: `1px solid ${s1}`,
    borderRadius: "20px",
    overflow: "hidden"
  }}>
        <div style={{
    display: "flex",
    alignItems: "center",
    justifyContent: "center",
    padding: "20px 28px",
    borderRight: `1px solid ${s2}`,
    fontFamily: "ui-monospace, monospace",
    fontSize: "10px",
    fontWeight: "700",
    letterSpacing: "0.12em",
    textTransform: "uppercase",
    color: fg4,
    whiteSpace: "nowrap"
  }}>
          Trusted by
        </div>
        <div style={{
    display: "grid",
    gridTemplateColumns: "repeat(auto-fit, minmax(88px, 1fr))",
    alignItems: "center"
  }}>
          {LOGO_NAMES.map((name, i) => <div key={name} style={{
    display: "flex",
    alignItems: "center",
    justifyContent: "center",
    padding: "20px 16px",
    color: fg4,
    borderRight: i < LOGO_NAMES.length - 1 ? `1px solid ${s2}` : "none"
  }}>
              {getLogo(name)}
            </div>)}
        </div>
      </div>
    </section>;
};

export const FeatureBand = () => {
  const [dark, setDark] = React.useState(false);
  React.useEffect(() => {
    const update = () => setDark(document.documentElement.classList.contains("dark"));
    update();
    const obs = new MutationObserver(update);
    obs.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => obs.disconnect();
  }, []);
  const fg1 = dark ? "#f2f3f7" : "#07060d";
  const fg2 = dark ? "#6b7280" : "#6d6e75";
  const fg4 = dark ? "#6b7280" : "#929EBA";
  const divClr = dark ? "rgba(255,255,255,0.1)" : "rgba(0,0,0,0.1)";
  const sepLine = dark ? "linear-gradient(to right, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.08) 60%, transparent 100%)" : "linear-gradient(to right, #C8CFE1 0%, #DFE3F0 60%, transparent 100%)";
  const STATS = [{
    num: "~1.8 s",
    lbl: "Block finality"
  }, {
    num: "$ 0.002",
    lbl: "Avg tx cost"
  }, {
    num: "STABLE",
    lbl: "Payment lanes"
  }];
  const Corner = ({pos}) => {
    const paths = {
      tl: "M0 6 L0 0 L6 0",
      tr: "M0 0 L6 0 L6 6",
      br: "M6 0 L6 6 L0 6",
      bl: "M6 6 L0 6 L0 0"
    };
    const styles = {
      tl: {
        top: "-3px",
        left: "-3px"
      },
      tr: {
        top: "-3px",
        right: "-3px"
      },
      br: {
        bottom: "-3px",
        right: "-3px"
      },
      bl: {
        bottom: "-3px",
        left: "-3px"
      }
    };
    return <span style={{
      position: "absolute",
      ...styles[pos]
    }}>
        <svg width="6" height="6" viewBox="0 0 6 6" fill="none">
          <path d={paths[pos]} stroke={fg2} strokeWidth="1.5" />
        </svg>
      </span>;
  };
  return <section style={{
    padding: "64px 0"
  }}>
    <style>{`
      @font-face {
        font-family: 'PolySans Neutral';
        src: url('/fonts/PolySans-Neutral.woff2') format('woff2');
        font-weight: 400;
        font-style: normal;
        font-display: swap;
      }
      @font-face {
        font-family: 'PolySans Slim';
        src: url('/fonts/PolySans-Slim.woff2') format('woff2');
        font-weight: 400;
        font-style: normal;
        font-display: swap;
      }
      @font-face {
        font-family: 'PolySans Neutral Mono';
        src: url('/fonts/PolySans-NeutralMono.woff2') format('woff2');
        font-weight: 400;
        font-style: normal;
        font-display: swap;
      }
      @media (max-width: 768px) {
        .lp-fb-grid { grid-template-columns: 1fr !important; }
        .lp-fb-text { grid-column: 1 !important; padding-right: 0 !important; padding-bottom: 24px !important; }
        .lp-fb-media { grid-column: 1 !important; }
        .lp-fb-h2 { font-size: 34px !important; }
        .lp-fb-p { font-size: 17px !important; }
        .lp-fb-stat-num { font-size: 24px !important; }
        .lp-fb-stat { padding: 16px 10px !important; }
      }
    `}</style>

    <div style={{
    display: "grid",
    gridTemplateColumns: "auto 1fr",
    alignItems: "center",
    gap: "16px",
    marginBottom: "36px"
  }}>
      <span style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    letterSpacing: "0.08em",
    color: fg4,
    textTransform: "uppercase",
    fontWeight: "500"
  }}>
        <span style={{
    color: "#670DE5"
  }}>05</span> · Settlement
      </span>
      <span style={{
    height: "1px",
    background: sepLine
  }} />
    </div>

    <div style={{
    position: "relative"
  }}>
      <div style={{
    position: "absolute",
    inset: 0,
    pointerEvents: "none",
    backgroundImage: dark ? "linear-gradient(rgba(242,241,245,0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(242,241,245,0.08) 1px, transparent 1px)" : "linear-gradient(rgba(0,0,0,0.055) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.055) 1px, transparent 1px)",
    backgroundSize: "60px 60px",
    WebkitMaskImage: "radial-gradient(ellipse 45% 65% at 100% 0%, black 0%, transparent 100%)",
    maskImage: "radial-gradient(ellipse 45% 65% at 100% 0%, black 0%, transparent 100%)"
  }} />

      <div style={{
    position: "relative",
    zIndex: 1
  }}>

        <div className="lp-fb-grid" style={{
    display: "grid",
    gridTemplateColumns: "58fr 42fr"
  }}>
          <div className="lp-fb-text" style={{
    gridColumn: "1",
    paddingRight: "48px",
    paddingBottom: "40px",
    display: "flex",
    flexDirection: "column",
    gap: "24px"
  }}>
            <div style={{
    position: "relative",
    display: "inline-flex",
    alignItems: "center",
    gap: "8px",
    height: "34px",
    padding: "0 12px",
    border: `1px solid ${fg2}`,
    borderRadius: "2px",
    alignSelf: "flex-start",
    fontFamily: "'PolySans Neutral Mono', monospace",
    fontSize: "12px",
    letterSpacing: "0.12em",
    textTransform: "uppercase",
    color: fg1
  }}>
              <Corner pos="tl" />
              <Corner pos="tr" />
              <Corner pos="br" />
              <Corner pos="bl" />
              <span style={{
    width: "7px",
    height: "7px",
    borderRadius: "50%",
    background: fg1,
    display: "inline-block",
    flexShrink: 0
  }} />
              Public or Dedicated Blockspace
            </div>

            <h2 className="lp-fb-h2" style={{
    fontFamily: "'PolySans Neutral', sans-serif",
    fontSize: "52px",
    fontWeight: "400",
    letterSpacing: "-0.025em",
    lineHeight: "1.05",
    margin: 0,
    color: fg1
  }}>
              Settlement for open money.
            </h2>

            <p className="lp-fb-p" style={{
    fontFamily: "'PolySans Slim', sans-serif",
    fontSize: "20px",
    lineHeight: "1.6",
    fontWeight: "400",
    color: fg2,
    margin: 0
  }}>
              Most orchestration platforms route on infrastructure they don't own. Polygon owns its settlement layer: the same infrastructure that has already moved trillions. Costs improve as volume grows, instead of degrading through margin stacking.
            </p>

            <div style={{
    display: "flex",
    alignItems: "center",
    gap: "10px",
    flexWrap: "wrap"
  }}>
              <a href="/pos/architecture/overview" style={{
    display: "inline-flex",
    alignItems: "center",
    height: "40px",
    padding: "0 16px",
    borderRadius: "8px",
    fontSize: "14px",
    fontWeight: "600",
    background: dark ? "#fff" : "#0B0814",
    color: dark ? "#0B0814" : "#fff",
    textDecoration: "none",
    whiteSpace: "nowrap"
  }}>
                Read the architecture →
              </a>
              <a href="/pos/overview" style={{
    display: "inline-flex",
    alignItems: "center",
    height: "40px",
    padding: "0 16px",
    borderRadius: "8px",
    fontSize: "14px",
    fontWeight: "600",
    background: "transparent",
    color: fg1,
    textDecoration: "none",
    border: `1px solid ${fg2}`,
    whiteSpace: "nowrap"
  }}>
                Polygon Chain docs →
              </a>
            </div>
          </div>

          <div className="lp-fb-media" style={{
    gridColumn: "2",
    display: "flex",
    alignItems: "center",
    justifyContent: "center"
  }}>
            <video autoPlay muted loop playsInline style={{
    width: "100%",
    aspectRatio: "1 / 1",
    objectFit: "contain"
  }}>
              <source src="/images/02_loop_mobile_A_CHAIN.webm" type="video/webm" />
              <source src="/images/02_loop_mobile_A_CHAIN.mp4" type="video/mp4; codecs=hvc1" />
            </video>
          </div>
        </div>

        <div style={{
    display: "flex",
    borderTop: `1px solid ${divClr}`
  }}>
          {STATS.map((s, i) => <div key={i} className="lp-fb-stat" style={{
    flex: "1 0 0",
    padding: "20px 20px",
    borderRight: i < STATS.length - 1 ? `1px solid ${divClr}` : "none",
    display: "flex",
    flexDirection: "column",
    gap: "7px",
    minWidth: 0
  }}>
              <div className="lp-fb-stat-num" style={{
    fontFamily: "'PolySans Neutral', sans-serif",
    fontSize: "40px",
    fontWeight: "400",
    letterSpacing: "-0.01em",
    color: fg1,
    lineHeight: "1.25"
  }}>
                {s.num}
              </div>
              <div style={{
    fontFamily: "'PolySans Neutral Mono', monospace",
    fontSize: "13px",
    color: fg2,
    textTransform: "uppercase",
    letterSpacing: "0.01em",
    lineHeight: "1.2"
  }}>
                {s.lbl}
              </div>
            </div>)}
        </div>

      </div>
    </div>
  </section>;
};

export const ApiShowcase = () => {
  const [dark, setDark] = React.useState(false);
  React.useEffect(() => {
    const update = () => setDark(document.documentElement.classList.contains("dark"));
    update();
    const obs = new MutationObserver(update);
    obs.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => obs.disconnect();
  }, []);
  const bg1 = dark ? "#1C1C1C" : "#fff";
  const bg2 = dark ? "#141414" : "#FDFDFF";
  const fg1 = dark ? "#e5e7eb" : "#020005";
  const fg2 = dark ? "#9ca3af" : "#48526F";
  const fg4 = dark ? "#6b7280" : "#929EBA";
  const s1 = dark ? "rgba(255,255,255,0.12)" : "#C8CFE1";
  const s2 = dark ? "rgba(255,255,255,0.08)" : "#DFE3F0";
  const sepLine = dark ? "linear-gradient(to right, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.08) 60%, transparent 100%)" : "linear-gradient(to right, #C8CFE1 0%, #DFE3F0 60%, transparent 100%)";
  const COLOR_MAP = {
    c: "#6a6a85",
    k: "#c4a4ff",
    s: "#b3e5b1",
    p: "#6a6a85",
    v: "#79c0ff",
    fn: "#fff",
    key: "#b3a8ff"
  };
  const API_TABS = [{
    id: "quotes",
    label: "/quotes",
    method: "POST",
    code: [{
      ln: 1,
      parts: [["c", "// Step 1 of 2: lock pricing for a fiat-to-crypto move."]]
    }, {
      ln: 2,
      parts: [["k", "const "], ["v", "res"], ["p", " = "], ["k", "await "], ["fn", "fetch"], ["p", "("], ["s", '"/v0.9/quotes"'], ["p", ", {"]]
    }, {
      ln: 3,
      parts: [["p", "  "], ["key", "method"], ["p", ": "], ["s", '"POST"'], ["p", ","]]
    }, {
      ln: 4,
      parts: [["p", "  "], ["key", "headers"], ["p", ": { "], ["key", "Authorization"], ["p", ": "], ["s", '"Bearer YOUR_API_TOKEN"'], ["p", " },"]]
    }, {
      ln: 5,
      parts: [["p", "  "], ["key", "body"], ["p", ": "], ["fn", "JSON"], ["p", "."], ["fn", "stringify"], ["p", "({"]]
    }, {
      ln: 6,
      parts: [["p", "    "], ["key", "customer"], ["p", ": "], ["s", '"cst_01H9Xa..."'], ["p", ","]]
    }, {
      ln: 7,
      parts: [["p", "    "], ["key", "source"], ["p", ": { "], ["key", "asset"], ["p", ": "], ["s", '"usd"'], ["p", ", "], ["key", "network"], ["p", ": "], ["s", '"ach"'], ["p", ", "], ["key", "amount"], ["p", ": "], ["s", '"500.00"'], ["p", " },"]]
    }, {
      ln: 8,
      parts: [["p", "    "], ["key", "destination"], ["p", ": { "], ["key", "asset"], ["p", ": "], ["s", '"usdc"'], ["p", ", "], ["key", "network"], ["p", ": "], ["s", '"polygon"'], ["p", ", "], ["key", "wallet"], ["p", ": "], ["s", '"wlt_01H9Xb..."'], ["p", " },"]]
    }, {
      ln: 9,
      parts: [["p", "  }),"]]
    }, {
      ln: 10,
      parts: [["p", "});"]]
    }],
    result: {
      latency: "186 ms",
      rows: [{
        lbl: "id",
        val: "qt_01H9Xq...",
        accent: true
      }, {
        lbl: "status",
        val: "open"
      }, {
        lbl: "source.amountNet",
        val: "USD 500.00"
      }, {
        lbl: "destination.amountGross",
        val: "USDC 499.40"
      }, {
        lbl: "rates.exchangeRate",
        val: "0.9988"
      }, {
        lbl: "expiresAt",
        val: "2026-05-08T14:32:00Z"
      }]
    }
  }, {
    id: "transactions",
    label: "/transactions",
    method: "POST",
    code: [{
      ln: 1,
      parts: [["c", "// Step 2 of 2: execute the quote. Triggers settlement."]]
    }, {
      ln: 2,
      parts: [["k", "const "], ["v", "res"], ["p", " = "], ["k", "await "], ["fn", "fetch"], ["p", "("], ["s", '"/v0.9/transactions"'], ["p", ", {"]]
    }, {
      ln: 3,
      parts: [["p", "  "], ["key", "method"], ["p", ": "], ["s", '"POST"'], ["p", ","]]
    }, {
      ln: 4,
      parts: [["p", "  "], ["key", "headers"], ["p", ": { "], ["key", "Authorization"], ["p", ": "], ["s", '"Bearer YOUR_API_TOKEN"'], ["p", " },"]]
    }, {
      ln: 5,
      parts: [["p", "  "], ["key", "body"], ["p", ": "], ["fn", "JSON"], ["p", "."], ["fn", "stringify"], ["p", "({ "], ["key", "quote"], ["p", ": "], ["s", '"qt_01H9Xq..."'], ["p", " }),"]]
    }, {
      ln: 6,
      parts: [["p", "});"]]
    }, {
      ln: 7,
      parts: [["k", "const "], ["v", "tx"], ["p", " = "], ["k", "await "], ["v", "res"], ["p", "."], ["fn", "json"], ["p", "();"]]
    }],
    result: {
      latency: "94 ms",
      rows: [{
        lbl: "id",
        val: "txn_01H9Xd...",
        accent: true
      }, {
        lbl: "status",
        val: "processing"
      }, {
        lbl: "type",
        val: "fiatToCrypto"
      }, {
        lbl: "source.amountNet",
        val: "USD 500.00"
      }, {
        lbl: "destination.amountGross",
        val: "USDC 499.40"
      }, {
        lbl: "createdAt",
        val: "2026-05-08T14:31:47Z"
      }]
    }
  }, {
    id: "cash-ins",
    label: "/cash-ins",
    method: "POST",
    code: [{
      ln: 1,
      parts: [["c", "// Issue a code for in-person cash funding at retail."]]
    }, {
      ln: 2,
      parts: [["k", "const "], ["v", "res"], ["p", " = "], ["k", "await "], ["fn", "fetch"], ["p", "("], ["s", '"/v0.9/cash-ins"'], ["p", ", {"]]
    }, {
      ln: 3,
      parts: [["p", "  "], ["key", "method"], ["p", ": "], ["s", '"POST"'], ["p", ","]]
    }, {
      ln: 4,
      parts: [["p", "  "], ["key", "headers"], ["p", ": { "], ["key", "Authorization"], ["p", ": "], ["s", '"Bearer YOUR_API_TOKEN"'], ["p", " },"]]
    }, {
      ln: 5,
      parts: [["p", "  "], ["key", "body"], ["p", ": "], ["fn", "JSON"], ["p", "."], ["fn", "stringify"], ["p", "({"]]
    }, {
      ln: 6,
      parts: [["p", "    "], ["key", "customer"], ["p", ": "], ["s", '"cst_01H9Xa..."'], ["p", ","]]
    }, {
      ln: 7,
      parts: [["p", "    "], ["key", "source"], ["p", ": { "], ["key", "asset"], ["p", ": "], ["s", '"usd"'], ["p", ", "], ["key", "network"], ["p", ": "], ["s", '"cash"'], ["p", " },"]]
    }, {
      ln: 8,
      parts: [["p", "    "], ["key", "destination"], ["p", ": { "], ["key", "asset"], ["p", ": "], ["s", '"usdc"'], ["p", ", "], ["key", "network"], ["p", ": "], ["s", '"polygon"'], ["p", ", "], ["key", "wallet"], ["p", ": "], ["s", '"wlt_01H9Xb..."'], ["p", " },"]]
    }, {
      ln: 9,
      parts: [["p", "    "], ["key", "cash"], ["p", ": { "], ["key", "locationId"], ["p", ": "], ["s", '"loc_01H9Xc..."'], ["p", " },"]]
    }, {
      ln: 10,
      parts: [["p", "  }),"]]
    }, {
      ln: 11,
      parts: [["p", "});"]]
    }],
    result: {
      latency: "172 ms",
      rows: [{
        lbl: "id",
        val: "ci_01H9Xd...",
        accent: true
      }, {
        lbl: "status",
        val: "pending"
      }, {
        lbl: "type",
        val: "fiatToCrypto"
      }, {
        lbl: "depositInstructions.code",
        val: "ABC 12345"
      }, {
        lbl: "depositInstructions.locationName",
        val: "Retail Partner #4521"
      }, {
        lbl: "depositInstructions.expiresAt",
        val: "2026-05-08T15:32:00Z"
      }]
    }
  }];
  const [tab, setTab] = React.useState(0);
  const t = API_TABS[tab];
  return <section style={{
    padding: "64px 0"
  }}>
      <style>{`
        @media (max-width: 768px) {
          .lp-api-grid { grid-template-columns: 1fr !important; }
          .lp-api-response { border-left: none !important; border-top: 1px solid rgba(128,128,128,0.2) !important; }
        }
      `}</style>
      <div style={{
    display: "grid",
    gridTemplateColumns: "auto 1fr",
    alignItems: "center",
    gap: "16px",
    marginBottom: "36px"
  }}>
        <span style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    letterSpacing: "0.08em",
    color: fg4,
    textTransform: "uppercase",
    fontWeight: "500"
  }}>
          <span style={{
    color: "#670DE5"
  }}>04</span> · API surface
        </span>
        <span style={{
    height: "1px",
    background: sepLine
  }} />
      </div>

      <div style={{
    display: "flex",
    alignItems: "end",
    justifyContent: "space-between",
    marginBottom: "28px",
    gap: "24px",
    flexWrap: "wrap"
  }}>
        <div>
          <h2 style={{
    fontSize: "clamp(28px, 6vw, 36px)",
    fontWeight: "700",
    letterSpacing: "-0.025em",
    color: fg1,
    lineHeight: "1.05",
    margin: "0 0 12px"
  }}>A simple API. A lot of money movement.</h2>
          <p style={{
    fontSize: "16px",
    color: fg2,
    maxWidth: "64ch",
    margin: 0,
    lineHeight: "1.55"
  }}>
            Quote, execute, and track every flow from a single HTTP endpoint.
          </p>
        </div>
        <a href="/api-reference/overview" style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "6px",
    height: "36px",
    padding: "0 14px",
    borderRadius: "8px",
    fontSize: "13px",
    fontWeight: "600",
    background: bg1,
    color: fg1,
    border: `1px solid ${s1}`,
    textDecoration: "none",
    whiteSpace: "nowrap"
  }}>
          Open API reference
          <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg>
        </a>
      </div>

      <div className="lp-api-grid" style={{
    borderRadius: "16px",
    overflow: "hidden",
    border: `1px solid ${s1}`,
    background: bg1,
    display: "grid",
    gridTemplateColumns: "1fr 1fr",
    minHeight: "460px"
  }}>
        <div style={{
    gridColumn: "1 / -1",
    display: "flex",
    background: bg2,
    borderBottom: `1px solid ${s2}`,
    padding: "0 16px",
    gap: "2px"
  }}>
          {API_TABS.map((x, i) => <button key={x.id} onClick={() => setTab(i)} style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "6px",
    padding: "12px 14px",
    fontSize: "12.5px",
    fontWeight: "600",
    color: i === tab ? fg1 : fg4,
    border: 0,
    borderBottom: `2px solid ${i === tab ? "#670DE5" : "transparent"}`,
    background: "transparent",
    cursor: "pointer",
    fontFamily: "inherit",
    marginBottom: "-1px",
    transition: "color 140ms ease, border-color 140ms ease"
  }}>
              <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
                {i === 0 && <><path d="m22 2-7 20-4-9-9-4z" /><path d="M22 2 11 13" /></>}
                {i === 1 && <><path d="M5 3h14" /><path d="M12 21V7" /><path d="m6 13 6-6 6 6" /></>}
                {i === 2 && <><circle cx="12" cy="12" r="3" /><path d="M12 2v3" /><path d="M12 19v3" /><path d="m4.22 4.22 2.12 2.12" /><path d="m17.66 17.66 2.12 2.12" /><path d="M2 12h3" /><path d="M19 12h3" /><path d="m4.22 19.78 2.12-2.12" /><path d="m17.66 6.34 2.12-2.12" /></>}
              </svg>
              {x.method} {x.label}
            </button>)}
        </div>

        <div style={{
    display: "flex",
    flexDirection: "column",
    minWidth: 0
  }}>
          <div style={{
    display: "flex",
    alignItems: "center",
    padding: "10px 16px",
    borderBottom: "1px solid rgba(255,255,255,0.1)",
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    color: "rgba(255,255,255,0.4)",
    background: "#0a0917",
    letterSpacing: "0.04em"
  }}>
            <span>Request · javascript</span>
          </div>
          <pre style={{
    flex: 1,
    margin: 0,
    padding: "18px 20px",
    fontFamily: "ui-monospace, monospace",
    fontSize: "12.5px",
    lineHeight: "1.65",
    color: "#d6d8e6",
    background: "#0a0917",
    overflow: "auto",
    whiteSpace: "pre"
  }}>
            {t.code.map((line, i) => <div key={i}>
                <span style={{
    color: "rgba(255,255,255,0.25)",
    display: "inline-block",
    width: "22px",
    userSelect: "none",
    textAlign: "right",
    paddingRight: "12px"
  }}>{line.ln}</span>
                {line.parts.map(([cls, txt], j) => <span key={j} style={{
    color: COLOR_MAP[cls] || "#d6d8e6",
    fontWeight: cls === "fn" ? 600 : "normal",
    fontStyle: cls === "c" ? "italic" : "normal"
  }}>{txt}</span>)}
              </div>)}
          </pre>
        </div>

        <div className="lp-api-response" style={{
    display: "flex",
    flexDirection: "column",
    borderLeft: `1px solid ${s2}`,
    minWidth: 0
  }}>
          <div style={{
    display: "flex",
    alignItems: "center",
    justifyContent: "space-between",
    padding: "10px 16px",
    borderBottom: `1px solid ${s2}`,
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    color: fg4,
    background: bg2,
    letterSpacing: "0.04em"
  }}>
            <span>Response · 200 OK</span>
            <span>{t.result.latency}</span>
          </div>
          <div style={{
    flex: 1,
    padding: "18px 20px",
    background: bg1,
    fontFamily: "ui-monospace, monospace",
    fontSize: "12.5px",
    lineHeight: "1.6",
    color: fg1,
    overflow: "auto"
  }}>
            <div style={{
    display: "flex",
    alignItems: "center",
    justifyContent: "space-between",
    paddingBottom: "10px",
    marginBottom: "8px",
    borderBottom: `1px solid ${s2}`
  }}>
              <span style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "5px",
    background: "#E8F5E8",
    color: "#007D00",
    fontSize: "11px",
    fontWeight: "700",
    padding: "3px 9px",
    borderRadius: "999px",
    letterSpacing: "0.04em"
  }}>
                <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round"><path d="M20 6 9 17l-5-5" /></svg>
                200 OK
              </span>
            </div>
            {t.result.rows.map(r => <div key={r.lbl} style={{
    display: "grid",
    gridTemplateColumns: "18px 1fr",
    gap: "10px",
    padding: "6px 0",
    borderBottom: `1px dashed ${s2}`
  }}>
                <span style={{
    width: "18px",
    height: "18px",
    borderRadius: "50%",
    display: "inline-flex",
    alignItems: "center",
    justifyContent: "center",
    background: "#E8F5E8",
    color: "#007D00",
    flexShrink: 0
  }}>
                  <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round"><path d="M20 6 9 17l-5-5" /></svg>
                </span>
                <div>
                  <div style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    color: fg4,
    letterSpacing: "0.04em",
    textTransform: "uppercase",
    fontWeight: "600",
    marginBottom: "1px"
  }}>{r.lbl}</div>
                  <div style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "12.5px",
    color: r.accent ? "#9551F5" : fg1,
    wordBreak: "break-all",
    fontVariantNumeric: "tabular-nums"
  }}>{r.val}</div>
                </div>
              </div>)}
          </div>
        </div>
      </div>
    </section>;
};

export const Capabilities = () => {
  const [dark, setDark] = React.useState(false);
  const [hot, setHot] = useState(null);
  React.useEffect(() => {
    const update = () => setDark(document.documentElement.classList.contains("dark"));
    update();
    const obs = new MutationObserver(update);
    obs.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => obs.disconnect();
  }, []);
  const bg1 = dark ? "#1C1C1C" : "#fff";
  const bg2 = dark ? "#141414" : "#FDFDFF";
  const fg1 = dark ? "#e5e7eb" : "#020005";
  const fg2 = dark ? "#9ca3af" : "#48526F";
  const fg4 = dark ? "#6b7280" : "#929EBA";
  const s1 = dark ? "rgba(255,255,255,0.12)" : "#C8CFE1";
  const s2 = dark ? "rgba(255,255,255,0.08)" : "#DFE3F0";
  const icon = dark ? "rgba(103,13,229,0.3)" : "#EAE4F5";
  const sepLine = dark ? "linear-gradient(to right, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.08) 60%, transparent 100%)" : "linear-gradient(to right, #C8CFE1 0%, #DFE3F0 60%, transparent 100%)";
  const PRIMITIVES = [{
    id: "send",
    title: "Send",
    copy: "Move funds onchain to any wallet or address, with bank and cash payout rails in early access."
  }, {
    id: "receive",
    title: "Receive",
    copy: "Accept funds via cash-in, onchain transfers, or virtual accounts (early access)."
  }, {
    id: "convert",
    title: "Convert",
    copy: "Quote and execute fiat/crypto and stablecoin swaps with deep liquidity."
  }, {
    id: "hold",
    title: "Hold",
    copy: "Store balances across currencies and chains in custodial or non-custodial wallets."
  }, {
    id: "ramp",
    title: "Ramp",
    copy: "Convert between fiat and crypto with cash-in today. Bank rails (ACH, wire), cards, SEPA, and PIX coming soon."
  }, {
    id: "bridge",
    title: "Bridge",
    copy: "Move assets across chains with canonical and third-party bridge routes."
  }, {
    id: "swap",
    title: "Swap",
    copy: "Exchange tokens at quoted rates with slippage control and onchain settlement."
  }, {
    id: "earn",
    title: "Earn",
    copy: "Put idle balances to work: staking, lending, and yield strategies."
  }, {
    id: "program",
    title: "Program",
    copy: "Compose primitives into flows: splits, escrow, approvals, policy gates."
  }, {
    id: "identify",
    title: "Identify",
    copy: "KYC and KYB verification routed to the right vendor for the customer's region."
  }];
  const PRODUCT_MAP = [{
    id: "payouts",
    label: "Payouts",
    uses: ["send", "convert", "identify"]
  }, {
    id: "wallets",
    label: "Non-custodial wallets",
    uses: ["hold", "identify", "program"]
  }, {
    id: "ramps",
    label: "Ramps",
    uses: ["receive", "send", "ramp", "convert", "identify"]
  }, {
    id: "yield",
    label: "Yield",
    uses: ["earn", "hold", "swap"]
  }, {
    id: "agents",
    label: "Agent commerce",
    uses: ["send", "identify", "program"]
  }];
  const getCapIcon = id => {
    if (id === "send") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="m22 2-7 20-4-9-9-4z" /><path d="M22 2 11 13" /></svg>;
    if (id === "receive") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /><polyline points="7 10 12 15 17 10" /><line x1="12" x2="12" y1="15" y2="3" /></svg>;
    if (id === "convert") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="m17 2 4 4-4 4" /><path d="M3 11V9a4 4 0 0 1 4-4h14" /><path d="m7 22-4-4 4-4" /><path d="M21 13v2a4 4 0 0 1-4 4H3" /></svg>;
    if (id === "hold") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16" /><path d="M3 21h18" /><circle cx="12" cy="11" r="2" /></svg>;
    if (id === "ramp") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M7 16V4" /><path d="m3 12 4 4 4-4" /><path d="M17 8v12" /><path d="m21 12-4 4-4-4" /></svg>;
    if (id === "bridge") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /></svg>;
    if (id === "swap") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="m16 3 4 4-4 4" /><path d="M20 7H4" /><path d="m8 21-4-4 4-4" /><path d="M4 17h16" /></svg>;
    if (id === "earn") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18" /><polyline points="17 6 23 6 23 12" /></svg>;
    if (id === "program") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><rect width="8" height="8" x="3" y="3" rx="2" /><path d="M7 11v4a2 2 0 0 0 2 2h4" /><rect width="8" height="8" x="13" y="13" rx="2" /></svg>;
    if (id === "identify") return <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><rect width="20" height="14" x="2" y="5" rx="2" /><line x1="2" x2="22" y1="10" y2="10" /></svg>;
    return null;
  };
  const activeProduct = PRODUCT_MAP.find(p => p.id === hot);
  return <section style={{
    padding: "64px 0"
  }}>
      <style>{`
        @media (max-width: 900px) {
          .lp-cap-grid { grid-template-columns: repeat(3, 1fr) !important; }
        }
        @media (max-width: 560px) {
          .lp-cap-grid { grid-template-columns: repeat(2, 1fr) !important; }
        }
      `}</style>
      <div style={{
    display: "grid",
    gridTemplateColumns: "auto 1fr",
    alignItems: "center",
    gap: "16px",
    marginBottom: "36px"
  }}>
        <span style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    letterSpacing: "0.08em",
    color: fg4,
    textTransform: "uppercase",
    fontWeight: "500"
  }}>
          <span style={{
    color: "#670DE5"
  }}>01</span> · Capabilities
        </span>
        <span style={{
    height: "1px",
    background: sepLine
  }} />
      </div>

      <div style={{
    display: "flex",
    alignItems: "end",
    justifyContent: "space-between",
    marginBottom: "28px",
    gap: "24px",
    flexWrap: "wrap"
  }}>
        <div>
          <h2 style={{
    fontSize: "clamp(28px, 6vw, 36px)",
    fontWeight: "700",
    letterSpacing: "-0.025em",
    color: fg1,
    lineHeight: "1.05",
    margin: "0 0 12px"
  }}>Primitives for moving money</h2>
          <p style={{
    fontSize: "16px",
    color: fg2,
    maxWidth: "64ch",
    margin: 0,
    lineHeight: "1.55"
  }}>
            Ten composable primitives. Pick a product to see which primitives it combines, or use them modularly.
          </p>
        </div>
        <a href="/api-reference/overview" style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "6px",
    height: "36px",
    padding: "0 14px",
    borderRadius: "8px",
    fontSize: "13px",
    fontWeight: "600",
    background: bg1,
    color: fg1,
    border: `1px solid ${s1}`,
    textDecoration: "none",
    whiteSpace: "nowrap"
  }}>
          Full reference
          <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg>
        </a>
      </div>

      <div style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "center",
    gap: "10px",
    padding: "14px 16px",
    background: bg2,
    border: `1px solid ${s2}`,
    borderRadius: "10px",
    fontSize: "12px",
    marginBottom: "16px"
  }}>
        <span style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    color: fg4,
    letterSpacing: "0.06em",
    textTransform: "uppercase",
    fontWeight: "600"
  }}>Combine into</span>
        {PRODUCT_MAP.map(prod => <button key={prod.id} onMouseEnter={() => setHot(prod.id)} onMouseLeave={() => setHot(null)} onClick={() => setHot(hot === prod.id ? null : prod.id)} style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "6px",
    padding: "6px 11px",
    borderRadius: "999px",
    background: hot === prod.id ? dark ? "#e5e7eb" : "#020005" : bg1,
    border: `1px solid ${hot === prod.id ? dark ? "#e5e7eb" : "#020005" : s2}`,
    fontSize: "12px",
    fontWeight: "600",
    color: hot === prod.id ? dark ? "#141414" : "#fff" : fg2,
    cursor: "pointer",
    transition: "all 140ms ease",
    fontFamily: "inherit"
  }}>
            {prod.label}
          </button>)}
      </div>

      <div className="lp-cap-grid" style={{
    display: "grid",
    gridTemplateColumns: "repeat(5, 1fr)",
    gap: "12px"
  }}>
        {PRIMITIVES.map(p => {
    const lit = activeProduct?.uses.includes(p.id);
    const dim = !!hot && !lit;
    return <div key={p.id} style={{
      background: bg1,
      border: `1px solid ${lit ? "#670DE5" : s1}`,
      borderRadius: "12px",
      padding: "18px",
      display: "flex",
      flexDirection: "column",
      minHeight: "140px",
      position: "relative",
      opacity: dim ? 0.35 : 1,
      filter: dim ? "grayscale(0.4)" : "none",
      boxShadow: lit ? "0 0 0 3px rgba(103,13,229,0.10)" : "none",
      transition: "all 160ms ease"
    }}>
              <span style={{
      width: "32px",
      height: "32px",
      borderRadius: "7px",
      background: lit ? "#670DE5" : icon,
      color: lit ? "#fff" : "#670DE5",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center",
      marginBottom: "12px",
      transition: "background 160ms ease, color 160ms ease"
    }}>
                {getCapIcon(p.id)}
              </span>
              <h4 style={{
      fontSize: "14px",
      fontWeight: "700",
      margin: "0 0 4px",
      color: fg1,
      letterSpacing: "-0.005em"
    }}>{p.title}</h4>
              <p style={{
      fontSize: "12.5px",
      color: fg4,
      margin: 0,
      lineHeight: "1.45"
    }}>{p.copy}</p>
            </div>;
  })}
      </div>
    </section>;
};

export const UseCases = () => {
  const [dark, setDark] = React.useState(false);
  React.useEffect(() => {
    const update = () => setDark(document.documentElement.classList.contains("dark"));
    update();
    const obs = new MutationObserver(update);
    obs.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => obs.disconnect();
  }, []);
  const accent = "#670DE5";
  const accentSoft = dark ? "rgba(103,13,229,0.3)" : "#EAE4F5";
  const fg1 = dark ? "#e5e7eb" : "#020005";
  const fg4 = dark ? "#6b7280" : "#929EBA";
  const s1 = dark ? "rgba(255,255,255,0.12)" : "#C8CFE1";
  const s2 = dark ? "rgba(255,255,255,0.08)" : "#DFE3F0";
  const bg1 = dark ? "#1C1C1C" : "#fff";
  const bg2 = dark ? "#141414" : "#FDFDFF";
  const bg3 = dark ? "rgba(103,13,229,0.12)" : "#F6F3FB";
  const Icon = ({name, size = 18}) => {
    const p = {
      width: size,
      height: size,
      viewBox: "0 0 24 24",
      fill: "none",
      stroke: "currentColor",
      strokeWidth: "2",
      strokeLinecap: "round",
      strokeLinejoin: "round"
    };
    if (name === "wallet") return <svg {...p}><path d="M21 12V7H5a2 2 0 0 1 0-4h14v4" /><path d="M3 5v14a2 2 0 0 0 2 2h16v-5" /><path d="M18 12a2 2 0 0 0 0 4h4v-4Z" /></svg>;
    if (name === "users") return <svg {...p}><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" /><circle cx="9" cy="7" r="4" /><path d="M22 21v-2a4 4 0 0 0-3-3.87" /><path d="M16 3.13a4 4 0 0 1 0 7.75" /></svg>;
    if (name === "store") return <svg {...p}><path d="m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7" /><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" /><path d="M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4" /><path d="M2 7h20" /></svg>;
    if (name === "car") return <svg {...p}><path d="M5 17H3a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h13l4 4v6a2 2 0 0 1-2 2h-2" /><circle cx="7.5" cy="17.5" r="2.5" /><circle cx="17.5" cy="17.5" r="2.5" /></svg>;
    if (name === "building-2") return <svg {...p}><path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z" /><path d="M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2" /><path d="M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2" /><path d="M10 6h4" /><path d="M10 10h4" /><path d="M10 14h4" /><path d="M10 18h4" /></svg>;
    if (name === "split") return <svg {...p}><path d="M16 3h5v5" /><path d="m21 3-7 7" /><path d="M21 21h-5v-5" /><path d="m21 21-7-7" /><path d="m3 3 6 6" /><path d="m3 21 2-2" /></svg>;
    if (name === "receipt") return <svg {...p}><path d="M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" /><path d="M16 8H8" /><path d="M16 12H8" /><path d="M12 16H8" /></svg>;
    if (name === "credit-card") return <svg {...p}><rect width="20" height="14" x="2" y="5" rx="2" /><line x1="2" x2="22" y1="10" y2="10" /></svg>;
    if (name === "banknote") return <svg {...p}><rect width="20" height="12" x="2" y="6" rx="2" /><circle cx="12" cy="12" r="2" /><path d="M6 12h.01M18 12h.01" /></svg>;
    if (name === "landmark") return <svg {...p}><line x1="3" x2="21" y1="22" y2="22" /><line x1="6" x2="6" y1="18" y2="11" /><line x1="10" x2="10" y1="18" y2="11" /><line x1="14" x2="14" y1="18" y2="11" /><line x1="18" x2="18" y1="18" y2="11" /><polygon points="12 2 20 7 4 7" /></svg>;
    if (name === "scan-line") return <svg {...p}><path d="M3 7V5a2 2 0 0 1 2-2h2" /><path d="M17 3h2a2 2 0 0 1 2 2v2" /><path d="M21 17v2a2 2 0 0 1-2 2h-2" /><path d="M7 21H5a2 2 0 0 1-2-2v-2" /><line x1="7" x2="15" y1="12" y2="12" /></svg>;
    if (name === "gift") return <svg {...p}><rect x="3" y="8" width="18" height="4" rx="1" /><path d="M12 8v13" /><path d="M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7" /><path d="M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5" /></svg>;
    if (name === "coins") return <svg {...p}><circle cx="8" cy="8" r="6" /><path d="M18.09 10.37A6 6 0 1 1 10.34 18" /><path d="M7 6h1v4" /><path d="m16.71 13.88.7.71-2.82 2.82" /></svg>;
    if (name === "zap") return <svg {...p}><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" /></svg>;
    if (name === "trophy") return <svg {...p}><path d="M6 9H4.5a2.5 2.5 0 0 1 0-5H6" /><path d="M18 9h1.5a2.5 2.5 0 0 0 0-5H18" /><path d="M4 22h16" /><path d="M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22" /><path d="M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22" /><path d="M18 2H6v7a6 6 0 0 0 12 0V2Z" /></svg>;
    if (name === "globe") return <svg {...p}><circle cx="12" cy="12" r="10" /><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" /><path d="M2 12h20" /></svg>;
    if (name === "send") return <svg {...p}><path d="m22 2-7 20-4-9-9-4z" /><path d="M22 2 11 13" /></svg>;
    if (name === "qr-code") return <svg {...p}><rect width="5" height="5" x="3" y="3" rx="1" /><rect width="5" height="5" x="16" y="3" rx="1" /><rect width="5" height="5" x="3" y="16" rx="1" /><path d="M21 16h-3a2 2 0 0 0-2 2v3" /><path d="M21 21v.01" /><path d="M12 7v3a2 2 0 0 1-2 2H7" /><path d="M3 12h.01" /><path d="M12 3h.01" /><path d="M16 12h1" /><path d="M21 12v.01" /><path d="M12 21v-1" /></svg>;
    if (name === "smartphone") return <svg {...p}><rect width="14" height="20" x="5" y="2" rx="2" /><path d="M12 18h.01" /></svg>;
    if (name === "arrow-right") return <svg {...p}><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg>;
    return null;
  };
  const PhoneShell = ({children, screenStyle}) => {
    const ss = screenStyle || ({});
    return <div style={{
      position: "relative",
      marginTop: "4px"
    }}>
        <div style={{
      width: "200px",
      height: "380px",
      background: "linear-gradient(135deg,#1f2937,#0b1220)",
      borderRadius: "26px",
      padding: "7px",
      position: "relative",
      boxShadow: "0 16px 36px -14px rgba(0,0,0,0.45)"
    }}>
          <div style={{
      position: "absolute",
      top: "14px",
      left: "50%",
      transform: "translateX(-50%)",
      width: "78px",
      height: "18px",
      background: "#000",
      borderRadius: "999px",
      zIndex: 2
    }} />
          <div style={{
      width: "100%",
      height: "100%",
      background: "#fff",
      borderRadius: "20px",
      padding: "26px 10px 10px",
      display: "flex",
      flexDirection: "column",
      gap: "6px",
      position: "relative",
      overflow: "hidden",
      color: "#111",
      ...ss
    }}>
            <div style={{
      display: "flex",
      justifyContent: "space-between",
      alignItems: "center",
      fontSize: "11px",
      fontWeight: 700,
      color: "#111",
      padding: "0 6px 0 4px",
      height: "14px"
    }}>
              <span>9:41</span>
              <div style={{
      display: "inline-flex",
      alignItems: "center",
      gap: "3px"
    }}>
                <span style={{
      display: "inline-block",
      width: "3px",
      height: "4px",
      background: "currentColor",
      borderRadius: "1px"
    }} />
                <span style={{
      display: "inline-block",
      width: "3px",
      height: "6px",
      background: "currentColor",
      borderRadius: "1px"
    }} />
                <span style={{
      display: "inline-block",
      width: "3px",
      height: "8px",
      background: "currentColor",
      borderRadius: "1px"
    }} />
                <span style={{
      display: "inline-block",
      width: "16px",
      height: "8px",
      border: "1px solid currentColor",
      borderRadius: "2px",
      marginLeft: "3px",
      position: "relative",
      overflow: "hidden"
    }}>
                  <span style={{
      position: "absolute",
      inset: 0,
      right: "20%",
      background: "currentColor",
      borderRadius: "1px"
    }} />
                </span>
              </div>
            </div>
            <div style={{
      display: "flex",
      flexDirection: "column",
      gap: "8px",
      flex: 1,
      minHeight: 0
    }}>
              {children}
            </div>
          </div>
        </div>
      </div>;
  };
  const BalCard = ({label, amount, sub, bg, children}) => {
    const bgVal = bg || "linear-gradient(135deg,#1d4ed8,#1e3a8a)";
    return <div style={{
      background: bgVal,
      color: "#fff",
      borderRadius: "12px",
      padding: "12px",
      display: "flex",
      flexDirection: "column",
      gap: "2px",
      position: "relative",
      overflow: "hidden"
    }}>
        <div style={{
      position: "absolute",
      inset: 0,
      background: "linear-gradient(110deg,rgba(255,255,255,0.18) 0%,transparent 30%)",
      pointerEvents: "none"
    }} />
        <span style={{
      fontSize: "10px",
      opacity: 0.85,
      position: "relative"
    }}>{label}</span>
        <div style={{
      fontSize: "26px",
      fontWeight: 800,
      letterSpacing: "-0.02em",
      lineHeight: 1.05,
      position: "relative"
    }}>{amount}</div>
        {sub && <span style={{
      fontSize: "10px",
      opacity: 0.85,
      marginTop: "2px",
      position: "relative"
    }}>{sub}</span>}
        {children}
      </div>;
  };
  const PhoneHead = ({title, action}) => {
    return <div style={{
      display: "flex",
      justifyContent: "space-between",
      alignItems: "center",
      fontSize: "13px",
      fontWeight: 700,
      padding: "0 4px",
      color: "#111"
    }}>
        <span>{title}</span>
        {action && <span style={{
      color: "#999",
      fontSize: "13px"
    }}>{action}</span>}
      </div>;
  };
  const PhoneRow = ({icon, label, sub, value, valueColor}) => {
    const vc = valueColor || "#10b981";
    return <div style={{
      display: "grid",
      gridTemplateColumns: "18px 1fr auto",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "6px 8px",
      fontSize: "11px"
    }}>
        <span style={{
      color: vc,
      fontWeight: 700,
      fontSize: "12px"
    }}>{icon}</span>
        <div>
          <b style={{
      fontSize: "11px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>{label}</b>
          <span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>{sub}</span>
        </div>
        <b style={{
      color: vc,
      fontWeight: 700
    }}>{value}</b>
      </div>;
  };
  const DashShell = ({title, meta, children}) => {
    return <div style={{
      width: "100%",
      maxWidth: "280px",
      background: "#fff",
      borderRadius: "12px",
      padding: "14px",
      display: "flex",
      flexDirection: "column",
      gap: "6px",
      boxShadow: "0 16px 36px -14px rgba(0,0,0,0.30)",
      fontSize: "12px",
      color: "#111"
    }}>
        <div style={{
      display: "flex",
      justifyContent: "space-between",
      alignItems: "baseline",
      paddingBottom: "8px",
      borderBottom: "1px solid #e5e7eb",
      marginBottom: "4px"
    }}>
          <b style={{
      fontSize: "12.5px",
      fontWeight: 700,
      color: "#111"
    }}>{title}</b>
          <span style={{
      fontSize: "10.5px",
      color: "#888",
      fontFamily: "ui-monospace, monospace"
    }}>{meta}</span>
        </div>
        {children}
      </div>;
  };
  const DsRow = ({label, value, pill, status, big}) => {
    return <div style={{
      display: "grid",
      gridTemplateColumns: "1fr auto auto",
      gap: "10px",
      padding: big ? "8px 0" : "4px 0",
      fontSize: big ? "13px" : "11.5px",
      alignItems: "center",
      borderBottom: "1px dashed #e5e7eb"
    }}>
        <span style={{
      color: "#6b7280"
    }}>{label}</span>
        {value && <b style={{
      color: "#111",
      fontWeight: 700
    }}>{value}</b>}
        {pill && <span style={{
      fontFamily: "ui-monospace,monospace",
      fontSize: "10px",
      padding: "2px 6px",
      background: accentSoft,
      color: accent,
      borderRadius: "4px",
      fontWeight: 600
    }}>{pill}</span>}
        {status && <span style={{
      fontFamily: "ui-monospace,monospace",
      fontSize: "10px",
      color: "#10b981",
      fontWeight: 700
    }}>{status}</span>}
      </div>;
  };
  const PhoneCTAPrimary = ({children}) => {
    return <button style={{
      marginTop: "auto",
      height: "34px",
      border: 0,
      borderRadius: "8px",
      background: "#111",
      color: "#fff",
      fontSize: "12px",
      fontWeight: 600,
      cursor: "pointer",
      fontFamily: "inherit"
    }}>{children}</button>;
  };
  const Mock_neobanks = () => {
    return <PhoneShell>
        <PhoneHead title="Wallet" action="⚙" />
        <BalCard label="Total balance" amount="$5,000.00">
          <div style={{
      display: "flex",
      gap: "4px",
      marginTop: "8px",
      position: "relative"
    }}>
            {["Add", "Withdraw", "Transfer"].map(t => <span key={t} style={{
      flex: 1,
      fontSize: "10.5px",
      fontWeight: 600,
      padding: "6px 4px",
      background: "rgba(255,255,255,0.95)",
      color: "#111",
      borderRadius: "6px",
      textAlign: "center"
    }}>{t}</span>)}
          </div>
        </BalCard>
        <div style={{
      display: "grid",
      gridTemplateColumns: "1fr 1fr",
      gap: "6px"
    }}>
          {[["Weekly", "$312.40", "earned"], ["Bitcoin", "0.082 BTC", "+4.2%"]].map(function (x) {
      return <div key={x[0]} style={{
        background: "#f5f5f7",
        borderRadius: "8px",
        padding: "6px 8px",
        display: "flex",
        flexDirection: "column"
      }}>
              <span style={{
        fontSize: "9.5px",
        color: "#666"
      }}>{x[0]}</span>
              <b style={{
        fontSize: "12px",
        fontWeight: 700,
        color: "#111"
      }}>{x[1]}</b>
              <span style={{
        color: "#888",
        fontSize: "9px",
        marginTop: "1px"
      }}>{x[2]}</span>
            </div>;
    })}
        </div>
        <span style={{
      fontSize: "11px",
      fontWeight: 700,
      color: "#111",
      padding: "4px 4px 0"
    }}>Activity</span>
      </PhoneShell>;
  };
  const Mock_creators = () => {
    return <PhoneShell>
        <PhoneHead title="Earnings" action="⚙" />
        <BalCard label="This month" amount="$3,284.50" bg="linear-gradient(135deg,#1d4ed8,#1e3a8a)">
          <span style={{
      position: "relative",
      fontSize: "10px",
      color: "#86efac",
      marginTop: "2px"
    }}>+ $812.40 vs last</span>
        </BalCard>
        <div style={{
      display: "flex",
      gap: "4px"
    }}>
          {[["#f472b6", "Tips", "$1,420"], ["#60a5fa", "Subs", "$1,180"], ["#a78bfa", "Sponsor", "$684"]].map(function (x) {
      return <div key={x[1]} style={{
        flex: 1,
        background: "#f5f5f7",
        borderRadius: "8px",
        padding: "6px",
        display: "flex",
        flexDirection: "column",
        gap: "2px"
      }}>
              <span style={{
        display: "inline-block",
        width: "8px",
        height: "8px",
        borderRadius: "999px",
        background: x[0]
      }} />
              <span style={{
        fontSize: "9.5px",
        color: "#666"
      }}>{x[1]}</span>
              <b style={{
        fontSize: "11px",
        fontWeight: 700,
        color: "#111"
      }}>{x[2]}</b>
            </div>;
    })}
        </div>
      </PhoneShell>;
  };
  const Mock_marketplaceSeller = () => {
    return <DashShell title="Seller payout" meta="Today">
        <DsRow label="Available" value="$2,148.30" big />
        <DsRow label="Order #4421" value="$84.50" pill="Card" />
        <DsRow label="Order #4419" value="$112.00" pill="Card" />
        <DsRow label="Order #4416" value="$36.20" pill="Card" />
        <button style={{
      marginTop: "4px",
      height: "30px",
      border: 0,
      borderRadius: "6px",
      background: "#111",
      color: "#fff",
      fontSize: "11px",
      fontWeight: 600,
      cursor: "pointer"
    }}>Withdraw via ACH</button>
      </DashShell>;
  };
  const Mock_gig = () => {
    return <PhoneShell>
        <PhoneHead title="Today's earnings" />
        <BalCard label="Earned today" amount="$148.20" sub="7 trips · 6h 12m online" />
        <PhoneRow icon="+" label="UCSB to Airport" sub="1:42 PM · 14.2mi" value="+$28.40" />
        <PhoneRow icon="+" label="Downtown to Goleta" sub="12:15 PM · 6.1mi" value="+$14.80" />
        <PhoneRow icon="+" label="State St to Mesa" sub="11:30 AM · 3.4mi" value="+$9.60" />
      </PhoneShell>;
  };
  const Mock_payroll = () => {
    return <DashShell title="Payroll · Nov batch" meta="10,000 payees">
        <DsRow label="A. Johnson" value="$3,200.00" pill="ACH" />
        <DsRow label="L. Carter" value="$1,850.00" pill="ACH" />
        <DsRow label="M. Thompson" value="$4,100.00" pill="ACH" />
        <DsRow label="E. Williams" value="$2,750.00" pill="ACH" />
        <DsRow label="+9,996 more" value="" pill="" />
        <DsRow label="Total" value="$2.18M" status="All paid" big />
      </DashShell>;
  };
  const Mock_supplier = () => {
    return <DashShell title="Supplier settlement" meta="24/7 rails">
        <DsRow label="Outgoing today" value="$842,160" big />
        <div style={{
      padding: "4px 0"
    }}>
          <div style={{
      height: "56px",
      display: "grid",
      gridTemplateColumns: "repeat(8,1fr)",
      gap: "3px",
      alignItems: "end",
      paddingBottom: "4px"
    }}>
            {[30, 55, 40, 75, 60, 85, 45, 68].map(function (h, i) {
      return <span key={i} style={{
        display: "block",
        height: h + "%",
        background: "linear-gradient(to top," + accent + ",#a78bfa)",
        borderRadius: "2px",
        minHeight: "4px"
      }} />;
    })}
          </div>
          <span style={{
      fontSize: "10px",
      color: "#888",
      fontFamily: "ui-monospace,monospace",
      display: "block"
    }}>Hourly throughput</span>
        </div>
        <DsRow label="Vendor wires" value="148" status="All cleared" />
        <DsRow label="Failed" value="0" pill="retries off" />
      </DashShell>;
  };
  const Mock_splits = () => {
    return <DashShell title="Booking #BK-2841" meta="Programmable split">
        <DsRow label="Amount" value="$500.00" big />
        <DsRow label="Host (Maria)" value="$432.50" pill="86.5%" />
        <DsRow label="Platform fee" value="$50.00" pill="10%" />
        <DsRow label="Tax remittance" value="$17.50" pill="3.5%" />
        <DsRow label="Settled onchain" status="T+0 · 4.1s" />
      </DashShell>;
  };
  const Mock_refunds = () => {
    return <DashShell title="Refund queue" meta="Auto-routed">
        <DsRow label="#PAY-218" value="$84.50" pill="Card" />
        <DsRow label="#PAY-215" value="$112.00" pill="ACH" />
        <DsRow label="#PAY-209" value="$36.20" pill="Wallet" />
        <DsRow label="#PAY-201" value="$220.00" pill="Card" />
        <DsRow label="Avg time" value="4.2s" status="99.8% success" big />
      </DashShell>;
  };
  const Mock_cardOnramp = () => {
    return <PhoneShell>
        <PhoneHead title="Deposit cash" />
        <BalCard label="You deposit" amount="$250.00" sub="250.00 USDC · fee $0.50" bg="linear-gradient(135deg,#0e7490,#0c4a6e)" />
        <div style={{
      display: "grid",
      gridTemplateColumns: "32px 1fr auto",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "8px"
    }}>
          <div style={{
      width: "28px",
      height: "18px",
      background: "linear-gradient(135deg,#34d399,#059669)",
      borderRadius: "3px"
    }} />
          <div>
            <b style={{
      fontSize: "11.5px",
      fontWeight: 700
    }}>Retail Partner</b>
            <span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>Cash · code ABC 12345</span>
          </div>
          <span style={{
      fontSize: "10px",
      color: "#1d4ed8",
      fontWeight: 600
    }}>map</span>
        </div>
        <PhoneCTAPrimary>Show deposit code</PhoneCTAPrimary>
      </PhoneShell>;
  };
  const Mock_cashOfframp = () => {
    return <PhoneShell>
        <PhoneHead title="Withdraw funds" />
        <BalCard label="They receive" amount="$999.53" sub="Chase ···1234 · ACH · ~1 day" bg="linear-gradient(135deg,#059669,#064e3b)" />
        <div style={{
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "8px 10px",
      display: "flex",
      flexDirection: "column",
      gap: "4px"
    }}>
          <div style={{
      display: "flex",
      justifyContent: "space-between"
    }}>
            <span style={{
      fontSize: "9.5px",
      color: "#888"
    }}>Rail</span>
            <b style={{
      fontSize: "10px",
      fontWeight: 700,
      color: "#111",
      fontFamily: "ui-monospace,monospace"
    }}>ACH</b>
          </div>
          <div style={{
      display: "flex",
      justifyContent: "space-between"
    }}>
            <span style={{
      fontSize: "9.5px",
      color: "#888"
    }}>Fee</span>
            <b style={{
      fontSize: "10px",
      fontWeight: 700,
      color: "#111",
      fontFamily: "ui-monospace,monospace"
    }}>$0.47</b>
          </div>
          <div style={{
      display: "flex",
      justifyContent: "space-between"
    }}>
            <span style={{
      fontSize: "9.5px",
      color: "#888"
    }}>Settle</span>
            <b style={{
      fontSize: "10px",
      fontWeight: 700,
      color: "#111",
      fontFamily: "ui-monospace,monospace"
    }}>T+1</b>
          </div>
        </div>
        <PhoneRow icon="+" label="Bank of America ···5678" sub="Savings account" value="" valueColor="#111" />
      </PhoneShell>;
  };
  const Mock_bankRails = () => {
    const rails = [{
      region: "US",
      name: "ACH",
      live: true
    }, {
      region: "EU",
      name: "SEPA",
      live: false
    }, {
      region: "BR",
      name: "PIX",
      live: false
    }, {
      region: "IN",
      name: "UPI",
      live: false
    }, {
      region: "MX",
      name: "SPEI",
      live: false
    }, {
      region: "JP",
      name: "Zengin",
      live: false
    }];
    return <DashShell title="Local rails" meta="Live">
        <div style={{
      display: "grid",
      gridTemplateColumns: "repeat(3,1fr)",
      gap: "6px",
      padding: "4px 0"
    }}>
          {rails.map(function (r) {
      return <div key={r.region} style={{
        border: "1.5px solid " + (r.live ? "#3b82f6" : "#e5e7eb"),
        borderRadius: "8px",
        padding: "6px 8px",
        display: "flex",
        flexDirection: "column",
        gap: "1px",
        opacity: r.live ? 1 : 0.45
      }}>
              <b style={{
        fontSize: "12px",
        fontWeight: 800,
        color: "#111"
      }}>{r.region}</b>
              <span style={{
        fontSize: "9.5px",
        color: r.live ? "#3b82f6" : "#6b7280",
        fontFamily: "ui-monospace,monospace",
        fontWeight: 600
      }}>{r.name}</span>
              {!r.live && <span style={{
        fontSize: "8.5px",
        color: "#9ca3af",
        fontWeight: 600
      }}>soon</span>}
            </div>;
    })}
        </div>
        <DsRow label="Avg settle" value="4.1s" />
        <DsRow label="Median fee" value="$0.18" />
      </DashShell>;
  };
  const Mock_kyc = () => {
    return <PhoneShell>
        <PhoneHead title="Verify identity" />
        <div style={{
      display: "flex",
      flexDirection: "column",
      gap: "5px"
    }}>
          <div style={{
      display: "grid",
      gridTemplateColumns: "22px 1fr",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "7px 8px"
    }}>
            <span style={{
      width: "18px",
      height: "18px",
      borderRadius: "999px",
      background: "#10b981",
      color: "#fff",
      fontSize: "11px",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center"
    }}>v</span>
            <div><b style={{
      fontSize: "11.5px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>ID document</b><span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>Driver's license · US</span></div>
          </div>
          <div style={{
      display: "grid",
      gridTemplateColumns: "22px 1fr",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "7px 8px"
    }}>
            <span style={{
      width: "18px",
      height: "18px",
      borderRadius: "999px",
      background: "#10b981",
      color: "#fff",
      fontSize: "11px",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center"
    }}>v</span>
            <div><b style={{
      fontSize: "11.5px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>Selfie match</b><span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>99.4% confidence</span></div>
          </div>
          <div style={{
      display: "grid",
      gridTemplateColumns: "22px 1fr",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "7px 8px"
    }}>
            <span style={{
      width: "18px",
      height: "18px",
      borderRadius: "999px",
      background: "#10b981",
      color: "#fff",
      fontSize: "11px",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center"
    }}>v</span>
            <div><b style={{
      fontSize: "11.5px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>Sanctions</b><span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>0 hits · 14 lists</span></div>
          </div>
          <div style={{
      display: "grid",
      gridTemplateColumns: "22px 1fr",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "7px 8px"
    }}>
            <span style={{
      width: "18px",
      height: "18px",
      borderRadius: "999px",
      background: "#fff",
      border: "1px solid #1d4ed8",
      color: "#1d4ed8",
      fontSize: "11px",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center"
    }}>o</span>
            <div><b style={{
      fontSize: "11.5px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>Address proof</b><span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>Awaiting upload</span></div>
          </div>
        </div>
        <PhoneCTAPrimary>Upload utility bill</PhoneCTAPrimary>
      </PhoneShell>;
  };
  const Mock_userDrops = () => {
    return <DashShell title="Reward drop" meta="Live">
        <div style={{
      display: "grid",
      gridTemplateColumns: "repeat(3,1fr)",
      gap: "6px",
      padding: "4px 0"
    }}>
          <div style={{
      display: "flex",
      flexDirection: "column"
    }}><span style={{
      fontSize: "9.5px",
      color: "#888"
    }}>Dropped</span><b style={{
      fontSize: "13px",
      fontWeight: 800,
      color: "#111"
    }}>$8,420</b></div>
          <div style={{
      display: "flex",
      flexDirection: "column"
    }}><span style={{
      fontSize: "9.5px",
      color: "#888"
    }}>Recipients</span><b style={{
      fontSize: "13px",
      fontWeight: 800,
      color: "#111"
    }}>2,184</b></div>
          <div style={{
      display: "flex",
      flexDirection: "column"
    }}><span style={{
      fontSize: "9.5px",
      color: "#888"
    }}>Avg</span><b style={{
      fontSize: "13px",
      fontWeight: 800,
      color: "#111"
    }}>$3.86</b></div>
        </div>
        <div style={{
      height: "48px",
      display: "grid",
      gridTemplateColumns: "repeat(12,1fr)",
      gap: "3px",
      alignItems: "end",
      padding: "6px 0 4px",
      borderTop: "1px dashed #e5e7eb",
      borderBottom: "1px dashed #e5e7eb",
      margin: "4px 0"
    }}>
          {[40, 72, 55, 88, 62, 95, 70, 84, 52, 76, 90, 68].map(function (h, i) {
      return <span key={i} style={{
        display: "block",
        height: h + "%",
        background: "linear-gradient(to top," + accent + ",#a78bfa)",
        borderRadius: "2px",
        minHeight: "4px"
      }} />;
    })}
        </div>
        <DsRow label="USDC drop" value="+$1.20" status="0x91…2dF" />
        <DsRow label="USDC drop" value="+$4.50" status="0x44…7a1" />
      </DashShell>;
  };
  const Mock_cashback = () => {
    return <PhoneShell>
        <PhoneHead title="Cashback" />
        <BalCard label="Earned this month" amount="$42.18" sub="Streamed as USDC · 1.8% avg" bg="linear-gradient(135deg,#10b981,#064e3b)" />
        <PhoneRow icon="+" label="Whole Foods" sub="$84.20 · 2%" value="+$1.68" />
        <PhoneRow icon="+" label="Uber" sub="$22.40 · 3%" value="+$0.67" />
        <PhoneRow icon="+" label="Delta Air" sub="$420 · 1.5%" value="+$6.30" />
      </PhoneShell>;
  };
  const Mock_streaming = () => {
    return <DashShell title="Stream · Live now" meta="$0.0021/s">
        <DsRow label="Rate" value="$7.56/hr" big />
        <div style={{
      display: "flex",
      flexDirection: "column",
      gap: "3px",
      padding: "6px 0"
    }}>
          <div style={{
      display: "block",
      height: "6px",
      background: "#e5e7eb",
      borderRadius: "3px",
      overflow: "hidden"
    }}>
            <div style={{
      display: "block",
      height: "100%",
      width: "68%",
      background: "linear-gradient(to right," + accent + ",#a78bfa)"
    }} />
          </div>
          <span style={{
      fontSize: "10px",
      color: "#888",
      fontFamily: "ui-monospace,monospace"
    }}>02:14:08 streamed</span>
        </div>
        <DsRow label="Earned so far" value="$16.80" />
        <DsRow label="Settled" status="USDC · 0xA1…f3c" />
        <button style={{
      marginTop: "4px",
      height: "30px",
      border: 0,
      borderRadius: "6px",
      background: "#111",
      color: "#fff",
      fontSize: "11px",
      fontWeight: 600,
      cursor: "pointer"
    }}>Cash out</button>
      </DashShell>;
  };
  const Mock_loyalty = () => {
    return <PhoneShell>
        <PhoneHead title="Loyalty wallet" />
        <BalCard label="Points balance" amount="14,820" sub="redeemable everywhere" bg="linear-gradient(135deg,#7c3aed,#3b0764)" />
        <div style={{
      display: "flex",
      flexDirection: "column",
      gap: "4px"
    }}>
          <div style={{
      display: "grid",
      gridTemplateColumns: "26px 1fr auto",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "7px 9px"
    }}>
            <span style={{
      width: "22px",
      height: "22px",
      borderRadius: "999px",
      background: "#fde047",
      color: "#854d0e",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center",
      fontSize: "11px",
      fontWeight: 700
    }}>*</span>
            <div><b style={{
      fontSize: "11.5px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>Starbucks</b><span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>1pt = $0.01</span></div>
            <span style={{
      fontSize: "10px",
      color: "#1d4ed8",
      fontWeight: 600
    }}>Redeem</span>
          </div>
          <div style={{
      display: "grid",
      gridTemplateColumns: "26px 1fr auto",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "7px 9px"
    }}>
            <span style={{
      width: "22px",
      height: "22px",
      borderRadius: "999px",
      background: "#fbcfe8",
      color: "#9d174d",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center",
      fontSize: "11px",
      fontWeight: 700
    }}>+</span>
            <div><b style={{
      fontSize: "11.5px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>Sephora</b><span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>1pt = $0.012</span></div>
            <span style={{
      fontSize: "10px",
      color: "#1d4ed8",
      fontWeight: 600
    }}>Redeem</span>
          </div>
          <div style={{
      display: "grid",
      gridTemplateColumns: "26px 1fr auto",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "7px 9px"
    }}>
            <span style={{
      width: "22px",
      height: "22px",
      borderRadius: "999px",
      background: "#bae6fd",
      color: "#0369a1",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center",
      fontSize: "11px",
      fontWeight: 700
    }}>^</span>
            <div><b style={{
      fontSize: "11.5px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>Delta Miles</b><span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>1pt = 1.2 miles</span></div>
            <span style={{
      fontSize: "10px",
      color: "#1d4ed8",
      fontWeight: 600
    }}>Redeem</span>
          </div>
        </div>
      </PhoneShell>;
  };
  const Mock_remit = () => {
    return <PhoneShell>
        <PhoneHead title="Send to bank" />
        <BalCard label="You send" amount="$500.00" sub="Fee $0.50 · arrives ~1 day" bg="linear-gradient(135deg,#f97316,#7c2d12)" />
        <div style={{
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "8px 10px",
      display: "flex",
      flexDirection: "column",
      gap: "3px"
    }}>
          <div style={{
      display: "flex",
      justifyContent: "space-between",
      alignItems: "center"
    }}>
            <span style={{
      fontSize: "9.5px",
      color: "#888"
    }}>From</span>
            <b style={{
      fontSize: "10px",
      fontWeight: 700,
      color: "#111",
      fontFamily: "ui-monospace,monospace"
    }}>USDC wallet</b>
          </div>
          <div style={{
      display: "flex",
      justifyContent: "center",
      padding: "1px 0",
      color: "#9ca3af"
    }}>
            <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M12 5v14" /><path d="m19 12-7 7-7-7" /></svg>
          </div>
          <div style={{
      display: "flex",
      justifyContent: "space-between",
      alignItems: "center"
    }}>
            <span style={{
      fontSize: "9.5px",
      color: "#888"
    }}>Route</span>
            <b style={{
      fontSize: "10px",
      fontWeight: 700,
      color: "#111",
      fontFamily: "ui-monospace,monospace"
    }}>USDC → USD · ACH</b>
          </div>
          <div style={{
      display: "flex",
      justifyContent: "center",
      padding: "1px 0",
      color: "#9ca3af"
    }}>
            <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M12 5v14" /><path d="m19 12-7 7-7-7" /></svg>
          </div>
          <div style={{
      display: "flex",
      justifyContent: "space-between",
      alignItems: "center"
    }}>
            <span style={{
      fontSize: "9.5px",
      color: "#888"
    }}>They receive</span>
            <b style={{
      fontSize: "10px",
      fontWeight: 700,
      color: "#111",
      fontFamily: "ui-monospace,monospace"
    }}>$499.50 USD</b>
          </div>
        </div>
        <PhoneCTAPrimary>Send $500</PhoneCTAPrimary>
      </PhoneShell>;
  };
  const Mock_p2p = () => {
    return <PhoneShell>
        <PhoneHead title="Pay friend" />
        <BalCard label="To Sofia" amount="$45.00" sub="Free · settles instant" bg="linear-gradient(135deg,#fb923c,#9a3412)" />
        <div style={{
      display: "flex",
      gap: "4px"
    }}>
          <div style={{
      flex: 1,
      background: "rgba(251,146,60,0.08)",
      borderRadius: "8px",
      padding: "6px",
      display: "flex",
      flexDirection: "column",
      alignItems: "flex-start",
      gap: "2px",
      border: "1px solid #fb923c"
    }}>
            <span style={{
      display: "inline-block",
      width: "8px",
      height: "8px",
      borderRadius: "999px",
      background: "#fb923c"
    }} />
            <span style={{
      fontSize: "9.5px",
      color: "#666"
    }}>USD</span>
            <b style={{
      fontSize: "11px",
      fontWeight: 700,
      color: "#111"
    }}>Bal</b>
          </div>
          <div style={{
      flex: 1,
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "6px",
      display: "flex",
      flexDirection: "column",
      alignItems: "flex-start",
      gap: "2px",
      border: "1px solid transparent"
    }}>
            <span style={{
      display: "inline-block",
      width: "8px",
      height: "8px",
      borderRadius: "999px",
      background: "#a78bfa"
    }} />
            <span style={{
      fontSize: "9.5px",
      color: "#666"
    }}>USDC</span>
            <b style={{
      fontSize: "11px",
      fontWeight: 700,
      color: "#111"
    }}>0xA1</b>
          </div>
          <div style={{
      flex: 1,
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "6px",
      display: "flex",
      flexDirection: "column",
      alignItems: "flex-start",
      gap: "2px",
      border: "1px solid transparent"
    }}>
            <span style={{
      display: "inline-block",
      width: "8px",
      height: "8px",
      borderRadius: "999px",
      background: "#60a5fa"
    }} />
            <span style={{
      fontSize: "9.5px",
      color: "#666"
    }}>Bank</span>
            <b style={{
      fontSize: "11px",
      fontWeight: 700,
      color: "#111"
    }}>Chase</b>
          </div>
        </div>
        <PhoneCTAPrimary>Send $45</PhoneCTAPrimary>
      </PhoneShell>;
  };
  const Mock_merchantQR = () => {
    const qrCells = [[1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1], [1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1], [1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0], [0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1], [1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1], [1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0], [1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0], [1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1], [1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0], [1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0], [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1]];
    const m = 4;
    return <PhoneShell>
        <PhoneHead title="Scan to pay" />
        <div style={{
      display: "flex",
      alignItems: "center",
      justifyContent: "center",
      padding: "6px 0"
    }}>
          <div style={{
      background: "#fff",
      padding: "7px",
      borderRadius: "6px",
      border: "1px solid #e5e7eb",
      display: "inline-block"
    }}>
            <svg width={m * 21} height={m * 21} viewBox={`0 0 ${m * 21} ${m * 21}`} xmlns="http://www.w3.org/2000/svg">
              {qrCells.map((row, y) => <g key={y}>
                  {row.map((cell, x) => cell ? <rect key={x} x={x * m} y={y * m} width={m} height={m} fill="#111" /> : null)}
                </g>)}
            </svg>
          </div>
        </div>
        <div style={{
      display: "grid",
      gridTemplateColumns: "26px 1fr",
      gap: "8px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "7px 9px"
    }}>
          <span style={{
      width: "22px",
      height: "22px",
      borderRadius: "999px",
      background: "#10b981",
      color: "#fff",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center",
      fontSize: "11px",
      fontWeight: 700
    }}>✓</span>
          <div>
            <b style={{
      fontSize: "11.5px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>Pacific Coffee Co.</b>
            <span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>$4.80 · USDC</span>
          </div>
        </div>
        <PhoneCTAPrimary>Pay $4.80</PhoneCTAPrimary>
      </PhoneShell>;
  };
  const Mock_embeddedWallet = () => {
    return <PhoneShell>
        <PhoneHead title="Confirm payment" />
        <BalCard label="Sushi-ya · Tokyo" amount="3,840 JPY" sub="25.60 USD · gas sponsored" bg="linear-gradient(135deg,#ea580c,#7c2d12)" />
        <div style={{
      display: "grid",
      gridTemplateColumns: "32px 1fr",
      gap: "10px",
      alignItems: "center",
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "9px 10px"
    }}>
          <div style={{
      width: "28px",
      height: "28px",
      borderRadius: "999px",
      background: "#111",
      color: "#fff",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center",
      fontSize: "12px",
      fontWeight: 700
    }}>ID</div>
          <div>
            <b style={{
      fontSize: "12px",
      fontWeight: 700,
      color: "#111",
      display: "block"
    }}>Touch ID</b>
            <span style={{
      fontSize: "9.5px",
      color: "#888",
      display: "block"
    }}>Confirm with passkey</span>
          </div>
        </div>
        <div style={{
      display: "flex",
      gap: "4px"
    }}>
          <div style={{
      flex: 1,
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "6px",
      display: "flex",
      flexDirection: "column",
      gap: "2px"
    }}>
            <span style={{
      fontSize: "9.5px",
      color: "#666"
    }}>Session</span>
            <b style={{
      fontSize: "11px",
      fontWeight: 700,
      color: "#111"
    }}>30 days</b>
          </div>
          <div style={{
      flex: 1,
      background: "#f5f5f7",
      borderRadius: "8px",
      padding: "6px",
      display: "flex",
      flexDirection: "column",
      gap: "2px"
    }}>
            <span style={{
      fontSize: "9.5px",
      color: "#666"
    }}>Cap</span>
            <b style={{
      fontSize: "11px",
      fontWeight: 700,
      color: "#111"
    }}>$200</b>
          </div>
        </div>
      </PhoneShell>;
  };
  const PRODUCTS = [{
    id: "accounts",
    label: "Dollar accounts",
    panel: {
      from: "#3b82f6",
      to: "#1e3a8a"
    },
    cases: [{
      id: "neobanks",
      icon: "wallet",
      title: "Neobanks & wallets",
      body: "Issue dollar-denominated accounts users can fund, hold, and withdraw."
    }, {
      id: "creators",
      icon: "users",
      title: "Creator earnings",
      body: "Give creators a global USD account that consolidates payouts and audience tips in one balance."
    }, {
      id: "marketplace-seller",
      icon: "store",
      title: "Seller balances",
      body: "Let marketplace sellers collect proceeds and cash out through bank or card rails locally."
    }, {
      id: "gig",
      icon: "car",
      title: "Gig and on-demand pay",
      body: "Pay gig workers into dollar accounts they can spend or withdraw at home."
    }]
  }, {
    id: "payouts",
    label: "Payouts & B2B",
    panel: {
      from: "#7c3aed",
      to: "#3b0764"
    },
    cases: [{
      id: "payroll",
      icon: "users",
      title: "Contractor payroll",
      body: "Run contractor payroll in USD with one batch and one approval. Multi-currency coming soon."
    }, {
      id: "supplier",
      icon: "building-2",
      title: "Supplier settlement",
      body: "Replace correspondent banking with 24/7 stablecoin rails. Pay vendors any day, any hour."
    }, {
      id: "splits",
      icon: "split",
      title: "Programmable splits",
      body: "Settle a single payment across seller, platform, and tax recipients in one call."
    }, {
      id: "refunds",
      icon: "receipt",
      title: "Refunds and rebates",
      body: "Push refunds back to the original card, bank, or wallet within seconds."
    }]
  }, {
    id: "ramps",
    label: "On- & off-ramps",
    panel: {
      from: "#0ea5e9",
      to: "#0c4a6e"
    },
    cases: [{
      id: "card-onramp",
      icon: "banknote",
      title: "Cash on-ramps",
      body: "Accept cash at 50,000+ retail locations and settle into USDC."
    }, {
      id: "cash-offramp",
      icon: "banknote",
      title: "Cash off-ramp",
      body: "Withdraw to a US bank account via ACH. Cash pickup at retail locations coming soon."
    }, {
      id: "bank-rails",
      icon: "landmark",
      title: "Local bank rails",
      body: "ACH in and out, settled into stablecoins. SEPA, PIX, UPI, and additional rails coming soon."
    }, {
      id: "kyc",
      icon: "scan-line",
      title: "Identity & compliance",
      body: "KYC, sanctions, and travel-rule checks run per corridor with onchain audit trails."
    }]
  }, {
    id: "rewards",
    label: "Rewards & loyalty",
    panel: {
      from: "#10b981",
      to: "#064e3b"
    },
    cases: [{
      id: "user-drops",
      icon: "gift",
      title: "User reward drops",
      body: "Drop USDC or BTC into wallets directly: no card networks, no breakage, no expiry."
    }, {
      id: "cashback",
      icon: "coins",
      title: "Stablecoin cashback",
      body: "Stream cashback as stablecoin to a connected wallet on every qualifying spend."
    }, {
      id: "streaming",
      icon: "zap",
      title: "Streaming pay",
      body: "Pay creators or contributors per-second using payment channels."
    }, {
      id: "loyalty",
      icon: "trophy",
      title: "Tokenized loyalty",
      body: "Issue programmable points redeemable across merchants, brands, and partner networks."
    }]
  }, {
    id: "p2p",
    label: "Cross-border send",
    panel: {
      from: "#f97316",
      to: "#7c2d12"
    },
    cases: [{
      id: "remit",
      icon: "globe",
      title: "Remittance corridors",
      body: "Send funds from USDC to a US bank via ACH. International remittance corridors coming soon."
    }, {
      id: "p2p",
      icon: "send",
      title: "Peer-to-peer transfer",
      body: "Send to anyone by phone, email, or wallet. USD balance or USDC, in either direction."
    }, {
      id: "merchant-qr",
      icon: "qr-code",
      title: "Local merchant QR",
      body: "Scan-to-pay with USDC settlement on the back end. PIX, UPI, and additional methods coming soon."
    }, {
      id: "embedded-wallet",
      icon: "smartphone",
      title: "Non-custodial wallets",
      body: "1-click wallets with passkeys, gas sponsorship, and Smart Sessions for in-app payments."
    }]
  }];
  const MOCKS = {
    "neobanks": Mock_neobanks,
    "creators": Mock_creators,
    "marketplace-seller": Mock_marketplaceSeller,
    "gig": Mock_gig,
    "payroll": Mock_payroll,
    "supplier": Mock_supplier,
    "splits": Mock_splits,
    "refunds": Mock_refunds,
    "card-onramp": Mock_cardOnramp,
    "cash-offramp": Mock_cashOfframp,
    "bank-rails": Mock_bankRails,
    "kyc": Mock_kyc,
    "user-drops": Mock_userDrops,
    "cashback": Mock_cashback,
    "streaming": Mock_streaming,
    "loyalty": Mock_loyalty,
    "remit": Mock_remit,
    "p2p": Mock_p2p,
    "merchant-qr": Mock_merchantQR,
    "embedded-wallet": Mock_embeddedWallet
  };
  const DASH_MOCKS = new Set(["marketplace-seller", "payroll", "supplier", "splits", "refunds", "bank-rails", "user-drops", "streaming"]);
  const [tab, setTab] = useState("accounts");
  const [active, setActive] = useState({
    accounts: 0,
    payouts: 0,
    ramps: 0,
    rewards: 0,
    p2p: 0
  });
  const product = PRODUCTS.find(function (p) {
    return p.id === tab;
  });
  const activeIdx = active[tab] || 0;
  const activeCase = product.cases[activeIdx];
  const Mock = MOCKS[activeCase.id];
  const panelBg = "linear-gradient(110deg,rgba(255,255,255,0.18) 0%,transparent 22%,transparent 32%,rgba(255,255,255,0.10) 44%,transparent 60%),linear-gradient(135deg," + product.panel.from + " 0%," + product.panel.to + " 100%)";
  return <section style={{
    padding: "16px 0 64px"
  }}>
      <style>{`
        @media (max-width: 768px) {
          .lp-uc-split { grid-template-columns: 1fr !important; }
          .lp-uc-mock { justify-self: center !important; }
        }
      `}</style>
      <div style={{
    display: "grid",
    gridTemplateColumns: "auto 1fr",
    alignItems: "center",
    gap: "16px",
    marginBottom: "36px"
  }}>
        <span style={{
    fontFamily: "ui-monospace,monospace",
    fontSize: "11px",
    letterSpacing: "0.08em",
    color: fg4,
    textTransform: "uppercase",
    fontWeight: 500
  }}>
          <span style={{
    color: accent
  }}>02</span> · Use cases
        </span>
        <span style={{
    height: "1px",
    background: "linear-gradient(to right," + s1 + " 0%," + s2 + " 60%,transparent 100%)"
  }} />
      </div>

      <div style={{
    display: "flex",
    alignItems: "end",
    justifyContent: "space-between",
    marginBottom: "18px",
    gap: "24px",
    flexWrap: "wrap"
  }}>
        <h2 style={{
    fontSize: "clamp(28px, 6vw, 36px)",
    fontWeight: 700,
    letterSpacing: "-0.025em",
    color: fg1,
    lineHeight: "1.05",
    margin: 0
  }}>
          What you can ship
          <span style={{
    marginLeft: "12px",
    fontWeight: 500,
    color: fg4,
    fontSize: "20px",
    letterSpacing: "-0.01em"
  }}>Stack the primitives, ship the product.</span>
        </h2>
        <a href="/payments/overview" style={{
    width: "36px",
    height: "36px",
    borderRadius: "999px",
    display: "inline-flex",
    alignItems: "center",
    justifyContent: "center",
    color: fg4,
    border: "1px solid " + s2,
    background: bg1,
    flexShrink: 0,
    textDecoration: "none"
  }}>
          <Icon name="arrow-right" size={18} />
        </a>
      </div>

      <div style={{
    background: bg1,
    border: "1px solid " + s2,
    borderRadius: "16px",
    overflow: "hidden"
  }}>
        <div style={{
    display: "flex",
    alignItems: "center",
    gap: "4px",
    padding: "10px 14px",
    borderBottom: "1px solid " + s2,
    background: bg1,
    flexWrap: "wrap"
  }}>
          {PRODUCTS.map(function (p) {
    return <button key={p.id} onClick={function () {
      setTab(p.id);
    }} style={{
      padding: "8px 14px",
      borderRadius: "8px",
      fontSize: "13.5px",
      fontWeight: tab === p.id ? 600 : 500,
      color: tab === p.id ? fg1 : fg4,
      background: tab === p.id ? bg1 : "transparent",
      border: tab === p.id ? "1px solid " + s1 : "1px solid transparent",
      boxShadow: tab === p.id ? "0 1px 2px rgba(0,0,0,0.04)" : "none",
      cursor: "pointer",
      fontFamily: "inherit"
    }}>
                {p.label}
              </button>;
  })}
        </div>

        <div className="lp-uc-split" style={{
    display: "grid",
    gridTemplateColumns: "1fr 360px",
    gap: "24px",
    padding: "24px",
    background: bg2
  }}>
          <ul style={{
    listStyle: "none",
    margin: 0,
    padding: 0,
    display: "flex",
    flexDirection: "column",
    gap: "4px",
    alignSelf: "center"
  }}>
            {product.cases.map(function (c, i) {
    return <li key={c.id} onMouseEnter={function () {
      setActive(function (a) {
        var next = {};
        next.accounts = a.accounts;
        next.payouts = a.payouts;
        next.ramps = a.ramps;
        next.rewards = a.rewards;
        next.p2p = a.p2p;
        next[tab] = i;
        return next;
      });
    }} onClick={function () {
      setActive(function (a) {
        var next = {};
        next.accounts = a.accounts;
        next.payouts = a.payouts;
        next.ramps = a.ramps;
        next.rewards = a.rewards;
        next.p2p = a.p2p;
        next[tab] = i;
        return next;
      });
    }} style={{
      display: "grid",
      gridTemplateColumns: "auto 1fr",
      gap: "14px",
      padding: "14px 18px",
      borderRadius: "12px",
      cursor: "pointer",
      background: i === activeIdx ? bg3 : "transparent"
    }}>
                  <span style={{
      color: i === activeIdx ? accent : fg4,
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center",
      marginTop: "1px"
    }}>
                    <Icon name={c.icon} size={18} />
                  </span>
                  <div>
                    <div style={{
      fontSize: "14px",
      fontWeight: 700,
      color: fg1,
      letterSpacing: "-0.005em",
      marginBottom: "2px"
    }}>{c.title}</div>
                    <div style={{
      fontSize: "13px",
      color: fg4,
      lineHeight: 1.5
    }}>{c.body}</div>
                  </div>
                </li>;
  })}
          </ul>

          <div className="lp-uc-mock" style={{
    width: "288px",
    height: "320px",
    borderRadius: "14px",
    position: "relative",
    overflow: "hidden",
    display: "flex",
    alignItems: DASH_MOCKS.has(activeCase.id) ? "center" : "flex-start",
    justifyContent: "center",
    background: panelBg
  }}>
            <div key={tab + "-" + activeCase.id} style={{
    width: "224px",
    display: "flex",
    alignItems: "center",
    justifyContent: "center"
  }}>
              <Mock />
            </div>
          </div>
        </div>
      </div>
    </section>;
};

export const GetStarted = () => {
  const [dark, setDark] = React.useState(false);
  React.useEffect(() => {
    const update = () => setDark(document.documentElement.classList.contains("dark"));
    update();
    const obs = new MutationObserver(update);
    obs.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => obs.disconnect();
  }, []);
  const bg1 = dark ? "#1C1C1C" : "#fff";
  const fg1 = dark ? "#e5e7eb" : "#020005";
  const fg2 = dark ? "#9ca3af" : "#48526F";
  const fg4 = dark ? "#6b7280" : "#929EBA";
  const s1 = dark ? "rgba(255,255,255,0.12)" : "#C8CFE1";
  const icon = dark ? "rgba(103,13,229,0.3)" : "#EAE4F5";
  const sepLine = dark ? "linear-gradient(to right, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.08) 60%, transparent 100%)" : "linear-gradient(to right, #C8CFE1 0%, #DFE3F0 60%, transparent 100%)";
  return <section style={{
    padding: "64px 0"
  }}>
      <div style={{
    display: "grid",
    gridTemplateColumns: "auto 1fr",
    alignItems: "center",
    gap: "16px",
    marginBottom: "36px"
  }}>
        <span style={{
    fontFamily: "ui-monospace, monospace",
    fontSize: "11px",
    letterSpacing: "0.08em",
    color: fg4,
    textTransform: "uppercase",
    fontWeight: "500"
  }}>
          <span style={{
    color: "#670DE5"
  }}>03</span> · Get started
        </span>
        <span style={{
    height: "1px",
    background: sepLine
  }} />
      </div>

      <div style={{
    display: "flex",
    alignItems: "end",
    justifyContent: "space-between",
    marginBottom: "28px",
    gap: "24px"
  }}>
        <div>
          <h2 style={{
    fontSize: "clamp(28px, 6vw, 36px)",
    fontWeight: "700",
    letterSpacing: "-0.025em",
    color: fg1,
    lineHeight: "1.05",
    margin: "0 0 12px"
  }}>Pick a path. Ship in a day.</h2>
          <p style={{
    fontSize: "16px",
    color: fg2,
    maxWidth: "64ch",
    margin: 0,
    lineHeight: "1.55"
  }}>
            Three guided walkthroughs go from sandbox key to first transaction. Each mirrors a real product flow you can clone.
          </p>
        </div>
      </div>

      <div style={{
    display: "grid",
    gridTemplateColumns: "repeat(auto-fit, minmax(240px, 1fr))",
    gap: "14px"
  }}>
        {[{
    num: "01",
    icon: "terminal",
    title: "Send your first transfer",
    desc: "Get an API key, create a sandbox wallet, and move USDC across borders in five minutes.",
    time: "5 min walkthrough",
    href: "/payments/guides/customer-onboarding"
  }, {
    num: "02",
    icon: "landmark",
    title: "On-ramp from cash",
    desc: "Issue a one-time deposit code, accept cash at a retail location, and settle USDC into a custodial wallet.",
    time: "8 min walkthrough",
    href: "/payments/guides/fiat-to-crypto"
  }, {
    num: "03",
    icon: "handshake",
    title: "Send from a wallet",
    desc: "Move USDC out of a custodial wallet to any wallet or onchain address, with bank and cash payouts in early access.",
    time: "10 min walkthrough",
    href: "/payments/guides/crypto-to-fiat"
  }].map(function (c, idx) {
    return <a key={idx} href={c.href} style={{
      display: "flex",
      flexDirection: "column",
      padding: "22px",
      background: bg1,
      border: "1px solid " + s1,
      borderRadius: "14px",
      textDecoration: "none",
      color: "inherit",
      position: "relative",
      minHeight: "180px",
      transition: "border-color 140ms ease, box-shadow 140ms ease"
    }} onMouseEnter={function (e) {
      e.currentTarget.style.borderColor = "#670DE5";
      e.currentTarget.style.boxShadow = "0 4px 10px -2px rgba(19,19,20,0.08)";
    }} onMouseLeave={function (e) {
      e.currentTarget.style.borderColor = s1;
      e.currentTarget.style.boxShadow = "none";
    }}>
              <span style={{
      position: "absolute",
      top: "20px",
      right: "20px",
      width: "18px",
      height: "18px",
      color: fg4
    }}>
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M7 7h10v10" /><path d="M7 17 17 7" /></svg>
              </span>
              <span style={{
      width: "38px",
      height: "38px",
      borderRadius: "9px",
      background: icon,
      color: "#670DE5",
      display: "inline-flex",
      alignItems: "center",
      justifyContent: "center",
      marginBottom: "16px"
    }}>
                {c.icon === "terminal" && <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M7 11l2-2-2-2" /><path d="M11 13h4" /><rect width="20" height="16" x="2" y="4" rx="2" /></svg>}
                {c.icon === "landmark" && <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M3 22h18" /><path d="M6 18V7" /><path d="M10 18V7" /><path d="M14 18V7" /><path d="M18 18V7" /><path d="M12 2 2 7h20z" /></svg>}
                {c.icon === "handshake" && <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="m11 17 2 2a1 1 0 1 0 3-3" /><path d="m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4" /><path d="m21 3 1 11h-1" /><path d="M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3" /><path d="M3 4h8" /></svg>}
              </span>
              <div style={{
      fontFamily: "ui-monospace, monospace",
      fontSize: "11px",
      color: fg4,
      fontWeight: "500",
      marginBottom: "6px",
      letterSpacing: "0.04em"
    }}>{c.num} / Quickstart</div>
              <h3 style={{
      fontSize: "17px",
      fontWeight: "700",
      margin: "0 0 4px",
      color: fg1,
      letterSpacing: "-0.01em"
    }}>{c.title}</h3>
              <p style={{
      fontSize: "13px",
      color: fg4,
      margin: 0,
      lineHeight: "1.5"
    }}>{c.desc}</p>
              <div style={{
      marginTop: "auto",
      paddingTop: "16px",
      display: "flex",
      alignItems: "center",
      gap: "6px",
      fontSize: "12px",
      color: "#670DE5",
      fontWeight: "600",
      letterSpacing: "0.01em",
      fontFamily: "ui-monospace, monospace"
    }}>
                {c.time}
                <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="m9 18 6-6-6-6" /></svg>
              </div>
            </a>;
  })}
      </div>
    </section>;
};

export const Hero = () => {
  const RAILS = [{
    icon: "building-columns",
    name: "ACH deposit",
    takes: 1200
  }, {
    icon: "wallet",
    name: "USD account",
    takes: 900
  }, {
    icon: "polygon",
    name: "Onchain settlement",
    takes: 1100
  }, {
    icon: "coins",
    name: "Stablecoin transfer",
    takes: 800
  }, {
    icon: "building-columns",
    name: "Local payout",
    takes: 1000
  }];
  const [dark, setDark] = React.useState(false);
  const [step, setStep] = React.useState(0);
  const [running, setRunning] = React.useState(false);
  const [hasRun, setHasRun] = React.useState(false);
  const [nudge, setNudge] = React.useState(false);
  const timerRef = React.useRef(null);
  React.useEffect(() => {
    const update = () => setDark(document.documentElement.classList.contains("dark"));
    update();
    const obs = new MutationObserver(update);
    obs.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => obs.disconnect();
  }, []);
  React.useEffect(() => {
    if (!running) return;
    if (step >= RAILS.length) {
      timerRef.current = setTimeout(() => {
        setRunning(false);
        setHasRun(true);
      }, 600);
    } else {
      timerRef.current = setTimeout(() => setStep(function (s) {
        return s + 1;
      }), RAILS[step].takes);
    }
    return () => clearTimeout(timerRef.current);
  }, [step, running]);
  React.useEffect(() => {
    if (running || hasRun) {
      setNudge(false);
      return;
    }
    const t = setTimeout(() => setNudge(true), 1500);
    return () => clearTimeout(t);
  }, [running, hasRun]);
  const replay = () => {
    if (running) return;
    clearTimeout(timerRef.current);
    setStep(0);
    setRunning(true);
    setNudge(false);
  };
  const completedCount = running || hasRun ? Math.min(step, RAILS.length) : 0;
  const fillPct = completedCount / RAILS.length * 100;
  const settled = !running && hasRun;
  const getIcon = (name, size) => {
    const s = size || 18;
    const p = {
      width: s,
      height: s,
      viewBox: "0 0 24 24",
      fill: "none",
      stroke: "currentColor",
      strokeWidth: "1.6",
      strokeLinecap: "round",
      strokeLinejoin: "round",
      style: {
        display: "inline-block",
        verticalAlign: "middle",
        flexShrink: 0
      }
    };
    if (name === "landmark") return <svg {...p}><path d="M3 22h18" /><path d="M6 18V7" /><path d="M10 18V7" /><path d="M14 18V7" /><path d="M18 18V7" /><path d="M12 2 2 7h20z" /></svg>;
    if (name === "building-columns") return <svg {...p}><path d="M3 22h18" /><path d="M6 18v-7" /><path d="M10 18v-7" /><path d="M14 18v-7" /><path d="M18 18v-7" /><polygon points="12 2 20 7 4 7" /></svg>;
    if (name === "wallet") return <svg {...p}><path d="M17 14h.01" /><path d="M3 5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z" /></svg>;
    if (name === "coins") return <svg {...p}><circle cx="8" cy="8" r="6" /><path d="M18.09 10.37A6 6 0 1 1 10.34 18" /><path d="M7 6h1v4" /><path d="m16.71 13.88.7.71-2.82 2.82" /></svg>;
    if (name === "route") return <svg {...p}><circle cx="6" cy="19" r="3" /><path d="M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15" /><circle cx="18" cy="5" r="3" /></svg>;
    if (name === "polygon") return <svg width={s} height={s} viewBox="0 0 179 161" fill="currentColor" style={{
      display: "inline-block",
      verticalAlign: "middle",
      flexShrink: 0
    }}><path d="M128.325 0L78.0921 28.8496V118.891L50.3761 134.957L22.4907 118.878V86.7314L50.3761 70.808L68.3062 81.2064V55.1974L50.2198 44.9293L0 74.1048V131.817L50.3892 160.836L100.609 131.817V41.789L128.494 25.7093L156.367 41.789V73.792L128.494 90.0151L110.408 79.5255V105.404L128.325 115.737L179.04 86.8877V28.8496L128.325 0Z" /></svg>;
    if (name === "check") return <svg {...p} strokeWidth="2.5"><polyline points="20 6 9 17 4 12" /></svg>;
    if (name === "arrow-up-right") return <svg {...p} strokeWidth="2"><path d="M7 7h10v10" /><path d="M7 17 17 7" /></svg>;
    if (name === "arrow-right") return <svg {...p} strokeWidth="2"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg>;
    if (name === "book-open") return <svg {...p} strokeWidth="2"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" /></svg>;
    return null;
  };
  const fg1 = dark ? "#e5e7eb" : "#020005";
  const fg2 = dark ? "#9ca3af" : "#48526F";
  const s1 = dark ? "rgba(255,255,255,0.12)" : "#C8CFE1";
  const bg1 = dark ? "#1C1C1C" : "#fff";
  const sfCls = "lp-sf-card" + (running ? " is-running" : hasRun ? " is-settled" : " is-idle");
  return <section className="lp-hero-section" style={{
    padding: "32px 0 64px"
  }}>
      <style>{`
        @keyframes lp-pulse {
          0%, 100% { box-shadow: 0 0 0 3px rgba(103,13,229,0.2); }
          50%       { box-shadow: 0 0 0 7px rgba(103,13,229,0.05); }
        }
        @keyframes lp-spin { to { transform: rotate(360deg); } }
        @keyframes lp-sf-result-flash {
          0%   { box-shadow: 0 0 0 0 rgba(103,13,229,0); }
          35%  { box-shadow: 0 0 0 5px rgba(103,13,229,0.18); }
          100% { box-shadow: 0 0 0 0 rgba(103,13,229,0); }
        }
        @keyframes lp-sf-icon-halo {
          0%   { opacity: 0; transform: scale(1); }
          25%  { opacity: 0.55; transform: scale(1); }
          100% { opacity: 0; transform: scale(1.55); }
        }
        @keyframes lp-sf-send-nudge {
          0%, 65%, 100% { transform: translateY(0); }
          72%           { transform: translateY(-2px); }
          82%           { transform: translateY(0); }
        }
        @keyframes lp-sf-send-halo {
          0%   { opacity: 0; transform: scale(1); }
          20%  { opacity: 0.45; }
          60%  { opacity: 0; transform: scale(1.25); }
          100% { opacity: 0; transform: scale(1.25); }
        }
        @font-face {
          font-family: 'PolySans Neutral';
          src: url('/fonts/PolySans-Neutral.woff2') format('woff2');
          font-weight: 400; font-style: normal; font-display: swap;
        }

        .lp-sf-card {
          position: relative;
          border-radius: 18px;
          border: 1px solid #DFE3F0;
          background: radial-gradient(120% 100% at 100% 0%, rgba(149,81,245,0.05) 0%, transparent 55%), #fff;
          padding: 22px;
          overflow: hidden;
          display: flex;
          flex-direction: column;
          min-height: 460px;
        }
        .lp-sf-card::before {
          content: "";
          position: absolute; inset: 0;
          background-image:
            linear-gradient(rgba(103,13,229,0.025) 1px, transparent 1px),
            linear-gradient(90deg, rgba(103,13,229,0.025) 1px, transparent 1px);
          background-size: 22px 22px;
          background-position: -1px -1px;
          pointer-events: none;
          mask-image: radial-gradient(80% 80% at 50% 30%, #000 30%, transparent 90%);
          -webkit-mask-image: radial-gradient(80% 80% at 50% 30%, #000 30%, transparent 90%);
        }

        .lp-sf-head {
          position: relative; z-index: 2;
          display: flex; align-items: center; justify-content: space-between;
          margin-bottom: 18px;
          flex-shrink: 0;
        }

        .lp-sf-send {
          position: relative;
          display: inline-flex; align-items: center; gap: 5px;
          cursor: pointer;
          background: #090624;
          color: #fff;
          border: 1px solid transparent;
          font-family: inherit;
          font-size: 11px; font-weight: 700;
          padding: 5px 9px;
          border-radius: 999px;
          box-shadow: 0 1px 3px rgba(9,6,36,0.25);
          transition: background 160ms ease, opacity 160ms ease, transform 120ms ease;
          white-space: nowrap;
          line-height: 1.4;
        }
        .lp-sf-send:hover:not(:disabled) { background: #2A2640; transform: translateY(-1px); }
        .lp-sf-send:disabled { cursor: default; opacity: 0.85; background: #3a345a; box-shadow: none; }
        .lp-sf-send.is-nudging { animation: lp-sf-send-nudge 2.2s ease-out 2; }
        .lp-sf-send.is-nudging::after {
          content: "";
          position: absolute; inset: -3px;
          border-radius: 999px;
          border: 1.5px solid #670DE5;
          opacity: 0;
          animation: lp-sf-send-halo 2.2s ease-out 2;
          pointer-events: none;
        }

        .lp-sf-meta {
          font-family: ui-monospace, "SF Mono", Menlo, monospace;
          font-size: 11px;
          color: #647090;
        }
        .lp-sf-meta b { color: #020005; font-weight: 600; }

        .lp-sf-rails {
          position: relative; z-index: 1;
          display: flex; flex-direction: column;
          gap: 10px;
          flex: 1;
        }

        .lp-sf-track {
          position: absolute;
          left: 32px; top: 32px; bottom: 32px;
          width: 3px;
          background: #5A6B91;
          z-index: 0;
          border-radius: 2px;
          overflow: hidden;
        }
        .lp-sf-fill {
          position: absolute; top: 0; left: 0; width: 100%;
          background: #670DE5;
          border-radius: 2px;
          transition: height 380ms ease;
        }
        .lp-sf-card.is-settled .lp-sf-fill { background: #929EBA; }

        /* ── Responsive ── */
        .lp-hero-section { container-type: inline-size; }
        .lp-hero-grid {
          display: grid;
          grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.2fr);
          gap: 56px;
          align-items: center;
        }
        /* Hide the flow graphic when the container is narrow (not just the
           viewport), e.g. when the Assistant panel compresses the page. */
        @container (max-width: 720px) {
          .lp-hero-grid { grid-template-columns: 1fr; gap: 28px; }
          .lp-sf-card { display: none; }
        }
        @media (max-width: 768px) {
          .lp-hero-grid {
            grid-template-columns: 1fr;
            gap: 32px;
          }
          .lp-hero-text {
            padding: 8px 0 0;
          }
          .lp-sf-card {
            min-height: 0;
          }
          .lp-sf-foot {
            grid-template-columns: 1fr;
          }
          .lp-sf-stats {
            grid-template-columns: repeat(2, minmax(0, 1fr));
          }
        }

        .lp-rail {
          position: relative;
          display: grid;
          grid-template-columns: 36px 1fr auto;
          align-items: center;
          gap: 14px;
          padding: 14px 16px;
          background: #fff;
          border: 1px solid #DFE3F0;
          border-radius: 12px;
          transition: border-color 200ms ease, box-shadow 200ms ease;
        }
        .lp-rail.active { border-color: rgba(103,13,229,0.35); }

        .lp-rail-icon {
          width: 36px; height: 36px;
          border-radius: 9px;
          background: #EAE4F5;
          color: #670DE5;
          display: inline-flex; align-items: center; justify-content: center;
          transition: background 200ms ease, color 200ms ease;
          flex-shrink: 0;
        }
        .lp-rail.active .lp-rail-icon { background: #670DE5; color: #fff; }
        .lp-rail-icon.is-polygon { background: rgba(130,71,229,0.10); color: #8247E5; }
        .lp-rail.active .lp-rail-icon.is-polygon { background: #8247E5; color: #fff; }
        .lp-sf-card.is-settled .lp-rail.complete .lp-rail-icon { background: #F0EFF2; color: #929EBA; }

        .lp-rail-name { font-size: 13px; font-weight: 700; color: #020005; }

        .lp-rail-status {
          display: inline-flex; align-items: center; gap: 6px;
          font-family: ui-monospace, "SF Mono", Menlo, monospace;
          font-size: 11px; font-weight: 600;
          padding: 3px 8px;
          border-radius: 999px;
          background: #F0EFF2;
          color: #929EBA;
          white-space: nowrap;
        }
        .lp-sf-card.is-idle .lp-rail-status { display: none; }
        .lp-rail.complete .lp-rail-status { background: #E8F5E8; color: #007D00; }
        .lp-rail.active .lp-rail-status   { background: #EAE4F5; color: #670DE5; }
        .lp-sf-card.is-settled .lp-rail.complete .lp-rail-status { background: #F0EFF2; color: #929EBA; }

        .lp-spinner {
          display: inline-block;
          width: 10px; height: 10px;
          border: 1.5px solid currentColor;
          border-right-color: transparent;
          border-radius: 50%;
          animation: lp-spin 0.7s linear infinite;
          flex-shrink: 0;
        }

        .lp-sf-foot {
          position: relative; z-index: 2;
          display: grid;
          grid-template-columns: minmax(0, auto) minmax(0, 1fr);
          gap: 18px;
          align-items: stretch;
          margin-top: 14px;
          padding-top: 14px;
          border-top: 1px solid #DFE3F0;
          flex-shrink: 0;
        }
        @media (max-width: 1280px) {
          .lp-sf-foot { grid-template-columns: 1fr; }
        }

        .lp-sf-result {
          display: flex; align-items: center; gap: 12px;
          padding: 12px 16px;
          background: linear-gradient(180deg, #fff 0%, #F6F3FB 100%);
          border: 1px solid #DFE3F0;
          border-radius: 12px;
          min-width: 0;
          transition: opacity 400ms ease;
        }
        .lp-sf-card:not(.is-settled) .lp-sf-result { opacity: 0.55; }
        .lp-sf-card.is-settled .lp-sf-result { opacity: 1; animation: lp-sf-result-flash 1.8s ease-out 1; }

        .lp-sf-result-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
        .lp-sf-result-label {
          font-family: ui-monospace, "SF Mono", Menlo, monospace;
          font-size: 10px; font-weight: 600;
          text-transform: uppercase; letter-spacing: 0.08em; color: #647090;
        }
        .lp-sf-result-amount {
          font-size: 18px; font-weight: 700; color: #020005;
          line-height: 1.1; letter-spacing: -0.01em;
          font-variant-numeric: tabular-nums;
        }
        .lp-ccy { color: #670DE5; font-weight: 600; font-size: 13px; margin-left: 2px; }

        .lp-sf-stats {
          margin: 0;
          display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 12px;
          align-items: center;
        }
        .lp-sf-stats > div {
          display: flex; flex-direction: column; gap: 2px;
          text-align: center; align-items: center; min-width: 0;
        }
        .lp-sf-stats dt {
          font-family: ui-monospace, "SF Mono", Menlo, monospace;
          font-size: 10px; font-weight: 600;
          text-transform: uppercase; letter-spacing: 0.08em;
          color: #929EBA; margin: 0;
        }
        .lp-sf-stats dd {
          margin: 0; font-size: 15px; font-weight: 700;
          color: #020005; letter-spacing: -0.01em;
          font-variant-numeric: tabular-nums;
          transition: color 300ms ease;
        }
        .lp-sf-card:not(.is-settled) .lp-sf-stats dd { color: #929EBA; }

        /* ───────────── Dark mode ───────────── */
        html.dark .lp-sf-card {
          background:
            radial-gradient(120% 100% at 100% 0%, rgba(149,81,245,0.10) 0%, transparent 55%),
            #131218;
          border-color: rgba(255,255,255,0.08);
        }
        html.dark .lp-sf-card::before {
          background-image:
            linear-gradient(rgba(149,81,245,0.06) 1px, transparent 1px),
            linear-gradient(90deg, rgba(149,81,245,0.06) 1px, transparent 1px);
        }

        html.dark .lp-sf-meta { color: #9CA3AF; }
        html.dark .lp-sf-meta b { color: #E5E7EB; }

        html.dark .lp-sf-send { background: #2A2640; color: #fff; }
        html.dark .lp-sf-send:hover:not(:disabled) { background: #3D3859; }
        html.dark .lp-sf-send:disabled { background: #1F1B33; }

        html.dark .lp-sf-track { background: rgba(255,255,255,0.20); }
        html.dark .lp-sf-card.is-settled .lp-sf-fill { background: rgba(255,255,255,0.20); }

        html.dark .lp-rail {
          background: #1A1922;
          border-color: rgba(255,255,255,0.08);
        }
        html.dark .lp-rail.active { border-color: rgba(149,81,245,0.5); }

        html.dark .lp-rail-icon {
          background: rgba(149,81,245,0.16);
          color: #A78BFA;
        }
        html.dark .lp-rail.active .lp-rail-icon { background: #9551F5; color: #fff; }
        html.dark .lp-rail-icon.is-polygon { background: rgba(149,81,245,0.16); color: #A78BFA; }
        html.dark .lp-rail.active .lp-rail-icon.is-polygon { background: #9551F5; color: #fff; }
        html.dark .lp-sf-card.is-settled .lp-rail.complete .lp-rail-icon {
          background: rgba(255,255,255,0.06);
          color: #6B7280;
        }

        html.dark .lp-rail-name { color: #E5E7EB; }

        html.dark .lp-rail-status {
          background: rgba(255,255,255,0.06);
          color: #6B7280;
        }
        html.dark .lp-rail.complete .lp-rail-status {
          background: rgba(34,197,94,0.16);
          color: #4ADE80;
        }
        html.dark .lp-rail.active .lp-rail-status {
          background: rgba(149,81,245,0.16);
          color: #A78BFA;
        }
        html.dark .lp-sf-card.is-settled .lp-rail.complete .lp-rail-status {
          background: rgba(255,255,255,0.06);
          color: #6B7280;
        }

        html.dark .lp-sf-foot { border-top-color: rgba(255,255,255,0.08); }

        html.dark .lp-sf-result {
          background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(149,81,245,0.08) 100%);
          border-color: rgba(255,255,255,0.08);
        }
        html.dark .lp-sf-result-label { color: #9CA3AF; }
        html.dark .lp-sf-result-amount { color: #E5E7EB; }
        html.dark .lp-ccy { color: #A78BFA; }

        html.dark .lp-sf-stats dt { color: #6B7280; }
        html.dark .lp-sf-stats dd { color: #E5E7EB; }
        html.dark .lp-sf-card:not(.is-settled) .lp-sf-stats dd { color: #6B7280; }
      `}</style>

      <div className="lp-hero-grid">

        <div className="lp-hero-text" style={{
    padding: "16px 0"
  }}>
          <h1 style={{
    fontSize: "clamp(40px,5vw,64px)",
    lineHeight: "0.98",
    letterSpacing: "-0.035em",
    fontWeight: "700",
    margin: "0 0 24px",
    color: fg1
  }}>
            One open stack to move money{" "}
            <span style={{
    background: "linear-gradient(180deg, #670DE5 0%, #9551F5 100%)",
    WebkitBackgroundClip: "text",
    backgroundClip: "text",
    color: "transparent"
  }}>
              globally, in seconds.
            </span>
          </h1>

          <div style={{
    fontSize: "18px",
    lineHeight: "1.5",
    color: fg2,
    maxWidth: "50ch",
    margin: "0 0 24px"
  }}>
            Fiat access, wallets, compliance, routing, and settlement, behind one API. Built on open infrastructure optimized for payments. Use all of it, or only the parts you need.
          </div>

          <div style={{
    display: "flex",
    alignItems: "center",
    gap: "10px",
    flexWrap: "wrap"
  }}>
            <a href="/payments/get-started" style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "6px",
    height: "44px",
    padding: "0 20px",
    borderRadius: "8px",
    fontSize: "14px",
    fontWeight: "600",
    background: dark ? "#fff" : "#0B0814",
    color: dark ? "#0B0814" : "#fff",
    textDecoration: "none",
    transition: "background 140ms ease"
  }} onMouseEnter={function (e) {
    e.currentTarget.style.background = dark ? "#E5E7EB" : "#2A2640";
  }} onMouseLeave={function (e) {
    e.currentTarget.style.background = dark ? "#fff" : "#0B0814";
  }}>
              Start building {getIcon("arrow-right", 14)}
            </a>
            <a href="/oms/overview" style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "6px",
    height: "44px",
    padding: "0 20px",
    borderRadius: "8px",
    fontSize: "14px",
    fontWeight: "600",
    background: "transparent",
    color: fg1,
    border: "1px solid " + s1,
    textDecoration: "none",
    transition: "border-color 140ms ease, background 140ms ease"
  }} onMouseEnter={function (e) {
    e.currentTarget.style.borderColor = "#0B0814";
    e.currentTarget.style.background = "#F6F3FB";
  }} onMouseLeave={function (e) {
    e.currentTarget.style.borderColor = s1;
    e.currentTarget.style.background = "transparent";
  }}>
              {getIcon("book-open", 14)} What is OMS?
            </a>
          </div>
        </div>

        <div className={sfCls}>
          <div className="lp-sf-head">
            <button className={"lp-sf-send" + (nudge && !running ? " is-nudging" : "")} onClick={replay} disabled={running}>
              {running && <span className="lp-spinner" />}
              {running ? "Sending…" : getIcon("arrow-up-right", 12)}
              {!running && " Send"}
            </button>
            <div className="lp-sf-meta"><b>$10.00</b> · USD → MXN</div>
          </div>

          <div className="lp-sf-rails">
            <div className="lp-sf-track">
              <div className="lp-sf-fill" style={{
    height: fillPct + "%"
  }} />
            </div>
            {RAILS.map(function (r, i) {
    const status = !running && !hasRun ? "pending" : i < step ? "complete" : i === step && running ? "active" : "pending";
    const isPolygon = r.icon === "polygon";
    return <div className={"lp-rail " + status} key={r.name}>
                  <span className={"lp-rail-icon" + (isPolygon ? " is-polygon" : "")}>
                    {getIcon(r.icon, 18)}
                  </span>
                  <div className="lp-rail-body">
                    <div className="lp-rail-name">{r.name}</div>
                  </div>
                  <span className="lp-rail-status">
                    {status === "complete" && getIcon("check", 10)}
                    {status === "complete" && " done"}
                    {status === "active" && <span className="lp-spinner" />}
                    {status === "active" && " processing"}
                    {status === "pending" && (running || hasRun) && "queued"}
                  </span>
                </div>;
  })}
          </div>

          <div className="lp-sf-foot">
            <div className="lp-sf-result">
              <div className="lp-sf-result-body">
                <div className="lp-sf-result-label">Transfer received</div>
                <div className="lp-sf-result-amount">
                  171.54 <span className="lp-ccy">MXN</span>
                </div>
              </div>
            </div>
            <dl className="lp-sf-stats">
              <div><dt>Settlement</dt><dd>Polygon</dd></div>
              <div><dt>Onchain settlement</dt><dd>~5s</dd></div>
            </dl>
          </div>
        </div>

      </div>
    </section>;
};

<style>
  {`
    @keyframes lp-pulse {
      0%, 100% { box-shadow: 0 0 0 3px rgba(103,13,229,0.2); }
      50%       { box-shadow: 0 0 0 6px rgba(103,13,229,0.08); }
    }
    @keyframes lp-pulse-green {
      0%, 100% { opacity: 1; }
      50%       { opacity: 0.4; }
    }
    @keyframes lp-spin {
      to { transform: rotate(360deg); }
    }
    @keyframes lp-float {
      0%, 100% { transform: translateY(0px); }
      50%       { transform: translateY(-12px); }
    }
    `}
</style>

<div style={{ maxWidth: "1100px", margin: "0 auto", padding: "0 clamp(16px, 4vw, 32px)" }}>
  <Hero />

  <Capabilities />

  <UseCases />

  <GetStarted />

  <ApiShowcase />

  <FeatureBand />

  <Customers />

  <Resources />
</div>
