:root{--paper:#f7f3ec;--ink:#272724;--line:#cfc4b8;--beige:#e6ddd3;--dark:#292b29;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{margin:0;overflow-x:clip;background-color:#b8a99a;background-image:linear-gradient(rgba(32,27,22,.34),rgba(32,27,22,.34)),url("assets/hero.jpg");background-position:center;background-size:cover;background-attachment:fixed;color:var(--ink);font:13px/1.65 var(--sans)}img{max-width:100%}a{color:inherit}.site-frame{width:100%;max-width:1100px;margin:auto;background:var(--paper)}.topbar{height:54px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px}.monogram{font:500 24px var(--serif);letter-spacing:.15em;text-decoration:none}.monogram i,footer i{font-weight:400}.nav-links{display:flex;gap:25px}.nav-links a{font-size:8px;text-transform:uppercase;letter-spacing:.16em;text-decoration:none}.menu-toggle{display:none;background:none;border:0}.menu-toggle span{display:block;width:25px;height:1px;background:var(--ink);margin:5px}.invitation-hero{display:grid;grid-template-columns:1.08fr .92fr;min-height:625px;border-bottom:1px solid var(--line)}.hero-intro{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:70px 20px;position:relative}.hero-intro h1{font:500 clamp(65px,9vw,108px)/.72 var(--serif);text-transform:uppercase;letter-spacing:.025em;margin:28px 0}.hero-intro h1 span{font-size:.52em;font-style:italic}.tiny-label{font-size:8px;text-transform:uppercase;letter-spacing:.23em;color:#7c7268;margin:0}.hero-date{font:500 25px var(--serif);letter-spacing:.08em;margin:0}.hero-note{font-size:8px;letter-spacing:.22em;text-transform:uppercase;margin-top:27px}.hero-image{margin:31px 31px 31px 0;position:relative;min-width:0}.hero-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}.date-stamp{position:absolute;right:-20px;bottom:45px;width:78px;height:78px;border-radius:50%;display:grid;place-items:center;text-align:center;background:var(--paper);border:1px solid #9d9287;font:500 21px/.75 var(--serif)}.date-stamp small{font:7px/1.2 var(--sans);letter-spacing:.15em}.save-band{background:var(--dark);color:var(--paper);padding:23px 45px;display:grid;grid-template-columns:1.2fr 2fr 1.1fr;align-items:center;gap:20px}.save-title{font:500 28px/.8 var(--serif);text-transform:uppercase}.save-title em{font-weight:400}.countdown{display:flex;justify-content:center;gap:32px}.countdown span{text-align:center}.countdown b{display:block;font:500 32px var(--serif)}.countdown small{font-size:7px;color:#c8bbae;letter-spacing:.17em;text-transform:uppercase}.button{background:var(--dark);border:1px solid var(--dark);color:#fff;padding:14px 22px;font:500 9px var(--sans);letter-spacing:.16em;text-transform:uppercase;cursor:pointer}.button--light{background:transparent;border-color:#e6ddd3}.section{padding:88px 8%}.story{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.story-image img{display:block;width:290px;height:290px;border-radius:50%;object-fit:cover;filter:saturate(.65);margin:auto}.request-copy{max-width:430px;font:500 clamp(27px,3.6vw,44px)/.98 var(--serif);margin:20px 0 0}.celebration{background:var(--dark);color:var(--paper);padding:58px 8%}.celebration .tiny-label{color:#c5b9ad;text-align:center}.section-title{text-align:center}.celebration h2,.gallery h2{font:500 55px var(--serif);text-transform:uppercase;margin:9px 0 36px}.events{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #5d5e59}.events article{text-align:center;padding:34px 25px;min-width:0}.events article+article{border-left:1px solid #5d5e59}.event-icon{font-size:26px;color:#d7c9bc}.event-time{font:500 23px var(--serif);margin:9px 0 0}.events h3{font:500 30px var(--serif);text-transform:uppercase;margin:0}.events article p:not(.event-time){font-size:11px;color:#c6bdb5}.events a{font-size:8px;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid #aaa097;padding-bottom:5px}.venue{display:grid;grid-template-columns:1fr 1fr;align-items:center;background:var(--beige);padding-block:70px}.venue-copy h2,.section-title h2{font:500 clamp(50px,6vw,78px)/.82 var(--serif);text-transform:uppercase;letter-spacing:.03em;margin:20px 0}.venue-copy h2 em,.section-title h2 em{font-weight:400}.venue-copy>p:not(.tiny-label):not(.muted){max-width:310px;color:#6d655d}.venue-copy strong{display:block;font:500 38px var(--serif);margin-top:25px}.venue-copy strong small{font:12px var(--sans)}.muted{color:#857970;font-size:11px;margin-top:-5px}.outline-link{display:inline-block;border:1px solid var(--ink);text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-size:8px;padding:10px 17px;margin-top:20px}.venue-image{padding-left:25px;min-width:0}.venue-image img{width:100%;height:600px;object-fit:cover;filter:saturate(.72)}.dress{background:var(--paper)}.dress-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.dress-grid>div:first-child{font:19px var(--serif)}.dress-grid ul{font:11px/2.2 var(--sans);padding-left:18px}.palette{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.palette span{display:block;width:55px;height:145px;background:var(--color)}.gallery{padding:67px 8%;text-align:center;background:var(--beige);border-block:1px solid var(--line)}.gallery h2{font-size:39px;margin:10px 0 28px}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.gallery-grid img{display:block;width:100%;height:130px;object-fit:cover;filter:saturate(.65)}.rsvp{background:#faf7f1}.intro{max-width:600px;color:#6d655d;line-height:1.8;margin:0 auto 42px;text-align:center}.rsvp form{max-width:760px;margin:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}label,legend{font-size:9px;text-transform:uppercase;letter-spacing:.13em}.rsvp label{display:block;margin-bottom:23px}.rsvp input:not([type=radio]):not([type=checkbox]),textarea{display:block;width:100%;border:0;border-bottom:1px solid #bdb2a6;background:none;padding:8px 0;margin-top:7px;font:18px var(--serif);outline:0}fieldset{border:0;padding:0;margin:18px 0 30px}.radio{font:13px var(--sans)!important;text-transform:none!important;letter-spacing:0!important;margin:11px 0!important}.guest-stepper{display:flex;align-items:center;border-block:1px solid var(--line);padding:14px 0;margin:15px 0 28px;font-size:9px;text-transform:uppercase;letter-spacing:.14em}.guest-stepper span{margin-right:auto}.guest-stepper button{background:transparent;border:1px solid var(--line);width:28px;height:28px;font-size:17px}.guest-stepper output{font:21px var(--serif);margin:0 15px}.form-status{min-height:25px;color:#557050}.upload-box{display:flex;justify-content:center;align-items:center;text-align:center;min-height:180px;border:1px dashed #aaa095;cursor:pointer}.upload-box input{display:none}.upload-box span{font:43px var(--serif)}.upload-box small{font:10px var(--sans);letter-spacing:.12em}#upload-status{text-align:center;margin-top:10px;font-size:11px}footer{background:var(--dark);color:var(--paper);text-align:center;padding:48px 20px}footer span{font:28px var(--serif);letter-spacing:.14em}footer p{font-size:8px;letter-spacing:.15em;text-transform:uppercase;color:#bdb3a9;margin:16px 0 0}@media(max-width:700px){.topbar{padding:0 18px}.nav-links{position:fixed;inset:0;width:100vw;max-width:100%;background:var(--dark);color:var(--paper);z-index:4;flex-direction:column;align-items:center;justify-content:center;gap:27px;transform:translateX(100%);transition:.3s}.nav-links.open{transform:translateX(0)}.nav-links a{font-size:13px}.menu-toggle{display:block;z-index:5}.invitation-hero{grid-template-columns:1fr;min-height:0}.hero-intro{min-height:470px;padding-inline:15px}.hero-intro h1{font-size:clamp(57px,18vw,78px)}.hero-image{height:460px;margin:0 22px 28px}.save-band{grid-template-columns:1fr;text-align:center;padding:27px 20px;gap:18px}.save-title{font-size:27px}.countdown{gap:clamp(8px,4vw,18px)}.countdown b{font-size:clamp(23px,8vw,28px)}.story,.venue,.dress-grid{grid-template-columns:1fr;gap:38px}.story-image img{width:240px;height:240px}.request-copy{font-size:28px}.venue-image{padding:0}.venue-image img{height:480px}.events{grid-template-columns:1fr}.events article+article{border-left:0;border-top:1px solid #5d5e59}.section{padding:67px 22px}.celebration{padding-inline:22px}.venue-copy h2{font-size:clamp(38px,13vw,50px);letter-spacing:0;overflow-wrap:normal}.section-title h2{font-size:clamp(45px,15vw,56px);overflow-wrap:anywhere}.gallery{padding-inline:22px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid img{height:145px}.form-row{grid-template-columns:1fr;gap:0}.intro{overflow-wrap:anywhere}.date-stamp{right:-9px;bottom:25px}}
@media(max-width:700px){.photos .section-title h2{font-size:clamp(37px,11vw,46px);letter-spacing:0;white-space:nowrap}}
.dress{background:var(--beige)}
.gallery{background:var(--paper)}
.photos{background:var(--beige)}
.story{background:var(--paper)}
.journey-gallery{background:var(--paper);border-block:1px solid var(--line)}
.gallery-intro{max-width:420px;margin:-12px auto 28px;color:#6d655d;font:16px/1.4 var(--serif)}
.palette span{width:78px;height:78px;border-radius:50%}
.carousel{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:16px;max-width:860px;margin:0 auto}
.carousel-stage{height:330px;perspective:1000px;position:relative;min-width:0}
.carousel-track{position:relative;height:100%;transform-style:preserve-3d}
.carousel-slide{position:absolute;left:50%;top:50%;width:min(54%,430px);height:280px;padding:0;border:0;background:none;cursor:pointer;transform:translate(-50%,-50%) translateX(calc(var(--distance) * 190px)) translateZ(calc(var(--distance) * -100px)) rotateY(calc(var(--distance) * -28deg)) scale(calc(1 - abs(var(--distance)) * .12));opacity:calc(1 - abs(var(--distance)) * .35);z-index:calc(10 - abs(var(--distance)));transition:transform .5s ease,opacity .5s ease,filter .5s ease;filter:saturate(.55)}
.carousel-slide.is-active{cursor:default;filter:saturate(.85)}
.carousel-slide img{display:block;width:100%;height:100%;object-fit:cover;box-shadow:0 15px 30px rgba(25,25,20,.2)}
.carousel-slide:focus-visible{outline:2px solid var(--dark);outline-offset:5px}
.carousel-arrow{width:38px;height:38px;border:1px solid var(--line);background:transparent;color:var(--ink);font:31px/.7 var(--serif);cursor:pointer;z-index:2}
.carousel-arrow:hover,.carousel-arrow:focus-visible{background:var(--dark);color:var(--paper)}
.carousel-caption{text-align:center;text-transform:uppercase;letter-spacing:.14em;font-size:9px;margin:5px 0 17px;color:#6d655d}
.carousel-dots{display:flex;justify-content:center;gap:8px}
.carousel-dots button{width:7px;height:7px;padding:0;border:1px solid var(--ink);border-radius:50%;background:transparent;cursor:pointer}
.carousel-dots button.is-active{background:var(--ink)}
@media(max-width:700px){.gallery h2{font-size:clamp(39px,12vw,52px)}.gallery-intro{font-size:15px}.carousel{grid-template-columns:30px minmax(0,1fr) 30px;gap:4px}.carousel-stage{height:260px}.carousel-slide{width:72%;height:220px}.carousel-slide{transform:translate(-50%,-50%) translateX(calc(var(--distance) * 92px)) translateZ(calc(var(--distance) * -75px)) rotateY(calc(var(--distance) * -24deg)) scale(calc(1 - abs(var(--distance)) * .14))}.carousel-arrow{width:30px;height:34px;font-size:25px}}
@media(max-width:700px){.photos .section-title h2{font-size:clamp(29px,9vw,38px);letter-spacing:-.02em;white-space:nowrap}}
 .photo-share-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:48px;align-items:center}.qr-frame{width:220px;padding:14px;border:1px solid var(--line);background:var(--paper)}.qr-code-img{display:block;width:100%;height:auto}.photo-share .button{display:inline-block;text-decoration:none}@media (max-width:640px){.photo-share-layout{grid-template-columns:1fr;gap:28px}.qr-frame{width:min(220px,100%);margin:0 auto}}
.journey-swiper{width:100%;max-width:900px;height:340px;overflow:clip;padding:20px 0 48px}
.journey-swiper .swiper-slide{display:flex;align-items:center;justify-content:center;width:58%;transition:opacity .3s}
.journey-swiper .swiper-slide img{display:block;width:100%;height:270px;object-fit:cover;filter:saturate(.7);box-shadow:0 15px 30px rgba(25,25,20,.18)}
.journey-swiper .swiper-slide-active img{filter:saturate(.9)}
.journey-swiper .swiper-button-prev,.journey-swiper .swiper-button-next{color:var(--ink);width:34px;height:34px;border:1px solid var(--line);top:45%}
.journey-swiper .swiper-button-prev:after,.journey-swiper .swiper-button-next:after{font-size:20px}
.journey-swiper .swiper-pagination-bullet{background:var(--ink);opacity:.35}
.journey-swiper .swiper-pagination-bullet-active{opacity:1}
@media(max-width:700px){.journey-swiper{height:275px;padding:10px 0 42px}.journey-swiper .swiper-slide{width:78%}.journey-swiper .swiper-slide img{height:220px}.journey-swiper .swiper-button-prev,.journey-swiper .swiper-button-next{width:28px;height:28px}.journey-swiper .swiper-button-prev:after,.journey-swiper .swiper-button-next:after{font-size:16px}}
@media(max-width:700px){body{background:var(--paper)}}
.journey-swiper{height:min(72vh,620px);padding:20px 0 48px}
.journey-swiper .swiper-slide{height:min(72vh,560px);align-items:center}
.journey-swiper .swiper-slide img{width:100%;height:100%;object-fit:contain}
@media(max-width:700px){
  .journey-swiper{height:min(72vh,500px);padding:10px 0 42px}
  .journey-swiper .swiper-slide{height:min(72vh,440px)}
  .journey-swiper .swiper-slide img{height:100%;object-fit:contain}
}
