/* Custom Properties */ :root { --color-bg-primary: #000000; --color-bg-secondary: #0a0a0a; --color-bg-glass: rgba(20, 20, 20, 0.6); --color-accent-cyan: #00d4ff; --color-accent-purple: #8b5cf6; --color-accent-pink: #ec4899; --color-text-primary: #e5e5e5; --color-text-secondary: #9ca3af; } /* Base Styles */ * { box-sizing: border-box; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; line-height: 1.6; background-image: radial-gradient(circle at 10% 20%, rgba(0, 212, 255, 0.05) 0%, transparent 20%), radial-gradient(circle at 90% 80%, rgba(139, 92, 246, 0.05) 0%, transparent 20%); background-attachment: fixed; } /* Glassmorphism Cards */ .glass-card { background: var(--color-bg-glass); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.05); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); } .glass-card:hover { border-color: rgba(0, 212, 255, 0.2); box-shadow: 0 12px 40px rgba(0, 212, 255, 0.1); transform: translateY(-4px); } /* Section Titles */ .section-title { position: relative; padding-bottom: 0.75rem; } .section-title::after { content: ''; position: absolute; bottom: 0; left: 0; width: 80px; height: 4px; background: linear-gradient(90deg, var(--color-accent-cyan), var(--color-accent-purple)); border-radius: 2px; } /* Animated Gradient */ @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .animate-gradient { background-size: 200% 200%; animation: gradient 8s ease infinite; } /* Card Variants */ .spec-block, .node-card, .benefit-card, .use-case-card, .component-card, .network-card, .learning-card, .path-card, .final-card { background: rgba(20, 20, 20, 0.5); backdrop-filter: blur(8px); border: 1px solid rgba(255, 255, 255, 0.05); transition: all 0.3s ease; } .spec-block:hover, .node-card:hover, .benefit-card:hover, .use-case-card:hover, .component-card:hover, .network-card:hover, .learning-card:hover, .path-card:hover, .final-card:hover { border-color: rgba(0, 212, 255, 0.3); transform: translateY(-2px); } .performance-card { background: rgba(20, 20, 20, 0.7); transition: all 0.3s ease; } .performance-card:hover { border-color: rgba(139, 92, 246, 0.5); box-shadow: 0 8px 24px rgba(139, 92, 246, 0.2); } /* Warning Card */ .warning-card { background: rgba(251, 191, 36, 0.05); } .warning-card:hover { border-color: rgba(251, 191, 36, 0.4); } /* Navigation Active State */ .nav-link { position: relative; transition: all 0.3s ease; } .nav-link::after { content: ''; position: absolute; bottom: -2px; left: 50%; width: 0; height: 2px; background: var(--color-accent-cyan); transition: all 0.3s ease; transform: translateX(-50%); } .nav-link.active::after, .nav-link:hover::after { width: 100%; } /* Smooth Scroll */ html { scroll-behavior: smooth; } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--color-bg-secondary); } ::-webkit-scrollbar-thumb { background: linear-gradient(var(--color-accent-cyan), var(--color-accent-purple)); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--color-accent-cyan); } /* Selection */ ::selection { background: rgba(0, 212, 255, 0.3); color: var(--color-text-primary); } /* Animation Delays */ .animation-delay-2000 { animation-delay: 2s; } .animation-delay-4000 { animation-delay: 4s; } /* Responsive Typography */ @media (max-width: 768px) { .section-title::after { width: 60px; height: 3px; } .glass-card { padding: 1.5rem; } } /* Loading Animation */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .fade-in-up { animation: fadeInUp 0.6s ease-out forwards; } /* Stats Counter Animation */ @keyframes countUp { from { opacity: 0; } to { opacity: 1; } } .stat-animate { animation: countUp 0.5s ease-out; } /* Mobile Menu */ .mobile-menu { transform: translateX(-100%); transition: transform 0.3s ease; } .mobile-menu.open { transform: translateX(0); } /* Focus States */ a:focus, button:focus { outline: 2px solid var(--color-accent-cyan); outline-offset: 2px; }