/* ---- Topbar Host & Base ---- */ :host { position: sticky; top: 0; z-index: 100; display: block; } .topbar { /* Erzeugt den Milchglas-Effekt */ backdrop-filter: saturate(1.1) blur(8px); -webkit-backdrop-filter: saturate(1.1) blur(8px); /* Safari Support */ /* Mischt die Variable mit Transparenz. !important überschreibt Material-Vorgaben */ background: color-mix(in oklab, var(--app-topbar-bg) 80%, transparent) !important; border-bottom: 1px solid rgba(0, 0, 0, .08); display: flex; align-items: center; padding: clamp(0.5rem, 1vw, 1rem); } /* ---- Branding ---- */ .brand { display: flex; align-items: center; gap: clamp(0.4rem, 1vw, 0.6rem); color: inherit; text-decoration: none; .logo-dot { width: clamp(36px, 10vw, 48px); height: clamp(36px, 10vw, 48px); border-radius: 50%; } .brand-text { font-weight: 600; letter-spacing: .2px; font-size: clamp(1rem, 3vw, 1.2rem); } } /* ---- Navigation ---- */ .nav { position: absolute; left: 50%; transform: translateX(-50%); display: flex; gap: clamp(0.25rem, 1vw, 0.5rem); justify-content: center; } .nav a { opacity: 0.72; transition: opacity 150ms ease; position: relative; &::after { content: ''; position: absolute; bottom: 4px; left: 10px; right: 10px; height: 2px; background: currentColor; border-radius: 2px; transform: scaleX(0); transition: transform 200ms ease; } &:hover { opacity: 1; } &.active { opacity: 1; &::after { transform: scaleX(1); } } } .nav-menu-btn { display: none; } .spacer { flex: 1; } /* ---- Mobile Responsiveness ---- */ @media (max-width: 760px) { .nav { display: none; } .nav-menu-btn { display: inline-flex; } .brand { flex: unset; } }