// Organization chart — spatial node canvas with kinetic tendrils function OrgChart() { // nodes positioned on a 1200x720 virtual canvas const main = { x: 600, y: 140, label: "Prime", role: "Orchestrator · Claude Sonnet" }; const subs = [ { x: 220, y: 420, label: "Market Sentry", role: "Markets & risk", color: "gold", tasks: 4 }, { x: 440, y: 520, label: "Creative Director", role: "Brand & copy", color: "cyan", tasks: 2 }, { x: 760, y: 520, label: "Research Specialist", role: "Primary research", color: "cyan", tasks: 3 }, { x: 980, y: 420, label: "Ops Steward", role: "Infra & secrets", color: "cyan", tasks: 1 }, ]; const leaves = [ { parent: 0, x: 100, y: 640, label: "Tape Reader" }, { parent: 0, x: 240, y: 680, label: "Risk Officer" }, { parent: 1, x: 420, y: 660, label: "Scribe" }, { parent: 2, x: 740, y: 680, label: "Fact-checker" }, { parent: 2, x: 860, y: 640, label: "Archivist" }, { parent: 3, x: 1080, y: 640, label: "Key Rotator" }, ]; return (
} />
{/* canvas background */}
{/* subtle compass eyebrow */}
CHARTER ∙ 21 APR 2026
NODES 11 · EDGES 10
{/* halo behind main */} {/* edges: main -> subs */} {subs.map((s, i) => { const id = `e${i}`; const c = s.color === "gold" ? "url(#edge-gold)" : "url(#edge-cyan)"; const cp1x = main.x, cp1y = main.y + 180; const cp2x = s.x, cp2y = s.y - 180; return ( {/* traveling dot */} ); })} {/* edges: subs -> leaves */} {leaves.map((l, i) => { const p = subs[l.parent]; const color = p.color === "gold" ? "url(#edge-gold)" : "url(#edge-cyan)"; return ( ); })} {/* Main orb */} {/* Sub nodes */} {subs.map((s, i) => )} {/* Leaf nodes */} {leaves.map((l, i) => )}
); } function NodePrime({ x, y, label, role }) { return (
{label}
{role}
); } function NodeSub({ x, y, label, role, color, tasks }) { const c = color === "gold" ? "var(--gold)" : "var(--accent)"; return (
{label}
{role.toUpperCase()} · {tasks} OPEN
); } function NodeLeaf({ x, y, label, color }) { const c = color === "gold" ? "var(--gold)" : "var(--accent)"; return (
{label}
); } function LegendBlock({ title, lines }) { return (
{title}
    {lines.map((l, i) => (
  • · {l}
  • ))}
); } window.OrgChart = OrgChart;