:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;font-weight:400;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh}@media(max-width:480px){.section-title{font-size:2rem!important}.section-subtitle{font-size:.8rem!important}.section-container{padding:0!important}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}.app{min-height:100vh;display:flex;flex-direction:column}.footer{background:#f5f5f5;padding:3rem 2rem;text-align:center}.footer p{font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:300;color:#999;margin:0}@media(max-width:768px){.footer{padding:2.5rem 1.5rem}.footer p{font-size:.8rem}}@media(max-width:480px){.footer{padding:2rem 1rem}.footer p{font-size:.75rem}}.accommodations-section{padding:6rem 2rem;background:#fff}.hotels-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1000px;margin:0 auto}.hotel-card{padding:2rem;border:1px solid #eee;transition:box-shadow .3s}.hotel-card:hover{box-shadow:0 4px 20px #00000014}.hotel-name{font-family:Cormorant Garamond,serif;font-size:1.8rem;font-weight:400;letter-spacing:.05em;color:#333;margin:0 0 1rem}.hotel-address{font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:300;color:#666;margin:0 0 .5rem;line-height:1.5}.hotel-phone{font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:300;color:#666;margin:0 0 1rem}.hotel-rate{font-family:Montserrat,sans-serif;font-size:1rem;font-weight:400;color:#333;margin:0 0 .5rem}.hotel-note{font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:300;font-style:italic;color:#999;margin:0 0 1.5rem}.hotel-link{font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:400;letter-spacing:1px;color:#333;text-decoration:none;text-transform:uppercase;transition:color .3s}.hotel-link:hover{color:#666}@media(max-width:768px){.accommodations-section{padding:4rem 1rem}.hotels-grid{grid-template-columns:1fr}.hotel-card{padding:1.5rem}.hotel-name{font-size:1.6rem}.hotel-address,.hotel-phone{font-size:.85rem}}@media(max-width:480px){.accommodations-section{padding:3rem 1rem}.hotel-card{padding:1.25rem}.hotel-name{font-size:1.4rem}.hotel-address,.hotel-phone{font-size:.8rem}.hotel-rate{font-size:.95rem}.hotel-note,.hotel-link{font-size:.8rem}}.faq-section{padding:6rem 2rem;background:#fff}.faq-list{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:2.5rem}.faq-item{padding-bottom:2.5rem;border-bottom:1px solid #eee}.faq-item:last-child{border-bottom:none;padding-bottom:0}.faq-question{font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:400;letter-spacing:.05em;color:#333;margin:0 0 1rem}.faq-answer{font-family:Montserrat,sans-serif;font-size:1rem;font-weight:300;line-height:1.8;color:#666;margin:0}@media(max-width:768px){.faq-section{padding:4rem 1rem}.faq-list{gap:2rem}.faq-item{padding-bottom:2rem}.faq-question{font-size:1.3rem}.faq-answer{font-size:.95rem}}@media(max-width:480px){.faq-section{padding:3rem 1rem}.faq-list{gap:1.5rem}.faq-item{padding-bottom:1.5rem}.faq-question{font-size:1.15rem}.faq-answer{font-size:.9rem}}.fade-in-section{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.fade-in-section.is-visible{opacity:1;transform:translateY(0)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;padding:8rem 4rem 4rem;background:#fafafa}.hero-main{display:flex;align-items:center;justify-content:space-between;gap:6rem;max-width:1400px;width:100%}.hero-left{display:flex;flex-direction:column;gap:2rem;flex:0 0 auto}.hero-title{font-family:Cormorant Garamond,serif;font-size:8rem;font-weight:300;line-height:.9;letter-spacing:.05em;color:#333;margin:0;animation:fadeInUp 1s ease-out}.hero-badge{position:relative;animation:scaleIn 1s ease-out .3s both;align-self:flex-start}.badge-circle{width:140px;height:140px;border:1px solid #333;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem}.badge-text{font-family:Montserrat,sans-serif;font-size:.7rem;font-weight:300;letter-spacing:2px;color:#333}.hero-photos{display:flex;gap:2rem;align-items:center;justify-content:flex-end;animation:fadeIn 1s ease-out .9s both;flex:1}.hero-photo-frame{width:280px;height:380px;overflow:hidden;border-radius:50%/60%;border:1px solid #ddd;box-shadow:0 4px 20px #00000014;transition:transform .3s ease}.hero-photo-frame:hover{transform:translateY(-5px)}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:grayscale(100%);transition:filter .3s ease}.hero-photo-frame:hover .hero-photo{filter:grayscale(0%)}.hero-date{text-align:center;animation:fadeIn 1s ease-out .6s both}.date-label{font-family:Montserrat,sans-serif;font-size:.75rem;font-weight:400;letter-spacing:2px;color:#666;margin-bottom:.5rem}.date-value{font-family:Cormorant Garamond,serif;font-size:2rem;font-weight:300;color:#333;margin:0}@media(max-width:1200px){.hero-main{gap:4rem}.hero-title{font-size:6rem}.hero-photo-frame{width:220px;height:300px}}@media(max-width:968px){.hero-section{padding:8rem 2rem 4rem}.hero-main{flex-direction:column;gap:3rem}.hero-left{align-items:center;text-align:center}.hero-title{font-size:5rem}.hero-badge{align-self:center}.hero-date{text-align:center}.hero-photos{justify-content:center;gap:1.5rem}.hero-photo-frame{width:200px;height:280px}}@media(max-width:768px){.hero-section{padding:6rem 1rem 3rem}.hero-title{font-size:3.5rem}.hero-photos{flex-direction:column;gap:1.5rem;width:100%;padding:0}.hero-photo-frame{width:220px;height:300px;flex-shrink:0}.date-label{font-size:.7rem}.date-value{font-size:1.5rem}}@media(max-width:480px){.hero-section{padding:5rem 1rem 2rem}.hero-title{font-size:2.5rem}.hero-left{gap:1.5rem}.hero-photos{gap:1.25rem}.hero-photo-frame{width:180px;height:240px}.date-label{font-size:.65rem}.date-value{font-size:1.2rem}}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.navigation{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;background:#fff;z-index:1000;box-shadow:0 2px 10px #0000000d;animation:slideDown .6s ease-out}.nav-logo{font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:500;color:#333;letter-spacing:2px;transition:opacity .3s ease}.nav-logo:hover{opacity:.7}.nav-links{display:flex;gap:2.5rem}.nav-links button{background:none;border:none;font-family:Montserrat,sans-serif;font-size:.75rem;font-weight:400;letter-spacing:1.5px;color:#666;cursor:pointer;transition:color .3s ease,transform .2s ease;padding:0;position:relative}.nav-links button:hover{color:#333;transform:translateY(-2px)}.nav-links button:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:#333;transition:width .3s ease}.nav-links button:hover:after{width:100%}@media(max-width:768px){.navigation{flex-direction:column;padding:1rem;gap:.75rem}.nav-logo{font-size:1.2rem}.nav-links{flex-wrap:wrap;justify-content:center;gap:.75rem 1rem}.nav-links button{font-size:.65rem;letter-spacing:1px}.nav-links button:after{display:none}}@media(max-width:480px){.navigation{padding:.75rem}.nav-logo{font-size:1rem}.nav-links{gap:.5rem .75rem}.nav-links button{font-size:.6rem}}@keyframes fadeInPassword{0%{opacity:0}to{opacity:1}}@keyframes fadeInUpPassword{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.password-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fafafa;padding:2rem;animation:fadeInPassword .6s ease-out}.password-content{text-align:center;max-width:500px;width:100%}.password-title{font-family:Cormorant Garamond,serif;font-size:5rem;font-weight:300;letter-spacing:.1em;color:#333;margin-bottom:3rem;animation:fadeInUpPassword .8s ease-out}.password-form{display:flex;flex-direction:column;gap:1rem;align-items:center;animation:fadeInUpPassword .8s ease-out .2s both}.password-input{font-family:Montserrat,sans-serif;font-size:1rem;padding:1rem 1.5rem;border:1px solid #ddd;background:#fff;color:#333;text-align:center;width:100%;max-width:300px;transition:border-color .3s,transform .3s}.password-input:focus{outline:none;border-color:#333;transform:scale(1.02)}.password-input.error{border-color:#d9534f;animation:shake .4s ease}.password-input::placeholder{color:#999}.error-message{font-family:Montserrat,sans-serif;font-size:.85rem;color:#d9534f;margin:0;animation:fadeInUpPassword .3s ease-out}.password-submit{font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:400;letter-spacing:2px;text-transform:uppercase;padding:1rem 3rem;background:#333;color:#fff;border:none;cursor:pointer;transition:background .3s,transform .2s;margin-top:1rem}.password-submit:hover{background:#555;transform:translateY(-2px)}.password-submit:active{transform:translateY(0)}@media(max-width:768px){.password-title{font-size:3.5rem}.password-input{font-size:.95rem;padding:.875rem 1.25rem}.password-submit{font-size:.8rem;padding:.9rem 2.5rem}}@media(max-width:480px){.password-gate{padding:1.5rem}.password-title{font-size:2.5rem;margin-bottom:2rem}.password-input{font-size:.9rem;padding:.85rem 1.15rem;max-width:250px}.password-submit{font-size:.75rem;padding:.85rem 2.25rem}.error-message{font-size:.8rem}}.rsvp-section{padding:6rem 2rem;background:#fff}.section-container{max-width:600px;margin:0 auto}.section-title{font-family:Cormorant Garamond,serif;font-size:3rem;font-weight:300;letter-spacing:.1em;text-align:center;color:#333;margin-bottom:1rem}.section-subtitle{font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:300;text-align:center;color:#666;margin-bottom:3rem}.rsvp-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-family:Montserrat,sans-serif;font-size:.75rem;font-weight:400;letter-spacing:1px;color:#333;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{font-family:Montserrat,sans-serif;font-size:1rem;padding:.75rem 1rem;border:1px solid #ddd;background:#fff;color:#333;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#666}.form-group textarea{resize:vertical}.submit-btn{font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:400;letter-spacing:2px;text-transform:uppercase;padding:1rem 2rem;background:#333;color:#fff;border:none;cursor:pointer;transition:background .3s;margin-top:1rem}.submit-btn:hover{background:#555}.rsvp-note{font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:300;font-style:italic;line-height:1.6;text-align:center;color:#999;margin-top:2rem;padding-top:2rem;border-top:1px solid #eee}@media(max-width:768px){.rsvp-section{padding:4rem 1rem}.section-title{font-size:2.5rem}.section-subtitle{font-size:.85rem}.form-group input,.form-group select,.form-group textarea{font-size:.95rem;padding:.7rem .9rem}.submit-btn{font-size:.8rem;padding:.9rem 1.8rem}.rsvp-note{font-size:.8rem}}@media(max-width:480px){.rsvp-section{padding:3rem 1rem}.section-title{font-size:2rem}.section-subtitle{font-size:.8rem;margin-bottom:2rem}.rsvp-form{gap:1.25rem}.form-group label{font-size:.7rem}.form-group input,.form-group select,.form-group textarea{font-size:.9rem;padding:.65rem .85rem}.submit-btn{font-size:.75rem;padding:.85rem 1.6rem}.rsvp-note{font-size:.75rem;margin-top:1.5rem;padding-top:1.5rem}}.registry-section{padding:6rem 2rem;background:#fafafa}.registry-message{font-family:Montserrat,sans-serif;font-size:1.1rem;font-weight:300;line-height:1.8;text-align:center;color:#666;max-width:600px;margin:0 auto}@media(max-width:768px){.registry-section{padding:4rem 1rem}.registry-message{font-size:1rem}}@media(max-width:480px){.registry-section{padding:3rem 1rem}.registry-message{font-size:.95rem}}.schedule-section{padding:6rem 2rem;background:#fafafa}.timeline{max-width:800px;margin:0 auto;position:relative}.timeline:before{content:"";position:absolute;left:120px;top:0;bottom:0;width:1px;background:#ddd}.timeline-item{display:flex;gap:3rem;margin-bottom:3rem;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-time{font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:400;letter-spacing:1px;color:#666;min-width:100px;text-align:right;padding-top:.25rem}.timeline-content{flex:1;padding-left:2rem;position:relative}.timeline-content:before{content:"";position:absolute;left:-23px;top:8px;width:9px;height:9px;border-radius:50%;background:#333;border:2px solid white}.timeline-title{font-family:Cormorant Garamond,serif;font-size:1.8rem;font-weight:400;letter-spacing:.05em;color:#333;margin:0 0 .5rem}.timeline-description{font-family:Montserrat,sans-serif;font-size:.95rem;font-weight:300;color:#666;margin:0 0 .25rem}.timeline-location{font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:300;font-style:italic;color:#999;margin:0}@media(max-width:768px){.schedule-section{padding:4rem 1rem}.timeline:before{left:70px}.timeline-item{gap:1rem}.timeline-time{min-width:60px;font-size:.75rem}.timeline-content{padding-left:1.5rem}.timeline-content:before{left:-18px}.timeline-title{font-size:1.4rem}.timeline-description{font-size:.85rem}.timeline-location{font-size:.8rem}}@media(max-width:480px){.schedule-section{padding:3rem 1rem}.timeline:before{left:55px}.timeline-item{gap:.75rem}.timeline-time{min-width:50px;font-size:.7rem}.timeline-content{padding-left:1.25rem}.timeline-content:before{left:-14px;width:7px;height:7px}.timeline-title{font-size:1.2rem}.timeline-description{font-size:.8rem}.timeline-location{font-size:.75rem}}
