21cd2c7c3f
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>
285 lines
7.0 KiB
CSS
285 lines
7.0 KiB
CSS
/* ============================================================
|
|
sonith.de — Custom Styles
|
|
CI-konform: Logo-Gelb #DEDC1E, Petrol #067391, CI-Grau #848687/#C8C9CA
|
|
Hintergrund: petrol-getoentes Dunkel #0a1f28 / #102b38
|
|
============================================================ */
|
|
|
|
/* Smooth scrolling offset for fixed nav */
|
|
html {
|
|
scroll-padding-top: 5rem;
|
|
}
|
|
|
|
/* ---- Navbar ---- */
|
|
#navbar {
|
|
background: rgba(10, 31, 40, 0.8);
|
|
backdrop-filter: blur(12px);
|
|
-webkit-backdrop-filter: blur(12px);
|
|
}
|
|
|
|
#navbar.scrolled {
|
|
background: rgba(10, 31, 40, 0.95);
|
|
box-shadow: 0 1px 0 rgba(6, 115, 145, 0.2);
|
|
}
|
|
|
|
/* Header schrumpft beim Scrollen: gross & einladend oben, kompakt waehrend des Lesens */
|
|
.nav-row {
|
|
height: 6rem;
|
|
transition: height 0.3s ease;
|
|
}
|
|
.nav-logo {
|
|
height: 3.5rem;
|
|
transition: height 0.3s ease;
|
|
}
|
|
@media (min-width: 1024px) {
|
|
.nav-row { height: 7rem; }
|
|
.nav-logo { height: 4.5rem; }
|
|
}
|
|
#navbar.scrolled .nav-row { height: 4rem; }
|
|
#navbar.scrolled .nav-logo { height: 2.25rem; }
|
|
@media (min-width: 1024px) {
|
|
#navbar.scrolled .nav-row { height: 5rem; }
|
|
#navbar.scrolled .nav-logo { height: 2.5rem; }
|
|
}
|
|
|
|
/* Active nav link */
|
|
.nav-link.active {
|
|
color: #DEDC1E;
|
|
}
|
|
|
|
/* ---- Fade-in Animation ---- */
|
|
.fade-in {
|
|
opacity: 0;
|
|
transform: translateY(24px);
|
|
transition: opacity 0.6s ease-out, transform 0.6s ease-out;
|
|
}
|
|
|
|
.fade-in.visible {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
/* Staggered children */
|
|
.fade-in:nth-child(2) { transition-delay: 0.1s; }
|
|
.fade-in:nth-child(3) { transition-delay: 0.2s; }
|
|
.fade-in:nth-child(4) { transition-delay: 0.3s; }
|
|
|
|
/* ---- Service Cards ---- */
|
|
.service-card {
|
|
opacity: 0;
|
|
transform: translateY(24px);
|
|
transition: opacity 0.5s ease-out, transform 0.5s ease-out,
|
|
border-color 0.3s, box-shadow 0.3s;
|
|
}
|
|
|
|
.service-card.visible {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.service-card:nth-child(1) { transition-delay: 0.0s; }
|
|
.service-card:nth-child(2) { transition-delay: 0.08s; }
|
|
.service-card:nth-child(3) { transition-delay: 0.16s; }
|
|
.service-card:nth-child(4) { transition-delay: 0.24s; }
|
|
.service-card:nth-child(5) { transition-delay: 0.32s; }
|
|
.service-card:nth-child(6) { transition-delay: 0.40s; }
|
|
|
|
.service-card:hover {
|
|
box-shadow: 0 0 24px rgba(222, 220, 30, 0.08),
|
|
0 0 48px rgba(6, 115, 145, 0.06);
|
|
}
|
|
|
|
/* ---- 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;
|
|
}
|
|
|
|
.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;
|
|
}
|
|
.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;
|
|
}
|
|
|
|
@keyframes node-pulse {
|
|
0%, 100% { transform: scale(1); opacity: 0.55; }
|
|
50% { transform: scale(1.5); opacity: 1; }
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.logo-cluster line,
|
|
.cluster-core,
|
|
.cluster-ring,
|
|
.node { animation: none !important; }
|
|
}
|
|
|
|
/* ---- Floating Orbs (Hero) ---- */
|
|
.orb {
|
|
filter: blur(64px);
|
|
pointer-events: none;
|
|
will-change: transform;
|
|
}
|
|
|
|
.orb-petrol {
|
|
background: radial-gradient(circle, #067391 0%, transparent 70%);
|
|
animation: drift 14s ease-in-out infinite;
|
|
}
|
|
|
|
.orb-petrol-2 {
|
|
background: radial-gradient(circle, #045066 0%, transparent 70%);
|
|
animation: drift 18s ease-in-out infinite reverse;
|
|
}
|
|
|
|
.orb-sonith {
|
|
background: radial-gradient(circle, #DEDC1E 0%, transparent 70%);
|
|
animation: drift 20s ease-in-out infinite;
|
|
animation-delay: -6s;
|
|
}
|
|
|
|
@keyframes drift {
|
|
0%, 100% { transform: translate(0, 0) scale(1); }
|
|
33% { transform: translate(40px, -30px) scale(1.08); }
|
|
66% { transform: translate(-30px, 25px) scale(0.95); }
|
|
}
|
|
|
|
/* Auf reduzierten Bewegungswunsch achten (a11y) */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.orb { animation: none !important; }
|
|
}
|
|
|
|
/* ---- USP Cards (mit subtiler Pulse-Aura auf Icon-Kreisen) ---- */
|
|
.usp-card {
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.usp-card:hover {
|
|
transform: translateY(-4px);
|
|
}
|
|
|
|
.usp-card > div:first-child {
|
|
position: relative;
|
|
}
|
|
|
|
.usp-card > div:first-child::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: -6px;
|
|
border-radius: 9999px;
|
|
background: radial-gradient(circle, rgba(222, 220, 30, 0.18) 0%, transparent 70%);
|
|
opacity: 0;
|
|
transition: opacity 0.4s ease;
|
|
z-index: -1;
|
|
}
|
|
|
|
.usp-card:hover > div:first-child::before {
|
|
opacity: 1;
|
|
animation: pulse-soft 2.4s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes pulse-soft {
|
|
0%, 100% { transform: scale(1); opacity: 0.6; }
|
|
50% { transform: scale(1.18); opacity: 1; }
|
|
}
|
|
|
|
/* ---- Team Cards ---- */
|
|
.team-card {
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.team-card:hover {
|
|
transform: translateY(-4px);
|
|
}
|
|
|
|
/* ---- Contact Cards ---- */
|
|
.contact-card {
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.contact-card:hover {
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
/* ---- Selection Color ---- */
|
|
::selection {
|
|
background: rgba(222, 220, 30, 0.3);
|
|
color: #fff;
|
|
}
|
|
|
|
/* ---- Scrollbar (CI-Petrol-Toene) ---- */
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: #0a1f28;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: #1a3d4d;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: #045066;
|
|
}
|
|
|
|
/* ---- Focus Styles ---- */
|
|
a:focus-visible,
|
|
button:focus-visible {
|
|
outline: 2px solid #DEDC1E;
|
|
outline-offset: 2px;
|
|
border-radius: 4px;
|
|
}
|