:root{--wine:#671c30;--wine-deep:#421421;--paper:#f4eee5;--ink:#3c2027;--muted:#725d61;--gold:#c5ab7d;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',sans-serif;--script:'Italianno',cursive;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:70px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}::selection{background:var(--wine);color:var(--paper)}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:#9b6873}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button,a,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button{color:inherit}input{caret-color:var(--wine)}img{display:block;width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(46px,5.7vw,82px);line-height:1.02;text-wrap:balance}em{font-weight:400}.script{font-family:var(--script);font-weight:400}[hidden]{display:none!important}.paper-section{background:var(--paper)}.wine-section{background:var(--wine);color:var(--paper)}.skip{position:fixed;left:20px;top:-90px;padding:16px;background:var(--paper);z-index:100}.skip:focus{top:20px}.site-header{position:absolute;inset:0 0 auto;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:26px 4.5%;color:var(--paper)}.brand{font:36px var(--serif);letter-spacing:-.04em}.brand span{font:29px var(--script);margin:0 4px}.site-header nav{display:flex;gap:35px;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.2em}.site-header nav a{padding:12px 0;border-bottom:1px solid transparent}.site-header nav a:hover{border-color:currentColor}.menu-toggle{display:none}.hero{height:100svh;min-height:620px;max-height:1200px;position:relative;overflow:hidden;color:var(--paper);background:var(--wine-deep)}.hero-photo{position:absolute;inset:-3%;will-change:transform;transform:translate3d(var(--mx,0px),var(--my,0px),0);transition:transform 1.4s var(--ease)}.hero-photo img{height:100%;object-fit:cover;object-position:50% 40%;filter:grayscale(1);animation:cinema 24s ease-in-out infinite alternate}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,10,16,.18),rgba(36,13,21,.08) 25%,rgba(36,13,21,.56) 75%,rgba(36,13,21,.73))}.hero-title{position:absolute;width:100%;top:56%;transform:translateY(-20%);text-align:center;padding:0 24px;animation:title-reveal 1.7s var(--ease) both}.hero h1{font-size:clamp(66px,8vw,118px);font-weight:300;letter-spacing:-.035em;line-height:1.05;white-space:nowrap}.hero h1 span{font-size:.53em;font-style:italic;margin:0 .1em}.hero-title p{font-size:11px;letter-spacing:.34em;margin-top:24px}.discover{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:15px}.discover span{font-size:11px;letter-spacing:.3em;white-space:nowrap}.discover svg{height:35px;width:22px;stroke:currentColor;fill:none;stroke-width:1}.motion-control{position:absolute;right:36px;bottom:33px;background:none;border:0;display:flex;gap:9px;align-items:center;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:10px}.motion-control svg{height:15px;width:15px;stroke:currentColor;stroke-width:1.4;fill:none}.welcome{text-align:center;padding:128px 8% 70px}.welcome-title{font:italic 400 clamp(34px,4.1vw,60px)/1.25 var(--serif);max-width:1140px;margin:auto;text-wrap:balance}.welcome-detail{font-size:13px;line-height:1.9;color:#dfcbd0;margin:34px auto 55px;max-width:720px}.flower{display:block;width:38px;height:38px;background:currentColor;mask:url('assets/flower.png') center/contain no-repeat;-webkit-mask:url('assets/flower.png') center/contain no-repeat}.welcome .flower{margin:auto;width:26px;height:26px;color:#b88d94}.story{padding:95px 8% 50px}.story-heading{text-align:center;position:relative;font-size:clamp(48px,6.3vw,90px);font-weight:300;letter-spacing:.05em;line-height:.9}.story-heading .script{display:block;font-size:clamp(64px,7vw,100px);line-height:.65;letter-spacing:0;text-transform:none}.story-layout{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;max-width:1150px;margin:60px auto 0}.story-portrait{position:relative;max-width:480px;width:100%;margin:auto}.story-portrait img{max-height:670px;object-fit:cover;object-position:50% 42%;mix-blend-mode:multiply;mask-image:linear-gradient(#000 78%,transparent 98%);filter:grayscale(1)}.portrait-caption{position:absolute;bottom:20px;width:100%;left:0;text-align:center;font-size:11px;letter-spacing:.22em;color:var(--muted)}.story-copy{text-align:center;position:relative}.story-opening{display:flex;align-items:center;justify-content:center;font:400 20px/1.35 var(--serif);text-transform:uppercase;margin-bottom:34px}.dropcap{font:116px/.8 var(--script);margin-right:4px}.story-copy>p:not(.story-opening){font:23px/1.75 var(--serif);margin-top:20px}.story-signature{display:block;font-size:51px;margin-top:24px}.demo-story{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:16px}.save-date{padding:65px 8% 100px;text-align:center}.date-collage{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;max-width:920px;margin:0 auto 30px;align-items:end}.date-photo{position:relative;height:360px;overflow:hidden}.date-photo img{height:100%;object-fit:cover;filter:grayscale(1);mix-blend-mode:multiply}.date-photo.hands{height:290px}.date-photo.hands img{object-position:center 45%}.date-photo.embrace{height:270px}.date-photo.couple img{object-position:50% 28%}.date-photo>span{position:absolute;bottom:-18px;left:0;width:100%;font:300 150px/.9 var(--serif);letter-spacing:-.04em;color:#fff9ef}.save-date h2{font-size:104px;line-height:.9;margin:20px 0 25px}.date-label{font-size:11px;letter-spacing:.25em}.date-place{font:24px var(--serif);margin:13px 0 25px}.text-link{display:inline-flex;align-items:center;gap:28px;border:0;border-bottom:1px solid currentColor;padding:12px 0;background:transparent;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.text-link svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.2;transition:transform .4s var(--ease)}.text-link:hover svg{transform:translate(3px,-3px)}.celebration{padding:100px 9% 65px}.day-title{display:flex;justify-content:space-between;align-items:end;gap:40px;max-width:1200px;margin:auto}.day-title h2{max-width:550px}.day-title h2 em{display:block}.day-title p{font-size:11px;letter-spacing:.16em;line-height:2.2;max-width:230px}.day-title p span{padding:0 10px}.schedule{max-width:1200px;margin:55px auto 0}.event{padding:35px 0;display:grid;grid-template-columns:230px 1fr 35px;gap:30px;align-items:center;border-top:1px solid #a36a79}.event time{font:52px var(--serif)}.event time span{font:11px var(--sans);letter-spacing:.1em}.event h3{font-size:38px}.event p{color:#e0cbd1;font-size:11px;margin-top:7px;line-height:1.8}.event p.event-venue{font:18px var(--serif);color:var(--paper);margin-top:7px}.event .flower{width:30px;height:30px;color:#c7a4ad}.day-note{text-align:center;font:italic 23px var(--serif);margin-top:55px}.location{padding:105px 10% 110px}.location h2{text-align:center}.venues{display:grid;grid-template-columns:1fr 1fr;gap:12%;max-width:900px;margin:60px auto 0}.venues article+article{border-left:1px solid #cab5b5;padding-left:20%}.venues h3{font-size:36px}.venues p{font-size:12px;line-height:1.9;margin:18px 0 20px;color:var(--muted)}.countdown{padding:85px 10% 100px;text-align:center;background:var(--wine-deep)}.countdown h2{font-size:45px}.clock{display:flex;justify-content:center;align-items:start;gap:25px;margin-top:45px}.clock>div{width:140px}.clock span{font:300 100px/1 var(--serif);font-variant-numeric:tabular-nums}.clock small{display:block;font-size:11px;letter-spacing:.2em;margin-top:20px;color:#d0b3bc}.clock b{font:40px var(--serif);margin-top:23px;font-weight:300;color:#ad7e8b}.dress{text-align:center;padding:90px 10% 100px}.dress h2{font-size:57px}.dress>p{font-size:12px;color:var(--muted);margin:20px 0 40px}.swatches{display:flex;justify-content:center;gap:60px}.swatches .flower{background:var(--swatch);width:65px;height:65px;margin:auto}.swatches figcaption{font:19px var(--serif);margin-top:16px}.rsvp{padding:85px 10% 105px;display:grid;grid-template-columns:1fr 1fr;gap:12%;border-top:1px solid #d6c7bf}.rsvp-intro .script{font-size:70px;line-height:1}.rsvp-intro h2{font-size:70px}.rsvp-intro>p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:24px}.rsvp-intro>.flower{margin-top:38px;width:38px;height:38px}form{padding-top:20px;max-width:510px}.field{margin-bottom:26px}.field label{display:block;font-size:11px;margin-bottom:8px}.field label span{color:var(--muted);font-size:11px}.field input{width:100%;border:0;border-bottom:1px solid #b59b9f;border-radius:0;padding:12px 0 13px;background:transparent;font-size:14px;color:var(--ink);transition:border-color .2s}.field input::placeholder{color:var(--muted)}.field input:focus{outline:0;border-bottom:2px solid var(--wine);padding-bottom:12px}.field-error{display:block;color:#9d1432;font-size:11px;line-height:1.6;margin-top:5px}.attendance{padding:0;border:0;margin:28px 0}.attendance legend{font-size:11px;margin-bottom:16px}.attendance label{display:inline-flex;align-items:center;margin:0 20px 8px 0;cursor:pointer;font:19px var(--serif)}.attendance input{accent-color:var(--wine);width:16px;height:16px;margin:0 9px 0 0}.guest-row{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-top:1px solid #d1bcbd;border-bottom:1px solid #d1bcbd;margin-bottom:25px}.guest-row>div>span{font-size:12px}.guest-row small{display:block;font-size:11px;color:var(--muted);margin-top:6px}.stepper{display:flex;align-items:center;gap:12px}.stepper button{background:transparent;border:1px solid #aa8b93;border-radius:50%;width:36px;height:36px;font-size:19px}.stepper button:disabled{opacity:.3;cursor:not-allowed}.stepper output{width:20px;text-align:center;font-size:14px}.submit{width:100%;padding:19px 22px;display:flex;justify-content:space-between;align-items:center;background:var(--wine);border:1px solid var(--wine);color:var(--paper);font-size:11px;letter-spacing:.1em;text-transform:uppercase;transition:background .25s}.submit:hover{background:var(--wine-deep)}.submit svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.1}.form-note{font-size:11px;line-height:1.8;color:var(--muted);margin-top:12px}#form-result{margin-top:20px;padding:20px;background:#e5dbce;font-size:13px;line-height:1.8}footer{text-align:center;padding:80px 5% 20px}footer h2{font-size:clamp(44px,7vw,100px);font-weight:300}footer h2 span{font-size:.65em;font-style:italic}footer>p{font-size:11px;letter-spacing:.2em;margin-top:20px}footer>p span{margin:0 12px}.farewell{font:40px/1.15 var(--serif);margin:60px 0 40px}.footer-mark{font:40px var(--serif)}.footer-mark span{font:45px var(--script)}.preview-disclosure{font-size:11px;line-height:1.7;color:#d2b6be;margin:45px auto 0}.reveal{animation:soft-reveal .95s var(--ease) both}body.motion-paused *,body.motion-paused *:before,body.motion-paused *:after{animation-play-state:paused!important}body.motion-paused .hero-photo{transform:none!important}.after-date{font:30px var(--serif);margin-top:25px}@keyframes cinema{from{transform:scale(1.015) translateY(0)}to{transform:scale(1.09) translateY(-1%)}}@keyframes title-reveal{from{opacity:.2;filter:blur(5px);translate:0 22px}to{opacity:1;filter:blur(0);translate:0 0}}@keyframes soft-reveal{from{opacity:.45;translate:0 20px}to{opacity:1;translate:0 0}}
@media(min-width:1600px){.story,.save-date,.celebration,.location,.rsvp{padding-left:max(10%,calc((100% - 1280px)/2));padding-right:max(10%,calc((100% - 1280px)/2))}}
@media(max-width:760px){html{scroll-padding-top:20px}.site-header{padding:20px 23px}.brand{font-size:30px}.site-header nav{display:none}.menu-toggle{display:flex;flex-direction:column;gap:6px;width:42px;height:42px;align-items:center;justify-content:center;background:none;border:0}.menu-toggle span{height:1px;width:24px;background:var(--paper);transition:transform .3s}.menu-open .site-header{position:fixed}.menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-nav{position:fixed;inset:0;background:var(--wine-deep);color:var(--paper);z-index:9;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:27px;font:42px var(--serif)}.hero{height:100svh;min-height:580px;max-height:1000px}.hero-photo img{object-position:51% 40%}.hero-title{top:62%;padding:0 14px}.hero h1{font-size:clamp(44px,11.6vw,86px);letter-spacing:-.04em;white-space:normal}.hero-title p{font-size:11px;letter-spacing:.25em;margin-top:19px}.discover{bottom:28px;gap:10px}.discover span{font-size:11px}.motion-control{right:10px;bottom:18px;font-size:0;padding:12px}.motion-control svg{height:17px;width:17px}.welcome{padding:78px 7% 48px}.welcome-title{font-size:34px;line-height:1.23}.welcome-detail{font-size:11px;line-height:1.9;margin:25px auto 35px;max-width:300px}.welcome .flower{width:21px;height:21px}.story{padding:70px 5% 20px}.story-heading{font-size:49px;letter-spacing:.025em}.story-heading .script{font-size:72px;line-height:.65}.story-layout{display:block;margin:24px auto 0}.story-portrait{width:86%;max-width:350px}.story-portrait img{max-height:none;height:460px;object-fit:cover;object-position:50% 28%;mask-image:linear-gradient(#000 69%,transparent 97%)}.portrait-caption{display:none}.story-copy{margin-top:-7px}.story-opening{font-size:16px;line-height:1.35;margin-bottom:28px;gap:0}.dropcap{font-size:98px;line-height:.8;align-self:center;margin-right:2px}.story-copy>p:not(.story-opening){font-size:19px;line-height:1.9;margin-top:18px}.story-signature{display:none}.demo-story{font-size:11px;margin-top:22px}.save-date{padding:45px 5% 65px}.date-collage{gap:13px;margin:0 auto 22px;max-width:500px}.date-photo{height:235px}.date-photo.hands{height:210px}.date-photo.embrace{height:190px}.date-photo>span{font-size:85px;bottom:-10px}.date-photo.couple img{object-position:50% 20%}.date-photo.hands img{object-position:center}.date-photo.embrace img{object-position:center 20%}.save-date h2{font-size:77px;margin:10px 0 18px}.date-label{font-size:11px;letter-spacing:.16em}.date-place{font-size:22px;margin:12px 0 19px}.text-link{font-size:11px;gap:15px}.celebration{padding:65px 7% 50px}.day-title{display:block}.day-title h2{font-size:59px}.day-title h2 em{display:inline}.day-title p{font-size:11px;max-width:none;margin-top:22px;letter-spacing:.08em}.schedule{margin-top:30px}.event{grid-template-columns:81px 1fr;gap:13px;padding:27px 0}.event time{font-size:32px}.event time span{display:block;font-size:11px;margin-top:6px}.event h3{font-size:29px}.event p{font-size:11px;margin-top:7px}.event p.event-venue{font-size:16px}.event>.flower{display:none}.day-note{font-size:21px;max-width:270px;margin:30px auto 0;line-height:1.4}.location{padding:65px 8%}.location h2{font-size:48px}.venues{display:block;margin-top:36px}.venues article{text-align:center}.venues article+article{border-left:0;padding:35px 0 0;margin-top:35px;border-top:1px solid #cab5b5}.venues h3{font-size:33px}.venues p{font-size:11px;margin:13px 0 16px}.countdown{padding:60px 5% 65px}.countdown h2{font-size:40px}.clock{gap:8px;margin-top:28px}.clock>div{width:66px}.clock span{font-size:54px}.clock small{font-size:11px;margin-top:12px;letter-spacing:.12em}.clock b{font-size:22px;margin-top:10px}.dress{padding:65px 6%}.dress h2{font-size:45px}.dress>p{font-size:11px;line-height:1.8;margin:18px 0 32px}.swatches{gap:21px}.swatches .flower{width:48px;height:48px}.swatches figcaption{font-size:15px;margin-top:12px}.rsvp{display:block;padding:60px 8% 65px}.rsvp-intro{text-align:center}.rsvp-intro .script{font-size:60px}.rsvp-intro h2{font-size:57px}.rsvp-intro h2 br{display:none}.rsvp-intro>p{font-size:12px;margin:20px auto 0}.rsvp-intro>.flower{display:none}form{margin:30px auto 0;padding:0}.field input{font-size:16px}.attendance label{font-size:18px;margin-right:13px}.attendance input{width:17px;height:17px}.stepper button{width:42px;height:42px}.submit{padding:19px;font-size:11px}.form-note{font-size:11px}footer{padding:60px 5% 20px}footer h2{font-size:45px}footer>p{font-size:11px;letter-spacing:.12em}.farewell{font-size:36px;margin:40px 0 30px}.preview-disclosure{font-size:11px;max-width:280px;margin-top:35px}}
@media(max-width:360px){.story-heading{font-size:43px}.story-copy>p:not(.story-opening){font-size:17px}.story-opening{font-size:14px}.dropcap{font-size:88px}.date-photo{height:205px}.date-photo.hands{height:180px}.date-photo.embrace{height:165px}.date-photo>span{font-size:74px}.swatches{gap:16px}.attendance label{font-size:16px}.hero h1{font-size:41px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-photo{transform:none!important}}

/* Keep the couple's faces within the portrait crop at every size. */
.story-portrait img{object-position:50% 0%}
@media(max-width:760px){.story-portrait img{object-position:50% 0%}}


.site-header nav a{display:inline-flex;align-items:center;gap:8px}.site-header nav svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.2}

