Nutzer-Wunsch 20.08.2026: "wuensch mir nur noch bissl farbe und sehr wichtig ist dass ich auch spezielle live events da auch eintragen kann in der verwaltungsseite so dass da eine zweite uhr erscheint wo die zeit dann fuer dieses spezielle event laeuft." - Neue Verwaltungs-Sektion "Spezielles Live-Event": Titel (Deutsch, wird automatisch uebersetzt), echtes Datum+Uhrzeit, optionaler Link, Aktiv- Schalter -- nur mit Titel + Zukunftsdatum aktivierbar. - Zweite Uhr auf streamplan.html (Magenta/Violett statt Cyan/Gold, direkt neben der bestehenden), nur sichtbar wenn ein Event aktiviert ist und das Zieldatum noch nicht vorbei ist. Echter Countdown inkl. Tage (z.B. "2T 03:14:59"), "Jetzt"-Zeiger zeigt wie bei Uhr 1 die tatsaechliche Uhrzeit, der magentafarbene Fixpunkt markiert die Tageszeit des Events. Zieldatum wird als UTC gespeichert -- jede besuchende Person sieht den exakt richtigen Countdown in ihrer eigenen Zeitzone. - "Bissl Farbe": bunter Farbverlauf (Cyan/Violett/Gold) auf dem aeusseren Ring statt reinem Grauton, kraeftigerer Sweep-Farbschein. - Backend: neue routes/special-event.js (getSpecialEventPublic nur bei aktiv+zukuenftig, getSpecialEventAdmin fuer Entwuerfe, saveSpecialEvent mit Validierung), 13 automatisierte Tests gegen eine Fake-DB bestanden. - Bugfix unterwegs gefunden (Playwright-Screenshot, wiederholtes Muster auf dieser Seite): .stream-radar-wrap blieb trotz [hidden]-Attribut sichtbar (display:block ueberschreibt die eingebaute [hidden]-Regel bei gleicher Spezifitaet) -- explizite Regel ergaenzt, per Playwright erneut verifiziert (display:none bestaetigt). Backend-Teil (server-internal/) noch ohne Deploy-Zugriff -- Dogi muss ihn manuell auf dogiintern ausrollen, sonst bleibt die zweite Uhr unsichtbar. Co-Authored-By: Claude Opus 5 <[email protected]>
251 lines
12 KiB
HTML
251 lines
12 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="de" data-theme="dogfather">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>Zeitreise — DOGFATHER UNIVERSE</title>
|
||
<meta name="description" content="Die Geschichte von DogFather in einer interaktiven Zeitleiste." />
|
||
<link rel="icon" type="image/png" href="assets/img/favicon.png" />
|
||
<link rel="manifest" href="/manifest.json" />
|
||
<meta name="theme-color" content="#0b0d10" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:site_name" content="DOGFATHER UNIVERSE" />
|
||
<meta property="og:title" content="Zeitreise — DOGFATHER UNIVERSE" />
|
||
<meta property="og:description" content="Die Geschichte von DogFather in einer interaktiven Zeitleiste." />
|
||
<meta property="og:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||
<meta property="og:url" content="https://dogfather-universe.com/zeitreise.html" />
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="twitter:title" content="Zeitreise — DOGFATHER UNIVERSE" />
|
||
<meta name="twitter:description" content="Die Geschichte von DogFather in einer interaktiven Zeitleiste." />
|
||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||
|
||
<link rel="stylesheet" href="assets/css/main.css?v=20260820j" />
|
||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260820j" />
|
||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260820j" />
|
||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260820j" />
|
||
</head>
|
||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-zeitreise.jpg');--page-bg-mobile:url('/assets/img/bg-zeitreise-mobile.jpg');">
|
||
<div id="site-header"></div>
|
||
|
||
<main>
|
||
<section class="hero page-bg">
|
||
<div class="hero-banner"><img src="/assets/img/bg-zeitreise.jpg" alt="" loading="eager" /></div>
|
||
<div class="container">
|
||
<span class="eyebrow" data-i18n="zr_eyebrow">Welt 1 — DogFather</span>
|
||
<h1 data-i18n="zr_h1">Zeitreise</h1>
|
||
<p class="lead worlds" data-i18n="zr_lead">Die Geschichte von DogFather & Team Dogi.</p>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section-tight">
|
||
<div class="container">
|
||
<!-- Nutzer-Wunsch 20.08.2026: gleich am Anfang gut sichtbar zeigen, dass
|
||
diese Zeitreise noch aktiv wächst/nicht fertig ist — bewusst NICHT
|
||
die alte .todo-note-Optik (die war für Entwickler gedacht und wurde
|
||
am 31.07.2026 sitewide unsichtbar gemacht), sondern ein einladender,
|
||
für Besucher gestalteter Hinweis im Wachstums-Baum-Thema dieser
|
||
Seite (passt zu 🌱 "Der Anfang" oben und 🌳 "...wächst weiter" unten). -->
|
||
<div class="zeit-baustelle">
|
||
<span class="zeit-baustelle-icon" aria-hidden="true">🌱</span>
|
||
<div>
|
||
<strong data-i18n="zr_baustelle_h3">Diese Zeitreise wächst noch</strong>
|
||
<p data-i18n="zr_baustelle_p">Wir ergänzen laufend weitere Kapitel, Daten und Momente aus der Geschichte von DogFather & Team Dogi — schau gern öfter mal wieder vorbei.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-baum">
|
||
<div class="zeit-baum-kappe">
|
||
<span aria-hidden="true">🌱</span>
|
||
<span data-i18n="zr_baum_start">Der Anfang</span>
|
||
</div>
|
||
|
||
<!-- Nutzer-Wunsch 20.08.2026: echtes Datum nachgetragen (24. Oktober 2023) --
|
||
bleibt weiterhin die erste Karte, da es das früheste Datum der ganzen
|
||
Zeitleiste ist. -->
|
||
<div class="zeit-ast">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev1_date">24. Oktober 2023</div>
|
||
<h3 data-i18n="zr_ev1_h3">Start als Content Creator</h3>
|
||
<p data-i18n="zr_ev1_p">DogFather beginnt seine Reise auf TikTok.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Nutzer-Wunsch 20.08.2026: echtes Datum nachgetragen (Anfang 2025) — bleibt
|
||
an dieser Stelle, da "Anfang 2025" chronologisch weiterhin vor "Ostern
|
||
2025" (nächste Karte) liegt. -->
|
||
<div class="zeit-ast">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev2_date">Anfang 2025</div>
|
||
<h3 data-i18n="zr_ev2_h3">Team Dogi entsteht</h3>
|
||
<p data-i18n="zr_ev2_p">Aus einzelnen Zuschauern wird eine starke Gemeinschaft.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast meilenstein">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev3_date">Ostern 2025</div>
|
||
<h3 data-i18n="zr_ev3_h3">HasiDog wird geboren</h3>
|
||
<p data-i18n="zr_ev3_p">Aus einem Spitznamen entsteht eine eigenständige Marke.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Nutzer-Wunsch 20.08.2026: echtes Datum nachgetragen (November 2025) und
|
||
an die chronologisch richtige Stelle verschoben (lag vorher weiter unten
|
||
unter "Datum folgt"). -->
|
||
<div class="zeit-ast">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev13_date">November 2025</div>
|
||
<h3 data-i18n="zr_ev13_h3">Das Buch „HasiDog & Casper"</h3>
|
||
<p data-i18n="zr_ev13_p">Die Geschichte von DogFather, HasiDog und seinem Husky Casper wird zum Buch.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Nutzer-Wunsch 20.08.2026: echtes Datum nachgetragen (1. Januar 2026) und
|
||
an die chronologisch richtige Stelle verschoben (lag vorher weiter unten
|
||
unter "Datum folgt"). -->
|
||
<div class="zeit-ast">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev14_date">1. Januar 2026</div>
|
||
<h3 data-i18n="zr_ev14_h3">HasiDog startet auf Spotify</h3>
|
||
<p data-i18n="zr_ev14_p">HasiDog erhält sein eigenes Musikprojekt.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast meilenstein">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev4_date">7. März 2026</div>
|
||
<h3 data-i18n="zr_ev4_h3">Der 28-Stunden-Stream</h3>
|
||
<p data-i18n="zr_ev4_p">DogFather stellt sich einer besonderen Herausforderung und streamt 28 Stunden.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev6_date">2. bis 15. Juni 2026</div>
|
||
<h3 data-i18n="zr_ev6_h3">Die große 12-Stunden-Challenge</h3>
|
||
<p data-i18n="zr_ev6_p">Eine weitere Streaming-Herausforderung gemeinsam mit Team Dogi.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev7_date">Juli 2026</div>
|
||
<h3 data-i18n="zr_ev7_h3">Start als Manager bei Spicy Media</h3>
|
||
<p data-i18n="zr_ev7_p">DogFather übernimmt bei Spicy Media die Rolle als Manager.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast meilenstein">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev9_date">27. Juli bis 2. August 2026</div>
|
||
<h3 data-i18n="zr_ev9_h3">Der Creator Cup</h3>
|
||
<p data-i18n="zr_ev9_p">Gemeinsam mit Cidem organisiert DogFather den Creator Cup.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev10_date">28. Juli 2026</div>
|
||
<h3 data-i18n="zr_ev10_h3">Patrick und Bananenstift werden Scouts</h3>
|
||
<p data-i18n="zr_ev10_p">Sie schließen sich DogFather als Scouts an.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev11_date">28. Juli 2026</div>
|
||
<h3 data-i18n="zr_ev11_h3">Aufbau eines eigenen Creator-Systems</h3>
|
||
<p data-i18n="zr_ev11_p">Eine langfristige Struktur für Creator, Scouts und zukünftige Manager.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast meilenstein">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev12_date">Ende Juli 2026</div>
|
||
<h3 data-i18n="zr_ev12_h3">Das DOGFATHER UNIVERSE nimmt Form an</h3>
|
||
<p data-i18n="zr_ev12_p">Die Planung einer eigenen Website beginnt.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_datum_folgt">Datum folgt</div>
|
||
<h3 data-i18n="zr_ev15_h3">Kooperation mit VanVan Teddys</h3>
|
||
<p data-i18n="zr_ev15_p">Eine eigene Merchandise-Kooperation rund um VanVan startet.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast meilenstein">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev19_date">21. August 2026, 21 Uhr</div>
|
||
<h3 data-i18n="zr_ev19_h3">DOGFATHER UNIVERSE geht online</h3>
|
||
<p data-i18n="zr_ev19_p">Die offizielle Website öffnet ihre Türen.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-ast meilenstein zeit-final">
|
||
<div class="zeit-node" aria-hidden="true"></div>
|
||
<div class="zeit-karte">
|
||
<div class="zeit-datum" data-i18n="zr_ev20_date">Fortsetzung folgt</div>
|
||
<h3 data-i18n="zr_ev20_h3">Die Geschichte ist noch lange nicht vorbei</h3>
|
||
<p data-i18n="zr_ev20_p">Das DOGFATHER UNIVERSE wächst weiter.</p>
|
||
<p class="zeit-zitat" data-i18n="zr_ev20_quote">Denn aus einem einzelnen TikTok-Livestream wurde eine Community – und aus dieser Community wurde eine Familie.</p>
|
||
<p class="zeit-familie" data-i18n="zr_ev20_familie">Team Dogi ist Familie. 🩵</p>
|
||
<p class="zeit-signoff" data-i18n="zr_ev20_signoff">Liebe Grüße<br>-euer DogFather</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="zeit-baum-wurzel">
|
||
<span aria-hidden="true">🌳</span>
|
||
<span data-i18n="zr_baum_wächst">…und die Geschichte wächst weiter</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<div id="site-footer"></div>
|
||
<script src="assets/js/i18n-zeitreise.js?v=20260820j"></script>
|
||
<script src="assets/js/main.js?v=20260820j"></script>
|
||
<script>
|
||
/* Wachstums-Reveal: Äste blenden sich beim Scrollen sanft ein — passt
|
||
zum "wachsenden Baum"-Konzept dieser Seite. Rein page-lokal, betrifft
|
||
keine andere Seite. */
|
||
(function () {
|
||
var aeste = document.querySelectorAll(".zeit-ast");
|
||
if (!aeste.length) return;
|
||
if (!("IntersectionObserver" in window)) {
|
||
aeste.forEach(function (el) { el.classList.add("zeit-sichtbar"); });
|
||
return;
|
||
}
|
||
var beobachter = new IntersectionObserver(
|
||
function (eintraege) {
|
||
eintraege.forEach(function (eintrag) {
|
||
if (eintrag.isIntersecting) {
|
||
eintrag.target.classList.add("zeit-sichtbar");
|
||
beobachter.unobserve(eintrag.target);
|
||
}
|
||
});
|
||
},
|
||
{ threshold: 0.15, rootMargin: "0px 0px -40px 0px" }
|
||
);
|
||
aeste.forEach(function (el) { beobachter.observe(el); });
|
||
})();
|
||
</script>
|
||
</body>
|
||
</html>
|