-
-
-
-
-
-
-
-
+ {/* Slide order mirrors lib/slide-order.ts, minus intro-presenter, ai-qa, annex-sdk-demo. */}
- {/* Page 9: standard last page OR financial annex start */}
- {!financial &&
}
-
- {financial && (
- <>
- {annualRows.length > 0
- ?
- :
- }
-
- {hasCapTable &&
}
-
- >
- )}
+ {/* 1. executive-summary */}
+
+ {/* 2. cover (page 2 — uses its own layout; assign sequential number) */}
+ {(() => { n += 1; return
})()}
+ {/* 3. problem */}
+
+ {/* 4. solution */}
+
+ {/* 5. usp */}
+
+ {/* 6. regulatory-landscape */}
+
+ {/* 7. product */}
+
+ {/* 8. how-it-works */}
+
+ {/* 9. market */}
+
+ {/* 10. business-model */}
+
+ {/* 11. traction (uses milestones table) */}
+
+ {/* 12. competition */}
+
+ {/* 13. team */}
+
+ {/* 14. the-ask */}
+
+ {/* 15. customer-savings */}
+
+ {/* 16. annex-strategy */}
+
+ {/* 17. annex-finanzplan */}
+
+ {/* Financial-only: detailed P&L table */}
+ {hasFinancials &&
}
+ {/* 18. annex-assumptions */}
+
+ {/* 19. annex-regulatory */}
+
+ {/* 20. annex-architecture */}
+
+ {/* 21. annex-engineering */}
+
+ {/* 22. annex-aipipeline */}
+
+ {/* 23. risks */}
+
+ {/* 24. annex-glossary */}
+
+ {/* Financial-only: cap table */}
+ {hasCapTable &&
}
+ {/* 25. legal-disclaimer */}
+
>
)
diff --git a/pitch-deck/app/pitch-print/[versionId]/_components/PrintExtraSlides.tsx b/pitch-deck/app/pitch-print/[versionId]/_components/PrintExtraSlides.tsx
new file mode 100644
index 0000000..af5a1ab
--- /dev/null
+++ b/pitch-deck/app/pitch-print/[versionId]/_components/PrintExtraSlides.tsx
@@ -0,0 +1,480 @@
+import { PrintPage, SectionTitle, PrintTable, Badge, COLORS } from './PrintLayout'
+import { Language, PitchMarket, PitchFunding } from '@/lib/types'
+
+interface SlideBase { lang: Language; pageNum: number; totalPages: number; versionName: string }
+
+function fmtEur(n: number) {
+ const abs = Math.abs(n)
+ if (abs >= 1_000_000_000) return `${(n / 1_000_000_000).toLocaleString('de-DE', { maximumFractionDigits: 1 })}B EUR`
+ if (abs >= 1_000_000) return `${(n / 1_000_000).toLocaleString('de-DE', { maximumFractionDigits: 1 })}M EUR`
+ if (abs >= 1_000) return `${(n / 1_000).toLocaleString('de-DE', { maximumFractionDigits: 0 })}k EUR`
+ return `${n.toLocaleString('de-DE')} EUR`
+}
+
+export function PrintExecutiveSummaryPage({ market, funding, lang, pageNum, totalPages, versionName }: SlideBase & { market: PitchMarket[]; funding: PitchFunding }) {
+ const de = lang === 'de'
+ const tam = market.find(m => m.market_segment === 'TAM')
+ const sam = market.find(m => m.market_segment === 'SAM')
+ const som = market.find(m => m.market_segment === 'SOM')
+ const moat = [
+ { k: 'Traceability', v: de ? 'Gesetz → Control → Code' : 'Law → Control → Code' },
+ { k: 'Continuous Engine', v: de ? 'Echtzeit bei jeder Änderung' : 'Real-time on every change' },
+ { k: 'Compliance Optimizer', v: de ? 'Maximale KI-Nutzung im Rahmen' : 'Max AI use within regulations' },
+ { k: 'EU-Trust Stack', v: de ? '100% EU, kein US-SaaS' : '100% EU, no US SaaS' },
+ ]
+ const kpis = [
+ { v: '25k+', l: de ? 'Controls' : 'Controls' },
+ { v: '380+', l: de ? 'Regularien' : 'Regulations' },
+ { v: '10', l: de ? 'Branchen' : 'Industries' },
+ { v: '500K+', l: de ? 'Zeilen Code' : 'Lines of code' },
+ { v: '80%', l: de ? 'Zeitersparnis' : 'Time saved' },
+ { v: '10x', l: de ? 'Günstiger als Pentests' : 'Cheaper than pentests' },
+ ]
+ return (
+
+
+ Executive Summary
+
+
+
+
+ {de
+ ? 'Kontinuierliches Sicherheitsscanning + intelligente Compliance-Automatisierung. Code absichern, Compliance skalierbar durchsetzen, volle Datensouveränität — gestützt auf 25.000+ atomare Prüfaspekte.'
+ : 'Continuous security scanning + intelligent compliance automation. Secure code, enforce compliance at scale, maintain data sovereignty — powered by 25,000+ atomic audit aspects.'}
+
+
+
+
+
{de ? 'Unser MOAT' : 'Our MOAT'}
+
+ {moat.map(m => (
+
+ ))}
+
+
+
+
+ {kpis.map(k => (
+
+ ))}
+
+
+
+
+
{de ? 'Problem' : 'Problem'}
+
+ - {de ? 'Ohne KI Wettbewerbsfähigkeit verloren — mit US-KI Datenkontrolle verloren' : 'Without AI: lose competitiveness — with US AI: lose data control'}
+ - {de ? 'AI Act, CRA, NIS2 zwingen 30.000+ Firmen in komplexe Compliance' : 'AI Act, CRA, NIS2 force 30,000+ firms into complex compliance'}
+ - {de ? 'Hohe Pentest-/Audit-Kosten, jährliche statt kontinuierliche Prüfung' : 'High pentest/audit cost, annual instead of continuous checks'}
+
+
+
+
{de ? 'Lösung' : 'Solution'}
+
+ - {de ? 'Jede Code-Änderung automatisch geprüft (SAST/DAST/SBOM/Pentest)' : 'Every code change auto-checked (SAST/DAST/SBOM/pentest)'}
+ - {de ? 'VVT, TOMs, DSFA, CE-Risikobeurteilung in Echtzeit' : 'RoPA, TOMs, DPIA, CE risk assessment in real time'}
+ - {de ? 'EU-Hosting (DE/FR), Audit-Ready zu jedem Zeitpunkt' : 'EU hosting (DE/FR), audit-ready at any time'}
+
+
+
+
+
+
+
{de ? 'Zielmärkte' : 'Target markets'}
+
+ {de ? 'Maschinen- & Anlagenbau · Automotive · Zulieferer · Produzierende Unternehmen' : 'Machine & plant manufacturing · Automotive · Suppliers · Manufacturing'}
+
+
+
+
{de ? 'Markt' : 'Market'}
+
TAM{tam ? fmtEur(tam.value_eur) : '—'}
+
SAM{sam ? fmtEur(sam.value_eur) : '—'}
+
SOM{som ? fmtEur(som.value_eur) : '—'}
+
+
+
{de ? 'Kundenersparnis KMU/Jahr' : 'SME savings/year'}
+
~55k EUR
+
{de ? 'Pentests, CE, Compliance-Zeit, Audit' : 'Pentests, CE, compliance time, audit'}
+
+
+
+
+
+ {de ? 'The Ask:' : 'The Ask:'}{' '}
+ {(() => {
+ const amount = Number(funding?.amount_eur) || 0
+ const label = amount >= 1_000_000 ? `${(amount / 1_000_000).toFixed(1)} Mio. EUR` : `${Math.round(amount / 1000)}k EUR`
+ return `${label} ${funding?.instrument || 'Pre-Seed'} · ${funding?.round_name || 'Pre-Seed'}`
+ })()}
+
+
+
+
+ )
+}
+
+const USP_PILLARS = {
+ de: [
+ { title: 'RFQ-Prüfung', body: 'Kunden-Anforderungsdokumente automatisch gegen Source-Code geprüft. Abweichungen erkannt, Änderungen vorgeschlagen.', stat: 'Antwortzeit 4,2h (war 12 Tage)' },
+ { title: 'Prozess-Compliance', body: 'Vom Audit-Finding zum Ticket zur Code-Änderung — End-to-End automatisiert. Rollen, Fristen, Eskalation, Nachweise.', stat: '87% automatisierte Prozessschritte' },
+ { title: 'Bidirektional', body: 'Compliance-Anforderungen fließen in den Code. Code-Änderungen aktualisieren die Compliance-Doku. Zero Drift.', stat: '0 Drift-Vorfälle seit März 2024' },
+ { title: 'Kontinuierlich', body: 'Statt jährlicher Stichproben: Prüfung bei jeder Code-Änderung. Findings sofort zu Tickets mit Fix-Vorschlägen.', stat: '~2.400 Validierungen / Tag / Repo' },
+ ],
+ en: [
+ { title: 'RFQ Verification', body: 'Customer requirement docs automatically verified against current source code. Deviations detected, fixes proposed.', stat: 'Response time 4.2h (was 12 days)' },
+ { title: 'Process Compliance', body: 'From audit finding to ticket to code change — fully automated. Roles, deadlines, escalation, evidence.', stat: '87% process steps automated' },
+ { title: 'Bidirectional Sync', body: 'Compliance requirements flow into code. Code changes update compliance docs. Zero drift between worlds.', stat: '0 drift incidents since Mar-2024' },
+ { title: 'Continuous, Not Yearly', body: 'Validation on every code change instead of annual checks. Findings as tickets with concrete fix proposals.', stat: '~2,400 validations / day / repo' },
+ ],
+}
+
+const USP_HOOD = {
+ de: [
+ { title: 'End-to-End Traceability', body: 'Gesetz → Obligation → Control deterministisch mit Systemzustand und Code verknüpft. Revisionssicherer Evidence-Layer.' },
+ { title: 'Continuous Compliance Engine', body: 'Validierung bei jeder Änderung (Code/IaC/Prozesse) mit auditierbaren Nachweisen in Echtzeit. Rule-Packs pro Framework.' },
+ { title: 'Compliance Optimizer', body: 'Maximal zulässige Ausgestaltung jedes KI-Use-Cases. Constraint-Optimierung statt nur erlaubt/verboten — spart 20–200k EUR Anwaltskosten.' },
+ { title: 'EU-Trust & Governance Stack', body: 'DSGVO · NIS-2 · DORA · EU AI Act · ISO 27001 · BSI C5 · EU-souveränes Hosting. Eine Plattform, ein Audit.' },
+ ],
+ en: [
+ { title: 'End-to-End Traceability', body: 'Law → Obligation → Control deterministically linked to system state and code. Audit-proof evidence layer.' },
+ { title: 'Continuous Compliance Engine', body: 'Validation on every change (code/IaC/process) with auditable evidence in real time. Rule packs per framework.' },
+ { title: 'Compliance Optimizer', body: 'Max permissible configuration of every AI use case. Constraint optimization beyond allowed/forbidden — replaces EUR 20–200k legal fees.' },
+ { title: 'EU Trust & Governance Stack', body: 'GDPR · NIS-2 · DORA · EU AI Act · ISO 27001 · BSI C5 · EU-sovereign hosting. One platform, one audit.' },
+ ],
+}
+
+export function PrintUSPPage({ lang, pageNum, totalPages, versionName }: SlideBase) {
+ const de = lang === 'de'
+ const pillars = de ? USP_PILLARS.de : USP_PILLARS.en
+ const hood = de ? USP_HOOD.de : USP_HOOD.en
+ return (
+
+
+ {de ? 'Unsere USPs' : 'Our USPs'}
+
+
+
+
{de ? 'Vier Säulen' : 'Four Pillars'}
+
+ {pillars.map(p => (
+
+
{p.title}
+
{p.body}
+
{p.stat}
+
+ ))}
+
+
+
+
{de ? 'Under the Hood' : 'Under the Hood'}
+
+ {hood.map(h => (
+
+ ))}
+
+
+
+
+ {de
+ ? '„Compliance ↔ Code · immer in Sync. Eine Plattform, eine geschlossene Schleife. Auditoren, Entwickler und Sales fragen denselben Graphen ab."'
+ : '"Compliance ↔ Code · always in sync. One platform, one closed loop. Auditors, engineers and sales all query the same graph."'}
+
+
+
+
+ )
+}
+
+const REG_KEY = [
+ { id: 'GDPR', label: 'DSGVO', color: '#6366f1' },
+ { id: 'AI_ACT', label: 'AI Act', color: '#a855f7' },
+ { id: 'NIS2', label: 'NIS2', color: '#ef4444' },
+ { id: 'CRA', label: 'CRA', color: '#f97316' },
+ { id: 'MACHINERY_REG', label: 'Masch.-VO', color: '#22c55e' },
+ { id: 'DATA_ACT', label: 'Data Act', color: '#06b6d4' },
+ { id: 'BATTERIE_VO', label: 'Batt.-VO', color: '#f59e0b' },
+]
+const REG_INDUSTRIES = [
+ { de: 'Automobilindustrie', en: 'Automotive', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT', 'BATTERIE_VO'], totalDocs: 263 },
+ { de: 'Maschinen- & Anlagenbau', en: 'Machinery & Plant Eng.', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT'], totalDocs: 266 },
+ { de: 'Elektro- & Digitalindustrie', en: 'Electrical & Digital', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT', 'BATTERIE_VO'], totalDocs: 281 },
+ { de: 'Chemie- & Prozessindustrie', en: 'Chemicals & Process', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT'], totalDocs: 250 },
+ { de: 'Metallindustrie', en: 'Metal Industry', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT'], totalDocs: 246 },
+ { de: 'Energie & Versorgung', en: 'Energy & Utilities', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT', 'BATTERIE_VO'], totalDocs: 256 },
+ { de: 'Transport & Logistik', en: 'Transport & Logistics', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT'], totalDocs: 256 },
+ { de: 'Handel', en: 'Retail & Commerce', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT'], totalDocs: 271 },
+ { de: 'Konsumgüter & Lebensmittel', en: 'Consumer Goods & Food', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT', 'BATTERIE_VO'], totalDocs: 265 },
+ { de: 'Bauwirtschaft', en: 'Construction', regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT'], totalDocs: 245 },
+]
+
+export function PrintRegulatoryLandscapePage({ lang, pageNum, totalPages, versionName }: SlideBase) {
+ const de = lang === 'de'
+ const kpis = [
+ { v: '380+', l: de ? 'Gesetze im RAG' : 'Laws in RAG' },
+ { v: '244', l: de ? 'Horizontal' : 'Horizontal' },
+ { v: '65', l: de ? 'Branchen-spezifisch' : 'Industry-specific' },
+ { v: '10', l: de ? 'Branchen' : 'Industries' },
+ ]
+ return (
+
+
+ {de ? 'Regulatorische Landschaft' : 'Regulatory Landscape'}
+
+
+ {kpis.map(k => (
+
+ ))}
+
+
+
+
+ | {de ? 'Branche' : 'Industry'} |
+ {REG_KEY.map(r => (
+ {r.label} |
+ ))}
+ {de ? 'Gesetze' : 'Laws'} |
+
+
+
+ {REG_INDUSTRIES.map((ind, i) => (
+
+ | {de ? ind.de : ind.en} |
+ {REG_KEY.map(r => (
+
+ {ind.regs.includes(r.id)
+ ?
+ : ·}
+ |
+ ))}
+ {ind.totalDocs} |
+
+ ))}
+
+
+
+ {de
+ ? '244 Dokumente gelten horizontal für alle Branchen (DSGVO, BDSG, AI Act, NIS2, CRA, BetrVG, HGB, ...). Sektorspezifische Regulierungen kommen hinzu.'
+ : '244 documents apply horizontally to all industries (GDPR, BDSG, AI Act, NIS2, CRA, ...). Sector-specific regulations are added on top.'}
+
+
+ )
+}
+
+const HIW_STEPS_DE = [
+ { n: '01', t: 'Cloud-Vertrag abschließen', d: 'BSI-zertifizierte Cloud in Deutschland. Fixe oder flexible Kosten.' },
+ { n: '02', t: 'Code-Repos verbinden', d: 'Git-Repos, CI/CD Pipelines und Firmware-Projekte anbinden. Die KI scannt automatisch auf Schwachstellen und Compliance-Lücken bei jeder Änderung.' },
+ { n: '03', t: 'Compliance & Security automatisieren', d: 'Kontinuierliche Code-Analyse, Pentesting und Risikoanalysen. VVT, TOMs, DSFA und CE-Dokumentation werden automatisch erstellt und aktualisiert.' },
+ { n: '04', t: 'Audit vorbereiten', d: 'Alle Nachweise, Dokumente und Risikobeurteilungen auf Knopfdruck. Abweichungen nach dem Audit automatisch nachverfolgen mit Stichtagen und Eskalation.' },
+]
+const HIW_STEPS_EN = [
+ { n: '01', t: 'Sign Cloud Contract', d: 'BSI-certified cloud in Germany. Fixed or flexible costs.' },
+ { n: '02', t: 'Connect Code Repos', d: 'Connect Git repos, CI/CD pipelines and firmware projects. The AI scans automatically for vulnerabilities and compliance gaps on every change.' },
+ { n: '03', t: 'Automate Compliance & Security', d: 'Continuous code analysis, pentesting and risk assessments. RoPA, TOMs, DPIA and CE documentation are automatically created and updated.' },
+ { n: '04', t: 'Prepare for Audit', d: 'All evidence, documents and risk assessments at the push of a button. Post-audit deviations automatically tracked with deadlines and escalation.' },
+]
+
+export function PrintHowItWorksPage({ lang, pageNum, totalPages, versionName }: SlideBase) {
+ const de = lang === 'de'
+ const steps = de ? HIW_STEPS_DE : HIW_STEPS_EN
+ return (
+
+
+ {de ? 'So funktioniert\'s' : 'How It Works'}
+
+
+ {steps.map((s, idx) => (
+
+
+ {s.n}
+
+
+ {idx < steps.length - 1 &&
}
+
+ ))}
+
+
+ )
+}
+
+const BM_TIERS_DE = [
+ { name: 'Starter', target: 'Startups & Kleinstunternehmen', emp: '< 10', price: '3.600 EUR/Jahr', features: ['Code Security (SAST/DAST)', 'Compliance-Dokumente', 'Consent Management', '1 Anwendung'], highlight: false },
+ { name: 'Professional', target: 'KMU & Mittelstand', emp: '10 – 250', price: '15.000 – 40.000 EUR/Jahr', features: ['Alle Module inkl. CE-Bewertung', 'Audit Manager End-to-End', 'AI Act Compliance (UCCA)', 'Unbegrenzte Anwendungen'], highlight: true },
+ { name: 'Enterprise', target: 'Konzerne & OEMs', emp: '250+', price: 'ab 50.000 EUR/Jahr', features: ['Dedizierte Instanz', 'Custom Integrationen (SAP, MES)', 'SLA & Priority Support', 'Tender Matching & RFQ-Prüfung'], highlight: false },
+]
+const BM_TIERS_EN = [
+ { name: 'Starter', target: 'Startups & Micro', emp: '< 10', price: '3,600 EUR/yr', features: ['Code Security (SAST/DAST)', 'Compliance documents', 'Consent management', '1 application'], highlight: false },
+ { name: 'Professional', target: 'SME & Mid-Market', emp: '10 – 250', price: '15,000 – 40,000 EUR/yr', features: ['All modules incl. CE assessment', 'Audit Manager end-to-end', 'AI Act Compliance (UCCA)', 'Unlimited applications'], highlight: true },
+ { name: 'Enterprise', target: 'Enterprises & OEMs', emp: '250+', price: 'from 50,000 EUR/yr', features: ['Dedicated instance', 'Custom integrations (SAP, MES)', 'SLA & priority support', 'Tender matching & RFQ verification'], highlight: false },
+]
+
+export function PrintBusinessModelPage({ lang, pageNum, totalPages, versionName }: SlideBase) {
+ const de = lang === 'de'
+ const tiers = de ? BM_TIERS_DE : BM_TIERS_EN
+ return (
+
+
+ {de ? 'Geschäftsmodell' : 'Business Model'}
+
+
+ {tiers.map(t => (
+
+
{t.name}
+
{t.target}
+
{t.emp} {de ? 'Mitarbeiter' : 'employees'}
+
{t.price}
+
+ {t.features.map(f => (
+ -
+
+ {f}
+
+ ))}
+
+
+ ))}
+
+
+ )
+}
+
+const COMP_COMPETITORS = [
+ { name: 'Vanta', flag: 'US', founded: 2018, emp: '1.695', revenue: '$220M ARR', customers: '12.000', pricing: '$10K–80K/yr', ai: 'full' as const },
+ { name: 'Drata', flag: 'US', founded: 2020, emp: '732', revenue: '$100M ARR', customers: '8.000', pricing: '$10K–100K/yr', ai: 'full' as const },
+ { name: 'Sprinto', flag: 'IN', founded: 2020, emp: '316', revenue: '$38M ARR', customers: '3.000', pricing: '$6K–25K/yr', ai: 'full' as const },
+ { name: 'DataGuard', flag: 'DE', founded: 2017, emp: '250', revenue: '~€52M', customers: '4.000', pricing: '€6K–24K+/yr', ai: 'partial' as const },
+ { name: 'Proliance', flag: 'DE', founded: 2017, emp: '65', revenue: '~€3.9M', customers: '2.000', pricing: '€1.5K–5.7K/yr', ai: 'none' as const },
+ { name: 'heyData', flag: 'DE', founded: 2020, emp: '58', revenue: '~€15M', customers: '2.000', pricing: '€1K–3.8K/yr', ai: 'partial' as const },
+]
+
+const COMP_USP_ROWS_DE = ['Code-Security + DevSecOps (6 Tools, SAST/DAST/SBOM/Container/Secrets/IaC)', 'LLM-Auto-Fix für gefundene Schwachstellen', 'Firmware & Embedded-Security', 'PII-Redaction LLM Gateway', 'RAG mit 25.000+ Sicherheitskontrollen', 'AI Act und CRA Compliance End-to-End', 'CE-Software-Risikobeurteilung nach Maschinen-VO', 'Whistleblower-Portal (HinSchG)', 'Maschinenbau-Branchenfokus', 'Self-Hosted / On-Premise möglich']
+const COMP_USP_ROWS_EN = ['Code security + DevSecOps (6 tools, SAST/DAST/SBOM/container/secrets/IaC)', 'LLM auto-fix for detected vulnerabilities', 'Firmware & embedded security', 'PII redaction LLM gateway', 'RAG with 25,000+ security controls', 'AI Act and CRA compliance end-to-end', 'CE software risk assessment per Machinery Regulation', 'Whistleblower portal (HinSchG)', 'Manufacturing industry focus', 'Self-hosted / on-premise possible']
+
+export function PrintCompetitionPage({ lang, pageNum, totalPages, versionName }: SlideBase) {
+ const de = lang === 'de'
+ const aiLabel = (a: 'full' | 'partial' | 'none') => a === 'full' ? (de ? 'Voll' : 'Full') : a === 'partial' ? (de ? 'Teil' : 'Partial') : (de ? 'Keine' : 'None')
+ const aiColor = (a: 'full' | 'partial' | 'none') => a === 'full' ? '#16a34a' : a === 'partial' ? '#d97706' : '#94a3b8'
+ return (
+
+
+ {de ? 'Wettbewerb' : 'Competition'}
+
+
+
+
{de ? 'Wettbewerber-Übersicht' : 'Competitor Overview'}
+
[
+ {c.flag} {c.name},
+ c.founded.toString(),
+ c.emp,
+ c.revenue,
+ c.customers,
+ c.pricing,
+ {aiLabel(c.ai)},
+ ])}
+ colWidths={['18%', '8%', '10%', '15%', '12%', '20%', '10%']}
+ />
+
+
+
{de ? 'Was nur BreakPilot hat' : 'BreakPilot-only features'}
+
+ {(de ? COMP_USP_ROWS_DE : COMP_USP_ROWS_EN).map(r => (
+ -
+
+ {r}
+
+ ))}
+
+
+
+
+ {de
+ ? 'Weitere DACH-Anbieter: Secjur, Usercentrics, Caralegal, 2B Advice, OneTrust. Keiner kombiniert DSGVO + Code-Security + Self-Hosted KI.'
+ : 'Other DACH players: Secjur, Usercentrics, Caralegal, 2B Advice, OneTrust. None combines GDPR + code security + self-hosted AI.'}
+
+
+ )
+}
+
+const SAVINGS_DE = [
+ { name: 'KMU (25 MA)', bp: '15.000 EUR/Jahr', without: '86.000', with: '31.000', save: '55.000', roi: '3,7x' },
+ { name: 'Mittelstand (100 MA)', bp: '30.000 EUR/Jahr', without: '291.000', with: '98.000', save: '193.000', roi: '6,4x' },
+ { name: 'Konzern (500+ MA)', bp: '50.000 EUR/Jahr', without: '1.190.000', with: '410.000', save: '780.000', roi: '15,6x' },
+]
+const SAVINGS_EN = [
+ { name: 'SME (25 emp.)', bp: 'EUR 15,000/yr', without: '86,000', with: '31,000', save: '55,000', roi: '3.7x' },
+ { name: 'Mid-size (100 emp.)', bp: 'EUR 30,000/yr', without: '291,000', with: '98,000', save: '193,000', roi: '6.4x' },
+ { name: 'Enterprise (500+ emp.)', bp: 'EUR 50,000/yr', without: '1,190,000', with: '410,000', save: '780,000', roi: '15.6x' },
+]
+const SAVINGS_LINES_DE = ['Pentests (Anwendungen)', 'CE-SW-Risikobeurteilung', 'Compliance-Dokumentation', 'Produktivere Compliance-Arbeitszeit', 'Audit-Vorbereitung', 'Externe Berater / FTE / Strafvermeidung']
+const SAVINGS_LINES_EN = ['Pentests (applications)', 'CE SW risk assessment', 'Compliance documentation', 'More productive compliance time', 'Audit preparation', 'External consultants / FTE / penalty avoidance']
+
+export function PrintCustomerSavingsPage({ lang, pageNum, totalPages, versionName }: SlideBase) {
+ const de = lang === 'de'
+ const rows = (de ? SAVINGS_DE : SAVINGS_EN).map(r => [
+
{r.name},
+ r.bp,
+
{r.without} €,
+
{r.with} €,
+
{r.save} €,
+
{r.roi},
+ ])
+ return (
+
+
+ {de ? 'Kundenersparnis im Detail' : 'Customer Savings in Detail'}
+
+
+
+
+
{de ? 'Wo gespart wird' : 'Where savings come from'}
+
+ {(de ? SAVINGS_LINES_DE : SAVINGS_LINES_EN).map(l => - {l}
)}
+
+
+
+
{de ? 'Versteckter Hebel' : 'Hidden lever'}
+
+ {de
+ ? '„Der größte versteckte Kostentreiber ist Entwickler-Produktivität: ohne automatisierte Security-Tools verbringen Entwickler 19% ihrer Arbeitszeit mit Sicherheitsaufgaben statt mit Features." — IDC'
+ : '"The largest hidden cost driver is developer productivity: without automated security tools, developers spend 19% of their time on security tasks instead of features." — IDC'}
+
+
+
+
+ {(de ? ['Pentests', 'CE-Risiko', 'Compliance-Zeit', 'Audit-Vorb.', 'Strafvermeidung'] : ['Pentests', 'CE risk', 'Compliance time', 'Audit prep', 'Penalty avoidance']).map(b => {b})}
+
+
+ )
+}
diff --git a/pitch-deck/app/pitch-print/[versionId]/_components/PrintLayout.tsx b/pitch-deck/app/pitch-print/[versionId]/_components/PrintLayout.tsx
index 69a17d1..4adf377 100644
--- a/pitch-deck/app/pitch-print/[versionId]/_components/PrintLayout.tsx
+++ b/pitch-deck/app/pitch-print/[versionId]/_components/PrintLayout.tsx
@@ -17,6 +17,7 @@ interface PrintPageProps {
export function PrintPage({ title, pageNum, totalPages, versionName, children }: PrintPageProps) {
return (
+
+
)
}
diff --git a/pitch-deck/app/pitch-print/layout.tsx b/pitch-deck/app/pitch-print/layout.tsx
new file mode 100644
index 0000000..0443f73
--- /dev/null
+++ b/pitch-deck/app/pitch-print/layout.tsx
@@ -0,0 +1,5 @@
+import './print.css'
+
+export default function PrintLayout({ children }: { children: React.ReactNode }) {
+ return <>{children}>
+}
diff --git a/pitch-deck/app/pitch-print/print.css b/pitch-deck/app/pitch-print/print.css
new file mode 100644
index 0000000..f343933
--- /dev/null
+++ b/pitch-deck/app/pitch-print/print.css
@@ -0,0 +1,80 @@
+/* Named page — must be outside @media print */
+@page slide-page {
+ size: A4 landscape;
+ margin: 0;
+}
+
+@media screen {
+ body { background: #d1d5db; }
+}
+
+@media print {
+ @page {
+ size: A4 landscape;
+ margin: 0;
+ }
+
+ /*
+ * globals.css sets html,body { height:100%; overflow:hidden; background:#0a0a1a }.
+ * In print mode that clips all content to one viewport height and renders a black
+ * background. Override everything here.
+ */
+ html, body {
+ height: auto !important;
+ min-height: 0 !important;
+ overflow: visible !important;
+ background: #ffffff !important;
+ color: #000000 !important;
+ margin: 0 !important;
+ padding: 0 !important;
+ -webkit-print-color-adjust: exact;
+ -moz-print-color-adjust: exact;
+ print-color-adjust: exact;
+ }
+
+ .no-print {
+ display: none !important;
+ }
+
+ .print-deck-wrapper {
+ padding: 0 !important;
+ margin: 0 !important;
+ display: block !important;
+ overflow: visible !important;
+ }
+
+ /*
+ * Block wrapper: carries the height AND the page break.
+ * height:210mm on display:block is reliable in both Chrome and Firefox.
+ */
+ .print-page-break {
+ page: slide-page;
+ display: block !important;
+ width: 297mm !important;
+ height: 210mm !important;
+ overflow: hidden !important;
+ margin: 0 !important;
+ padding: 0 !important;
+ }
+
+ /* New page before every slide except the first */
+ .print-page-break + .print-page-break {
+ break-before: page !important;
+ page-break-before: always !important;
+ }
+
+ /* Flex container fills the block wrapper */
+ .print-page {
+ display: flex !important;
+ flex-direction: column !important;
+ width: 100% !important;
+ height: 100% !important;
+ overflow: hidden !important;
+ margin: 0 !important;
+ box-shadow: none !important;
+ background: #ffffff !important;
+ -webkit-print-color-adjust: exact;
+ -moz-print-color-adjust: exact;
+ print-color-adjust: exact;
+ }
+}