/* ========================================================== GEIZKRAGEN – DESIGN SYSTEM v2 Animated Dark Theme · Glassmorphism · Glow ========================================================== */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap'); /* ========================================================== RESET & BASIS ========================================================== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { /* ─── Farben ─── */ --bg-main: #080b12; --bg-card: #0f1520; --bg-surface: #141c2b; --bg-header: #0d1117; --bg-input: #121a28; --color-primary: #3b82f6; --color-primary-hover:#2563eb; --color-primary-soft: rgba(59, 130, 246, 0.1); --color-primary-glow: rgba(59, 130, 246, 0.25); --color-accent: #10b981; --color-accent-soft: rgba(16, 185, 129, 0.1); --color-accent-glow: rgba(16, 185, 129, 0.2); --color-danger: #ef4444; --color-danger-soft: rgba(239, 68, 68, 0.1); --color-warning: #f59e0b; --color-success: #22c55e; --text-primary: #e8edf5; --text-secondary: #8b98b0; --text-muted: #556178; --text-invert: #ffffff; --border-subtle: rgba(255, 255, 255, 0.04); --border-default: rgba(255, 255, 255, 0.08); --border-strong: rgba(255, 255, 255, 0.14); --border-glow: rgba(59, 130, 246, 0.3); /* ─── Radii ─── */ --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; --radius-xl: 24px; --radius-full: 9999px; /* ─── Schatten ─── */ --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2); --shadow-md: 0 8px 30px rgba(0, 0, 0, 0.25); --shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.35); --shadow-glow-blue: 0 0 40px rgba(59, 130, 246, 0.12); --shadow-glow-green: 0 0 40px rgba(16, 185, 129, 0.1); /* ─── Transitions ─── */ --transition-fast: 150ms ease; --transition-normal: 280ms ease; --transition-smooth: 400ms cubic-bezier(0.4, 0, 0.2, 1); --transition-bounce: 500ms cubic-bezier(0.34, 1.56, 0.64, 1); /* ─── Spacing ─── */ --nav-gutter: 1.5rem; /* ─── Font ─── */ --font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } /* ========================================================== KEYFRAME ANIMATIONS ========================================================== */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideInRight { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.08); } 50% { box-shadow: 0 0 40px rgba(59, 130, 246, 0.18); } } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes borderGlow { 0%, 100% { border-color: rgba(59, 130, 246, 0.15); } 50% { border-color: rgba(59, 130, 246, 0.35); } } /* ========================================================== GLOBAL ========================================================== */ html { scroll-behavior: smooth; } body { font-family: var(--font-family); background: var(--bg-main); color: var(--text-primary); line-height: 1.6; min-height: 100vh; display: flex; flex-direction: column; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; position: relative; overflow-x: hidden; } /* ─── Animated Background Grid ─── */ body::before { content: ""; position: fixed; inset: 0; background-image: linear-gradient(rgba(59, 130, 246, 0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(59, 130, 246, 0.02) 1px, transparent 1px); background-size: 80px 80px; pointer-events: none; z-index: 0; animation: fadeIn 2s ease forwards; } /* ─── Ambient Glow Orbs ─── */ body::after { content: ""; position: fixed; top: -20%; right: -10%; width: 600px; height: 600px; border-radius: 50%; background: radial-gradient(circle, rgba(59, 130, 246, 0.06), transparent 70%); pointer-events: none; z-index: 0; animation: float 15s ease-in-out infinite; } main { flex: 1 0 auto; position: relative; z-index: 1; } a { color: var(--color-primary); text-decoration: none; transition: color var(--transition-normal); } a:hover { color: var(--color-primary-hover); } ::selection { background: rgba(59, 130, 246, 0.3); color: var(--text-invert); } /* ========================================================== CONTAINER ========================================================== */ .container { max-width: 1400px; margin-inline: auto; padding-inline: var(--nav-gutter); } /* ========================================================== HEADER – Glassmorphism ========================================================== */ .header { position: sticky; top: 0; z-index: 1000; background: rgba(13, 17, 23, 0.75); backdrop-filter: blur(24px) saturate(200%); -webkit-backdrop-filter: blur(24px) saturate(200%); border-bottom: 1px solid var(--border-subtle); padding: 0; animation: fadeIn 0.6s ease; } /* ========================================================== NAVBAR ========================================================== */ .nav { min-height: 64px; width: 100%; display: flex; align-items: center; position: relative; } .nav__logoLink { display: inline-flex; align-items: center; padding-left: 0; margin-left: 0; transition: transform var(--transition-smooth), opacity var(--transition-normal); } .nav__logoLink:hover { opacity: 0.9; transform: scale(1.02); } .nav__logo { display: block; margin: 0; max-width: 150px; height: auto; } .nav__inner { margin-right: 0; flex: 1; width: 100%; display: flex; justify-content: flex-end; align-items: center; gap: 1.25rem; } .nav__inner.container { margin-left: auto; } .nav__menu { display: flex; align-items: center; } .nav__list { display: flex; gap: 0.25rem; list-style: none; margin: 0; padding: 0; } .nav__link { color: var(--text-secondary); font-size: 0.9rem; font-weight: 500; text-decoration: none; padding: 0.5rem 1.1rem; border-radius: var(--radius-full); transition: all var(--transition-normal); position: relative; } .nav__link:hover { color: var(--text-invert); background: rgba(255, 255, 255, 0.06); transform: translateY(-1px); } .nav__link.active { color: var(--color-primary); background: var(--color-primary-soft); box-shadow: 0 0 12px rgba(59, 130, 246, 0.12); } /* ─── Nav Actions ─── */ .nav__actions { display: flex; align-items: center; gap: 0.25rem; } .nav__search, .nav__login { font-size: 1.3rem; color: var(--text-secondary); cursor: pointer; transition: all var(--transition-normal); padding: 0.5rem; border-radius: var(--radius-md); display: inline-flex; align-items: center; justify-content: center; position: relative; } .nav__search:hover, .nav__login:hover { color: var(--text-invert); background: rgba(255, 255, 255, 0.08); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } .nav__wishlist { color: var(--text-secondary); } .nav__wishlist:hover { color: var(--color-primary); background: var(--color-primary-soft); box-shadow: var(--shadow-glow-blue); } /* ========================================================== TOGGLE / CLOSE (sind