---
// Architecture diagrams as static SVG (authored to match the site style), shown on a
// constant light card so the fixed-colour art stays legible in BOTH light and dark themes.
// CSP-clean: a plain same-origin (img-src 'self'); no inline script, no web fonts.
// SVG sources live in /public/diagrams/.svg — the same files the blog posts embed.
interface Props {
name: string;
caption?: string;
}
const { name, caption } = Astro.props;
const captions: Record = {
"edge-ai": "Design → single-press pipeline → readiness-gated GPU inference at the edge",
"iac-fleet": "One source of truth → AWX/Ansible → identical edge nodes, even air-gapped",
homelab: "Bare metal → GitOps clusters → services, exposed outbound-only via a tunnel",
"authentik-sso": "One identity provider, 2FA at the flow; apps validate over an internal back channel",
"outbound-exposure": "No open ports — the origin dials out; the edge is the perimeter",
};
const cap = caption ?? captions[name];
---
{cap && {cap}}