.connectSection { padding: 6rem 0; position: relative; overflow: hidden; background: linear-gradient(180deg, var(--background) 0%, rgba(236, 72, 153, 0.02) 50%, var(--background) 100%); } /* Animated Background */ .backgroundAnimation { position: absolute; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; z-index: 0; } .floatingOrb1, .floatingOrb2, .floatingOrb3 { position: absolute; border-radius: 50%; filter: blur(100px); opacity: 0.3; animation: floatOrb 20s ease-in-out infinite; } .floatingOrb1 { width: 600px; height: 600px; background: radial-gradient(circle, rgba(236, 72, 153, 0.4), transparent); top: -20%; left: -10%; animation-delay: 0s; } .floatingOrb2 { width: 500px; height: 500px; background: radial-gradient(circle, rgba(59, 130, 246, 0.4), transparent); bottom: -20%; right: -10%; animation-delay: 7s; } .floatingOrb3 { width: 400px; height: 400px; background: radial-gradient(circle, rgba(168, 85, 247, 0.3), transparent); top: 50%; left: 50%; transform: translate(-50%, -50%); animation-delay: 14s; } @keyframes floatOrb { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(100px, -100px) scale(1.1); } 66% { transform: translate(-80px, 80px) scale(0.9); } } /* Header */ .header { text-align: center; margin-bottom: 4rem; position: relative; z-index: 1; } .badge { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1.5rem; background: linear-gradient(135deg, rgba(236, 72, 153, 0.1), rgba(59, 130, 246, 0.1)); border: 1px solid rgba(236, 72, 153, 0.2); border-radius: 50px; font-size: 0.9rem; font-weight: 600; color: var(--primary); margin-bottom: 1.5rem; position: relative; overflow: hidden; animation: badgeFloat 3s ease-in-out infinite; } @keyframes badgeFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } } .badgeIcon { font-size: 1.2rem; animation: rotate 4s linear infinite; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .badgePulse { position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); animation: badgeShine 3s ease-in-out infinite; } @keyframes badgeShine { 0% { left: -100%; } 50%, 100% { left: 100%; } } .title { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 800; margin-bottom: 1.5rem; line-height: 1.2; color: var(--text-primary); } .highlight { background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; position: relative; display: inline-block; } .subtitle { font-size: 1.25rem; color: var(--text-secondary); max-width: 700px; margin: 0 auto; line-height: 1.7; } /* Platforms Container */ .platformsContainer { position: relative; z-index: 1; margin-bottom: 4rem; background: linear-gradient(135deg, rgba(236, 72, 153, 0.08) 0%, rgba(168, 85, 247, 0.05) 25%, rgba(59, 130, 246, 0.08) 50%, rgba(168, 85, 247, 0.05) 75%, rgba(236, 72, 153, 0.08) 100%); background-size: 200% 200%; border: 2px solid; border-image: linear-gradient(135deg, rgba(236, 72, 153, 0.3), rgba(59, 130, 246, 0.3)) 1; border-radius: 32px; padding: 3rem; box-shadow: 0 20px 60px rgba(236, 72, 153, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.1) inset; transition: all 0.3s ease; animation: gradientShift 15s ease infinite; overflow: hidden; } .platformsContainer::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 20% 30%, rgba(236, 72, 153, 0.15) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgba(59, 130, 246, 0.15) 0%, transparent 50%), radial-gradient(circle at 50% 50%, rgba(168, 85, 247, 0.1) 0%, transparent 60%); opacity: 0.6; pointer-events: none; z-index: 0; } .platformsContainer::after { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(236, 72, 153, 0.02) 10px, rgba(236, 72, 153, 0.02) 20px); pointer-events: none; z-index: 0; } @keyframes gradientShift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .platformsContainer:hover { box-shadow: 0 30px 80px rgba(236, 72, 153, 0.15), 0 0 0 1px rgba(236, 72, 153, 0.2) inset, 0 0 60px rgba(59, 130, 246, 0.1); border-image: linear-gradient(135deg, rgba(236, 72, 153, 0.5), rgba(59, 130, 246, 0.5)) 1; } .connectText { text-align: center; margin-bottom: 3rem; display: flex; flex-direction: column; align-items: center; gap: 1rem; } .connectIcon { font-size: 4rem; animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.1); opacity: 0.8; } } .connectText h3 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; color: var(--text-primary); line-height: 1.3; margin: 0; } /* Platforms Grid */ .platformsGrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 1.5rem; max-width: 900px; margin: 0 auto; perspective: 1000px; } @media (min-width: 768px) { .platformsGrid { grid-template-columns: repeat(5, 1fr); } } .platformCard { position: relative; aspect-ratio: 1; background: var(--background); border: 2px solid var(--border-color); border-radius: 20px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; opacity: 0; transform: translateY(30px) rotateX(10deg); animation: cardReveal 0.6s ease-out forwards; } @keyframes cardReveal { to { opacity: 1; transform: translateY(0) rotateX(0); } } .platformCard::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(236, 72, 153, 0.05), rgba(59, 130, 246, 0.05)); opacity: 0; transition: opacity 0.3s ease; } .platformCard:hover { transform: translateY(-10px) scale(1.05); border-color: var(--primary); box-shadow: 0 20px 40px rgba(236, 72, 153, 0.2); } .platformCard:hover::before { opacity: 1; } .platformCard.selected { background: linear-gradient(135deg, var(--primary), var(--secondary)); border-color: var(--primary); transform: scale(1.05); box-shadow: 0 15px 35px rgba(236, 72, 153, 0.3); } .platformCard.selected .iconEmoji { transform: scale(1.2); filter: brightness(1.2); } .platformIcon { position: relative; z-index: 2; font-size: 2.5rem; transition: transform 0.3s ease; } .iconEmoji { display: block; transition: all 0.3s ease; } .platformCard:hover .iconEmoji { transform: scale(1.15) rotate(5deg); } .checkmark { position: absolute; top: -5px; right: -5px; width: 24px; height: 24px; background: white; color: var(--primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.9rem; animation: checkmarkPop 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } @keyframes checkmarkPop { 0% { transform: scale(0); opacity: 0; } 50% { transform: scale(1.2); } 100% { transform: scale(1); opacity: 1; } } .platformRipple { position: absolute; inset: 0; border-radius: 20px; background: radial-gradient(circle, rgba(236, 72, 153, 0.4), transparent 70%); opacity: 0; transform: scale(0); transition: all 0.6s ease; } .platformCard:active .platformRipple { opacity: 1; transform: scale(1); transition: all 0s; } .platformGlow { position: absolute; inset: -2px; background: linear-gradient(135deg, var(--primary), var(--secondary)); border-radius: 20px; opacity: 0; filter: blur(10px); z-index: -1; transition: opacity 0.3s ease; } .platformCard.selected .platformGlow { opacity: 0.6; animation: glowPulse 2s ease-in-out infinite; } @keyframes glowPulse { 0%, 100% { opacity: 0.6; } 50% { opacity: 0.9; } } /* Stats Bar */ .statsBar { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2rem; padding: 2.5rem; background: linear-gradient(135deg, rgba(236, 72, 153, 0.05), rgba(59, 130, 246, 0.05)); border-radius: 24px; margin-bottom: 4rem; position: relative; overflow: hidden; } .statsBar::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); animation: shimmer 3s infinite; } @keyframes shimmer { 0% { left: -100%; } 100% { left: 100%; } } .statItem { display: flex; align-items: center; gap: 1rem; position: relative; z-index: 1; } .statIcon { font-size: 2.5rem; animation: bounce 2s ease-in-out infinite; } @keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .statContent { text-align: left; } .statNumber { font-size: 2rem; font-weight: 800; background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; line-height: 1; margin-bottom: 0.25rem; } .statLabel { font-size: 0.9rem; color: var(--text-secondary); font-weight: 500; } .statDivider { width: 2px; height: 50px; background: linear-gradient(180deg, transparent, var(--border-color), transparent); } /* CTA Section */ .ctaSection { display: flex; flex-direction: column; gap: 2rem; align-items: center; text-align: center; padding: 3rem 2rem; background: linear-gradient(135deg, var(--primary), var(--secondary)); border-radius: 32px; position: relative; overflow: hidden; } .ctaSection::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255, 255, 255, 0.1), transparent 50%); animation: rotateGlow 20s linear infinite; } @keyframes rotateGlow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .ctaContent { position: relative; z-index: 1; } .ctaTitle { font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 800; color: white; margin-bottom: 0.75rem; } .ctaText { font-size: 1.125rem; color: rgba(255, 255, 255, 0.95); max-width: 600px; } .ctaButtons { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; position: relative; z-index: 1; } .ctaButtons .btn { background: white !important; color: var(--primary) !important; border: none !important; } .ctaButtons .btn:hover { transform: translateY(-3px); box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2); } .ctaButtons .btn-secondary { background: rgba(255, 255, 255, 0.2) !important; color: white !important; border: 2px solid white !important; backdrop-filter: blur(10px); } .ctaButtons .btn-secondary:hover { background: rgba(255, 255, 255, 0.3) !important; } .arrow { display: inline-block; transition: transform 0.3s ease; } .ctaButtons .btn:hover .arrow { transform: translateX(5px); } /* Connection Lines SVG */ .connectionLines { position: absolute; bottom: 0; left: 0; width: 100%; height: 400px; pointer-events: none; opacity: 0.3; z-index: 0; } .animatedPath { stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: drawPath 3s ease-in-out infinite; } @keyframes drawPath { 0% { stroke-dashoffset: 1000; } 50% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -1000; } } /* Responsive */ @media (max-width: 768px) { .connectSection { padding: 4rem 0; } .platformsContainer { padding: 2rem 1.5rem; } .platformsGrid { grid-template-columns: repeat(3, 1fr); gap: 1rem; } .statsBar { flex-direction: column; gap: 1.5rem; } .statDivider { width: 50px; height: 2px; } .ctaSection { padding: 2rem 1.5rem; } .ctaButtons { flex-direction: column; width: 100%; } .ctaButtons .btn { width: 100%; } } @media (min-width: 768px) { .ctaSection { flex-direction: row; justify-content: space-between; text-align: left; padding: 3rem 4rem; } } /* NEW CREATIVE FEATURES */ /* Grid Pattern Background */ .gridPattern { position: absolute; inset: 0; background-image: linear-gradient(rgba(236, 72, 153, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(59, 130, 246, 0.03) 1px, transparent 1px); background-size: 50px 50px; opacity: 0.5; animation: gridMove 20s linear infinite; } @keyframes gridMove { 0% { transform: translate(0, 0); } 100% { transform: translate(50px, 50px); } } /* Enhanced Connect Icon with Rings */ .connectIconWrapper { position: relative; display: inline-block; } .iconRings { position: absolute; inset: -20px; pointer-events: none; } .ring { position: absolute; inset: 0; border: 2px solid var(--primary); border-radius: 50%; opacity: 0; animation: ringPulse 3s ease-out infinite; } .ring:nth-child(1) { animation-delay: 0s; } .ring:nth-child(2) { animation-delay: 1s; } .ring:nth-child(3) { animation-delay: 2s; } @keyframes ringPulse { 0% { transform: scale(0.8); opacity: 0.8; } 100% { transform: scale(2); opacity: 0; } } /* Gradient Text */ .gradientText { background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .connectSubtext { font-size: 0.9rem; color: var(--text-secondary); font-weight: 500; opacity: 0.8; } /* 3D Card Inner Structure */ .cardInner { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.6s; } .cardFront { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem; position: relative; backface-visibility: hidden; } /* Platform Name Label */ .platformName { font-size: 0.7rem; font-weight: 600; color: var(--text-secondary); text-align: center; opacity: 0; transform: translateY(10px); transition: all 0.3s ease; } .platformCard:hover .platformName { opacity: 1; transform: translateY(0); } .platformCard.selected .platformName { color: white; opacity: 1; transform: translateY(0); } /* Animated Border */ .animatedBorder { position: absolute; inset: -2px; background: linear-gradient(45deg, var(--primary), var(--secondary), var(--primary)); background-size: 200% 200%; border-radius: 20px; opacity: 0; z-index: -1; animation: borderRotate 3s linear infinite; } .platformCard.selected .animatedBorder { opacity: 1; } @keyframes borderRotate { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Shine Effect */ .shineEffect { position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.3) 50%, transparent 70%); transform: translateX(-100%); transition: transform 0.6s; } .platformCard:hover .shineEffect { transform: translateX(100%); } /* Particle System */ .particleContainer { position: absolute; inset: 0; pointer-events: none; z-index: 10; overflow: hidden; } .particle { position: absolute; width: 6px; height: 6px; border-radius: 50%; pointer-events: none; box-shadow: 0 0 10px currentColor; } /* Connection Dots */ .connectionDots { position: absolute; bottom: -15px; left: 50%; transform: translateX(-50%); display: flex; gap: 4px; z-index: 10; } .connectionDots span { width: 6px; height: 6px; background: white; border-radius: 50%; animation: dotPulse 1.5s ease-in-out infinite; box-shadow: 0 0 10px rgba(255, 255, 255, 0.8); } .connectionDots span:nth-child(1) { animation-delay: 0s; } .connectionDots span:nth-child(2) { animation-delay: 0.3s; } .connectionDots span:nth-child(3) { animation-delay: 0.6s; } @keyframes dotPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: 0.5; } } /* Enhanced Stats with Icon Glow */ .statIconWrapper { position: relative; display: inline-block; } .statIconGlow { position: absolute; inset: -10px; background: radial-gradient(circle, var(--primary), transparent 70%); opacity: 0; filter: blur(15px); z-index: -1; animation: iconGlowPulse 2s ease-in-out infinite; } @keyframes iconGlowPulse { 0%, 100% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.6; transform: scale(1.2); } } .statNumber.animated { animation: numberPop 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55); } @keyframes numberPop { 0% { transform: scale(0.5); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } /* Enhanced CTA with Background Orbs */ .ctaBackground { position: absolute; inset: 0; overflow: hidden; z-index: 0; } .ctaOrb1, .ctaOrb2 { position: absolute; border-radius: 50%; filter: blur(60px); opacity: 0.3; } .ctaOrb1 { width: 300px; height: 300px; background: radial-gradient(circle, rgba(255, 255, 255, 0.4), transparent); top: -100px; right: -100px; animation: ctaOrbFloat 8s ease-in-out infinite; } .ctaOrb2 { width: 250px; height: 250px; background: radial-gradient(circle, rgba(255, 255, 255, 0.3), transparent); bottom: -80px; left: -80px; animation: ctaOrbFloat 10s ease-in-out infinite reverse; } @keyframes ctaOrbFloat { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(30px, -30px) scale(1.1); } } /* Icon Emoji Styling */ .iconEmoji { font-size: 2.5rem; font-weight: 700; display: flex; align-items: center; justify-content: center; } /* Checkmark Enhancement */ .checkmark span { display: block; animation: checkSpin 0.5s ease-out; } @keyframes checkSpin { 0% { transform: rotate(-180deg) scale(0); } 100% { transform: rotate(0) scale(1); } }