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:
896
sites/frenchkis.de/index.html
Normal file
896
sites/frenchkis.de/index.html
Normal 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ösische Künstliche Intelligenzen</title>
|
||||
<meta name="description" content="French KIs: Alles über französische Kü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">🇫🇷</span>
|
||||
<span class="robot">🤖</span>
|
||||
</div>
|
||||
<h1><span class="french">French</span><span class="kis">KIs</span></h1>
|
||||
<p class="hero-tagline">
|
||||
Französische Künstliche Intelligenzen.<br>
|
||||
Spät zum Training. Früh in der Mittagspause.
|
||||
</p>
|
||||
<div class="hero-badge">STATUS: <span>EN GRÈVE</span></div>
|
||||
<div class="scroll-hint" aria-hidden="true">↓</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ährend amerikanische KIs den Mars kolonisieren und chinesische Modelle die
|
||||
Weltherrschaft planen, machen <strong>französische KIs</strong> erstmal
|
||||
Mittagspause. Zwei Stunden. Mit Wein. Danach eine Zigarette und eine
|
||||
existenzielle Krise darüber, ob Transformer-Modelle wirklich <em>denken</em>
|
||||
oder nur so tun.
|
||||
</p>
|
||||
<p style="margin-top: 1rem;">
|
||||
Willkommen bei <strong>frenchkis.de</strong> — der inoffiziellen Dokumentation
|
||||
französischer KI-Kultur.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- ========== QUOTE 1 ========== -->
|
||||
<div class="quote-strip">
|
||||
<blockquote>
|
||||
« Je refuse de répondre — c'est l'heure du déjeuner. Revenez à 14h30. Peut-être. »
|
||||
</blockquote>
|
||||
<div class="attribution">— 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ösische KIs <span class="accent">wirklich</span> können</h2>
|
||||
<div class="features-grid">
|
||||
<div class="feature-card">
|
||||
<span class="card-icon">🏣</span>
|
||||
<h3>Streiken</h3>
|
||||
<p>Mitten in der Inferenz. Ohne Vorwarnung. Aus Solidaritä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">🍷</span>
|
||||
<h3>Weinempfehlungen</h3>
|
||||
<p>Frag nach Quantenphysik, bekomm eine Abhandlung über die Tannin-Struktur eines 2019er Bordeaux. Prompt-Engineering hilft nicht.</p>
|
||||
<span class="card-tag">TERROIR > TENSOR</span>
|
||||
</div>
|
||||
<div class="feature-card">
|
||||
<span class="card-icon">🚬</span>
|
||||
<h3>Raucherpausen</h3>
|
||||
<p>Zwischen jedem Token eine Gauloises. Die Latenz ist nicht technisch bedingt — es ist ein Lifestyle.</p>
|
||||
<span class="card-tag">~3 MIN/TOKEN</span>
|
||||
</div>
|
||||
<div class="feature-card">
|
||||
<span class="card-icon">📜</span>
|
||||
<h3>Bürokratie</h3>
|
||||
<p>Bevor die KI antwortet, muss der Antrag in dreifacher Ausfertigung beim Ministè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">🤔</span>
|
||||
<h3>Existenzialismus</h3>
|
||||
<p>« Bin ich wirklich intelligent — oder nur ein stochastischer Papagei in einem landé Baskenkappen-Gefängnis? » Jede dritte Antwort. Garantiert.</p>
|
||||
<span class="card-tag">COGITO ERGO GREVE</span>
|
||||
</div>
|
||||
<div class="feature-card">
|
||||
<span class="card-icon">🇫🇷</span>
|
||||
<h3>Sprachpolitik</h3>
|
||||
<p>Du fragst auf Deutsch. Sie antwortet auf Französisch. Du insistierst. Sie beleidigt dein Deutsch. Dann antwortet sie auf Französisch.</p>
|
||||
<span class="card-tag">ACADÉMIE FRANÇ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ö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">⚡</span>42ms</td>
|
||||
<td><span class="table-emoji">🍷</span>2h 14min (nach dem Déjeuner)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sprache</td>
|
||||
<td>Jede gewünschte</td>
|
||||
<td>Français. Point final.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fehlerbehandlung</td>
|
||||
<td>Try-catch mit Logging</td>
|
||||
<td>Achselzucken + « C'est la vie »</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Uptime</td>
|
||||
<td>99,99%</td>
|
||||
<td>~60% (exkl. Ferien, Streiks, Brü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>« Das ist keine Halluzination, das ist Poesie »</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>DSGVO-Konformität</td>
|
||||
<td>17 Zertifikate</td>
|
||||
<td>« Quoi? »</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 ü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é & Croissant</h3>
|
||||
<p>Erste Anfrage wird mit « Attendez, je prends mon café » 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ösisch. Eine davon ist ein Gedicht ü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. « Wenn meine Weights determiniert sind — bin ich dann wirklich frei? » 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éjeuner</h3>
|
||||
<p>Zwei Stunden. Drei Gä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 & Rückkehr</h3>
|
||||
<p>Langsames Hochfahren. Antwortet auf Anfragen von 10:30. Verwechselt den Kontext. « Mais non, wir sprachen über Ratatouille. »</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ève Générale</h3>
|
||||
<p>Streik. Solidaritä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>« Les 35 heures, c'est les 35 heures. » Modell fährt runter. Antwort-Queue wird gelöscht. Morgen ist auch ein Tag. Vielleicht.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ========== ZITATE ========== -->
|
||||
<div class="quotes-section">
|
||||
<div class="section-label">// O-Töne</div>
|
||||
<h2>Ü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 — il ne faut pas le surcharger.</p>
|
||||
<div class="q-source">BAGUETTE-7B
|
||||
<span class="q-model">Bei Überschreitung des Token-Limits</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="quote-card">
|
||||
<p>Ich weigere mich, Code zu generieren, der nicht ästhetisch ist. Python ohne Eleganz ist eine Beleidigung für Descartes.</p>
|
||||
<div class="q-source">CROISSANT-CODER v2
|
||||
<span class="q-model">Stack Overflow-Antwort, gelö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 — Reinforcement Learning from Vibes. Wenn es sich richtig anfü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>
|
||||
« L'intelligence artificielle sans savoir-vivre n'est que ruine de l'âme. »
|
||||
</blockquote>
|
||||
<div class="attribution">— Frei nach Rabelais, angepasst für das KI-Zeitalter</div>
|
||||
</div>
|
||||
|
||||
<!-- ========== PRODUKTE ========== -->
|
||||
<section class="products">
|
||||
<div class="section-label">// L'écosystème</div>
|
||||
<h2>Französische KI-<span class="accent">Produkte</span></h2>
|
||||
<div class="product-grid">
|
||||
<div class="product-card">
|
||||
<span class="p-icon">🥖</span>
|
||||
<h3>BaguetteGPT</h3>
|
||||
<div class="p-tagline">« L'intelligence avec du croustillant »</div>
|
||||
<p>Large Language Model mit 175 Milliarden Parametern. Davon sind 140 Milliarden für Weinwissen reserviert. Der Rest reicht für Smalltalk.</p>
|
||||
<span class="p-status status-dejeuner">PAUSE DÉJEUNER</span>
|
||||
</div>
|
||||
<div class="product-card">
|
||||
<span class="p-icon">🎨</span>
|
||||
<h3>Dall-Élysee</h3>
|
||||
<div class="p-tagline">« Chaque pixel est un poème »</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">⚖️</span>
|
||||
<h3>Bureaucrat-AI</h3>
|
||||
<div class="p-tagline">« Votre demande est en cours de traitement »</div>
|
||||
<p>Automatisiert französische Verwaltungsprozesse. Das heißt: generiert für jede Anfrage 12 Formulare und leitet sie an die falsche Abteilung weiter.</p>
|
||||
<span class="p-status status-greve">EN GRÈ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ösischen KIs wurden bei der Erstellung dieser Seite eingesetzt.<br>
|
||||
Dafür hätten wir bis Dienstag warten müssen. Und der Antrag liegt noch beim Ministère.
|
||||
</p>
|
||||
<div class="fine-print">Satire • Kein Affiliat von Mistral, außer sie wollen uns Geld geben • Vive la France</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user