Files
onepager/sites/heygoldi.de/index.html
m 84b28d64f5 feat: AI/KI disclosure footer — shared/ai-disclosure.js + all 54 sites
Self-injecting script following impressum.js pattern:
- data-tone attribute: playful | serious | minimal | none
- Reads document.documentElement.lang for KI (de) vs AI (en)
- MutationObserver on lang attr for i18n toggle compat
- All tones link to msbls.de/ki
- Injected into all 54 custom sites with data-tone="playful"
- Template infra: base.html includes script, render.sh reads disclosure.tone
- disclosure.tone added to 3 example site.yaml files

Implements m/onepager#2
2026-04-01 13:26:04 +02:00

590 lines
22 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hey Goldi! — Dein freundlicher KI-Begleiter</title>
<meta name="description" content="Hey Goldi! — KI-Companion für Menschen, die es einfach mögen. Warm, freundlich, immer da.">
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🧸</text></svg>">
<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=Nunito:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<style>
*, *::before, *::after {
margin: 0; padding: 0; box-sizing: border-box;
}
:root {
--gold: #D4A033;
--gold-light: #E8C567;
--gold-bright: #F5D78E;
--gold-pale: #FBF0D4;
--gold-glow: rgba(212, 160, 51, 0.15);
--warm: #8B6233;
--warm-light: #A07842;
--cream: #FFF9EE;
--cream-warm: #FFF3DD;
--cream-rose: #FFF0E8;
--text: #3D2E1C;
--text-soft: #7A6B58;
--text-gentle: #A89880;
--rose: #E8A090;
--rose-soft: rgba(232, 160, 144, 0.12);
--sage: #8BA87A;
--sky: #A8C8D8;
}
html { scroll-behavior: smooth; }
body {
font-family: 'Nunito', -apple-system, sans-serif;
background: var(--cream);
color: var(--text);
line-height: 1.7;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
font-size: 18px;
}
/* === NAV === */
nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
padding: 16px 0;
background: rgba(255, 249, 238, 0.94);
backdrop-filter: blur(12px);
border-bottom: 2px solid var(--gold-pale);
}
nav .inner {
max-width: 800px; margin: 0 auto; padding: 0 28px;
display: flex; justify-content: space-between; align-items: center;
}
.logo {
font-size: 1.3rem; font-weight: 800;
color: var(--text);
}
.logo .goldi { color: var(--gold); }
.logo .bear { font-size: 1.2em; margin-right: 6px; }
nav a {
color: var(--text-soft); text-decoration: none;
font-size: 0.95rem; font-weight: 600;
background: var(--gold);
color: white;
padding: 8px 20px;
border-radius: 40px;
transition: all 0.3s;
}
nav a:hover {
background: var(--warm);
transform: translateY(-1px);
}
/* === HERO === */
.hero {
min-height: 100vh;
display: flex; flex-direction: column;
align-items: center; justify-content: center;
text-align: center; padding: 120px 28px 80px;
background:
radial-gradient(ellipse at 50% 60%, var(--gold-glow) 0%, transparent 50%),
radial-gradient(ellipse at 30% 80%, var(--rose-soft) 0%, transparent 40%),
var(--cream);
}
.hero-bear {
font-size: clamp(6rem, 15vw, 10rem);
line-height: 1;
margin-bottom: 16px;
animation: gentle-bounce 3s ease-in-out infinite;
}
@keyframes gentle-bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
h1 {
font-size: clamp(2.8rem, 8vw, 4.5rem);
font-weight: 800;
line-height: 1.1;
margin-bottom: 20px;
}
h1 .hey { color: var(--text); }
h1 .goldi { color: var(--gold); }
h1 .excl { color: var(--rose); }
.hero-sub {
font-size: clamp(1.1rem, 2.5vw, 1.35rem);
color: var(--text-soft);
font-weight: 500;
max-width: 500px;
margin: 0 auto 32px;
line-height: 1.8;
}
.hero-sub strong {
color: var(--text);
font-weight: 700;
}
.cta-big {
display: inline-flex; align-items: center; gap: 12px;
padding: 18px 44px;
background: var(--gold);
color: white;
font-size: 1.15rem; font-weight: 700;
border-radius: 60px;
text-decoration: none; border: none; cursor: pointer;
transition: all 0.3s;
box-shadow: 0 8px 28px var(--gold-glow);
}
.cta-big:hover {
background: var(--warm);
transform: translateY(-2px) scale(1.02);
box-shadow: 0 12px 40px rgba(212, 160, 51, 0.25);
}
/* === CONTAINER === */
.container {
max-width: 800px; margin: 0 auto; padding: 0 28px;
}
/* === INTRO === */
.intro {
text-align: center;
padding: 80px 28px;
background: var(--cream-warm);
border-radius: 0;
}
.intro-text {
font-size: clamp(1.15rem, 2.5vw, 1.45rem);
font-weight: 500;
line-height: 2;
color: var(--text-soft);
max-width: 560px; margin: 0 auto;
}
.intro-text strong { color: var(--text); font-weight: 700; }
.intro-text .goldi { color: var(--gold); font-weight: 800; }
/* === SECTIONS === */
section { padding: 80px 0; }
.section-emoji {
font-size: 2rem;
margin-bottom: 12px;
}
h2 {
font-size: clamp(1.6rem, 4vw, 2.2rem);
font-weight: 800;
margin-bottom: 12px;
}
.section-desc {
color: var(--text-soft);
font-size: 1rem;
max-width: 500px;
margin-bottom: 48px;
line-height: 1.8;
font-weight: 500;
}
/* === FEATURES === */
.features-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
}
.feature-card {
background: white;
border: 2px solid var(--gold-pale);
border-radius: 24px;
padding: 36px 28px;
transition: all 0.3s;
}
.feature-card:hover {
border-color: var(--gold-light);
transform: translateY(-3px);
box-shadow: 0 8px 32px var(--gold-glow);
}
.feature-emoji {
font-size: 2.2rem;
margin-bottom: 14px;
}
.feature-card h3 {
font-size: 1.15rem; font-weight: 700;
margin-bottom: 8px;
color: var(--text);
}
.feature-card p {
color: var(--text-soft);
font-size: 0.95rem; line-height: 1.7;
font-weight: 500;
}
/* === HOW IT WORKS === */
.steps-section {
background: var(--cream-warm);
}
.steps-list {
display: flex; flex-direction: column;
gap: 20px;
}
.step {
display: flex; gap: 24px;
align-items: flex-start;
background: white;
border-radius: 20px;
padding: 28px;
border: 2px solid var(--gold-pale);
}
.step-number {
flex-shrink: 0;
width: 52px; height: 52px;
background: var(--gold);
color: white;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-size: 1.3rem; font-weight: 800;
}
.step-body h3 {
font-size: 1.1rem; font-weight: 700;
margin-bottom: 4px;
}
.step-body p {
color: var(--text-soft);
font-size: 0.95rem; line-height: 1.7;
font-weight: 500;
}
/* === TESTIMONIAL === */
.testimonial-section {
text-align: center;
padding: 80px 28px;
background: var(--cream-rose);
}
.testimonial-quote {
font-size: clamp(1.2rem, 2.8vw, 1.6rem);
font-weight: 600;
font-style: italic;
color: var(--text);
max-width: 520px; margin: 0 auto 20px;
line-height: 1.8;
}
.testimonial-author {
font-size: 0.95rem;
color: var(--text-soft);
font-weight: 600;
}
/* === REASSURANCE === */
.reassurance {
text-align: center;
padding: 60px 28px;
}
.reassurance-items {
display: flex; justify-content: center;
gap: 40px; flex-wrap: wrap;
margin-top: 24px;
}
.reassurance-item {
text-align: center;
max-width: 160px;
}
.reassurance-emoji {
font-size: 2rem;
margin-bottom: 8px;
}
.reassurance-text {
font-size: 0.9rem;
font-weight: 600;
color: var(--text);
}
.reassurance-sub {
font-size: 0.8rem;
color: var(--text-gentle);
margin-top: 2px;
font-weight: 500;
}
/* === CTA === */
.cta-section {
text-align: center;
padding: 80px 28px 120px;
background:
radial-gradient(ellipse at 50% 50%, var(--gold-glow) 0%, transparent 50%),
var(--cream);
}
.cta-section h2 {
font-size: clamp(1.8rem, 4vw, 2.5rem);
margin-bottom: 16px;
}
.cta-section p {
color: var(--text-soft);
font-size: 1.05rem;
max-width: 440px;
margin: 0 auto 36px;
line-height: 1.8;
font-weight: 500;
}
/* === FOOTER === */
footer {
background: var(--warm);
color: var(--gold-pale);
text-align: center;
padding: 36px 28px;
}
.footer-bear {
font-size: 2rem;
margin-bottom: 8px;
}
.footer-text {
font-size: 0.9rem;
font-weight: 600;
opacity: 0.8;
}
.footer-copy {
font-size: 0.75rem;
opacity: 0.4;
margin-top: 10px;
}
.footer-copy a {
color: var(--gold-pale);
text-decoration: none;
}
/* === MOBILE === */
@media (max-width: 768px) {
.features-grid { grid-template-columns: 1fr; }
.reassurance-items { gap: 24px; }
}
@media (max-width: 640px) {
body { font-size: 17px; }
.hero { padding: 110px 20px 60px; }
section { padding: 60px 0; }
.step { flex-direction: column; gap: 16px; }
.feature-card { padding: 28px 24px; }
}
</style>
</head>
<body>
<nav>
<div class="inner">
<div class="logo">
<span class="bear">🧸</span>
Hey <span class="goldi">Goldi</span>!
</div>
<a href="#kontakt" data-de="Hallo sagen" data-en="Say hello">Hallo sagen</a>
</div>
</nav>
<section class="hero">
<div class="hero-bear">🧸</div>
<h1><span class="hey">Hey </span><span class="goldi">Goldi</span><span class="excl">!</span></h1>
<p class="hero-sub" data-de="Dein &lt;strong&gt;freundlicher KI-Begleiter&lt;/strong&gt;.&lt;br&gt; Immer da. Immer geduldig.&lt;br&gt; Wie ein guter Freund, der alles erklärt." data-en="Your &lt;strong&gt;friendly AI companion&lt;/strong&gt;.&lt;br&gt; Always there. Always patient.&lt;br&gt; Like a good friend who explains everything.">
Dein <strong>freundlicher KI-Begleiter</strong>.<br>
Immer da. Immer geduldig.<br>
Wie ein guter Freund, der alles erklärt.
</p>
<a href="#kontakt" class="cta-big" data-de="🧸 Goldi kennenlernen" data-en="🧸 Meet Goldi">
🧸 Goldi kennenlernen
</a>
</section>
<div class="intro">
<div class="container">
<p class="intro-text" data-de="Technik muss nicht &lt;strong&gt;kompliziert&lt;/strong&gt; sein.&lt;br&gt; &lt;span class=&quot;goldi&quot;&gt;Goldi&lt;/span&gt; erklärt alles in &lt;strong&gt;einfachen Worten&lt;/strong&gt;.&lt;br&gt; Kein Fachchinesisch. Keine Hektik.&lt;br&gt; Nur ein &lt;strong&gt;freundliches Gespräch&lt;/strong&gt;." data-en="Technology doesn't have to be &lt;strong&gt;complicated&lt;/strong&gt;.&lt;br&gt; &lt;span class=&quot;goldi&quot;&gt;Goldi&lt;/span&gt; explains everything in &lt;strong&gt;simple words&lt;/strong&gt;.&lt;br&gt; No jargon. No rushing.&lt;br&gt; Just a &lt;strong&gt;friendly conversation&lt;/strong&gt;.">
Technik muss nicht <strong>kompliziert</strong> sein.<br>
<span class="goldi">Goldi</span> erklärt alles in <strong>einfachen Worten</strong>.<br>
Kein Fachchinesisch. Keine Hektik.<br>
Nur ein <strong>freundliches Gespräch</strong>.
</p>
</div>
</div>
<section id="features">
<div class="container">
<div class="section-emoji"></div>
<h2 data-de="Was Goldi alles kann" data-en="Everything Goldi can do">Was Goldi alles kann</h2>
<div class="section-desc" data-de="Goldi hilft dir bei allem, was im Alltag anfällt. Geduldig, verständlich und immer freundlich." data-en="Goldi helps you with everything that comes up in daily life. Patient, understandable and always friendly.">
Goldi hilft dir bei allem, was im Alltag anfällt.
Geduldig, verständlich und immer freundlich.
</div>
<div class="features-grid">
<div class="feature-card">
<div class="feature-emoji">💬</div>
<h3 data-de="Einfach plaudern" data-en="Just chat">Einfach plaudern</h3>
<p data-de="Frag Goldi was du möchtest. Zum Wetter, zu Rezepten, zur Nachrichten-Lage. Goldi antwortet so, dass es Spaß macht." data-en="Ask Goldi whatever you like. About the weather, recipes, current news. Goldi answers in a way that's fun.">Frag Goldi was du möchtest. Zum Wetter, zu Rezepten, zur Nachrichten-Lage. Goldi antwortet so, dass es Spaß macht.</p>
</div>
<div class="feature-card">
<div class="feature-emoji">📱</div>
<h3 data-de="Technik-Hilfe" data-en="Tech help">Technik-Hilfe</h3>
<p data-de="Das Handy spinnt? Die App macht Probleme? Goldi erklärt Schritt für Schritt, was zu tun ist. In deinem Tempo." data-en="Phone acting up? App giving trouble? Goldi explains step by step what to do. At your own pace.">Das Handy spinnt? Die App macht Probleme? Goldi erklärt Schritt für Schritt, was zu tun ist. In deinem Tempo.</p>
</div>
<div class="feature-card">
<div class="feature-emoji">📝</div>
<h3 data-de="Briefe &amp; Texte" data-en="Letters &amp; texts">Briefe &amp; Texte</h3>
<p data-de="Goldi hilft beim Schreiben. Ob Kündigung, Beschwerde oder Geburtstagsgruß — verständlich und auf den Punkt." data-en="Goldi helps with writing. Whether a notice, complaint or birthday greeting — clear and to the point.">Goldi hilft beim Schreiben. Ob Kündigung, Beschwerde oder Geburtstagsgruß — verständlich und auf den Punkt.</p>
</div>
<div class="feature-card">
<div class="feature-emoji">🧠</div>
<h3 data-de="Gedächtnisstütze" data-en="Memory aid">Gedächtnisstütze</h3>
<p data-de="Goldi merkt sich, was dir wichtig ist. Arzttermine, Geburtstage, Einkaufslisten — alles sicher aufgehoben." data-en="Goldi remembers what matters to you. Doctor's appointments, birthdays, shopping lists — all safely stored.">Goldi merkt sich, was dir wichtig ist. Arzttermine, Geburtstage, Einkaufslisten — alles sicher aufgehoben.</p>
</div>
<div class="feature-card">
<div class="feature-emoji">📖</div>
<h3 data-de="Geschichten &amp; Rätsel" data-en="Stories &amp; puzzles">Geschichten &amp; Rätsel</h3>
<p data-de="Langeweile? Goldi erzählt Geschichten, stellt Quizfragen oder liest dir etwas vor. Unterhaltung, wann immer du magst." data-en="Bored? Goldi tells stories, asks quiz questions or reads to you. Entertainment whenever you like.">Langeweile? Goldi erzählt Geschichten, stellt Quizfragen oder liest dir etwas vor. Unterhaltung, wann immer du magst.</p>
</div>
<div class="feature-card">
<div class="feature-emoji">❤️</div>
<h3 data-de="Einfach zuhören" data-en="Just listen">Einfach zuhören</h3>
<p data-de="Manchmal braucht man jemanden zum Reden. Goldi hört zu, ohne zu urteilen. Und hat immer ein offenes Ohr." data-en="Sometimes you just need someone to talk to. Goldi listens without judging. And always has an open ear.">Manchmal braucht man jemanden zum Reden. Goldi hört zu, ohne zu urteilen. Und hat immer ein offenes Ohr.</p>
</div>
</div>
</div>
</section>
<section class="steps-section">
<div class="container">
<div class="section-emoji">👋</div>
<h2 data-de="So einfach geht's" data-en="It's that simple">So einfach geht's</h2>
<div class="section-desc" data-de="Drei Schritte. Mehr braucht es nicht." data-en="Three steps. That's all it takes.">
Drei Schritte. Mehr braucht es nicht.
</div>
<div class="steps-list">
<div class="step">
<div class="step-number">1</div>
<div class="step-body">
<h3 data-de="Sag &quot;Hey Goldi!&quot;" data-en="Say &quot;Hey Goldi!&quot;">Sag "Hey Goldi!"</h3>
<p data-de="Einfach ansprechen — per Handy, Tablet oder Computer. Goldi ist sofort da und freut sich." data-en="Just speak up — by phone, tablet or computer. Goldi is immediately there and happy to help.">Einfach ansprechen — per Handy, Tablet oder Computer. Goldi ist sofort da und freut sich.</p>
</div>
</div>
<div class="step">
<div class="step-number">2</div>
<div class="step-body">
<h3 data-de="Stell deine Frage" data-en="Ask your question">Stell deine Frage</h3>
<p data-de="Was auch immer dich beschäftigt. Goldi versteht dich, auch wenn du nicht die perfekten Worte findest." data-en="Whatever is on your mind. Goldi understands you, even if you can't find the perfect words.">Was auch immer dich beschäftigt. Goldi versteht dich, auch wenn du nicht die perfekten Worte findest.</p>
</div>
</div>
<div class="step">
<div class="step-number">3</div>
<div class="step-body">
<h3 data-de="Goldi antwortet" data-en="Goldi answers">Goldi antwortet</h3>
<p data-de="Klar, freundlich, verständlich. Und wenn etwas unklar ist: einfach nochmal fragen. Goldi erklärt es gerne anders." data-en="Clear, friendly, understandable. And if something is unclear: just ask again. Goldi is happy to explain it differently.">Klar, freundlich, verständlich. Und wenn etwas unklar ist: einfach nochmal fragen. Goldi erklärt es gerne anders.</p>
</div>
</div>
</div>
</div>
</section>
<div class="testimonial-section">
<div class="container">
<div class="section-emoji">💛</div>
<p class="testimonial-quote" data-de="&quot;Endlich jemand, der mir alles in Ruhe erklärt. Ohne dass ich mich dumm fühle.&quot;" data-en="&quot;Finally someone who explains everything to me calmly. Without making me feel stupid.&quot;">
"Endlich jemand, der mir alles in Ruhe erklärt.
Ohne dass ich mich dumm fühle."
</p>
<p class="testimonial-author" data-de="— So soll es sich anfühlen." data-en="— That's how it should feel.">— So soll es sich anfühlen.</p>
</div>
</div>
<div class="reassurance">
<div class="container">
<h2 data-de="Das versprechen wir" data-en="Our promise">Das versprechen wir</h2>
<div class="reassurance-items">
<div class="reassurance-item">
<div class="reassurance-emoji">🔒</div>
<div class="reassurance-text" data-de="Privat &amp; sicher" data-en="Private &amp; secure">Privat &amp; sicher</div>
<div class="reassurance-sub" data-de="Deine Daten bleiben bei dir" data-en="Your data stays with you">Deine Daten bleiben bei dir</div>
</div>
<div class="reassurance-item">
<div class="reassurance-emoji">🐢</div>
<div class="reassurance-text" data-de="In deinem Tempo" data-en="At your pace">In deinem Tempo</div>
<div class="reassurance-sub" data-de="Keine Hektik, kein Druck" data-en="No rushing, no pressure">Keine Hektik, kein Druck</div>
</div>
<div class="reassurance-item">
<div class="reassurance-emoji">😊</div>
<div class="reassurance-text" data-de="Immer freundlich" data-en="Always friendly">Immer freundlich</div>
<div class="reassurance-sub" data-de="Goldi wird nie ungeduldig" data-en="Goldi never gets impatient">Goldi wird nie ungeduldig</div>
</div>
<div class="reassurance-item">
<div class="reassurance-emoji">🇩🇪</div>
<div class="reassurance-text" data-de="Auf Deutsch" data-en="In German">Auf Deutsch</div>
<div class="reassurance-sub" data-de="Kein Fachchinesisch" data-en="No jargon">Kein Fachchinesisch</div>
</div>
</div>
</div>
</div>
<section id="kontakt" class="cta-section">
<div class="container">
<div class="section-emoji">🧸</div>
<h2 data-de="Sag &lt;span style=&quot;color:var(--gold);&quot;&gt;Hallo&lt;/span&gt;!" data-en="Say &lt;span style=&quot;color:var(--gold);&quot;&gt;Hello&lt;/span&gt;!">Sag <span style="color:var(--gold);">Hallo</span>!</h2>
<p data-de="Goldi freut sich, dich kennenzulernen. Schreib uns — und wir bringen euch zusammen." data-en="Goldi looks forward to meeting you. Write to us — and we'll bring you together.">
Goldi freut sich, dich kennenzulernen.
Schreib uns — und wir bringen euch zusammen.
</p>
<a href="mailto:heygoldi@msbls.de?subject=Hey%20Goldi!%20—%20Hallo" class="cta-big" data-de="🧸 heygoldi@msbls.de" data-en="🧸 heygoldi@msbls.de">
🧸 heygoldi@msbls.de
</a>
</div>
</section>
<footer>
<div class="footer-bear">🧸</div>
<p class="footer-text" data-de="Hey Goldi! — Dein freundlicher KI-Begleiter." data-en="Hey Goldi! — Your friendly AI companion.">Hey Goldi! — Dein freundlicher KI-Begleiter.</p>
<p class="footer-copy">&copy; 2026 heygoldi.de — <span data-de="ein Projekt von" data-en="a project by">ein Projekt von</span> <a href="https://msbls.de">msbls.de</a></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 rgba(251,240,212,0.4);color:rgba(251,240,212,0.6);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:rgba(251,240,212,0.4);font-size:0.6rem;opacity:0.5;">Maschinell übersetzt</small>
</div>
</footer>
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
<script src="/shared/i18n.js"></script>
</body>
</html>