/* CSS Custom Properties for Theming */ :root { --primary-color: #2563eb; --secondary-color: #64748b; --accent-color: #f59e0b; --text-color: #1f2937; --bg-color: #ffffff; --bg-secondary: #f8fafc; --border-color: #e2e8f0; --shadow: 0 1px 3px rgba(0, 0, 0, 0.1); --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; --font-size-base: 16px; --line-height: 1.6; --spacing-xs: 0.5rem; --spacing-sm: 0.75rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; --max-width: 1200px; --header-height: 60px; } @media (prefers-color-scheme: dark) { :root { --text-color: #f1f5f9; --bg-color: #0f172a; --bg-secondary: #1e293b; --border-color: #334155; --shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } } /* Reset and Base Styles */ * { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: var(--font-family); font-size: var(--font-size-base); line-height: var(--line-height); color: var(--text-color); background-color: var(--bg-color); } /* Typography */ h1, h2, h3, h4, h5, h6 { margin-bottom: var(--spacing-md); font-weight: 600; } h1 { font-size: 2.5rem; } h2 { font-size: 2rem; } h3 { font-size: 1.5rem; } h4 { font-size: 1.25rem; } p { margin-bottom: var(--spacing-md); } a { color: var(--primary-color); text-decoration: none; transition: color 0.2s ease; } a:hover { color: var(--accent-color); } code { background-color: var(--bg-secondary); padding: 0.125rem 0.25rem; border-radius: 4px; font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; font-size: 0.875rem; } pre { background-color: var(--bg-secondary); padding: var(--spacing-md); border-radius: 8px; overflow-x: auto; margin: var(--spacing-md) 0; } pre code { background: none; padding: 0; } .cta-button { display: inline-block; background-color: var(--primary-color); color: white; padding: var(--spacing-sm) var(--spacing-md); border-radius: 6px; font-weight: 600; transition: background-color 0.2s ease; } .cta-button:hover { background-color: #1d4ed8; } /* Layout */ .container { max-width: var(--max-width); margin: 0 auto; padding: 0 var(--spacing-md); } /* Header and Navigation */ header { position: sticky; top: 0; background-color: var(--bg-color); border-bottom: 1px solid var(--border-color); z-index: 100; height: var(--header-height); } nav { display: flex; align-items: center; justify-content: space-between; height: 100%; padding: 0 var(--spacing-md); } .logo { font-size: 1.5rem; font-weight: bold; color: var(--primary-color); } .nav-links { display: flex; list-style: none; gap: var(--spacing-lg); } .nav-links a { padding: var(--spacing-sm); transition: all 0.2s ease; } .nav-links a:hover, .nav-links a.active { color: var(--accent-color); border-bottom: 2px solid var(--accent-color); } /* Mobile Navigation */ .mobile-menu-toggle { display: none; background: none; border: none; font-size: 1.5rem; cursor: pointer; } #mobile-menu { display: none; } #mobile-menu:checked ~ .nav-links { display: flex; flex-direction: column; position: absolute; top: var(--header-height); left: 0; right: 0; background-color: var(--bg-color); border-top: 1px solid var(--border-color); padding: var(--spacing-md); } /* Main Content */ main { padding-top: var(--spacing-xl); } section { padding: var(--spacing-xl) 0; border-bottom: 1px solid var(--border-color); } section:last-of-type { border-bottom: none; } /* Hero Section */ .hero { text-align: center; background-color: var(--bg-secondary); padding: var(--spacing-xl) 0; } .hero h1 { margin-bottom: var(--spacing-md); } .hero p { font-size: 1.25rem; margin-bottom: var(--spacing-lg); } /* Content Sections */ .content-section { display: grid; grid-template-columns: 1fr; gap: var(--spacing-lg); } @media (min-width: 768px) { .content-section { grid-template-columns: 1fr 2fr; } } .sidebar { background-color: var(--bg-secondary); padding: var(--spacing-lg); border-radius: 8px; } .main-content { padding-left: var(--spacing-lg); } /* Features Grid */ .features { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--spacing-lg); margin-top: var(--spacing-lg); } .feature-card { background-color: var(--bg-secondary); padding: var(--spacing-lg); border-radius: 8px; box-shadow: var(--shadow); } .feature-card h3 { color: var(--primary-color); margin-bottom: var(--spacing-sm); } /* Footer */ footer { background-color: var(--bg-secondary); padding: var(--spacing-xl) 0; text-align: center; border-top: 1px solid var(--border-color); } /* Responsive Design */ @media (max-width: 768px) { .nav-links { display: none; } .mobile-menu-toggle { display: block; } #mobile-menu:checked ~ .nav-links { display: flex; } } h1 { font-size: 2rem; } h2 { font-size: 1.75rem; } .container { padding: 0 var(--spacing-sm); } section { padding: var(--spacing-lg) 0; } } @media (max-width: 480px) { .hero h1 { font-size: 1.75rem; } .features { grid-template-columns: 1fr; } } /* Parallax Styles */ [data-speed] { will-change: transform; backface-visibility: hidden; transform: translateZ(0); } @media (max-width: 768px) { [data-speed] { will-change: auto; transform: none !important; } } /* WebGL Background Canvas */ #webgl-bg { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: -1; pointer-events: none; } /* Accessibility */ @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none; } [data-speed] { will-change: auto; } } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }