/* Custom CSS */ .bg-grid-pattern { background-image: linear-gradient(rgba(124, 58, 237, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(124, 58, 237, 0.1) 1px, transparent 1px); background-size: 50px 50px; } /* Scroll animations */ .animate-on-scroll { opacity: 0; transform: translateY(20px); transition: all 0.6s ease-out; } .animate-on-scroll.animated { opacity: 1; transform: translateY(0); } /* Service card hover effect */ .service-card { position: relative; overflow: hidden; } .service-card::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(124, 58, 237, 0.1), transparent); transition: left 0.6s; } .service-card:hover::before { left: 100%; } /* Engine card hover effect */ .engine-card { perspective: 1000px; } /* Engine detail cards */ .engine-detail-card { transition: all 0.3s ease; } .engine-detail-card:hover { transform: translateY(-5px); } /* Table responsive styles */ @media (max-width: 768px) { .overflow-x-auto { -webkit-overflow-scrolling: touch; } table { min-width: 600px; } } /* Badge styles */ .badge { display: inline-flex; align-items: center; padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.025em; } /* Smooth transitions */ * { transition: color 0.3s ease, background-color 0.3s ease; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: linear-gradient(to bottom, #7c3aed, #10b981); border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(to bottom, #6d28d9, #059669); } /* Dark mode scrollbar */ .dark ::-webkit-scrollbar-track { background: #1f2937; } /* Loading animation */ @keyframes shimmer { 0% { background-position: -1000px 0; } 100% { background-position: 1000px 0; } } .shimmer { animation: shimmer 2s infinite; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); background-size: 1000px 100%; } /* Focus states */ button:focus, a:focus, input:focus, textarea:focus, select:focus { outline: 2px solid #7c3aed; outline-offset: 2px; } /* Responsive text sizing */ @media (max-width: 640px) { h1 { font-size: 2.5rem !important; line-height: 1.2; } h2 { font-size: 2rem !important; line-height: 1.3; } }