body { font-family: 'Inter', sans-serif; background-color: #e0f2fe; color: #0f172a; overflow-x: hidden; } .gradient-text { background: linear-gradient(to right, #3b82f6, #38bdf8); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-size: 200% auto; animation: gradient-move 8s ease infinite; text-shadow: 0 2px 8px rgba(56, 189, 248, 0.35); } .card { background-color: #ffffff; border: 1px solid #bae6fd; transition: transform 0.3s ease, box-shadow 0.3s ease; transform-style: preserve-3d; perspective: 1000px; } .card:hover { transform: translateY(-5px); box-shadow: 0 10px 15px -3px rgba(59, 130, 246, 0.2), 0 4px 6px -2px rgba(59, 130, 246, 0.1); } .btn { transition: all 0.3s ease; position: relative; overflow: hidden; } .btn-primary { background-color: #3b82f6; } .btn-primary:hover { background-color: #2563eb; } .tos-section h3 { border-left: 3px solid #3b82f6; padding-left: 1rem; font-size: 1.25rem; font-weight: 600; margin-top: 1.5rem; margin-bottom: 1rem; } .tos-section ul { list-style-type: none; padding-left: 1rem; } .tos-section li { position: relative; padding-left: 1.5rem; margin-bottom: 0.5rem; } .tos-section li::before { content: '→'; position: absolute; left: 0; color: #3b82f6; } @keyframes gradient-move { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes fade-up { 0% { opacity: 0; transform: translateY(12px); } 100% { opacity: 1; transform: translateY(0); } } .animate-fade-up { opacity: 0; animation: fade-up 0.8s ease-out forwards; } .delay-1 { animation-delay: 0.1s; } .delay-2 { animation-delay: 0.2s; } .delay-3 { animation-delay: 0.3s; } @keyframes float-y { 0% { transform: translateY(0); } 50% { transform: translateY(-6px); } 100% { transform: translateY(0); } } .float { animation: float-y 6s ease-in-out infinite; } .btn:hover { transform: translateY(-2px); box-shadow: 0 10px 20px -8px rgba(56, 189, 248, 0.45); } .nav-link { position: relative; } .nav-link::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 0; height: 2px; background: #38bdf8; transition: width 0.25s ease; } .nav-link:hover::after { width: 100%; } .glow-blue { box-shadow: 0 0 0 2px #7dd3fc inset, 0 12px 20px -12px rgba(56, 189, 248, 0.6); } @keyframes intro-rise { 0% { opacity: 0; transform: translateY(16px) scale(0.98); filter: blur(6px); } 100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } } @keyframes pulse-in { 0% { transform: scale(0.92); opacity: 0; } 100% { transform: scale(1); opacity: 1; } } body::before { content: ""; position: fixed; inset: 0; background: radial-gradient(1200px 600px at 50% -10%, rgba(56, 189, 248, 0.28), transparent 60%); pointer-events: none; transform: scale(0.92); opacity: 0; animation: pulse-in 900ms ease-out forwards; } .intro { opacity: 0; animation: intro-rise 800ms cubic-bezier(0.22, 1, 0.36, 1) forwards; } .intro-delay-1 { animation-delay: 0.12s; } .intro-delay-2 { animation-delay: 0.24s; } .intro-delay-3 { animation-delay: 0.36s; } .intro-delay-4 { animation-delay: 0.48s; } .neon-text { text-shadow: 0 0 1px rgba(56, 189, 248, 0.9), 0 0 8px rgba(56, 189, 248, 0.65), 0 0 22px rgba(59, 130, 246, 0.6); animation: neon-pulse 3.2s ease-in-out infinite alternate; } @keyframes neon-pulse { 0% { text-shadow: 0 0 1px rgba(56, 189, 248, 0.7), 0 0 6px rgba(56, 189, 248, 0.5), 0 0 16px rgba(59, 130, 246, 0.45);} 100% { text-shadow: 0 0 2px rgba(56, 189, 248, 1), 0 0 14px rgba(56, 189, 248, 0.9), 0 0 34px rgba(59, 130, 246, 0.85);} } .btn.shine { position: relative; overflow: hidden; } .btn.shine::after { content: ""; position: absolute; top: 0; left: -150%; width: 120%; height: 100%; background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.45) 45%, rgba(255,255,255,0) 75%); transform: skewX(-20deg); animation: shine-sweep 3s ease-in-out infinite; } @keyframes shine-sweep { 0% { left: -150%; } 60% { left: 150%; } 100% { left: 150%; } } .btn-pulse { animation: pulse-shadow 2.6s ease-in-out infinite; } @keyframes pulse-shadow { 0% { box-shadow: 0 0 0 0 rgba(56, 189, 248, 0.0), 0 10px 18px -12px rgba(56,189,248,0.35);} 50% { box-shadow: 0 0 0 8px rgba(56, 189, 248, 0.08), 0 18px 26px -12px rgba(56,189,248,0.45);} 100% { box-shadow: 0 0 0 0 rgba(56, 189, 248, 0.0), 0 10px 18px -12px rgba(56,189,248,0.35);} } .badge-pulse { animation: badge-pop 1.8s ease-in-out infinite; } @keyframes badge-pop { 0%,100% { transform: translateY(0) scale(1);} 50% { transform: translateY(-2px) scale(1.06);} } #particles { position: fixed; inset: 0; pointer-events: none; z-index: 10; } .bubble { position: absolute; bottom: -40px; width: 8px; height: 8px; background: radial-gradient(circle at 30% 30%, #a5f3fc, #38bdf8 60%, transparent 70%); border-radius: 999px; opacity: 0.8; filter: blur(0.2px); animation: rise-bubble linear infinite; } @keyframes rise-bubble { 0% { transform: translate3d(0, 0, 0) scale(0.9); opacity: 0; } 10% { opacity: 0.8; } 100% { transform: translate3d(var(--bx, 0px), -110vh, 0) scale(1.2); opacity: 0; } } .card { transform-style: preserve-3d; } @keyframes slide-in-left { 0% { opacity: 0; transform: translateX(-50px); } 100% { opacity: 1; transform: translateX(0); } } @keyframes slide-in-right { 0% { opacity: 0; transform: translateX(50px); } 100% { opacity: 1; transform: translateX(0); } } @keyframes scale-in { 0% { opacity: 0; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1); } } @keyframes rotate-in { 0% { opacity: 0; transform: rotate(-180deg) scale(0.5); } 100% { opacity: 1; transform: rotate(0deg) scale(1); } } @keyframes bounce-in { 0% { opacity: 0; transform: scale(0.3); } 50% { opacity: 1; transform: scale(1.05); } 70% { transform: scale(0.9); } 100% { opacity: 1; transform: scale(1); } } @keyframes typing { from { width: 0; } to { width: 100%; } } @keyframes blink-caret { from, to { border-color: transparent; } 50% { border-color: #3b82f6; } } .typing-effect { overflow: hidden; border-right: 3px solid #3b82f6; white-space: nowrap; animation: typing 3s steps(40, end), blink-caret 0.75s step-end infinite; } .scroll-animate { opacity: 0; transform: translateY(30px); transition: all 0.6s ease-out; } .scroll-animate.visible { opacity: 1; transform: translateY(0); } .parallax { transform: translateZ(0); will-change: transform; } .btn-click { animation: click-ripple 0.6s ease-out; } @keyframes click-ripple { 0% { transform: scale(1); } 50% { transform: scale(0.95); } 100% { transform: scale(1); } } .card-flip { transition: transform 0.8s; transform-style: preserve-3d; } .card-flip:hover { transform: rotateY(10deg) rotateX(5deg); } .loading-screen { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%); display: flex; justify-content: center; align-items: center; z-index: 9999; animation: fade-out 1s ease-out 2s forwards; } @keyframes fade-out { to { opacity: 0; visibility: hidden; } } .loading-spinner { width: 50px; height: 50px; border: 4px solid #e0f2fe; border-top: 4px solid #3b82f6; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .floating-icon { animation: float-3d 4s ease-in-out infinite; } @keyframes float-3d { 0%, 100% { transform: translateY(0px) rotateY(0deg); } 25% { transform: translateY(-10px) rotateY(5deg); } 50% { transform: translateY(-5px) rotateY(0deg); } 75% { transform: translateY(-15px) rotateY(-5deg); } } .text-glow { animation: text-glow 2s ease-in-out infinite alternate; } @keyframes text-glow { from { text-shadow: 0 0 5px rgba(59, 130, 246, 0.5); } to { text-shadow: 0 0 20px rgba(59, 130, 246, 0.8), 0 0 30px rgba(59, 130, 246, 0.6); } } .particle { position: absolute; background: radial-gradient(circle, #38bdf8, transparent); border-radius: 50%; pointer-events: none; animation: particle-float 6s ease-in-out infinite; } @keyframes particle-float { 0%, 100% { transform: translateY(0px) scale(1); opacity: 0.7; } 50% { transform: translateY(-20px) scale(1.2); opacity: 1; } } .nav-link { position: relative; transition: all 0.3s ease; } .nav-link:hover { transform: translateY(-2px); } .nav-link::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(45deg, transparent, rgba(56, 189, 248, 0.1), transparent); transform: translateX(-100%); transition: transform 0.3s ease; } .nav-link:hover::before { transform: translateX(100%); } .feature-card { transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .feature-card:hover { transform: translateY(-10px) scale(1.02); box-shadow: 0 20px 40px rgba(59, 130, 246, 0.15); } .pricing-card { transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); position: relative; } .pricing-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(45deg, transparent, rgba(56, 189, 248, 0.05), transparent); opacity: 0; transition: opacity 0.3s ease; border-radius: inherit; } .pricing-card:hover::before { opacity: 1; } .pricing-card:hover { transform: translateY(-8px) scale(1.02); box-shadow: 0 25px 50px rgba(59, 130, 246, 0.2); } .logo-animate { animation: logo-float 4s ease-in-out infinite, logo-glow 3s ease-in-out infinite alternate; filter: drop-shadow(0 0 10px rgba(56, 189, 248, 0.3)); transition: all 0.3s ease; } .logo-animate:hover { transform: scale(1.1) rotate(5deg); filter: drop-shadow(0 0 20px rgba(56, 189, 248, 0.6)); } @keyframes logo-float { 0%, 100% { transform: translateY(0px) rotate(0deg); } 25% { transform: translateY(-8px) rotate(2deg); } 50% { transform: translateY(-4px) rotate(0deg); } 75% { transform: translateY(-12px) rotate(-2deg); } } @keyframes logo-glow { 0% { filter: drop-shadow(0 0 10px rgba(56, 189, 248, 0.3)) brightness(1); } 100% { filter: drop-shadow(0 0 20px rgba(56, 189, 248, 0.6)) brightness(1.1); } }