*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Vollkorn,serif;line-height:1.6;color:#2c3e50;overflow-x:hidden}h1,h2,h3{font-family:Vollkorn,serif;font-weight:400}.hero-title{font-size:clamp(3rem,8vw,6rem);font-weight:300;letter-spacing:.1em;text-align:center;margin-bottom:2rem;font-style:normal}.section-title{font-size:clamp(2rem,5vw,3rem);font-weight:500;text-align:center;margin-bottom:1rem;letter-spacing:.05em}.section-subtitle{font-size:clamp(2rem,4.5vw,2.8rem);text-align:center;margin-bottom:2rem;font-weight:300;opacity:.9}.venue-name{font-size:clamp(1.8rem,4vw,2.5rem);text-align:center;margin-bottom:.5rem;margin-top:2rem;font-weight:400}.venue-location{font-size:clamp(1.2rem,3vw,1.6rem);text-align:center;font-weight:300;opacity:.8}.countdown-text{font-size:clamp(1.2rem,3vw,1.6rem);text-align:center;font-weight:300;margin-top:.5rem;opacity:.8}.nav-section{padding:1.25rem 2rem;border-top:1px solid rgba(44,62,80,.08);border-bottom:1px solid rgba(44,62,80,.08)}.site-nav{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem .25rem;font-size:clamp(1rem,2.5vw,1.1rem)}.site-nav a{color:inherit;text-decoration:none;padding:.25rem .5rem;opacity:.7;transition:opacity .2s ease}.site-nav a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}.nav-divider{opacity:.35;-webkit-user-select:none;user-select:none}@media (max-width: 480px){.nav-section{padding:1rem}.site-nav{gap:.25rem .15rem}.site-nav a{padding:.25rem .35rem}}#app{width:100%;min-height:100vh}.wedding-section{min-height:100vh;position:relative;display:flex;align-items:center;justify-content:center;padding:4rem 2rem}.schedule-section,.location-section{min-height:auto;padding:6rem 2rem}.section-content{max-width:800px;width:100%;text-align:center;position:relative;z-index:2}.parallax{position:relative;overflow:hidden}.parallax-bg{position:absolute;top:-20%;left:0;width:100%;height:120%;background-position:center;background-repeat:no-repeat;background-size:cover;will-change:transform}.overlay{position:absolute;inset:0;z-index:1}#hero{background:linear-gradient(135deg,#f8f9fa,#e9ecef);min-height:80vh}#details{background:linear-gradient(135deg,#f1f3f4,#e8eaf6);min-height:60vh}#info{background:linear-gradient(135deg,#a8e6cf,#88d8a3);min-height:80vh}@media (max-width: 768px){.parallax-bg{top:-10%;height:110%}.wedding-section{min-height:100vh;padding:2rem 1rem}.schedule-section,.location-section{min-height:auto;padding:4rem 1rem}.hero-title{font-size:3rem}.section-title{font-size:2.5rem}}@media (max-width: 480px){.wedding-section{padding:1.5rem 1rem}.hero-title{font-size:2.5rem}.section-title,.section-subtitle{font-size:1.8rem}}.animate-content{opacity:1;transform:translateY(0)}.js-enabled .animate-content{animation:fadeSlideIn .6s ease-out forwards;opacity:0}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.js-enabled .animate-content:nth-child(1){animation-delay:0s}.js-enabled .animate-content:nth-child(2){animation-delay:.1s}.js-enabled .animate-content:nth-child(3){animation-delay:.2s}.js-enabled .animate-content:nth-child(4){animation-delay:.3s}.js-enabled .animate-content:nth-child(5){animation-delay:.4s}.js-enabled .animate-content:nth-child(6){animation-delay:.5s}.js-enabled .animate-content:nth-child(7){animation-delay:.6s}.js-enabled .animate-content:nth-child(8){animation-delay:.7s}.section-content h1{animation-delay:.2s}.section-content p{animation-delay:.4s}.section-content h2{animation-delay:.6s}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);color:inherit;opacity:.7;animation:bounce 2s infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}.parallax{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1"><rect width="1" height="1" fill="%23f8f9fa"/></svg>')}.parallax .section-content{text-shadow:0 2px 4px rgba(0,0,0,.3)}.text-section .section-content{text-shadow:none}.schedule-wrapper{max-width:700px;margin:1rem auto 0;padding:1.5rem;background:#fff3;border-radius:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.4)}.schedule-container{max-width:600px;margin:0 auto;text-align:left;position:relative;padding:1rem 0}.schedule-event{display:flex;margin-bottom:2rem;position:relative}.schedule-event:last-child{margin-bottom:0}.timeline{flex-shrink:0;width:60px;display:flex;flex-direction:column;align-items:center;margin-right:2rem}.timeline-date{display:flex;flex-direction:column;align-items:center;background:#2c3e50;color:#fff;border-radius:6px;padding:.4rem .6rem;margin-bottom:.6rem;min-width:50px;box-shadow:0 2px 8px #2c3e5040}.timeline-month{font-size:.7rem;font-weight:600;letter-spacing:.08em;line-height:1;opacity:.9}.timeline-day{font-size:1.4rem;font-weight:500;line-height:1.2}.timeline-line{width:2px;flex-grow:1;background:#2c3e504d;margin-top:1rem;min-height:60px}.event-content{flex-grow:1;padding-top:0}.event-time{font-size:clamp(1.2rem,3vw,1.4rem);font-weight:600;color:inherit;margin-bottom:.5rem;line-height:1.3}.event-title{font-size:clamp(1rem,2.5vw,1.2rem);font-weight:400;color:inherit;margin-bottom:.8rem;line-height:1.4}.event-location,.event-sublocation{font-size:clamp(.95rem,2.2vw,1.1rem);color:inherit;opacity:.8;margin-bottom:.3rem;font-weight:500}.event-details{font-size:clamp(.9rem,2vw,1rem);color:inherit;opacity:.8;font-style:italic;margin-top:.5rem}.schedule-footer{text-align:center;font-size:clamp(1rem,2.5vw,1.1rem);font-weight:400;color:inherit;opacity:.8;margin-top:2rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.2)}@media (max-width: 768px){.schedule-wrapper{max-width:100%;padding:1rem;margin-top:1rem}.schedule-container{max-width:100%;padding:1rem 0}.timeline{width:50px;margin-right:1.25rem}.timeline-date{padding:.3rem .4rem;min-width:44px;margin-bottom:.5rem}.timeline-month{font-size:.6rem}.timeline-day{font-size:1.2rem}.schedule-event{margin-bottom:1.5rem}.schedule-event:last-child{margin-bottom:0}}.location-container{max-width:700px;margin:1rem auto 0;text-align:left}.location-heading{font-size:clamp(1.3rem,3.5vw,1.6rem);font-weight:500;margin-top:2rem;margin-bottom:1rem;color:inherit}.location-heading:first-child{margin-top:0}.location-note{font-size:clamp(1rem,2.5vw,1.1rem);line-height:1.6;margin-bottom:1.5rem;opacity:.9;font-style:italic}.location-map{width:100%;height:300px;margin-bottom:2rem;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #00000026;border:2px solid rgba(255,255,255,.6)}.custom-map-marker{background:transparent;border:none}.marker-pin{width:36px;height:36px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #0000004d;border:2px solid rgba(255,255,255,.9)}.marker-pin i{transform:rotate(45deg);font-size:14px;color:#fff;line-height:1}.map-popup{font-family:Vollkorn,serif;text-align:center;padding:.25rem}.map-popup strong{font-size:1rem;font-weight:600;color:#2c3e50;display:block;margin-bottom:.25rem}.map-popup p{font-size:.85rem;color:#5a6c7d;margin:0;line-height:1.4}.leaflet-popup-content-wrapper{border-radius:8px;box-shadow:0 3px 12px #0003}.leaflet-popup-content{margin:10px 12px}.leaflet-popup-tip{box-shadow:0 3px 12px #0003}.location-item{margin-bottom:1rem;padding:1rem 1.25rem;background:#fff3;border-radius:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.4);display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}.location-name{font-size:clamp(1.1rem,3vw,1.3rem);font-weight:500;margin:0;color:inherit;line-height:1.4}.location-address{font-size:clamp(1rem,2.5vw,1.1rem);margin:0;opacity:.8}.location-website-link{color:inherit;text-decoration:underline}.location-website-link:hover{opacity:.7}.location-booking{font-size:clamp(1rem,2.5vw,1.1rem);line-height:1.6;margin-bottom:.5rem;opacity:.9}.location-transport{font-size:clamp(.95rem,2.2vw,1.05rem);margin:0;opacity:.85;font-style:italic}.location-description{font-size:clamp(1rem,2.5vw,1.1rem);line-height:1.5;margin:0;opacity:.9;width:100%;text-align:justify}.location-booking-toggle{background:#2c3e501a;border:1px solid rgba(44,62,80,.3);border-radius:4px;padding:.4rem .8rem;font-size:clamp(.9rem,2vw,1rem);font-family:inherit;color:inherit;cursor:pointer;transition:background .2s ease;margin-left:auto}.location-booking-toggle:hover{background:#2c3e5033}.location-booking-details{width:100%;margin-top:.5rem;padding-top:.75rem;border-top:1px solid rgba(44,62,80,.15)}.location-phone{font-size:clamp(1rem,2.5vw,1.15rem);font-weight:500;margin-bottom:.5rem}.location-phone a{color:inherit;text-decoration:underline}.location-phone a:hover{opacity:.8}.location-instructions{font-size:clamp(.95rem,2.2vw,1.05rem);line-height:1.6;margin:0;opacity:.85}.location-booking-link{display:inline-block;font-size:clamp(1rem,2.5vw,1.1rem);color:inherit;font-weight:500;text-decoration:underline}.location-booking-link:hover{opacity:.8}.registry-section{min-height:auto;padding:6rem 2rem}.registry-container{max-width:600px;margin:1rem auto 0;text-align:center}.registry-message{font-size:clamp(1.1rem,2.8vw,1.3rem);line-height:1.7;margin-bottom:2rem;opacity:.9}.zola-registry-embed{display:inline-block;padding:1rem 2.5rem;font-family:Vollkorn,serif;font-size:clamp(1.1rem,2.5vw,1.25rem);font-weight:500;color:#fff;background:#2c3e50;border:none;border-radius:4px;text-decoration:none;cursor:pointer;transition:background .2s ease,transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 12px #2c3e5040}.zola-registry-embed:hover{background:#3d5166;transform:translateY(-2px);box-shadow:0 6px 16px #2c3e504d}.registry-container iframe{border:2px solid rgba(44,62,80,.2);border-radius:8px;box-shadow:0 4px 12px #00000014;background:#fff}@media (max-width: 768px){.registry-section{padding:4rem 1rem}.registry-container{max-width:100%}.zola-registry-embed{padding:.875rem 2rem}}.faq-container{max-width:700px;margin:1rem auto 0;text-align:left}.faq-item{margin-bottom:2rem;padding:1.5rem;background:#fff3;border-radius:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.4)}.faq-question{font-size:clamp(1.1rem,3vw,1.3rem);font-weight:500;margin-bottom:.8rem;color:inherit;line-height:1.4}.faq-answer{font-size:clamp(1rem,2.5vw,1.1rem);line-height:1.6;margin:0;opacity:.9}@media (max-width: 768px){.location-container{max-width:100%;margin-top:1rem}.location-map{height:250px;margin-bottom:1.5rem}.location-item{padding:.75rem 1rem;margin-bottom:1rem;flex-direction:column;align-items:flex-start;gap:.25rem}.location-booking-toggle{margin-left:0;margin-top:.5rem}.location-heading{font-size:1.3rem;margin-top:1.5rem}.location-heading:first-child{margin-top:0}.faq-container{max-width:100%;margin-top:1rem}.faq-item{padding:1rem;margin-bottom:1.5rem}.faq-question{font-size:1.1rem}.faq-answer{font-size:1rem}}.parallax-section{min-height:auto;padding:3rem 2rem;display:flex;align-items:center;justify-content:center;background:#f8f9fa}.parallax-section .parallax-bg,.parallax-section .overlay{display:none}.parallax-section:before{content:"✦";font-size:1.5rem;color:#2c3e50;opacity:.3;letter-spacing:1rem}#proposal:before{content:"❧"}#couple:before{content:"✿"}#boboli:before{content:"✦"}#fort-williams:before{content:"♡"}@media (max-width: 768px){#fort-williams .parallax-bg{background-position:30% center}}.parallax-section:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(200px,40%);height:1px;background:linear-gradient(90deg,transparent,rgba(44,62,80,.2),transparent);z-index:-1}.js-enabled .parallax-section{min-height:100vh;padding:4rem 2rem;background:transparent}.js-enabled .parallax-section:before,.js-enabled .parallax-section:after{display:none}.js-enabled .parallax-section .parallax-bg,.js-enabled .parallax-section .overlay{display:block}.location-map{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(44,62,80,.03) 25%,transparent 25%),linear-gradient(225deg,rgba(44,62,80,.03) 25%,transparent 25%),linear-gradient(45deg,rgba(44,62,80,.03) 25%,transparent 25%),linear-gradient(315deg,rgba(44,62,80,.03) 25%,transparent 25%),#f8f9fa;background-size:20px 20px;background-position:0 0,10px 0,10px -10px,0 10px}.js-enabled .location-map{display:block;background:none}.map-fallback{text-align:center;padding:2.5rem}.map-fallback:before{content:"📍";display:block;font-size:2rem;margin-bottom:.75rem;opacity:.7}.map-fallback p{margin:0;font-size:clamp(1rem,2.5vw,1.1rem)}.map-fallback a{color:#2c3e50;font-weight:500;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}.map-fallback a:hover{opacity:.7}.js-enabled .map-fallback,.js-enabled .location-collapsible{display:none}.location-collapsible{width:100%;margin-top:.75rem}.location-collapsible summary{background:#2c3e5014;border:1px solid rgba(44,62,80,.2);border-radius:4px;padding:.5rem 1rem;font-size:clamp(.9rem,2vw,1rem);font-family:inherit;color:inherit;cursor:pointer;transition:background .2s ease;list-style:none;display:inline-flex;align-items:center;gap:.5rem}.location-collapsible summary:before{content:"+";font-weight:300;font-size:1.2em}.location-collapsible[open] summary:before{content:"−"}.location-collapsible summary::-webkit-details-marker{display:none}.location-collapsible summary:hover{background:#2c3e5026}.location-collapsible .location-booking-details{padding:1rem 0 .5rem;margin-top:.75rem;border-top:1px solid rgba(44,62,80,.1)}#countdown:empty{display:none}.section-title{position:relative}.section-title:after{content:"";display:block;width:60px;height:2px;background:currentColor;opacity:.25;margin:1rem auto 0}@media (prefers-reduced-motion: no-preference){html:not(.js-enabled) main{animation:gentleFadeIn .6s ease-out}}@keyframes gentleFadeIn{0%{opacity:.85}to{opacity:1}}html:not(.js-enabled) .hero-title{letter-spacing:.15em}html:not(.js-enabled) .section-content{max-width:650px}html:not(.js-enabled) .wedding-section{border-bottom:1px solid rgba(44,62,80,.08)}html:not(.js-enabled) .wedding-section:last-child{border-bottom:none}
