Files
onepager/sites/allaisonme.com/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

727 lines
25 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>All AIs On Me — AI Optimization</title>
<meta name="description" content="SEO is dead. All AIs On Me makes your brand visible to ChatGPT, Gemini, Claude and beyond. AI Optimization, not Search Engine Optimization.">
<meta property="og:title" content="All AIs On Me — AI Optimization">
<meta property="og:description" content="Are you recommended by AI? AI Visibility Audit, AI-optimized content, Structured Data for LLMs.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://allaisonme.com">
<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>">
<style>
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&display=swap');
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--bg: #09090b;
--bg-elevated: #111114;
--bg-card: #15151a;
--border: #1e1e26;
--text: #f0f0f5;
--text-dim: #8a8a99;
--text-muted: #55555f;
--gold: #d4af37;
--gold-light: #e8c84a;
--gold-glow: rgba(212, 175, 55, 0.15);
--gold-subtle: rgba(212, 175, 55, 0.06);
}
html { scroll-behavior: smooth; }
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
background: var(--bg);
color: var(--text);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
max-width: 100vw;
}
/* Grain overlay */
body::before {
content: '';
position: fixed;
inset: 0;
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='0.03'/%3E%3C/svg%3E");
pointer-events: none;
z-index: 9999;
}
.container { max-width: 900px; margin: 0 auto; padding: 0 24px; }
/* ─── NAV ─── */
nav {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
padding: 20px 0;
background: rgba(9, 9, 11, 0.85);
backdrop-filter: blur(20px);
border-bottom: 1px solid var(--border);
}
nav .container {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-family: 'Space Grotesk', sans-serif;
font-size: 1.1rem;
font-weight: 700;
letter-spacing: 0.05em;
color: var(--text);
}
.logo .ai-highlight {
color: var(--gold);
text-shadow: 0 0 20px var(--gold-glow);
}
nav a.cta-link {
font-size: 0.85rem;
font-weight: 500;
color: var(--gold);
text-decoration: none;
letter-spacing: 0.08em;
text-transform: uppercase;
transition: opacity 0.2s;
}
nav a.cta-link:hover { opacity: 0.7; }
/* ─── HERO ─── */
.hero {
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
padding: 120px 24px 80px;
position: relative;
}
.hero::before {
content: '';
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: min(600px, 100vw);
height: min(600px, 100vw);
background: radial-gradient(circle, var(--gold-glow) 0%, transparent 70%);
pointer-events: none;
opacity: 0.4;
}
.hero-eyebrow {
font-family: 'Space Grotesk', sans-serif;
font-size: 0.85rem;
font-weight: 500;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 32px;
opacity: 0;
animation: fadeUp 0.8s ease forwards 0.2s;
}
.hero h1 {
font-family: 'Space Grotesk', sans-serif;
font-size: clamp(3.2rem, 8vw, 6rem);
font-weight: 700;
line-height: 1.05;
letter-spacing: -0.02em;
margin-bottom: 28px;
opacity: 0;
animation: fadeUp 0.8s ease forwards 0.4s;
}
.hero h1 .ai {
color: var(--gold);
text-shadow: 0 0 40px rgba(212, 175, 55, 0.3);
}
.hero-sub {
font-size: clamp(1.1rem, 2.5vw, 1.35rem);
color: var(--text-dim);
max-width: 560px;
line-height: 1.6;
margin-bottom: 48px;
opacity: 0;
animation: fadeUp 0.8s ease forwards 0.6s;
}
.hero-cta {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 16px 36px;
background: var(--gold);
color: #09090b;
font-family: 'Space Grotesk', sans-serif;
font-weight: 600;
font-size: 0.95rem;
letter-spacing: 0.05em;
text-decoration: none;
border-radius: 6px;
transition: all 0.3s ease;
opacity: 0;
animation: fadeUp 0.8s ease forwards 0.8s;
}
.hero-cta:hover {
background: var(--gold-light);
transform: translateY(-2px);
box-shadow: 0 8px 30px rgba(212, 175, 55, 0.25);
}
.hero-cta svg { width: 16px; height: 16px; }
/* ─── SCROLL INDICATOR ─── */
.scroll-indicator {
position: absolute;
bottom: 40px;
left: 50%;
transform: translateX(-50%);
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
opacity: 0;
animation: fadeUp 0.8s ease forwards 1s;
}
.scroll-indicator span {
font-size: 0.7rem;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--text-muted);
}
.scroll-line {
width: 1px;
height: 40px;
background: linear-gradient(to bottom, var(--gold), transparent);
animation: scrollPulse 2s ease-in-out infinite;
}
/* ─── SECTION COMMON ─── */
section { padding: 100px 0; }
.section-label {
font-family: 'Space Grotesk', sans-serif;
font-size: 0.75rem;
font-weight: 500;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 16px;
}
.section-title {
font-family: 'Space Grotesk', sans-serif;
font-size: clamp(1.8rem, 4vw, 2.8rem);
font-weight: 700;
line-height: 1.15;
letter-spacing: -0.01em;
margin-bottom: 20px;
}
.section-text {
font-size: 1.05rem;
color: var(--text-dim);
max-width: 600px;
line-height: 1.7;
}
/* ─── PROBLEM ─── */
.problem {
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
background: var(--bg-elevated);
}
.problem-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
align-items: center;
margin-top: 48px;
}
.problem-stat {
text-align: center;
padding: 40px 24px;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 14px;
}
.problem-stat .number {
font-family: 'Space Grotesk', sans-serif;
font-size: 4rem;
font-weight: 700;
color: var(--gold);
line-height: 1;
text-shadow: 0 0 40px var(--gold-glow);
}
.problem-stat .label {
font-size: 0.95rem;
color: var(--text-dim);
margin-top: 12px;
}
.problem-points {
display: flex;
flex-direction: column;
gap: 20px;
}
.problem-point {
display: flex;
align-items: flex-start;
gap: 14px;
font-size: 1rem;
color: var(--text-dim);
line-height: 1.6;
}
.problem-point .icon {
flex-shrink: 0;
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
background: var(--gold-subtle);
border: 1px solid rgba(212, 175, 55, 0.15);
border-radius: 6px;
color: var(--gold);
font-size: 0.75rem;
margin-top: 2px;
}
/* ─── SERVICES ─── */
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin-top: 48px;
}
.service-card {
padding: 32px 28px;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 14px;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.service-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, transparent, var(--gold), transparent);
opacity: 0;
transition: opacity 0.3s ease;
}
.service-card:hover {
border-color: rgba(212, 175, 55, 0.2);
transform: translateY(-4px);
}
.service-card:hover::before { opacity: 1; }
.service-icon {
width: 44px;
height: 44px;
display: flex;
align-items: center;
justify-content: center;
background: var(--gold-subtle);
border: 1px solid rgba(212, 175, 55, 0.12);
border-radius: 10px;
margin-bottom: 20px;
font-size: 1.2rem;
}
.service-card h3 {
font-family: 'Space Grotesk', sans-serif;
font-size: 1.1rem;
font-weight: 600;
margin-bottom: 10px;
}
.service-card p {
font-size: 0.9rem;
color: var(--text-dim);
line-height: 1.6;
}
/* ─── PROVOCATION ─── */
.provocation {
text-align: center;
padding: 120px 24px;
position: relative;
}
.provocation::before {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(ellipse at center, var(--gold-subtle), transparent 70%);
pointer-events: none;
}
.provocation .big-text {
font-family: 'Space Grotesk', sans-serif;
font-size: clamp(2rem, 5vw, 3.5rem);
font-weight: 700;
line-height: 1.2;
max-width: 700px;
margin: 0 auto 16px;
position: relative;
}
.provocation .big-text .gold { color: var(--gold); }
.provocation .follow-up {
font-size: clamp(1.3rem, 3vw, 1.8rem);
color: var(--text-dim);
font-weight: 300;
position: relative;
}
/* ─── HOW ─── */
.how {
border-top: 1px solid var(--border);
background: var(--bg-elevated);
}
.steps {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
margin-top: 48px;
}
.step {
position: relative;
padding: 32px 24px;
}
.step-number {
font-family: 'Space Grotesk', sans-serif;
font-size: 3.5rem;
font-weight: 700;
color: var(--gold);
opacity: 0.15;
line-height: 1;
margin-bottom: 16px;
}
.step h3 {
font-family: 'Space Grotesk', sans-serif;
font-size: 1.05rem;
font-weight: 600;
margin-bottom: 10px;
}
.step p {
font-size: 0.9rem;
color: var(--text-dim);
line-height: 1.6;
}
/* ─── CTA ─── */
.cta-section {
text-align: center;
padding: 120px 24px;
border-top: 1px solid var(--border);
}
.cta-section .section-title {
margin-bottom: 16px;
}
.cta-section .section-text {
margin: 0 auto 40px;
text-align: center;
}
.cta-button {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 18px 44px;
background: var(--gold);
color: #09090b;
font-family: 'Space Grotesk', sans-serif;
font-weight: 600;
font-size: 1rem;
letter-spacing: 0.05em;
text-decoration: none;
border-radius: 6px;
transition: all 0.3s ease;
}
.cta-button:hover {
background: var(--gold-light);
transform: translateY(-2px);
box-shadow: 0 8px 40px rgba(212, 175, 55, 0.3);
}
.cta-button svg { width: 18px; height: 18px; }
.cta-sub {
margin-top: 16px;
font-size: 0.85rem;
color: var(--text-muted);
}
/* ─── FOOTER ─── */
footer {
padding: 40px 0;
border-top: 1px solid var(--border);
text-align: center;
}
footer .footer-brand {
font-family: 'Space Grotesk', sans-serif;
font-weight: 600;
font-size: 0.9rem;
margin-bottom: 8px;
}
footer .footer-brand .ai-highlight { color: var(--gold); }
footer p {
font-size: 0.8rem;
color: var(--text-muted);
}
footer a {
color: var(--text-muted);
text-decoration: none;
transition: color 0.2s;
}
footer a:hover { color: var(--gold); }
/* ─── ANIMATIONS ─── */
@keyframes fadeUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes scrollPulse {
0%, 100% { opacity: 0.3; }
50% { opacity: 0.8; }
}
.fade-in {
opacity: 0;
transform: translateY(24px);
transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in.visible {
opacity: 1;
transform: translateY(0);
}
/* ─── RESPONSIVE ─── */
@media (max-width: 768px) {
.problem-grid { grid-template-columns: 1fr; gap: 32px; }
.steps { grid-template-columns: 1fr; gap: 16px; }
.services-grid { grid-template-columns: 1fr; }
section { padding: 72px 0; }
.provocation { padding: 80px 24px; }
.cta-section { padding: 80px 24px; }
nav .container { padding: 0 16px; }
.logo { font-size: 0.95rem; }
nav a.cta-link { font-size: 0.75rem; }
}
</style>
</head>
<body>
<!-- NAV -->
<nav>
<div class="container">
<div class="logo">All<span class="ai-highlight">AIs</span>OnMe</div>
<a href="#audit" class="cta-link" data-de="Audit anfragen →" data-en="Get your audit →">Get your audit &rarr;</a>
</div>
</nav>
<!-- HERO -->
<section class="hero">
<div class="hero-eyebrow" data-de="KI-Optimierungsagentur" data-en="AI Optimization Agency">AI Optimization Agency</div>
<h1>All <span class="ai">AIs</span> On Me</h1>
<p class="hero-sub" data-de="SEO ist tot. Willkommen im Zeitalter der KI-Optimierung." data-en="SEO is dead. Welcome to the era of AI&nbsp;Optimization.">SEO is dead. Welcome to the era of AI&nbsp;Optimization.</p>
<a href="#audit" class="hero-cta" data-de="Kostenloser KI-Sichtbarkeits-Check" data-en="Free AI Visibility Check">
Free AI Visibility Check
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
<div class="scroll-indicator">
<span>Scroll</span>
<div class="scroll-line"></div>
</div>
</section>
<!-- PROBLEM -->
<section class="problem">
<div class="container fade-in">
<div class="section-label" data-de="Das Problem" data-en="The Problem">The Problem</div>
<div class="section-title" data-de="Google ist gestern.&lt;br&gt;Ihre Kunden fragen jetzt KI." data-en="Google is yesterday.&lt;br&gt;Your customers ask AI now.">Google is yesterday.<br>Your customers ask AI now.</div>
<div class="problem-grid">
<div class="problem-stat">
<div class="number">90%</div>
<div class="label" data-de="aller Webseiten sind für KI-Systeme unsichtbar" data-en="of all websites are invisible to AI systems">of all websites are invisible to AI systems</div>
</div>
<div class="problem-points">
<div class="problem-point">
<div class="icon">&rarr;</div>
<div data-de="Ihre Kunden fragen &lt;strong&gt;ChatGPT&lt;/strong&gt;, &lt;strong&gt;Gemini&lt;/strong&gt;, &lt;strong&gt;Claude&lt;/strong&gt; — nicht Google." data-en="Your customers ask &lt;strong&gt;ChatGPT&lt;/strong&gt;, &lt;strong&gt;Gemini&lt;/strong&gt;, &lt;strong&gt;Claude&lt;/strong&gt; — not Google.">Your customers ask <strong>ChatGPT</strong>, <strong>Gemini</strong>, <strong>Claude</strong> — not Google.</div>
</div>
<div class="problem-point">
<div class="icon">&rarr;</div>
<div data-de="KI-Systeme empfehlen Marken, die sie &lt;strong&gt;verstehen&lt;/strong&gt;. Nicht die mit dem besten PageRank." data-en="AI systems recommend brands they &lt;strong&gt;understand&lt;/strong&gt;. Not the ones with the best PageRank.">AI systems recommend brands they <strong>understand</strong>. Not the ones with the best PageRank.</div>
</div>
<div class="problem-point">
<div class="icon">&rarr;</div>
<div data-de="Wer jetzt nicht optimiert, ist in 12 Monaten &lt;strong&gt;irrelevant&lt;/strong&gt;." data-en="If you don't optimize now, you'll be &lt;strong&gt;irrelevant&lt;/strong&gt; in 12 months.">If you don't optimize now, you'll be <strong>irrelevant</strong> in 12 months.</div>
</div>
</div>
</div>
</div>
</section>
<!-- SERVICES -->
<section class="services">
<div class="container fade-in">
<div class="section-label" data-de="Was wir tun" data-en="What We Do">What We Do</div>
<div class="section-title" data-de="KI-Optimierung. Nicht SEO." data-en="AI Optimization. Not SEO.">AI Optimization. Not SEO.</div>
<p class="section-text" data-de="Wir machen Ihre Marke sichtbar für die Systeme, die die Empfehlungen von morgen bestimmen." data-en="We make your brand visible to the systems that will decide tomorrow's recommendations.">We make your brand visible to the systems that will decide tomorrow's recommendations.</p>
<div class="services-grid">
<div class="service-card">
<div class="service-icon">&#x1F50D;</div>
<h3 data-de="KI-Sichtbarkeits-Audit" data-en="AI Visibility Audit">AI Visibility Audit</h3>
<p data-de="Wir prüfen, wie ChatGPT, Gemini und Claude über Sie sprechen — und wo Sie unsichtbar sind." data-en="We check how ChatGPT, Gemini and Claude talk about you — and where you're invisible.">We check how ChatGPT, Gemini and Claude talk about you — and where you're invisible.</p>
</div>
<div class="service-card">
<div class="service-icon">&#x270D;</div>
<h3 data-de="KI-optimierter Content" data-en="AI-Optimized Content">AI-Optimized Content</h3>
<p data-de="Content, der nicht für Google-Crawler geschrieben ist, sondern für Large Language Models." data-en="Content written not for Google crawlers, but for Large Language Models.">Content written not for Google crawlers, but for Large Language Models.</p>
</div>
<div class="service-card">
<div class="service-icon">&#x2699;</div>
<h3 data-de="Strukturierte Daten für LLMs" data-en="Structured Data for LLMs">Structured Data for LLMs</h3>
<p data-de="Schema.org, JSON-LD und semantische Strukturen, die KI-Systeme nativ verstehen." data-en="Schema.org, JSON-LD and semantic structures that AI systems natively understand.">Schema.org, JSON-LD and semantic structures that AI systems natively understand.</p>
</div>
<div class="service-card">
<div class="service-icon">&#x1F4E3;</div>
<h3 data-de="Markenpräsenz-Strategie" data-en="Brand Mentions Strategy">Brand Mentions Strategy</h3>
<p data-de="Platzieren Sie Ihre Marke in den Quellen, aus denen KI-Modelle ihr Wissen schöpfen." data-en="Place your brand in the sources that AI models draw their knowledge from.">Place your brand in the sources that AI models draw their knowledge from.</p>
</div>
<div class="service-card">
<div class="service-icon">&#x1F4CA;</div>
<h3 data-de="KI-Monitoring" data-en="AI Monitoring">AI Monitoring</h3>
<p data-de="Fortlaufendes Tracking: Was sagen KI-Systeme über Sie? Wie entwickelt sich Ihre KI-Sichtbarkeit?" data-en="Ongoing tracking: What do AI systems say about you? How is your AI visibility evolving?">Ongoing tracking: What do AI systems say about you? How is your AI visibility evolving?</p>
</div>
</div>
</div>
</section>
<!-- PROVOCATION -->
<section class="provocation fade-in">
<div class="big-text" data-de="&lt;span class=&quot;gold&quot;&gt;90%&lt;/span&gt; aller Webseiten sind für KI unsichtbar." data-en="&lt;span class=&quot;gold&quot;&gt;90%&lt;/span&gt; of all websites are invisible to AI."><span class="gold">90%</span> of all websites are invisible to AI.</div>
<div class="follow-up" data-de="Ist Ihre es auch?" data-en="Is yours?">Is yours?</div>
</section>
<!-- HOW IT WORKS -->
<section class="how">
<div class="container fade-in">
<div class="section-label" data-de="So funktioniert es" data-en="How It Works">How It Works</div>
<div class="section-title" data-de="Drei Schritte zur KI-Sichtbarkeit" data-en="Three steps to AI visibility">Three steps to AI visibility</div>
<div class="steps">
<div class="step">
<div class="step-number">01</div>
<h3 data-de="Audit" data-en="Audit">Audit</h3>
<p data-de="Wir analysieren, wie KI-Systeme Ihre Marke wahrnehmen — oder ob sie es überhaupt nicht tun." data-en="We analyze how AI systems perceive your brand — or whether they don't at all.">We analyze how AI systems perceive your brand — or whether they don't at all.</p>
</div>
<div class="step">
<div class="step-number">02</div>
<h3 data-de="Strategie" data-en="Strategy">Strategy</h3>
<p data-de="Wir entwickeln einen Plan: Content, Strukturen, Quellen. Zugeschnitten auf Ihr Unternehmen." data-en="We build a plan: content, structures, sources. Tailored to your business.">We build a plan: content, structures, sources. Tailored to your business.</p>
</div>
<div class="step">
<div class="step-number">03</div>
<h3 data-de="Umsetzung" data-en="Execution">Execution</h3>
<p data-de="Wir optimieren Ihre Präsenz — und beobachten, wie sich Ihre KI-Sichtbarkeit entwickelt." data-en="We optimize your presence — and monitor how your AI visibility develops.">We optimize your presence — and monitor how your AI visibility develops.</p>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="cta-section" id="audit">
<div class="container fade-in">
<div class="section-label" data-de="Bereit?" data-en="Ready?">Ready?</div>
<div class="section-title" data-de="Herausfinden, ob KI Sie kennt." data-en="Find out if AIs know you.">Find out if AIs know you.</div>
<p class="section-text" data-de="Kostenloser KI-Sichtbarkeits-Check. Wir zeigen Ihnen in 48 Stunden, was ChatGPT, Gemini und Claude über Sie wissen — und was nicht." data-en="Free AI Visibility Check. We'll show you in 48h what ChatGPT, Gemini and Claude know about you — and what they don't.">Free AI Visibility Check. We'll show you in 48h what ChatGPT, Gemini and Claude know about you — and what they don't.</p>
<a href="mailto:hello@allaisonme.com?subject=AI%20Visibility%20Check" class="cta-button" data-de="Audit anfragen" data-en="Request Audit">
Request Audit
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
<p class="cta-sub" data-de="hello@allaisonme.com" data-en="hello@allaisonme.com">hello@allaisonme.com</p>
</div>
</section>
<!-- FOOTER -->
<footer>
<div class="container">
<div class="footer-brand">All<span class="ai-highlight">AIs</span>OnMe</div>
<p style="font-style:italic;color:var(--text-muted);font-size:0.8rem;margin-bottom:8px;" data-de="&quot;Only God can judge AI.&quot;" data-en="&quot;Only God can judge AI.&quot;">&ldquo;Only God can judge AI.&rdquo;</p>
<p data-de="&copy; 2026 AllAIsOnMe &amp;middot; &lt;a href=&quot;mailto:hello@allaisonme.com&quot;&gt;hello@allaisonme.com&lt;/a&gt;" data-en="&copy; 2026 AllAIsOnMe &amp;middot; &lt;a href=&quot;mailto:hello@allaisonme.com&quot;&gt;hello@allaisonme.com&lt;/a&gt;">&copy; 2026 AllAIsOnMe &middot; <a href="mailto:hello@allaisonme.com">hello@allaisonme.com</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 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;">DE</button>
<br><small data-de="Maschinell übersetzt" data-en="Machine-translated" style="color:var(--text-muted,#444);font-size:0.6rem;opacity:0.5;">Machine-translated</small>
</div>
</div>
</footer>
<!-- Scroll animations -->
<script>
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, { threshold: 0.1 });
document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));
</script>
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
<script src="/shared/i18n.js"></script>
</body>
</html>