.hero { position: relative; min-height: 100vh; display: flex; align-items: center; padding: 8rem 0 6rem; overflow: hidden; background: linear-gradient(to bottom, rgba(15, 23, 42, 0.3), rgba(15, 23, 42, 0.9)), url('/hero-custom.png'); background-size: cover; background-position: center; background-repeat: no-repeat; /* Custom user-uploaded background */ color: white; } .hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 15% 50%, rgba(236, 72, 153, 0.1), transparent 25%), radial-gradient(circle at 85% 30%, rgba(59, 130, 246, 0.1), transparent 25%); z-index: 0; pointer-events: none; } .canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; opacity: 0.4; } /* Floating gradient orbs - refined */ .gradientOrb1, .gradientOrb2, .gradientOrb3 { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.3; z-index: 0; pointer-events: none; } .gradientOrb1 { width: 600px; height: 600px; background: radial-gradient(circle, rgba(236, 72, 153, 0.3), transparent 70%); top: -20%; left: -10%; animation: floatOrb 25s ease-in-out infinite alternate; } .gradientOrb2 { width: 500px; height: 500px; background: radial-gradient(circle, rgba(59, 130, 246, 0.3), transparent 70%); bottom: -10%; right: -10%; animation: floatOrb 20s ease-in-out infinite alternate-reverse; } .gradientOrb3 { width: 400px; height: 400px; background: radial-gradient(circle, rgba(139, 92, 246, 0.2), transparent 70%); top: 40%; left: 60%; animation: floatOrb 22s ease-in-out infinite alternate; } @keyframes floatOrb { 0% { transform: translate(0, 0); } 100% { transform: translate(30px, -30px); } } .heroContent { display: grid; grid-template-columns: 1fr; gap: 4rem; align-items: center; position: relative; z-index: 2; max-width: 1280px; margin: 0 auto; padding: 0 2rem; } @media (min-width: 1024px) { .heroContent { grid-template-columns: 1.1fr 0.9fr; gap: 6rem; } } .textContent { display: flex; flex-direction: column; justify-content: center; animation: slideInUp 1s ease-out; } /* Animated badge - refined */ .badge { position: relative; display: inline-flex; align-items: center; gap: 0.75rem; padding: 0.5rem 1.25rem; background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 9999px; font-size: 0.875rem; font-weight: 500; margin-bottom: 2.5rem; border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); align-self: flex-start; color: rgba(255, 255, 255, 0.9); transition: all 0.3s ease; } .badge:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.15); transform: translateY(-1px); } .badgePulse { position: absolute; inset: 0; border-radius: inherit; box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.4); animation: pulseShadow 2s infinite; } @keyframes pulseShadow { 0% { box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(236, 72, 153, 0); } 100% { box-shadow: 0 0 0 0 rgba(236, 72, 153, 0); } } .title { font-size: clamp(3rem, 5vw, 4.5rem); line-height: 1.1; margin-bottom: 1.5rem; color: white; font-weight: 800; letter-spacing: -0.02em; } .typingText { background: linear-gradient(to right, #ffffff, #e2e8f0); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .cursor { display: inline-block; width: 3px; height: 1em; background-color: #3b82f6; margin-left: 4px; vertical-align: middle; animation: blink 1s step-end infinite; } @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } .subtitle { font-size: clamp(1.125rem, 2vw, 1.25rem); line-height: 1.6; margin-bottom: 3rem; color: rgba(255, 255, 255, 0.6); max-width: 580px; } .ctaButtons { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-bottom: 4rem; } /* Premium Buttons */ .primaryCta { position: relative; padding: 1rem 2rem; background: linear-gradient(135deg, #ec4899, #8b5cf6); color: white; border-radius: 12px; font-weight: 600; font-size: 1rem; display: flex; align-items: center; gap: 0.75rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 10px 30px -10px rgba(236, 72, 153, 0.4); overflow: hidden; } .primaryCta:hover { transform: translateY(-2px); box-shadow: 0 20px 40px -15px rgba(236, 72, 153, 0.5); } .buttonGlow { position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent); transform: skewX(-20deg); transition: left 0.5s; } .primaryCta:hover .buttonGlow { left: 150%; transition: left 0.7s; } .secondaryCta { padding: 1rem 2rem; background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); color: white; border-radius: 12px; font-weight: 600; display: flex; align-items: center; gap: 0.75rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .secondaryCta:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.2); transform: translateY(-2px); } .arrow { transition: transform 0.3s ease; } .primaryCta:hover .arrow { transform: translateX(4px); } /* Trust badges - cleaner */ .trustBadges { display: flex; gap: 4rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.08); } .trustBadge { display: flex; flex-direction: column; } .trustValue { font-size: 1.75rem; font-weight: 700; color: white; line-height: 1.2; margin-bottom: 0.25rem; } .trustLabel { font-size: 0.875rem; color: rgba(255, 255, 255, 0.5); font-weight: 400; } /* Image Content / Dashboard Preview */ .imageContent { position: relative; perspective: 1200px; display: flex; justify-content: center; align-items: center; } .dashboardPreview { position: relative; background: rgba(30, 41, 59, 0.4); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-radius: 20px; padding: 2.5rem; border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05) inset; transform-style: preserve-3d; transform: rotateY(-8deg) rotateX(4deg); transition: transform 0.5s ease; animation: floatCard 8s ease-in-out infinite; max-width: 500px; width: 100%; } .dashboardPreview:hover { transform: rotateY(-4deg) rotateX(2deg) scale(1.02); } @keyframes floatCard { 0%, 100% { transform: rotateY(-8deg) rotateX(4deg) translateY(0); } 50% { transform: rotateY(-8deg) rotateX(4deg) translateY(-15px); } } /* Floating icons - clearer */ .floatingIcon { position: absolute; width: 60px; height: 60px; background: rgba(30, 41, 59, 0.6); backdrop-filter: blur(12px); border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 1.75rem; border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3); z-index: 10; animation: floatIcon 6s ease-in-out infinite; } .icon1 { top: -20px; left: -20px; animation-delay: 0s; } .icon2 { top: 30%; right: -30px; animation-delay: 2s; } .icon3 { bottom: -15px; left: 20%; animation-delay: 4s; } @keyframes floatIcon { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } } .previewHeader { display: flex; align-items: center; gap: 1rem; margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.08); } .previewDots { display: flex; gap: 0.5rem; } .previewDots span { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, 0.15); } .previewTitle { font-size: 0.875rem; color: rgba(255, 255, 255, 0.5); flex-grow: 1; text-align: center; letter-spacing: 0.5px; } .previewBody { display: grid; gap: 1.5rem; } .previewCard { background: rgba(255, 255, 255, 0.02); border-radius: 12px; padding: 1.5rem; border: 1px solid rgba(255, 255, 255, 0.05); } .cardHeader { display: flex; align-items: center; gap: 0.75rem; color: rgba(255, 255, 255, 0.8); margin-bottom: 1.25rem; font-weight: 500; font-size: 0.95rem; } .chartBar { height: 6px; background: rgba(255, 255, 255, 0.05); border-radius: 4px; position: relative; overflow: hidden; margin-bottom: 1rem; } .chartBar::after { content: ''; position: absolute; top: 0; left: 0; height: 100%; width: var(--progress, 0%); background: linear-gradient(90deg, #ec4899, #8b5cf6); border-radius: 4px; animation: fillBar 1.5s ease-out forwards; } .chartBar:nth-child(1) { --progress: 75%; } .chartBar:nth-child(2) { --progress: 45%; } .chartBar:nth-child(3) { --progress: 90%; } .scheduleItem { height: 12px; background: rgba(255, 255, 255, 0.05); border-radius: 4px; margin-bottom: 12px; } @keyframes fillBar { from { width: 0; } to { width: var(--progress); } } /* Scroll indicator - minimalist */ .scrollIndicator { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 0.75rem; opacity: 0.5; animation: fadeBounce 2s ease-in-out infinite; pointer-events: none; } .scrollIndicator span { font-size: 0.75rem; letter-spacing: 1px; text-transform: uppercase; } .mouse { width: 20px; height: 32px; border: 2px solid white; border-radius: 12px; position: relative; } .mouseWheel { width: 2px; height: 6px; background: white; position: absolute; top: 6px; left: 50%; transform: translateX(-50%); border-radius: 1px; } @keyframes fadeBounce { 0%, 100% { opacity: 0.5; transform: translate(-50%, 0); } 50% { opacity: 0.8; transform: translate(-50%, -5px); } } /* Morphing shapes - softer, blended */ .morphingShape1, .morphingShape2 { position: absolute; border-radius: 50%; filter: blur(100px); opacity: 0.15; z-index: 0; } .morphingShape1 { width: 600px; height: 600px; background: #3b82f6; top: -10%; right: -10%; animation: morph 20s infinite alternate; } .morphingShape2 { width: 500px; height: 500px; background: #ec4899; bottom: -10%; left: -10%; animation: morph 25s infinite alternate-reverse; } /* Slide animations */ @keyframes slideInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } /* Responsive adjustments */ @media (max-width: 1024px) { .hero { padding-top: 6rem; } .title { font-size: 3rem; } .imageContent { display: none; /* Hide 3D element on small screens to reduce clutter */ } .heroContent { text-align: center; width: 100%; display: flex; flex-direction: column; align-items: center; } .textContent { align-items: center; } .badge { margin-bottom: 2rem; align-self: center; } .ctaButtons { justify-content: center; } .trustBadges { justify-content: center; border-top: none; padding-top: 0; gap: 2rem; } .trustBadge { align-items: center; } }