@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600&family=Montserrat:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600&family=Montserrat:wght@300;400;500&family=Great+Vibes&display=swap";@import "https://fonts.googleapis.com/css2?family=Pinyon+Script&display=swap";*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%;height:100%;min-height:100%;margin:0;overflow-x:hidden}body{color:#fff;background:#050505;font-family:Montserrat,sans-serif}.page{isolation:isolate;background:radial-gradient(circle at 50% 18%,#0080802e,#0000 40%),#050505;min-height:100vh;position:relative}.page:before{content:"";background-image:var(--bamboobkg);opacity:.6;pointer-events:none;z-index:-1;background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}.nav{-webkit-background-filter:blur(8px);justify-content:center;gap:1rem;width:100%;padding:1.5rem 0;display:flex}.nav button{color:#fff;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:.8rem 1.2rem;transition:all .3s;position:relative;overflow:hidden}.nav button:after{content:"";bottom:6px;left:50%;background:teal;width:0;height:1px;transition:transform .3s;position:absolute;inset:0;transform:translateY(100%)}.nav button:hover{border-color:teal}.nav button.active{background:#000;border-color:teal}.hero,.story,.details,.party,.rsvp{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 90px);padding:2rem;display:flex}.home-photo-wrapper{justify-content:center;width:100%;margin:2.5rem 0;display:flex}.home-photo{object-fit:cover;object-position:center;border-radius:28px;width:min(820px,90%);height:430px;transition:transform .4s;display:block}.home-photo:hover{transform:scale(1.01)}.eyebrow{color:teal;text-transform:uppercase;letter-spacing:4px;margin-bottom:1rem;font-family:Montserrat,sans-serif;font-size:.8rem}h1{margin:0;font-family:Pinyon Script,cursive;font-size:clamp(3.8rem,10vw,7rem);font-weight:400;line-height:1}h2{font-family:Cormorant Garamond,serif;font-size:4rem;font-weight:600}.date{color:#d1d1d1;max-width:700px;margin:.01rem 0 2rem;font-family:Pinyon Script,cursive;font-size:3rem;line-height:1.7}.home-intro{color:#d8d8d8;max-width:600px;margin:2rem auto;font-family:Cormorant Garamond,serif;font-size:1.3rem}.title-group{flex-direction:column;align-items:center;margin-bottom:2rem;display:inline-block;position:relative}.established{color:teal;text-transform:uppercase;letter-spacing:3px;font-family:Montserrat,sans-serif;font-size:.8rem;position:absolute;bottom:-20px;right:-40px}.footer{text-align:center;color:#8a8a8a;letter-spacing:1px;border-top:1px solid #0faaa54d;justify-content:center;align-items:center;width:100%;padding:1rem 0;font-size:.8rem;display:flex}.countdown{margin:.1 rem 0;justify-content:center;gap:2rem;display:flex}.countdown div{text-align:center;min-width:90px}.countdown span{color:#fff;font-family:Cormorant Garamond,serif;font-size:2.5rem;display:block}.countdown p{color:teal;text-transform:uppercase;letter-spacing:2px;margin:.25rem 0 0;font-family:Montserrat,sans-serif;font-size:.75rem}.date{padding:0 1.5rem;display:inline-block;position:relative}.date:before,.date:after{content:"";background:#0faaa580;width:70px;height:1px;position:absolute;top:50%}.date:before{right:100%}.date:after{left:100%}.photo-row img:hover{transform:scale(1.03)}.details-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;width:min(900px,100%);margin-top:2rem;display:grid}.details-into{color:#cfcfcf;margin-top:-1rem;margin-bottom:2rem;font-size:1.2rem}.details-card{background:#ffffff0d;border:1px solid #0faaa54d;border-radius:24px;padding:1.5rem;transition:all .3s,background .3s}.details-card:hover{background:#25515f;transform:translateY(-6px)}.details-card h3{color:teal;text-transform:uppercase;letter-spacing:3px;margin-bottom:1rem;font-size:.8rem}.details-card p{margin:0 auto}.hotel-section{text-align:center;width:min(1000px,90%);margin:6rem auto 0}.hotel-title{margin:0;font-family:pinyon script,cursive;font-size:4rem;font-weight:400}.hotel-intro{color:#d8d8d8;max-width:600px;margin:1rem auto 3rem;font-family:Cormorant Garamond,serif;font-size:1.2rem;line-height:1.5}.hotel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;width:100%;display:grid}.hotel-card{text-align:center;background:#0b0b0b;border:1px solid #0faaa54d;border-radius:24px;overflow:hidden}.hotel-location{color:#aaa;margin:0;font-family:Montserrat,sans-serif;font-size:.8rem}.hotel-card-content{background:#050505f2;padding:1.75rem}.hotel-card h3{margin:0 0 1rem;font-family:Cormorant Garamond,serif;font-size:1.2rem;font-weight:500}.hotel-card p{color:#bdbdbd;margin:0;font-family:Montserrat,sans-serif;font-size:.9rem}.hotel-card a{color:#fff;letter-spacing:1px;background:0 0;border:1px solid teal;border-radius:999px;margin-top:1.5rem;padding:.7rem 1.4rem;font-family:Montserrat,sans-serif;font-size:.8rem;text-decoration:none;transition:all .3s;display:inline-block}.hotel-card a:hover{border-color:teal;transform:translateY(-2px)}.hotel-image{width:100%;height:180px;overflow:hidden}.hotel-image img{object-fit:cover;width:100%;height:100%;display:block}.hotel-info{color:#ccc;border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;margin:1.5rem 0;padding-top:1rem;font-family:Montserrat,sans-serif;font-size:.8rem;display:flex}.hotel-price{color:teal;letter-spacing:2px;font-weight:600}@media (width<=768px){.hotel-grid{grid-template-columns:1fr}}.story-layout{grid-template-columns:1fr 1fr;align-items:center;gap:4rem;width:min(1100px,100%);margin-top:3rem;display:grid}.story-image img{object-fit:cover;border-radius:28px;width:85%;height:500px;transition:transform .4s}.story-image img:hover{transform:scale(1.05)}.story-text{text-align:left;width:100%;max-width:650px;font-size:1.5rem}.story-text p{color:d1d1d1;margin:0 0 1.2rem;font-family:Montserrat,serif;font-size:1rem;line-height:1.8}.gallery{width:min(1200px,92%);margin:0 auto;padding:3rem 0 5rem}.gallery-row{gap:1.25rem;margin-bottom:1.25rem;display:grid}.gallery-vertical{grid-template-columns:repeat(3,1fr)}.gallery-horizontal{grid-template-columns:repeat(2,1fr)}.gallery-row img{object-fit:cover;border-radius:14px;width:100%;transition:transform .3s;display:block}.gallery-vertical img{aspect-ratio:2/3}.gallery-horizontal img{aspect-ratio:3/2}.gallery-row img:hover{transform:scale(1.01)}.photographer-credit{text-align:center;letter-spacing:1px;color:#fff9;margin-top:2.5rem;font-family:Montserrat,sans-serif;font-size:.8rem}.photographer-credit a{color:#fff;text-decoration:none;transition:color .3s}.photographer-credit a:hover{color:teal}.lightbox{box-sizing:border-box;z-index:1000;background:#000000eb;justify-content:center;align-items:center;width:100%;height:100%;padding:2rem;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;border-radius:10px;width:auto;max-width:90%;height:auto;max-height:90vh}.lightbox-close{color:#fff;cursor:pointer;z-index:1001;background:0 0;border:none;font-size:2.5rem;line-height:1;position:absolute;top:1.5rem;right:2rem}.lightbox-arrow{color:#fff;cursor:pointer;z-index:1001;background:0 0;border:none;padding:1rem;font-size:4rem;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-prev{left:1.5rem}.lightbox-next{right:1.5rem}.party{padding:4rem 2rem}.party-group{width:min(1100px,100%);margin-top:5rem}.party-group:first-of-type{margin-top:3rem}.party-group-title{text-align:center;margin:0 0 2rem;font-family:Montserrat,serif;font-size:1.5em;font-weight:300}.party-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:2rem;width:100%;display:grid}.party-card{text-align:center}.party-photo,.party-photo-placeholder{aspect-ratio:3/4;border-radius:24px;width:100%}.party-photo-wrapper{aspect-ratio:3/4;border-radius:24px;position:relative;overflow:hidden}.party-photo{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.party-overlay{box-sizing:border-box;opacity:0;text-align:center;background:#000000b3;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;transition:opacity .3s;display:flex;position:absolute;inset:0}.party-photo-wrapper:hover .party-overlay{opacity:1}.party-photo-wrapper:hover .party-photo{transform:scale(1.05)}.party-overlay .party-bio{white-space:pre-line;color:#d8d8d8;text-transform:none;letter-spacing:normal;margin:0;font-family:Montserrat,sans-serif;font-size:.9rem;line-height:1.5}.party-photo-placeholder{box-sizing:border-box;color:#8a8a8a;background:#ffffff0d;border:1px solid #0faaa54d;justify-content:center;padding:1rem;display:grid}.party-card h4{margin:1rem 0 .2rem;font-family:Cormorant Garamond,serif;font-size:1.2rem}.party-card p{color:teal;text-transform:uppercase;letter-spacing:2px;margin:.4rem auto 0;font-size:.8rem}.officiant-section{text-align:center;width:min(360px,100%);margin:5rem auto 0}officiant-card{width:100%}.oliver-section{text-align:center;width:min(360px,100%);margin:5rem auto 0}.party-intro{color:#d8d8d8;margin:2rem auto 3rem;font-family:Cormorant Garamond,serif;font-size:1.2rem}.party-photo{transition:transform .4s}.party-role{color:teal;text-transform:uppercase;letter-spacing:2px;margin:.4rem auto 0;font-size:.8rem}.party-bio{color:#d8d8d8;margin:.4rem auto 0;font-size:.9rem}.special-party-row{grid-template-columns:repeat(2,1fr);align-items:start;gap:3rem;width:min(850px,100%);margin:5rem auto 0;display:grid}.special-party-row .officiant-section,.special-party-row .kids-section{width:300px;margin:0 auto}.registry{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 160px);padding:4rem 2rem;display:flex}.registry h1{margin-bottom:2rem}.registry-message{background:#ffffff0d;border:1px solid #0faaa54d;border-radius:24px;width:min(700px,100%);margin-bottom:2.5rem;padding:2.5rem 3rem}.registry-message p{color:#e0e0e0;margin:0 0 1.5rem;font-family:Cormorant Garamond,serif;font-size:1.2rem;line-height:1.7}.registry-closing{color:#e0e0e0;margin-top:2.5rem;margin-bottom:.3rem;font-family:Cormorant Garamond,serif;font-size:1.3rem;font-style:italic}.registry-message .registry-signature{color:#fff;margin:0;font-family:Pinyon Script,cursive;font-size:2.5rem;line-height:1}.registry-message p:last-child{margin-bottom:0}.registry-thanks{color:teal!important}.honeymoon-button{color:#fff;letter-spacing:1px;border:1px solid teal;border-radius:999px;padding:1rem 2rem;font-family:Montserrat,sans-serif;font-size:1rem;text-decoration:none;transition:all .3s;display:inline-block}.honeymoon-button:hover{color:#000;background:teal;transform:translateY(-2px)}.rsvp{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 160px);padding:4rem 2rem;display:flex}.rsvp-intro{color:#d8d8d8;max-width:700px;margin:1rem auto 2.5rem;font-family:Cormorant Garamond,serif;font-size:1.2rem;line-height:1.8}.interest-form{text-align:left;box-sizing:border-box;background:#ffffff0d;border:1px solid #0faaa54d;border-radius:24px;width:min(650px,100%);padding:2.5rem 3rem}.form-group{margin-bottom:2rem}.form-group label,.form-question{font-family:Montserrat,sans-serif}.form-group>label,.form-question{color:#fff;letter-spacing:1px;margin-bottom:.8rem;font-size:.9rem;display:block}.form-group input[type=text]:focus,.form-group input[type=email]:focus{border-color:teal}.radio-option{box-sizing:border-box;color:#d8d8d8;cursor:pointer;background:#ffffff08;border:1px solid #0faaa54d;border-radius:12px;align-items:center;gap:1rem;width:100%;margin-bottom:.75rem;padding:1rem 1.25rem;transition:all .3s;display:flex!important}.radio-option:hover{background:#0faaa514;border-color:teal}.radio-option input[type=radio]{accent-color:teal;cursor:pointer;width:18px;height:18px}.optional{color:#8a8a8a;font-size:.8rem}.interest-form .interest-submit{color:#fff;letter-spacing:1px;cursor:pointer;background:0 0;border:1px solid teal;border-radius:999px;margin:1rem auto 0;padding:1rem 2rem;font-family:Montserrat,sans-serif;font-size:.9rem;transition:all .3s;display:block}.interest-submit:hover{color:#000;background:teal;transform:translateY(-2px)}.interest-name-input{box-sizing:border-box;color:#fff;background:#050505a6;border:1px solid #008080b3;border-radius:12px;outline:none;width:min(350px,85%);padding:.9rem 1rem;font-family:Montserrat,sans-serif;font-size:.95rem;transition:border-color .3s,box-shadow .3s}.interest-name-input::placeholder{color:#ffffff80}.interest-name-input:focus{border-color:teal;box-shadow:0 0 0 2px #00808026}.rsvp-note{color:#8a8a8a;letter-spacing:.5rem;margin-top:1.5rem;font-family:Monserrat,sans-serif;font-size:.8rem}.form-note{color:#aaa;margin-top:.5rem;font-family:Montserrat,sans-serif;font-size:.75rem;line-height:1.5}.interest-submit{color:#fff;letter-spacing:.5px;cursor:pointer;background:0 0;border:1px solid teal;border-radius:999px;margin:2rem auto 0;padding:.9rem 2rem;font-family:Montserrat,sans-serif;font-size:.95rem;transition:all .3s;display:block}.interest-submit:hover{color:#050505;background:teal}.hero,.story,.details,.party,.registry,.rsvp{animation:.6s pageFade}@keyframes pageFade{0%{opacity:0;transform:translateY(10px)}to{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.story-layout{grid-template-columns:1fr}.story-image img{height:300px}.story-text{text-align:center}}@media (width<=768px){.page:before{opacity:.4;background-position:top;background-repeat:no-repeat;background-size:100% 100%}.nav{box-sizing:border-box;justify-content:flex-end;padding:1rem 1.25rem;display:flex;position:relative}.menu-toggle{cursor:pointer;z-index:20;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:8px;display:flex}.menu-toggle span{background:#fff;border-radius:2px;width:24px;height:2px;display:block}.nav-links{box-sizing:border-box;-webkit-backdrop-filter:blur(6px);z-index:15;background:#050505f7;border-bottom:1px solid #0faaa54d;flex-direction:column;align-items:center;gap:.5rem;width:100%;padding:1rem;display:none;position:absolute;top:100%;left:0}.nav-links.open{display:flex}.nav-links button{width:min(300px,90%)}.hero h1{white-space:nowrap;text-align:center;width:100%;font-size:clamp(2.4rem,11vw,3.5rem)}.date{white-space:nowrap;text-align:center;width:100%;padding:0 .5rem;font-size:clamp(1.55rem,4vw,1.7rem);line-height:1.15}.established{text-align:center;width:100%;margin:.75rem 0 0;position:static}.home-intro{margin-bottom:2rem}.story h1{white-space:nowrap;font-size:clamp(2.4rem,12vw,3.5rem);line-height:1}.details h1{white-space:nowrap;font-size:clamp(2.4rem,14vw,3.5rem);line-height:1}.details-grid{width:min(340ox, 92%);grid-template-columns:1fr;gap:.5rem}.details-card{box-sizing:border-box;padding:1.5rem .75rem;line-height:1.5}.details h2{white-space:nowrap;font-size:clamp(2.4rem,14vw,3.5rem);line-height:1}.hotel-grid{grid-template-columns:1fr}.party h1{white-space:nowrap;font-size:clamp(2.4rem,14vw,3.5rem);line-height:1}.special-party-row{grid-template-columns:1fr;gap:3rem;width:100%}.special-party-row .officiant-section,.special-party-row .kids-section{flex-direction:column;align-items:center;width:100%;display:flex}.special-party-row .officiant-card{width:min(300px,90%)}.registry h1{white-space:nowrap;font-size:clamp(2.4rem,12vw,3.5rem);line-height:1}.registry-message p{line-height:1.2}.registry-message .registry-signature{white-space:nowrap;font-size:clamp(2rem,9vw,2.5rem);position:relative;left:-.4px}.rsvp-note{letter-spacing:3px;padding:0 1rem;font-size:.7rem;line-height:1.5}}
