/* Curved Section Styles */ .curved-section { position: relative; overflow: hidden; z-index: 1; } /* Ensure smooth transitions between curved sections */ .curved-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: -1; backdrop-filter: inherit; background: inherit; } /* Top curved section (Hero) - Enhanced curves */ .curved-section--top { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 120px), 85% calc(100% - 60px), 70% calc(100% - 20px), 50% 100%, 30% calc(100% - 20px), 15% calc(100% - 60px), 0 calc(100% - 120px)); margin-bottom: -120px; } /* Middle curved sections - Enhanced curves */ .curved-section--middle { clip-path: polygon(0 120px, 15% 60px, 30% 20px, 50% 0, 70% 20px, 85% 60px, 100% 120px, 100% calc(100% - 120px), 85% calc(100% - 60px), 70% calc(100% - 20px), 50% 100%, 30% calc(100% - 20px), 15% calc(100% - 60px), 0 calc(100% - 120px)); margin-top: -60px; margin-bottom: -60px; padding-top: 90px; padding-bottom: 90px; } /* Bottom curved section (Footer) - Enhanced curves */ .curved-section--bottom { clip-path: polygon(0 120px, 15% 60px, 30% 20px, 50% 0, 70% 20px, 85% 60px, 100% 120px, 100% 100%, 0 100%); margin-top: -60px; padding-top: 90px; } /* Glass effect enhancements for curved sections - Remove backgrounds */ .curved-section--glass { border: 1px solid rgba(255, 255, 255, 0.05); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.05); } /* Ensure content doesn't get clipped */ .curved-section__content { position: relative; z-index: 2; padding: 1rem; } @media (min-width: 640px) { .curved-section__content { padding: 1.5rem; } } @media (min-width: 1024px) { .curved-section__content { padding: 2rem; } } /* Mobile adjustments (up to 640px) - Enhanced curves */ @media (max-width: 640px) { .curved-section--top { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 60px), 80% calc(100% - 30px), 60% calc(100% - 10px), 50% 100%, 40% calc(100% - 10px), 20% calc(100% - 30px), 0 calc(100% - 60px)); margin-bottom: -60px; } .curved-section--middle { clip-path: polygon(0 60px, 20% 30px, 40% 10px, 50% 0, 60% 10px, 80% 30px, 100% 60px, 100% calc(100% - 60px), 80% calc(100% - 30px), 60% calc(100% - 10px), 50% 100%, 40% calc(100% - 10px), 20% calc(100% - 30px), 0 calc(100% - 60px)); margin-top: -60px; margin-bottom: -60px; padding-top: 100px; padding-bottom: 100px; } .curved-section--bottom { clip-path: polygon(0 60px, 20% 30px, 40% 10px, 50% 0, 60% 10px, 80% 30px, 100% 60px, 100% 100%, 0 100%); margin-top: -60px; padding-top: 100px; } .curved-section__content { padding: 0.75rem; } } /* Tablet adjustments (641px to 768px) - Enhanced curves */ @media (min-width: 641px) and (max-width: 768px) { .curved-section--top { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 80px), 82% calc(100% - 40px), 65% calc(100% - 15px), 50% 100%, 35% calc(100% - 15px), 18% calc(100% - 40px), 0 calc(100% - 80px)); margin-bottom: -80px; } .curved-section--middle { clip-path: polygon(0 80px, 18% 40px, 35% 15px, 50% 0, 65% 15px, 82% 40px, 100% 80px, 100% calc(100% - 80px), 82% calc(100% - 40px), 65% calc(100% - 15px), 50% 100%, 35% calc(100% - 15px), 18% calc(100% - 40px), 0 calc(100% - 80px)); margin-top: -80px; margin-bottom: -80px; padding-top: 130px; padding-bottom: 130px; } .curved-section--bottom { clip-path: polygon(0 80px, 18% 40px, 35% 15px, 50% 0, 65% 15px, 82% 40px, 100% 80px, 100% 100%, 0 100%); margin-top: -80px; padding-top: 130px; } .curved-section__content { padding: 1rem; } } /* Large tablet adjustments (769px to 1024px) - Enhanced curves */ @media (min-width: 769px) and (max-width: 1024px) { .curved-section--top { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 100px), 83% calc(100% - 50px), 67% calc(100% - 18px), 50% 100%, 33% calc(100% - 18px), 17% calc(100% - 50px), 0 calc(100% - 100px)); margin-bottom: -100px; } .curved-section--middle { clip-path: polygon(0 100px, 17% 50px, 33% 18px, 50% 0, 67% 18px, 83% 50px, 100% 100px, 100% calc(100% - 100px), 83% calc(100% - 50px), 67% calc(100% - 18px), 50% 100%, 33% calc(100% - 18px), 17% calc(100% - 50px), 0 calc(100% - 100px)); margin-top: -100px; margin-bottom: -100px; padding-top: 150px; padding-bottom: 150px; } .curved-section--bottom { clip-path: polygon(0 100px, 17% 50px, 33% 18px, 50% 0, 67% 18px, 83% 50px, 100% 100px, 100% 100%, 0 100%); margin-top: -100px; padding-top: 150px; } } /* Desktop and larger (1025px+) - already defined above with enhanced curves */ @media (min-width: 1280px) { .curved-section__content { padding: 2.5rem; } } @media (min-width: 1536px) { .curved-section__content { padding: 3rem; } } /* Smooth scroll behavior with anti-flickering */ .curved-section { scroll-margin-top: 100px; will-change: transform; backface-visibility: hidden; transform: translateZ(0); -webkit-transform: translateZ(0); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Anti-flickering optimization for curved sections in scroll stack */ .scroll-stack-card .curved-section { transition: transform 0.3s ease-out, opacity 0.3s ease-out; will-change: transform, opacity; contain: layout style paint; transform: translateZ(0); -webkit-transform: translateZ(0); } /* Enhanced glass morphism for stacked sections - Transparent backgrounds */ .scroll-stack-card .curved-section--glass { background: transparent; backdrop-filter: blur(8px) saturate(120%); -webkit-backdrop-filter: blur(8px) saturate(120%); border: 1px solid rgba(255, 255, 255, 0.05); will-change: transform, opacity; } /* Hover effects for interactive sections (desktop only) */ @media (min-width: 1025px) { .curved-section:hover { transform: translateY(-2px); box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15); } } /* Improved scroll snap for better mobile experience */ .curved-section { scroll-snap-align: start; scroll-margin-top: 80px; } @media (max-width: 768px) { .curved-section { scroll-margin-top: 60px; } } /* Performance optimizations for mobile */ @media (max-width: 768px) { .curved-section { will-change: auto; } .curved-section--glass { backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); } .scroll-stack-card .curved-section--glass { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); } } /* Reduce motion for users who prefer it */ @media (prefers-reduced-motion: reduce) { .curved-section { transition: none; } .curved-section:hover { transform: none; } }