/* KSTropicx Custom Animations & Utilities */ /* Floating animation for tropical elements */ @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-20px) rotate(5deg); } } .animate-float { animation: float 3s ease-in-out infinite; } .delay-100 { animation-delay: 1s; } .delay-200 { animation-delay: 2s; } /* Smooth scrolling */ html { scroll-behavior: smooth; } /* Mobile menu transition */ .mobile-menu { transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out; } /* Custom scrollbar for webkit */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #111; } ::-webkit-scrollbar-thumb { background: #FF3D7F; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #FFD700; } /* Image loading placeholder */ .img-loading { background: linear-gradient(90deg, #1a1a1a 25%, #2a2a2a 50%, #1a1a1a 75%); background-size: 200% 100%; animation: loading 1.5s infinite; } @keyframes loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* Focus visible for accessibility */ button:focus-visible, a:focus-visible { outline: 2px solid #00E5D2; outline-offset: 2px; } /* Reduced motion preference */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }