/* Trust/Partners, Solutions, Infrastructure (light, responsive). */ const { Card, Badge, Button, Icon } = window.HudsonPayDesignSystem_198a48; /* Animated count-up — fires once when scrolled into view. Parses an optional prefix ($), the number (commas tolerated) and a suffix (+, B, etc). */ function CountUp({ value }) { const ref = React.useRef(null); const m = String(value).match(/^([^\d]*)([\d,]+)(.*)$/); const prefix = m ? m[1] : ""; const suffix = m ? m[3] : ""; const target = m ? parseInt(m[2].replace(/,/g, ""), 10) : 0; const [display, setDisplay] = React.useState(m ? prefix + "0" + suffix : value); React.useEffect(() => { if (!m) return; const el = ref.current; if (!el) return; const reduce = window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches; if (reduce) { setDisplay(value); return; } let done = false; const io = new IntersectionObserver((entries) => { entries.forEach((e) => { if (!e.isIntersecting || done) return; done = true; io.disconnect(); const dur = 1500; const t0 = performance.now(); const tick = (now) => { const p = Math.min(1, (now - t0) / dur); const eased = 1 - Math.pow(1 - p, 3); const cur = Math.round(target * eased); setDisplay(prefix + cur.toLocaleString("en-US") + suffix); if (p < 1) requestAnimationFrame(tick); else setDisplay(value); }; requestAnimationFrame(tick); }); }, { threshold: 0.5 }); io.observe(el); return () => io.disconnect(); }, []); return {display}; } /* ---------- SECTION 2 — Trust & Partners ---------- */ /* Two concentric starbursts spinning in opposite directions — a gear-like motif. */ function GearStack({ outer = 620, inner = 400 }) { const { Starburst } = window.HPSite; return (
); } function TrustPartners() { const { Container, Starburst, useIsMobile } = window.HPSite; const mobile = useIsMobile(); const metrics = [ { v: "190+", l: "Countries supported" }, { v: "64", l: "Currencies settled" }, { v: "$48B", l: "Annual volume" }, { v: "1,200+", l: "Enterprise clients" }, ]; const partnerCard = (name) => (
{name}
); const groups = [ { t: "Banking Partners", n: ["Citco", "Northbank", "Meridian", "Arc Trust"] }, { t: "Liquidity Providers", n: ["Lumen LP", "B2C2", "Galaxy", "Cumberland"] }, { t: "Infrastructure", n: ["Aurora", "Fireblocks", "Modulr", "Stripe"] }, { t: "Payment Networks", n: ["Visa", "Mastercard", "SWIFT", "SEPA"] }, ]; return (
{metrics.map(m => (
{m.l}
))}
{mobile ? (

Access institutional-grade over-the-counter trading with dedicated relationship managers.

In partnership with

{["Citco", "Northbank", "Clear Trust", "Modulr"].map(partnerCard)}
{partnerCard("Visa")}
) : (

Access institutional-grade over-the-counter trading with dedicated relationship managers.

In partnership with

{partnerCard("Citco")}
{partnerCard("Northbank")}
{partnerCard("Clear Trust")}
{partnerCard("Modulr")}
Trusted by forward-thinking companies
{partnerCard("Visa")}
)}
{groups.map(g => (
{g.t}
{g.n.map(name => (
{name}
))}
))}
); } /* ---------- SECTION 3 — Solutions ---------- */ function Solutions({ onPage }) { const { Container, DashChip, useIsMobile } = window.HPSite; const mobile = useIsMobile(); const items = [ { icon: "globe", t: "Global Payments", d: "Move money across 190+ countries on local rails with FX baked in.", chips: ["Local Payout", "Transparent FX"], currencies: ["USDT", "BTC", "GBP", "EUR", "USD"] }, { icon: "arrow-left-right", t: "OTC Trading", d: "Deep institutional liquidity for large fiat and stablecoin trades.", chips: ["Dedicated Desk", "Institutional Rates", "24/7 Support"] }, { icon: "credit-card", t: "Corporate Cards", d: "Spend digital assets anywhere with premium cards backed by stablecoins.", chips: ["Global Acceptance", "Real-Time Settlement", "Premium Rewards"] }, { icon: "wallet", t: "Multi-Currency Accounts", d: "Hold, receive and convert 64 currencies from one named account.", chips: ["Local IBANs", "No Lock-In"] }, { icon: "circle-dollar", t: "Stablecoin Settlement", d: "Settle in USDC/USDT with instant on/off-ramps to fiat.", chips: ["Sub-Second", "1:1 Redemption"] }, { icon: "trending-up", t: "Treasury Solutions", d: "Automate cash sweeps, hedging and yield across entities.", chips: ["Auto-Convert", "Risk Dashboards"] }, ]; const coin = { USDT: "$", BTC: "₿", GBP: "£", EUR: "€", USD: "$" }; return (

Comprehensive financial services designed for sophisticated clients

OUR SOLUTIONS

{items.map(it => (

{it.t}

{it.d}

{it.chips.map(c => {c})}
{it.currencies && (
{it.currencies.map(cur => ( {coin[cur]} {cur} ))}
)}
))}
); } /* ---------- SECTION 4 — Infrastructure ---------- */ function Infrastructure() { const { Container, Eyebrow, useIsMobile } = window.HPSite; const mobile = useIsMobile(); const rails = [ { icon: "zap", t: "Real-Time Settlement", d: "Funds finalize in seconds, not days." }, { icon: "arrow-left-right", t: "Cross-Border Transfers", d: "Local rails in every major corridor." }, { icon: "wallet", t: "Multi-Currency Support", d: "Hold and net 64 currencies natively." }, { icon: "layout-grid", t: "Enterprise APIs", d: "REST + webhooks, 99.99% uptime SLA." }, { icon: "trending-up", t: "Institutional Liquidity", d: "Aggregated depth from tier-1 LPs." }, { icon: "globe", t: "Global Payment Rails", d: "SWIFT, SEPA, ACH, FPS, PIX & more." }, ]; const steps = ["Originate", "Route", "Convert", "Settle"]; return (
Infrastructure

A single rail network connecting every market

{steps.map((s, i) => (
0{i + 1} {s}
{i < steps.length - 1 &&
} ))}
{rails.map(r => (

{r.t}

{r.d}

))}
); } Object.assign(window, { HPParts: Object.assign(window.HPParts || {}, { TrustPartners, Solutions, Infrastructure }) });