PageSourceSearch

https://pangura.ai/assets/PlatformOverview-CW_ofbIU.js

js pangura.ai collected 2026-10-05 12:22:35 UTC 31,929 bytes, 96 lines download raw bytes

1import{j as e,S as n,s as l}from"./index-DleY6KmH.js";import{S as o}from"./SiteLayout-auE5Ouky.js";import{u as c}from"./useScrollReveal-TygrEGDA.js";const d=`
2.p-hero { padding: clamp(80px, 12vw, 144px) 0 clamp(48px, 6vw, 72px); }
3.p-hero h1 { font-size: clamp(40px, 6vw, 76px); letter-spacing: -0.035em; line-height: 1.04; max-width: 18ch; text-wrap: balance; margin-top: 22px; }
4.p-hero h1 .a { color: var(--accent); }
5.p-hero .lede { margin-top: 24px; max-width: 36em; font-size: clamp(17px, 1.5vw, 21px); line-height: 1.5; color: var(--fg); font-weight: 400; letter-spacing: -0.005em; }
6.p-hero .ctas { margin-top: 36px; display: flex; gap: 12px; flex-wrap: wrap; }
7
8.pipeline-band { position: relative; border-top: 1px solid var(--border-faint); border-bottom: 1px solid var(--border-faint); background: var(--bg-section); padding: 56px 0; overflow: hidden; }
9.pipeline-band::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 80% 120% at 50% 50%, color-mix(in oklab, var(--accent) 9%, transparent) 0%, transparent 65%), linear-gradient(180deg, transparent 0%, color-mix(in oklab, var(--bg) 35%, transparent) 100%); pointer-events: none; }
10.pipeline-band::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(to right, color-mix(in oklab, var(--fg) 4%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklab, var(--fg) 4%, transparent) 1px, transparent 1px); background-size: 56px 56px; opacity: 0.35; mask-image: radial-gradient(ellipse 70% 90% at 50% 50%, #000 35%, transparent 80%); -webkit-mask-image: radial-gradient(ellipse 70% 90% at 50% 50%, #000 35%, transparent 80%); pointer-events: none; }
11.pipeline-band > .container { position: relative; z-index: 1; }
12.pipeline-svg { width: 100%; height: clamp(120px, 14vw, 180px); display: block; }
13.pipeline-svg .lbl { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; fill: var(--fg-muted); text-transform: uppercase; }
14.pipeline-svg .num { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; fill: var(--fg-dim); text-transform: uppercase; }
15.pipeline-svg .conn { stroke: var(--border); stroke-width: 1.1; fill: none; opacity: 0.65; }
16.pipeline-svg .node-circle { fill: var(--bg-card); stroke: var(--fg-muted); stroke-width: 1.2; }
17.pipeline-svg .node-circle.is-accent { stroke: var(--accent); stroke-width: 1.5; }
18/* Mobile compact stepper */
19.pipeline-mobile { display: none; }
20@media (max-width: 720px) {
21  .pipeline-band { padding: 28px 0; }
22  .pipeline-svg { display: none; }
23  .pipeline-mobile { display: grid; grid-template-columns: 1fr; gap: 14px; }
24  .pipeline-mobile .step { display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 14px; padding: 10px 14px; border: 1px solid var(--border-faint); border-radius: var(--radius); background: var(--bg-card); transition: border-color var(--tr); }
25  .pipeline-mobile .step .dot { width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--fg-muted); display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: 12px; color: var(--fg); position: relative; }
26  .pipeline-mobile .step .dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid var(--accent); opacity: 0; animation: pipeline-pulse 6s linear infinite; }
27  .pipeline-mobile .step:nth-child(1) .dot::after { animation-delay: 0s; }
28  .pipeline-mobile .step:nth-child(2) .dot::after { animation-delay: 1.2s; }
29  .pipeline-mobile .step:nth-child(3) .dot::after { animation-delay: 2.4s; }
30  .pipeline-mobile .step:nth-child(4) .dot::after { animation-delay: 3.6s; }
31  .pipeline-mobile .step:nth-child(5) .dot::after { animation-delay: 4.8s; }
32  .pipeline-mobile .step .meta { display: flex; flex-direction: column; gap: 2px; }
33  .pipeline-mobile .step .meta .num { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; color: var(--fg-dim); text-transform: uppercase; }
34  .pipeline-mobile .step .meta .lbl { font-family: var(--font-display); font-size: 16px; letter-spacing: -0.01em; color: var(--fg); }
35}
36@keyframes pipeline-pulse { 0%, 100% { opacity: 0; transform: scale(0.85); } 8% { opacity: 0.7; transform: scale(1); } 24% { opacity: 0; transform: scale(1.15); } }
37
38.layer-nav { position: sticky; top: 64px; z-index: 20; background: color-mix(in oklab, var(--bg) 85%, transparent); backdrop-filter: blur(12px) saturate(140%); -webkit-backdrop-filter: blur(12px) saturate(140%); border-bottom: 1px solid var(--border-faint); }
39.layer-nav-inner { display: flex; align-items: center; gap: 0; height: 56px; overflow-x: auto; scrollbar-width: none; }
40.layer-nav-inner::-webkit-scrollbar { display: none; }
41.layer-nav-inner a { flex: 0 0 auto; padding: 8px 16px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-muted); white-space: nowrap; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color var(--tr), border-color var(--tr); }
42.layer-nav-inner a:hover { color: var(--fg); }
43.layer-nav-inner a .num { color: var(--accent); margin-right: 8px; }
44
45.layer-section { padding: clamp(80px, 10vw, 144px) 0; border-bottom: 1px solid var(--border-faint); scroll-margin-top: 130px; }
46.layer-section.alt { background: var(--bg-section); }
47.layer-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
48@media (max-width: 980px) { .layer-grid { grid-template-columns: 1fr; gap: 48px; } }
49.layer-grid.reverse > :first-child { order: 2; }
50.layer-grid.reverse > :last-child { order: 1; }
51@media (max-width: 980px) { .layer-grid.reverse > :first-child, .layer-grid.reverse > :last-child { order: 0; } }
52
53.layer-copy .layer-eyebrow { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); margin-bottom: 20px; }
54.layer-copy h2 { font-size: clamp(30px, 4.4vw, 52px); letter-spacing: -0.03em; line-height: 1.06; margin: 0 0 22px; max-width: 14ch; text-wrap: balance; }
55.layer-copy h2 .a { color: var(--accent); }
56.layer-copy .lede { font-size: clamp(16.5px, 1.4vw, 19px); line-height: 1.55; color: var(--fg); margin: 0 0 28px; font-weight: 400; max-width: 32em; }
57.layer-copy .body { font-size: 15.5px; line-height: 1.65; color: var(--fg-muted); margin: 0 0 28px; max-width: 32em; }
58.layer-features { display: grid; gap: 0; margin-top: 24px; border-top: 1px solid var(--border-faint); }
59.layer-feature { padding: 18px 0; border-bottom: 1px solid var(--border-faint); display: grid; grid-template-columns: 28px 1fr; gap: 16px; align-items: baseline; }
60.layer-feature .ix { font-family: var(--font-mono); font-size: 10.5px; color: var(--accent); letter-spacing: 0.12em; padding-top: 3px; }
61.layer-feature .ft strong { display: block; font-size: 15.5px; font-weight: 500; color: var(--fg); margin-bottom: 4px; }
62.layer-feature .ft span { font-size: 13.5px; color: var(--fg-muted); line-height: 1.5; }
63
64.layer-vis-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; position: relative; box-shadow: var(--shadow); }
65.layer-vis-chrome { display: flex; align-items: center; gap: 8px; padding: 12px 16px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-dim); border-bottom: 1px solid var(--border-faint); }
66.layer-vis-chrome .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--fg-dim); }
67.layer-vis-chrome .live { margin-left: auto; color: var(--accent); display: flex; align-items: center; gap: 6px; }
68.layer-vis-chrome .live::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 10px var(--accent); }
69.layer-vis-body { padding: 28px; aspect-ratio: 4/3; }
70.layer-vis-body svg { width: 100%; height: 100%; display: block; }
71.lv-stroke { stroke: var(--fg-muted); stroke-width: 1.2; fill: none; }
72.lv-stroke-faint { stroke: var(--node-stroke); stroke-width: 1; fill: none; }
73.lv-stroke-accent { stroke: var(--accent); stroke-width: 1.5; fill: none; }
74.lv-fill { fill: var(--node-fill); stroke: var(--fg-muted); stroke-width: 1.2; }
75.lv-fill-accent { fill: var(--accent); }
76.lv-fill-accent-soft { fill: var(--accent); fill-opacity: 0.18; stroke: var(--accent); stroke-width: 1.3; }
77.lv-text { font-family: var(--font-mono); font-size: 8.5px; letter-spacing: 0.14em; fill: var(--fg-dim); text-transform: uppercase; }
78.lv-text-fg { fill: var(--fg); }
79.lv-text-accent { fill: var(--accent); }
80.lv-grid line { stroke: var(--grid-line); stroke-width: 1; }
81
82.trust-shortcut { padding: var(--section-pad) 0; }
83.trust-card { background: linear-gradient(135deg, var(--accent-soft) 0%, transparent 55%), var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: clamp(36px, 5vw, 56px); display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: center; }
84@media (max-width: 820px) { .trust-card { grid-template-columns: 1fr; } }
85.trust-card h2 { font-size: clamp(28px, 3.6vw, 40px); letter-spacing: -0.025em; line-height: 1.1; margin: 0 0 14px; }
86.trust-card h2 em { font-style: normal;
86 color: var(--accent); font-weight: 500; }
87.trust-card p { font-size: 16px; color: var(--fg); margin: 0; max-width: 32em; }
88.trust-cta { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
89@media (max-width: 820px) { .trust-cta { justify-content: flex-start; } }
90
91.final-cta { padding: var(--section-pad) 0; }
92.final-cta h2 { font-size: clamp(36px, 5.4vw, 64px); letter-spacing: -0.03em; line-height: 1.06; max-width: 22ch; text-wrap: balance; margin-bottom: 22px; }
93.final-cta h2 em { font-style: normal; color: var(--accent); font-weight: 500; }
94.final-cta p { font-size: clamp(17px, 1.5vw, 21px); line-height: 1.5; color: var(--fg); max-width: 38em; }
95.final-cta .ctas { margin-top: 36px; display: flex; gap: 12px; flex-wrap: wrap; }
96`,p=[{id:"data",eyebrow:"L · 01 / Data",titlePre:"Your intelligence ",titleAccent:"starting point.",lede:"Live market data, macro signals, news and economic events consolidated into one institutional workflow.",body:"No copy-paste between terminals. No spreadsheet exports. Pangura treats data as the first node in a pipeline — versioned, traceable and ready to flow into the rest of your analytical work.",features:[["Cross-asset coverage","Rates, FX, equities and credit, modelled together — not in separate silos."],["Versioned by default","Every data slice carries a timestamp and source — referenceable later in any audit trail."],["Macro and microstructure","From central-bank releases down to instrument-level events, in a single substrate."]],visTitle:"data / streams",visState:"LIVE",vis:e.jsxs("svg",{viewBox:"0 0 400 300",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,children:[e.jsxs("g",{className:"lv-grid",children:[e.jsx("line",{x1:"0",y1:"50",x2:"400",y2:"50"}),e.jsx("line",{x1:"0",y1:"100",x2:"400",y2:"100"}),e.jsx("line",{x1:"0",y1:"150",x2:"400",y2:"150"}),e.jsx("line",{x1:"0",y1:"200",x2:"400",y2:"200"}),e.jsx("line",{x1:"0",y1:"250",x2:"400",y2:"250"})]}),e.jsxs("g",{className:"lv-stroke",children:[e.jsx("path",{d:"M 10 60 L 60 40 L 110 70 L 160 50 L 210 60 L 260 35 L 310 55 L 360 30 L 390 45"}),e.jsx("path",{d:"M 10 110 L 60 130 L 110 100 L 160 115 L 210 90 L 260 120 L 310 95 L 360 110 L 390 90"})]}),e.jsx("g",{className:"lv-stroke-accent",children:e.jsx("path",{d:"M 10 160 L 60 145 L 110 175 L 160 155 L 210 170 L 260 140 L 310 160 L 360 130 L 390 150"})}),e.jsxs("g",{className:"lv-stroke",children:[e.jsx("path",{d:"M 10 210 L 60 220 L 110 195 L 160 215 L 210 200 L 260 230 L 310 210 L 360 225 L 390 215"}),e.jsx("path",{d:"M 10 260 L 60 250 L 110 270 L 160 255 L 210 265 L 260 245 L 310 260 L 360 240 L 390 255"})]}),e.jsxs("g",{children:[e.jsxs("line",{x1:"5",y1:"20",x2:"5",y2:"290",stroke:"var(--accent)",strokeWidth:"1",opacity:"0.55",children:[e.jsx("animate",{attributeName:"x1",from:"5",to:"395",dur:"4.5s",repeatCount:"indefinite"}),e.jsx("animate",{attributeName:"x2",from:"5",to:"395",dur:"4.5s",repeatCount:"indefinite"})]}),e.jsx("circle",{r:"3",cy:"160",fill:"var(--accent)",children:e.jsx("animate",{attributeName:"cx",from:"5",to:"395",dur:"4.5s",repeatCount:"indefinite"})})]}),e.jsx("text",{className:"lv-text",x:"10",y:"30",children:"RATES"}),e.jsx("text",{className:"lv-text",x:"10",y:"80",children:"FX"}),e.jsx("text",{className:"lv-text lv-text-accent",x:"10",y:"130",children:"EQUITY"}),e.jsx("text",{className:"lv-text",x:"10",y:"180",children:"CREDIT"}),e.jsx("text",{className:"lv-text",x:"10",y:"230",children:"MACRO"})]})},{id:"canvas",alt:!0,reverse:!0,eyebrow:"L · 02 / Graph Canvas",titlePre:"The analytical ",titleAccent:"pipeline builder.",lede:"Build institutional-grade analytical workflows visually. Connect data, models and decision frameworks into a repeatable, auditable pipeline.",body:"Graphs, not dashboards. Each node is an operator with a documented purpose, applicability scope and reference behaviour. Workflows are composable, versionable and shareable across desks.",features:[["Composable operators","Reuse the same components across scenarios — each documented with scope and limitations."],["Version-controlled workflows","Every change to a workflow is captured. Roll back to any prior run."],["Out-of-scope detection","Operators flag when input
96s fall outside their validated applicability range."]],visTitle:"canvas / workflow_0214",visState:"EDITING",vis:e.jsxs("svg",{viewBox:"0 0 400 300",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,children:[e.jsxs("g",{className:"lv-stroke",children:[e.jsx("path",{d:"M 60 80 L 160 80"}),e.jsx("path",{d:"M 60 200 L 160 200"}),e.jsx("path",{d:"M 160 80 L 240 140"}),e.jsx("path",{d:"M 160 200 L 240 140"})]}),e.jsxs("g",{className:"lv-stroke-accent",children:[e.jsx("path",{d:"M 240 140 L 340 80"}),e.jsx("path",{d:"M 240 140 L 340 200"})]}),e.jsx("rect",{className:"lv-fill",x:"32",y:"64",width:"32",height:"32",rx:"2"}),e.jsx("rect",{className:"lv-fill",x:"32",y:"184",width:"32",height:"32",rx:"2"}),e.jsx("rect",{className:"lv-fill",x:"132",y:"64",width:"32",height:"32",rx:"2"}),e.jsx("rect",{className:"lv-fill",x:"132",y:"184",width:"32",height:"32",rx:"2"}),e.jsx("path",{className:"lv-fill",d:"M 240 110 L 270 140 L 240 170 L 210 140 Z"}),e.jsx("rect",{className:"lv-fill-accent-soft",x:"312",y:"60",width:"48",height:"40",rx:"2"}),e.jsx("rect",{className:"lv-fill-accent-soft",x:"312",y:"180",width:"48",height:"40",rx:"2"}),e.jsxs("g",{children:[e.jsx("circle",{r:"3.5",fill:"var(--accent)",children:e.jsx("animateMotion",{dur:"3.6s",repeatCount:"indefinite",path:"M 60 80 L 160 80 L 240 140 L 336 80"})}),e.jsx("circle",{r:"3.5",fill:"var(--accent)",children:e.jsx("animateMotion",{dur:"3.6s",begin:"1.2s",repeatCount:"indefinite",path:"M 60 80 L 160 80 L 240 140 L 336 80"})}),e.jsx("circle",{r:"3.5",fill:"var(--accent)",children:e.jsx("animateMotion",{dur:"3.6s",begin:"0.6s",repeatCount:"indefinite",path:"M 60 200 L 160 200 L 240 140 L 336 200"})}),e.jsx("circle",{r:"3.5",fill:"var(--accent)",children:e.jsx("animateMotion",{dur:"3.6s",begin:"2.4s",repeatCount:"indefinite",path:"M 60 200 L 160 200 L 240 140 L 336 200"})})]}),e.jsx("text",{className:"lv-text",x:"12",y:"56",children:"DATA"}),e.jsx("text",{className:"lv-text",x:"112",y:"56",children:"MODEL"}),e.jsx("text",{className:"lv-text",x:"210",y:"100",children:"JOIN"}),e.jsx("text",{className:"lv-text lv-text-accent",x:"304",y:"56",children:"OUTPUT"})]})},{id:"society",eyebrow:"L · 03 / Society",titlePre:"The institutional ",titleAccent:"deliberation layer.",lede:"Institutions do not decide through a single oracle. They debate, dissent, vote and sometimes fail to reach consensus. Pangura brings structured institutional reasoning into the workflow.",body:"Society models structured disagreement as a first-class signal — not noise to be averaged away. Majority and minority positions are captured, attributed and routed forward into downstream analysis.",features:[["Structured dissent","Minority positions are preserved, attributed and visible — not aggregated into a single confidence score."],["Committee templates","Configure deliberation patterns for central-bank-style committees, multi-strategy fund committees and policy bodies."],["Decision attribution","Every vote linked back to the data, assumptions and reasoning that supported it."]],visTitle:"society / session_0317",visState:"DELIBERATING",vis:e.jsxs("svg",{viewBox:"0 0 400 300",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,children:[e.jsxs("g",{transform:"translate(200,150)",children:[e.jsx("circle",{r:"100",className:"lv-stroke-faint",strokeDasharray:"3 4"}),e.jsx("circle",{r:"62",className:"lv-stroke-faint",strokeDasharray:"2 4"}),e.jsx("g",{children:[[0,-100],[71,-71],[100,0],[71,71],[0,100],[-71,71],[-100,0],[-71,-71]].map(([a,i],t)=>e.jsx("circle",{cx:a,cy:i,r:"11",className:"lv-fill"},t))}),e.jsx("line",{x1:"0",y1:"-100",x2:"0",y2:"100",className:"lv-stroke"}),e.jsx("line",{x1:"-100",y1:"0",x2:"100",y2:"0",className:"lv-stroke"}),e.jsx("line",{x1:"-71",y1:"71",x2:"71",y2:"-71",className:"lv-stroke-accent"}),e.jsx("line",{x1:"71",y1:"71",x2:"-71",y2:"-71",className:"lv-stroke-faint"}),e.jsx("g",{children:[[0,-100,0],[71,-71,.8],[100,0,1.6],[71,71,2.4],[0,100,3.2],[-71,71,4],[-100,0,4.8],[-71,-71,5.6]].map(([a,i,t],s)=>e.jsx("circle",{cx:a,cy:i,r:"14",fill:"var(--accent)",opacity:"0",children:e.jsx("animate",{attributeName:"opacity",values:"0;0.55;0",keyTimes:"0;0.06;0.2",dur:"6.4s",begin:`${t}
96s`,repeatCount:"indefinite"})},s))})]}),e.jsx("text",{className:"lv-text",x:"20",y:"30",children:"DELIBERATION · 8 NODES"}),e.jsx("text",{className:"lv-text lv-text-accent",x:"20",y:"285",children:"DISSENT · LOGGED"})]})},{id:"signals",alt:!0,reverse:!0,eyebrow:"L · 04 / Signals",titlePre:"The cross-asset ",titleAccent:"signal engine.",lede:"Convert institutional reasoning into actionable signals across major asset classes, inside the same workflow as your data and audit trail.",body:"Signals are decomposable. Click any cell and trace it back to the operators, data and committee positions that produced it — no black-box scores, no orphaned outputs.",features:[["Cross-asset by design","Signals reasoned across rates, FX, equities and credit — not stitched together from separate models."],["Decomposable","Every signal traces back to inputs, operators and assumptions. No orphaned numbers."],["Refresh on demand","Re-run any signal with live data. The provenance updates with it."]],visTitle:"signals / cross_asset",visState:"READY",vis:e.jsxs("svg",{viewBox:"0 0 400 300",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,children:[e.jsxs("g",{transform:"translate(40,40)",children:[e.jsxs("g",{stroke:"var(--border)",fill:"none",children:[e.jsx("rect",{x:"0",y:"0",width:"320",height:"200"}),e.jsx("line",{x1:"80",y1:"0",x2:"80",y2:"200"}),e.jsx("line",{x1:"160",y1:"0",x2:"160",y2:"200"}),e.jsx("line",{x1:"240",y1:"0",x2:"240",y2:"200"}),e.jsx("line",{x1:"0",y1:"50",x2:"320",y2:"50"}),e.jsx("line",{x1:"0",y1:"100",x2:"320",y2:"100"}),e.jsx("line",{x1:"0",y1:"150",x2:"320",y2:"150"})]}),[[0,0,.25],[1,0,.1],[2,0,.55],[3,0,.18],[0,1,.4],[1,1,.7],[2,1,.2],[3,1,.45],[0,2,.15],[1,2,.3],[2,2,.85],[3,2,.5],[0,3,.55],[1,3,.22],[2,3,.38],[3,3,.7]].map(([a,i,t],s)=>e.jsx("rect",{x:2+a*80,y:2+i*50,width:"76",height:"46",fill:"var(--accent)",fillOpacity:t},s))]}),e.jsx("text",{className:"lv-text",x:"40",y:"30",children:"CROSS-ASSET SIGNAL MATRIX"}),e.jsx("text",{className:"lv-text",x:"40",y:"265",children:"FX · RATES · EQUITY · CREDIT"})]})},{id:"applications",eyebrow:"L · 05 / Applications",titlePre:"Your analysis, ",titleAccent:"permanently deployed.",lede:"Turn any workflow into a reusable application. The next time the market event occurs, run it in one click: fresh data, same rigour, report-ready output.",body:"Applications close the loop. The best workflow your team builds once becomes an institutional asset — usable by other desks, on other dates, against new conditions, with provenance intact.",features:[["One-click rerun","Re-execute saved workflows against live data, with the same rigour as the original."],["Report-ready output","Final deliverables formatted for committee minutes, allocation memos and policy briefs."],["Shareable across desks","Approved applications can be referenced and run by other teams — under the same governance manifest."]],visTitle:"applications / library",visState:"SAVED",vis:e.jsxs("svg",{viewBox:"0 0 400 300",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,children:[[["APP · 01","Rate Decision · macro fund",30],["APP · 02","Policy Divergence · cross-asset",98],["APP · 03","Committee Review · equity basket",166],["APP · 04","Portfolio Stress · sovereign fund",234]].map(([a,i,t],s)=>e.jsxs("g",{children:[e.jsx("rect",{x:"20",y:t,width:"360",height:"56",rx:"4",fill:"var(--bg)",stroke:"var(--fg-muted)",strokeWidth:"1.2"}),e.jsx("text",{className:"lv-text lv-text-fg",x:"36",y:t+28,children:a}),e.jsx("text",{className:"lv-text",x:"36",y:t+44,children:i}),e.jsxs("g",{transform:`translate(335,${t+28})`,children:[e.jsx("rect",{x:"-26",y:"-12",width:"52",height:"24",rx:"3",fill:"var(--bg)",stroke:"var(--fg-muted)",strokeWidth:"1.2"}),e.jsx("path",{d:"M -14 -5 L -4 0 L -14 5 Z",fill:"var(--fg-muted)"}),e.jsx("text",{className:"lv-text lv-text-fg",x:"6",y:"4",textAnchor:"middle",children:"RUN"})]})]},s)),e.jsxs("g",{children:[e.jsx("rect",{width:"360",height:"56",rx:"4",x:"20",fill:"var(--accent)",fillOpacity:"0.10",stroke:"var(--accent)",strokeWidth:"1.5",children:e.jsx("animate",{attributeName:"y",values:"30;98;166;234;30",keyTimes:"0;0.25;0.5;0.75;
961",dur:"8.8s",calcMode:"discrete",repeatCount:"indefinite"})}),e.jsx("rect",{width:"52",height:"24",rx:"3",x:"309",fill:"var(--accent)",children:e.jsx("animate",{attributeName:"y",values:"46;114;182;250;46",keyTimes:"0;0.25;0.5;0.75;1",dur:"8.8s",calcMode:"discrete",repeatCount:"indefinite"})}),e.jsx("path",{d:"M 329 53 L 339 58 L 329 63 Z",fill:"#fff",children:e.jsx("animate",{attributeName:"d",values:"M 329 53 L 339 58 L 329 63 Z;M 329 121 L 339 126 L 329 131 Z;M 329 189 L 339 194 L 329 199 Z;M 329 257 L 339 262 L 329 267 Z;M 329 53 L 339 58 L 329 63 Z",keyTimes:"0;0.25;0.5;0.75;1",dur:"8.8s",calcMode:"discrete",repeatCount:"indefinite"})})]})]})},{id:"assistant",alt:!0,reverse:!0,eyebrow:"+ AI Assistant",titlePre:"Guidance across the workflow — ",titleAccent:"without hiding it.",lede:"The Pangura AI Assistant helps users navigate complex workflows, configure scenarios and understand outputs — while keeping the analytical process visible and auditable.",body:"The Assistant is one operator among many. It does not replace the pipeline; it explains it, suggests next steps and flags out-of-scope conditions. Every suggestion is logged and reviewable by a qualified human.",features:[["Guidance, not autopilot","Suggestions, scope warnings and explanations — the analyst stays in control."],["Always labelled","AI-generated content is clearly identified throughout the workflow and in every output."],["Human review by design","Critical outputs require attestation by a named, qualified reviewer."]],visTitle:"assistant / guidance",visState:"ACTIVE",vis:e.jsxs("svg",{viewBox:"0 0 400 300",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,children:[e.jsxs("g",{className:"lv-stroke",children:[e.jsx("rect",{x:"40",y:"60",width:"80",height:"36",rx:"2"}),e.jsx("rect",{x:"160",y:"60",width:"80",height:"36",rx:"2"}),e.jsx("rect",{x:"280",y:"60",width:"80",height:"36",rx:"2"}),e.jsx("path",{d:"M 120 78 L 160 78"}),e.jsx("path",{d:"M 240 78 L 280 78"})]}),e.jsxs("rect",{x:"160",y:"60",width:"80",height:"36",rx:"2",fill:"var(--accent)",fillOpacity:"0",stroke:"var(--accent)",strokeWidth:"1.5",children:[e.jsx("animate",{attributeName:"fill-opacity",values:"0;0.22;0",dur:"2.4s",repeatCount:"indefinite"}),e.jsx("animate",{attributeName:"stroke-opacity",values:"0.4;1;0.4",dur:"2.4s",repeatCount:"indefinite"})]}),e.jsx("path",{d:"M 200 96 L 200 156",stroke:"var(--accent)",strokeWidth:"1.1",fill:"none",strokeDasharray:"3 4",strokeOpacity:"0.65",children:e.jsx("animate",{attributeName:"stroke-dashoffset",from:"0",to:"-14",dur:"1.4s",repeatCount:"indefinite"})}),e.jsx("rect",{className:"lv-fill-accent-soft",x:"60",y:"170",width:"280",height:"80",rx:"6"}),e.jsx("path",{d:"M 200 170 L 195 156 L 205 156 Z",fill:"var(--accent)",fillOpacity:"0.18",stroke:"var(--accent)",strokeWidth:"1.5"}),e.jsx("text",{className:"lv-text lv-text-fg",x:"80",y:"200",children:"ASSISTANT"}),e.jsx("text",{className:"lv-text",x:"80",y:"220",children:'"OUT-OF-SCOPE FOR STEP 02."'}),e.jsxs("text",{className:"lv-text",x:"80",y:"236",children:['"SUGGEST OPERATOR · X-04"',e.jsxs("tspan",{fill:"var(--accent)",children:["_",e.jsx("animate",{attributeName:"opacity",values:"1;0;1",dur:"1s",repeatCount:"indefinite"})]})]})]})}];function f(){return c(),e.jsxs(o,{children:[e.jsx(n,{...l["/platform"],path:"/platform"}),e.jsx("style",{children:d}),e.jsx("section",{className:"p-hero",children:e.jsxs("div",{className:"container",children:[e.jsxs("div",{className:"eyebrow reveal",style:{"--i":0},children:[e.jsx("span",{className:"num",children:"P"})," Pangura Axe · Verifiable Intelligence"]}),e.jsxs("h1",{className:"reveal",style:{"--i":1},children:["The institutional ",e.jsx("span",{className:"a",children:"intelligence workflow."})]}),e.jsx("p",{className:"lede reveal",style:{"--i":2},children:"A new category of analytical infrastructure: AI desks that do the work and produce a verifiable run-ledger for every decision. One platform, five integrated layers, data to decision in a single pipeline."}),e.jsxs("div",{className:"ctas reveal",style:{"--i":3},children:[e.jsxs("a",{className:"btn btn-primary",href:"/access",children:["See It in Action ",e.jsx("span",{className:"arr",children:"→"})]}),e.jsx("a",{className:"btn btn-ghost",href:"/trust",children:"Review Trust Framework"})]})]})}),e.jsx("section",{className:"pipeline-band","aria-label":"Pipeline overview",children:e.jsxs("div",{className:"container",children:[e.jsxs("svg",{className:"pipeline-svg",viewBox:"0 0 1200 180",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,
96children:[e.jsx("line",{className:"conn",x1:"120",y1:"90",x2:"1080",y2:"90"}),[[120,"L · 01","Data"],[360,"L · 02","Canvas"],[600,"L · 03","Society"],[840,"L · 04","Signals"],[1080,"L · 05","Applications"]].map(([a,i,t],s)=>{const r=`${s}s`;return e.jsxs("g",{children:[e.jsxs("circle",{cx:a,cy:"90",r:"22",fill:"var(--bg-card)",stroke:"var(--fg-muted)",strokeWidth:"1.2",children:[e.jsx("animate",{attributeName:"stroke",values:"var(--fg-muted);var(--accent);var(--accent);var(--fg-muted);var(--fg-muted)",keyTimes:"0;0.04;0.18;0.22;1",dur:"5s",begin:r,repeatCount:"indefinite"}),e.jsx("animate",{attributeName:"stroke-width",values:"1.2;1.8;1.8;1.2;1.2",keyTimes:"0;0.04;0.18;0.22;1",dur:"5s",begin:r,repeatCount:"indefinite"}),e.jsx("animate",{attributeName:"r",values:"22;26;26;22;22",keyTimes:"0;0.04;0.18;0.22;1",dur:"5s",begin:r,repeatCount:"indefinite"})]}),e.jsxs("circle",{cx:a,cy:"90",r:"0",fill:"var(--accent)",opacity:"0.18",children:[e.jsx("animate",{attributeName:"r",values:"0;34;34;0;0",keyTimes:"0;0.04;0.18;0.22;1",dur:"5s",begin:r,repeatCount:"indefinite"}),e.jsx("animate",{attributeName:"opacity",values:"0;0.22;0.22;0;0",keyTimes:"0;0.04;0.18;0.22;1",dur:"5s",begin:r,repeatCount:"indefinite"})]}),e.jsx("text",{className:"num",x:a,y:"50",textAnchor:"middle",children:i}),e.jsx("text",{className:"lbl",x:a,y:"146",textAnchor:"middle",children:t})]},s)})]}),e.jsx("div",{className:"pipeline-mobile","aria-hidden":!0,children:[["L · 01","Data"],["L · 02","Graph Canvas"],["L · 03","Society"],["L · 04","Signals"],["L · 05","Applications"]].map(([a,i],t)=>e.jsxs("div",{className:"step",children:[e.jsx("div",{className:"dot",children:String(t+1).padStart(2,"0")}),e.jsxs("div",{className:"meta",children:[e.jsx("span",{className:"num",children:a}),e.jsx("span",{className:"lbl",children:i})]})]},i))})]})}),e.jsx("div",{className:"layer-nav","aria-label":"Layer navigation",children:e.jsxs("div",{className:"container layer-nav-inner",children:[e.jsxs("a",{href:"#data",children:[e.jsx("span",{className:"num",children:"01"}),"Data"]}),e.jsxs("a",{href:"#canvas",children:[e.jsx("span",{className:"num",children:"02"}),"Graph Canvas"]}),e.jsxs("a",{href:"#society",children:[e.jsx("span",{className:"num",children:"03"}),"Society"]}),e.jsxs("a",{href:"#signals",children:[e.jsx("span",{className:"num",children:"04"}),"Signals"]}),e.jsxs("a",{href:"#applications",children:[e.jsx("span",{className:"num",children:"05"}),"Applications"]}),e.jsxs("a",{href:"#assistant",children:[e.jsx("span",{className:"num",children:"+"}),"AI Assistant"]})]})}),p.map(a=>e.jsx("section",{className:`layer-section ${a.alt?"alt":""}`,id:a.id,children:e.jsx("div",{className:"container",children:e.jsxs("div",{className:`layer-grid ${a.reverse?"reverse":""}`,children:[e.jsxs("div",{className:"layer-copy reveal",style:{"--i":0},children:[e.jsx("div",{className:"layer-eyebrow",children:a.eyebrow}),e.jsxs("h2",{children:[a.titlePre,e.jsx("span",{className:"a",children:a.titleAccent})]}),e.jsx("p",{className:"lede",children:a.lede}),e.jsx("p",{className:"body",children:a.body}),e.jsx("div",{className:"layer-features",children:a.features.map(([i,t],s)=>e.jsxs("div",{className:"layer-feature",children:[e.jsx("div",{className:"ix",children:String(s+1).padStart(2,"0")}),e.jsxs("div",{className:"ft",children:[e.jsx("strong",{children:i}),e.jsx("span",{children:t})]})]},s))})]}),e.jsxs("div",{className:"layer-vis-card reveal",style:{"--i":1},children:[e.jsxs("div",{className:"layer-vis-chrome",children:[e.jsx("span",{className:"dot"}),e.jsx("span",{children:a.visTitle}),e.jsx("span",{className:"live",children:a.visState})]}),e.jsx("div",{className:"layer-vis-body",children:a.vis})]})]})})},a.id)),e.jsx("section",{className:"trust-shortcut",children:e.jsx("div",{className:"container",children:e.jsxs("div",{className:"trust-card reveal",style:{"--i":0},children:[e.jsxs("div",{children:[e.jsxs("div",{className:"eyebrow",children:[e.jsx("span",{className:"num",children:"→"})," Trust framework"]}),e.jsxs("h2",{style:{marginTop:14},children:["Every output, ",e.jsx("em",{children:"traceable."})]}),e.jsx("p",{children:"Pangura is designed for institutions where every anal
96ytical output carries responsibility. Audit trails, governance manifests, human review and regulatory alignment are part of the architecture — not a checklist on top of it."})]}),e.jsxs("div",{className:"trust-cta",children:[e.jsxs("a",{className:"btn btn-primary",href:"/trust",children:["Review Trust Framework ",e.jsx("span",{className:"arr",children:"→"})]}),e.jsx("a",{className:"btn btn-ghost",href:"/access",children:"Speak to Us About Auditability"})]})]})})}),e.jsx("section",{className:"final-cta",children:e.jsxs("div",{className:"container",children:[e.jsxs("div",{className:"eyebrow reveal",style:{"--i":0},children:[e.jsx("span",{className:"num",children:"→"})," See it run"]}),e.jsxs("h2",{className:"reveal",style:{"--i":1,marginTop:18},children:["We would rather ",e.jsx("em",{children:"show you a scenario"}),e.jsx("br",{}),"than write you a brochure."]}),e.jsx("p",{className:"reveal",style:{"--i":2},children:"Bring a portfolio, mandate or policy question. We bring the workflow. Thirty minutes, end-to-end, with an audit trail you can inspect."}),e.jsxs("div",{className:"ctas reveal",style:{"--i":3},children:[e.jsxs("a",{className:"btn btn-primary",href:"/access",children:["Request Demo ",e.jsx("span",{className:"arr",children:"→"})]}),e.jsx("a",{className:"btn btn-ghost",href:"/about",children:"About Pangura"})]})]})})]})}export{f as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.