Foto-Collage (Polaroid-Scrapbook) für Dogfather & Casper auf der Startseite

This commit is contained in:
2026-07-30 21:18:15 +02:00
parent 81fecc7c11
commit c1d6e8f136
2 changed files with 118 additions and 0 deletions
+71
View File
@@ -425,6 +425,77 @@ footer.site-footer {
font-size: .8rem; color: var(--text-muted);
}
/* ---------- Foto-Collage (Polaroid-Scrapbook, z.B. Dogfather & Casper) ---------- */
.collage-wrap {
position: relative;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: flex-end;
gap: 1.6rem 1rem;
padding: 2.5rem 0 1.5rem;
max-width: 900px;
margin: 0 auto;
}
.collage-item {
background: #fff;
padding: 10px 10px 30px;
border-radius: 6px;
box-shadow: 0 16px 30px rgba(0, 0, 0, .4);
width: 190px;
transition: transform .25s ease, box-shadow .25s ease;
cursor: default;
}
.collage-item:nth-child(1) { transform: rotate(-7deg) translateY(12px); }
.collage-item:nth-child(2) { transform: rotate(4deg) translateY(-10px); z-index: 2; width: 210px; }
.collage-item:nth-child(3) { transform: rotate(-3deg) translateY(4px); }
.collage-item:nth-child(4) { transform: rotate(8deg) translateY(-6px); }
.collage-item:nth-child(5) { transform: rotate(-9deg) translateY(10px); }
.collage-item:hover {
transform: scale(1.08) rotate(0deg) !important;
z-index: 5;
box-shadow: 0 22px 40px rgba(0, 0, 0, .55);
}
.collage-photo {
position: relative;
aspect-ratio: 1 / 1;
border-radius: 2px;
overflow: hidden;
background: repeating-linear-gradient(135deg, #e8ebee, #e8ebee 10px, #f6f7f9 10px, #f6f7f9 20px);
}
.collage-photo img {
width: 100%;
height: 100%;
object-fit: cover;
/* dezenter Marken-Look: Sättigung/Kontrast leicht angehoben, Farbton via Overlay */
filter: saturate(1.15) contrast(1.08) brightness(1.02);
}
.collage-photo::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(155deg, rgba(143, 217, 234, .22), rgba(139, 92, 246, .14));
mix-blend-mode: overlay;
pointer-events: none;
}
.collage-photo .img-placeholder {
position: absolute;
inset: 0;
border-radius: 0;
border: none;
color: #6b7280;
}
.collage-caption {
text-align: center;
font-family: "Comic Sans MS", "Segoe Print", cursive;
color: #2a2a2a;
font-size: .85rem;
margin-top: .5rem;
}
@media (max-width: 620px) {
.collage-item, .collage-item:nth-child(2) { width: 140px; }
}
/* ---------- Live-Status-Punkt ---------- */
.live-dot {
display: inline-block;
+47
View File
@@ -63,6 +63,37 @@
</div>
</section>
<!-- ================= FOTO-COLLAGE: DOGFATHER & CASPER ================= -->
<section class="section-tight">
<div class="container text-center">
<span class="eyebrow">🩵 Gesichter hinter dem Universum</span>
<h2>Dogfather &amp; Casper</h2>
<div class="collage-wrap" id="collage-wrap">
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Dogfather" src="assets/img/dogfather-portrait.jpg" alt="Dogfather"></div>
<p class="collage-caption">Dogfather 🩵</p>
</div>
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Casper" src="assets/img/casper-1.jpg" alt="Casper"></div>
<p class="collage-caption">Casper 🐾</p>
</div>
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Dogfather &amp; Casper" src="assets/img/dogfather-casper-1.jpg" alt="Dogfather und Casper zusammen"></div>
<p class="collage-caption">Team 🩵🐾</p>
</div>
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Casper" src="assets/img/casper-2.jpg" alt="Casper"></div>
<p class="collage-caption">Husky-Life</p>
</div>
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Dogfather" src="assets/img/dogfather-portrait-2.jpg" alt="Dogfather"></div>
<p class="collage-caption">Behind the Cam</p>
</div>
</div>
<p class="small muted" style="max-width:50ch;margin:0 auto;">Echte Fotos folgen — sobald sie da sind, erscheinen sie hier automatisch in genau diesem Collagen-Look.</p>
</div>
</section>
<!-- ================= STATS ================= -->
<section class="section-tight">
<div class="container">
@@ -172,6 +203,22 @@
const API_BASE_URL = "https://dogfather-universe-postfach.dogfather1608.workers.dev";
document.addEventListener("DOMContentLoaded", () => {
// Foto-Collage: solange echte Fotos fehlen, hübschen Platzhalter statt
// kaputtem Bild-Icon zeigen. Sobald ein Foto unter dem passenden Pfad
// (assets/img/dogfather-portrait.jpg etc.) liegt, taucht es automatisch auf.
document.querySelectorAll(".collage-img").forEach((img) => {
img.addEventListener(
"error",
() => {
const div = document.createElement("div");
div.className = "img-placeholder";
div.innerHTML = `${img.dataset.fallback}<br><span class="small">Foto folgt</span>`;
img.replaceWith(div);
},
{ once: true }
);
});
// Live-Status: grüner Punkt, wenn Dogfather gerade live ist
const liveDot = document.getElementById("live-dot");
const liveText = document.getElementById("live-text");