diff --git a/pitch-deck/app/pitch-print/[versionId]/_components/PrintDiagrams.tsx b/pitch-deck/app/pitch-print/[versionId]/_components/PrintDiagrams.tsx
index 7fdf77b..c27628b 100644
--- a/pitch-deck/app/pitch-print/[versionId]/_components/PrintDiagrams.tsx
+++ b/pitch-deck/app/pitch-print/[versionId]/_components/PrintDiagrams.tsx
@@ -131,57 +131,90 @@ export function ArchitectureDiagram({
/** Layer pill: "01 · APPLICATION LAYER" + sub-label */
const LayerChip = ({ n, label, sub, tint }: { n: string; label: string; sub: string; tint: string }) => (
-
-
{n} · {label}
-
{sub}
+
+ {n} · {label}
+ {sub}
)
- const productLayerBg = `linear-gradient(135deg, ${COLORS.violet50} 0%, #ffffff 50%, ${COLORS.violet50} 100%)`
- const proxyLayerBg = `linear-gradient(135deg, ${COLORS.amber50} 0%, #fffaf0 50%, ${COLORS.amber50} 100%)`
+ /**
+ * ServiceNode — flat, no own border. Used INSIDE a tinted layer card so the
+ * whole layer reads as one panel rather than nested boxes (which is what
+ * was causing the architecture diagram to overflow).
+ */
+ const ServiceNode = ({ kicker, title, subtitle, items, footer, accent }: { kicker?: string; title: string; subtitle?: string; items: string[]; footer?: string; accent: string }) => (
+
+ {kicker &&
{kicker}
}
+
{title}
+ {subtitle &&
{subtitle}
}
+
+ {items.slice(0, 4).map((it, i) => (
+
0 ? `1px solid ${COLORS.slate100}` : 'none' }}>· {it}
+ ))}
+
+ {footer &&
{footer}
}
+
+ )
+
+ const productLayerBg = `linear-gradient(135deg, ${COLORS.violet50} 0%, #ffffff 60%, ${COLORS.violet50} 100%)`
+ const proxyLayerBg = `linear-gradient(135deg, ${COLORS.amber50} 0%, #fffaf0 60%, ${COLORS.amber50} 100%)`
return (
{/* APPLICATION (PRODUCT) LAYER */}
-
+
-
+
{product.map((p, i) => (
-
+
))}
- {/* connectors */}
-
- {[0, 1, 2].map(i =>
)}
+ {/* compact connector strip */}
+
+ {[0, 1, 2].map(i => (
+
+ ))}
- {/* GATEWAY LAYER */}
-
+ {/* GATEWAY LAYER — compact: title row + features in 1 row */}
+
-
-
{proxy.title}
-
{proxy.subtitle}
+
+ {proxy.title}
+ {proxy.subtitle}
-
+
{proxy.features.map((f, i) => (
-
{f}
+
{f}
))}
- {/* connectors */}
-
- {[0, 1, 2].map(i =>
)}
+ {/* compact connector strip */}
+
+ {[0, 1, 2].map(i => (
+
+ ))}
{/* INFRASTRUCTURE (INFERENCE) LAYER */}
-
+
-
+
{inference.map((p, i) => (
-
+
))}