@tailwind base; @tailwind components; @tailwind utilities; /* Variables CSS pour les polices */ :root { --font-heading: 'Dela Gothic One', sans-serif; --font-body: 'Roboto', sans-serif; } /* Parallax animations */ @keyframes parallax-slow { 0% { transform: translateY(0px); } 100% { transform: translateY(-50px); } } @keyframes parallax-medium { 0% { transform: translateY(0px); } 100% { transform: translateY(-80px); } } @keyframes parallax-fast { 0% { transform: translateY(0px); } 100% { transform: translateY(-120px); } } @keyframes parallax-very-slow { 0% { transform: translateY(0px); } 100% { transform: translateY(-20px); } } /* Floating animations with different speeds */ @keyframes float-slow { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-20px) rotate(5deg); } } @keyframes float-medium { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-15px) rotate(-3deg); } } @keyframes float-fast { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-10px) rotate(3deg); } } @keyframes float-very-slow { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-30px) rotate(-2deg); } } /* Animations pour les éléments flottants */ @keyframes float-0 { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-10px) rotate(2deg); } } @keyframes float-1 { 0%, 100% { transform: translateY(0px) rotate(0deg); } 33% { transform: translateY(-8px) rotate(-1deg); } 66% { transform: translateY(-15px) rotate(1deg); } } @keyframes float-2 { 0%, 100% { transform: translateY(0px) rotate(0deg); } 25% { transform: translateY(-12px) rotate(1deg); } 75% { transform: translateY(-6px) rotate(-2deg); } } /* Animation pour l'élément principal du hero */ @keyframes gentle-float { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-15px) rotate(1deg); } } .animate-gentle-float { animation: gentle-float 6s ease-in-out infinite; } /* Effet de lueur pour les éléments techniques */ @keyframes glow-pulse { 0%, 100% { text-shadow: 0 0 5px rgba(168, 218, 255, 0.3), 0 0 10px rgba(168, 218, 255, 0.2), 0 0 15px rgba(168, 218, 255, 0.1); } 50% { text-shadow: 0 0 10px rgba(168, 218, 255, 0.4), 0 0 20px rgba(168, 218, 255, 0.3), 0 0 30px rgba(168, 218, 255, 0.2); } } /* Animation des lignes de connexion */ @keyframes data-flow { 0% { stroke-dasharray: 0, 100; } 50% { stroke-dasharray: 50, 100; } 100% { stroke-dasharray: 100, 100; } } /* Responsive pour les animations */ @media (prefers-reduced-motion: reduce) { .animate-gentle-float, .animate-ping, .animate-pulse { animation: none; } } /* Apply animations */ .animate-parallax-slow { animation: parallax-slow 20s ease-in-out infinite; } .animate-parallax-medium { animation: parallax-medium 15s ease-in-out infinite; } .animate-parallax-fast { animation: parallax-fast 10s ease-in-out infinite; } .animate-parallax-very-slow { animation: parallax-very-slow 30s ease-in-out infinite; } .animate-float-slow { animation: float-slow 8s ease-in-out infinite; } .animate-float-medium { animation: float-medium 6s ease-in-out infinite; } .animate-float-fast { animation: float-fast 4s ease-in-out infinite; } .animate-float-very-slow { animation: float-very-slow 12s ease-in-out infinite; } /* Amélioration du scroll */ html { scroll-behavior: smooth; } /* Empêcher le scroll horizontal global */ body { overflow-x: hidden; } /* Styles pour les popups */ .popup-content { scrollbar-width: thin; scrollbar-color: rgba(31, 93, 137, 0.3) transparent; } .popup-content::-webkit-scrollbar { width: 6px; } .popup-content::-webkit-scrollbar-track { background: transparent; } .popup-content::-webkit-scrollbar-thumb { background: rgba(31, 93, 137, 0.3); border-radius: 3px; } .popup-content::-webkit-scrollbar-thumb:hover { background: rgba(31, 93, 137, 0.5); } /* Animation pour le bouton scroll to top */ @keyframes bounce-up { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-4px); } } .scroll-to-top:hover { animation: bounce-up 0.6s ease-in-out; }