fix: Schriftgroessen auf Executive Summary ueberall erhoeht

Alle Texte ca. 2 Stufen groesser:
- Hero: text-xs → text-sm
- USP: text-[10px]/text-xs → text-xs/text-sm
- Problem/Loesung: text-[10px] → text-sm
- KPI Labels: text-[8px] → text-[10px], Values: text-base → text-lg
- Scanner/Platform: text-xs → text-sm (Titel), text-[9px] → text-xs (Items)
- Roadmap: text-[10px] → text-xs
- Bottom-Kacheln: text-[9px] → text-xs
- Gruender: text-[9px]/text-[8px] → text-xs/text-[10px]
- Disclaimer: text-[7px] → text-[9px]

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-27 09:23:00 +01:00
parent 774a0ba6db
commit 2d85ef310a

View File

@@ -269,8 +269,8 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
{/* Hero Description */}
<FadeInView delay={0.05} className="mb-4">
<div className="bg-gradient-to-r from-indigo-500/10 to-cyan-500/10 border-l-4 border-indigo-500 rounded-r-xl px-5 py-3">
<p className="text-xs text-white/70 leading-relaxed">
<div className="bg-gradient-to-r from-indigo-500/10 to-cyan-500/10 border-l-4 border-indigo-500 rounded-r-xl px-5 py-4">
<p className="text-sm text-white/70 leading-relaxed">
{de
? <>BreakPilot ComplAI ist eine <strong className="text-indigo-300">DSGVO-konforme, datensouveraene KI-Plattform</strong>, die kontinuierliches Sicherheitsscanning mit intelligenter Compliance-Automatisierung vereint. Wir helfen Maschinenbauern, ihren <strong className="text-indigo-300">Code abzusichern</strong>, <strong className="text-indigo-300">Compliance skalierbar durchzusetzen</strong> und <strong className="text-indigo-300">volle Datensouveraenitaet zu bewahren</strong>.</>
: <>BreakPilot ComplAI is a <strong className="text-indigo-300">GDPR-compliant, data-sovereign AI platform</strong> that combines continuous security scanning with intelligent compliance automation. We help manufacturers <strong className="text-indigo-300">secure their code</strong>, <strong className="text-indigo-300">enforce compliance at scale</strong> and <strong className="text-indigo-300">maintain full data sovereignty</strong>.</>
@@ -282,8 +282,8 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
{/* USP Banner */}
<FadeInView delay={0.1} className="mb-4">
<div className="bg-gradient-to-r from-indigo-500/20 to-purple-500/20 border border-indigo-500/30 rounded-2xl px-5 py-2.5 text-center">
<span className="text-[10px] font-bold text-indigo-400 uppercase tracking-wider">{es.usp}</span>
<p className="text-xs text-white/80 mt-0.5">{es.uspText}</p>
<span className="text-xs font-bold text-indigo-400 uppercase tracking-wider">{es.usp}</span>
<p className="text-sm text-white/80 mt-1">{es.uspText}</p>
</div>
</FadeInView>
@@ -292,16 +292,16 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
<GlassCard delay={0.15} hover={false} className="p-3">
<div className="flex items-center gap-2 mb-1.5">
<Shield className="w-3.5 h-3.5 text-red-400" />
<h3 className="text-[10px] font-bold text-red-400 uppercase tracking-wider">{es.problem}</h3>
<h3 className="text-xs font-bold text-red-400 uppercase tracking-wider">{es.problem}</h3>
</div>
<p className="text-[10px] text-white/70 leading-relaxed">{es.problemText}</p>
<p className="text-sm text-white/70 leading-relaxed">{es.problemText}</p>
</GlassCard>
<GlassCard delay={0.2} hover={false} className="p-3">
<div className="flex items-center gap-2 mb-1.5">
<CheckCircle2 className="w-3.5 h-3.5 text-emerald-400" />
<h3 className="text-[10px] font-bold text-emerald-400 uppercase tracking-wider">{es.solution}</h3>
<h3 className="text-xs font-bold text-emerald-400 uppercase tracking-wider">{es.solution}</h3>
</div>
<p className="text-[10px] text-white/70 leading-relaxed">{es.solutionText}</p>
<p className="text-sm text-white/70 leading-relaxed">{es.solutionText}</p>
</GlassCard>
</div>
@@ -318,8 +318,8 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
].map((kpi, idx) => (
<div key={idx} className="bg-white/[0.06] backdrop-blur-xl border border-white/10 rounded-xl p-2.5 text-center">
<kpi.icon className="w-3.5 h-3.5 mx-auto mb-0.5 opacity-60" style={{ color: kpi.color }} />
<p className="text-base font-bold text-white">{kpi.value}</p>
<p className="text-[8px] text-white/40 uppercase tracking-wider">{kpi.label}</p>
<p className="text-lg font-bold text-white">{kpi.value}</p>
<p className="text-[10px] text-white/40 uppercase tracking-wider">{kpi.label}</p>
</div>
))}
</div>
@@ -330,9 +330,9 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
<GlassCard delay={0.3} hover={false} className="p-3 border-t-2 border-t-indigo-500">
<div className="flex items-center gap-2 mb-1">
<ScanLine className="w-4 h-4 text-indigo-400" />
<h3 className="text-xs font-bold text-indigo-400">Compliance Scanner</h3>
<h3 className="text-sm font-bold text-indigo-400">Compliance Scanner</h3>
</div>
<p className="text-[8px] text-white/30 uppercase tracking-wider mb-2">{de ? 'Kontinuierlicher KI-Sicherheitsagent' : 'Continuous AI Security Agent'}</p>
<p className="text-[10px] text-white/30 uppercase tracking-wider mb-2">{de ? 'Kontinuierlicher KI-Sicherheitsagent' : 'Continuous AI Security Agent'}</p>
<div className="space-y-1">
{[
de ? 'SAST + DAST + SBOM — bei jeder Code-Aenderung' : 'SAST + DAST + SBOM — on every code change',
@@ -341,7 +341,7 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
de ? 'Jira-Integration — Tickets mit Implementierungsvorschlaegen' : 'Jira integration — tickets with implementation suggestions',
de ? 'Lueckenloser Audit-Trail von Erkennung bis Behebung' : 'Complete audit trail from detection to remediation',
].map((item, idx) => (
<p key={idx} className="text-[9px] text-white/60 pl-3 relative">
<p key={idx} className="text-xs text-white/60 pl-3 relative">
<span className="absolute left-0 top-1 w-1.5 h-1.5 rounded-full bg-indigo-400/60" />
{item}
</p>
@@ -352,9 +352,9 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
<GlassCard delay={0.35} hover={false} className="p-3 border-t-2 border-t-cyan-500">
<div className="flex items-center gap-2 mb-1">
<Server className="w-4 h-4 text-cyan-400" />
<h3 className="text-xs font-bold text-cyan-400">ComplAI Plattform</h3>
<h3 className="text-sm font-bold text-cyan-400">ComplAI Plattform</h3>
</div>
<p className="text-[8px] text-white/30 uppercase tracking-wider mb-2">{de ? 'Souveraene Compliance-Infrastruktur' : 'Sovereign Compliance Infrastructure'}</p>
<p className="text-[10px] text-white/30 uppercase tracking-wider mb-2">{de ? 'Souveraene Compliance-Infrastruktur' : 'Sovereign Compliance Infrastructure'}</p>
<div className="space-y-1">
{[
de ? 'VVT, TOMs, DSFA, Loeschfristen — automatisch generiert' : 'RoPA, TOMs, DPIA, retention — auto-generated',
@@ -363,7 +363,7 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
de ? 'Academy — Online-Schulungen fuer GF und Mitarbeiter' : 'Academy — online training for management and employees',
de ? 'BSI-Cloud DE / OVH FR — Jitsi, Matrix, volle Integration' : 'BSI Cloud DE / OVH FR — Jitsi, Matrix, full integration',
].map((item, idx) => (
<p key={idx} className="text-[9px] text-white/60 pl-3 relative">
<p key={idx} className="text-xs text-white/60 pl-3 relative">
<span className="absolute left-0 top-1 w-1.5 h-1.5 rounded-full bg-cyan-400/60" />
{item}
</p>
@@ -374,7 +374,7 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
{/* Roadmap */}
<FadeInView delay={0.4} className="mb-4">
<h3 className="text-[10px] font-bold text-white/40 uppercase tracking-wider mb-2">Roadmap</h3>
<h3 className="text-xs font-bold text-white/40 uppercase tracking-wider mb-2">Roadmap</h3>
<div className="grid grid-cols-2 md:grid-cols-4 gap-2">
{[
{ title: 'Q4 2026', desc: de ? 'Gruendung, Pilotkunden, Cloud live' : 'Founding, pilots, cloud live' },
@@ -383,8 +383,8 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
{ title: 'Q3 2029', desc: de ? 'Break-Even, Series A' : 'Break-even, Series A' },
].map((item, idx) => (
<div key={idx} className="bg-amber-500/10 border border-amber-500/20 rounded-lg px-3 py-2">
<p className="text-[10px] font-bold text-amber-300">{item.title}</p>
<p className="text-[8px] text-white/40">{item.desc}</p>
<p className="text-xs font-bold text-amber-300">{item.title}</p>
<p className="text-[10px] text-white/40">{item.desc}</p>
</div>
))}
</div>
@@ -393,8 +393,8 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
{/* Bottom 4-column: Geschaeftsmodell + Zielmaerkte + Gruender + Funding */}
<div className="grid md:grid-cols-4 gap-3 mb-4">
<GlassCard delay={0.45} hover={false} className="p-3">
<h3 className="text-[10px] font-bold text-purple-400 uppercase tracking-wider mb-1.5">{de ? 'Geschaeftsmodell' : 'Business Model'}</h3>
<div className="space-y-1 text-[9px] text-white/60">
<h3 className="text-xs font-bold text-purple-400 uppercase tracking-wider mb-1.5">{de ? 'Geschaeftsmodell' : 'Business Model'}</h3>
<div className="space-y-1 text-xs text-white/60">
<p><strong className="text-white/80">SaaS Cloud</strong> BSI DE / OVH FR</p>
<p><strong className="text-white/80">{de ? 'Modular' : 'Modular'}</strong> {de ? 'Einzeln oder Full Compliance' : 'Single or full compliance'}</p>
<p><strong className="text-white/80">ROI</strong> {de ? 'Kunde spart 50k+/Jahr' : 'Customer saves 50k+/year'}</p>
@@ -402,8 +402,8 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
</GlassCard>
<GlassCard delay={0.5} hover={false} className="p-3">
<h3 className="text-[10px] font-bold text-blue-400 uppercase tracking-wider mb-1.5">{de ? 'Zielmaerkte' : 'Target Markets'}</h3>
<div className="space-y-1 text-[9px] text-white/60">
<h3 className="text-xs font-bold text-blue-400 uppercase tracking-wider mb-1.5">{de ? 'Zielmaerkte' : 'Target Markets'}</h3>
<div className="space-y-1 text-xs text-white/60">
<p><strong className="text-white/80">{de ? 'Maschinenbau KMU' : 'Manufacturing SMEs'}</strong></p>
<p><strong className="text-white/80">{de ? 'Regulierte Branchen' : 'Regulated Industries'}</strong></p>
<p><strong className="text-white/80">{de ? 'EU-Datensouveraenitaet' : 'EU Data Sovereignty'}</strong></p>
@@ -411,20 +411,20 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
</GlassCard>
<GlassCard delay={0.55} hover={false} className="p-3">
<h3 className="text-[10px] font-bold text-emerald-400 uppercase tracking-wider mb-1.5">{de ? 'Gruender' : 'Founders'}</h3>
<h3 className="text-xs font-bold text-emerald-400 uppercase tracking-wider mb-1.5">{de ? 'Gruender' : 'Founders'}</h3>
<div className="space-y-1">
{data.team?.slice(0, 4).map((m, idx) => (
<div key={idx} className="flex justify-between items-center">
<span className="text-[9px] text-white/80 font-medium">{m.name}</span>
<span className="text-[8px] text-white/40">{de ? m.role_de : m.role_en}</span>
<span className="text-xs text-white/80 font-medium">{m.name}</span>
<span className="text-[10px] text-white/40">{de ? m.role_de : m.role_en}</span>
</div>
))}
</div>
</GlassCard>
<GlassCard delay={0.6} hover={false} className="p-3">
<h3 className="text-[10px] font-bold text-amber-400 uppercase tracking-wider mb-1.5">{es.theAsk} {amountLabel}</h3>
<div className="space-y-0.5 text-[9px]">
<h3 className="text-xs font-bold text-amber-400 uppercase tracking-wider mb-1.5">{es.theAsk} {amountLabel}</h3>
<div className="space-y-0.5 text-xs">
<div className="flex justify-between"><span className="text-white/40">TAM</span><span className="text-white/70">{tam ? formatEur(tam.value_eur, lang) : '—'}</span></div>
<div className="flex justify-between"><span className="text-white/40">SAM</span><span className="text-white/70">{sam ? formatEur(sam.value_eur, lang) : '—'}</span></div>
<div className="flex justify-between"><span className="text-white/40">SOM</span><span className="text-white/70">{som ? formatEur(som.value_eur, lang) : '—'}</span></div>
@@ -441,8 +441,8 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
{/* Disclaimer */}
<FadeInView delay={0.7} className="mb-4">
<div className="bg-white/[0.03] border border-white/[0.03] rounded-lg px-4 py-3">
<h4 className="text-[8px] font-bold text-white/30 uppercase tracking-wider mb-1">{de ? 'Hinweis / Haftungsausschluss' : 'Disclaimer'}</h4>
<p className="text-[7px] text-white/20 leading-relaxed">
<h4 className="text-[10px] font-bold text-white/30 uppercase tracking-wider mb-1">{de ? 'Hinweis / Haftungsausschluss' : 'Disclaimer'}</h4>
<p className="text-[9px] text-white/20 leading-relaxed">
{de
? 'Dieses Dokument dient ausschliesslich Informationszwecken und stellt weder ein Angebot zum Verkauf noch eine Aufforderung zum Kauf von Anteilen oder Wertpapieren dar. Die enthaltenen Informationen wurden vom Team Breakpilot (Gruenderteam, noch keine Gesellschaft gegruendet) nach bestem Wissen und Gewissen erstellt, koennen jedoch unvollstaendig sein und jederzeit ohne vorherige Ankuendigung geaendert werden. Es wird keine ausdrueckliche oder konkludente Gewaehr fuer die Richtigkeit, Vollstaendigkeit oder Aktualitaet der Inhalte uebernommen. Dieses Dokument enthaelt zukunftsgerichtete Aussagen, die auf aktuellen Annahmen und Erwartungen beruhen und mit erheblichen Risiken und Unsicherheiten verbunden sind. Die tatsaechlichen Ergebnisse koennen wesentlich von den dargestellten abweichen. Eine Investitionsentscheidung sollte ausschliesslich auf Grundlage weitergehender, rechtlich verbindlicher Unterlagen sowie unter Hinzuziehung eigener rechtlicher, steuerlicher und finanzieller Beratung getroffen werden. Soweit gesetzlich zulaessig, wird jede Haftung des Team Breakpilot sowie seiner Mitglieder fuer etwaige Schaeden, die direkt oder indirekt aus der Nutzung dieses Dokuments entstehen, ausgeschlossen. Dieses Dokument ist vertraulich und ausschliesslich fuer den vorgesehenen Empfaenger bestimmt. Eine Weitergabe, Vervielfaeltigung oder Veroeffentlichung ist ohne vorherige schriftliche Zustimmung nicht gestattet.'
: 'This document is for informational purposes only and does not constitute an offer to sell or a solicitation to purchase shares or securities. The information contained herein was prepared by Team Breakpilot (founding team, no company incorporated yet) to the best of their knowledge, but may be incomplete and subject to change without prior notice. No express or implied warranty is given for the accuracy, completeness or timeliness of the content. This document contains forward-looking statements based on current assumptions and expectations that involve significant risks and uncertainties. Actual results may differ materially. Any investment decision should be based solely on further legally binding documents and with the advice of independent legal, tax and financial counsel. To the extent permitted by law, all liability of Team Breakpilot and its members for any damages arising directly or indirectly from the use of this document is excluded. This document is confidential and intended solely for the designated recipient. Distribution, reproduction or publication without prior written consent is prohibited.'