*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #2c3e50;--color-secondary: #8b7355;--color-accent: #d4af37;--color-light: #f8f9fa;--color-text: #333;--font-serif: "Cormorant Garamond", serif;--font-sans: "Montserrat", sans-serif}body{font-family:var(--font-sans);color:var(--color-text);line-height:1.6;background-color:#fff;position:relative}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:url(../background.jpg) center/cover no-repeat;opacity:.4;z-index:-1}#app{width:100%}main{width:100%}html{scroll-behavior:smooth}.navbar{position:fixed;top:0;left:0;width:100%;background-color:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 10px #0000001a;z-index:1000;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.navbar-left{display:flex;align-items:center;gap:1rem}.navbar-logo{display:block;width:75px;height:75px;transition:transform .2s ease}.navbar-logo:hover{transform:scale(1.1)}.navbar-logo img{width:100%;height:100%;object-fit:contain}.menu-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.5rem;z-index:1001}.menu-icon{width:25px;height:3px;background-color:var(--color-primary);transition:all .3s ease;border-radius:2px}.menu-toggle.active .menu-icon:nth-child(1){transform:rotate(45deg) translate(6px,6px)}.menu-toggle.active .menu-icon:nth-child(2){opacity:0}.menu-toggle.active .menu-icon:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.nav-menu{position:absolute;top:100%;left:0;width:100%;background-color:#fff;list-style:none;padding:0;margin:0;max-height:0;overflow:hidden;transition:max-height .3s ease,box-shadow .3s ease;box-shadow:none}.nav-menu.active{max-height:400px;box-shadow:0 4px 10px #0000001a}.nav-menu li{border-bottom:1px solid #f0f0f0}.nav-menu li:last-child{border-bottom:none}.nav-menu a{display:block;padding:1rem 2rem;color:var(--color-primary);text-decoration:none;font-family:var(--font-sans);font-weight:400;letter-spacing:.05em;transition:background-color .2s ease,padding-left .2s ease}.nav-menu a:hover{background-color:var(--color-light);padding-left:2.5rem}@media(min-width:768px){.navbar{display:flex;justify-content:center;align-items:center}.navbar-left{position:absolute;left:2rem}.menu-toggle{display:none}.nav-menu{position:static;display:flex;max-height:none;overflow:visible;box-shadow:none;background:transparent;width:auto}.nav-menu li{border:none}.nav-menu a{padding:.5rem 1.5rem}.nav-menu a:hover{background-color:transparent;padding-left:1.5rem;color:var(--color-secondary)}}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:linear-gradient(#ffffffb3,#ffffffb3),url(../john-and-christine.jpg) center/cover no-repeat;padding:2rem;position:relative;overflow:hidden}.meteor{position:absolute;width:100px;height:100px;animation:meteor-fall linear infinite;opacity:0;transform-origin:top left}.meteor:before{content:"";position:absolute;top:0;left:0;width:4px;height:4px;background:radial-gradient(circle,rgba(255,255,255,1) 0%,rgba(255,255,255,.9) 50%,transparent 100%);box-shadow:0 0 8px 3px #fffc;border-radius:50%;z-index:2}.meteor:after{content:"";position:absolute;top:0;left:0;width:2px;height:80px;background:linear-gradient(to bottom,rgba(255,255,255,.8) 0%,rgba(255,255,255,.6) 20%,rgba(255,255,255,.3) 50%,transparent 100%);transform:rotate(135deg);transform-origin:top left}@keyframes meteor-fall{0%{opacity:0;transform:translate(-150px,-150px)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translate(calc(100vw + 150px),calc(100vh + 150px))}}.hero h1{font-family:var(--font-serif);font-size:clamp(3rem,10vw,6rem);font-weight:300;color:var(--color-primary);margin-bottom:1rem;letter-spacing:.05em;position:relative;z-index:1;text-shadow:0 2px 4px rgba(255,255,255,.5);animation:fadeInUp 1s ease-out}.hero .date{font-size:clamp(1.2rem,3vw,1.5rem);color:var(--color-secondary);margin-bottom:1.5rem;font-weight:300;letter-spacing:.1em;text-transform:uppercase;position:relative;z-index:1;animation:fadeInUp 1s ease-out .2s backwards}.hero .tagline{font-size:clamp(1rem,2vw,1.25rem);color:var(--color-primary);max-width:600px;font-weight:300;position:relative;z-index:1;animation:fadeInUp 1s ease-out .4s backwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.content-section{padding:5rem 2rem;max-width:1000px;margin:0 auto;opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out;position:relative}.content-section:before{content:"";position:absolute;inset:0;background:#ffffffe6;pointer-events:none;z-index:0}.content-section.no-gradient:before{display:none}.content-section>*{position:relative;z-index:1}.content-section.visible{opacity:1;transform:translateY(0)}.content-section.alt{background-color:transparent;max-width:1000px;padding:5rem 2rem}.content-section.alt:before{background:#f8f9fae6}.content-section h2{font-family:var(--font-serif);font-size:clamp(2rem,5vw,3rem);font-weight:400;color:var(--color-primary);text-align:center;margin-bottom:3rem;letter-spacing:.05em}.venue-image,.city-image{width:100%;max-width:100%;margin:0 0 4rem;padding:0;overflow:hidden;border-radius:8px}.venue-image img,.city-image img{width:100%;height:auto;max-height:500px;object-fit:cover;display:block}.content-section>p{text-align:center;max-width:700px;margin:0 auto 2rem;font-size:1.1rem;color:#555}.event-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:3rem;margin-top:2rem}.detail-item{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000000d}.detail-item h3{font-family:var(--font-serif);font-size:1.8rem;color:var(--color-secondary);margin-bottom:1rem;font-weight:400}.detail-item p{color:#666;margin-bottom:.5rem}.event-map-links{margin-top:1rem;font-size:.95rem}.event-map-links a{color:var(--color-secondary);text-decoration:none;transition:color .2s ease}.event-map-links a:hover{color:var(--color-primary);text-decoration:underline}.event-map-links span{color:#999;margin:0 .5rem}.rsvp-container{text-align:center;margin-top:3rem}.rsvp-button{display:inline-block;padding:1.25rem 3rem;background-color:var(--color-accent);color:#fff;text-decoration:none;border-radius:50px;font-family:var(--font-sans);font-size:1.3rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;box-shadow:0 4px 15px #d4af374d;transition:all .3s ease}.rsvp-button:hover{background-color:var(--color-secondary);transform:translateY(-3px);box-shadow:0 6px 20px #8b735566}.dancing-info{max-width:700px;margin:3rem auto 0;text-align:center;color:#666;font-size:1.05rem;line-height:1.7;font-style:italic}.dancing-info strong{color:var(--color-secondary);font-style:normal;font-weight:400}.venue-info{max-width:800px;margin:3rem auto 0;padding:0 2rem;text-align:left}.venue-info>p{color:#666;margin-bottom:1.5rem;line-height:1.7}.venue-highlights{list-style:none;padding:0;margin:2rem 0}.venue-highlights li{color:#666;margin-bottom:1rem;padding-left:1.5rem;position:relative;line-height:1.6}.venue-highlights li:before{content:"✦";color:var(--color-accent);position:absolute;left:0;font-size:1rem}.venue-highlights strong{color:var(--color-primary);font-weight:400}.happy-name{display:inline-block;transition:transform .3s ease}.happy-name.wiggle{animation:happy-dance 1.2s ease-in-out}@keyframes happy-dance{0%{transform:translateY(0) rotate(0)}10%{transform:translateY(-8px) rotate(-5deg) scale(1.05)}20%{transform:translateY(0) rotate(0) scale(1)}30%{transform:translateY(-6px) rotate(5deg) scale(1.03)}40%{transform:translateY(0) rotate(0) scale(1)}50%{transform:translateY(-10px) rotate(-3deg) scale(1.06)}60%{transform:translateY(0) rotate(3deg) scale(1)}70%{transform:translateY(-5px) rotate(-2deg) scale(1.02)}80%{transform:translateY(0) rotate(0) scale(1)}85%{transform:translateY(-3px) rotate(2deg) scale(1.01)}90%{transform:translateY(0) rotate(0) scale(1)}to{transform:translateY(0) rotate(0) scale(1)}}.exhibit-access{background-color:#d4af371a;padding:1.5rem;border-radius:8px;border-left:4px solid var(--color-accent);margin-top:2rem!important;text-align:center!important}.exhibit-access strong{color:var(--color-primary);font-size:1.1rem}.city-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:3rem;margin-top:3rem}.info-item{padding:2rem}.info-item h3{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-secondary);margin-bottom:1rem;font-weight:400}.info-item p{color:#666;margin-bottom:.75rem}.info-item strong{color:var(--color-primary);font-weight:400}.info-item a{text-decoration:none;color:inherit;transition:color .2s ease}.info-item a:hover,.info-item a:hover strong{color:var(--color-secondary)}.things-list{list-style:none;padding:0;margin:.25rem 0 1rem}.things-list li{color:#666;margin-bottom:.35rem;padding-left:1.5rem;position:relative}.things-list li:before{content:"•";color:var(--color-accent);font-weight:700;position:absolute;left:0}.engagement-map{margin:1.5rem 0}.map-wrapper{position:relative;width:100%}.map-wrapper iframe{width:100%;height:250px;border:2px solid #e0e0e0;border-radius:8px;display:block;margin-bottom:.75rem}.engagement-location{color:var(--color-primary);font-size:1rem;margin:.75rem 0;text-align:center}.map-link{display:block;text-align:center;margin-top:.5rem;font-size:.9rem}.map-link a{color:var(--color-secondary);text-decoration:none;transition:color .2s ease}.map-link a:hover{color:var(--color-primary);text-decoration:underline}.map-link span{color:#999;margin:0 .5rem}.faq-container{max-width:700px;margin:0 auto}.faq-item{margin-bottom:1rem;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;background:#fff}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:none;border:none;font-family:var(--font-sans);font-size:1.1rem;color:var(--color-primary);text-align:left;cursor:pointer;transition:background-color .2s ease}.faq-question:hover{background-color:var(--color-light)}.faq-icon{font-size:1.5rem;font-weight:300;color:var(--color-secondary);transition:transform .3s ease}.faq-item.active .faq-icon{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 1.5rem}.faq-item.active .faq-answer{max-height:500px;padding:0 1.5rem 1.5rem}.faq-answer p{color:#666;line-height:1.7;margin:0}.registry-links{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-top:2rem}.registry-link{display:inline-block;padding:1rem 2rem;background-color:var(--color-primary);color:#fff;text-decoration:none;border-radius:4px;font-weight:400;letter-spacing:.05em;transition:background-color .3s ease,transform .2s ease}.registry-link:hover{background-color:var(--color-secondary);transform:translateY(-2px)}footer{text-align:center;padding:4rem 2rem;background-color:var(--color-primary);color:#fff}footer p{font-family:var(--font-serif);font-size:1.5rem;font-weight:300}.countdown-container{margin-bottom:2rem}#countdown-egg{max-width:200px;height:auto;margin:0 auto 1rem;display:block}#countdown-text{font-size:1.25rem;margin:0}@media(max-width:768px){.content-section{padding:3rem 1.5rem}.event-details,.city-info{gap:2rem}}
