/* Valtrix Design System */ :root { /* Colors */ --bg-dark: #0a0f1c; /* Deep Navy/Black */ --bg-card: #111827; /* Slightly lighter for cards */ --primary: #00f2ff; /* Cyan/Electric Blue */ --secondary: #ffffff; /* White */ --text-main: #e5e7eb; /* Light Gray for text */ --text-muted: #9ca3af; /* Muted Gray */ --accent: #3b82f6; /* Blue accent */ /* Typography */ --font-main: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; /* Spacing */ --container-width: 1200px; --header-height: 80px; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: var(--font-main); background-color: var(--bg-dark); color: var(--text-main); line-height: 1.6; overflow-x: hidden; } a { text-decoration: none; color: inherit; transition: color 0.3s ease; } ul { list-style: none; } /* Header */ #header { position: fixed; top: 20px; /* Floating effect */ left: 50%; transform: translateX(-50%); width: 90%; max-width: 1200px; height: 70px; background: rgba(10, 15, 28, 0.7); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); z-index: 1000; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 50px; /* Pill shape */ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); transition: all 0.3s ease; } .header-content { display: flex; justify-content: space-between; align-items: center; height: 100%; padding: 0 30px; /* Inner padding */ width: 100%; } .logo { font-size: 1.5rem; font-weight: 700; color: var(--secondary); letter-spacing: -0.5px; } .logo .dot { color: var(--primary); text-shadow: 0 0 10px var(--primary); } .nav-links { display: flex; gap: 5px; /* Smaller gap for pill items */ background: rgba(255, 255, 255, 0.03); padding: 5px; border-radius: 30px; } .nav-links a { font-size: 0.9rem; font-weight: 500; color: var(--text-muted); padding: 8px 20px; border-radius: 20px; transition: all 0.3s ease; } /* Remove old underline effect */ .nav-links a::after { display: none; } .nav-links a:hover { color: var(--bg-dark); background: var(--primary); box-shadow: 0 0 15px rgba(0, 242, 255, 0.4); } /* Hero Section */ #hero { min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; position: relative; overflow: hidden; padding-top: 120px; /* Ensure content clears the floating header */ padding-bottom: 60px; } .hero-content { position: relative; z-index: 2; max-width: 1000px; margin: 0 auto; /* Center content */ text-align: center; /* Center text */ padding: 0 20px; } #hero h1 { font-size: 5rem; /* Larger */ font-weight: 800; margin-bottom: 30px; line-height: 1.1; letter-spacing: -2px; background: linear-gradient(to bottom right, #fff, #9ca3af); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--secondary); } @supports (-webkit-background-clip: text) { #hero h1 { color: transparent; } } .highlight { color: var(--primary); -webkit-text-fill-color: var(--primary); text-shadow: 0 0 40px rgba(0, 242, 255, 0.4); display: block; /* Break line for emphasis */ } #hero p { font-size: 1.3rem; color: var(--text-muted); margin: 0 auto 50px; /* Center and spacing */ max-width: 700px; line-height: 1.6; } .hero-btns { display: flex; gap: 20px; justify-content: center; /* Center buttons */ } /* Hero Background Animation */ .hero-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 50% 50%, rgba(0, 242, 255, 0.08) 0%, transparent 60%); z-index: 1; pointer-events: none; } /* About Section */ .about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; /* More breathing room */ align-items: center; } .about-text p { margin-bottom: 24px; color: var(--text-muted); font-size: 1.15rem; line-height: 1.8; } .visual-box { width: 100%; height: 450px; background: linear-gradient(135deg, var(--bg-card), #1f2937); border-radius: 24px; position: relative; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.05); box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3); } .visual-box::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: conic-gradient(transparent, var(--primary), transparent 30%); animation: rotate 8s linear infinite; /* Slower, smoother animation */ opacity: 0.15; } @keyframes rotate { 100% { transform: rotate(360deg); } } /* Services Section */ .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 40px; } .service-card { background: rgba(17, 24, 39, 0.6); /* More transparent */ backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); padding: 48px 40px; border-radius: 20px; border: 1px solid rgba(255, 255, 255, 0.05); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .service-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 242, 255, 0.1); border-color: rgba(0, 242, 255, 0.3); background: rgba(17, 24, 39, 0.8); } .service-card .icon { font-size: 3.5rem; margin-bottom: 24px; display: inline-block; filter: drop-shadow(0 0 10px rgba(0, 242, 255, 0.2)); } .service-card h3 { font-size: 1.6rem; margin-bottom: 16px; color: var(--secondary); } .service-card p { color: var(--text-muted); font-size: 1.05rem; line-height: 1.7; } /* References Section */ .references-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 30px; text-align: center; } .ref-item { background: rgba(255, 255, 255, 0.02); padding: 40px 20px; border-radius: 16px; color: var(--text-muted); font-weight: 600; font-size: 1.1rem; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, 0.05); transition: all 0.3s ease; } .ref-item:hover { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.1); color: var(--secondary); } /* Contact Section */ .contact-wrapper { display: flex; justify-content: center; text-align: center; } .contact-info { background: linear-gradient(180deg, var(--bg-card), #0f1522); padding: 80px 40px; border-radius: 24px; border: 1px solid rgba(255, 255, 255, 0.05); max-width: 700px; width: 100%; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4); } .contact-link { display: inline-block; font-size: 2.5rem; color: var(--primary); margin: 40px 0; font-weight: 700; transition: transform 0.3s ease; } .contact-link:hover { transform: scale(1.05); text-shadow: 0 0 30px rgba(0, 242, 255, 0.4); } .btn-primary { background: var(--primary); color: var(--bg-dark); box-shadow: 0 4px 15px rgba(0, 242, 255, 0.3); position: relative; z-index: 1; border: 1px solid transparent; } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 242, 255, 0.5); background: #fff; /* White on hover for clean look */ color: var(--bg-dark); } .address { color: var(--text-muted); font-style: normal; font-size: 1.1rem; line-height: 1.8; } /* Legal Pages (Datenschutz/Impressum) */ .legal-content { max-width: 800px; margin: 0 auto; } .legal-content h1 { margin-bottom: 40px; font-size: 3rem; } .legal-content h2 { text-align: left; margin-top: 60px; margin-bottom: 24px; font-size: 2rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 10px; } .legal-content h3 { margin-top: 32px; margin-bottom: 16px; color: var(--secondary); font-size: 1.4rem; } .legal-content p, .legal-content ul { color: var(--text-muted); margin-bottom: 16px; font-size: 1.05rem; line-height: 1.8; } .legal-content ul { padding-left: 20px; list-style: disc; } .legal-content li { margin-bottom: 8px; } /* Footer */ footer { padding: 80px 0 40px; border-top: 1px solid rgba(255, 255, 255, 0.05); margin-top: 80px; background: #05080f; } .footer-content { display: flex; flex-direction: column; align-items: center; gap: 24px; } .footer-logo { font-size: 1.8rem; font-weight: 700; color: var(--secondary); } .footer-links { display: flex; gap: 30px; } .footer-links a { color: var(--text-muted); font-size: 0.95rem; transition: color 0.3s ease; } .footer-links a:hover { color: var(--primary); } .copyright { color: rgba(255, 255, 255, 0.2); font-size: 0.85rem; margin-top: 24px; } /* Mobile Responsive */ @media (max-width: 768px) { .section { padding: 60px 0; } #header { top: 0; left: 0; transform: none; width: 100%; max-width: none; border-radius: 0; border: none; border-bottom: 1px solid rgba(255, 255, 255, 0.05); background: rgba(10, 15, 28, 0.95); } .nav-links { position: fixed; top: 70px; /* Match header height */ left: 0; width: 100%; background: var(--bg-dark); flex-direction: column; padding: 40px; gap: 15px; text-align: center; transform: translateY(-100%); transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); z-index: 999; border-bottom: 1px solid rgba(255, 255, 255, 0.05); opacity: 0; pointer-events: none; height: auto; justify-content: flex-start; border-radius: 0; } .nav-links a { width: 100%; display: block; background: rgba(255, 255, 255, 0.03); } .nav-links.active { transform: translateY(0); opacity: 1; pointer-events: all; } .nav-links a { font-size: 1.5rem; /* Larger touch targets */ font-weight: 600; } #hero h1 { font-size: 3rem; } .about-grid { grid-template-columns: 1fr; gap: 40px; } .visual-box { height: 300px; } .contact-link { font-size: 1.5rem; word-break: break-all; } } /* Mobile Toggle Button */ .mobile-toggle { background: none; border: none; color: var(--text-main); font-size: 1.8rem; cursor: pointer; display: none; padding: 5px; line-height: 1; } @media (max-width: 768px) { .mobile-toggle { display: block; } }