Files
dogfather-universe/team-modis.html
T
DogFatherGitandClaude Opus 5 5761fe1a27 Hintergrundbilder: garantiert volle Breite UND komplett sichtbar
Nach mehreren Anlaeufen mit CSS background-size (cover schnitt Raender
ab, "100% auto" schnitt oben/unten ab sobald die Box nicht exakt im
Bildseitenverhaeltnis war) jetzt die einzige Loesung, die beides IMMER
garantiert: ein echtes <img width:100% height:auto> statt eines CSS-
Hintergrunds. Die Bildhoehe bestimmt sich selbst statt in eine
vorgegebene Box gepresst zu werden -- dadurch kann nichts mehr
beschnitten werden, unabhaengig vom Bildseitenverhaeltnis.

- 18 Seiten (alle bewerben-*, casper, community, creator, dogfather,
  hasidog, manager, stimmen, streamplan, team-modis, team-scouts,
  vanvan, werte, zeitreise) bekommen einen echten Bild-Banner oben im
  Kopfbereich statt eines CSS-Hintergrunds. Bild sitzt jetzt als
  eigener Banner OBERHALB der Ueberschrift, mit weichem Verlauf zur
  Seite hin.
- profil.html: gleiches Prinzip, Bild wird per JS passend zur Person
  (Modi/Scout/Creator-Welt) nachgeladen.
- index.html/hasidog.html (Kino-Hintergrund mit Text UEBER dem Bild +
  Polarlicht-Effekten): Redesign auf Banner-Layout haette das Design
  zerstoert. Stattdessen die scharfe Bildebene auf "contain" umgestellt
  (garantiert komplett sichtbar), die vorhandene weichgezeichnete
  Cover-Ebene darunter fuellt jeden Rand, den "contain" freilaesst --
  wirkt dadurch weiterhin randlos, obwohl die scharfen Pixel nie
  beschnitten werden.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-08-01 00:31:58 +02:00

103 lines
5.0 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>Modi-Team — DOGFATHER UNIVERSE</title>
<meta name="description" content="VanVan, Diene, Funny, Miss, Marina und Michi — das Modi-/Core-Team von Team Dogi." />
<link rel="icon" type="image/png" href="assets/img/favicon.png" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="DOGFATHER UNIVERSE" />
<meta property="og:title" content="Modi-Team — DOGFATHER UNIVERSE" />
<meta property="og:description" content="VanVan, Diene, Funny, Miss, Marina und Michi — das Modi-/Core-Team von Team Dogi." />
<meta property="og:image" content="https://REPLACE-WITH-YOUR-DOMAIN.tld/assets/img/og-cover.jpg" />
<meta property="og:url" content="https://REPLACE-WITH-YOUR-DOMAIN.tld/team-modis.html" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Modi-Team — DOGFATHER UNIVERSE" />
<meta name="twitter:description" content="VanVan, Diene, Funny, Miss, Marina und Michi — das Modi-/Core-Team von Team Dogi." />
<meta name="twitter:image" content="https://REPLACE-WITH-YOUR-DOMAIN.tld/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css" />
</head>
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-dogfather.jpg');--page-bg-mobile:url('/assets/img/bg-dogfather-mobile.jpg');">
<div id="site-header"></div>
<main>
<section class="hero page-bg">
<div class="hero-banner"><img src="/assets/img/bg-dogfather.jpg" alt="" loading="eager" /></div>
<div class="container">
<span class="eyebrow">🩵 Team Dogi</span>
<h1>Das Modi-Team</h1>
<p class="lead worlds">Das Rückgrat von Team Dogi — von VanVan bis Michi.</p>
</div>
</section>
<section class="section-tight">
<div class="container">
<div class="card" style="margin-bottom:2rem;">
<span class="tag">Hervorgehoben</span>
<div class="grid grid-2" style="align-items:center;">
<div>
<h2 style="margin-bottom:.3rem;">VanVan 🩵</h2>
<p class="muted">Rechte Hand von Dogfather · Musik-Produzentin</p>
<p>VanVan ist nicht nur die rechte Hand von Dogfather, sondern auch Super Super Sekretärin. Sie bekommt täglich alle Neuigkeiten und Aufgaben und delegiert oder organisiert gemeinsam mit Diene.</p>
<a class="btn btn-primary" href="vanvan.html">VanVans exklusive Seite →</a>
</div>
<div class="collage-photo" style="aspect-ratio:1/1;border-radius:var(--radius);">
<img src="assets/img/card-vanvan.jpg" alt="VanVan" style="width:100%;height:100%;object-fit:cover;" />
</div>
</div>
</div>
<h2 class="text-center">Team-Hierarchie</h2>
<div id="modis-grid" class="pyramid"></div>
<!-- TODO: Hinweis: Reihenfolge/Rollen basieren auf: VanVan (rechte Hand) → Diene (rechte Hand von VanVan) → Funny (Modi) → Miss (Modi + Cutterin) → Marina/Michi (Clip-Account-Kommentare). Änderungen einfach in assets/js/data-modis.js pflegen. -->
<div class="btn-row" style="justify-content:center;">
<a class="btn btn-primary" href="bewerben-modi.html">Als Modi bewerben 🩵</a>
</div>
</div>
</section>
</main>
<div id="site-footer"></div>
<script src="assets/js/data-modis.js"></script>
<script src="assets/js/main.js"></script>
<script>
document.addEventListener("DOMContentLoaded", () => {
const grid = document.getElementById("modis-grid");
if (!grid || !window.MODIS) return;
const rest = window.MODIS.filter((m) => m.name !== "VanVan").sort((a, b) => a.rank - b.rank);
// Pyramide: eine Ebene pro eindeutigem Rang, oben schmal/groß, nach
// unten breiter/kompakter — genau wie ein Organigramm.
const raenge = [...new Set(rest.map((m) => m.rank))];
const MAX_STUFEN = 5; // fünf definierte Größenstufen im CSS
grid.innerHTML = raenge
.map((rang, i) => {
const stufe = Math.min(i + 1, MAX_STUFEN);
const personen = rest.filter((m) => m.rank === rang);
const karten = personen
.map(
(m) => `
<a class="profile-card" href="${m.page || `profil.html?p=${m.slug}`}">
<div class="avatar">${(m.avatar || m.photo) ? `<img src="${m.avatar || m.photo}" alt="${m.name}" loading="lazy">` : `<span class="avatar-initial">${m.name.charAt(0).toUpperCase()}</span>`}</div>
<span class="badge" style="margin-bottom:.5rem;">Stufe ${m.rankLabel || m.rank}</span>
<h3>${m.name}</h3>
<div class="role">${m.role}</div>
<span class="btn btn-outline" style="margin-top:.7rem;pointer-events:none;">Profil ansehen</span>
</a>`
)
.join("");
return `<div class="pyramid-tier" data-tier="${stufe}">${karten}</div>`;
})
.join("");
});
</script>
</body>
</html>