Files
onepager/sites/machesdocheinfach.de/index.html
mAi 6f5de542ab feat: initial mono-repo with 30 vanity domain sites
Scaffold complete repo structure:
- 28 static sites extracted from running containers on mlake
- 2 dynamic sites (dasbes.de, dumusst.com) marked for separate handling
- Template system with 6 templates (person-dark/light, product-dark, editorial, fun, minimal)
- Shared CSS (variables, responsive, animations, noise overlay)
- nginx config generator with multi-domain alias support
- Build script with Docker-based nginx validation
- add-site.sh helper for scaffolding new domains
- Dockerfile for single nginx:alpine container

Sites: clemensplassmann.de, danosi.de, deinesei.de, derkaiseristnackt.de,
elefantenhor.de, fragina.de, frenchkis.de, ichbinaufbali.de, ichbinaufbarley.de,
insain.de, julietensity.de, kainco.de (+keinco.de), kainstress.de, keinefreun.de,
knzlmgmt.de, kopffrai.de, legalais.de, machesdocheinfach.de, mai-otto.de
(+otto.flexsiebels.de, ottomatisch.de, ichbinotto.de), martinsiebels.de,
matthiasbreier.de, osterai.de, paragraphenraiter.de, schulfrai.de, smartin3.de,
sorgenfrai.de, vonschraitter.de, wartebitte.de

Refs: otto#341
2026-03-29 13:20:27 +02:00

229 lines
5.7 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mach es doch einfach.</title>
<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=Newsreader:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Inter:wght@300;400;500&display=swap');
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--bg: #faf8f5;
--text: #2a2520;
--text-soft: #6b6259;
--text-faint: #a89878;
--accent: #e8783a;
--accent-soft: rgba(232, 120, 58, 0.12);
--line: rgba(232, 120, 58, 0.15);
}
html { scroll-behavior: smooth; }
body {
font-family: 'Newsreader', Georgia, serif;
background: var(--bg); color: var(--text);
line-height: 1.8; -webkit-font-smoothing: antialiased;
min-height: 100vh;
}
.page {
max-width: 540px;
margin: 0 auto;
padding: 120px 24px 80px;
}
.icon {
font-size: 3rem;
margin-bottom: 48px;
animation: launch 3s ease-in-out infinite;
}
@keyframes launch {
0%, 100% { transform: translateY(0) rotate(0deg); }
50% { transform: translateY(-6px) rotate(3deg); }
}
h1 {
font-family: 'Newsreader', Georgia, serif;
font-size: clamp(2.2rem, 5vw, 3rem);
font-weight: 500;
letter-spacing: -0.02em;
line-height: 1.2;
margin-bottom: 40px;
color: var(--text);
}
h1 em {
font-style: italic;
color: var(--accent);
}
.rule {
width: 40px; height: 2px;
background: var(--accent); margin: 0 auto 40px 0;
opacity: 0.4; border-radius: 1px;
}
.prose { margin-bottom: 48px; }
.prose p {
font-size: 1.08rem; color: var(--text-soft);
font-weight: 300; line-height: 1.9; margin-bottom: 24px;
}
.prose p:last-child { margin-bottom: 0; }
.prose em { color: var(--text); font-style: italic; }
.prose strong { color: var(--accent); font-weight: 500; }
.highlight {
background: var(--accent-soft);
padding: 28px 32px; border-radius: 14px;
border-left: 3px solid var(--accent);
margin: 48px 0;
}
.highlight p {
font-size: 1.05rem; color: var(--text-soft);
font-weight: 300; font-style: italic; line-height: 1.8;
}
.steps {
margin: 48px 0;
counter-reset: step;
}
.step {
counter-increment: step;
padding: 16px 0;
border-bottom: 1px solid var(--line);
display: flex;
gap: 16px;
align-items: baseline;
}
.step:last-child { border-bottom: none; }
.step::before {
content: counter(step) ".";
font-family: 'Inter', sans-serif;
font-size: 0.75rem;
font-weight: 600;
color: var(--accent);
min-width: 24px;
}
.step p {
font-size: 1rem; color: var(--text-soft);
font-weight: 300; line-height: 1.7;
}
.closing {
margin-top: 56px;
padding-top: 40px;
border-top: 1px solid var(--line);
}
.closing p {
font-size: 1.15rem;
color: var(--text);
font-weight: 400;
line-height: 1.6;
}
footer {
margin-top: 64px;
padding-top: 24px;
border-top: 1px solid var(--line);
text-align: center;
}
footer p {
font-family: 'Inter', sans-serif;
font-size: 0.72rem;
color: var(--text-faint);
}
@keyframes fadeUp {
from { opacity: 0; transform: translateY(16px); }
to { opacity: 1; transform: translateY(0); }
}
.page > * { animation: fadeUp 0.8s ease forwards; opacity: 0; }
.page > *:nth-child(1) { animation-delay: 0.1s; }
.page > *:nth-child(2) { animation-delay: 0.4s; }
.page > *:nth-child(3) { animation-delay: 0.7s; }
.page > *:nth-child(4) { animation-delay: 1.0s; }
.page > *:nth-child(5) { animation-delay: 1.3s; }
.page > *:nth-child(6) { animation-delay: 1.6s; }
.page > *:nth-child(7) { animation-delay: 1.9s; }
.page > *:nth-child(8) { animation-delay: 2.2s; }
@media (max-width: 540px) { .page { padding: 80px 20px 60px; } .highlight { padding: 20px 24px; } }
</style>
</head>
<body>
<div class="page">
<div class="icon">🚀</div>
<h1>Mach es doch <em>einfach</em>.</h1>
<div class="rule"></div>
<div class="prose">
<p>
Du denkst schon zu lange darüber nach. Du planst, du wägst ab,
du wartest auf den richtigen Moment. Aber der richtige Moment
ist <em>jetzt</em>.
</p>
<p>
Nicht morgen. Nicht wenn du bereit bist. Nicht wenn alles
perfekt ist. Denn perfekt wird es nie sein — und das ist
der Punkt. <strong>Es muss nicht perfekt sein. Es muss nur anfangen.</strong>
</p>
</div>
<div class="highlight">
<p>
„Die meisten Menschen scheitern nicht am Können.
Sie scheitern am Anfangen."
</p>
</div>
<div class="steps">
<div class="step">
<p>Hör auf zu googeln, ob es eine gute Idee ist.</p>
</div>
<div class="step">
<p>Mach den ersten Schritt. Egal wie klein.</p>
</div>
<div class="step">
<p>Erzähl jemandem davon. Dann gibt es kein Zurück.</p>
</div>
<div class="step">
<p>Akzeptiere, dass es am Anfang schlecht sein wird.</p>
</div>
<div class="step">
<p>Mach weiter. Jeden Tag ein bisschen besser.</p>
</div>
</div>
<div class="closing">
<p>
Du kannst das. Und du weißt es.
</p>
</div>
<footer>
<p>machesdocheinfach.de</p>
</footer>
</div>
</body>
</html>