*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20'><text y='16' font-size='16'>*</text></svg>"),auto}html{scroll-behavior:smooth}#root{display:flex;flex-direction:column;min-height:100vh}html,body{overflow-x:hidden}body{font-family:Playfair Display,serif;color:#758fb2;background:linear-gradient(135deg,#f7f5f0,#faf8f3,#f5f3ee);text-align:center;padding:2rem;display:flex;flex-direction:column;min-height:100vh}@keyframes kenBurns{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes gentlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes confettiDrop{0%{transform:translateY(-100%) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}.navbar{position:sticky;top:0;z-index:100;background:linear-gradient(135deg,#f7f5f0f2,#faf8f3f2,#f5f3eef2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.75rem 1rem;margin-bottom:1.5rem}.nav-desktop{display:none;justify-content:center;gap:2rem;list-style:none}.nav-desktop li a{font-family:Gentium Book Basic,serif;color:#758fb2;text-decoration:none;padding:8px 12px;min-height:44px;display:inline-flex;align-items:center;position:relative}.nav-desktop li a:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:#5a7a56;transition:width .3s ease,left .3s ease}.nav-desktop li a:hover:after,.nav-desktop li a.active:after{width:100%;left:0}.nav-mobile-header{display:flex;align-items:center;justify-content:center;position:relative}.hamburger{position:absolute;left:0;background:none;border:none;cursor:pointer;padding:8px;display:flex;flex-direction:column;gap:5px;width:38px;height:38px;justify-content:center;align-items:center}.hamburger span{display:block;width:22px;height:2px;background-color:#758fb2;transition:transform .3s ease,opacity .3s ease;transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.page-title{font-family:Beth Ellen,cursive;font-weight:400;color:#5a7a56;font-size:28px;margin:0}.nav-mobile-menu{list-style:none;padding:1rem 0;display:flex;flex-direction:column;gap:.5rem;overflow:hidden}.nav-mobile-menu li a{font-family:Gentium Book Basic,serif;color:#758fb2;text-decoration:none;padding:8px 12px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;transition:color .2s ease}.nav-mobile-menu li a:hover{color:#5a7a56}.nav-mobile-menu li a.active{color:#5a7a56;border-bottom:2px solid #5a7a56}.main-content{flex:1;max-width:100%;padding:0 1rem}.names{color:#5a7a56;font-size:2.25rem;font-family:Beth Ellen,cursive;font-weight:400;display:flex;justify-content:center;margin-bottom:20px}.script{font-family:Beth Ellen,cursive;font-size:24px;font-weight:500;text-transform:lowercase;line-height:1;margin:16px 0 8px;color:#5a7a56;display:flex;justify-content:center}.wedding-details,.countdown{color:#758fb2;margin:8px 0;font-family:Gentium Book Basic,serif;letter-spacing:2px;font-weight:400;text-transform:uppercase;line-height:22px;display:flex;justify-content:center;font-size:14px}.venue-name{color:#758fb2;margin:8px 0 4px;font-family:Gentium Book Basic,serif;letter-spacing:1.5px;font-weight:400;text-transform:uppercase;font-size:1em;display:flex;justify-content:center}.venue-name-sub{color:#758fb2;margin:8px 0 4px;font-family:Gentium Book Basic,serif;letter-spacing:2px;font-weight:400;text-transform:uppercase;font-size:.8em;display:flex;justify-content:center}.address-line{color:#97aac4;margin:2px 0;font-family:Gentium Book Basic,serif;letter-spacing:1.5px;font-weight:400;text-transform:uppercase;font-size:.85em;display:flex;justify-content:center}.wedding-day{margin-top:3rem}.wedding-img{display:block;margin:2rem auto;max-width:280px;width:100%}.wedding-img img{width:100%;height:auto;object-fit:contain}.wedding-img.ken-burns img{animation:kenBurns 20s ease-in-out infinite;border-radius:12px}.flourish{display:flex;align-items:center;justify-content:center;gap:12px;margin:2rem auto;max-width:250px;color:#c5d4c0}.flourish:before,.flourish:after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,#c5d4c0,transparent)}.flourish-leaf{font-size:14px;color:#5a7a56;opacity:.6}.countdown-timer{display:flex;justify-content:center;gap:1.5rem;margin:1.5rem 0;flex-wrap:wrap}.countdown-unit{display:flex;flex-direction:column;align-items:center}.countdown-number{font-family:Playfair Display,serif;font-size:2rem;color:#5a7a56;line-height:1}.countdown-label{font-family:Gentium Book Basic,serif;font-size:.7rem;color:#97aac4;letter-spacing:2px;text-transform:uppercase;margin-top:4px}.rsvp-link{display:flex;justify-content:center;margin-bottom:20px}.registry-btn{display:inline-block;background-color:#758fb2;color:#fff;text-decoration:none;padding:14px 32px;font-size:16px;font-family:Gentium Book Basic,serif;border-radius:24px;min-height:48px;min-width:200px;text-align:center;transition:all .3s ease;box-shadow:0 2px 8px #758fb233}.registry-btn:hover{background-color:#5a7a56;color:#fff;text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 16px #5a7a564d}.registry-img-link{display:inline-block;text-decoration:none;transition:transform .3s ease}.registry-img-link:hover{transform:scale(1.03)}.registry-img-link.floating{animation:float 4s ease-in-out infinite}.submit-btn,.invite-btn{background-color:#758fb2;color:#fff;border:none;padding:14px 32px;font-size:16px;font-family:Gentium Book Basic,serif;cursor:pointer;border-radius:24px;min-height:48px;width:100%;max-width:200px;margin-top:1rem;transition:all .3s ease;box-shadow:0 2px 8px #758fb233}.submit-btn:hover,.invite-btn:hover{background-color:#5a7a56;transform:translateY(-2px);box-shadow:0 4px 16px #5a7a564d}.submit-btn:disabled,.invite-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}hr{width:100%;max-width:200px;background:linear-gradient(to right,transparent,#c5d4c0,transparent);height:1px;border:none;margin:20px auto}.details{font-family:Gentium Book Basic,serif;color:#758fb2}.registry-section{text-align:center;width:100%}.registry-links{margin-top:1rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.registry-links:first-child .wedding-img{margin-top:0}.invitation-form{max-width:500px;margin:0 auto;padding:1rem}.invitation-group,.form-group{margin-bottom:1.5rem;text-align:left}.invitation-form label,.rsvp-form label{display:block;margin-bottom:.5rem}.invitation-form input,.invitation-form select,.rsvp-form input,.rsvp-form select{width:100%;padding:12px 16px;font-size:16px;font-family:Gentium Book Basic,serif;border:1px solid #c5d4c0;border-radius:12px;color:#758fb2;background-color:#fff;transition:border-color .3s ease,box-shadow .3s ease}.invitation-form input:focus,.invitation-form select:focus,.rsvp-form input:focus,.rsvp-form select:focus{outline:none;border-color:#5a7a56;box-shadow:0 0 0 3px #5a7a5626}.photo-gallery{columns:2;column-gap:.75rem;padding:.5rem;max-width:1200px;margin:0 auto}.photo-item{break-inside:avoid;margin-bottom:.75rem;overflow:hidden;border-radius:12px;box-shadow:0 2px 12px #5a7a561f;cursor:pointer}.photo-item img{width:100%;height:auto;object-fit:cover;display:block;transition:transform .5s ease;border-radius:12px}.photo-item:hover img{transform:scale(1.05)}.lightbox-overlay{position:fixed;inset:0;z-index:1000;background:#000000e6;display:flex;align-items:center;justify-content:center}.lightbox-content{max-width:90vw;max-height:85vh;display:flex;align-items:center;justify-content:center}.lightbox-content img{max-width:100%;max-height:85vh;object-fit:contain;border-radius:8px}.lightbox-close{position:absolute;top:1rem;right:1.5rem;background:none;border:none;color:#fff;font-size:2.5rem;cursor:pointer;z-index:1001;line-height:1;padding:.5rem;transition:color .2s ease}.lightbox-close:hover{color:#c5d4c0}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:3.5rem;cursor:pointer;z-index:1001;padding:1rem;line-height:1;-webkit-user-select:none;user-select:none;transition:color .2s ease}.lightbox-arrow:hover{color:#c5d4c0}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.lightbox-counter{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);color:#fff;font-family:Gentium Book Basic,serif;font-size:.9rem;letter-spacing:2px}.faq-section{max-width:600px;margin:0 auto;text-align:left;padding:0 .5rem}.faq-item{margin-bottom:.5rem;border-radius:12px;background:#fff9;overflow:hidden;transition:box-shadow .3s ease}.faq-item:hover{box-shadow:0 2px 12px #5a7a561a}.faq-question{color:#5a7a56;font-family:Gentium Book Basic,serif;font-size:1em;font-weight:700;padding:1rem 1.25rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none}.faq-question:hover{color:#4a6a46}.faq-chevron{font-size:.8em;transition:transform .3s ease;color:#97aac4;flex-shrink:0;margin-left:1rem}.faq-chevron.open{transform:rotate(180deg)}.faq-answer{color:#758fb2;font-family:Gentium Book Basic,serif;font-size:.95em;line-height:1.6;padding:0 1.25rem 1rem}.confetti-container{position:fixed;inset:0;pointer-events:none;z-index:999;overflow:hidden}.confetti-piece{position:absolute;top:-10px;width:10px;height:10px;border-radius:50%;animation:confettiDrop 3s ease-in forwards}.footer{font-family:Gentium Book Basic,serif;margin-top:auto;color:#758fb2;display:flex;justify-content:center;padding-top:3rem;padding-bottom:1rem}.footer-inner{text-align:center}.footer-initials{text-align:center;display:block;width:100%;font-size:1.5rem;font-family:Beth Ellen,cursive;color:#5a7a56;font-weight:400}.footer-date{font-family:Gentium Book Basic,serif;color:#97aac4;font-size:.85rem;letter-spacing:3px;text-transform:uppercase}.error-message{color:#c0392b;margin-top:1rem}.success-message{color:#5a7a56;margin-top:1rem}.page-transition{width:100%}@media(min-width:576px){.names{font-size:3rem}.script{font-size:30px}.wedding-details,.countdown{font-size:inherit;letter-spacing:3px}.venue-name{font-size:1.1em;letter-spacing:2px}.address-line{font-size:.9em;letter-spacing:2px}.wedding-day{margin-top:5rem}.wedding-img{max-width:400px}.photo-gallery{columns:2;column-gap:1.5rem;padding:1rem}.faq-section{padding:0}.faq-question{font-size:1.1em}.faq-answer{font-size:1em}.countdown-number{font-size:2.5rem}}@media(min-width:769px){body{padding:2rem}.names{font-size:3.25rem}.nav-mobile-header,.nav-mobile-menu{display:none!important}.nav-desktop{display:flex}.wedding-img{max-width:500px}.wedding-img img{max-height:450px}.photo-gallery{columns:3;column-gap:1.5rem}.countdown-number{font-size:3rem}}@media(max-width:575px){body{padding:.75rem}.page-title{font-size:24px}.footer h1{font-size:1.25rem}.countdown-timer{gap:1rem}.countdown-number{font-size:1.75rem}}
