Neues Artwork: Trio-Kinohintergrund + Charakter-Showcase

- Trio-Artwork (Dogfather/Dogi/HasiDog) als grossflaechiger Hero-Hintergrund
  auf Startseite und HasiDog-Seite: Ken-Burns-Fahrt, Vignette + Verlaufs-Scrim
  fuer Textlesbarkeit, eigener Hochformat-Zuschnitt fuers Handy, 4-KB-Blur
  als Sofort-Platzhalter
- Neue Charakter-Sektion auf der Startseite: Dogfather-Husky und HasiDog-Hase
  gross, scharf und komplett sichtbar als verlinkte Poster-Karten mit Glow,
  Schweben und Hover-Zoom
- Alte kleine Hero-Figuren entfernt (durch das neue Artwork ersetzt)

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-07-31 02:05:52 +02:00
co-authored by Claude Opus 5
parent 49d1019c61
commit 0e1f2fbdc4
8 changed files with 209 additions and 62 deletions
+153 -38
View File
@@ -601,59 +601,174 @@ footer.site-footer {
50% { transform: translateX(3%); } 50% { transform: translateX(3%); }
} }
/* ---- Husky- & Hasen-Charaktere (echte Artworks) mit sanftem Schweben ---- */ @media (prefers-reduced-motion: reduce) {
.hero-critter { .aurora-band, .smoke-blob, .fog-ground { animation: none; }
position: absolute;
pointer-events: none;
filter: drop-shadow(0 0 22px rgba(143, 217, 234, .5)) drop-shadow(0 0 46px rgba(139, 92, 246, .25));
animation: critter-float 9s ease-in-out infinite;
} }
.hero-critter img {
/* ==========================================================================
KINO-HINTERGRUND — das große Trio-Artwork (Dogfather · Dogi · HasiDog)
Aufbau in drei Schichten, damit der Text immer perfekt lesbar bleibt:
1. ::before = das Artwork selbst, mit langsamer Ken-Burns-Fahrt
2. ::after = Abdunkelung (Vignette + Verlauf), blendet unten in die Seite
3. darüber = die bestehende Polarlicht/Rauch/Nebel-Atmosphäre, gedimmt
========================================================================== */
.hero-cinematic {
padding: clamp(5rem, 13vw, 9rem) 0;
isolation: isolate;
}
.hero-artwork {
position: absolute;
inset: 0;
z-index: 0;
overflow: hidden;
pointer-events: none;
}
.hero-artwork::before {
content: "";
position: absolute;
inset: -5%; /* etwas Luft, damit die Ken-Burns-Fahrt nie eine Kante zeigt */
/* zwei Ebenen: scharfes Artwork über einer 4-KB-Unschärfe, die sofort da ist */
background-image: url("../img/universe-trio.jpg"), url("../img/universe-trio-blur.jpg");
background-size: cover, cover;
background-position: center 40%, center 40%;
background-repeat: no-repeat;
transform-origin: 50% 40%;
animation: artwork-kenburns 48s ease-in-out infinite alternate;
will-change: transform;
}
.hero-artwork::after {
content: "";
position: absolute;
inset: 0;
background:
/* Vignette: Mitte frei, Ränder dunkel — lenkt den Blick auf die Figuren */
radial-gradient(ellipse 118% 86% at 50% 44%,
rgba(0, 0, 0, .10) 0%, rgba(0, 0, 0, .52) 68%, rgba(0, 0, 0, .84) 100%),
/* Verlauf: oben dunkel für die Navigation, unten sauberer Übergang in die Seite */
linear-gradient(to bottom,
rgba(0, 0, 0, .62) 0%,
rgba(0, 0, 0, .30) 26%,
rgba(0, 0, 0, .34) 58%,
rgba(0, 0, 0, .78) 88%,
var(--bg) 100%);
}
@keyframes artwork-kenburns {
from { transform: scale(1.03); }
to { transform: scale(1.12) translate3d(-1.4%, -1%, 0); }
}
/* Atmosphäre über dem Artwork nur noch als feiner Schleier */
.hero-cinematic .hero-atmosphere { opacity: .5; }
/* Text bekommt eine weiche Abschattung, damit er auf jedem Bildausschnitt sitzt */
.hero-cinematic h1,
.hero-cinematic .lead,
.hero-cinematic .eyebrow { text-shadow: 0 2px 18px rgba(0, 0, 0, .75), 0 1px 3px rgba(0, 0, 0, .9); }
@media (max-width: 760px) {
/* Hochformat-Zuschnitt: mittig auf Dogi, Husky und Hase bleiben angeschnitten sichtbar */
.hero-artwork::before {
background-image: url("../img/universe-trio-mobile.jpg"), url("../img/universe-trio-blur.jpg");
background-position: center 36%, center 36%;
}
}
@media (prefers-reduced-motion: reduce) {
.hero-artwork::before { animation: none; transform: scale(1.03); }
}
/* ==========================================================================
CHARAKTER-SHOWCASE — die zwei Artworks groß, scharf und komplett sichtbar
========================================================================== */
.char-showcase {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: clamp(1.1rem, 4vw, 2.4rem);
max-width: 760px;
margin: 0 auto;
}
@media (max-width: 620px) {
.char-showcase { grid-template-columns: 1fr; max-width: 320px; }
}
.char-card {
position: relative;
display: block; display: block;
width: 100%; width: 100%;
aspect-ratio: 1 / 1; max-width: 330px;
margin-inline: auto;
border-radius: 20px;
overflow: hidden;
text-decoration: none;
background: #080c11;
border: 1px solid rgba(255, 255, 255, .10);
box-shadow: 0 26px 60px rgba(0, 0, 0, .58);
animation: char-float 11s ease-in-out infinite;
transition: transform .38s cubic-bezier(.2, .7, .3, 1),
box-shadow .38s ease,
border-color .38s ease;
}
.char-card:nth-child(2) { animation-delay: -5.5s; }
.char-card img {
display: block;
width: 100%;
aspect-ratio: 599 / 1212; /* exaktes Seitenverhältnis der Artworks — kein Zuschnitt */
object-fit: cover; object-fit: cover;
border-radius: 50%; transition: transform .55s cubic-bezier(.2, .7, .3, 1);
border: 3px solid var(--accent);
box-shadow: 0 0 0 6px rgba(143, 217, 234, .14), 0 14px 32px rgba(0, 0, 0, .55);
} }
.hero-critter.rabbit img { border-color: #c7ccd1; box-shadow: 0 0 0 6px rgba(199, 204, 209, .14), 0 14px 32px rgba(0, 0, 0, .55); } /* eigener Glow pro Welt */
.hero-critter.main { .char-card.dogfather { border-color: rgba(96, 175, 255, .30); }
width: min(17vw, 190px); .char-card.dogfather:hover,
opacity: .98; .char-card.dogfather:focus-visible {
border-color: rgba(96, 175, 255, .75);
box-shadow: 0 34px 70px rgba(0, 0, 0, .62), 0 0 70px rgba(96, 175, 255, .30);
} }
.hero-critter.small { .char-card.hasidog { border-color: rgba(199, 204, 209, .28); }
width: min(10vw, 115px); .char-card.hasidog:hover,
opacity: .65; .char-card.hasidog:focus-visible {
animation-duration: 12s; border-color: rgba(199, 204, 209, .70);
filter: drop-shadow(0 0 14px rgba(143, 217, 234, .35)); box-shadow: 0 34px 70px rgba(0, 0, 0, .62), 0 0 70px rgba(143, 217, 234, .26);
} }
.hero-critter.rabbit { animation-delay: -5s; } .char-card:hover, .char-card:focus-visible { transform: translateY(-10px); }
.char-card:hover img, .char-card:focus-visible img { transform: scale(1.045); }
@keyframes critter-float { .char-meta {
0%, 100% { transform: translateY(0) rotate(0deg); }
50% { transform: translateY(-12px) rotate(-1.4deg); }
}
.critter-label {
position: absolute; position: absolute;
left: 50%; left: 0; right: 0; bottom: 0;
bottom: -1.5rem; padding: 3.6rem .9rem 1.1rem;
transform: translateX(-50%); text-align: center;
background: linear-gradient(to top,
rgba(4, 8, 12, .94) 14%, rgba(4, 8, 12, .58) 52%, transparent 100%);
}
.char-meta > span { display: block; }
.char-name {
font-family: var(--font-head); font-family: var(--font-head);
font-weight: 800; font-weight: 800;
font-size: .68rem; font-size: 1.02rem;
letter-spacing: .14em; letter-spacing: .13em;
text-transform: uppercase;
color: #fff;
text-shadow: 0 2px 14px rgba(0, 0, 0, .85);
}
.char-sub {
font-size: .76rem;
color: rgba(255, 255, 255, .70);
margin-top: .18rem;
}
.char-go {
font-size: .74rem;
font-weight: 700;
letter-spacing: .05em;
color: var(--accent); color: var(--accent);
text-shadow: 0 0 10px rgba(143, 217, 234, .7); margin-top: .5rem;
white-space: nowrap; opacity: .85;
transition: opacity .3s ease, transform .3s ease;
} }
.char-card:hover .char-go,
.char-card:focus-visible .char-go { opacity: 1; transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { @keyframes char-float {
.aurora-band, .smoke-blob, .fog-ground, .hero-critter { animation: none; } 0%, 100% { transform: translateY(0); }
50% { transform: translateY(-9px); }
} }
@media (max-width: 700px) { @media (prefers-reduced-motion: reduce) {
.hero-critter.small { display: none; } /* auf kleinen Screens nur die 2 Hauptfiguren */ .char-card, .char-card img { animation: none; transition: none; }
} }
/* ---------- Live-Status-Punkt ---------- */ /* ---------- Live-Status-Punkt ---------- */
Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

+22 -1
View File
@@ -26,7 +26,9 @@
<div id="site-header"></div> <div id="site-header"></div>
<main> <main>
<section class="hero"> <section class="hero hero-cinematic">
<!-- Großes Trio-Artwork als Kino-Hintergrund -->
<div class="hero-artwork" aria-hidden="true"></div>
<div class="container"> <div class="container">
<span class="eyebrow">Welt 2 — HasiDog</span> <span class="eyebrow">Welt 2 — HasiDog</span>
<h1>Willkommen in der HasiDog-Welt</h1> <h1>Willkommen in der HasiDog-Welt</h1>
@@ -34,6 +36,25 @@
</div> </div>
</section> </section>
<!-- ================= HASIDOG-CHARAKTER ================= -->
<section class="section-tight">
<div class="container text-center">
<span class="eyebrow">🩵 Das Maskottchen</span>
<h2>HasiDog</h2>
<p class="lead" style="max-width:52ch;margin:0 auto 2.4rem;">Der graue Hase mit den blauen Augen — das Gesicht der Community.</p>
<div class="char-showcase" style="max-width:360px;grid-template-columns:1fr;">
<div class="char-card hasidog" style="animation-delay:0s;">
<img src="assets/img/char-hasidog.jpg" width="599" height="1212"
alt="HasiDog — grauer Hase mit schwarzem Hoodie und Cap" />
<span class="char-meta">
<span class="char-name">HasiDog</span>
<span class="char-sub">Community · Maskottchen · Team Dogi</span>
</span>
</div>
</div>
</div>
</section>
<section class="section-tight"> <section class="section-tight">
<div class="container grid grid-2" style="align-items:center;"> <div class="container grid grid-2" style="align-items:center;">
<div class="collage-photo" style="aspect-ratio:1/1;border-radius:var(--radius);background:#fff;"> <div class="collage-photo" style="aspect-ratio:1/1;border-radius:var(--radius);background:#fff;">
+34 -23
View File
@@ -27,7 +27,10 @@
<main> <main>
<!-- ================= HERO ================= --> <!-- ================= HERO ================= -->
<section class="hero"> <section class="hero hero-cinematic">
<!-- Großes Trio-Artwork als Kino-Hintergrund (Dogfather · Dogi · HasiDog) -->
<div class="hero-artwork" aria-hidden="true"></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>
@@ -43,28 +46,6 @@
<!-- Zone 3: Nebel unten --> <!-- Zone 3: Nebel unten -->
<span class="fog-ground"></span> <span class="fog-ground"></span>
<!-- Husky #1 (Hauptfigur, mit Namen) -->
<div class="hero-critter husky main" style="top:8%;right:3%;">
<img src="assets/img/hero-husky.png" alt="Husky im Dogfather-Look" />
<span class="critter-label">DOGFATHER</span>
</div>
<!-- Hase #1 (Hauptfigur, mit Namen) -->
<div class="hero-critter rabbit main" style="bottom:16%;left:3%;">
<img src="assets/img/hero-rabbit.png" alt="Grauer Hase im HasiDog-Look" />
<span class="critter-label">HASIDOG</span>
</div>
<!-- Husky #2 (kleiner, weiter hinten) -->
<div class="hero-critter husky small" style="top:40%;left:9%;">
<img src="assets/img/hero-husky.png" alt="Husky im Dogfather-Look" />
</div>
<!-- Hase #2 (kleiner, weiter hinten) -->
<div class="hero-critter rabbit small" style="bottom:32%;right:11%;">
<img src="assets/img/hero-rabbit.png" alt="Grauer Hase im HasiDog-Look" />
</div>
</div> </div>
<div class="container"> <div class="container">
<span class="eyebrow">🩵 DOGFATHER UNIVERSE</span> <span class="eyebrow">🩵 DOGFATHER UNIVERSE</span>
@@ -101,6 +82,36 @@
</div> </div>
</section> </section>
<!-- ================= CHARAKTERE: DOGFATHER-HUSKY & HASIDOG-HASE ================= -->
<section class="section-tight">
<div class="container text-center">
<span class="eyebrow">🩵 Die Gesichter der Welten</span>
<h2>Dogfather &amp; HasiDog</h2>
<p class="lead" style="max-width:52ch;margin:0 auto 2.4rem;">Zwei Charaktere, ein Universum — klick dich in ihre Welt.</p>
<div class="char-showcase">
<a class="char-card dogfather" href="dogfather.html">
<img src="assets/img/char-dogfather.jpg" width="599" height="1212"
alt="Dogfather — Husky mit blauem Hoodie und Cap" />
<span class="char-meta">
<span class="char-name">Dogfather</span>
<span class="char-sub">Streamer · Entertainer · Welt 1</span>
<span class="char-go">Zur Welt →</span>
</span>
</a>
<a class="char-card hasidog" href="hasidog.html">
<img src="assets/img/char-hasidog.jpg" width="599" height="1212"
alt="HasiDog — grauer Hase mit schwarzem Hoodie und Cap" />
<span class="char-meta">
<span class="char-name">HasiDog</span>
<span class="char-sub">Community · Maskottchen · Welt 2</span>
<span class="char-go">Zur Welt →</span>
</span>
</a>
</div>
</div>
</section>
<!-- ================= FOTO-COLLAGE: DOGFATHER & CASPER ================= --> <!-- ================= FOTO-COLLAGE: DOGFATHER & CASPER ================= -->
<section class="section-tight"> <section class="section-tight">
<div class="container text-center"> <div class="container text-center">