Startseite: Hintergrund-Kanten weg, "Event des Jahres" neu aufgebaut

Gemeldet 27.08.2026: "es ueberschneidet den hintergrund sieht irgendwie
scheisse aus."

1. HARTE KANTEN IM HINTERGRUND
   Das scharfe Trio-Artwork lag als CSS-Hintergrund mit "contain" hinter
   der Seite und endete an einer messerscharfen Linie (bei 1366x800 exakt
   bei 570px und 1345px); darueber/darunter lag sichtbar die verwaschene
   Fassung. Das las sich wie ein aufgeklebtes Band quer ueber der Seite.
   Jetzt ein echtes <img>, das an seinen EIGENEN Raendern weich in die
   verwaschene Ebene uebergeht. Entscheidend: Die Maske haengt am Bild,
   nicht am Fenster -- als CSS-Hintergrund war das unmoeglich, weil die
   Kante je nach Fensterformat wandert.

2. "EVENT DES JAHRES" -- 700px tote Flaeche
   Eine 480px schmale Kachel sass zentriert in einer 1180px breiten
   Kiste, die selbst Rahmen und Hintergrund trug: drei Rahmen ineinander
   um einen einzigen Inhalt, links und rechts je 350px Leere. Jetzt volle
   Breite mit Bild links / Text rechts, die umgebende Kiste ist rahmenlos.
   Hoehe von 656px auf 332px, ohne dass Inhalt verloren geht -- das Bild
   ist dabei doppelt so gross wie vorher.

3. Welt-Kacheln mit einer Spur Milchglas und feinem Lichtsaum, damit sie
   zur Szene gehoeren statt als flache Rechtecke daraufzuliegen.

BEIM BAUEN GEFUNDEN UND KORRIGIERT: Der erste Entwurf hat die versteckte
zweite Event-Kachel wieder sichtbar gemacht (leere Kachel mit einsamem
"Mehr erfahren"). Ursache ist die im Code zweimal dokumentierte Falle:
".jahres-event-card[hidden]" ist genau so stark wie eine
Zwei-Klassen-Regel und verliert gegen die spaetere. Deshalb steht in den
neuen Regeln ueberall :not([hidden]).

Versionsnummern von main.css/main.js hochgesetzt -- Assets werden mit
max-age=14400 ausgeliefert, sonst haette Dogi die Aenderung bis zu vier
Stunden nicht gesehen.

Geprueft: pruef-handy (56), pruef-barrierefrei (60), pruef-design (0
Fundstellen), pruef-blickfang (13), pruef-assets (67), pruef-musik (17)
-- alle gruen. Der Musik-Knopf holt seine Farben jetzt aus dem <img>
statt aus dem CSS-Hintergrund (main.js), sonst waere er ausgerechnet auf
der Startseite auf die Ersatzfarbe zurueckgefallen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-08-27 15:45:23 +02:00
co-authored by Claude Opus 5
parent e2a40313d6
commit 508009ecc7
39 changed files with 348 additions and 100 deletions
+2 -2
View File
@@ -18,7 +18,7 @@
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<meta name="robots" content="noindex" /> <meta name="robots" content="noindex" />
<title>Seite nicht gefunden — DOGFATHER UNIVERSE</title> <title>Seite nicht gefunden — DOGFATHER UNIVERSE</title>
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -42,6 +42,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-404.js?v=20260828c"></script> <script src="assets/js/i18n-404.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Unterstütze Dogfather dauerhaft mit der DogiCrew 🩵 und sammle exklusive Treueprämien — die Teddy-Kollektion entsteht in Kooperation mit VanVan." /> <meta name="twitter:description" content="Unterstütze Dogfather dauerhaft mit der DogiCrew 🩵 und sammle exklusive Treueprämien — die Teddy-Kollektion entsteht in Kooperation mit VanVan." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -605,7 +605,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-abonnieren.js?v=20260828c"></script> <script src="assets/js/i18n-abonnieren.js?v=20260828c"></script>
<script src="assets/js/supporter.js?v=20260828c"></script> <script src="assets/js/supporter.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
(function () { (function () {
const S = window.DogiSupporter; const S = window.DogiSupporter;
+2 -2
View File
@@ -20,7 +20,7 @@
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<meta name="robots" content="noindex" /> <meta name="robots" content="noindex" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -134,6 +134,6 @@
</main> </main>
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Detailansicht einer Aktion oder eines Projekts von Team Dogi." /> <meta name="twitter:description" content="Detailansicht einer Aktion oder eines Projekts von Team Dogi." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -53,7 +53,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/data-aktionen.js?v=20260828c"></script> <script src="assets/js/data-aktionen.js?v=20260828c"></script>
<script src="assets/js/i18n-aktion-detail.js?v=20260828c"></script> <script src="assets/js/i18n-aktion-detail.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
const params = new URLSearchParams(location.search); const params = new URLSearchParams(location.search);
+164 -29
View File
@@ -1835,15 +1835,34 @@ header.site-header {
kein Grid-Kind), zeigt bewusst IMMER genau zwei Events nebeneinander. Gleiche kein Grid-Kind), zeigt bewusst IMMER genau zwei Events nebeneinander. Gleiche
Karten-/Tag-Optik wie die 3 Welt-Kacheln, damit es wie ein natürlicher Abschluss des Karten-/Tag-Optik wie die 3 Welt-Kacheln, damit es wie ein natürlicher Abschluss des
Grids wirkt statt wie ein fremdes Element. */ Grids wirkt statt wie ein fremdes Element. */
/* Die umgebende Kiste ist seit 27.08.2026 rahmenlos. Vorher trug sie
Hintergrund UND Rahmen, und die Event-Karte darin trug beides noch
einmal — zwei Rahmen um denselben Inhalt, dazwischen tote Fläche. Die
Karte allein trägt das Design jetzt besser; die Überschrift steht frei
darüber. */
.jahres-events { .jahres-events {
margin-top: 1.2rem; margin-top: 1.8rem;
background: var(--card-bg); background: none;
border: 1px solid var(--border); border: 0;
border-radius: var(--radius); padding: 0;
padding: 1.6rem; box-shadow: none;
box-shadow: var(--shadow); }
.jahres-events-head { margin-bottom: .9rem; }
/* Ohne die umgebende Kiste stand die Überschrift als nackter Text
zwischen zwei Kacheln und wirkte verloren. Als goldene Plakette gehört
sie sichtbar zur Event-Karte darunter — gedecktes Gold, kein grelles
Leuchten (Projektregel: augenschonend). */
.jahres-events-head .tag {
display: inline-block;
padding: .34rem .95rem;
border-radius: 999px;
border: 1px solid rgba(212, 175, 55, .38);
background: rgba(212, 175, 55, .09);
color: #e8c465;
font-size: .82rem;
font-weight: 700;
letter-spacing: .04em;
} }
.jahres-events-head { margin-bottom: 1.2rem; }
.jahres-events-grid { .jahres-events-grid {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
@@ -1875,11 +1894,19 @@ header.site-header {
overflow: hidden; overflow: hidden;
isolation: isolate; isolation: isolate;
padding: 1.2rem 1.4rem; padding: 1.2rem 1.4rem;
border-radius: calc(var(--radius) - 4px); border-radius: var(--radius);
border: 1px solid rgba(212, 175, 55, .35); border: 1px solid rgba(212, 175, 55, .35);
/* Die Karte steht jetzt ohne umgebende Kiste direkt über dem Artwork
und muss ihren Hintergrund selbst mitbringen — vorher genügte ein
Hauch Weiß, weil die Kiste darunter ohnehin deckend war. Deckend
genug für ruhigen Lesetext, mit einer Spur Milchglas, damit die Karte
zur Seite gehört statt wie ein Aufkleber darauf zu liegen. */
background: background:
radial-gradient(circle at 15% 0%, rgba(212, 175, 55, .08), transparent 55%), radial-gradient(circle at 12% 0%, rgba(212, 175, 55, .10), transparent 58%),
rgba(255, 255, 255, .02); linear-gradient(180deg, rgba(19, 23, 31, .90), rgba(13, 16, 22, .94));
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
box-shadow: 0 14px 40px rgba(0, 0, 0, .38);
transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
} }
.jahres-event-card:hover, .jahres-event-card:focus-visible { .jahres-event-card:hover, .jahres-event-card:focus-visible {
@@ -1909,15 +1936,69 @@ header.site-header {
.jahres-event-card h3 { margin: 0 0 .4rem; font-size: 1.15rem; } .jahres-event-card h3 { margin: 0 0 .4rem; font-size: 1.15rem; }
.jahres-event-card p { margin: 0 0 .6rem; color: var(--text-muted); font-size: .93rem; line-height: 1.55; } .jahres-event-card p { margin: 0 0 .6rem; color: var(--text-muted); font-size: .93rem; line-height: 1.55; }
.jahres-event-mehr { color: #e8c465; font-weight: 600; font-size: .88rem; } .jahres-event-mehr { color: #e8c465; font-weight: 600; font-size: .88rem; }
/* Genau EIN aktives Event: zentrierte, etwas größere Einzelkachel statt /* Genau EIN aktives Event (27.08.2026 neu gebaut).
halbleerem Zwei-Spalten-Raster (Nutzer-Wunsch: "spezieller"). */
.jahres-events-grid-einzeln { VORHER: eine 480px schmale Kachel, zentriert in einer 1180px breiten
grid-template-columns: 1fr; Kiste. Links und rechts davon standen je 350px totes Dunkelgrau, und
max-width: 480px; weil die Kiste selbst schon Rahmen und Hintergrund hatte, saß eine
margin: 0 auto; gerahmte Karte in einer gerahmten Kiste in einem Container — drei
Rahmen ineinander um einen einzigen Inhalt ("sieht irgendwie scheisse
aus", 27.08.2026).
JETZT: Die Karte nimmt die volle Breite ein und teilt sich in Bild
links / Text rechts. Das Bild ist das Beste am Event -- es bekommt
Platz statt Briefmarkenformat, und die leere Fläche verschwindet, weil
der Text sie füllt. Ab 900px abwärts wird daraus wieder
untereinander, sonst würden beide Spalten zu schmal. */
.jahres-events-grid-einzeln { grid-template-columns: 1fr; }
/* ⚠️ :not([hidden]) ist hier PFLICHT, nicht Deko.
".jahres-event-card[hidden]{display:none}" weiter oben hat die Stärke
Klasse+Attribut. Eine Regel "Klasse Klasse" wie diese hier ist exakt
gleich stark und steht später in der Datei — sie hätte das Verstecken
also ausgehebelt und die zweite, leere Event-Kachel wieder sichtbar
gemacht. Genau das ist beim ersten Entwurf passiert (im Bild stand
eine leere Kachel mit einsamem "Mehr erfahren →"). Im Code stand die
Warnung davor schon zweimal; sie stimmt. */
.jahres-events-grid-einzeln .jahres-event-card:not([hidden]) {
display: grid;
grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
/* Zeilen nach Inhalt, Block als Ganzes mittig: sonst verteilt das
Raster Datum/Titel/Text/Link über die volle Bildhöhe und der Text
steht auseinandergezogen wie eine Liste statt als Absatz. */
grid-template-rows: repeat(4, max-content);
align-content: center;
column-gap: 1.7rem;
row-gap: .1rem;
padding: 1.5rem;
}
.jahres-events-grid-einzeln .jahres-event-bild:not([hidden]) {
margin-bottom: 0;
width: 100%;
height: 100%;
min-height: 230px;
aspect-ratio: auto;
align-self: stretch;
object-fit: cover;
}
/* Datum, Titel, Text und "Mehr erfahren" bilden die zweite Spalte. Sie
stehen im HTML als Geschwister nebeneinander, deshalb hier ein eigenes
Unter-Raster statt eines zusätzlichen <div> im Markup — so bleibt die
Vorlage in der Verwaltung unverändert. */
.jahres-events-grid-einzeln .jahres-event-datum { grid-column: 2; margin-bottom: .15rem; }
.jahres-events-grid-einzeln .jahres-event-card h3 { grid-column: 2; font-size: 1.5rem; margin-bottom: .5rem; }
.jahres-events-grid-einzeln .jahres-event-card p { grid-column: 2; font-size: 1rem; margin-bottom: .8rem; }
.jahres-events-grid-einzeln .jahres-event-mehr { grid-column: 2; justify-self: start; }
.jahres-events-grid-einzeln .jahres-event-bild:not([hidden]) { grid-column: 1; grid-row: 1 / -1; }
@media (max-width: 900px) {
.jahres-events-grid-einzeln .jahres-event-card:not([hidden]) { grid-template-columns: 1fr; grid-template-rows: none; gap: .9rem; padding: 1.2rem 1.3rem; }
.jahres-events-grid-einzeln .jahres-event-datum,
.jahres-events-grid-einzeln .jahres-event-card h3,
.jahres-events-grid-einzeln .jahres-event-card p,
.jahres-events-grid-einzeln .jahres-event-mehr { grid-column: 1; }
.jahres-events-grid-einzeln .jahres-event-bild:not([hidden]) { grid-column: 1; grid-row: auto; height: auto; min-height: 0; aspect-ratio: 16/9; }
.jahres-events-grid-einzeln .jahres-event-card h3 { font-size: 1.25rem; }
} }
.jahres-events-grid-einzeln .jahres-event-card { padding: 1.6rem 1.8rem; }
.jahres-events-grid-einzeln .jahres-event-card h3 { font-size: 1.3rem; }
/* Optionales Admin-Bild pro Event (20.08.2026, "Event des Jahres" jetzt in /* Optionales Admin-Bild pro Event (20.08.2026, "Event des Jahres" jetzt in
der Verwaltung pflegbar) — bleibt per [hidden] unsichtbar, solange kein der Verwaltung pflegbar) — bleibt per [hidden] unsichtbar, solange kein
Bild gesetzt ist, damit die textbasierten Standard-Karten unverändert Bild gesetzt ist, damit die textbasierten Standard-Karten unverändert
@@ -2843,21 +2924,51 @@ footer.site-footer {
overflow: hidden; overflow: hidden;
pointer-events: none; pointer-events: none;
} }
/* Untere Ebene: dieselbe Szene verwaschen als Cover — füllt jeden Rand,
den das scharfe Bild freilässt. */
.hero-artwork::before { .hero-artwork::before {
content: ""; content: "";
position: absolute; position: absolute;
inset: 0; inset: 0;
/* Zwei Ebenen: das scharfe Artwork komplett sichtbar (contain — auf background-image: url("../img/universe-trio-blur.jpg?v=20260820h");
dieser Seite läuft der Text ÜBER dem Bild mit Polarlicht-Effekten, background-size: cover;
ein Banner-oberhalb-des-Texts-Layout wie auf den anderen Seiten background-position: center;
würde das Design zerstören). Darunter dieselbe Szene verwaschen als background-repeat: no-repeat;
Cover, die jeden Rand auffüllt, den "contain" freilässt — dadurch }
wirkt es trotzdem randlos, obwohl die scharfen Pixel garantiert
nie beschnitten werden. */ /* Obere Ebene: das scharfe Artwork, ungeschnitten und mittig — wie zuvor
background-image: url("../img/universe-trio.jpg?v=20260820h"), url("../img/universe-trio-blur.jpg?v=20260820h"); "contain", nur eben als echtes Bild (siehe Begründung in index.html).
background-size: contain, cover;
background-position: center, center; DER ENTSCHEIDENDE TEIL IST DIE MASKE (27.08.2026):
background-repeat: no-repeat, no-repeat;
Vorher endete das scharfe Bild an einer messerscharfen Kante, oben wie
unten (bei 1366x800 z.B. exakt bei 570px und 1345px) — dort traf helles,
scharfes Bild auf dunklen, verwaschenen Untergrund. Das las sich nicht
als Hintergrund, sondern als Fremdkörper quer über der Seite.
Die Maske blendet das scharfe Bild an seinen EIGENEN Rändern weich in
die verwaschene Fassung darunter über. Weil sie am Bild hängt und nicht
am Fenster, sitzt der Übergang auf jedem Bildschirm richtig — genau das
war mit einem CSS-Hintergrund nicht möglich, dessen Kante je nach
Fensterformat wandert. Unten wird großzügiger ausgeblendet als oben,
weil dort die Kacheln liegen: Je ruhiger es unter ihnen wird, desto
klarer heben sie sich ab. */
.hero-artwork-scharf {
position: absolute;
inset: 0;
margin: auto;
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
-webkit-mask-image:
linear-gradient(to bottom, transparent 0%, #000 9%, #000 72%, transparent 100%),
linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%);
mask-image:
linear-gradient(to bottom, transparent 0%, #000 9%, #000 72%, transparent 100%),
linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%);
-webkit-mask-composite: source-in;
mask-composite: intersect;
} }
.hero-artwork::after { .hero-artwork::after {
content: ""; content: "";
@@ -2895,6 +3006,30 @@ footer.site-footer {
/* Die drei Welten-Karten (DogFather/HasiDog/Manager) unter dem Hero /* Die drei Welten-Karten (DogFather/HasiDog/Manager) unter dem Hero
sollen ebenfalls etwas größer wirken, wie auf Wunsch — Text war auf sollen ebenfalls etwas größer wirken, wie auf Wunsch — Text war auf
großen Bildschirmen zu klein. */ großen Bildschirmen zu klein. */
/* Die drei Welt-Kacheln liegen direkt auf dem Artwork. Als flache
dunkle Rechtecke wirkten sie wie ausgeschnitten und aufgeklebt
(27.08.2026). Jetzt: eine Spur Milchglas und ein feiner Lichtsaum
oben, wie ihn eine Fläche bekommt, auf die Licht von vorne fällt —
dadurch gehören sie sichtbar zur selben Szene. Deckkraft bleibt hoch
genug, dass der Text ruhig lesbar bleibt (Projektregel: augenschonend
vor Effekt). */
.hero-cinematic .hero-grid .card {
position: relative;
background: linear-gradient(180deg, rgba(22, 26, 35, .88), rgba(14, 17, 23, .92));
border-color: rgba(255, 255, 255, .11);
-webkit-backdrop-filter: blur(7px);
backdrop-filter: blur(7px);
box-shadow: 0 14px 38px rgba(0, 0, 0, .40);
}
.hero-cinematic .hero-grid .card::before {
content: "";
position: absolute;
top: 0; left: 12%; right: 12%;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .30), transparent);
pointer-events: none;
}
.hero-cinematic .hero-grid .card:hover { box-shadow: 0 18px 46px rgba(0, 0, 0, .5); }
.hero-cinematic .hero-grid .tag { font-size: .8rem; } .hero-cinematic .hero-grid .tag { font-size: .8rem; }
.hero-cinematic .hero-grid h3 { font-size: 1.45rem; } .hero-cinematic .hero-grid h3 { font-size: 1.45rem; }
.hero-cinematic .hero-grid p { font-size: 1.05rem; } .hero-cinematic .hero-grid p { font-size: 1.05rem; }
+7
View File
@@ -827,6 +827,13 @@
const banner = document.querySelector(".hero-banner img"); const banner = document.querySelector(".hero-banner img");
if (banner && banner.getAttribute("src")) return banner; if (banner && banner.getAttribute("src")) return banner;
/* Startseite seit 27.08.2026: Das Trio-Artwork ist ein echtes <img>
(vorher ein CSS-Hintergrund im ::before, siehe main.css). Ohne diese
Zeile fände die Farbsuche dort nichts mehr und der Musik-Knopf fiele
ausgerechnet auf der Startseite auf die Ersatzfarbe zurück. */
const artworkBild = document.querySelector(".hero-artwork img");
if (artworkBild && artworkBild.getAttribute("src")) return artworkBild;
const artwork = document.querySelector(".hero-artwork"); const artwork = document.querySelector(".hero-artwork");
if (artwork) { if (artwork) {
const hintergrund = getComputedStyle(artwork, "::before").backgroundImage; const hintergrund = getComputedStyle(artwork, "::before").backgroundImage;
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Du bist Streamer und suchst einen Manager? Bewirb dich als Creator bei Spicy Media." /> <meta name="twitter:description" content="Du bist Streamer und suchst einen Manager? Bewirb dich als Creator bei Spicy Media." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -72,6 +72,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/forms.js?v=20260828c"></script> <script src="assets/js/forms.js?v=20260828c"></script>
<script src="assets/js/i18n-bewerben-creator.js?v=20260828c"></script> <script src="assets/js/i18n-bewerben-creator.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -22,7 +22,7 @@
<meta name="twitter:description" content="Kooperationsanfrage an Manager DogFather / Spicy Media." /> <meta name="twitter:description" content="Kooperationsanfrage an Manager DogFather / Spicy Media." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -70,6 +70,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/forms.js?v=20260828c"></script> <script src="assets/js/forms.js?v=20260828c"></script>
<script src="assets/js/i18n-bewerben-kooperation.js?v=20260828c"></script> <script src="assets/js/i18n-bewerben-kooperation.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Werde Modi bei Team Dogi — DogFathers persönliches Community-Team." /> <meta name="twitter:description" content="Werde Modi bei Team Dogi — DogFathers persönliches Community-Team." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -81,6 +81,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/forms.js?v=20260828c"></script> <script src="assets/js/forms.js?v=20260828c"></script>
<script src="assets/js/i18n-bewerben-modi.js?v=20260828c"></script> <script src="assets/js/i18n-bewerben-modi.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Werde Scout für DogFather bei der Spicy Media Agentur — finde neue Talente." /> <meta name="twitter:description" content="Werde Scout für DogFather bei der Spicy Media Agentur — finde neue Talente." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -73,6 +73,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/forms.js?v=20260828c"></script> <script src="assets/js/forms.js?v=20260828c"></script>
<script src="assets/js/i18n-bewerben-scout.js?v=20260828c"></script> <script src="assets/js/i18n-bewerben-scout.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Werde Teil vom Team: Modi bei Team Dogi, Scout oder Creator bei Spicy Media, oder Kooperation anfragen." /> <meta name="twitter:description" content="Werde Teil vom Team: Modi bei Team Dogi, Scout oder Creator bei Spicy Media, oder Kooperation anfragen." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -86,6 +86,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-bewerben.js?v=20260828c"></script> <script src="assets/js/i18n-bewerben.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

After

Width:  |  Height:  |  Size: 304 KiB

+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Der Husky an DogFathers Seite — das tierische Gesicht der HasiDog-Welt." /> <meta name="twitter:description" content="Der Husky an DogFathers Seite — das tierische Gesicht der HasiDog-Welt." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -86,6 +86,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-casper.js?v=20260828c"></script> <script src="assets/js/i18n-casper.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Team Dogi ist Familie — die Community rund um DogFather und HasiDog." /> <meta name="twitter:description" content="Team Dogi ist Familie — die Community rund um DogFather und HasiDog." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -85,6 +85,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-community.js?v=20260828c"></script> <script src="assets/js/i18n-community.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Content Creator, die Teil von DogFather / Spicy Media sind." /> <meta name="twitter:description" content="Content Creator, die Teil von DogFather / Spicy Media sind." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -62,7 +62,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/data-creator.js?v=20260828c"></script> <script src="assets/js/data-creator.js?v=20260828c"></script>
<script src="assets/js/i18n-creator.js?v=20260828c"></script> <script src="assets/js/i18n-creator.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
document.addEventListener("DOMContentLoaded", async () => { document.addEventListener("DOMContentLoaded", async () => {
const grid = document.getElementById("creator-grid"); const grid = document.getElementById("creator-grid");
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Wer ist DogFather wirklich? Persönlichkeit, Werte und die Geschichte hinter dem Content." /> <meta name="twitter:description" content="Wer ist DogFather wirklich? Persönlichkeit, Werte und die Geschichte hinter dem Content." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -159,6 +159,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-dogfather.js?v=20260828c"></script> <script src="assets/js/i18n-dogfather.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+1 -1
View File
@@ -26,7 +26,7 @@
<meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="DogFather" /> <meta name="apple-mobile-web-app-title" content="DogFather" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<style> <style>
/* ===================================================================== /* =====================================================================
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="HasiDog: Maskottchen, Musikprojekt und die verspielte, familiäre Seite von Team Dogi." /> <meta name="twitter:description" content="HasiDog: Maskottchen, Musikprojekt und die verspielte, familiäre Seite von Team Dogi." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -187,6 +187,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-hasidog.js?v=20260828c"></script> <script src="assets/js/i18n-hasidog.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+16 -4
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="DOGFATHER UNIVERSE: die Heimat von DogFather als Streamer, der HasiDog-Community und Manager DogFather bei Spicy Media." /> <meta name="twitter:description" content="DOGFATHER UNIVERSE: die Heimat von DogFather als Streamer, der HasiDog-Community und Manager DogFather bei Spicy Media." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -30,8 +30,20 @@
<main> <main>
<!-- ================= HERO ================= --> <!-- ================= HERO ================= -->
<section class="hero hero-cinematic"> <section class="hero hero-cinematic">
<!-- Großes Trio-Artwork als Kino-Hintergrund (DogFather · Dogi · HasiDog) --> <!-- Großes Trio-Artwork als Kino-Hintergrund (DogFather · Dogi · HasiDog).
<div class="hero-artwork" aria-hidden="true"></div>
Das scharfe Bild ist seit 27.08.2026 ein echtes <img> statt eines
CSS-Hintergrunds. Grund: Als Hintergrund mit "contain" endete es an
einer harten Kante, und darunter/darüber lag sichtbar die verwaschene
Fassung — es sah aus wie ein aufgeklebtes Band quer über der Seite
("es überschneidet den hintergrund"). Ein echtes Bild lässt sich an
seinen eigenen Rändern weich ausblenden, egal wie breit der
Bildschirm ist; ein CSS-Hintergrund kann das nicht, weil die Kante
dort je nach Fensterformat woanders liegt. -->
<div class="hero-artwork" aria-hidden="true">
<img class="hero-artwork-scharf" src="assets/img/universe-trio.jpg?v=20260820h"
width="1600" height="900" alt="" fetchpriority="high" decoding="async" />
</div>
<div class="hero-atmosphere" aria-hidden="true"> <div class="hero-atmosphere" aria-hidden="true">
<span class="atmosphere-blend"></span> <span class="atmosphere-blend"></span>
@@ -293,7 +305,7 @@
<script src="assets/js/data-modis.js?v=20260828c"></script> <script src="assets/js/data-modis.js?v=20260828c"></script>
<script src="assets/js/data-scouts.js?v=20260828c"></script> <script src="assets/js/data-scouts.js?v=20260828c"></script>
<script src="assets/js/i18n-index.js?v=20260828c"></script> <script src="assets/js/i18n-index.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
// Gleiche URL wie in assets/js/forms.js / postfach.html — läuft seit // Gleiche URL wie in assets/js/forms.js / postfach.html — läuft seit
// 05.08.2026 auf dem eigenen Server statt auf Cloudflare Workers. // 05.08.2026 auf dem eigenen Server statt auf Cloudflare Workers.
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Kontakt, Impressum und Datenschutz von DOGFATHER UNIVERSE." /> <meta name="twitter:description" content="Kontakt, Impressum und Datenschutz von DOGFATHER UNIVERSE." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -127,6 +127,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-kontakt.js?v=20260828c"></script> <script src="assets/js/i18n-kontakt.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Alle Social-Media- und Musik-Links von DogFather an einem Ort — plus QR-Codes." /> <meta name="twitter:description" content="Alle Social-Media- und Musik-Links von DogFather an einem Ort — plus QR-Codes." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -146,7 +146,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-links.js?v=20260828c"></script> <script src="assets/js/i18n-links.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
(function () { (function () {
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="DogFather als Manager bei der Spicy Media Agency: Scouts, Creator und faire Zusammenarbeit." /> <meta name="twitter:description" content="DogFather als Manager bei der Spicy Media Agency: Scouts, Creator und faire Zusammenarbeit." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -141,7 +141,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/data-manager.js?v=20260828c"></script> <script src="assets/js/data-manager.js?v=20260828c"></script>
<script src="assets/js/i18n-manager.js?v=20260828c"></script> <script src="assets/js/i18n-manager.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
// "Weitere Manager" (21.08.2026) -- siehe Kommentar bei #weitere-manager-root // "Weitere Manager" (21.08.2026) -- siehe Kommentar bei #weitere-manager-root
// oben. Aktuell IMMER window.MANAGERS === [] (siehe data-manager.js), Inhalt // oben. Aktuell IMMER window.MANAGERS === [] (siehe data-manager.js), Inhalt
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Fotos und Videos rund um Husky Casper an einem Ort." /> <meta name="twitter:description" content="Fotos und Videos rund um Husky Casper an einem Ort." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -63,6 +63,6 @@
<script src="assets/js/data-videos.js?v=20260828c"></script> <script src="assets/js/data-videos.js?v=20260828c"></script>
<script src="assets/js/medien-welt.js?v=20260828c"></script> <script src="assets/js/medien-welt.js?v=20260828c"></script>
<script src="assets/js/i18n-medien-casper.js?v=20260828c"></script> <script src="assets/js/i18n-medien-casper.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Fotos, Videos und Events aus DogFathers Welt an einem Ort." /> <meta name="twitter:description" content="Fotos, Videos und Events aus DogFathers Welt an einem Ort." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -70,6 +70,6 @@
<script src="assets/js/data-aktionen.js?v=20260828c"></script> <script src="assets/js/data-aktionen.js?v=20260828c"></script>
<script src="assets/js/medien-welt.js?v=20260828c"></script> <script src="assets/js/medien-welt.js?v=20260828c"></script>
<script src="assets/js/i18n-medien-dogfather.js?v=20260828c"></script> <script src="assets/js/i18n-medien-dogfather.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Fotos, Videos und Events aus der HasiDog-Welt an einem Ort." /> <meta name="twitter:description" content="Fotos, Videos und Events aus der HasiDog-Welt an einem Ort." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -70,6 +70,6 @@
<script src="assets/js/data-aktionen.js?v=20260828c"></script> <script src="assets/js/data-aktionen.js?v=20260828c"></script>
<script src="assets/js/medien-welt.js?v=20260828c"></script> <script src="assets/js/medien-welt.js?v=20260828c"></script>
<script src="assets/js/i18n-medien-hasidog.js?v=20260828c"></script> <script src="assets/js/i18n-medien-hasidog.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -16,7 +16,7 @@
<meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:card" content="summary_large_image" />
<meta name="robots" content="noindex" /> <!-- generische URL, echte Team-Seiten verlinken hierher --> <meta name="robots" content="noindex" /> <!-- generische URL, echte Team-Seiten verlinken hierher -->
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -135,7 +135,7 @@
<script src="assets/js/data-creator.js?v=20260828c"></script> <script src="assets/js/data-creator.js?v=20260828c"></script>
<script src="assets/js/data-manager.js?v=20260828c"></script> <script src="assets/js/data-manager.js?v=20260828c"></script>
<script src="assets/js/i18n-profil.js?v=20260828c"></script> <script src="assets/js/i18n-profil.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
document.addEventListener("DOMContentLoaded", async () => { document.addEventListener("DOMContentLoaded", async () => {
const slug = new URLSearchParams(location.search).get("p") || ""; const slug = new URLSearchParams(location.search).get("p") || "";
+94
View File
@@ -0,0 +1,94 @@
/* =====================================================================
Welche Bilder sind größer, als sie je angezeigt werden?
Sammelt über alle öffentlichen Seiten (Desktop UND Handy) für jedes
<img> die größte Anzeigebreite -- mal Pixeldichte, damit Retina zählt.
Vergleicht das mit der echten Dateibreite. Ein Bild, das mehr als das
2,5-fache seiner größten Anzeige misst, ist ein Kandidat zum
Verkleinern: Es überträgt Pixel, die nie ein Auge erreicht.
NUR <img>. CSS-Hintergründe (bg-*.jpg) füllen den Bildschirm und
werden getrennt betrachtet.
===================================================================== */
import { chromium } from "playwright";
import { statSync, readFileSync, existsSync } from "node:fs";
const BASIS = "https://dogfather-universe.com";
const SEITEN = [
"/", "/dogfather.html", "/hasidog.html", "/manager.html", "/casper.html",
"/vanvan.html", "/tt-muddi.html", "/zeitreise.html", "/streamer.html",
"/community.html", "/stimmen.html", "/streamplan.html", "/team-modis.html",
"/team-scouts.html", "/creator.html", "/werte.html", "/bewerben.html",
"/kontakt.html", "/links.html", "/supporter.html", "/abonnieren.html",
"/medien-dogfather.html", "/medien-hasidog.html", "/medien-casper.html",
];
/* Dateibreite eines lokalen JPG/PNG lesen (ohne Bibliothek). */
function breiteVon(pfad) {
if (!existsSync(pfad)) return 0;
const s = readFileSync(pfad);
if (s[0] === 0xFF && s[1] === 0xD8) { // JPEG
let i = 2;
while (i < s.length) {
if (s[i] !== 0xFF) { i++; continue; }
const m = s[i + 1];
if (m >= 0xC0 && m <= 0xC3) return s.readUInt16BE(i + 7);
i += 2 + s.readUInt16BE(i + 2);
}
} else if (s.slice(0, 8).equals(Buffer.from([0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A]))) { // PNG
return s.readUInt32BE(16);
}
return 0;
}
const browser = await chromium.launch();
const maxAnzeige = new Map(); // dateiname -> maxBreite (CSS-px * DPR)
for (const vp of [{ width: 1280, height: 900 }, { width: 390, height: 844 }]) {
for (const pfad of SEITEN) {
const s = await browser.newPage({ viewport: vp });
try {
await s.goto(BASIS + pfad, { waitUntil: "networkidle", timeout: 30000 });
await s.waitForTimeout(300);
const m = await s.evaluate(() => {
const raus = {};
for (const im of document.querySelectorAll("img")) {
const src = (im.currentSrc || im.src || "");
if (!src.includes("/assets/img/")) continue; // nur eigene Bilder
const name = src.split("/assets/img/")[1].split("?")[0];
const r = im.getBoundingClientRect();
if (r.width < 2) continue;
const px = Math.round(r.width * (window.devicePixelRatio || 1));
raus[name] = Math.max(raus[name] || 0, px);
}
return raus;
});
for (const [k, v] of Object.entries(m)) maxAnzeige.set(k, Math.max(maxAnzeige.get(k) || 0, v));
} catch { /* egal */ }
await s.close();
}
}
await browser.close();
const kandidaten = [];
for (const [name, anzeige] of maxAnzeige) {
const pfad = "assets/img/" + name;
const dateiBreite = breiteVon(pfad);
if (!dateiBreite || !existsSync(pfad)) continue;
const kb = Math.round(statSync(pfad).size / 1024);
const faktor = dateiBreite / Math.max(anzeige, 1);
/* 2,5-fach als Schwelle: 2x deckt Retina, der Rest ist Puffer gegen
Layout-Schwankungen. Nur nennen, was auch spürbar wiegt (>=120 KB). */
if (faktor >= 2.5 && kb >= 120) {
kandidaten.push({ name, dateiBreite, anzeige, faktor: faktor.toFixed(1), kb, ziel: Math.min(dateiBreite, anzeige * 2) });
}
}
kandidaten.sort((a, b) => b.kb - a.kb);
console.log(`\n${maxAnzeige.size} <img>-Bilder gesehen. Überdimensioniert (>= 2,5x Anzeige, >= 120 KB):\n`);
if (!kandidaten.length) console.log(" keine -- alle Bilder passen zu ihrer Anzeigegröße.");
for (const k of kandidaten) {
console.log(` ${k.kb.toString().padStart(4)} KB ${k.name.padEnd(26)} Datei ${k.dateiBreite}px, angezeigt ${k.anzeige}px (${k.faktor}x) -> Ziel ${k.ziel}px`);
}
const summe = kandidaten.reduce((a, k) => a + k.kb, 0);
if (kandidaten.length) console.log(`\n Summe der Kandidaten: ${summe} KB`);
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Rabattcodes von Dogis Partnern für Team Dogi — spar bares Geld bei ausgewählten Marken." /> <meta name="twitter:description" content="Rabattcodes von Dogis Partnern für Team Dogi — spar bares Geld bei ausgewählten Marken." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -132,7 +132,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-rabattcodes.js?v=20260828c"></script> <script src="assets/js/i18n-rabattcodes.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
(function () { (function () {
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Was die Community und das Team über DogFather sagen." /> <meta name="twitter:description" content="Was die Community und das Team über DogFather sagen." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -108,7 +108,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/data-stimmen-avatare.js?v=20260828c"></script> <script src="assets/js/data-stimmen-avatare.js?v=20260828c"></script>
<script src="assets/js/i18n-stimmen.js?v=20260828c"></script> <script src="assets/js/i18n-stimmen.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script src="assets/js/bild-vorbereiten.js?v=20260828c"></script> <script src="assets/js/bild-vorbereiten.js?v=20260828c"></script>
<script src="assets/js/stimmen.js?v=20260828c"></script> <script src="assets/js/stimmen.js?v=20260828c"></script>
</body> </body>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Die persönliche Geschichte hinter DogFather — Filipe, Streamer, Manager bei Spicy Media und Hundepapa von Husky Casper." /> <meta name="twitter:description" content="Die persönliche Geschichte hinter DogFather — Filipe, Streamer, Manager bei Spicy Media und Hundepapa von Husky Casper." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -218,6 +218,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-streamer.js?v=20260828c"></script> <script src="assets/js/i18n-streamer.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Wann geht DogFather live? Streamplan und Livebereich." /> <meta name="twitter:description" content="Wann geht DogFather live? Streamplan und Livebereich." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -127,7 +127,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-streamplan.js?v=20260828c"></script> <script src="assets/js/i18n-streamplan.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script src="assets/js/streamplan.js?v=20260828c"></script> <script src="assets/js/streamplan.js?v=20260828c"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -9,7 +9,7 @@
<link rel="manifest" href="/manifest.json" /> <link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#0b0d10" /> <meta name="theme-color" content="#0b0d10" />
<meta name="robots" content="noindex" /> <meta name="robots" content="noindex" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -517,7 +517,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-supporter.js?v=20260828c"></script> <script src="assets/js/i18n-supporter.js?v=20260828c"></script>
<script src="assets/js/supporter.js?v=20260828c"></script> <script src="assets/js/supporter.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
(function () { (function () {
const S = window.DogiSupporter; const S = window.DogiSupporter;
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="VanVan, Diene, Funny, Miss und Marina — das Modi-/Core-Team von Team Dogi." /> <meta name="twitter:description" content="VanVan, Diene, Funny, Miss und Marina — das Modi-/Core-Team von Team Dogi." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -74,7 +74,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/data-modis.js?v=20260828c"></script> <script src="assets/js/data-modis.js?v=20260828c"></script>
<script src="assets/js/i18n-team-modis.js?v=20260828c"></script> <script src="assets/js/i18n-team-modis.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
const grid = document.getElementById("modis-grid"); const grid = document.getElementById("modis-grid");
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Die Scouts von Team Dogi bei Spicy Media." /> <meta name="twitter:description" content="Die Scouts von Team Dogi bei Spicy Media." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -51,7 +51,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/data-scouts.js?v=20260828c"></script> <script src="assets/js/data-scouts.js?v=20260828c"></script>
<script src="assets/js/i18n-team-scouts.js?v=20260828c"></script> <script src="assets/js/i18n-team-scouts.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
const grid = document.getElementById("scouts-grid"); const grid = document.getElementById("scouts-grid");
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Eine persönliche Widmung von Dogi an Tili — seine TikTok-Muddi, die erste und bis heute einzige Streamerin, die ihm all die Zeit treu geblieben ist." /> <meta name="twitter:description" content="Eine persönliche Widmung von Dogi an Tili — seine TikTok-Muddi, die erste und bis heute einzige Streamerin, die ihm all die Zeit treu geblieben ist." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -154,6 +154,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-tt-muddi.js?v=20260828c"></script> <script src="assets/js/i18n-tt-muddi.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="VanVan erzählt ihre Geschichte: wie sie zu Team Dogi kam, wer sie ist und was DogFather und Team Dogi ihr bedeuten." /> <meta name="twitter:description" content="VanVan erzählt ihre Geschichte: wie sie zu Team Dogi kam, wer sie ist und was DogFather und Team Dogi ihr bedeuten." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -176,6 +176,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-vanvan.js?v=20260828c"></script> <script src="assets/js/i18n-vanvan.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<link rel="apple-touch-icon" href="assets/img/apple-touch-icon-admin.png" /> <link rel="apple-touch-icon" href="assets/img/apple-touch-icon-admin.png" />
<meta name="apple-mobile-web-app-title" content="DogiCrew-Verwaltung" /> <meta name="apple-mobile-web-app-title" content="DogiCrew-Verwaltung" />
<meta name="theme-color" content="#0e0a16" /> <meta name="theme-color" content="#0e0a16" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -1290,7 +1290,7 @@
<script src="assets/js/data-creator.js?v=20260828c"></script> <script src="assets/js/data-creator.js?v=20260828c"></script>
<script src="assets/js/data-manager.js?v=20260828c"></script> <script src="assets/js/data-manager.js?v=20260828c"></script>
<script src="assets/js/data-stimmen-avatare.js?v=20260828c"></script> <script src="assets/js/data-stimmen-avatare.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<!-- Versionsnummer bewusst hochgesetzt (27.08.2026): Caddy liefert Assets mit <!-- Versionsnummer bewusst hochgesetzt (27.08.2026): Caddy liefert Assets mit
max-age=14400, ein Browser hätte die alte Anmelde-Logik sonst bis zu vier max-age=14400, ein Browser hätte die alte Anmelde-Logik sonst bis zu vier
Stunden weiterbenutzt und Dogi wäre trotz Umstellung weiter ohne Code Stunden weiterbenutzt und Dogi wäre trotz Umstellung weiter ohne Code
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Die Werte, nach denen DogFather als Manager bei Spicy Media arbeitet." /> <meta name="twitter:description" content="Die Werte, nach denen DogFather als Manager bei Spicy Media arbeitet." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -114,6 +114,6 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-werte.js?v=20260828c"></script> <script src="assets/js/i18n-werte.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
</body> </body>
</html> </html>
+2 -2
View File
@@ -19,7 +19,7 @@
<meta name="twitter:description" content="Die Geschichte von DogFather in einer interaktiven Zeitleiste." /> <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" /> <meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/main.css?v=20260827hero" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" /> <link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
@@ -238,7 +238,7 @@
<div id="site-footer"></div> <div id="site-footer"></div>
<script src="assets/js/i18n-zeitreise.js?v=20260828c"></script> <script src="assets/js/i18n-zeitreise.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script> <script src="assets/js/main.js?v=20260827hero"></script>
<script> <script>
/* Wachstums-Reveal: Äste blenden sich beim Scrollen sanft ein — passt /* Wachstums-Reveal: Äste blenden sich beim Scrollen sanft ein — passt
zum "wachsenden Baum"-Konzept dieser Seite. Rein page-lokal, betrifft zum "wachsenden Baum"-Konzept dieser Seite. Rein page-lokal, betrifft