fix: Mesh als Logo-Cluster (v1.5.1)

Das alte Random-Network-Mesh wirkte unbestimmt — neu als drei wiederholte
Sonith-Logo-Sterne in unterschiedlichen Skalen, sodass die Marken-DNA klar
durchscheint.

- Jeder Cluster: zentraler gefuellter Knoten + pulsierender Ring + 5
  strahlenfoermige Linien zu Aussenknoten in der originalen Logo-Anordnung
  (asymmetrisch nach rechts verlaengert wie im CI-Logo)
- Cluster A links-mitte (Skala 6, dominant), Cluster B rechts oben (3.5),
  Cluster C rechts unten (2.5) — gestaffelte Tiefe
- Ring atmet (scale + opacity), Core pulsiert mit Glow, Aussenknoten
  asynchron via inline animation-delay
- Linien als gestrichelte Petrol-Bahnen mit stroke-dashoffset-Datenfluss

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-05 00:04:59 +02:00
parent 82cea98b52
commit 21cd2c7c3f
5 changed files with 105 additions and 57 deletions
+52 -17
View File
@@ -88,45 +88,80 @@ html {
0 0 48px rgba(6, 115, 145, 0.06);
}
/* ---- Hero Mesh: animiertes Knoten-Netz im Logo-Stil ---- */
/* ---- Hero Mesh: Logo-Cluster (Sonith-Stern wiederholt) ----
Greift das exakte Logo-Motiv auf: zentraler Knoten mit Ring + 5 strahlenfoermige
Linien zu Aussenknoten in der Original-Logo-Anordnung (asymmetrisch nach rechts
verlaengert). Drei Cluster mit unterschiedlicher Skala fuer Tiefe. */
.hero-mesh {
opacity: 0.55;
mix-blend-mode: screen;
}
.mesh-lines line {
stroke-opacity: 0.25;
stroke-dasharray: 4 8;
animation: line-flow 6s linear infinite;
.logo-cluster line {
stroke: #067391;
stroke-width: 1.6;
stroke-linecap: round;
stroke-opacity: 0.45;
fill: none;
stroke-dasharray: 6 10;
animation: line-flow 8s linear infinite;
}
.mesh-lines line:nth-child(3n) { animation-duration: 9s; stroke-opacity: 0.18; }
.mesh-lines line:nth-child(3n+1) { animation-duration: 7s; animation-delay: -2s; }
.mesh-lines line:nth-child(3n+2) { animation-duration: 11s; animation-delay: -4s; stroke-opacity: 0.30; }
.cluster-b line { stroke-width: 1.2; stroke-opacity: 0.4; animation-duration: 6.5s; animation-delay: -2s; }
.cluster-c line { stroke-width: 1.0; stroke-opacity: 0.35; animation-duration: 10s; animation-delay: -4s; }
@keyframes line-flow {
to { stroke-dashoffset: -48; }
}
.cluster-core {
fill: #DEDC1E;
filter: drop-shadow(0 0 10px rgba(222, 220, 30, 0.7));
transform-box: fill-box;
transform-origin: center;
animation: core-pulse 3.2s ease-in-out infinite;
}
.cluster-b .cluster-core { animation-delay: -1s; }
.cluster-c .cluster-core { animation-delay: -2s; }
@keyframes core-pulse {
0%, 100% { transform: scale(1); opacity: 0.85; }
50% { transform: scale(1.15); opacity: 1; }
}
.cluster-ring {
fill: none;
stroke: #DEDC1E;
stroke-width: 1.6;
stroke-opacity: 0.55;
transform-box: fill-box;
transform-origin: center;
animation: ring-pulse 4s ease-in-out infinite;
}
.cluster-b .cluster-ring { animation-delay: -1.5s; }
.cluster-c .cluster-ring { animation-delay: -2.5s; }
@keyframes ring-pulse {
0%, 100% { transform: scale(1); stroke-opacity: 0.55; }
50% { transform: scale(1.18); stroke-opacity: 0.20; }
}
.node {
fill: #DEDC1E;
filter: drop-shadow(0 0 5px rgba(222, 220, 30, 0.5));
transform-box: fill-box;
transform-origin: center;
animation: node-pulse 3.6s ease-in-out infinite;
filter: drop-shadow(0 0 4px rgba(222, 220, 30, 0.6));
}
.node:nth-child(2n) { animation-delay: -0.8s; animation-duration: 4.2s; }
.node:nth-child(3n) { animation-delay: -1.6s; animation-duration: 5.0s; }
.node:nth-child(4n+1) { animation-delay: -2.4s; }
.node:nth-child(5n+2) { animation-delay: -3.0s; animation-duration: 4.8s; }
@keyframes node-pulse {
0%, 100% { transform: scale(1); opacity: 0.55; }
50% { transform: scale(1.6); opacity: 1; }
50% { transform: scale(1.5); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
.mesh-lines line,
.logo-cluster line,
.cluster-core,
.cluster-ring,
.node { animation: none !important; }
}