const { Annotate: A2, Eyebrow: E2, Button: B2, Card: C2, Tag: T2, SectionHeader, CTABand, ChartFrame: CF, VisionFrame, GlobalDelivery } = window.SoftVerxDesignSystem_6fd95b; const HD = window.SX_DATA; function HomePartners({ mobile }) { return (

Partnerships

); } function HomePractices({ mobile }) { return (
{HD.practiceGroups.map((g) => (

{g.label}

{g.blurb}

))}

Every practice, with what it has shipped

); } function HomePipeline({ mobile }) { return (
); } function HomeReach({ mobile }) { return (
{!mobile && Open the full record}

{mobile ? "The full record: spine, map and table" : `The full record: ${HD.projects.length} programmes, with a delivery spine, map and table view`}

); } function HomeProof({ mobile }) { const p = HD.projectsBySlug.lesco; return (

“The platform had to keep 7.5 million consumer records consistent across three IT centres and eight operation circles. That constraint, not the billing logic, is what the system was designed around.”

Customer information and billing programme, Lahore Electric Supply Company

7.5m consumers 8 operation circles meter-to-cash
Read the case study {!mobile && More programmes}
); } /* The nine runs, in the order the run library holds them. Each card opens the run itself rather than the catalogue entry — the drawing is the argument. */ const RAIL = [ { run: "workflow-agents", sol: "workflow-agents", line: "Mailbox, ERP and ticketing wired together by agents that decide and act." }, { run: "doc-intelligence", sol: "doc-intelligence", line: "Documents become structured records, with the pixels kept beside the number." }, { run: "mdm", sol: "mdm", line: "Network hierarchy, interval profiles, reconciliation and command in one platform." }, { run: "billing", sol: "utility-cis", line: "Reads in, bill out, payment reconciled — the full meter-to-cash cycle." }, { run: "agriculture", sol: "agriculture", line: "Probes, weather and a water balance decide irrigation, then verify it worked." }, { run: "vision", sol: "visual-inspection", line: "Cameras identify items and find defects on a line, on edge hardware." }, { run: "enercon", sol: "iot-platforms", line: "Device fleets monitored and controlled, with commands confirmed or reported failed." }, { run: "complaints", sol: "complaints", line: "Intake through resolution across every role, with returns and escalations drawn." }, { run: "archivist", sol: "doc-archivist", line: "Ask your own corpus a question and get a cited answer, or a refusal." }, ]; function HomeSolutions({ mobile }) { const rail = RAIL.map((r) => ({ ...r, s: HD.solutionsById[r.sol] })).filter((r) => r.s); const ref = React.useRef(null); const nudge = (dir) => ref.current?.scrollBy({ left: dir * 320, behavior: "smooth" }); /* One card every two seconds, wrapping at the end. Pauses while the pointer is on the rail or the visitor is scrolling it themselves. */ React.useEffect(() => { const el = ref.current; if (!el || window.matchMedia("(prefers-reduced-motion: reduce)").matches) return; let paused = false; const hold = () => { paused = true; }; const release = () => { paused = false; }; el.addEventListener("pointerenter", hold); el.addEventListener("pointerleave", release); el.addEventListener("pointerdown", hold); const t = setInterval(() => { if (paused) return; const card = el.firstElementChild; const step = card ? card.getBoundingClientRect().width + 14 : 280; const atEnd = el.scrollLeft + el.clientWidth >= el.scrollWidth - 8; el.scrollTo({ left: atEnd ? 0 : el.scrollLeft + step, behavior: "smooth" }); }, 2000); return () => { clearInterval(t); el.removeEventListener("pointerenter", hold); el.removeEventListener("pointerleave", release); el.removeEventListener("pointerdown", hold); }; }, []); return (
{!mobile && (
)}
{rail.map(({ run, s, line }) => (

{s.name}

{line}

open the run
))}
View catalogue Let's begin?
); } const railBtn = { appearance: "none", width: 36, height: 36, borderRadius: "var(--r-control)", border: "1px solid var(--border-strong)", background: "transparent", color: "var(--text-body)", cursor: "pointer" }; function HomeRecord({ mobile }) { return (

The full record: filters, delivery spine and map

); } function HomeIndustries({ mobile }) { return (
{HD.industries.map((ind) => ( {ind.name} ))}
); } function HomeStart({ mobile }) { return (
    {HD.engagements.map((e, i) => (
  1. {[0, 1, 2].map((k) => )} {e.terms}

    {e.name}

    {e.tagline}

    {e.outcome}

  2. ))}
Book a call Read the questions buyers ask first
); } Object.assign(window, { HomePartners, HomePractices, HomePipeline, HomeReach, HomeProof, HomeSolutions, HomeRecord, HomeIndustries, HomeStart });