/* Define CSS Variables for colors and fonts */ :root { --primary: #8a2be2; /* Couleur principale violette */ --primary-dark: #6a1cb2; /* Version plus foncée */ --primary-light: #b355ff; /* Version plus claire */ --accent: #ff36b3; /* Couleur d'accent contrastée */ --accent-secondary: #00e5ff; /* Accent secondaire (cyan) */ --accent-tertiary: #ff9100; /* Accent tertiaire (orange) */ --text: #ffffff; --text-secondary: rgba(255, 255, 255, 0.7); --text-tertiary: rgba(255, 255, 255, 0.5); --glass-bg: rgba(20, 20, 30, 0.7); --glass-border: rgba(138, 43, 226, 0.3); --neumorphic-shadow-dark: 8px 8px 16px rgba(0, 0, 0, 0.4); --neumorphic-shadow-light: -8px -8px 16px rgba(30, 30, 45, 0.3); --font-primary: 'Poppins', sans-serif; --font-secondary: 'Montserrat', sans-serif; --font-accent: 'Quicksand', sans-serif; } /* Import modern fonts */ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Montserrat:wght@400;500;600;700&family=Quicksand:wght@400;500;600;700&display=swap'); body { background-color: #121212; /* Base dark color */ color: var(--text); font-family: var(--font-primary); margin: 0; padding: 0; position: relative; overflow-x: hidden; background: linear-gradient(135deg, #0f0f18 0%, #161623 100%); font-weight: 300; letter-spacing: 0.02em; line-height: 1.6; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-secondary); font-weight: 600; line-height: 1.2; letter-spacing: -0.01em; } h1 { font-size: 4.5rem; margin-bottom: 2rem; } h2 { font-size: 3.5rem; margin-bottom: 1.5rem; } h3 { font-size: 2.5rem; margin-bottom: 1rem; } p { margin-bottom: 1.5rem; font-size: 1.05rem; } /* Enhanced text styles */ .text-thin { font-weight: 300; } .text-regular { font-weight: 400; } .text-medium { font-weight: 500; } .text-bold { font-weight: 700; } .text-uppercase { text-transform: uppercase; letter-spacing: 0.1em; } .text-spaced { letter-spacing: 0.05em; } .text-accent { font-family: var(--font-accent); } /* Modern button typography */ .cta-button, .liquid-button { font-family: var(--font-secondary); font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; font-size: 0.9rem; } /* Navigation typography */ .nav-links a { font-family: var(--font-secondary); font-weight: 500; font-size: 0.95rem; letter-spacing: 0.05em; text-transform: uppercase; } /* Pricing card typography */ .pricing-card h3 { font-family: var(--font-accent); font-weight: 600; font-size: 2rem; } .price .amount { font-family: var(--font-secondary); font-weight: 700; } .price .period { font-family: var(--font-primary); font-weight: 300; letter-spacing: 0.05em; } /* Feature item typography */ .feature-content h3 { font-family: var(--font-accent); font-weight: 600; } /* Footer typography */ .footer-brand h2 { font-family: var(--font-accent); font-weight: 700; letter-spacing: 0.02em; } .footer-links h3 { font-family: var(--font-secondary); font-weight: 600; font-size: 1.3rem; letter-spacing: 0.03em; } .footer-links a { font-family: var(--font-primary); font-weight: 400; letter-spacing: 0.02em; } /* Animated gradient mesh background */ body::after { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 15% 50%, rgba(138, 43, 226, 0.15) 0%, transparent 25%), radial-gradient(circle at 85% 30%, rgba(255, 54, 179, 0.1) 0%, transparent 25%), radial-gradient(circle at 50% 80%, rgba(0, 229, 255, 0.1) 0%, transparent 25%); background-size: 200% 200%; animation: gradientBackground 25s ease infinite; pointer-events: none; z-index: -2; } @keyframes gradientBackground { 0% { background-position: 0% 0%; } 25% { background-position: 50% 100%; } 50% { background-position: 100% 50%; } 75% { background-position: 50% 0%; } 100% { background-position: 0% 0%; } } /* Animated cosmic grid */ .cosmic-grid { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-size: 40px 40px; background-image: linear-gradient(to right, rgba(138, 43, 226, 0.03) 1px, transparent 1px), linear-gradient(to bottom, rgba(138, 43, 226, 0.03) 1px, transparent 1px); z-index: -1; transform: perspective(1000px) rotateX(60deg) scale(2.5); transform-origin: center center; pointer-events: none; animation: gridFloat 20s linear infinite; } @keyframes gridFloat { 0% { transform: perspective(1000px) rotateX(60deg) scale(2.5) translateY(0px); } 50% { transform: perspective(1000px) rotateX(60deg) scale(2.5) translateY(-20px); } 100% { transform: perspective(1000px) rotateX(60deg) scale(2.5) translateY(0px); } } /* Animated stars background */ .stars { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: -1; } .star { position: absolute; background: white; border-radius: 50%; animation: twinkle var(--duration) ease-in-out infinite; opacity: 0; } @keyframes twinkle { 0%, 100% { opacity: 0; } 50% { opacity: var(--opacity); } } /* Animated floating orbs */ .orbs-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; pointer-events: none; z-index: -1; } .orb { position: absolute; border-radius: 50%; filter: blur(60px); opacity: 0.5; animation: orbFloat 30s ease-in-out infinite; background: radial-gradient(circle at center, rgba(138, 43, 226, 0.15), rgba(80, 20, 170, 0.05)); } .orb:nth-child(1) { width: 300px; height: 300px; top: 10%; left: 15%; animation-duration: 30s; background: radial-gradient(circle at center, rgba(138, 43, 226, 0.15), rgba(80, 20, 170, 0.05)); } .orb:nth-child(2) { width: 250px; height: 250px; top: 60%; left: 75%; animation-duration: 40s; animation-delay: 5s; background: radial-gradient(circle at center, rgba(255, 54, 179, 0.15), rgba(180, 30, 120, 0.05)); } .orb:nth-child(3) { width: 200px; height: 200px; top: 30%; left: 80%; animation-duration: 35s; animation-delay: 10s; background: radial-gradient(circle at center, rgba(0, 229, 255, 0.15), rgba(0, 150, 180, 0.05)); } .orb:nth-child(4) { width: 350px; height: 350px; top: 70%; left: 5%; animation-duration: 45s; animation-delay: 15s; background: radial-gradient(circle at center, rgba(138, 43, 226, 0.1), rgba(80, 20, 170, 0.03)); } .orb:nth-child(5) { width: 400px; height: 400px; top: 40%; left: 50%; animation-duration: 50s; animation-delay: 20s; background: radial-gradient(circle at center, rgba(0, 229, 255, 0.1), rgba(0, 150, 180, 0.03)); } @keyframes orbFloat { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(-50px, 50px); } 50% { transform: translate(50px, -30px); } 75% { transform: translate(30px, 50px); } } nav { padding: 1rem 5%; display: flex; justify-content: space-between; align-items: center; position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: rgba(10, 10, 10, 0.8); backdrop-filter: blur(10px); } .nav-links { display: flex; gap: 2rem; margin: 0 auto; } .nav-links a { display: inline-block; position: relative; padding: 0.5rem 1rem; color: var(--text); text-decoration: none; transition: color 0.3s ease; } .nav-links a::after { content: ''; position: absolute; bottom: -2px; left: 50%; width: 0; height: 2px; background: linear-gradient(to right, var(--primary-light), var(--primary)); transition: width 0.3s ease, opacity 0.3s ease; opacity: 0; transform: translateX(-50%); } .nav-links a:hover::after, .nav-links a.active::after { opacity: 1; width: 100%; } .nav-links a:hover, .nav-links a.active { color: var(--primary); transform: translateY(-2px); } .hero { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 8rem 1rem 4rem; position: relative; overflow: hidden; } .hero::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 400px; height: 400px; background: radial-gradient(circle, rgba(138, 43, 226, 0.1) 0%, rgba(0, 0, 0, 0) 70%); z-index: 1; } .logo-large { width: 200px; height: 200px; margin-bottom: 2rem; filter: drop-shadow(0 0 20px rgba(138, 43, 226, 0.3)); } .hero-content { position: relative; z-index: 2; } .hero h1 { font-size: 5rem; color: var(--primary); margin-bottom: 1.5rem; text-shadow: 0 0 20px rgba(138, 43, 226, 0.3); background: linear-gradient(to right, var(--primary), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; } .hero p { font-size: 1.1rem; opacity: 0.9; max-width: 800px; margin: 0 auto 2rem; line-height: 1.8; } .cta-button { position: relative; overflow: hidden; color: #fff; font-weight: 600; letter-spacing: 1px; background: linear-gradient(45deg, var(--primary), var(--primary-dark)); border: none; box-shadow: 0 8px 25px rgba(138, 43, 226, 0.3); transition: all 0.4s ease; padding: 0.8rem 3rem; border-radius: 50px; text-decoration: none; display: inline-block; } .cta-button::before { content: ''; position: absolute; top: -2px; left: -2px; width: calc(100% + 4px); height: calc(100% + 4px); background: linear-gradient(45deg, var(--primary), var(--accent), var(--primary-dark), var(--primary-light)); z-index: -1; animation: gradient-shift 10s linear infinite; background-size: 400%; border-radius: 50px; opacity: 0; transition: opacity 0.3s ease; } .cta-button:hover { transform: translateY(-5px) scale(1.03); box-shadow: 0 15px 30px rgba(138, 43, 226, 0.5); } .cta-button:hover::before { opacity: 1; } .login-text { margin-top: 1rem; font-size: 0.9rem; opacity: 0.6; color: rgba(255, 255, 255, 0.6); } .login-text a { color: var(--primary); text-decoration: none; } .features-section { display: flex; flex-direction: column; align-items: center; padding: 6rem 2rem; text-align: center; background: var(--dark); position: relative; } .features-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at center, rgba(138, 43, 226, 0.05) 0%, rgba(0, 0, 0, 0) 70%); pointer-events: none; } .features-section h2 { font-size: 4.5rem; color: var(--primary); margin-bottom: 1rem; text-shadow: 0 0 20px rgba(138, 43, 226, 0.3); background: linear-gradient(to right, var(--primary), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; } .features-subtitle { font-size: 1.2rem; color: var(--text); opacity: 0.9; margin-bottom: 4rem; } .feature-item { display: flex; align-items: center; gap: 2rem; max-width: 800px; margin: 0 auto 3rem; text-align: left; padding: 2rem; position: relative; overflow: hidden; } .feature-item::after { content: ''; position: absolute; left: 45px; top: 100%; width: 2px; height: 3rem; background: linear-gradient(to bottom, var(--primary) 0%, transparent 100%); opacity: 0.2; } .feature-item:last-child::after { display: none; } .feature-item::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(138, 43, 226, 0.2) 0%, transparent 60%); opacity: 0; z-index: -1; transition: opacity 0.5s ease; } .feature-item:hover::before { opacity: 1; animation: gradient-shift 10s ease infinite; } .feature-icon { width: 90px; height: 90px; background: rgba(138, 43, 226, 0.1); border-radius: 50%; padding: 1rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 30px rgba(138, 43, 226, 0.15); transition: transform 0.5s ease; transform-style: preserve-3d; } .feature-icon:hover { transform: perspective(500px) rotateY(15deg); } .feature-content { flex: 1; } .feature-content h3 { font-size: 3rem; color: var(--primary); margin: 0 0 1rem; font-weight: 600; text-shadow: 0 0 20px rgba(138, 43, 226, 0.3); } .feature-content p { font-size: 1.1rem; color: var(--text); opacity: 0.9; line-height: 1.6; margin: 0; max-width: 600px; } .pricing-section { display: flex; flex-direction: column; align-items: center; padding: 8rem 2rem; text-align: center; background: var(--dark); position: relative; } .pricing-section h2 { font-size: 4.5rem; color: var(--primary); margin-bottom: 1rem; text-shadow: 0 0 20px rgba(138, 43, 226, 0.3); background: linear-gradient(to right, var(--primary), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; } .pricing-subtitle { font-size: 1.2rem; color: var(--text); opacity: 0.9; margin-bottom: 4rem; } .pricing-cards { display: flex; flex-wrap: wrap; gap: 3rem; max-width: 1400px; margin: 3rem auto 0; padding: 1rem; justify-content: center; } .pricing-card { position: relative; flex: 1; min-width: 300px; max-width: 350px; padding: 3rem 2rem; border-radius: 20px; overflow: hidden; transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); z-index: 1; backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.05); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2); display: flex; flex-direction: column; align-items: center; justify-content: space-between; background: linear-gradient(145deg, rgba(30, 30, 45, 0.6), rgba(20, 20, 35, 0.8)); } .pricing-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient( 135deg, rgba(138, 43, 226, 0.15) 0%, rgba(255, 54, 179, 0.15) 50%, rgba(0, 229, 255, 0.15) 100% ); z-index: -1; opacity: 0; transition: opacity 0.6s ease; } .pricing-card:hover { transform: translateY(-16px) scale(1.03); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3); } .pricing-card:hover::before { opacity: 1; } .pricing-card h3 { font-family: var(--font-accent); font-size: 1.8rem; margin-bottom: 1.5rem; position: relative; display: inline-block; } .pricing-card h3::after { content: ''; position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%); width: 50px; height: 3px; background: linear-gradient(to right, var(--primary), var(--accent)); border-radius: 2px; } .price { margin: 2rem 0; position: relative; display: flex; align-items: flex-start; justify-content: center; } .price .currency { font-size: 2rem; font-weight: 600; margin-right: 5px; margin-top: 10px; } .price .amount { font-size: 5rem; font-weight: 700; line-height: 1; background: linear-gradient(to right, var(--primary), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; } .price .period { display: block; font-weight: 400; font-size: 1rem; margin-top: 0.8rem; opacity: 0.7; letter-spacing: 1px; } .pricing-card .cta-button { width: 100%; padding: 1rem; margin-top: 2rem; display: flex; justify-content: center; align-items: center; font-size: 1rem; letter-spacing: 1px; position: relative; overflow: hidden; transition: all 0.4s ease; } .pricing-card .price-logo { width: 80px; height: 80px; margin-bottom: 1.5rem; filter: drop-shadow(0 0 15px rgba(138, 43, 226, 0.3)); animation: float 6s ease-in-out infinite; } .pricing-features { margin: 2rem 0; text-align: left; width: 100%; } .pricing-feature { display: flex; align-items: center; margin-bottom: 1rem; font-size: 0.95rem; } .pricing-feature i { margin-right: 10px; color: var(--primary); font-size: 1rem; } .pricing-feature.included { opacity: 1; } .pricing-feature.not-included { opacity: 0.5; } .pricing-badge { position: absolute; top: 20px; right: 20px; background: linear-gradient(to right, var(--primary), var(--accent)); color: white; padding: 0.3rem 1rem; border-radius: 20px; font-size: 0.8rem; font-weight: 600; box-shadow: 0 5px 15px rgba(138, 43, 226, 0.3); transform: rotate(5deg); } /* Animation de badge pour attirer l'attention */ @keyframes pulse-badge { 0%, 100% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } } .pricing-badge.popular { animation: pulse-badge 2s infinite; } /* Curseur personnalisé */ * { cursor: none; } .cursor { width: 20px; height: 20px; border: 2px solid var(--primary); border-radius: 50%; position: fixed; pointer-events: none; z-index: 9999; transition: transform 0.2s ease; transform: translate(-50%, -50%); } .cursor::after { content: ''; position: absolute; width: 4px; height: 4px; background: var(--primary); border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%, -50%); } .cursor.hover { transform: translate(-50%, -50%) scale(1.5); background: rgba(138, 43, 226, 0.1); border-color: transparent; } /* Particules */ .particle { pointer-events: none; position: fixed; width: 4px; height: 4px; background: var(--primary); border-radius: 50%; z-index: 9998; animation: particle-animation 1s ease-out forwards; } @keyframes particle-animation { 0% { transform: translate(0, 0); opacity: 1; } 100% { transform: translate(var(--tx), var(--ty)); opacity: 0; } } /* Effet hover sur les boutons */ .cta-button:hover { transform: scale(1.05); box-shadow: 0 0 40px rgba(138, 43, 226, 0.8); background: rgba(138, 43, 226, 0.9); } .nav-links a:hover { text-shadow: 0 0 10px var(--primary); } /* Nouvelle section pour les services supportés */ .supported-services { padding: 6rem 2rem; background: var(--dark); position: relative; text-align: center; background: rgba(138, 43, 226, 0.03); max-width: 1200px; margin: 0 auto; border-radius: 15px; border: 1px solid rgba(138, 43, 226, 0.1); backdrop-filter: blur(10px); } .supported-services::before { content: ''; position: absolute; left: 0; top: 0; height: 100%; width: 4px; background: var(--primary); box-shadow: 0 0 20px var(--primary); border-radius: 4px; } .services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; max-width: 1200px; margin: 0 auto; padding: 2rem; position: relative; z-index: 1; } .service-category { text-align: left; padding: 1rem; background: rgba(138, 43, 226, 0.03); border-radius: 10px; transition: all 0.3s ease; background: var(--glass-bg); backdrop-filter: blur(12px); border: 1px solid var(--glass-border); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); } .service-category:hover { background: rgba(138, 43, 226, 0.05); transform: translateX(5px); } .service-category h3 { font-size: 1.8rem; color: var(--primary); margin-bottom: 1.5rem; text-shadow: 0 0 15px rgba(138, 43, 226, 0.5); } .service-list { list-style: none; padding: 0; margin: 0; } .service-item { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; padding: 0.8rem; border-radius: 8px; background: rgba(138, 43, 226, 0.03); border: 1px solid rgba(138, 43, 226, 0.05); transition: all 0.3s ease; position: relative; z-index: 1; } .service-item:hover { background: rgba(138, 43, 226, 0.1); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); transform: translateX(5px); } .service-item::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: -1; border-radius: 8px; background: linear-gradient(135deg, var(--primary-light), var(--primary-dark)); opacity: 0; transition: opacity 0.3s ease; } .service-item:hover::after { opacity: 0.2; } .service-item span { flex: 1; line-height: 1.4; } .service-item small { display: block; opacity: 0.7; font-size: 0.85em; margin-top: 0.3rem; } .service-item svg { width: 20px; height: 20px; color: var(--primary); filter: drop-shadow(0 0 5px rgba(138, 43, 226, 0.5)); } .service-item .mini-logo .wave-blue { fill: url(index.html#mini-gradient); } .service-item .mini-logo .wave-gray { fill: #cccccc; opacity: 0.9; } .warning-text { margin-top: 4rem; color: var(--primary); font-size: 1.2rem; opacity: 0.8; text-shadow: 0 0 10px rgba(138, 43, 226, 0.3); position: relative; z-index: 1; padding: 1rem 2rem; border-top: 1px solid rgba(138, 43, 226, 0.08); } .pricing-card:last-child:hover { transform: scale(1.1); } /* Dégradés progressifs pour les boutons */ .pricing-card:nth-child(1) .cta-button { background: linear-gradient(45deg, #8a2be2, #ff36b3); border: none; color: white; } .pricing-card:nth-child(2) .cta-button { background: linear-gradient(45deg, #8a2be2, #ff36b3); border: none; color: white; } .pricing-card:nth-child(3) .cta-button { background: linear-gradient(45deg, #8a2be2, #ff36b3); border: none; color: white; } .pricing-card:last-child .cta-button { background: linear-gradient(45deg, #8a2be2, #ff36b3); border: none; color: white; box-shadow: 0 0 30px rgba(138, 43, 226, 0.4); } /* Effets de survol personnalisés pour chaque bouton */ .pricing-card:nth-child(1) .cta-button:hover { box-shadow: 0 0 30px rgba(138, 43, 226, 0.6); transform: scale(1.05); } .pricing-card:nth-child(2) .cta-button:hover { box-shadow: 0 0 30px rgba(138, 43, 226, 0.6); transform: scale(1.05); } .pricing-card:nth-child(3) .cta-button:hover { box-shadow: 0 0 30px rgba(138, 43, 226, 0.6); transform: scale(1.05); } .pricing-card:last-child .cta-button:hover { box-shadow: 0 0 30px rgba(138, 43, 226, 0.6); transform: scale(1.05); } /* Footer styles */ .footer { padding: 6rem 2rem 2rem; background: rgba(138, 43, 226, 0.05); backdrop-filter: blur(10px); position: relative; overflow: hidden; } .footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 50% 0%, rgba(138, 43, 226, 0.05) 0%, rgba(0, 0, 0, 0) 60%); pointer-events: none; } .footer-content { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4rem; max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; background: rgba(138, 43, 226, 0.05); padding: 2rem; border-radius: 15px; border: 1px solid rgba(138, 43, 226, 0.05); } .footer-brand { flex: 1; min-width: 300px; } .footer-brand h2 { font-size: 3.5rem; color: var(--primary); margin: 0 0 1rem; text-shadow: 0 0 15px rgba(138, 43, 226, 0.3); letter-spacing: 1px; } .footer-brand p { opacity: 0.8; line-height: 1.6; margin-bottom: 2rem; } .payment-methods { margin-top: 2rem; } .payment-methods h3 { font-size: 1.8rem; color: var(--primary); margin-bottom: 1.5rem; text-shadow: 0 0 25px rgba(138, 43, 226, 0.5); letter-spacing: 0.5px; } .crypto-icons { display: flex; gap: 2rem; justify-content: center; margin-top: 1.5rem; } .crypto-icon { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; transition: all 0.3s ease; } .crypto-icon:hover { transform: translateY(-5px); } .crypto-icon svg { width: 40px; height: 40px; filter: drop-shadow(0 0 10px rgba(138, 43, 226, 0.2)); } .crypto-icon span { font-size: 0.8rem; opacity: 0.7; } .footer-links { flex: 1; min-width: 200px; } .footer-links h3 { font-size: 1.8rem; color: var(--primary); margin-bottom: 1.5rem; text-shadow: 0 0 15px rgba(138, 43, 226, 0.3); } .footer-links a { display: block; color: var(--text); text-decoration: none; opacity: 0.6; margin-bottom: 1rem; transition: all 0.3s ease; } .footer-links a:hover { opacity: 1; color: var(--primary); transform: translateX(10px); } .copyright { width: 100%; text-align: center; padding-top: 2rem; margin-top: 4rem; border-top: 1px solid rgba(138, 43, 226, 0.08); opacity: 0.6; font-size: 0.9rem; background: linear-gradient(to bottom, rgba(138, 43, 226, 0.05) 0%, transparent 100%); } /* Style pour le logo rond lumineux */ .hero-logo { width: 180px; height: 180px; position: relative; margin: 0 auto 3rem; filter: drop-shadow(0 0 30px rgba(138, 43, 226, 0.4)); animation: float 6s ease-in-out infinite; } .hero-logo .wave-blue { fill: url(index.html#hero-gradient); } .hero-logo .wave-gray { fill: #cccccc; opacity: 0.9; } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .price-logo { width: 80px; height: 80px; margin: 0 auto 1.5rem; filter: drop-shadow(0 0 15px rgba(138, 43, 226, 0.3)); animation: float 6s ease-in-out infinite; } /* Dégradés progressifs pour les logos */ .pricing-card:nth-child(1) .price-logo .wave-blue { fill: url(index.html#price-gradient-2); } .pricing-card:nth-child(2) .price-logo .wave-blue { fill: url(index.html#price-gradient-2); } .pricing-card:nth-child(3) .price-logo .wave-blue { fill: url(index.html#price-gradient-2); } .pricing-card:nth-child(4) .price-logo .wave-blue { fill: url(index.html#price-gradient-2); } .price-logo .wave-gray { fill: #cccccc; opacity: 0.9; } .price { margin: 2rem 0; color: var(--primary); text-shadow: 0 0 20px rgba(138, 43, 226, 0.4); } .currency { font-size: 2rem; vertical-align: top; margin-right: 0.2rem; } .amount { font-size: 4rem; font-weight: bold; line-height: 1; } .period { display: block; font-size: 1rem; opacity: 0.7; margin-top: 0.5rem; } .logo svg { filter: drop-shadow(0 0 10px rgba(138, 43, 226, 0.3)); transition: all 0.3s ease; } .logo svg:hover { filter: drop-shadow(0 0 15px rgba(138, 43, 226, 0.5)); transform: scale(1.05); } /* Style pour le bouton de contrôle de la musique */ .music-control { position: fixed; bottom: 20px; right: 20px; width: 40px; height: 40px; background: rgba(138, 43, 226, 0.1); border: 1px solid rgba(138, 43, 226, 0.2); border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 1000; transition: all 0.3s ease; } .music-control:hover { background: rgba(138, 43, 226, 0.2); transform: scale(1.1); } .music-control svg { width: 20px; height: 20px; fill: var(--primary); } /* Style pour le contrôle du volume */ .volume-control { position: fixed; top: 20px; right: 20px; z-index: 1000; display: flex; flex-direction: column; align-items: center; gap: 10px; } .volume-button { width: 40px; height: 40px; background: rgba(138, 43, 226, 0.1); border: 1px solid rgba(138, 43, 226, 0.2); border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .volume-button:hover { background: rgba(138, 43, 226, 0.2); transform: scale(1.1); } .volume-button svg { width: 20px; height: 20px; fill: var(--primary); } .volume-slider-container { height: 0; overflow: hidden; transition: height 0.3s ease; background: rgba(138, 43, 226, 0.05); border-radius: 10px; padding: 0 10px; border: 1px solid rgba(138, 43, 226, 0.2); } .volume-slider-container.active { height: 120px; padding: 10px; } .volume-slider { width: 100px; height: 4px; -webkit-appearance: none; background: linear-gradient(to right, var(--primary), var(--primary-light)); outline: none; border-radius: 2px; transform: rotate(-90deg) translateX(-50px); transform-origin: left; margin: 50px 0; } .volume-slider::-webkit-slider-thumb { -webkit-appearance: none; width: 15px; height: 15px; background: var(--accent); border-radius: 50%; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 15px var(--primary); } .volume-slider::-webkit-slider-thumb:hover { transform: scale(1.2); box-shadow: 0 0 20px rgba(138, 43, 226, 0.5); } .logo img { position: absolute; top: 10px; left: 10px; width: 100px; height: auto; z-index: 200; /* Assurez-vous que l'image est au-dessus des autres éléments */ } .logo { position: relative; /* Assurez-vous que le conteneur est positionné */ } .logo img { position: absolute; top: 10px; left: 10px; width: 50px; /* Ajustez la taille si nécessaire */ height: auto; z-index: 200; /* Assurez-vous que l'image est au-dessus des autres éléments */ animation: glow 2s ease-in-out infinite; /* Ajoutez l'animation ici */ } .logo:hover img { transform: scale(1.2); /* Zoom sur l'image au survol */ } .hover-text { position: absolute; top: 70px; /* Ajustez la position selon vos besoins */ left: 10px; /* Ajustez la position selon vos besoins */ color: rgba(138, 43, 226, 1); /* Couleur verte pour le texte */ font-size: 1.2rem; /* Taille de la police */ opacity: 0; /* Masquer le texte par défaut */ transition: opacity 0.3s ease; /* Transition pour l'apparition du texte */ z-index: 201; /* Assurez-vous que le texte est au-dessus de l'image */ white-space: nowrap; /* Assurez-vous que le texte est sur une seule ligne */ text-align: center; /* Centrer le texte */ text-shadow: 0 0 10px rgba(138, 43, 226, 0.8); /* Glow sur le texte */ } .logo:hover .hover-text { opacity: 1; /* Afficher le texte au survol */ } .green-text { color: rgba(138, 43, 226, 1); /* Couleur verte */ text-shadow: 0 0 10px rgba(1, 2, 1, 0.8); /* Glow sur le texte */ } /* Additional styles for modern UI and animations */ .fade-in { animation: fadeIn 2s ease-in-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .slide-up { animation: slideUp 1s ease-out; } @keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } /* Responsive Design Improvements */ @media (max-width: 768px) { .nav-links { flex-direction: column; gap: 1rem; } .hero h1 { font-size: 3rem; } .cta-button { padding: 0.5rem 2rem; } .pricing-cards { flex-direction: column; align-items: center; } .service-category { text-align: center; } } /* Glass morphism effect for cards and containers */ .glass-effect { background: var(--glass-bg); backdrop-filter: blur(12px); border: 1px solid var(--glass-border); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); border-radius: 15px; } /* Enhanced animations for elements */ @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } @keyframes glow-pulse { 0%, 100% { box-shadow: 0 0 20px rgba(138, 43, 226, 0.3); } 50% { box-shadow: 0 0 40px rgba(138, 43, 226, 0.6); } } @keyframes gradient-shift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Apply glass effect to cards */ .pricing-card, .feature-item, .service-category { background: var(--glass-bg); backdrop-filter: blur(12px); border: 1px solid var(--glass-border); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .pricing-card:hover { transform: translateY(-15px) scale(1.03); box-shadow: 0 15px 35px rgba(138, 43, 226, 0.3); } .feature-item { position: relative; overflow: hidden; } .feature-item::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(138, 43, 226, 0.2) 0%, transparent 60%); opacity: 0; z-index: -1; transition: opacity 0.5s ease; } .feature-item:hover::before { opacity: 1; animation: gradient-shift 10s ease infinite; } /* Glowing border effect on hover */ .service-item { position: relative; z-index: 1; transition: all 0.3s ease; } .service-item:hover { background: rgba(138, 43, 226, 0.1); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); transform: translateX(5px); } .service-item::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: -1; border-radius: 8px; background: linear-gradient(135deg, var(--primary-light), var(--primary-dark)); opacity: 0; transition: opacity 0.3s ease; } .service-item:hover::after { opacity: 0.2; } /* Neon button effect */ .cta-button { position: relative; overflow: hidden; color: #fff; font-weight: 600; letter-spacing: 1px; background: linear-gradient(45deg, var(--primary), var(--primary-dark)); border: none; box-shadow: 0 8px 25px rgba(138, 43, 226, 0.3); transition: all 0.4s ease; } .cta-button::before { content: ''; position: absolute; top: -2px; left: -2px; width: calc(100% + 4px); height: calc(100% + 4px); background: linear-gradient(45deg, var(--primary), var(--accent), var(--primary-dark), var(--primary-light)); z-index: -1; animation: gradient-shift 10s linear infinite; background-size: 400%; border-radius: 50px; opacity: 0; transition: opacity 0.3s ease; } .cta-button:hover { transform: translateY(-5px) scale(1.03); box-shadow: 0 15px 30px rgba(138, 43, 226, 0.5); } .cta-button:hover::before { opacity: 1; } /* 3D rotation effect for icons */ .crypto-icon, .mini-logo, .feature-icon { transition: transform 0.5s ease; transform-style: preserve-3d; } .crypto-icon:hover, .mini-logo:hover, .feature-icon:hover { transform: perspective(500px) rotateY(15deg); } /* Floating animation for logos */ .hero-logo, .price-logo { animation: float 6s ease-in-out infinite; } /* Text gradient effect */ .hero h1, .features-section h2, .pricing-section h2 { background: linear-gradient(to right, var(--primary), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: 0 5px 15px rgba(138, 43, 226, 0.3); } /* Dynamic cursor trail effect (optional if works with your site) */ .cursor-trail { position: fixed; width: 5px; height: 5px; background: var(--primary); border-radius: 50%; pointer-events: none; opacity: 0.7; z-index: 999; transform: translate(-50%, -50%); animation: fade-out 1s forwards; } @keyframes fade-out { to { opacity: 0; scale: 0.5; } } /* Enhanced volume slider with glow effect */ .volume-slider { background: linear-gradient(to right, var(--primary), var(--primary-light)); } .volume-slider::-webkit-slider-thumb { background: var(--accent); box-shadow: 0 0 15px var(--primary); } /* Scrollbar styling */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--darker); } ::-webkit-scrollbar-thumb { background: linear-gradient( to bottom, var(--primary), var(--primary-dark) ); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient( to bottom, var(--accent), var(--primary-light) ); } /* Loading animation for the page (can be used with JS) */ .loading-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--dark); z-index: 9999; display: flex; justify-content: center; align-items: center; } .loading-spinner { width: 50px; height: 50px; border: 5px solid rgba(138, 43, 226, 0.3); border-top: 5px solid var(--primary); border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Ultra-modern backdrop filters */ .backdrop-blur { backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); } .backdrop-contrast { backdrop-filter: contrast(1.1); -webkit-backdrop-filter: contrast(1.1); } /* Particle background effect */ .particle-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; overflow: hidden; } .particle { position: absolute; border-radius: 50%; background: linear-gradient(135deg, var(--primary-light), var(--primary-dark)); opacity: 0.3; animation: float-particle 30s infinite ease-in-out; } @keyframes float-particle { 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.3; } 25% { transform: translate(100px, -150px) scale(1.2); opacity: 0.4; } 50% { transform: translate(200px, 100px) scale(0.8); opacity: 0.2; } 75% { transform: translate(-100px, 200px) scale(1.1); opacity: 0.35; } } /* Neumorphic design elements */ .neumorphic { background: var(--elevation-1); border-radius: 15px; box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light); border: 1px solid rgba(255, 255, 255, 0.05); transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1); } .neumorphic:hover { box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light), 0 0 20px rgba(138, 43, 226, 0.3); transform: translateY(-5px); } .neumorphic-inset { background: var(--elevation-1); border-radius: 15px; box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.5), inset -5px -5px 10px rgba(30, 30, 45, 0.3); border: 1px solid rgba(255, 255, 255, 0.05); } /* Modern liquid button effect */ .liquid-button { position: relative; z-index: 1; overflow: hidden; padding: 1rem 3rem; border-radius: 50px; background: linear-gradient(90deg, var(--primary), var(--accent), var(--primary)); background-size: 200% 100%; color: white; font-weight: 600; transition: all 0.5s cubic-bezier(0.2, 0.8, 0.2, 1); } .liquid-button:before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 0; height: 0; background: rgba(255, 255, 255, 0.2); border-radius: 50%; transition: width 0.8s ease, height 0.8s ease; z-index: -1; } .liquid-button:hover { background-position: 100% 0; transform: translateY(-3px); box-shadow: 0 10px 25px rgba(138, 43, 226, 0.5); } .liquid-button:hover:before { width: 300px; height: 300px; } /* Apply modern liquid button effect to CTA buttons */ .cta-button { position: relative; z-index: 1; overflow: hidden; padding: 1rem 3rem; border-radius: 50px; background: linear-gradient(90deg, var(--primary), var(--accent), var(--primary)); background-size: 200% 100%; color: white; font-weight: 600; transition: all 0.5s cubic-bezier(0.2, 0.8, 0.2, 1); border: none; text-decoration: none; display: inline-block; } .cta-button:before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 0; height: 0; background: rgba(255, 255, 255, 0.2); border-radius: 50%; transition: width 0.8s ease, height 0.8s ease; z-index: -1; } .cta-button:hover { background-position: 100% 0; transform: translateY(-5px); box-shadow: 0 15px 30px rgba(138, 43, 226, 0.5); } .cta-button:hover:before { width: 300px; height: 300px; } /* Advanced 3D card hover effect */ .card-3d { position: relative; transform-style: preserve-3d; transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1); } .card-3d:hover { transform: perspective(1000px) rotateX(5deg) rotateY(5deg) scale(1.05); } .card-3d::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(138, 43, 226, 0.3) 0%, rgba(0, 0, 0, 0) 50%, rgba(255, 54, 179, 0.3) 100%); opacity: 0; transition: opacity 0.5s ease; pointer-events: none; border-radius: inherit; } .card-3d:hover::after { opacity: 1; } /* Apply 3D card effect to pricing cards */ .pricing-card { position: relative; transform-style: preserve-3d; transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1); background: var(--elevation-1); border-radius: 20px; box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light); border: 1px solid rgba(255, 255, 255, 0.05); overflow: hidden; } .pricing-card:hover { transform: perspective(1000px) rotateX(5deg) rotateY(5deg) scale(1.05); box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light), 0 15px 35px rgba(138, 43, 226, 0.3); } .pricing-card::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(138, 43, 226, 0.2) 0%, rgba(0, 0, 0, 0) 50%, rgba(255, 54, 179, 0.2) 100%); opacity: 0; transition: opacity 0.5s ease; pointer-events: none; border-radius: inherit; } .pricing-card:hover::after { opacity: 1; } /* Gradient text animations */ .gradient-text { background-image: linear-gradient( 90deg, var(--primary) 0%, var(--accent) 50%, var(--primary) 100% ); background-size: 200% auto; background-clip: text; -webkit-background-clip: text; color: transparent; animation: gradient-shift 8s linear infinite; } /* Modern glowing highlight text */ .highlight-text { position: relative; display: inline-block; } .highlight-text::after { content: ''; position: absolute; bottom: 0; left: -5px; width: calc(100% + 10px); height: 30%; background: linear-gradient(90deg, var(--accent-secondary), var(--primary)); opacity: 0.3; z-index: -1; border-radius: 3px; transition: height 0.3s ease, opacity 0.3s ease; } .highlight-text:hover::after { height: 100%; opacity: 0.2; } /* Add highlighting effect to section titles */ h2, h3 { position: relative; display: inline-block; } /* Modern hover glow to images and icons */ .feature-icon, .mini-logo, .crypto-icon svg { filter: drop-shadow(0 0 10px rgba(138, 43, 226, 0.15)); transition: filter 0.5s cubic-bezier(0.19, 1, 0.22, 1), transform 0.5s cubic-bezier(0.19, 1, 0.22, 1); } .feature-icon:hover, .mini-logo:hover, .crypto-icon:hover svg { filter: drop-shadow(0 0 20px rgba(138, 43, 226, 0.75)); transform: translateY(-5px) scale(1.1); } /* Advanced gradient borders */ .gradient-border { position: relative; border-radius: 15px; background: var(--elevation-1); z-index: 1; } .gradient-border::before { content: ""; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; background: linear-gradient( 45deg, var(--primary), var(--accent), var(--accent-secondary), var(--primary) ); z-index: -1; border-radius: 17px; background-size: 400% 400%; animation: gradient-shift 15s ease infinite; opacity: 0; transition: opacity 0.3s ease; } .gradient-border:hover::before { opacity: 1; } /* Apply gradient border to service items */ .service-item { position: relative; border-radius: 15px; background: var(--elevation-1); z-index: 1; transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); } .service-item::before { content: ""; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; background: linear-gradient( 45deg, var(--primary), var(--accent), var(--accent-secondary), var(--primary) ); z-index: -1; border-radius: 17px; background-size: 400% 400%; animation: gradient-shift 15s ease infinite; opacity: 0; transition: opacity 0.3s ease; } .service-item:hover { transform: translateX(5px) translateY(-5px); box-shadow: var(--neumorphic-shadow-dark); } .service-item:hover::before { opacity: 1; } /* Customized scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--elevation-1); } ::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 4px; background: linear-gradient( to bottom, var(--primary-light), var(--primary), var(--primary-dark) ); } ::-webkit-scrollbar-thumb:hover { background: linear-gradient( to bottom, var(--accent), var(--primary-light) ); } /* Add subtle noise texture */ body::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.05'/%3E%3C/svg%3E"); pointer-events: none; z-index: -1; opacity: 0.02; } /* Animations de texte pour tout le site */ .gradient-text, h1, h2, .footer-brand h2, .pricing-section h2, .features-section h2 { background-image: linear-gradient( 90deg, var(--primary) 0%, var(--accent) 50%, var(--primary) 100% ); background-size: 200% auto; background-clip: text; -webkit-background-clip: text; color: transparent; animation: gradient-shift 8s linear infinite; text-shadow: 0 5px 15px rgba(138, 43, 226, 0.3); } /* Animation spéciale pour h3 */ h3, .feature-content h3, .pricing-card h3, .service-category h3 { background-image: linear-gradient( 90deg, var(--primary-light) 0%, var(--accent-secondary) 50%, var(--primary-light) 100% ); background-size: 200% auto; background-clip: text; -webkit-background-clip: text; color: transparent; animation: gradient-shift 10s linear infinite; } /* Animation au survol des liens */ .nav-links a, .footer-links a, .cta-button, .login-text a { position: relative; transition: all 0.3s ease; } .nav-links a:hover, .footer-links a:hover, .login-text a:hover { transform: translateY(-3px); background-image: linear-gradient( 90deg, var(--primary-light) 0%, var(--accent) 100% ); background-clip: text; -webkit-background-clip: text; color: transparent; } /* Animation de texte flottant */ .floating-text, .hero p, .features-subtitle, .pricing-subtitle { animation: float-text 5s ease-in-out infinite; } @keyframes float-text { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } } /* Animation d'apparition du texte */ .fade-in-text { opacity: 0; animation: fadeInText 1s ease-out forwards; } @keyframes fadeInText { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } /* Appliquer l'animation fade-in à tous les éléments de texte au chargement */ p, li, .service-item span, .pricing-period, .price, .crypto-icon span { opacity: 0; animation: fadeInText 1s ease-out forwards; } /* Délai d'animation pour créer un effet en cascade */ p:nth-child(1) { animation-delay: 0.1s; } p:nth-child(2) { animation-delay: 0.2s; } p:nth-child(3) { animation-delay: 0.3s; } li:nth-child(1) { animation-delay: 0.1s; } li:nth-child(2) { animation-delay: 0.2s; } li:nth-child(3) { animation-delay: 0.3s; } li:nth-child(4) { animation-delay: 0.4s; } li:nth-child(5) { animation-delay: 0.5s; } /* Animation de surlignage au survol */ .highlight-text-hover, .feature-content p, .service-item span, .footer-brand p { position: relative; transition: all 0.3s ease; } .highlight-text-hover:hover, .feature-content p:hover, .service-item span:hover, .footer-brand p:hover { background: linear-gradient(120deg, var(--primary-light) 0%, var(--accent) 100%); background-clip: text; -webkit-background-clip: text; color: transparent; } /* Animation de pulse pour les prix */ .price .amount { animation: pulse-text 3s infinite; } @keyframes pulse-text { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } /* Animation de typing pour les textes importants */ .typing-text, .hero h1 { overflow: hidden; border-right: 2px solid var(--primary); white-space: nowrap; margin: 0 auto; animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite; } @keyframes typing { from { width: 0 } to { width: 100% } } @keyframes blink-caret { from, to { border-color: transparent } 50% { border-color: var(--primary) } } /* Animation pour le text-shadow */ .glow-text, .warning-text, .price, .nav-links a.active { animation: text-glow 3s ease-in-out infinite; } @keyframes text-glow { 0%, 100% { text-shadow: 0 0 10px rgba(138, 43, 226, 0.3); } 50% { text-shadow: 0 0 20px rgba(255, 54, 179, 0.5); } }