feat: add kilofant.de, omakise.de, heygoldi.de onepagers

- kilofant.de: KIlofant — playful elephant theme with stampede CSS
  animations, warm earthy colors, Baloo 2 font
- omakise.de: OmaKIse — Japanese-inspired minimalist design with
  7-course omakase menu metaphor, Noto Serif JP, dark sumi section
- heygoldi.de: Hey Goldi! — warm, friendly AI companion for older
  people, large fonts, gold tones, teddy bear vibes, Nunito font
  (alias: heygoldi.com)

Updated Caddyfile with all three new domains.
This commit is contained in:
m
2026-03-29 17:23:21 +02:00
parent 53f64543cc
commit 031dd3d291
7 changed files with 2191 additions and 0 deletions

623
sites/omakise.de/index.html Normal file
View File

@@ -0,0 +1,623 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OmaKIse — KI-Erlebnis, vom Chef kuratiert</title>
<meta name="description" content="OmaKIse — Omakase + KI. Kuratierte KI-Beratung wie ein Omakase-Menü. Du bekommst was der Chef empfiehlt.">
<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=Noto+Serif+JP:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
<style>
*, *::before, *::after {
margin: 0; padding: 0; box-sizing: border-box;
}
:root {
--ink: #1a1a1a;
--ink-soft: #4a4a4a;
--ink-faint: #8a8a8a;
--ink-ghost: #c5c5c5;
--washi: #faf6f0;
--washi-warm: #f5ede0;
--washi-cool: #f0ece6;
--hinoki: #c9a96e;
--hinoki-dark: #a08040;
--hinoki-glow: rgba(201, 169, 110, 0.15);
--sumi: #2c2c2c;
--aka: #c23b22;
--aka-soft: rgba(194, 59, 34, 0.08);
--matcha: #7a9a5a;
}
html { scroll-behavior: smooth; }
body {
font-family: 'Inter', -apple-system, sans-serif;
background: var(--washi);
color: var(--ink);
line-height: 1.7;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
}
.jp {
font-family: 'Noto Serif JP', serif;
}
/* === NAV === */
nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
padding: 16px 0;
background: rgba(250, 246, 240, 0.9);
backdrop-filter: blur(20px);
}
nav .inner {
max-width: 880px; margin: 0 auto; padding: 0 32px;
display: flex; justify-content: space-between; align-items: center;
}
.logo {
font-family: 'Noto Serif JP', serif;
font-size: 1.1rem; font-weight: 600;
color: var(--ink);
letter-spacing: 0.02em;
}
.logo .ki { color: var(--aka); font-weight: 700; }
nav a {
color: var(--ink-faint); text-decoration: none;
font-size: 0.8rem; font-weight: 400;
letter-spacing: 0.08em;
transition: color 0.3s;
}
nav a:hover { color: var(--ink); }
/* === HERO === */
.hero {
min-height: 100vh;
display: flex; flex-direction: column;
align-items: center; justify-content: center;
text-align: center; padding: 140px 32px 100px;
position: relative;
}
.hero::before {
content: '';
position: absolute; top: 0; left: 0; right: 0; bottom: 0;
background:
radial-gradient(ellipse at 50% 40%, var(--hinoki-glow) 0%, transparent 60%);
pointer-events: none;
}
.hero-kanji {
font-family: 'Noto Serif JP', serif;
font-size: clamp(3rem, 8vw, 5rem);
font-weight: 300;
color: var(--ink-ghost);
letter-spacing: 0.3em;
margin-bottom: 24px;
}
h1 {
font-family: 'Noto Serif JP', serif;
font-size: clamp(2.8rem, 7vw, 4.5rem);
font-weight: 600;
letter-spacing: -0.01em;
line-height: 1.1;
margin-bottom: 20px;
}
h1 .ki {
color: var(--aka);
position: relative;
}
.hero-sub {
font-size: 1.05rem;
color: var(--ink-soft);
font-weight: 300;
max-width: 420px;
margin: 0 auto 16px;
line-height: 1.8;
}
.hero-sub em {
font-style: normal;
color: var(--ink);
font-weight: 500;
}
.hero-meaning {
font-family: 'Noto Serif JP', serif;
font-size: 0.85rem;
color: var(--ink-faint);
margin-bottom: 40px;
letter-spacing: 0.05em;
}
.cta-group {
display: flex; gap: 16px;
justify-content: center; flex-wrap: wrap;
}
.btn {
display: inline-flex; align-items: center; gap: 8px;
padding: 14px 36px;
font-family: 'Inter', sans-serif;
font-size: 0.85rem; font-weight: 500;
text-decoration: none; border: none; cursor: pointer;
transition: all 0.3s;
letter-spacing: 0.03em;
}
.btn-primary {
background: var(--ink);
color: var(--washi);
border-radius: 2px;
}
.btn-primary:hover {
background: var(--sumi);
transform: translateY(-1px);
box-shadow: 0 8px 24px rgba(26, 26, 26, 0.12);
}
.btn-ghost {
background: transparent;
color: var(--ink-soft);
border: 1px solid var(--ink-ghost);
border-radius: 2px;
}
.btn-ghost:hover {
border-color: var(--ink-soft);
color: var(--ink);
}
/* Decorative line */
.ichi {
width: 60px; height: 1px;
background: var(--hinoki);
margin: 0 auto;
}
/* === CONTAINER === */
.container {
max-width: 880px; margin: 0 auto; padding: 0 32px;
}
/* === SECTIONS === */
section { padding: 100px 0; }
.section-jp {
font-family: 'Noto Serif JP', serif;
font-size: 0.75rem;
color: var(--ink-faint);
letter-spacing: 0.2em;
margin-bottom: 12px;
}
h2 {
font-family: 'Noto Serif JP', serif;
font-size: clamp(1.6rem, 4vw, 2.2rem);
font-weight: 500;
margin-bottom: 12px;
letter-spacing: -0.01em;
}
.section-desc {
color: var(--ink-soft);
font-size: 0.9rem;
max-width: 480px;
margin-bottom: 56px;
line-height: 1.8;
font-weight: 300;
}
/* === PHILOSOPHY === */
.philosophy {
text-align: center;
padding: 100px 32px;
background: var(--washi-warm);
}
.philosophy-text {
font-family: 'Noto Serif JP', serif;
font-size: clamp(1.2rem, 2.5vw, 1.6rem);
font-weight: 400;
line-height: 2;
color: var(--ink-soft);
max-width: 560px; margin: 0 auto;
}
.philosophy-text strong { color: var(--ink); font-weight: 600; }
.philosophy-text .ki { color: var(--aka); font-weight: 600; }
/* === OMAKASE COURSES === */
.courses-list {
display: flex; flex-direction: column;
gap: 1px;
background: var(--ink-ghost);
border-top: 1px solid var(--ink-ghost);
border-bottom: 1px solid var(--ink-ghost);
}
.course {
display: grid;
grid-template-columns: 80px 1fr;
gap: 32px;
padding: 36px 0;
background: var(--washi);
align-items: start;
}
.course-number {
font-family: 'Noto Serif JP', serif;
font-size: 2.2rem;
font-weight: 300;
color: var(--ink-ghost);
text-align: right;
padding-top: 2px;
}
.course-body h3 {
font-family: 'Noto Serif JP', serif;
font-size: 1.1rem;
font-weight: 600;
margin-bottom: 4px;
}
.course-jp {
font-family: 'Noto Serif JP', serif;
font-size: 0.75rem;
color: var(--hinoki-dark);
letter-spacing: 0.1em;
margin-bottom: 8px;
}
.course-body p {
color: var(--ink-soft);
font-size: 0.85rem;
line-height: 1.7;
font-weight: 300;
max-width: 480px;
}
/* === PRINCIPLES === */
.principles-section {
background: var(--sumi);
color: var(--washi);
}
.principles-section .section-jp { color: var(--hinoki); }
.principles-section h2 { color: var(--washi); }
.principles-section .section-desc { color: var(--ink-ghost); }
.principles-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1px;
background: rgba(255,255,255,0.06);
}
.principle {
padding: 36px 28px;
background: var(--sumi);
}
.principle-kanji {
font-family: 'Noto Serif JP', serif;
font-size: 2rem;
color: var(--hinoki);
margin-bottom: 16px;
line-height: 1;
}
.principle h3 {
font-family: 'Noto Serif JP', serif;
font-size: 0.95rem;
font-weight: 500;
margin-bottom: 8px;
color: var(--washi);
}
.principle p {
font-size: 0.8rem;
color: var(--ink-ghost);
line-height: 1.7;
font-weight: 300;
}
/* === SEASONAL === */
.seasonal {
text-align: center;
padding: 80px 32px;
background: var(--washi-warm);
}
.seasonal-items {
display: flex; justify-content: center;
gap: 48px; flex-wrap: wrap;
margin-top: 32px;
}
.seasonal-item {
text-align: center;
}
.seasonal-emoji {
font-size: 2rem;
margin-bottom: 8px;
}
.seasonal-name {
font-family: 'Noto Serif JP', serif;
font-size: 0.85rem;
font-weight: 500;
color: var(--ink);
}
.seasonal-sub {
font-size: 0.75rem;
color: var(--ink-faint);
margin-top: 2px;
}
/* === CTA === */
.cta-section {
text-align: center;
padding: 100px 32px;
}
.cta-section h2 { margin-bottom: 12px; }
.cta-section .section-desc { margin: 0 auto 40px; }
/* === FOOTER === */
footer {
padding: 32px 0;
text-align: center;
border-top: 1px solid var(--ink-ghost);
}
footer p {
font-size: 0.75rem;
color: var(--ink-faint);
font-weight: 300;
}
footer a {
color: var(--ink-faint);
text-decoration: none;
}
footer a:hover { color: var(--ink-soft); }
/* === ANIMATIONS === */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(12px); }
to { opacity: 1; transform: translateY(0); }
}
.hero > * {
animation: fadeIn 0.8s ease-out both;
}
.hero > *:nth-child(2) { animation-delay: 0.15s; }
.hero > *:nth-child(3) { animation-delay: 0.3s; }
.hero > *:nth-child(4) { animation-delay: 0.45s; }
.hero > *:nth-child(5) { animation-delay: 0.6s; }
.hero > *:nth-child(6) { animation-delay: 0.75s; }
.hero > *:nth-child(7) { animation-delay: 0.9s; }
/* === MOBILE === */
@media (max-width: 768px) {
.principles-grid { grid-template-columns: 1fr; }
.course { grid-template-columns: 48px 1fr; gap: 20px; }
.course-number { font-size: 1.6rem; }
.seasonal-items { gap: 28px; }
}
@media (max-width: 640px) {
.hero { padding: 120px 24px 80px; }
section { padding: 72px 0; }
nav .inner { padding: 0 24px; }
.container { padding: 0 24px; }
}
</style>
</head>
<body>
<nav>
<div class="inner">
<div class="logo">Oma<span class="ki">KI</span>se</div>
<a href="#kontakt">Platz nehmen</a>
</div>
</nav>
<section class="hero">
<div class="hero-kanji">お任せ</div>
<h1>Oma<span class="ki">KI</span>se</h1>
<p class="hero-sub">
<em>Omakase</em> — ich überlasse es dem Chef.<br>
Kuratierte KI-Beratung. Kein Menü. Kein Rätselraten.<br>
Du bekommst, was am besten passt.
</p>
<p class="hero-meaning">おまかせ + KI — Vertrauen trifft Intelligenz</p>
<div class="ichi"></div>
<br>
<div class="cta-group">
<a href="#kontakt" class="btn btn-primary">Platz nehmen</a>
<a href="#menu" class="btn btn-ghost">Das Menü</a>
</div>
</section>
<div class="philosophy">
<div class="container">
<p class="philosophy-text">
Beim Omakase wählt der <strong>Meister</strong>.<br>
Nicht aus Arroganz — aus <strong>Erfahrung</strong>.<br>
Er kennt die <strong>Zutaten</strong>, den <strong>Moment</strong>,<br>
und was <em>genau jetzt</em> am besten schmeckt.<br><br>
So arbeiten wir mit <span class="ki">KI</span>.
</p>
</div>
</div>
<section id="menu">
<div class="container">
<div class="section-jp">献立 — MENÜFOLGE</div>
<h2>Das OmaKIse-Menü</h2>
<div class="section-desc">
Sieben Gänge. Jeder aufeinander abgestimmt.
Vom ersten Kennenlernen bis zur laufenden Lösung —
kuratiert, nicht von der Karte bestellt.
</div>
<div class="courses-list">
<div class="course">
<div class="course-number"></div>
<div class="course-body">
<h3>Sakizuke — Der erste Eindruck</h3>
<div class="course-jp">先付</div>
<p>Ein kurzes Kennenlernen. Wir hören zu, stellen die richtigen Fragen und verstehen, was Sie wirklich brauchen — nicht was Sie bestellen würden.</p>
</div>
</div>
<div class="course">
<div class="course-number"></div>
<div class="course-body">
<h3>Hassun — Die Zusammenstellung</h3>
<div class="course-jp">八寸</div>
<p>Analyse Ihrer Daten, Prozesse und Ziele. Wir kuratieren die perfekte Kombination von KI-Technologien für Ihren spezifischen Fall.</p>
</div>
</div>
<div class="course">
<div class="course-number"></div>
<div class="course-body">
<h3>Mukōzuke — Das Rohe</h3>
<div class="course-jp">向付</div>
<p>Ehrliche Bestandsaufnahme. Ungeschönt zeigen wir, wo KI Wert schafft — und wo nicht. Keine Garnierung, keine Beschönigung.</p>
</div>
</div>
<div class="course">
<div class="course-number"></div>
<div class="course-body">
<h3>Yakimono — Die Zubereitung</h3>
<div class="course-jp">焼物</div>
<p>Prototyp in Tagen. Wir bauen die erste KI-Lösung — getestet mit echten Daten, echten Nutzern. Funktional, nicht dekorativ.</p>
</div>
</div>
<div class="course">
<div class="course-number"></div>
<div class="course-body">
<h3>Nimono — Das Einkochen</h3>
<div class="course-jp">煮物</div>
<p>Integration in bestehende Systeme. Langsam, sorgfältig, mit Tiefe. Die Lösung zieht ein und entfaltet ihren vollen Geschmack.</p>
</div>
</div>
<div class="course">
<div class="course-number"></div>
<div class="course-body">
<h3>Shokuji — Die Sättigung</h3>
<div class="course-jp">食事</div>
<p>Skalierung und Verfeinerung. Das System läuft, das Team versteht es, die Ergebnisse sprechen für sich.</p>
</div>
</div>
<div class="course">
<div class="course-number"></div>
<div class="course-body">
<h3>Mizumono — Der süße Abschluss</h3>
<div class="course-jp">水物</div>
<p>Übergabe und Autonomie. Ihr Team kann selbst. Wir bleiben als Sparring-Partner — aber der Meister sind jetzt Sie.</p>
</div>
</div>
</div>
</div>
</section>
<section class="principles-section">
<div class="container">
<div class="section-jp">哲学 — PHILOSOPHIE</div>
<h2>Die Prinzipien</h2>
<div class="section-desc">
Drei japanische Konzepte leiten unsere Arbeit.
</div>
<div class="principles-grid">
<div class="principle">
<div class="principle-kanji"></div>
<h3>Shin — Vertrauen</h3>
<p>Omakase beginnt mit Vertrauen. Sie vertrauen uns die Auswahl an — wir liefern das Beste, was die Saison hergibt.</p>
</div>
<div class="principle">
<div class="principle-kanji"></div>
<h3>Shun — Die richtige Zeit</h3>
<p>Nicht jede KI-Technologie ist heute reif. Wir wissen, was jetzt Saison hat — und was besser noch reifen sollte.</p>
</div>
<div class="principle">
<div class="principle-kanji"></div>
<h3>Waza — Handwerk</h3>
<p>Kein Schnickschnack, kein Overengineering. Präzise Schnitte, jahrelange Übung, respektvoller Umgang mit dem Material.</p>
</div>
</div>
</div>
</section>
<div class="seasonal">
<div class="container">
<div class="section-jp">季節 — SAISON</div>
<h2>Was gerade Saison hat</h2>
<div class="seasonal-items">
<div class="seasonal-item">
<div class="seasonal-emoji">🤖</div>
<div class="seasonal-name">LLM-Integration</div>
<div class="seasonal-sub">Hochsaison</div>
</div>
<div class="seasonal-item">
<div class="seasonal-emoji">📊</div>
<div class="seasonal-name">RAG-Systeme</div>
<div class="seasonal-sub">Erntezeit</div>
</div>
<div class="seasonal-item">
<div class="seasonal-emoji">🔍</div>
<div class="seasonal-name">KI-Agenten</div>
<div class="seasonal-sub">Frische Ernte</div>
</div>
<div class="seasonal-item">
<div class="seasonal-emoji">🎯</div>
<div class="seasonal-name">Prozessautomation</div>
<div class="seasonal-sub">Ganzjährig</div>
</div>
</div>
</div>
</div>
<section id="kontakt" class="cta-section">
<div class="container">
<div class="section-jp">予約 — RESERVIERUNG</div>
<h2>Platz nehmen</h2>
<div class="section-desc" style="margin-left:auto; margin-right:auto;">
Die besten Plätze sind am Tresen. Direkt beim Chef.
Schreiben Sie uns — wir bereiten Ihren ersten Gang vor.
</div>
<a href="mailto:omakise@msbls.de?subject=OmaKIse%20—%20Reservierung" class="btn btn-primary">
omakise@msbls.de
</a>
</div>
</section>
<footer>
<div class="container">
<p>Oma<span style="color:var(--aka);">KI</span>se.de — ein Projekt von <a href="https://msbls.de">msbls.de</a></p>
</div>
</footer>
</body>
</html>