/* Reset and Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%); --sunset-gradient: linear-gradient(135deg, #fa709a 0%, #fee140 100%); --ocean-gradient: linear-gradient(180deg, #2e3192 0%, #1bffff 100%); --dark-bg: #0a0e27; --light-text: #ffffff; --accent-color: #ff6b6b; } html { scroll-behavior: smooth; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: var(--dark-bg); color: var(--light-text); overflow-x: hidden; line-height: 1.6; } .scroll-container { width: 100%; } /* Intro Section */ .intro-section { height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #1e3c72 0%, #2a5298 50%, #7e22ce 100%); position: relative; overflow: hidden; } .intro-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 20% 50%, rgba(120, 119, 198, 0.3) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(255, 107, 107, 0.3) 0%, transparent 50%); animation: gradientShift 15s ease infinite; } @keyframes gradientShift { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } .intro-content { text-align: center; z-index: 1; animation: fadeInUp 1.5s ease-out; } @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .title { font-size: clamp(3rem, 8vw, 6rem); font-weight: 700; margin-bottom: 1rem; background: linear-gradient(45deg, #fff, #ffd700, #fff); background-size: 200% 200%; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; animation: shimmer 3s ease-in-out infinite; } @keyframes shimmer { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .subtitle { font-size: clamp(1.2rem, 3vw, 1.8rem); margin-bottom: 3rem; opacity: 0.9; animation: fadeIn 2s ease-out 0.5s backwards; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 0.9; } } /* Scroll Indicator */ .scroll-indicator { margin-top: 4rem; animation: fadeIn 2s ease-out 1s backwards; } .mouse { width: 30px; height: 50px; border: 2px solid rgba(255, 255, 255, 0.8); border-radius: 20px; margin: 0 auto 1rem; position: relative; } .wheel { width: 4px; height: 10px; background: rgba(255, 255, 255, 0.8); border-radius: 2px; position: absolute; top: 8px; left: 50%; transform: translateX(-50%); animation: scroll 2s ease-out infinite; } @keyframes scroll { 0% { opacity: 1; transform: translateX(-50%) translateY(0); } 100% { opacity: 0; transform: translateX(-50%) translateY(20px); } } .scroll-indicator p { font-size: 0.9rem; letter-spacing: 2px; text-transform: uppercase; opacity: 0.7; } /* Video Section */ .video-section { min-height: 300vh; position: relative; background: linear-gradient(180deg, #1e3c72 0%, #0a0e27 50%, #000000 100%); } .video-wrapper { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 2rem; } .scroll-video { width: 40%; height: 60%; object-fit: cover; border-radius: 20px; box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1); transition: all 0.3s ease; animation: videoReveal 1s ease-out; position: relative; z-index: 2; } @keyframes videoReveal { from { opacity: 0; transform: scale(0.8); } to { opacity: 1; transform: scale(1); } } /* Video Frame Effect */ .video-frame { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: calc(40% + 40px); height: calc(60% + 40px); border: 2px solid rgba(255, 255, 255, 0.1); border-radius: 25px; pointer-events: none; z-index: 1; } .video-frame::before, .video-frame::after { content: ''; position: absolute; background: var(--sunset-gradient); opacity: 0.3; filter: blur(40px); border-radius: 50%; animation: pulse 4s ease-in-out infinite; } .video-frame::before { width: 200px; height: 200px; top: -100px; left: -100px; } .video-frame::after { width: 250px; height: 250px; bottom: -125px; right: -125px; animation-delay: 2s; } @keyframes pulse { 0%, 100% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.5; } } /* Video Overlay Effect */ .video-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at center, transparent 30%, rgba(10, 14, 39, 0.5) 100%); pointer-events: none; z-index: 3; } /* Content Overlay */ .content-overlay { position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); text-align: center; z-index: 4; animation: fadeInUp 1.5s ease-out 0.5s backwards; } .content-overlay h2 { font-size: clamp(2rem, 5vw, 3.5rem); margin-bottom: 1rem; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); } .content-overlay p { font-size: clamp(1rem, 2vw, 1.4rem); opacity: 0.8; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); } /* Scroll-triggered scaling effect using CSS container queries approach */ .video-wrapper:has(~ *) .scroll-video { animation: scaleOnScroll 1s ease-out forwards; } @keyframes scaleOnScroll { from { transform: scale(1); } to { transform: scale(1.05); } } /* Description Section */ .description-section { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #000000 0%, #1a1a2e 50%, #16213e 100%); padding: 4rem 2rem; position: relative; } .description-content { max-width: 1200px; text-align: center; } .description-content h2 { font-size: clamp(2.5rem, 6vw, 4rem); margin-bottom: 1.5rem; background: var(--sunset-gradient); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .description-content > p { font-size: clamp(1.1rem, 2.5vw, 1.5rem); margin-bottom: 4rem; opacity: 0.8; max-width: 800px; margin-left: auto; margin-right: auto; } /* Features Grid */ .features { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin-top: 3rem; } .feature-card { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 20px; padding: 2.5rem 2rem; transition: all 0.3s ease; position: relative; overflow: hidden; } .feature-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--sunset-gradient); transform: scaleX(0); transition: transform 0.3s ease; } .feature-card:hover { transform: translateY(-10px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); border-color: rgba(255, 255, 255, 0.2); } .feature-card:hover::before { transform: scaleX(1); } .feature-icon { font-size: 3rem; margin-bottom: 1rem; display: inline-block; animation: float 3s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .feature-card:nth-child(2) .feature-icon { animation-delay: 0.5s; } .feature-card:nth-child(3) .feature-icon { animation-delay: 1s; } .feature-card h3 { font-size: 1.5rem; margin-bottom: 0.8rem; color: #fff; } .feature-card p { opacity: 0.7; line-height: 1.6; } /* Footer Section */ .footer-section { min-height: 60vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #16213e 0%, #0f3460 100%); position: relative; overflow: hidden; } .footer-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 30% 50%, rgba(102, 126, 234, 0.1) 0%, transparent 50%), radial-gradient(circle at 70% 50%, rgba(118, 75, 162, 0.1) 0%, transparent 50%); animation: gradientShift 10s ease infinite; } .footer-content { text-align: center; z-index: 1; padding: 2rem; } .footer-content h3 { font-size: clamp(2rem, 5vw, 3rem); margin-bottom: 1rem; background: var(--primary-gradient); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .footer-content > p { font-size: clamp(1rem, 2vw, 1.3rem); opacity: 0.8; margin-bottom: 2rem; } .social-links { display: flex; gap: 2rem; justify-content: center; flex-wrap: wrap; } .social-link { color: var(--light-text); text-decoration: none; padding: 1rem 2rem; border: 2px solid rgba(255, 255, 255, 0.2); border-radius: 50px; transition: all 0.3s ease; font-weight: 500; letter-spacing: 1px; position: relative; overflow: hidden; } .social-link::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: var(--sunset-gradient); transition: left 0.3s ease; z-index: -1; } .social-link:hover { border-color: transparent; transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); } .social-link:hover::before { left: 0; } /* Responsive Design */ @media (max-width: 768px) { .scroll-video { width: 60%; height: 50%; } .video-frame { width: calc(60% + 40px); height: calc(50% + 40px); } .features { grid-template-columns: 1fr; } .social-links { flex-direction: column; align-items: center; } } @media (max-width: 480px) { .scroll-video { width: 80%; height: 40%; } .video-frame { width: calc(80% + 30px); height: calc(40% + 30px); } .video-wrapper { padding: 1rem; } } /* Smooth entrance animations for sections */ @supports (animation-timeline: scroll()) { .description-section, .footer-section { animation: fadeInSection linear both; animation-timeline: view(); animation-range: entry 0% cover 30%; } } @keyframes fadeInSection { from { opacity: 0; transform: translateY(50px); } to { opacity: 1; transform: translateY(0); } }