import React, { useEffect, useState } from 'react'; const ArchitecturalShowcase: React.FC = () => { const [isLoaded, setIsLoaded] = useState(false); const [heroVisible, setHeroVisible] = useState(false); const [imageVisible, setImageVisible] = useState(false); const [purposeVisible, setPurposeVisible] = useState(false); useEffect(() => { document.body.style.margin = '0'; document.body.style.padding = '0'; document.body.style.overflow = 'hidden'; const timer1 = setTimeout(() => setIsLoaded(true), 200); const timer2 = setTimeout(() => setHeroVisible(true), 600); const timer3 = setTimeout(() => setImageVisible(true), 1200); const timer4 = setTimeout(() => setPurposeVisible(true), 1800); const timer5 = setTimeout(() => { document.body.style.overflow = 'auto'; }, 2000); return () => { clearTimeout(timer1); clearTimeout(timer2); clearTimeout(timer3); clearTimeout(timer4); clearTimeout(timer5); }; }, []); const globalStyles = ` body, html, #root { margin: 0; padding: 0; width: 100vw; height: 100vh; } `; const styles = { showcase: { fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif", minHeight: '100vh', backgroundColor: '#fafafa', margin: 0, padding: 0, border: 'none', outline: 'none', opacity: isLoaded ? 1 : 0, transform: isLoaded ? 'translateY(0) scale(1)' : 'translateY(50px) scale(0.95)', transition: 'all 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94)', }, header: { position: 'fixed' as const, top: 0, left: 0, right: 0, zIndex: 1000, backgroundColor: 'rgba(255, 255, 255, 0.95)', backdropFilter: 'blur(20px)', borderBottom: '1px solid rgba(0, 0, 0, 0.08)', transform: isLoaded ? 'translateY(0)' : 'translateY(-100px)', transition: 'all 0.8s cubic-bezier(0.34, 1.26, 0.64, 1)', transitionDelay: '0.3s', }, nav: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', padding: '1rem 2rem', maxWidth: '1400px', margin: '0 auto', }, logo: { display: 'flex', alignItems: 'center', gap: '0.5rem', fontSize: '1.5rem', fontWeight: 600, color: '#1a1a1a', opacity: isLoaded ? 1 : 0, transform: isLoaded ? 'translateX(0) rotate(0deg)' : 'translateX(-30px) rotate(-10deg)', transition: 'all 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55)', transitionDelay: '0.5s', }, logoIcon: { fontSize: '1.2rem', animation: isLoaded ? 'pulse 2s infinite' : 'none', }, navLinks: { display: 'flex', listStyle: 'none', margin: 0, padding: 0, gap: '2rem', }, navLink: { color: '#4a4a4a', textDecoration: 'none', fontSize: '0.95rem', fontWeight: 400, transition: 'all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)', cursor: 'pointer', opacity: isLoaded ? 1 : 0, transform: isLoaded ? 'translateY(0)' : 'translateY(-20px)', transitionDelay: '0.7s', }, contactBtn: { backgroundColor: '#1a1a1a', color: 'white', border: 'none', padding: '0.75rem 1.5rem', borderRadius: '50px', fontSize: '0.9rem', fontWeight: 500, cursor: 'pointer', transition: 'all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)', fontFamily: 'inherit', opacity: isLoaded ? 1 : 0, transform: isLoaded ? 'translateX(0) scale(1)' : 'translateX(30px) scale(0.8)', transitionDelay: '0.8s', }, hero: { display: 'flex', flexDirection: 'column' as const, alignItems: 'center', justifyContent: 'center', minHeight: '100vh', textAlign: 'center' as const, padding: '0 2rem', paddingTop: '80px', }, heroContent: { maxWidth: '800px', margin: '0 auto', }, heroTitle: { fontSize: 'clamp(2.5rem, 5vw, 4rem)', fontWeight: 300, lineHeight: 1.2, color: '#1a1a1a', margin: '0 0 1.5rem 0', letterSpacing: '-0.02em', }, heroSubtitle: { fontSize: 'clamp(1.1rem, 2vw, 1.3rem)', color: '#6a6a6a', lineHeight: 1.6, margin: '0 0 2.5rem 0', fontWeight: 400, maxWidth: '600px', }, ctaBtn: { display: 'inline-flex', alignItems: 'center', gap: '0.75rem', backgroundColor: '#1a1a1a', color: 'white', border: 'none', padding: '1rem 2rem', borderRadius: '50px', fontSize: '1rem', fontWeight: 500, cursor: 'pointer', transition: 'all 0.4s cubic-bezier(0.4, 0, 0.2, 1)', fontFamily: 'inherit', boxShadow: '0 4px 20px rgba(26, 26, 26, 0.15)', }, ctaArrow: { fontSize: '1.2rem', transition: 'transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)', }, imageSection: { padding: '4rem 2rem', backgroundColor: '#ffffff', opacity: imageVisible ? 1 : 0, transform: imageVisible ? 'translateY(0)' : 'translateY(80px)', transition: 'all 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94)', }, imageContainer: { maxWidth: '1200px', margin: '0 auto', borderRadius: '20px', overflow: 'hidden', boxShadow: '0 20px 60px rgba(0, 0, 0, 0.1)', transform: imageVisible ? 'scale(1) rotateX(0deg)' : 'scale(0.9) rotateX(10deg)', transition: 'all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94)', transitionDelay: '0.2s', }, heroImage: { width: '100%', height: 'auto', display: 'block', transition: 'transform 0.6s ease', }, purpose: { padding: '6rem 2rem', backgroundColor: '#fafafa', opacity: purposeVisible ? 1 : 0, transform: purposeVisible ? 'translateY(0)' : 'translateY(60px)', transition: 'all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94)', textAlign: 'center' as const, }, purposeContent: { maxWidth: '1200px', margin: '0 auto', }, purposeTitle: { fontSize: 'clamp(2rem, 4vw, 2.5rem)', fontWeight: 300, color: '#1a1a1a', margin: '0 0 1.5rem 0', letterSpacing: '-0.01em', }, purposeDescription: { fontSize: '1.1rem', color: '#6a6a6a', lineHeight: 1.6, margin: '0', maxWidth: '800px', }, servicesSection: { padding: '8rem 2rem', backgroundColor: '#fffff', position: 'relative' as const, }, servicesContainer: { maxWidth: '1400px', margin: '0 auto', position: 'relative' as const, }, servicesHeader: { display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start', marginBottom: '4rem', position: 'relative' as const, }, servicesTitle: { fontSize: 'clamp(2.5rem, 5vw, 4rem)', fontWeight: 400, color: '#666', lineHeight: 1.2, margin: 0, textAlign: 'center' as const, flex: 1, letterSpacing: '-0.01em', }, viewAllBtn: { backgroundColor: 'transparent', border: 'none', fontSize: '0.9rem', color: '#666', fontWeight: 500, cursor: 'pointer', textDecoration: 'underline', fontFamily: 'inherit', position: 'absolute' as const, top: 0, right: 0, }, servicesGrid: { display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '2rem', marginTop: '2rem', }, serviceCard: { backgroundColor: 'transparent', padding: 60, position: 'relative' as const, }, serviceTitle: { fontSize: 'clamp(1.8rem, 3vw, 2.5rem)', fontWeight: 400, color: '#666', lineHeight: 1.2, margin: 0, letterSpacing: '-0.01em', minHeight: '120px', }, serviceDescription: { fontSize: '1rem', color: '#666', lineHeight: 1.6, margin: '0 0 2rem 0', flex: 1, }, }; const handleNavLinkHover = (e: React.MouseEvent) => { e.currentTarget.style.color = '#1a1a1a'; }; const handleNavLinkLeave = (e: React.MouseEvent) => { e.currentTarget.style.color = '#4a4a4a'; }; const handleContactBtnHover = (e: React.MouseEvent) => { e.currentTarget.style.backgroundColor = '#333333'; e.currentTarget.style.transform = 'translateY(-2px)'; e.currentTarget.style.boxShadow = '0 8px 25px rgba(26, 26, 26, 0.25)'; }; const handleContactBtnLeave = (e: React.MouseEvent) => { e.currentTarget.style.backgroundColor = '#1a1a1a'; e.currentTarget.style.transform = 'translateY(0)'; e.currentTarget.style.boxShadow = 'none'; }; const handleCtaBtnHover = (e: React.MouseEvent) => { e.currentTarget.style.backgroundColor = '#333333'; e.currentTarget.style.transform = 'translateY(-3px)'; e.currentTarget.style.boxShadow = '0 8px 30px rgba(26, 26, 26, 0.25)'; const arrow = e.currentTarget.querySelector('.cta-arrow') as HTMLElement; if (arrow) arrow.style.transform = 'translateX(5px)'; }; const handleCtaBtnLeave = (e: React.MouseEvent) => { e.currentTarget.style.backgroundColor = '#1a1a1a'; e.currentTarget.style.transform = 'translateY(0)'; e.currentTarget.style.boxShadow = '0 4px 20px rgba(26, 26, 26, 0.15)'; const arrow = e.currentTarget.querySelector('.cta-arrow') as HTMLElement; if (arrow) arrow.style.transform = 'translateX(0)'; }; const handleImageHover = (e: React.MouseEvent) => { e.currentTarget.style.transform = 'scale(1.05)'; }; const handleImageLeave = (e: React.MouseEvent) => { e.currentTarget.style.transform = 'scale(1)'; }; return ( <>