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

391 lines
19 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Legal AIs — KI fuer die Rechtspraxis</title>
<meta name="description" content="Legal AIs — Kuenstliche Intelligenz, die Rechtsarbeit transformiert. Recherche, Analyse, Entwuerfe — praezise, schnell, zuverlaessig.">
<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'>L</text></svg>">
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--bg: #0a0a0c;
--bg-elevated: #111115;
--bg-card: #16161b;
--border: #1e1e26;
--text: #e8e8ed;
--text-dim: #6e6e7a;
--text-muted: #44444f;
--accent: #3b82f6;
--accent-glow: rgba(59, 130, 246, 0.15);
--accent-subtle: rgba(59, 130, 246, 0.08);
--gold: #c9a84c;
--gold-glow: rgba(201, 168, 76, 0.12);
}
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;
}
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: 860px; margin: 0 auto; padding: 0 24px; }
nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
padding: 20px 0;
background: rgba(10, 10, 12, 0.8);
backdrop-filter: blur(20px);
border-bottom: 1px solid var(--border);
}
nav .container { display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 1.1rem; font-weight: 600; letter-spacing: -0.02em; }
.logo .legal { color: var(--text); }
.logo .ai { color: var(--accent); font-weight: 700; }
.logo .s { color: var(--text-dim); font-weight: 300; }
nav a { color: var(--text-dim); text-decoration: none; font-size: 0.85rem; transition: color 0.2s; }
nav a:hover { color: var(--text); }
/* Hero */
.hero {
padding: 180px 0 120px;
text-align: center;
position: relative;
}
.hero::before {
content: '';
position: absolute;
top: 60px; left: 50%;
transform: translateX(-50%);
width: 700px; height: 500px;
background: radial-gradient(ellipse, var(--accent-glow) 0%, transparent 70%);
pointer-events: none;
}
.hero-badge {
display: inline-block;
padding: 6px 16px;
border: 1px solid var(--border);
border-radius: 100px;
font-size: 0.75rem; font-weight: 500;
color: var(--text-dim);
letter-spacing: 0.06em; text-transform: uppercase;
margin-bottom: 32px;
background: var(--bg-elevated);
}
.hero-badge .dot {
display: inline-block; width: 6px; height: 6px;
background: var(--accent); border-radius: 50%; margin-right: 8px;
box-shadow: 0 0 8px var(--accent-glow);
position: relative; top: -1px;
animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
h1 {
font-size: clamp(2.8rem, 6vw, 4.5rem);
font-weight: 700; letter-spacing: -0.04em;
line-height: 1.05; margin-bottom: 24px;
}
h1 .ai { color: var(--accent); }
.hero p {
font-size: 1.2rem; color: var(--text-dim);
max-width: 560px; margin: 0 auto 48px;
line-height: 1.7; font-weight: 300;
}
.hero p strong { color: var(--text); font-weight: 500; }
.cta-group { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.btn {
display: inline-flex; align-items: center; gap: 8px;
padding: 14px 28px; border-radius: 10px;
font-size: 0.9rem; font-weight: 500;
text-decoration: none; transition: all 0.2s; border: none; cursor: pointer;
}
.btn-primary {
background: var(--accent); color: #fff;
box-shadow: 0 0 30px var(--accent-glow), inset 0 1px 0 rgba(255,255,255,0.1);
}
.btn-primary:hover {
background: #2563eb; transform: translateY(-1px);
box-shadow: 0 0 50px var(--accent-glow), inset 0 1px 0 rgba(255,255,255,0.1);
}
.btn-ghost { background: transparent; color: var(--text-dim); border: 1px solid var(--border); }
.btn-ghost:hover { color: var(--text); border-color: #2a2a35; background: var(--bg-elevated); }
/* Terminal */
.terminal {
background: var(--bg-card); border: 1px solid var(--border);
border-radius: 12px; padding: 24px 28px;
margin-top: 56px; max-width: 560px;
margin-left: auto; margin-right: auto; text-align: left;
font-family: 'SF Mono', 'Fira Code', monospace;
font-size: 0.82rem; line-height: 1.8;
}
.terminal-dots { display: flex; gap: 6px; margin-bottom: 16px; }
.terminal-dots span { width: 10px; height: 10px; border-radius: 50%; background: var(--border); }
.terminal .prompt { color: var(--text-muted); }
.terminal .cmd { color: var(--text-dim); }
.terminal .out { color: var(--accent); }
.terminal .gold { color: var(--gold); }
.terminal .dim { color: var(--text-muted); }
/* Sections */
section { padding: 100px 0; }
.section-label { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); margin-bottom: 16px; }
h2 { font-size: 1.8rem; font-weight: 600; letter-spacing: -0.03em; margin-bottom: 16px; }
.section-desc { color: var(--text-dim); font-size: 1rem; max-width: 520px; margin-bottom: 56px; font-weight: 300; line-height: 1.7; }
.divider { height: 1px; background: var(--border); max-width: 860px; margin: 0 auto; }
/* Features */
.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.feature-card {
background: var(--bg-card); border: 1px solid var(--border);
border-radius: 14px; padding: 32px;
transition: border-color 0.3s, box-shadow 0.3s;
}
.feature-card:hover { border-color: #2a2a35; box-shadow: 0 8px 40px rgba(0,0,0,0.3); }
.feature-icon {
width: 40px; height: 40px; border-radius: 10px;
background: var(--accent-subtle); border: 1px solid rgba(59, 130, 246, 0.15);
display: flex; align-items: center; justify-content: center;
margin-bottom: 20px; font-size: 0.85rem; font-weight: 600; color: var(--accent);
}
.feature-card h3 { font-size: 1rem; font-weight: 600; margin-bottom: 8px; }
.feature-card p { color: var(--text-dim); font-size: 0.86rem; line-height: 1.6; font-weight: 300; }
/* Audience */
.audience-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.audience-card {
background: var(--bg-card); border: 1px solid var(--border);
border-radius: 14px; padding: 28px;
transition: border-color 0.3s;
}
.audience-card:hover { border-color: #2a2a35; }
.audience-card h3 { font-size: 0.95rem; font-weight: 600; margin-bottom: 6px; }
.audience-card p { color: var(--text-dim); font-size: 0.84rem; line-height: 1.6; font-weight: 300; }
/* CTA */
.cta-section { text-align: center; padding: 80px 0 120px; }
.cta-section h2 { margin-bottom: 12px; }
.cta-section .section-desc { margin: 0 auto 40px; }
footer { padding: 40px 0; text-align: center; border-top: 1px solid var(--border); }
footer p { color: var(--text-muted); font-size: 0.78rem; }
footer a { color: var(--text-muted); text-decoration: none; transition: color 0.2s; }
footer a:hover { color: var(--text-dim); }
@media (max-width: 768px) { .features-grid, .audience-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
.hero { padding: 140px 0 80px; }
section { padding: 64px 0; }
.terminal { font-size: 0.75rem; padding: 18px 20px; }
}
</style>
</head>
<body>
<nav>
<div class="container">
<div class="logo"><span class="legal">Legal</span><span class="ai">AI</span><span class="s">s</span></div>
<a href="#waitlist" data-de="Zugang anfragen" data-en="Request access">Zugang anfragen</a>
</div>
</nav>
<section class="hero">
<div class="container">
<div class="hero-badge">
<span class="dot"></span>Coming Soon
</div>
<h1>Legal<span class="ai">AI</span>s.</h1>
<p>
<strong data-de="Kuenstliche Intelligenz fuer die Rechtspraxis." data-en="Artificial intelligence for legal practice.">Kuenstliche Intelligenz fuer die Rechtspraxis.</strong>
<span data-de="Recherche, Analyse, Schriftsaetze — praezise, schnell
und mit dem Verstaendnis eines Juristen." data-en="Research, analysis, briefs — precise, fast
and with the understanding of a lawyer.">Recherche, Analyse, Schriftsaetze — praezise, schnell
und mit dem Verstaendnis eines Juristen.</span>
</p>
<div class="cta-group">
<a href="#waitlist" class="btn btn-primary" data-de="Zugang anfragen" data-en="Request access">Zugang anfragen</a>
<a href="#features" class="btn btn-ghost" data-de="Was wir bauen" data-en="What we're building">Was wir bauen</a>
</div>
<div class="terminal">
<div class="terminal-dots"><span></span><span></span><span></span></div>
<div><span class="prompt">$</span> <span class="cmd">legalai research "BGH Klimaneutral Werbung"</span></div>
<div><span class="out" data-de="3 Leitentscheidungen gefunden" data-en="3 landmark decisions found">3 Leitentscheidungen gefunden</span></div>
<div><span class="out">BGH I ZR 98/23 — klimaneutral (27.06.2024)</span></div>
<div><span class="gold" data-de="Kernaussage extrahiert, Argumentationslinie erstellt" data-en="Key finding extracted, line of argument created">Kernaussage extrahiert, Argumentationslinie erstellt</span></div>
<div><span class="dim" data-de="Memo-Entwurf bereit. 47 Sekunden." data-en="Memo draft ready. 47 seconds.">Memo-Entwurf bereit. 47 Sekunden.</span></div>
</div>
</div>
</section>
<div class="divider"></div>
<section id="features">
<div class="container">
<div class="section-label" data-de="Capabilities" data-en="Capabilities">Capabilities</div>
<h2 data-de="Was Legal AIs kann." data-en="What Legal AIs can do.">Was Legal AIs kann.</h2>
<div class="section-desc" data-de="Nicht ein Tool fuer alles. Sondern spezialisierte KI-Agenten,
die zusammenarbeiten — wie ein Team, das nie schlaeft." data-en="Not one tool for everything. But specialized AI agents
that work together — like a team that never sleeps.">
Nicht ein Tool fuer alles. Sondern spezialisierte KI-Agenten,
die zusammenarbeiten — wie ein Team, das nie schlaeft.
</div>
<div class="features-grid">
<div class="feature-card">
<div class="feature-icon">R</div>
<h3 data-de="Recherche" data-en="Research">Recherche</h3>
<p data-de="Rechtsprechungssuche ueber Datenbanken, Querverweise,
Argumentationslinien. In Sekunden statt Stunden." data-en="Case law search across databases, cross-references,
lines of argument. In seconds instead of hours.">
Rechtsprechungssuche ueber Datenbanken, Querverweise,
Argumentationslinien. In Sekunden statt Stunden.
</p>
</div>
<div class="feature-card">
<div class="feature-icon">A</div>
<h3 data-de="Analyse" data-en="Analysis">Analyse</h3>
<p data-de="Urteile strukturiert auswerten. Kernaussagen extrahieren.
Parallelen zu eigenen Faellen erkennen." data-en="Evaluate judgments in a structured way. Extract key findings.
Recognize parallels to your own cases.">
Urteile strukturiert auswerten. Kernaussagen extrahieren.
Parallelen zu eigenen Faellen erkennen.
</p>
</div>
<div class="feature-card">
<div class="feature-icon">E</div>
<h3 data-de="Entwuerfe" data-en="Drafts">Entwuerfe</h3>
<p data-de="Schriftsatz-Entwuerfe, Memos, Stellungnahmen.
Im Stil der Kanzlei, mit den richtigen Zitaten." data-en="Brief drafts, memos, opinions.
In the firm's style, with the right citations.">
Schriftsatz-Entwuerfe, Memos, Stellungnahmen.
Im Stil der Kanzlei, mit den richtigen Zitaten.
</p>
</div>
<div class="feature-card">
<div class="feature-icon">W</div>
<h3 data-de="Wissensmanagement" data-en="Knowledge management">Wissensmanagement</h3>
<p data-de="Kanzlei-Knowledge aufbauen und pflegen. Musterloesungen,
Textbausteine, Entscheidungssammlungen — immer aktuell." data-en="Build and maintain firm knowledge. Template solutions,
text modules, decision collections — always up to date.">
Kanzlei-Knowledge aufbauen und pflegen. Musterloesungen,
Textbausteine, Entscheidungssammlungen — immer aktuell.
</p>
</div>
<div class="feature-card">
<div class="feature-icon">M</div>
<h3 data-de="Monitoring" data-en="Monitoring">Monitoring</h3>
<p data-de="Neue Entscheidungen, Gesetzesaenderungen, Fristen.
Proaktive Benachrichtigungen statt manueller Checks." data-en="New decisions, legislative changes, deadlines.
Proactive notifications instead of manual checks.">
Neue Entscheidungen, Gesetzesaenderungen, Fristen.
Proaktive Benachrichtigungen statt manueller Checks.
</p>
</div>
<div class="feature-card">
<div class="feature-icon">O</div>
<h3 data-de="Orchestrierung" data-en="Orchestration">Orchestrierung</h3>
<p data-de="Mehrere KI-Agenten arbeiten parallel. Recherche + Analyse +
Entwurf — koordiniert in einem Workflow." data-en="Multiple AI agents work in parallel. Research + analysis +
draft — coordinated in one workflow.">
Mehrere KI-Agenten arbeiten parallel. Recherche + Analyse +
Entwurf — koordiniert in einem Workflow.
</p>
</div>
</div>
</div>
</section>
<div class="divider"></div>
<section id="who">
<div class="container">
<div class="section-label" data-de="Fuer wen" data-en="For whom">Fuer wen</div>
<h2 data-de="Gebaut fuer Profis." data-en="Built for professionals.">Gebaut fuer Profis.</h2>
<div class="section-desc" data-de="Legal AIs ist kein generischer Chatbot. Es ist ein Werkzeug
fuer Menschen, die wissen was sie tun — und schneller ans Ziel wollen." data-en="Legal AIs is not a generic chatbot. It is a tool
for people who know what they're doing — and want to get there faster.">
Legal AIs ist kein generischer Chatbot. Es ist ein Werkzeug
fuer Menschen, die wissen was sie tun — und schneller ans Ziel wollen.
</div>
<div class="audience-grid">
<div class="audience-card">
<h3 data-de="Kanzleien" data-en="Law firms">Kanzleien</h3>
<p data-de="Recherchezeit reduzieren, Wissensmanagement automatisieren, Mandanten schneller bedienen." data-en="Reduce research time, automate knowledge management, serve clients faster.">Recherchezeit reduzieren, Wissensmanagement automatisieren, Mandanten schneller bedienen.</p>
</div>
<div class="audience-card">
<h3 data-de="Rechtsabteilungen" data-en="Legal departments">Rechtsabteilungen</h3>
<p data-de="Interne Anfragen effizient bearbeiten, Compliance-Fragen klaeren, Vertragspruefung beschleunigen." data-en="Handle internal inquiries efficiently, clarify compliance questions, accelerate contract review.">Interne Anfragen effizient bearbeiten, Compliance-Fragen klaeren, Vertragspruefung beschleunigen.</p>
</div>
<div class="audience-card">
<h3 data-de="Knowledge Lawyers" data-en="Knowledge Lawyers">Knowledge Lawyers</h3>
<p data-de="Wissensprodukte erstellen, Entscheidungssammlungen pflegen, Trend-Monitoring aufsetzen." data-en="Create knowledge products, maintain decision collections, set up trend monitoring.">Wissensprodukte erstellen, Entscheidungssammlungen pflegen, Trend-Monitoring aufsetzen.</p>
</div>
<div class="audience-card">
<h3 data-de="Einzelanwaelte" data-en="Solo practitioners">Einzelanwaelte</h3>
<p data-de="Die Ressourcen einer Grosskanzlei — ohne das Team. KI als Co-Pilot fuer die eigene Praxis." data-en="The resources of a large firm — without the team. AI as co-pilot for your own practice.">Die Ressourcen einer Grosskanzlei — ohne das Team. KI als Co-Pilot fuer die eigene Praxis.</p>
</div>
</div>
</div>
</section>
<div class="divider"></div>
<section id="waitlist" class="cta-section">
<div class="container">
<div class="section-label" data-de="Early Access" data-en="Early Access">Early Access</div>
<h2 data-de="Recht. Neu gedacht." data-en="Law. Rethought.">Recht. Neu gedacht.</h2>
<div class="section-desc" data-de="Legal AIs ist in der Entwicklung. Meld dich an und gehoer zu den Ersten,
die juristische KI wirklich nutzen." data-en="Legal AIs is in development. Sign up and be among the first
to truly use legal AI.">
Legal AIs ist in der Entwicklung. Meld dich an und gehoer zu den Ersten,
die juristische KI wirklich nutzen.
</div>
<a href="mailto:mail@msbls.de?subject=LegalAIs%20—%20Interesse" class="btn btn-primary" data-de="Zugang anfragen" data-en="Request access">
Zugang anfragen
</a>
</div>
</section>
<footer>
<div class="container">
<p>Legal<span style="color: var(--accent);">AI</span>s.de — <span data-de="ein Projekt von" data-en="a project by">ein Projekt von</span> <a href="https://msbls.de" target="_blank" rel="noopener">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 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>
</div>
</footer>
<script src="/shared/ai-disclosure.js" data-tone="playful"></script>
<script src="/shared/i18n.js"></script>
</body>
</html>