/* The dependency dome. Three bands radiate from the SoftVerx mark: intelligence
on the outside, connected under it, core platforms nearest the centre. Arrows
on the baseline run inward, because everything above writes to what is below.
Phone gets the same argument as three stacked rows — a 720px dome at 390px
would be unreadable, and shrinking type is the wrong lever. */
const DOME_ICON = {
"ai-agents": <>>,
"document-intelligence": <>>,
"applied-ml": <>>,
"computer-vision": <>>,
"industrial-iot": <>>,
"energy-tech": <>>,
"agri-tech": <>>,
"erp-billing": <>>,
"data-platforms": <>>,
"cloud-devops": <>>,
};
const DOME_HUE = { core: "var(--sx-layer-core)", connected: "var(--sx-layer-connected)", intelligence: "var(--sx-layer-intelligence)" };
function DomeChip({ p, hue, x, y, w, mobile }) {
return (
{p.title}
);
}
function PracticeDome({ mobile }) {
const groups = P.practiceGroups;
const byId = { intelligence: groups[0], connected: groups[1], core: groups[2] };
const order = [["intelligence", 330, [20, 62, 118, 160]], ["connected", 240, [42, 90, 138]], ["core", 170, [28, 90, 152]]];
if (mobile) {
return (
{["Architecture and integration documentation", "Environments provisioned and documented", "Runbooks and monitoring dashboards", "Role-based training for the operating team"].map((x) =>