/* Custom CSS for Deployr Landing Page */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap'); body { font-family: 'Inter', sans-serif; overflow-x: hidden; } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-20px); } } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .animate-fade-in-up { animation: fadeInUp 0.8s ease-out forwards; opacity: 0; } .animate-float { animation: float 6s ease-in-out infinite; } .animate-pulse-slow { animation: pulse 3s ease-in-out infinite; } /* Gradient Text */ .gradient-text { background: linear-gradient(135deg, #2563eb, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Glass Effect */ .glass { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #1e293b; } ::-webkit-scrollbar-thumb { background: linear-gradient(135deg, #2563eb, #06b6d4); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(135deg, #06b6d4, #2563eb); } /* Button Hover Effects */ .btn-gradient { background: linear-gradient(135deg, #2563eb, #06b6d4); transition: all 0.3s ease; position: relative; overflow: hidden; } .btn-gradient::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); transition: left 0.5s; } .btn-gradient:hover::before { left: 100%; } /* Card Hover Effects */ .service-card { transition: all 0.3s ease; } .service-card:hover { transform: translateY(-10px); } /* Wave Animation */ .wave-animation { animation: float 4s ease-in-out infinite; } /* Smooth Scroll */ html { scroll-behavior: smooth; } /* Selection Color */ ::selection { background: #06b6d4; color: white; } /* Focus States */ button:focus, a:focus { outline: 2px solid #06b6d4; outline-offset: 2px; } /* Responsive Typography */ @media (max-width: 640px) { h1 { font-size: 2.5rem; } h2 { font-size: 2rem; } } /* Loading Animation */ .loading-spinner { border: 3px solid rgba(6, 182, 212, 0.1); border-top-color: #06b6d4; border-radius: 50%; width: 40px; height: 40px; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Tooltip */ .tooltip { position: relative; } .tooltip::after { content: attr(data-tooltip); position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: #1e293b; color: white; padding: 8px 12px; border-radius: 6px; font-size: 14px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity 0.3s; } .tooltip:hover::after { opacity: 1; } /* Glow Effect */ .glow { box-shadow: 0 0 20px rgba(6, 182, 212, 0.5); } /* Matrix Background Effect */ .matrix-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: -1; opacity: 0.05; } /* Particle Effect */ .particle { position: absolute; width: 4px; height: 4px; background: #06b6d4; border-radius: 50%; animation: particleFloat 10s linear infinite; } @keyframes particleFloat { from { transform: translateY(100vh) rotate(0deg); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } to { transform: translateY(-100vh) rotate(360deg); opacity: 0; } } /* Neon Text Effect */ .neon-text { text-shadow: 0 0 10px #06b6d4, 0 0 20px #06b6d4, 0 0 30px #06b6d4; } /* Form Styles */ .form-input { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); transition: all 0.3s ease; } .form-input:focus { background: rgba(255, 255, 255, 0.08); border-color: #06b6d4; box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.1); } /* Badge Styles */ .badge { background: linear-gradient(135deg, #2563eb, #06b6d4); padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; } /* Grid Background */ .grid-bg { background-image: linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px); background-size: 50px 50px; } /* Custom Variables */ :root { --primary: #2563eb; --secondary: #06b6d4; --dark: #0f172a; --dark-light: #1e293b; }