/* File: src/styles/Home.module.css */ .main { width: 100%; overflow-x: hidden; background-color: #fafafa; } .container { max-width: 1200px; margin: 0 auto; padding: 0 16px; position: relative; } .sectionHeader { text-align: center; margin-bottom: 60px; } .sectionTitle { font-size: 2.5rem !important; font-weight: 700 !important; margin-bottom: 16px !important; background: linear-gradient(135deg, #7400b8 0%, #5e60ce 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; position: relative; } .sectionTitle::after { content: ""; position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%); width: 60px; height: 4px; background: linear-gradient(90deg, #7400b8, #6930c3); border-radius: 2px; } .sectionSubtitle { font-size: 1.1rem !important; color: #666 !important; max-width: 600px; margin: 0 auto !important; line-height: 1.6 !important; } /* Services Section */ .servicesSection { padding: 100px 0; background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); position: relative; overflow: hidden; } .servicesSection::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml,'); opacity: 0.3; } .servicesGrid { position: relative; z-index: 1; } .serviceCard { height: 100%; border-radius: 16px !important; overflow: hidden; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); border: none !important; background: white; position: relative; } .serviceCard::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #7400b8, #6930c3); transform: scaleX(0); transition: transform 0.3s ease; } .serviceCard:hover::before { transform: scaleX(1); } .serviceCard:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(116, 0, 184, 0.15); } .serviceIcon { width: 60px; height: 60px; border-radius: 16px; background: linear-gradient(135deg, #7400b8 0%, #6930c3 100%); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; font-size: 24px; color: white; transition: all 0.3s ease; } .serviceCard:hover .serviceIcon { transform: scale(1.1) rotate(5deg); box-shadow: 0 8px 20px rgba(116, 0, 184, 0.3); } .serviceTitle { font-size: 1.4rem !important; font-weight: 600 !important; margin-bottom: 12px !important; color: #333 !important; } .serviceDescription { color: #666 !important; line-height: 1.6 !important; margin-bottom: 20px !important; } .serviceFeatures { list-style: none; padding: 0; margin: 0; } .serviceFeatures li { position: relative; padding: 8px 0 8px 20px; color: #555; font-size: 0.95rem; } .serviceFeatures li::before { content: "✓"; position: absolute; left: 0; top: 8px; color: #7400b8; font-weight: bold; font-size: 12px; } /* Statistics Section */ .statisticsSection { padding: 100px 0; background: linear-gradient(135deg, #7400b8 0%, #5e60ce 100%); position: relative; overflow: hidden; color: white; } .statisticsSection::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml,'); opacity: 0.3; } .statisticsSection .sectionTitle { color: white !important; -webkit-text-fill-color: white !important; background: none !important; } .statisticsSection .sectionSubtitle { color: rgba(255, 255, 255, 0.8) !important; } .statsGrid { position: relative; z-index: 1; } .statCard { text-align: center; padding: 30px 20px; border-radius: 16px; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); transition: all 0.3s ease; } .statCard:hover { transform: translateY(-5px); background: rgba(255, 255, 255, 0.15); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); } .statIcon { width: 50px; height: 50px; border-radius: 12px; background: rgba(255, 255, 255, 0.2); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; font-size: 20px; color: white; transition: all 0.3s ease; } .statCard:hover .statIcon { transform: scale(1.1); background: rgba(255, 255, 255, 0.3); } .statistic { color: white !important; } .statistic :global(.ant-statistic-title) { color: rgba(255, 255, 255, 0.8) !important; font-size: 0.9rem !important; margin-bottom: 8px !important; } .statistic :global(.ant-statistic-content) { color: white !important; } .statistic :global(.ant-statistic-content-value) { color: white !important; font-size: 2.5rem !important; font-weight: 700 !important; } .statistic :global(.ant-statistic-content-suffix) { color: rgba(255, 255, 255, 0.8) !important; font-size: 1.5rem !important; } .loaderContainer { height: 100vh; width: 100vw; display: flex; justify-content: center; align-items: center; background: linear-gradient(135deg, #0F0525 0%, #1a0b3a 50%, #2A0B45 100%); position: relative; overflow: hidden; } .loaderBackground { position: absolute; inset: 0; overflow: hidden; } .loaderOrb1 { position: absolute; top: -200px; left: -200px; width: 400px; height: 400px; background: linear-gradient(135deg, #8b5cf6 0%, #ec4899 100%); border-radius: 50%; filter: blur(60px); animation: float 8s ease-in-out infinite; opacity: 0.3; } .loaderOrb2 { position: absolute; top: 50%; right: -150px; width: 300px; height: 300px; background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%); border-radius: 50%; filter: blur(50px); animation: float 6s ease-in-out infinite reverse; opacity: 0.2; } .loaderOrb3 { position: absolute; bottom: -100px; left: 50%; width: 250px; height: 250px; background: linear-gradient(135deg, #ec4899 0%, #f97316 100%); border-radius: 50%; filter: blur(40px); animation: float 10s ease-in-out infinite; opacity: 0.25; } @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-30px) rotate(180deg); } } .loaderContent { position: relative; z-index: 10; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 40px; } .logoContainer { display: flex; flex-direction: column; align-items: center; gap: 20px; } .logoIcon { width: 80px; height: 80px; border-radius: 20px; background: linear-gradient(135deg, #8b5cf6 0%, #ec4899 100%); display: flex; align-items: center; justify-content: center; position: relative; animation: logoPulse 2s ease-in-out infinite; } .logoInner { width: 40px; height: 40px; border-radius: 10px; background: white; animation: logoRotate 3s linear infinite; } @keyframes logoPulse { 0%, 100% { transform: scale(1); box-shadow: 0 0 30px rgba(139, 92, 246, 0.5); } 50% { transform: scale(1.05); box-shadow: 0 0 50px rgba(139, 92, 246, 0.8); } } @keyframes logoRotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .logoText { display: flex; flex-direction: column; align-items: center; gap: 4px; } .logoTitle { font-size: 2rem; font-weight: 700; color: white; letter-spacing: 2px; } .logoSubtitle { font-size: 1.2rem; font-weight: 500; color: #a855f7; letter-spacing: 1px; } .loaderAnimation { display: flex; justify-content: center; align-items: center; } .loaderDots { display: flex; gap: 8px; } .dot { width: 12px; height: 12px; border-radius: 50%; background: linear-gradient(135deg, #8b5cf6 0%, #ec4899 100%); animation: dotBounce 1.4s ease-in-out infinite both; } .dot:nth-child(1) { animation-delay: -0.32s; } .dot:nth-child(2) { animation-delay: -0.16s; } .dot:nth-child(3) { animation-delay: 0s; } @keyframes dotBounce { 0%, 80%, 100% { transform: scale(0.8); opacity: 0.5; } 40% { transform: scale(1); opacity: 1; } } .loaderText { display: flex; flex-direction: column; align-items: center; gap: 8px; } .loaderTitle { color: white !important; font-size: 1.5rem !important; font-weight: 600 !important; margin: 0 !important; animation: textFade 2s ease-in-out infinite; } .loaderSubtitle { color: #cbd5e1; font-size: 0.95rem; margin: 0; opacity: 0.8; animation: textFade 2s ease-in-out infinite 0.5s; } @keyframes textFade { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } } .section { padding: 80px 16px; position: relative; overflow: hidden; } /* Enhanced Responsive Design */ @media (max-width: 768px) { .section { padding: 60px 16px; } .servicesSection, .statisticsSection { padding: 60px 0; } .sectionTitle { font-size: 2rem !important; } .serviceCard { margin-bottom: 20px; } .statCard { padding: 20px 15px; margin-bottom: 20px; } .statistic :global(.ant-statistic-content-value) { font-size: 2rem !important; } .loaderContent { gap: 30px; } .logoIcon { width: 70px; height: 70px; } .logoInner { width: 35px; height: 35px; } .logoTitle { font-size: 1.8rem; } .logoSubtitle { font-size: 1.1rem; } .loaderTitle { font-size: 1.3rem !important; } .loaderSubtitle { font-size: 0.9rem; } .dot { width: 10px; height: 10px; } } @media (max-width: 480px) { .servicesSection, .statisticsSection { padding: 40px 0; } .sectionTitle { font-size: 1.8rem !important; } .sectionSubtitle { font-size: 1rem !important; } .serviceIcon { width: 50px; height: 50px; font-size: 20px; } .serviceTitle { font-size: 1.2rem !important; } .statCard { padding: 15px 10px; } .statIcon { width: 40px; height: 40px; font-size: 16px; } .statistic :global(.ant-statistic-content-value) { font-size: 1.5rem !important; } .loaderContent { gap: 25px; } .logoIcon { width: 60px; height: 60px; } .logoInner { width: 30px; height: 30px; } .logoTitle { font-size: 1.6rem; } .logoSubtitle { font-size: 1rem; } .loaderTitle { font-size: 1.2rem !important; } .loaderSubtitle { font-size: 0.85rem; } .dot { width: 8px; height: 8px; } }