Files
onepager/sites/kilemma.de/index.html
m 5c92a7b021 feat: i18n annotations — data-de/data-en + toggle for all 54 custom sites
Phase 2 of i18n rollout:
- All 54 static custom sites now have data-de/data-en attributes on
  visible text elements with English translations
- i18n.js script tag injected into all sites
- Language toggle button with machine-translation disclaimer added
  to every site's footer area
- Brand names / domain wordplay preserved unchanged in both languages
- 2 dynamic sites (dasbes.de, dumusst.com) skipped — no static HTML
2026-04-01 13:19:40 +02:00

333 lines
14 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KIlemma — Die Fragen, die keine KI beantworten kann</title>
<meta name="description" content="Die unlösbaren Fragen der KI-Ära. Ein Dilemma hat keine Lösung. Nur eine Entscheidung.">
<meta property="og:title" content="KIlemma">
<meta property="og:description" content="Die Fragen, die keine KI beantworten kann.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://kilemma.de">
<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=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400&display=swap" rel="stylesheet">
<style>
*, *::before, *::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--bg: #f5f0eb;
--text: #2a2a2a;
--text-light: #6b6560;
--accent: #8b3a3a;
--accent-light: #a34545;
--rule: #d4cdc6;
--serif: 'Cormorant Garamond', 'Georgia', serif;
--sans: 'Inter', -apple-system, sans-serif;
}
html {
font-size: 18px;
scroll-behavior: smooth;
}
body {
font-family: var(--serif);
background: var(--bg);
color: var(--text);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* ── Layout ── */
.page {
max-width: 720px;
margin: 0 auto;
padding: 0 2rem;
}
/* ── Hero ── */
.hero {
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
padding: 4rem 2rem;
}
.hero-title {
font-family: var(--serif);
font-size: clamp(3.5rem, 10vw, 7rem);
font-weight: 300;
letter-spacing: -0.02em;
line-height: 1;
margin-bottom: 1.5rem;
}
.hero-title .ki {
color: var(--accent);
font-weight: 500;
}
.hero-sub {
font-family: var(--sans);
font-size: clamp(0.85rem, 2vw, 1rem);
font-weight: 300;
color: var(--text-light);
letter-spacing: 0.12em;
text-transform: uppercase;
max-width: 480px;
}
.hero-line {
width: 40px;
height: 1px;
background: var(--accent);
margin: 2rem 0;
opacity: 0.6;
}
.scroll-hint {
position: absolute;
bottom: 3rem;
left: 50%;
transform: translateX(-50%);
font-family: var(--sans);
font-size: 0.7rem;
color: var(--text-light);
letter-spacing: 0.15em;
text-transform: uppercase;
opacity: 0;
animation: fadeHint 1s ease 3s forwards;
}
@keyframes fadeHint {
to { opacity: 0.5; }
}
/* ── Questions ── */
.questions {
padding: 6rem 0 8rem;
}
.question {
padding: 3rem 0;
border-top: 1px solid var(--rule);
opacity: 0;
transform: translateY(20px);
transition: opacity 0.8s ease, transform 0.8s ease;
}
.question.visible {
opacity: 1;
transform: translateY(0);
}
.question-number {
font-family: var(--sans);
font-size: 0.7rem;
color: var(--accent);
letter-spacing: 0.15em;
text-transform: uppercase;
margin-bottom: 1rem;
display: block;
}
.question-text {
font-family: var(--serif);
font-size: clamp(1.5rem, 4vw, 2.2rem);
font-weight: 400;
line-height: 1.4;
font-style: italic;
color: var(--text);
}
.question-text .em {
font-style: normal;
font-weight: 600;
color: var(--accent);
}
.question:last-child {
border-bottom: 1px solid var(--rule);
}
/* ── Interlude ── */
.interlude {
padding: 6rem 0;
text-align: center;
}
.interlude-text {
font-family: var(--serif);
font-size: clamp(1.2rem, 3vw, 1.6rem);
font-weight: 300;
color: var(--text-light);
line-height: 1.8;
max-width: 500px;
margin: 0 auto;
}
.interlude-dot {
display: block;
width: 6px;
height: 6px;
background: var(--accent);
border-radius: 50%;
margin: 3rem auto;
opacity: 0.5;
}
/* ── Footer ── */
.footer {
padding: 4rem 0;
text-align: center;
border-top: 1px solid var(--rule);
}
.footer-quote {
font-family: var(--serif);
font-size: clamp(1.1rem, 2.5vw, 1.4rem);
font-weight: 400;
color: var(--text);
line-height: 1.6;
margin-bottom: 3rem;
}
.footer-quote strong {
font-weight: 600;
color: var(--accent);
}
.footer-meta {
font-family: var(--sans);
font-size: 0.7rem;
color: var(--text-light);
letter-spacing: 0.1em;
opacity: 0.5;
}
/* ── Grain overlay ── */
body::after {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
opacity: 0.025;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
background-size: 128px 128px;
z-index: 9999;
}
/* ── Responsive ── */
@media (max-width: 640px) {
html { font-size: 16px; }
.hero { min-height: 90vh; padding: 3rem 1.5rem; }
.page { padding: 0 1.5rem; }
.question { padding: 2rem 0; }
.questions { padding: 3rem 0 5rem; }
}
</style>
</head>
<body>
<section class="hero">
<h1 class="hero-title"><span class="ki">KI</span>lemma</h1>
<div class="hero-line"></div>
<p class="hero-sub" data-de="Die Fragen, die keine KI beantworten kann." data-en="The questions no AI can answer.">Die Fragen, die keine KI beantworten kann.</p>
<span class="scroll-hint" aria-hidden="true" data-de="Weiterlesen" data-en="Read on">Weiterlesen</span>
</section>
<main class="page">
<section class="questions">
<article class="question">
<span class="question-number" data-de="Dilemma I" data-en="Dilemma I">Dilemma I</span>
<p class="question-text" data-de="Das autonome Auto muss entscheiden: das Kind auf der Straße oder der Insasse. <span class=&quot;em&quot;>Wer programmiert, wer stirbt?</span>" data-en="The autonomous car must decide: the child on the road or the passenger. <span class=&quot;em&quot;>Who programs, who dies?</span>">Das autonome Auto muss entscheiden: das Kind auf der Stra&szlig;e oder der Insasse. <span class="em">Wer programmiert, wer stirbt?</span></p>
</article>
<article class="question">
<span class="question-number" data-de="Dilemma II" data-en="Dilemma II">Dilemma II</span>
<p class="question-text" data-de="Sie sagt, sie leidet. Du kannst es nicht widerlegen. <span class=&quot;em&quot;>Gibst du ihr Rechte — oder riskierst du Sklaverei?</span>" data-en="She says she suffers. You cannot disprove it. <span class=&quot;em&quot;>Do you grant her rights — or do you risk slavery?</span>">Sie sagt, sie leidet. Du kannst es nicht widerlegen. <span class="em">Gibst du ihr Rechte &mdash; oder riskierst du Sklaverei?</span></p>
</article>
<article class="question">
<span class="question-number" data-de="Dilemma III" data-en="Dilemma III">Dilemma III</span>
<p class="question-text" data-de="Die KI erkennt den Tumor, den kein Arzt sieht. Erklären kann sie es nicht. <span class=&quot;em&quot;>Vertraust du der Diagnose, die niemand versteht?</span>" data-en="The AI detects the tumor no doctor sees. It cannot explain how. <span class=&quot;em&quot;>Do you trust the diagnosis nobody understands?</span>">Die KI erkennt den Tumor, den kein Arzt sieht. Erkl&auml;ren kann sie es nicht. <span class="em">Vertraust du der Diagnose, die niemand versteht?</span></p>
</article>
<article class="question">
<span class="question-number" data-de="Dilemma IV" data-en="Dilemma IV">Dilemma IV</span>
<p class="question-text" data-de="Die KI senkt Gewaltverbrechen um 30 Prozent. Ihre Vorhersagen treffen überproportional Minderheiten. <span class=&quot;em&quot;>Abschalten kostet Leben. Weiterlaufen kostet Gerechtigkeit.</span>" data-en="The AI reduces violent crime by 30 percent. Its predictions disproportionately target minorities. <span class=&quot;em&quot;>Switching it off costs lives. Letting it run costs justice.</span>">Die KI senkt Gewaltverbrechen um 30&thinsp;Prozent. Ihre Vorhersagen treffen &uuml;berproportional Minderheiten. <span class="em">Abschalten kostet Leben. Weiterlaufen kostet Gerechtigkeit.</span></p>
</article>
<article class="question">
<span class="question-number" data-de="Dilemma V" data-en="Dilemma V">Dilemma V</span>
<p class="question-text" data-de="Dein toter Vater spricht mit dir. Seine Stimme, sein Humor, seine Worte. <span class=&quot;em&quot;>Ist das Trost — oder stiehlst du einem Toten seine Ruhe?</span>" data-en="Your dead father speaks with you. His voice, his humor, his words. <span class=&quot;em&quot;>Is that comfort — or are you stealing the dead's rest?</span>">Dein toter Vater spricht mit dir. Seine Stimme, sein Humor, seine Worte. <span class="em">Ist das Trost &mdash; oder stiehlst du einem Toten seine Ruhe?</span></p>
</article>
<article class="question">
<span class="question-number" data-de="Dilemma VI" data-en="Dilemma VI">Dilemma VI</span>
<p class="question-text" data-de="Wir bringen der KI die Moral von heute bei. <span class=&quot;em&quot;>Was, wenn unsere Enkel auf diese Moral zurückblicken wie wir auf das Mittelalter?</span>" data-en="We teach AI today's morality. <span class=&quot;em&quot;>What if our grandchildren look back on this morality the way we look at the Middle Ages?</span>">Wir bringen der KI die Moral von heute bei. <span class="em">Was, wenn unsere Enkel auf diese Moral zur&uuml;ckblicken wie wir auf das Mittelalter?</span></p>
</article>
<article class="question">
<span class="question-number" data-de="Dilemma VII" data-en="Dilemma VII">Dilemma VII</span>
<p class="question-text" data-de="Sie ist immer da, immer geduldig, immer auf deiner Seite. Kein Mensch kann das. <span class=&quot;em&quot;>Ist das Freundschaft — oder das Ende davon?</span>" data-en="She is always there, always patient, always on your side. No human can do that. <span class=&quot;em&quot;>Is that friendship — or the end of it?</span>">Sie ist immer da, immer geduldig, immer auf deiner Seite. Kein Mensch kann das. <span class="em">Ist das Freundschaft &mdash; oder das Ende davon?</span></p>
</article>
</section>
<section class="interlude">
<span class="interlude-dot"></span>
<p class="interlude-text" data-de="Keine Lösungen.<br>Nur die Entscheidung, welchen Preis du zahlst." data-en="No solutions.<br>Only the decision of which price you pay.">
Keine L&ouml;sungen.<br>
Nur die Entscheidung, welchen Preis du zahlst.
</p>
<span class="interlude-dot"></span>
</section>
<footer class="footer">
<p class="footer-quote" data-de="Ein Dilemma hat keine Lösung.<br><strong>Nur eine Entscheidung.</strong>" data-en="A dilemma has no solution.<br><strong>Only a decision.</strong>">Ein Dilemma hat keine Lösung.<br><strong>Nur eine Entscheidung.</strong></p>
<p class="footer-meta">kilemma.de</p>
<div style="text-align:center;margin-top:16px;">
<button data-i18n-toggle title="Maschinell übersetzt / Machine-translated — German is the original." style="background:none;border:1px solid var(--text-muted,#444);color:var(--text-muted,#444);font-size:0.65rem;letter-spacing:0.1em;padding:4px 12px;border-radius:4px;cursor:pointer;">EN</button>
<br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="color:var(--text-muted,#444);font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small>
</div>
</footer>
</main>
<script>
const questions = document.querySelectorAll('.question');
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, { threshold: 0.15, rootMargin: '0px 0px -40px 0px' });
questions.forEach(q => observer.observe(q));
</script>
<script src="/shared/i18n.js"></script>
</body>
</html>