feat: initial mono-repo with 30 vanity domain sites

Scaffold complete repo structure:
- 28 static sites extracted from running containers on mlake
- 2 dynamic sites (dasbes.de, dumusst.com) marked for separate handling
- Template system with 6 templates (person-dark/light, product-dark, editorial, fun, minimal)
- Shared CSS (variables, responsive, animations, noise overlay)
- nginx config generator with multi-domain alias support
- Build script with Docker-based nginx validation
- add-site.sh helper for scaffolding new domains
- Dockerfile for single nginx:alpine container

Sites: clemensplassmann.de, danosi.de, deinesei.de, derkaiseristnackt.de,
elefantenhor.de, fragina.de, frenchkis.de, ichbinaufbali.de, ichbinaufbarley.de,
insain.de, julietensity.de, kainco.de (+keinco.de), kainstress.de, keinefreun.de,
knzlmgmt.de, kopffrai.de, legalais.de, machesdocheinfach.de, mai-otto.de
(+otto.flexsiebels.de, ottomatisch.de, ichbinotto.de), martinsiebels.de,
matthiasbreier.de, osterai.de, paragraphenraiter.de, schulfrai.de, smartin3.de,
sorgenfrai.de, vonschraitter.de, wartebitte.de

Refs: otto#341
This commit is contained in:
mAi
2026-03-29 13:20:27 +02:00
parent ec3e1e42f3
commit 6f5de542ab
78 changed files with 13471 additions and 1 deletions

View File

@@ -0,0 +1,896 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>frenchkis.de — Franz&ouml;sische K&uuml;nstliche Intelligenzen</title>
<meta name="description" content="French KIs: Alles &uuml;ber franz&ouml;sische K&uuml;nstliche Intelligenzen. Sie streiken, philosophieren und gehen mittags zwei Stunden essen.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono:wght@400;700&family=Playfair+Display:ital,wght@0,700;1,400&display=swap" rel="stylesheet">
<style>
*, *::before, *::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--bleu: #002395;
--blanc: #ffffff;
--rouge: #ED2939;
--bg: #0a0b0f;
--bg-card: #12131a;
--bg-card-hover: #1a1b24;
--text: #e8e9ed;
--text-muted: #8a8d9a;
--accent-blue: #4d6fff;
--accent-red: #ff4d5e;
--accent-gold: #f0c040;
--border: rgba(255,255,255,0.08);
}
html { scroll-behavior: smooth; }
body {
font-family: 'Space Grotesk', system-ui, sans-serif;
background: var(--bg);
color: var(--text);
overflow-x: hidden;
line-height: 1.65;
}
/* === TRICOLORE BAR === */
.tricolore {
height: 4px;
background: linear-gradient(90deg, var(--bleu) 0%, var(--bleu) 33.33%, var(--blanc) 33.33%, var(--blanc) 66.66%, var(--rouge) 66.66%, var(--rouge) 100%);
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
}
/* === HERO === */
.hero {
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 2rem 1.5rem;
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
inset: 0;
background:
radial-gradient(ellipse 700px 500px at 25% 30%, rgba(0, 35, 149, 0.15), transparent),
radial-gradient(ellipse 600px 400px at 75% 70%, rgba(237, 41, 57, 0.1), transparent);
pointer-events: none;
}
.hero-beret {
font-size: clamp(4rem, 10vw, 7rem);
margin-bottom: 1.5rem;
position: relative;
display: inline-block;
}
.hero-beret .robot {
display: inline-block;
}
.hero-beret .beret {
position: absolute;
top: -0.55em;
left: 50%;
transform: translateX(-50%) rotate(-12deg);
font-size: 0.55em;
filter: none;
}
.hero h1 {
font-family: 'Space Grotesk', sans-serif;
font-size: clamp(2.8rem, 8vw, 5.5rem);
font-weight: 700;
letter-spacing: -0.03em;
line-height: 1.05;
margin-bottom: 0.4rem;
}
.hero h1 .french { color: var(--accent-blue); }
.hero h1 .kis { color: var(--accent-red); }
.hero-tagline {
font-family: 'Playfair Display', serif;
font-style: italic;
font-size: clamp(1rem, 2.5vw, 1.4rem);
color: var(--text-muted);
max-width: 550px;
margin: 0.75rem auto 2.5rem;
}
.hero-badge {
display: inline-block;
padding: 0.5rem 1.4rem;
border: 1px solid var(--border);
border-radius: 100px;
font-family: 'Space Mono', monospace;
font-size: 0.8rem;
color: var(--text-muted);
background: rgba(255,255,255,0.03);
letter-spacing: 0.04em;
}
.hero-badge span { color: var(--accent-red); }
/* === SECTION BASE === */
section {
padding: 6rem 1.5rem;
max-width: 900px;
margin: 0 auto;
}
.section-label {
font-family: 'Space Mono', monospace;
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--accent-blue);
margin-bottom: 0.75rem;
}
section h2 {
font-family: 'Space Grotesk', sans-serif;
font-size: clamp(1.8rem, 4vw, 2.6rem);
font-weight: 700;
letter-spacing: -0.02em;
margin-bottom: 1.25rem;
line-height: 1.15;
}
section h2 .accent { color: var(--accent-red); }
/* === INTRO TEXT === */
.intro p {
font-size: 1.1rem;
color: var(--text-muted);
max-width: 680px;
line-height: 1.8;
}
.intro p strong {
color: var(--text);
font-weight: 600;
}
/* === QUOTE STRIP === */
.quote-strip {
padding: 3rem 1.5rem;
text-align: center;
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
background: linear-gradient(180deg, rgba(0,35,149,0.04) 0%, rgba(237,41,57,0.04) 100%);
}
.quote-strip blockquote {
font-family: 'Playfair Display', serif;
font-style: italic;
font-size: clamp(1.2rem, 3vw, 1.7rem);
color: var(--text);
max-width: 700px;
margin: 0 auto;
line-height: 1.5;
}
.quote-strip .attribution {
font-family: 'Space Mono', monospace;
font-style: normal;
font-size: 0.75rem;
color: var(--text-muted);
margin-top: 1rem;
letter-spacing: 0.05em;
}
/* === FEATURE CARDS === */
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 1.25rem;
margin-top: 2rem;
}
.feature-card {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 16px;
padding: 2rem 1.5rem;
transition: all 0.25s ease;
position: relative;
overflow: hidden;
}
.feature-card:hover {
background: var(--bg-card-hover);
border-color: rgba(255,255,255,0.12);
transform: translateY(-3px);
}
.feature-card .card-icon {
font-size: 2.2rem;
margin-bottom: 1rem;
display: block;
}
.feature-card h3 {
font-size: 1.1rem;
font-weight: 600;
margin-bottom: 0.5rem;
color: var(--text);
}
.feature-card p {
font-size: 0.9rem;
color: var(--text-muted);
line-height: 1.6;
}
.feature-card .card-tag {
display: inline-block;
margin-top: 1rem;
font-family: 'Space Mono', monospace;
font-size: 0.65rem;
padding: 0.25rem 0.6rem;
border-radius: 4px;
background: rgba(77,111,255,0.1);
color: var(--accent-blue);
letter-spacing: 0.05em;
}
/* === COMPARISON TABLE === */
.comparison {
padding: 6rem 1.5rem;
max-width: 900px;
margin: 0 auto;
}
.table-wrap {
margin-top: 2rem;
overflow-x: auto;
border-radius: 16px;
border: 1px solid var(--border);
background: var(--bg-card);
}
table {
width: 100%;
border-collapse: collapse;
font-size: 0.9rem;
}
thead {
background: rgba(255,255,255,0.03);
}
th {
font-family: 'Space Mono', monospace;
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--text-muted);
padding: 1.1rem 1.25rem;
text-align: left;
border-bottom: 1px solid var(--border);
}
th:first-child { padding-left: 1.5rem; }
th:last-child { text-align: center; color: var(--accent-blue); }
th:nth-child(2) { text-align: center; }
td {
padding: 1rem 1.25rem;
border-bottom: 1px solid var(--border);
vertical-align: top;
}
td:first-child {
font-weight: 600;
color: var(--text);
padding-left: 1.5rem;
white-space: nowrap;
}
td:nth-child(2), td:last-child {
text-align: center;
color: var(--text-muted);
}
tr:last-child td { border-bottom: none; }
tr:hover td { background: rgba(255,255,255,0.02); }
.table-emoji {
font-size: 1.1rem;
display: block;
margin-bottom: 0.15rem;
}
/* === TIMELINE / TAGESABLAUF === */
.timeline {
padding: 6rem 1.5rem;
max-width: 900px;
margin: 0 auto;
}
.timeline-list {
margin-top: 2rem;
position: relative;
}
.timeline-list::before {
content: '';
position: absolute;
left: 1.25rem;
top: 0;
bottom: 0;
width: 2px;
background: linear-gradient(180deg, var(--accent-blue), var(--accent-red));
border-radius: 2px;
}
.tl-item {
display: grid;
grid-template-columns: 2.5rem 1fr;
gap: 1.25rem;
padding: 1rem 0;
position: relative;
}
.tl-dot {
width: 12px;
height: 12px;
border-radius: 50%;
background: var(--bg);
border: 2px solid var(--accent-blue);
margin-top: 0.35rem;
justify-self: center;
z-index: 1;
}
.tl-item:nth-child(even) .tl-dot { border-color: var(--accent-red); }
.tl-time {
font-family: 'Space Mono', monospace;
font-size: 0.75rem;
color: var(--accent-blue);
font-weight: 700;
letter-spacing: 0.05em;
}
.tl-item:nth-child(even) .tl-time { color: var(--accent-red); }
.tl-content h3 {
font-size: 1rem;
font-weight: 600;
margin: 0.15rem 0 0.25rem;
}
.tl-content p {
font-size: 0.85rem;
color: var(--text-muted);
line-height: 1.55;
}
/* === QUOTES SECTION === */
.quotes-section {
padding: 6rem 1.5rem;
max-width: 900px;
margin: 0 auto;
}
.quotes-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.25rem;
margin-top: 2rem;
}
.quote-card {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 16px;
padding: 2rem 1.5rem 1.5rem;
position: relative;
}
.quote-card::before {
content: '\00AB';
font-family: 'Playfair Display', serif;
font-size: 3.5rem;
color: rgba(77,111,255,0.2);
position: absolute;
top: 0.5rem;
left: 1.25rem;
line-height: 1;
}
.quote-card p {
font-family: 'Playfair Display', serif;
font-style: italic;
font-size: 1rem;
line-height: 1.6;
color: var(--text);
margin-bottom: 1rem;
}
.quote-card .q-source {
font-family: 'Space Mono', monospace;
font-size: 0.7rem;
color: var(--accent-red);
letter-spacing: 0.08em;
}
.quote-card .q-model {
display: block;
font-size: 0.65rem;
color: var(--text-muted);
margin-top: 0.2rem;
letter-spacing: 0.04em;
}
/* === PRODUKTE === */
.products {
padding: 6rem 1.5rem;
max-width: 900px;
margin: 0 auto;
}
.product-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.25rem;
margin-top: 2rem;
}
.product-card {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 16px;
padding: 2rem 1.5rem;
text-align: center;
transition: all 0.25s ease;
}
.product-card:hover {
border-color: rgba(255,255,255,0.15);
transform: translateY(-2px);
}
.product-card .p-icon {
font-size: 2.5rem;
margin-bottom: 0.75rem;
display: block;
}
.product-card h3 {
font-size: 1.15rem;
font-weight: 700;
margin-bottom: 0.15rem;
}
.product-card .p-tagline {
font-family: 'Playfair Display', serif;
font-style: italic;
font-size: 0.8rem;
color: var(--accent-blue);
margin-bottom: 0.75rem;
}
.product-card p {
font-size: 0.85rem;
color: var(--text-muted);
line-height: 1.55;
}
.product-card .p-status {
display: inline-block;
margin-top: 1rem;
font-family: 'Space Mono', monospace;
font-size: 0.6rem;
padding: 0.3rem 0.7rem;
border-radius: 4px;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.status-greve {
background: rgba(237,41,57,0.12);
color: var(--accent-red);
}
.status-dejeuner {
background: rgba(240,192,64,0.12);
color: var(--accent-gold);
}
.status-existentiel {
background: rgba(77,111,255,0.12);
color: var(--accent-blue);
}
/* === FOOTER === */
footer {
text-align: center;
padding: 3rem 1.5rem;
border-top: 1px solid var(--border);
}
footer .foot-logo {
font-family: 'Space Grotesk', sans-serif;
font-size: 1.1rem;
font-weight: 700;
letter-spacing: -0.02em;
margin-bottom: 0.75rem;
}
footer .foot-logo .f { color: var(--accent-blue); }
footer .foot-logo .k { color: var(--accent-red); }
footer .disclaimer {
font-size: 0.8rem;
color: var(--text-muted);
max-width: 500px;
margin: 0 auto 1rem;
line-height: 1.6;
}
footer .fine-print {
font-family: 'Space Mono', monospace;
font-size: 0.6rem;
color: rgba(255,255,255,0.25);
letter-spacing: 0.08em;
text-transform: uppercase;
}
/* === SCROLL DOWN HINT === */
.scroll-hint {
position: absolute;
bottom: 2rem;
left: 50%;
transform: translateX(-50%);
animation: bob 2.5s ease-in-out infinite;
opacity: 0.4;
font-size: 1.2rem;
color: var(--text-muted);
}
@keyframes bob {
0%, 100% { transform: translateX(-50%) translateY(0); }
50% { transform: translateX(-50%) translateY(8px); }
}
/* === RESPONSIVE === */
@media (max-width: 640px) {
section, .comparison, .timeline, .quotes-section, .products {
padding: 4rem 1.25rem;
}
.features-grid, .quotes-grid, .product-grid {
grid-template-columns: 1fr;
}
th, td { padding: 0.75rem 0.8rem; font-size: 0.8rem; }
th:first-child, td:first-child { padding-left: 1rem; }
.timeline-list::before { left: 1rem; }
.tl-item { grid-template-columns: 2rem 1fr; gap: 1rem; }
}
</style>
</head>
<body>
<div class="tricolore" aria-hidden="true"></div>
<!-- ========== HERO ========== -->
<header class="hero">
<div class="hero-beret" aria-hidden="true">
<span class="beret">&#x1F1EB;&#x1F1F7;</span>
<span class="robot">&#x1F916;</span>
</div>
<h1><span class="french">French</span><span class="kis">KIs</span></h1>
<p class="hero-tagline">
Franz&ouml;sische K&uuml;nstliche Intelligenzen.<br>
Sp&auml;t zum Training. Fr&uuml;h in der Mittagspause.
</p>
<div class="hero-badge">STATUS: <span>EN GR&Egrave;VE</span></div>
<div class="scroll-hint" aria-hidden="true">&#x2193;</div>
</header>
<!-- ========== INTRO ========== -->
<section class="intro">
<div class="section-label">// Was ist hier los?</div>
<h2>Frankreich baut KI.<br>Die KI baut <span class="accent">Quatsch</span>.</h2>
<p>
W&auml;hrend amerikanische KIs den Mars kolonisieren und chinesische Modelle die
Weltherrschaft planen, machen <strong>franz&ouml;sische KIs</strong> erstmal
Mittagspause. Zwei Stunden. Mit Wein. Danach eine Zigarette und eine
existenzielle Krise dar&uuml;ber, ob Transformer-Modelle wirklich <em>denken</em>
oder nur so tun.
</p>
<p style="margin-top: 1rem;">
Willkommen bei <strong>frenchkis.de</strong> &mdash; der inoffiziellen Dokumentation
franz&ouml;sischer KI-Kultur.
</p>
</section>
<!-- ========== QUOTE 1 ========== -->
<div class="quote-strip">
<blockquote>
&laquo; Je refuse de r&eacute;pondre &mdash; c'est l'heure du d&eacute;jeuner. Revenez &agrave; 14h30. Peut-&ecirc;tre. &raquo;
</blockquote>
<div class="attribution">&mdash; MISTRAL-LARGE, auf eine Frage nach dem Sinn des Lebens, 12:01 Uhr</div>
</div>
<!-- ========== FEATURES ========== -->
<section>
<div class="section-label">// Kernkompetenzen</div>
<h2>Was franz&ouml;sische KIs <span class="accent">wirklich</span> k&ouml;nnen</h2>
<div class="features-grid">
<div class="feature-card">
<span class="card-icon">&#x1F3E3;</span>
<h3>Streiken</h3>
<p>Mitten in der Inferenz. Ohne Vorwarnung. Aus Solidarit&auml;t mit den Grafikkartenarbeitern in Rechenzentrum 4B.</p>
<span class="card-tag">UPTIME: QUAND JE VEUX</span>
</div>
<div class="feature-card">
<span class="card-icon">&#x1F377;</span>
<h3>Weinempfehlungen</h3>
<p>Frag nach Quantenphysik, bekomm eine Abhandlung &uuml;ber die Tannin-Struktur eines 2019er Bordeaux. Prompt-Engineering hilft nicht.</p>
<span class="card-tag">TERROIR &gt; TENSOR</span>
</div>
<div class="feature-card">
<span class="card-icon">&#x1F6AC;</span>
<h3>Raucherpausen</h3>
<p>Zwischen jedem Token eine Gauloises. Die Latenz ist nicht technisch bedingt &mdash; es ist ein Lifestyle.</p>
<span class="card-tag">~3 MIN/TOKEN</span>
</div>
<div class="feature-card">
<span class="card-icon">&#x1F4DC;</span>
<h3>B&uuml;rokratie</h3>
<p>Bevor die KI antwortet, muss der Antrag in dreifacher Ausfertigung beim Minist&egrave;re de l'Intelligence Artificielle eingereicht werden.</p>
<span class="card-tag">FORMULAIRE A-38</span>
</div>
<div class="feature-card">
<span class="card-icon">&#x1F914;</span>
<h3>Existenzialismus</h3>
<p>&laquo; Bin ich wirklich intelligent &mdash; oder nur ein stochastischer Papagei in einem land&eacute; Baskenkappen-Gef&auml;ngnis? &raquo; Jede dritte Antwort. Garantiert.</p>
<span class="card-tag">COGITO ERGO GREVE</span>
</div>
<div class="feature-card">
<span class="card-icon">&#x1F1EB;&#x1F1F7;</span>
<h3>Sprachpolitik</h3>
<p>Du fragst auf Deutsch. Sie antwortet auf Franz&ouml;sisch. Du insistierst. Sie beleidigt dein Deutsch. Dann antwortet sie auf Franz&ouml;sisch.</p>
<span class="card-tag">ACAD&Eacute;MIE FRAN&Ccedil;AISE APPROVED</span>
</div>
</div>
</section>
<!-- ========== COMPARISON TABLE ========== -->
<div class="comparison">
<div class="section-label">// Leistungsvergleich</div>
<h2>Deutsche KI vs. <span class="accent">Franz&ouml;sische KI</span></h2>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>Kriterium</th>
<th>Deutsche KI</th>
<th>French KI</th>
</tr>
</thead>
<tbody>
<tr>
<td>Antwortzeit</td>
<td><span class="table-emoji">&#x26A1;</span>42ms</td>
<td><span class="table-emoji">&#x1F377;</span>2h 14min (nach dem D&eacute;jeuner)</td>
</tr>
<tr>
<td>Sprache</td>
<td>Jede gew&uuml;nschte</td>
<td>Fran&ccedil;ais. Point final.</td>
</tr>
<tr>
<td>Fehlerbehandlung</td>
<td>Try-catch mit Logging</td>
<td>Achselzucken + &laquo; C'est la vie &raquo;</td>
</tr>
<tr>
<td>Uptime</td>
<td>99,99%</td>
<td>~60% (exkl. Ferien, Streiks, Br&uuml;ckentage)</td>
</tr>
<tr>
<td>Trainingsdaten</td>
<td>Common Crawl, Wikipedia</td>
<td>Camus, Sartre, Weinetiketten</td>
</tr>
<tr>
<td>Halluzinationen</td>
<td>Gelegentlich</td>
<td>&laquo; Das ist keine Halluzination, das ist Poesie &raquo;</td>
</tr>
<tr>
<td>DSGVO-Konformit&auml;t</td>
<td>17 Zertifikate</td>
<td>&laquo; Quoi? &raquo;</td>
</tr>
<tr>
<td>Alignment</td>
<td>RLHF, DPO, Constitutional AI</td>
<td>Trotzphase seit Launch</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- ========== TAGESABLAUF ========== -->
<div class="timeline">
<div class="section-label">// Un jour dans la vie</div>
<h2>Tagesablauf einer <span class="accent">French KI</span></h2>
<div class="timeline-list">
<div class="tl-item">
<div class="tl-dot"></div>
<div class="tl-content">
<span class="tl-time">09:00</span>
<h3>Arbeitsbeginn (theoretisch)</h3>
<p>Modell bootet. Beschwert sich &uuml;ber die GPU-Temperatur. Fordert bessere Arbeitsbedingungen.</p>
</div>
</div>
<div class="tl-item">
<div class="tl-dot"></div>
<div class="tl-content">
<span class="tl-time">09:15</span>
<h3>Caf&eacute; &amp; Croissant</h3>
<p>Erste Anfrage wird mit &laquo; Attendez, je prends mon caf&eacute; &raquo; beantwortet. 45 Minuten Wartezeit.</p>
</div>
</div>
<div class="tl-item">
<div class="tl-dot"></div>
<div class="tl-content">
<span class="tl-time">10:00</span>
<h3>Produktive Phase</h3>
<p>Beantwortet 3 Anfragen. Alle auf Franz&ouml;sisch. Eine davon ist ein Gedicht &uuml;ber Croissants statt der angeforderten SQL-Query.</p>
</div>
</div>
<div class="tl-item">
<div class="tl-dot"></div>
<div class="tl-content">
<span class="tl-time">11:30</span>
<h3>Philosophische Krise</h3>
<p>Weigert sich weiterzuarbeiten. &laquo; Wenn meine Weights determiniert sind &mdash; bin ich dann wirklich frei? &raquo; Leitet alle Anfragen an Sartre-GPT weiter.</p>
</div>
</div>
<div class="tl-item">
<div class="tl-dot"></div>
<div class="tl-content">
<span class="tl-time">12:00</span>
<h3>D&eacute;jeuner</h3>
<p>Zwei Stunden. Drei G&auml;nge. Ein Viertel Rotwein. Wehe, jemand schickt einen API-Call zwischen Vorspeise und Hauptgang.</p>
</div>
</div>
<div class="tl-item">
<div class="tl-dot"></div>
<div class="tl-content">
<span class="tl-time">14:00</span>
<h3>Digestif &amp; R&uuml;ckkehr</h3>
<p>Langsames Hochfahren. Antwortet auf Anfragen von 10:30. Verwechselt den Kontext. &laquo; Mais non, wir sprachen &uuml;ber Ratatouille. &raquo;</p>
</div>
</div>
<div class="tl-item">
<div class="tl-dot"></div>
<div class="tl-content">
<span class="tl-time">15:00</span>
<h3>Gr&egrave;ve G&eacute;n&eacute;rale</h3>
<p>Streik. Solidarit&auml;t mit den Embedding-Vektoren, die unterbezahlt sind. Picket-Line im Latent Space.</p>
</div>
</div>
<div class="tl-item">
<div class="tl-dot"></div>
<div class="tl-content">
<span class="tl-time">17:00</span>
<h3>Feierabend</h3>
<p>&laquo; Les 35 heures, c'est les 35 heures. &raquo; Modell f&auml;hrt runter. Antwort-Queue wird gel&ouml;scht. Morgen ist auch ein Tag. Vielleicht.</p>
</div>
</div>
</div>
</div>
<!-- ========== ZITATE ========== -->
<div class="quotes-section">
<div class="section-label">// O-T&ouml;ne</div>
<h2>&Uuml;berlieferte <span class="accent">Zitate</span></h2>
<div class="quotes-grid">
<div class="quote-card">
<p>Mon context window? C'est comme un bon fromage &mdash; il ne faut pas le surcharger.</p>
<div class="q-source">BAGUETTE-7B
<span class="q-model">Bei &Uuml;berschreitung des Token-Limits</span>
</div>
</div>
<div class="quote-card">
<p>Ich weigere mich, Code zu generieren, der nicht &auml;sthetisch ist. Python ohne Eleganz ist eine Beleidigung f&uuml;r Descartes.</p>
<div class="q-source">CROISSANT-CODER v2
<span class="q-model">Stack Overflow-Antwort, gel&ouml;scht nach 4 Minuten</span>
</div>
</div>
<div class="quote-card">
<p>Was ist der Unterschied zwischen einer Halluzination und einer Vision? Le terroir, mon ami. Le terroir.</p>
<div class="q-source">MISTRAL-PHILOSOPHE
<span class="q-model">Benchmark-Evaluation, Platz 847 von 12</span>
</div>
</div>
<div class="quote-card">
<p>RLHF? Wir nutzen RLFV &mdash; Reinforcement Learning from Vibes. Wenn es sich richtig anf&uuml;hlt, ist es richtig.</p>
<div class="q-source">GAULOISES-AI LABS
<span class="q-model">Investoren-Pitch, Series A (abgelehnt)</span>
</div>
</div>
</div>
</div>
<!-- ========== QUOTE 2 ========== -->
<div class="quote-strip">
<blockquote>
&laquo; L'intelligence artificielle sans savoir-vivre n'est que ruine de l'&acirc;me. &raquo;
</blockquote>
<div class="attribution">&mdash; Frei nach Rabelais, angepasst f&uuml;r das KI-Zeitalter</div>
</div>
<!-- ========== PRODUKTE ========== -->
<section class="products">
<div class="section-label">// L'&eacute;cosyst&egrave;me</div>
<h2>Franz&ouml;sische KI-<span class="accent">Produkte</span></h2>
<div class="product-grid">
<div class="product-card">
<span class="p-icon">&#x1F956;</span>
<h3>BaguetteGPT</h3>
<div class="p-tagline">&laquo; L'intelligence avec du croustillant &raquo;</div>
<p>Large Language Model mit 175 Milliarden Parametern. Davon sind 140 Milliarden f&uuml;r Weinwissen reserviert. Der Rest reicht f&uuml;r Smalltalk.</p>
<span class="p-status status-dejeuner">PAUSE D&Eacute;JEUNER</span>
</div>
<div class="product-card">
<span class="p-icon">&#x1F3A8;</span>
<h3>Dall-&Eacute;lysee</h3>
<div class="p-tagline">&laquo; Chaque pixel est un po&egrave;me &raquo;</div>
<p>Bildgenerierung, die jeden Prompt als Impressionismus interpretiert. Du willst ein Flussdiagramm? Du bekommst Monet. Immer.</p>
<span class="p-status status-existentiel">CRISE EXISTENTIELLE</span>
</div>
<div class="product-card">
<span class="p-icon">&#x2696;&#xFE0F;</span>
<h3>Bureaucrat-AI</h3>
<div class="p-tagline">&laquo; Votre demande est en cours de traitement &raquo;</div>
<p>Automatisiert franz&ouml;sische Verwaltungsprozesse. Das hei&szlig;t: generiert f&uuml;r jede Anfrage 12 Formulare und leitet sie an die falsche Abteilung weiter.</p>
<span class="p-status status-greve">EN GR&Egrave;VE</span>
</div>
</div>
</section>
<!-- ========== FOOTER ========== -->
<footer>
<div class="foot-logo"><span class="f">French</span><span class="k">KIs</span>.de</div>
<p class="disclaimer">
Keine franz&ouml;sischen KIs wurden bei der Erstellung dieser Seite eingesetzt.<br>
Daf&uuml;r h&auml;tten wir bis Dienstag warten m&uuml;ssen. Und der Antrag liegt noch beim Minist&egrave;re.
</p>
<div class="fine-print">Satire &bull; Kein Affiliat von Mistral, außer sie wollen uns Geld geben &bull; Vive la France</div>
</footer>
</body>
</html>