/* 2025 Modern Church Website Design */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800;900&family=Inter:wght@300;400;500;600;700;800&display=swap'); :root { --midnight: #0a0a0f; --deep-navy: #1a1a2e; --royal-blue: #16213e; --soft-gold: #d4af37; --warm-gold: #f7d794; --pearl-white: #fefefe; --soft-gray: #f5f6fa; --medium-gray: #57606f; --charcoal: #2f3542; --gradient-primary: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); --gradient-gold: linear-gradient(135deg, #d4af37 0%, #f7d794 100%); --gradient-glass: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%); --shadow-soft: 0 4px 20px rgba(26, 26, 46, 0.08); --shadow-medium: 0 8px 40px rgba(26, 26, 46, 0.12); --shadow-strong: 0 20px 60px rgba(26, 26, 46, 0.15); --shadow-glow: 0 0 40px rgba(212, 175, 55, 0.3); } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; overflow-x: hidden; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; line-height: 1.6; color: var(--charcoal); background: var(--pearl-white); overflow-x: hidden; padding-top: 80px; } /* Typography System */ .serif { font-family: 'Playfair Display', serif; } .sans { font-family: 'Inter', sans-serif; } h1, .h1 { font-size: clamp(2.5rem, 6vw, 5rem); font-weight: 800; } h2, .h2 { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 700; } h3, .h3 { font-size: clamp(1.5rem, 3vw, 2.5rem); font-weight: 600; } h4, .h4 { font-size: clamp(1.2rem, 2.5vw, 2rem); font-weight: 600; } .text-lg { font-size: clamp(1.1rem, 2vw, 1.3rem); } .text-xl { font-size: clamp(1.3rem, 2.5vw, 1.6rem); } .text-2xl { font-size: clamp(1.6rem, 3vw, 2rem); } /* Advanced Navigation */ .nav-2025 { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: rgba(10, 10, 15, 0.95); backdrop-filter: blur(20px) saturate(180%); border-bottom: 1px solid rgba(212, 175, 55, 0.1); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); height: 80px; } .nav-container { max-width: 1600px; margin: 0 auto; padding: 1rem 1.5rem; display: flex; align-items: center; justify-content: space-between; } .nav-brand { font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 700; color: var(--soft-gold); text-decoration: none; display: flex; align-items: center; gap: 0.75rem; } .nav-menu { display: flex; list-style: none; gap: 1.5rem; align-items: center; margin: 0; } .nav-link { color: rgba(255, 255, 255, 0.9); text-decoration: none; font-weight: 500; font-size: 0.95rem; padding: 0.75rem 1.25rem; border-radius: 8px; transition: all 0.3s ease; position: relative; overflow: hidden; display: flex; align-items: center; height: 40px; } .nav-link::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: var(--gradient-gold); transition: left 0.3s ease; z-index: -1; } .nav-link:hover::before { left: 0; } .nav-link:hover { color: var(--midnight); transform: translateY(-1px); } /* Hero Section 2025 */ .hero-2025 { min-height: 100vh; background: var(--gradient-primary); position: relative; display: flex; align-items: center; overflow: hidden; } .hero-2025::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 20% 50%, rgba(212, 175, 55, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(212, 175, 55, 0.15) 0%, transparent 50%), radial-gradient(circle at 40% 80%, rgba(212, 175, 55, 0.1) 0%, transparent 50%); } .hero-content { max-width: 1400px; margin: 0 auto; padding: 2rem; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; position: relative; z-index: 2; } .hero-text { color: white; } .hero-title { font-family: 'Playfair Display', serif; font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 800; line-height: 1.1; margin-bottom: 1.5rem; background: linear-gradient(135deg, #ffffff 0%, var(--warm-gold) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hero-subtitle { font-size: clamp(1.2rem, 2.5vw, 1.5rem); font-weight: 400; margin-bottom: 2rem; opacity: 0.9; line-height: 1.6; } .hero-cta-group { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 3rem; } .btn-2025 { padding: 1rem 2rem; border-radius: 12px; border: none; font-weight: 600; font-size: 1rem; text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; position: relative; overflow: hidden; } .btn-primary { background: var(--gradient-gold); color: var(--midnight); box-shadow: var(--shadow-medium); } .btn-primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-strong), var(--shadow-glow); color: var(--midnight); } .btn-outline { background: transparent; color: white; border: 2px solid rgba(255, 255, 255, 0.3); backdrop-filter: blur(10px); } .btn-outline:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--soft-gold); color: white; } .hero-visual { position: relative; height: 600px; } .floating-card { position: absolute; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 20px; padding: 2rem; box-shadow: var(--shadow-medium); animation: float 6s ease-in-out infinite; } .floating-card:nth-child(1) { top: 10%; right: 10%; animation-delay: 0s; } .floating-card:nth-child(2) { top: 50%; right: 30%; animation-delay: 2s; } .floating-card:nth-child(3) { bottom: 20%; right: 5%; animation-delay: 4s; } @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-20px) rotate(2deg); } } /* Modern Section Layouts */ .section-2025 { padding: 6rem 0; position: relative; } .container-2025 { max-width: 1400px; margin: 0 auto; padding: 0 2rem; } .section-header { text-align: center; margin-bottom: 4rem; } .section-title { font-family: 'Playfair Display', serif; font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 700; color: var(--deep-navy); margin-bottom: 1rem; } .section-subtitle { font-size: clamp(1.1rem, 2vw, 1.3rem); color: var(--medium-gray); max-width: 600px; margin: 0 auto; font-weight: 400; } /* Premium Cards System */ .cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 2rem; margin-top: 4rem; } .card-2025 { background: white; border-radius: 24px; padding: 3rem; box-shadow: var(--shadow-soft); border: 1px solid rgba(26, 26, 46, 0.05); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; } .card-2025::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--gradient-gold); transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease; } .card-2025:hover::before { transform: scaleX(1); } .card-2025:hover { transform: translateY(-8px); box-shadow: var(--shadow-strong); } .card-icon-2025 { width: 70px; height: 70px; background: var(--gradient-gold); border-radius: 18px; display: flex; align-items: center; justify-content: center; margin-bottom: 2rem; font-size: 1.8rem; color: var(--midnight); box-shadow: var(--shadow-soft); } .card-title { font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 600; color: var(--deep-navy); margin-bottom: 1rem; } .card-text { color: var(--medium-gray); line-height: 1.7; font-size: 1rem; } /* Three Angels Section */ .angels-2025 { background: var(--soft-gray); position: relative; overflow: hidden; } .angels-2025::before { content: ''; position: absolute; top: -50px; left: 0; right: 0; height: 100px; background: var(--pearl-white); transform: skewY(-2deg); } .angels-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 4rem; } /* Service Times Modern Layout */ .services-2025 { background: var(--deep-navy); color: white; position: relative; } .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin-top: 4rem; } .service-card-2025 { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 20px; padding: 2.5rem; text-align: center; transition: all 0.3s ease; } .service-card-2025:hover { background: rgba(255, 255, 255, 0.1); transform: translateY(-5px); } .service-icon-2025 { width: 80px; height: 80px; background: var(--gradient-gold); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem; font-size: 2rem; color: var(--midnight); } .service-time { font-family: 'Playfair Display', serif; font-size: 2.5rem; font-weight: 700; color: var(--soft-gold); margin: 1rem 0; } /* Events Section */ .events-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 2rem; margin-top: 4rem; } .event-card-2025 { background: white; border-radius: 20px; overflow: hidden; box-shadow: var(--shadow-soft); transition: all 0.3s ease; } .event-card-2025:hover { transform: translateY(-5px); box-shadow: var(--shadow-medium); } .event-image-2025 { height: 200px; background: var(--gradient-primary); position: relative; display: flex; align-items: center; justify-content: center; background-image: url('data:image/svg+xml,'); background-size: cover; background-position: center; } .event-date-badge { position: absolute; top: 1rem; right: 1rem; background: var(--soft-gold); color: var(--midnight); padding: 0.5rem 1rem; border-radius: 12px; font-weight: 600; font-size: 0.9rem; } .event-content-2025 { padding: 2rem; } .event-title { font-family: 'Playfair Display', serif; font-size: 1.3rem; font-weight: 600; color: var(--deep-navy); margin-bottom: 1rem; } /* Footer 2025 */ .footer-2025 { background: var(--midnight); color: white; padding: 4rem 0 2rem; position: relative; } .footer-2025::before { content: ''; position: absolute; top: -50px; left: 0; right: 0; height: 100px; background: var(--pearl-white); transform: skewY(-2deg); } /* Mobile Navigation */ .nav-toggle { display: none; flex-direction: column; background: none; border: none; cursor: pointer; padding: 0.5rem; border-radius: 4px; } .hamburger { width: 24px; height: 2px; background: var(--soft-gold); margin: 2px 0; transition: all 0.3s ease; border-radius: 2px; } /* Responsive Design */ @media (max-width: 992px) { .nav-toggle { display: flex; } .nav-menu { position: fixed; top: 100%; left: 0; right: 0; background: rgba(10, 10, 15, 0.98); backdrop-filter: blur(20px); flex-direction: column; padding: 2rem; gap: 1.5rem; transform: translateY(-100vh); transition: transform 0.3s ease; border-top: 1px solid rgba(212, 175, 55, 0.2); } .nav-menu.active { transform: translateY(0); } .nav-toggle.active .hamburger:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); } .nav-toggle.active .hamburger:nth-child(2) { opacity: 0; } .nav-toggle.active .hamburger:nth-child(3) { transform: rotate(-45deg) translate(7px, -6px); } .hero-content { grid-template-columns: 1fr; text-align: center; } .hero-visual { height: 400px; } .cards-grid, .angels-grid, .services-grid, .events-grid { grid-template-columns: 1fr; } .section-2025 { padding: 4rem 0; } } /* Optimized Scroll Animations for Performance */ .scroll-reveal { opacity: 0; transform: translate3d(0, 20px, 0); will-change: opacity, transform; transition: opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .scroll-reveal.revealed { opacity: 1; transform: translate3d(0, 0, 0); will-change: auto; } /* Reduced stagger delays for smoother performance */ .stagger-1 { transition-delay: 0.05s; } .stagger-2 { transition-delay: 0.1s; } .stagger-3 { transition-delay: 0.15s; } .stagger-4 { transition-delay: 0.2s; } /* Performance optimization for animations */ @media (prefers-reduced-motion: reduce) { .scroll-reveal { opacity: 1; transform: none; transition: none; } } /* GPU acceleration for smooth animations */ .card-2025, .event-card-2025, .floating-card { will-change: transform; transform: translateZ(0); backface-visibility: hidden; perspective: 1000px; } /* Optimize hover animations */ .card-2025:hover, .event-card-2025:hover { transform: translateZ(0) translateY(-5px); transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); } /* Disable heavy animations on lower-end devices */ @media (max-width: 992px), (prefers-reduced-motion: reduce) { .floating-card { animation: none !important; } .hero-visual::before { animation: none !important; } } /* Optimize floating animation */ @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg) translateZ(0); } 50% { transform: translateY(-15px) rotate(1deg) translateZ(0); } } /* Reduce animation complexity on mobile */ @media (max-width: 992px) { .btn-2025:hover { transform: none; } .nav-link:hover { transform: none; } }