*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;font-family:Georgia,serif;color:#2e2e2e;scroll-behavior:smooth;background-color:#97b497}.parallax{height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#fff;position:relative;overflow:hidden;clip-path:inset(0)}.parallax:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover;z-index:-1}#parallax-welcome:before{background-image:url(/assets/MachuPicchu-CIFwQXbJ.jpg)}#parallax-countdown:before{background-image:url(/assets/Watch-DXjUq0f3.jpg)}#parallax-faq:before{background-image:url(/assets/Bon%20Echo-C9ye2FgM.jpg)}@media (max-width: 768px){#parallax-welcome{justify-content:flex-end;padding-bottom:8vh}#parallax-welcome:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:50%;background:linear-gradient(to top,rgba(0,0,0,.6),transparent);z-index:0;pointer-events:none}#parallax-welcome h1,#parallax-welcome p{position:relative;z-index:1}#parallax-welcome:before{background-image:url(/assets/MachuPicchu-CoacJXap.jpg)}#parallax-countdown:before{background-image:url(/assets/Watch-CYchc2ac.jpg)}#parallax-faq:before{background-image:url(/assets/Bon%20Echo-CoNwVBVS.jpg)}.parallax:before{background-attachment:scroll;background-position:center center}.parallax h1 span{display:block}}.parallax h1{font-size:3rem;padding:1rem 2rem;border-radius:10px}.parallax p{font-size:1.3rem;margin-top:1rem;padding:.5rem 1.5rem;border-radius:6px}section{padding:3rem 1rem;max-width:800px;margin:auto;line-height:1.6;text-align:center}footer{background:#eee;padding:1rem;text-align:center;font-size:.9rem}.hamburger{position:fixed;top:20px;right:20px;width:30px;height:24px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;z-index:1001}.hamburger span{display:block;height:4px;width:100%;background:#fff;border-radius:2px;transition:.3s}.hamburger.active span:nth-child(1){transform:rotate(45deg) translateY(14px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translateY(-14px)}.nav-menu{position:fixed;top:0;right:-280px;width:280px;max-width:80vw;height:100%;background:#000000e6;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:right .3s ease-in-out;z-index:1000}.nav-menu a{color:#fff;text-decoration:none;font-size:1.5rem;margin:1rem 0;transition:color .2s;text-align:center;width:100%;padding:0 1.5rem;line-height:1.2}.nav-menu a:hover{color:gold}.nav-menu.active{right:0}.countdown-wrapper{background:#0006;padding:2rem;border-radius:12px;text-align:center;color:#fff}.countdown-wrapper h2{font-size:2.5rem;margin-bottom:1rem}.timer{display:flex;justify-content:center;gap:2rem;font-size:1.5rem}.timer div{background:#ffffff26;padding:1rem 1.5rem;border-radius:10px;min-width:90px}.timer span{font-size:2.2rem;font-weight:700;display:block;color:#fff}#rsvp{background:#f8f9fa;padding:4rem 2rem;border-radius:12px;margin:2rem auto;max-width:900px}.guest-lookup{background:#fff;padding:2rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 10px #0000001a}.rsvp-lookup-row{display:flex;gap:1rem}.rsvp-lookup-row #rsvp-code-input{flex:1}.rsvp-lookup-row #lookup-btn{width:auto}.rsvp-form-container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-top:2rem}.form-group{margin-bottom:1.5rem;text-align:left}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#2e2e2e}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit;transition:border-color .3s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#97b497;box-shadow:0 0 0 3px #97b4971a}.guest-count-dropdown{width:100%;padding:.75rem 2.5rem .75rem .75rem;border:2px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit;background:#fff;color:#2e2e2e;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232e2e2e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem;transition:border-color .3s ease,box-shadow .3s ease}.guest-count-dropdown:focus{outline:none;border-color:#97b497;box-shadow:0 0 0 3px #97b4971a}.guest-count-dropdown:hover{border-color:#97b497}.guest-count-dropdown option{padding:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.contact-info,.events-section,.additional-info{margin-bottom:2rem;padding:1.5rem;background:#f8f9fa;border-radius:6px}.contact-info h4,.events-section h4{margin-bottom:1rem;color:#2e2e2e;font-size:1.2rem}.event-card{background:#fff;border:2px solid #e9ecef;border-radius:8px;padding:1.5rem;margin-bottom:1rem;transition:border-color .3s ease}.event-card:hover{border-color:#97b497}.event-header{margin-bottom:1rem}.event-name{font-size:1.3rem;font-weight:600;color:#2e2e2e;margin-bottom:.25rem}.event-details{color:#666;font-size:1rem}.rsvp-options{display:flex;gap:1rem;flex-wrap:wrap}.rsvp-option{flex:1;position:relative}.rsvp-option input[type=radio]{position:absolute;opacity:0;cursor:pointer}.rsvp-option label{display:block;margin:0;font-weight:600;cursor:pointer;padding:1rem 1.5rem;border:2px solid #e9ecef;border-radius:8px;text-align:center;background:#fff;color:#2e2e2e;transition:all .3s ease;-webkit-user-select:none;user-select:none}.rsvp-option label:hover{border-color:#97b497;background:#f8fdf8;transform:translateY(-1px);box-shadow:0 2px 8px #97b49733}.rsvp-option input[type=radio]:checked+label{background:#97b497;color:#fff;border-color:#97b497;box-shadow:0 2px 8px #97b4974d}.rsvp-option input[type=radio]:focus+label{outline:none;box-shadow:0 0 0 3px #97b49733}button[type=submit],.submit-btn{background:#97b497;color:#fff;padding:1rem 2rem;border:none;border-radius:6px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;width:100%}button[type=submit]:hover,.submit-btn:hover{background:#7fa07f;transform:translateY(-2px);box-shadow:0 4px 15px #97b4974d}.event-location{margin-top:.5rem}.location-link{color:#97b497;text-decoration:none;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:.95rem}.location-link:hover{color:#7fa07f;text-decoration:underline}.invalid-field{outline:2px solid #a35d47!important;outline-offset:4px;border-radius:6px}.rsvp-messages{margin-top:2rem;padding:1rem;border-radius:6px;text-align:center;display:none}.rsvp-messages.success{background:#e9f0e9;color:#4a634a;border:1px solid #d4ddd4;display:block}.rsvp-messages.error{background:#fdf2f0;color:#a35d47;border:1px solid #f5dcd5;display:block}.rsvp-messages.info{background:#f0f4f0;color:#637d63;border:1px solid #e0e8e0;display:block}.guest-selection{margin-top:2rem;padding:2rem;background:#f8f9fa;border-radius:8px}.guest-selection h3{margin-bottom:1.5rem;color:#2e2e2e;font-size:1.2rem}.guest-options{display:flex;flex-direction:column;gap:1rem}.guest-option-btn{background:#fff;color:#2e2e2e;padding:1rem 1.5rem;border:2px solid #e9ecef;border-radius:6px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-align:center}.guest-option-btn:hover{background:#97b497;color:#fff;border-color:#97b497;transform:translateY(-2px);box-shadow:0 4px 15px #97b4974d}#locations{background:#fff;padding:4rem 2rem;border-radius:12px;margin:2rem auto;max-width:900px;margin-left:auto;margin-right:auto}#map-container{height:450px;width:100%;margin-top:1.5rem;border-radius:8px;box-shadow:0 4px 15px #0000000d;border:4px solid white;z-index:1}.leaflet-layer,.leaflet-control-zoom-in,.leaflet-control-zoom-out,.leaflet-control-attribution{filter:hue-rotate(50deg) saturate(.6) brightness(1.05) contrast(.9)}.custom-marker-icon{display:flex;justify-content:center;align-items:center}.marker-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;background:#97b497;position:absolute;transform:rotate(-45deg);left:50%;top:50%;margin:-15px 0 0 -15px;box-shadow:0 2px 5px #0003}.marker-pin:after{content:"";width:14px;height:14px;margin:8px 0 0 8px;background:#fff;position:absolute;border-radius:50%}.map-popup-content{font-family:inherit;padding:5px}.map-popup-header{font-weight:700;font-size:1.1rem;color:#2e2e2e;margin-bottom:5px}.map-popup-time{color:#666;font-size:.9rem;margin-bottom:5px}.map-popup-address{font-style:italic;font-size:.85rem;color:#97b497;text-decoration:none;display:block;margin-top:5px}.map-popup-address:hover{text-decoration:underline;color:#7fa07f}#gallery{background:#f8f9fa;padding:4rem 2rem;border-radius:12px;margin:2rem auto;max-width:900px}#gallery h2{margin-bottom:.5rem}#gallery p{margin-bottom:2rem;color:#666}#faq{background:#fff;padding:4rem 2rem;border-radius:12px;margin:2rem auto;max-width:900px}.faq-container{text-align:left;margin-top:2rem}.faq-item{background:#f8f9fa;border-radius:8px;margin-bottom:1rem;overflow:hidden;transition:all .3s ease;border:2px solid transparent}.faq-item[open]{border-color:#97b497;background:#fff;box-shadow:0 4px 15px #97b4971a}.faq-item summary{padding:1.25rem 1.5rem;font-size:1.1rem;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;color:#2e2e2e;transition:color .3s ease}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";font-size:1.5rem;font-weight:300;transition:transform .3s ease}.faq-item[open] summary:after{transform:rotate(45deg);content:"+"}.faq-item summary:hover{color:#97b497}.faq-answer{padding:0 1.5rem 1.5rem;line-height:1.6;color:#555;animation:slideDown .3s ease-out}.faq-answer p{margin-bottom:1rem;text-align:left}.faq-answer p:last-child{margin-bottom:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.gallery-container{column-count:3;column-gap:1rem;width:100%}.gallery-item{break-inside:avoid;margin-bottom:1rem;position:relative;border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .4s cubic-bezier(.165,.84,.44,1),box-shadow .4s ease,opacity .6s ease;box-shadow:0 4px 15px #0000000d;background:#fff;opacity:0;transform:translateY(20px)}.gallery-item.reveal{opacity:1;transform:translateY(0)}.gallery-item img{width:100%;height:auto;display:block;transition:filter .3s ease,transform .6s cubic-bezier(.165,.84,.44,1)}.gallery-item:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 15px 30px #97b4974d}.gallery-item:hover img{transform:scale(1.08);filter:brightness(1.05)}.lightbox{display:none;position:fixed;z-index:2000;top:0;left:0;width:100%;height:100%;background-color:#000000e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:center;align-items:center;opacity:0;transition:opacity .4s ease}.lightbox.active{display:flex;opacity:1}.lightbox-content{max-width:90%;max-height:85%;border-radius:8px;box-shadow:0 0 30px #00000080;transform:scale(.9);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.lightbox.active .lightbox-content{transform:scale(1)}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;color:#fff;font-size:3rem;font-weight:700;cursor:pointer;transition:.3s;-webkit-user-select:none;user-select:none;z-index:2010;display:flex;align-items:center;justify-content:center;width:60px;height:60px}.lightbox-close{top:30px;right:40px;font-size:40px}.lightbox-prev{top:50%;left:30px;transform:translateY(-50%)}.lightbox-next{top:50%;right:30px;transform:translateY(-50%)}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{color:#97b497;transform:scale(1.1)}.lightbox-prev:hover,.lightbox-next:hover{transform:translateY(-50%) scale(1.1)}.lightbox-side-nav{position:absolute;top:0;width:25%;height:100%;z-index:2005;cursor:pointer}.lightbox-side-nav.left{left:0}.lightbox-side-nav.right{right:0}@media (max-width: 992px){.gallery-container{column-count:2}}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.rsvp-options{flex-direction:row;gap:.5rem}.rsvp-option label{padding:.75rem 1rem;font-size:.9rem}.timer{flex-wrap:wrap;gap:1rem}.timer div{min-width:70px;padding:.75rem 1rem}.timer span{font-size:1.8rem}#rsvp{padding:2rem 1rem;margin:1rem}.gallery-container{column-count:1;column-gap:1rem}.lightbox-close{top:20px;right:20px}.lightbox-prev,.lightbox-next{display:none}.rsvp-lookup-row{flex-direction:column}.rsvp-lookup-row #lookup-btn{width:100%}}#wedding-party{background:#fff;padding:4rem 2rem;border-radius:12px;margin:2rem auto;max-width:1000px}.party-group{margin-bottom:4rem}.party-group h3{font-size:1.8rem;margin-bottom:2rem;color:#97b497;text-transform:uppercase;letter-spacing:2px;text-align:center}.party-staggered-grid{display:flex;justify-content:center;gap:3rem;max-width:800px;margin:0 auto}.party-staggered-grid .column{display:flex;flex-direction:column;gap:2rem;align-items:center}.party-staggered-grid .column.right{margin-top:100px}.party-member{display:flex;flex-direction:column;align-items:center;gap:1rem;transition:transform .3s ease}.party-member:hover{transform:translateY(-5px)}.member-photo{width:150px;height:150px;border-radius:50%;overflow:hidden;border:4px solid #f8f9fa;box-shadow:0 4px 15px #0000001a;background-size:cover;background-position:center;transition:border-color .3s ease,box-shadow .3s ease}.member-photo.placeholder{background-color:#f1f1f1;display:flex;align-items:center;justify-content:center;position:relative}.member-photo.placeholder:after{content:"👤";font-size:3rem;opacity:.3}.party-member:hover .member-photo{border-color:#97b497;box-shadow:0 8px 25px #97b4974d}.member-name{font-size:1.2rem;font-weight:600;color:#2e2e2e}@media (max-width: 600px){.party-staggered-grid,.party-staggered-grid .column{gap:1.5rem}.party-staggered-grid .column.right{margin-top:50px}.member-photo{width:120px;height:120px}.member-name{font-size:1rem}}.family-triangular-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem 3rem;max-width:700px;margin:0 auto;justify-items:center}.family-triangular-grid .party-member:last-child{grid-column:1 / span 2}@media (max-width: 600px){.family-triangular-grid{gap:2rem 1.5rem}}
