:root{--ivory:#F8F5EF;--bone:#D1C4B2;--ink:#303B32;--green:#334630;--red:#DA3544;--line:#d7d1c6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font:400 16px/1.65 Lato,Arial,sans-serif;overflow-x:hidden}body.locked{overflow:hidden}button,input{font:inherit}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--red);outline-offset:3px}h1,h2,h3,p,figure{margin-top:0}h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;line-height:1.08}h2{font-size:clamp(2.8rem,5.8vw,5rem);margin-bottom:1rem}h3{font-size:2rem}p{margin-bottom:1.25rem}.eyebrow{text-transform:uppercase;letter-spacing:.23em;font-size:.75rem;font-weight:700;margin-bottom:1rem}.button{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--green);padding:.84rem 1.5rem;min-height:50px;cursor:pointer;text-decoration:none;font-size:.88rem;font-weight:700;letter-spacing:.04em}.button-dark{background:var(--green);color:white}.button-dark:hover{background:#496047}.text-link{color:var(--green);font-weight:700;text-underline-offset:.35em;text-decoration-thickness:1px}.text-link span{margin-left:.35rem}.section-narrow{width:min(100% - 40px,730px);margin-inline:auto}.section-split{width:min(100% - 40px,1080px);margin-inline:auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center;padding:6rem 0}.section-text{max-width:450px}.large{font:500 2.3rem/1.1 "Cormorant Garamond",Georgia,serif;margin-bottom:.3rem}.envelope-screen{position:fixed;z-index:20;inset:0;display:grid;place-items:center;background:var(--bone);padding:24px;text-align:center;transition:opacity .6s,visibility .6s;overflow:hidden}.envelope-screen.opened{opacity:0;visibility:hidden;pointer-events:none}.envelope-decoration{position:absolute;width:min(55vw,450px);aspect-ratio:2/3;left:-13%;bottom:-26%;background:url('assets/floral-esquina.png') center/contain no-repeat;transform:rotate(-15deg);opacity:.9}.envelope-card{position:relative;width:min(100%,510px);padding:2.2rem 1.2rem 1.2rem;background:#eee5d7;border:1px solid rgba(48,59,50,.16);box-shadow:0 26px 60px #303b3230}.envelope-flap{position:absolute;inset:0 0 auto;height:43%;clip-path:polygon(0 0,100% 0,50% 100%);background:#ded2c1;border-bottom:1px solid #a69a8a}.envelope-letter{position:relative;background:var(--ivory);padding:clamp(2rem,6vw,3rem) 1rem;box-shadow:0 8px 18px #5a4d3d24}.envelope-letter h1{font-size:clamp(3.3rem,9vw,5.2rem);margin:.4rem 0 1rem}.envelope-letter h1 span,.footer span{color:var(--red);font-style:italic}.envelope-letter p:not(.eyebrow){font-size:.93rem}.review-note{position:absolute;bottom:8px;font-size:.7rem;letter-spacing:.02em}.topline{height:64px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(20px,5vw,70px);border-bottom:1px solid var(--line);text-transform:uppercase;font-size:.73rem;font-weight:700;letter-spacing:.16em}.hero{display:grid;grid-template-columns:1fr 49%;min-height:min(720px,82vh);max-width:1600px;margin:auto}.hero-copy{padding:clamp(3rem,8vw,9rem) clamp(24px,6vw,100px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:var(--ivory);position:relative}.hero-copy:after{content:"";pointer-events:none;position:absolute;width:230px;height:320px;right:-6%;bottom:-20%;background:url('assets/floral-esquina.png') center/contain no-repeat;transform:rotate(15deg);z-index:1}.hero-copy h2{font-size:clamp(3.6rem,7vw,7rem)}.hero-copy>p:not(.eyebrow){max-width:410px}.hero-names{font:500 clamp(2.3rem,4vw,4rem)/1.1 "Cormorant Garamond",Georgia,serif;margin:1.8rem 0}.hero-names em{color:var(--red);font-weight:400}.hero-photo{margin:0;min-height:540px;overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 60%;display:block}.countdown-section{text-align:center;padding:7rem 0 6rem}.countdown{display:grid;grid-template-columns:repeat(4,1fr);margin-top:2.5rem}.countdown>div{border-right:1px solid var(--line)}.countdown>div:last-child{border:0}.countdown strong{display:block;font:500 clamp(2.3rem,7vw,5rem)/1 "Cormorant Garamond",Georgia,serif}.countdown span{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;margin-top:.8rem}.venue{border-top:1px solid var(--line)}.venue .button{margin-top:.6rem}.map-pending{position:relative;min-height:360px;background:#e8e9df;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:2rem}.map-pending:before,.map-pending:after{content:"";position:absolute;width:160%;height:70px;background:#d7ddd0;transform:rotate(-28deg)}.map-pending:before{top:10%;left:-35%}.map-pending:after{bottom:2%;left:2%;transform:rotate(36deg)}.map-line{position:absolute;width:180%;height:40px;background:#f5f1e8;transform:rotate(18deg)}.map-dot{width:28px;height:28px;background:var(--red);border:7px solid #fff;border-radius:50%;z-index:1;box-shadow:0 4px 15px #303b3244}.map-pending span,.map-pending small{position:relative;z-index:1;background:#f8f5efdf;padding:.1rem .5rem}.map-pending span{font:500 1.7rem "Cormorant Garamond",Georgia,serif;margin-top:.6rem}.map-pending small{font-size:.7rem}.schedule{padding:5rem 0 6rem}.section-intro{font-weight:700}.timeline{list-style:none;margin:2.5rem 0 0;padding:0}.timeline li{display:flex;gap:1.6rem;padding:1rem 0;border-top:1px solid var(--line)}.timeline li>span{font:500 1.6rem "Cormorant Garamond",Georgia,serif;color:#a5705f}.timeline h3{margin:0;font-size:1.7rem}.timeline p{margin:0;font-size:.93rem}.dresscode{background:#e9e5da;padding:6rem 0}.exclusive{background:#f8f5ef;border-left:3px solid var(--red);padding:1rem 1.2rem;margin:1.5rem 0 2.5rem;font-weight:700}.accordion-item{border-top:1px solid #c8c6ba}.accordion-item:last-child{border-bottom:1px solid #c8c6ba}.accordion h3{margin:0}.accordion button{width:100%;border:0;background:none;color:var(--ink);display:flex;align-items:center;justify-content:space-between;text-align:left;padding:1.3rem 0;cursor:pointer;font:500 clamp(1.6rem,4vw,2.1rem) "Cormorant Garamond",Georgia,serif}.accordion button span{font:400 1.5rem Lato,Arial,sans-serif;transition:transform .2s}.accordion button[aria-expanded=true] span{transform:rotate(45deg)}.accordion-panel{padding:0 0 1.8rem}.accordion-panel p{max-width:550px}.accordion-panel img{display:block;width:min(100%,430px);height:auto;max-height:660px;object-fit:contain;margin:auto}.photos{padding:6rem 20px}.photos .section-narrow{text-align:center}.photo-grid{width:min(100%,1080px);display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:2rem auto 0}.photo-grid figure{margin:0;aspect-ratio:3/4;overflow:hidden}.photo-grid img{width:100%;height:100%;object-fit:cover;display:block}.gifts{text-align:center;padding:6rem 0 7rem}.gifts p:last-child{max-width:600px;margin:auto}.small-floral{height:105px;width:120px;margin:0 auto 1.5rem;background:url('assets/floral-esquina.png') center 46%/contain no-repeat}.music{border-top:1px solid var(--line)}.music iframe{border:0;border-radius:12px;background:#e9e5da;max-width:100%}.rsvp{background:var(--green);color:var(--ivory);padding:6rem 0 7rem}.rsvp .deadline{font-weight:700;font-size:1.05rem}.demo-banner{border:1px solid #e3d7af;background:#e3d7af;color:#263427;padding:1rem;display:flex;gap:.3rem;flex-direction:column;font-size:.88rem;margin:2rem 0}.rsvp form label{display:block;font-size:.9rem;font-weight:700;margin:.7rem 0}.rsvp input:not([type=checkbox]){background:#fff;color:var(--ink);border:1px solid #d2d7cf;min-height:50px;border-radius:0;padding:.7rem .9rem;width:100%;min-width:0}.lookup-row{display:flex;gap:10px}.lookup-row input{flex:1}.rsvp .button-dark{background:var(--ivory);border-color:var(--ivory);color:var(--green)}.rsvp .button-dark:hover{background:#e6ddcf}.form-message{font-size:.86rem;min-height:1.5em;margin:.6rem 0}.rsvp h3{font-size:2rem;margin:1.5rem 0 .5rem}.member-option,.decline{display:flex!important;gap:.7rem;align-items:center;border:1px solid #879689;padding:.75rem 1rem;margin:.5rem 0!important;cursor:pointer}.member-option input,.decline input{width:20px;height:20px;accent-color:#e3d7af}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;margin-top:1.7rem}.contact-fields label{grid-row:1}.contact-fields input{grid-row:2}.purpose{font-size:.83rem;margin:1rem 0 1.4rem}.response-summary{border:1px solid #879689;padding:1rem;margin:1.5rem 0}.response-summary p{margin:.3rem 0}.rsvp form button[hidden],.accordion-panel[hidden],[hidden]{display:none!important}footer{text-align:center;padding:3rem 20px;font:500 2.3rem "Cormorant Garamond",Georgia,serif}footer span{color:var(--red)}footer small{display:block;font:700 .7rem Lato,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;margin-top:.7rem}
@media(max-width:760px){.topline{height:54px;font-size:.62rem;letter-spacing:.09em}.hero{display:flex;flex-direction:column}.hero-copy{padding:3.7rem 24px 2.7rem;min-height:auto;text-align:center;align-items:center}.hero-copy h2{margin-bottom:.6rem}.hero-copy:after{width:115px;height:170px;right:-37px;bottom:-53px;transform:rotate(-28deg)}.hero-names{margin:1rem 0 1.3rem}.hero-photo{height:440px;min-height:0}.hero-photo img{object-position:center 58%}.section-split{grid-template-columns:1fr;padding:4rem 0;gap:2rem}.section-text{max-width:none}.map-pending{min-height:265px}.countdown-section{padding:4.5rem 0 4rem}.countdown{margin-top:2rem}.countdown strong{font-size:2.6rem}.countdown span{font-size:.62rem;letter-spacing:.04em}.schedule{padding:4rem 0}.dresscode{padding:4.5rem 0}.accordion-panel img{max-height:none}.photos{padding:4rem 20px}.photo-grid{grid-template-columns:repeat(2,1fr);gap:8px}.gifts{padding:4rem 0 5rem}.rsvp{padding:4.5rem 0 5rem}.envelope-decoration{width:280px;left:-150px;bottom:-80px}.envelope-letter{padding:2.3rem 1rem}}
@media(max-width:430px){.hero-photo{height:390px}.lookup-row{flex-direction:column}.contact-fields{display:block}.contact-fields input{margin-bottom:.5rem}.topline span:last-child{white-space:nowrap}.countdown strong{font-size:2.2rem}.timeline li{gap:1.1rem}.envelope-card{padding:1.7rem .8rem .8rem}.envelope-letter h1{font-size:3.15rem}}@media(max-width:340px){.topline{font-size:.55rem}.countdown strong{font-size:1.9rem}.countdown span{font-size:.55rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
