:root{--wine:#681f2c;--paper:#f7f4ec;--olive:#777c58;--ink:#302e28;--line:#d8d1c5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:7px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.06}em{font-weight:400}h2{font-size:clamp(48px,6.5vw,90px);letter-spacing:-.055em}h3{font-size:clamp(28px,3vw,42px);letter-spacing:-.035em}.eyebrow{font-size:12px;letter-spacing:.19em;line-height:1.6}.section{padding:110px max(6vw,24px)}.skip{position:fixed;left:20px;top:-100px;z-index:30;background:white;padding:14px}.skip:focus{top:10px}header{height:88px;padding:0 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #681f2c22;background:var(--paper);position:relative;z-index:5;color:var(--wine)}.monogram{font-family:Georgia,serif;font-size:32px;letter-spacing:-.09em}.monogram span{font-style:italic;font-size:20px;padding:0 4px}nav{display:flex;gap:36px;align-items:center;font-size:14px}nav a{transition:opacity .2s}nav a:hover{opacity:.65}.nav-rsvp{border-bottom:1px solid;padding:8px 0;min-width:78px;display:flex;justify-content:space-between}.opening{min-height:calc(100svh - 88px);position:relative;display:flex;flex-direction:column;align-items:center;color:var(--wine);padding:26px 5% 24px;overflow:hidden;background:radial-gradient(ellipse at center,#f9f7ef 0%,#eeecdf 90%)}.opening-meta,.opening-bottom{width:100%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.17em}.opening-title{text-align:center;margin:34px 0 0}.opening-title h1{font-size:clamp(58px,8.7vw,132px);letter-spacing:-.06em;margin-top:15px}.opening-title h1 em{font-size:.73em;display:inline-block;padding:0 .08em}.envelope{display:block;position:relative;background:none;border:0;width:min(480px,78vw);height:300px;margin:20px auto 15px;cursor:pointer;perspective:1000px;color:var(--wine);isolation:isolate}.envelope-closed{position:absolute;width:100%;height:255px;object-fit:contain;left:0;top:0;filter:drop-shadow(0 18px 17px #35372220);transition:transform .85s,opacity .5s .2s}.envelope-open{position:absolute;width:100%;height:330px;object-fit:contain;left:0;bottom:37px;opacity:0;transition:opacity .5s .2s}.seal{position:absolute;width:67px;left:calc(50% - 33px);top:112px;transition:transform .6s,opacity .3s .2s;filter:drop-shadow(0 3px 3px #30120f40)}.envelope:hover .seal{transform:scale(1.08)}.open-label{position:absolute;bottom:0;left:0;width:100%;font-size:11px;letter-spacing:.17em;display:flex;gap:20px;justify-content:center}.letter{position:absolute;left:20%;width:60%;height:200px;background:var(--paper);top:34px;display:flex;flex-direction:column;justify-content:center;padding:20px;gap:12px;opacity:0;transition:transform 1s .3s,opacity .4s .2s;box-shadow:0 4px 20px #262b1c15;z-index:2}.letter small{font-size:9px;letter-spacing:.14em}.letter>span{font:26px Georgia}.letter i{display:block}.envelope.is-open .seal{transform:translateY(55px) rotate(15deg) scale(.7);opacity:0}.envelope.is-open .envelope-closed{transform:rotateX(-25deg) translateY(20px);opacity:0}.envelope.is-open .envelope-open{opacity:1}.envelope.is-open .letter{opacity:1;transform:translateY(-95px)}.envelope.is-open .open-label{opacity:0}.opening-bottom{margin-top:auto;align-items:center;padding-top:15px}.opening-bottom>span:first-child{font-family:Georgia;font-size:20px}.opening-bottom a{display:flex;gap:25px;align-items:center}.invitation{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center;background:var(--wine);color:var(--paper)}.photo-wrap{position:relative;margin:15px 0 30px}.photo-wrap img{width:100%;height:660px;max-height:70vw;object-fit:cover;display:block}.photo-wrap>span{display:block;text-align:right;font-family:Georgia;font-style:italic;font-size:28px;margin-top:14px}.invitation-copy h2{margin:34px 0 36px;font-size:clamp(55px,7.5vw,112px)}.date{font-size:14px;letter-spacing:.2em}.place{font:italic 27px Georgia;margin:10px 0 35px}.text-link{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid currentColor;font-size:14px}.text-link:hover span{transform:translate(3px,-3px)}.text-link span{transition:transform .2s;font-size:22px}.signoff{font-size:11px;letter-spacing:.15em;margin-top:35px}.signoff em{font:italic 25px Georgia;letter-spacing:0;display:block;margin-top:8px}.section-heading{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end}.section-heading .eyebrow{grid-column:1/-1;color:var(--wine)}.section-heading h2{color:var(--wine)}.section-heading>span{font:italic 25px Georgia}.venues{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:70px}.venues article{border-top:1px solid var(--line);padding-top:25px}.venues h3{margin:22px 0;color:var(--wine)}.venues p:not(.eyebrow){color:#5f5b53;margin-bottom:20px}.venues .text-link{max-width:200px}.timeline{margin-top:100px}.timeline h3{color:var(--wine);font-size:45px}.timeline ol{display:grid;grid-template-columns:repeat(6,1fr);padding:0;margin-top:50px;list-style:none;border-top:1px solid var(--line)}.timeline li{padding:25px 12px 0 0;position:relative}.timeline li:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--wine);position:absolute;top:-3px}.timeline time{font:32px Georgia;color:var(--wine)}.timeline time span{font:12px Arial;margin-left:4px}.timeline li p{font-size:13px;margin-top:15px}.welcome{background:#e4e6d9;display:grid;grid-template-columns:1fr 1fr;gap:12%;color:#39422b}.welcome h2{font-size:clamp(62px,8vw,112px);margin:25px 0 30px}.welcome-intro{max-width:300px;font-size:19px}.welcome-location{margin:40px 0 22px}.welcome-location h3{font-size:30px;margin:13px 0}.welcome-location p:last-child{font-size:15px}.welcome .text-link{max-width:230px}.party-photo{position:relative;align-self:center}.party-photo img{display:block;width:100%;height:600px;object-fit:cover}.party-photo span{display:block;margin-top:15px;font-size:12px;letter-spacing:.18em;text-align:right}.dress{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:start;border-bottom:1px solid var(--line)}.dress h2{margin-top:20px;color:var(--wine)}.dress p+p{margin-top:10px}.swatches{display:flex;gap:14px;margin-top:32px}.swatches span{width:42px;height:42px;border-radius:50%;background:var(--swatch)}.gifts{text-align:center}.gifts h2{margin:15px 0 30px;color:var(--wine)}.gifts>p:not(.eyebrow){max-width:650px;margin:auto}.gift-info{display:flex;justify-content:center;gap:70px;margin:42px 0 25px}.gift-info span{display:block;font-size:11px;letter-spacing:.18em;margin-bottom:10px}.gift-info strong{font-weight:400;font-family:Georgia;font-size:22px}.cash{font-size:14px;font-style:italic}.faq{display:grid;grid-template-columns:1fr 1.5fr;gap:10%;background:#eeece5}.faq h2{margin:20px 0 35px}.faq>div>p:last-child{font-size:14px}.questions details{border-bottom:1px solid #c9c4ba;padding:22px 0}.questions details:first-child{border-top:1px solid #c9c4ba}.questions summary{list-style:none;cursor:pointer;padding-right:35px;position:relative;line-height:1.4}.questions summary::-webkit-details-marker{display:none}.questions summary:after{content:'+';position:absolute;right:0;top:-3px;font-size:25px;color:var(--wine)}.questions details[open] summary:after{content:'−'}.questions details p{font-size:15px;margin-top:20px;color:#5c5850}.rsvp{text-align:center;background:var(--wine);color:var(--paper)}.rsvp h2{font-size:clamp(65px,10vw,140px);margin:28px 0}.rsvp>p{max-width:600px;margin:0 auto}.rsvp-button{display:flex;justify-content:space-between;align-items:center;width:260px;margin:35px auto;background:var(--paper);color:var(--wine);padding:20px 26px;transition:background .2s}.rsvp-button:hover{background:#dddcc5}.rsvp .rsvp-note{font-size:13px;opacity:.8;margin-top:15px}footer{padding:35px 5%;display:flex;justify-content:space-between;align-items:center;color:var(--wine)}footer>span{font-size:11px;letter-spacing:.15em}footer button{border:0;background:none;font-size:12px;color:inherit;cursor:pointer}footer button:hover{text-decoration:underline}@media(min-width:1500px){.envelope{margin-top:45px;margin-bottom:40px}}@media(max-width:760px){header{height:75px;padding:0 6%}.monogram{font-size:27px}nav{gap:18px;font-size:12px}nav a:nth-child(3){display:none}.nav-rsvp{min-width:58px}.opening{min-height:calc(100svh - 75px);padding:25px 6%}.opening-title{margin-top:50px}.opening-title h1{font-size:65px;max-width:330px;line-height:.99}.opening-title h1 em{display:block;font-size:38px;margin:10px auto}.opening-meta{font-size:10px}.opening-title .eyebrow{font-size:10px}.envelope{height:240px;margin-top:24px;width:min(380px,84vw)}.envelope-closed{height:205px}.envelope-open{height:265px;bottom:35px}.seal{width:52px;left:calc(50% - 26px);top:89px}.letter{height:165px;top:20px;padding:12px}.letter>span{font-size:22px}.letter small{font-size:8px}.envelope.is-open .letter{transform:translateY(-60px)}.opening-bottom{font-size:9px}.opening-bottom>span:last-child{display:none}.section{padding:75px 7%}.invitation,.welcome,.dress,.faq{grid-template-columns:1fr;gap:45px}.invitation-copy{grid-row:1}.invitation-copy h2{font-size:75px}.photo-wrap{margin:0}.photo-wrap img{height:500px;max-height:none}.section-heading{display:block}.section-heading h2{margin:20px 0}.section-heading>span{font-size:22px}.venues{grid-template-columns:1fr;gap:40px;margin-top:40px}.timeline{margin-top:65px}.timeline ol{grid-template-columns:repeat(2,1fr);border:0;gap:30px 10px}.timeline li{border-top:1px solid var(--line)}.timeline time{font-size:35px}.welcome h2{font-size:78px}.party-photo img{height:470px}.gift-info{flex-direction:column;gap:25px}.gifts br{display:none}.swatches{gap:12px}.swatches span{width:36px;height:36px}.faq h2{font-size:60px}.rsvp h2{font-size:62px}footer{flex-wrap:wrap;gap:20px}footer>span{font-size:9px}footer button{width:100%;text-align:left}.open-label{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
header{position:sticky;top:0}#invitation:focus{outline:none}@media(max-width:760px){html{scroll-padding-top:75px}}
/* Refined editorial layout and tactile invitation */
:root{--paper:#fcfbf8;--wine:#55212d;--ink:#292b26;--line:#dedfd8}header{height:78px;border-bottom:1px solid #dedfd8;background:#fcfbf8ed;backdrop-filter:blur(18px)}nav{gap:32px}nav a{font-size:13px}.opening{min-height:calc(100svh - 78px);padding:24px 5% 22px;background:var(--paper);overflow:hidden}.opening-meta{color:#74766d;font-size:11px;letter-spacing:.13em}.hero-grid{display:grid;grid-template-columns:1fr 1.15fr;width:100%;gap:4%;align-items:center;flex:1;padding:40px 0 35px}.opening-title{text-align:left;margin:0}.opening-title h1{font-size:clamp(75px,7.8vw,125px);line-height:.93;letter-spacing:-.068em;margin:24px 0 25px}.opening-title h1 em{font-size:.7em;color:#858a74;padding:0 .05em}.opening-title .eyebrow{font-size:11px;letter-spacing:.2em;color:#707567}.hero-location{font-size:14px;color:#717467}.hero-location span{padding:0 10px}.countdown{display:flex;gap:26px;margin-top:38px;padding-top:24px;border-top:1px solid var(--line);width:max-content;max-width:100%}.countdown>div{min-width:55px}.countdown strong{display:block;font-family:Arial,sans-serif;font-weight:300;font-size:35px;line-height:1.15;letter-spacing:-.055em;font-variant-numeric:tabular-nums;color:#454d38}.countdown span{display:block;margin-top:10px;font-size:9px;letter-spacing:.16em;color:#74766d}.countdown-message{font-size:14px;margin-top:10px}.countdown-message:empty{display:none}.envelope-area{display:flex;align-items:center;justify-content:center;perspective:1400px;padding-top:65px}.envelope{width:100%;height:auto;aspect-ratio:1.53;margin:0;display:block;transform:rotate(-6deg);transition:transform .8s cubic-bezier(.2,.7,.2,1);perspective:1400px}.envelope:hover{transform:rotate(-3deg) translateY(-8px)}.envelope-stage{display:block;position:absolute;inset:0 0 70px;transform-style:preserve-3d;filter:drop-shadow(0 28px 24px #262b2528)}.envelope-back,.envelope-front,.envelope-flap{position:absolute;inset:0;border-radius:2px}.envelope-back{background:linear-gradient(135deg,#626a4c,#3f4733)}.envelope-front,.envelope-flap{background-image:url('assets/envelope-v2.png');background-size:116.4% 137.7%;background-position:center 50%;background-repeat:no-repeat}.envelope-front{clip-path:polygon(0 0,50% 71%,100% 0,100% 100%,0 100%);z-index:3}.envelope-flap{clip-path:polygon(0 0,100% 0,100% 10%,60% 69%,57% 76%,43% 76%,40% 69%,0 10%);transform-origin:center top;z-index:4;backface-visibility:hidden;transition:transform 1s cubic-bezier(.4,0,.2,1),opacity .3s .6s}.letter{left:8%;top:5%;width:84%;height:89%;background:#faf8f0;opacity:1;transform:translateY(0);z-index:2;padding:22px;gap:12px;box-shadow:0 0 0 1px #ddd9ca inset;transition:transform 1.25s .55s cubic-bezier(.16,1,.3,1)}.letter small{font-size:8px;letter-spacing:.14em}.letter>span{font-size:clamp(24px,3vw,43px)}.letter i{display:inline}.letter .letter-monogram{font-size:15px;margin-top:6px;color:#6c735a}.open-label{bottom:0;font-size:10px;letter-spacing:.14em;align-items:center;transition:opacity .3s}.open-circle{width:32px;height:32px;border:1px solid #b8bcae;border-radius:50%;display:grid;place-items:center;font-size:16px}.envelope.is-open{transform:rotate(0)}.envelope.is-open .envelope-flap{transform:rotateX(175deg);opacity:0}.envelope.is-open .letter{transform:translateY(-65%);opacity:1}.opening-bottom{color:#787a6f;font-size:10px;border-top:1px solid var(--line);padding-top:16px}.opening-bottom>span:first-child{font-size:16px}.section{padding:95px max(7vw,24px)}.invitation{background:#eef0e9;color:var(--ink);gap:12%}.invitation-copy h2{color:var(--wine);font-size:clamp(56px,6.4vw,95px)}.photo-wrap img{height:600px}.photo-wrap>span{font-family:Arial;font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:#74776c}.place{font-size:24px;color:#69725b}.text-link{border-color:#a6aa9d;font-size:13px}.section-heading>span{font-family:Arial;font-style:normal;font-size:14px;color:#777b70}.venues h3{font-size:34px}.timeline h3{font-size:40px}.timeline time{font-family:Arial;font-size:29px;letter-spacing:-.045em}.timeline li p{font-size:14px}.welcome{background:#f1f0eb;color:var(--ink)}.welcome h2{color:var(--wine)}.party-photo img{height:550px}.dress{background:var(--paper)}.gifts{background:#f5f5f0}.faq{background:var(--paper)}.questions summary{font-size:16px}.rsvp{background:#353e30}.rsvp-button{border-radius:0;background:#fafbf5;color:#353e30}.rsvp-button:hover{background:#e5e9dc;transform:translateY(-2px)}h2{letter-spacing:-.055em}.reveal{opacity:0;transform:translateY(25px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}.hero-grid{animation:hero-in 1s ease both}.opening-meta{animation:hero-in .8s ease both}@keyframes hero-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media(max-width:760px){header{height:70px}nav{gap:17px}nav a{font-size:12px}.opening{min-height:calc(100svh - 70px);padding:19px 6%}.hero-grid{grid-template-columns:1fr;gap:15px;padding:25px 0 22px}.opening-title{text-align:center}.opening-title h1{font-size:65px;max-width:none;line-height:.95;margin:15px 0 16px}.opening-title h1 em{display:inline;font-size:.7em;margin:0}.opening-title h1 br{display:none}.hero-location{font-size:12px}.hero-location span{padding:0 5px}.countdown{margin:22px auto 0;padding-top:18px;gap:23px}.countdown strong{font-size:28px}.countdown>div{min-width:42px}.countdown span{font-size:8px;margin-top:7px}.opening-title .eyebrow{font-size:9px}.envelope-area{padding:55px 4% 0}.envelope{width:min(400px,100%);aspect-ratio:1.4}.envelope-stage{inset:0 0 55px}.letter{top:5%;height:90%;padding:8px;gap:8px}.letter>span{font-size:25px}.letter small{font-size:6px}.letter .letter-monogram{font-size:11px}.open-label{font-size:9px;gap:12px}.open-circle{width:27px;height:27px}.opening-bottom{font-size:9px}.section{padding:70px 7%}.photo-wrap img,.party-photo img{height:480px}.invitation-copy h2{font-size:65px}.welcome h2{font-size:70px}html{scroll-padding-top:70px}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.hero-grid,.opening-meta{animation:none}.envelope:hover{transform:none}}
.envelope-area{position:relative}.envelope-flowers{position:absolute;width:24%;height:85%;object-fit:contain;right:-7%;top:-7%;transform:rotate(24deg);pointer-events:none;filter:drop-shadow(5px 12px 9px #4e58351a);z-index:0}.envelope{z-index:1}@media(max-width:760px){.envelope-flowers{width:25%;height:86%;right:-5%;top:0;transform:rotate(20deg)}}
.envelope-flowers{right:1%;top:-24%;width:28%;height:95%;transform:rotate(13deg)}@media(max-width:760px){.envelope-flowers{right:0;top:-8%;width:26%;height:86%;transform:rotate(15deg)}}
.envelope-front{clip-path:polygon(0 0,50% 84%,100% 0,100% 100%,0 100%)}@media(max-width:760px){.opening-title h1 br{display:block}.opening-title h1{font-size:61px}}
.envelope-front{clip-path:none}.envelope.is-open .envelope-front{clip-path:polygon(0 0,50% 84%,100% 0,100% 100%,0 100%)}
.venue-photo{margin:0 0 25px}.venue-photo img{display:block;width:100%;height:270px;object-fit:cover;object-position:center;border-radius:2px}.venue-photo figcaption{font-size:11px;line-height:1.5;color:#70725d;margin-top:8px;min-height:17px}.venue-photo figcaption a{text-decoration:underline;text-underline-offset:3px}.timeline-icon{display:block;width:34px;height:34px;margin:0 0 23px;color:var(--olive);transition:transform .3s ease}.timeline li:hover .timeline-icon{transform:translateY(-4px)}@media(max-width:760px){.venue-photo img{height:auto;aspect-ratio:3/2}.timeline-icon{width:30px;height:30px;margin-bottom:18px}}@media(prefers-reduced-motion:reduce){.timeline li:hover .timeline-icon{transform:none}}

/* Original Canva palette, sampled from rendered styles */
:root{--paper:#E9E5D4;--wine:#762E2C;--olive:#747247;--ink:#762E2C;--line:#74724755}
header{background:#762e2cf5;color:var(--paper);border-color:#e9e5d430}
.opening{background:var(--wine);color:var(--paper)}
.opening-title h1 em,.opening-meta,.opening-title .eyebrow,.hero-location,.countdown span,.opening-bottom,.countdown strong{color:var(--paper)}
.countdown,.opening-bottom{border-color:#e9e5d440}.open-circle{border-color:#e9e5d470}.envelope{color:var(--paper)}
.envelope-back{background:linear-gradient(135deg,#747247,#49482c)}
.envelope-front,.envelope-flap{background-image:url('assets/envelope-v2.png')}
.letter{background:var(--paper);color:var(--wine);box-shadow:0 0 0 1px #74724744 inset}.letter .letter-monogram{color:var(--olive)}
.invitation,.dress,.gifts,.faq{background:var(--paper);color:var(--wine)}
.invitation-copy h2,.dress h2,.gifts h2{color:var(--wine)}
.photo-wrap>span,.place,.section-heading>span,.venues p:not(.eyebrow),.questions details p,.venue-photo figcaption{color:var(--olive)}
.text-link{border-color:#74724780}.questions details,.questions details:first-child{border-color:#74724755}
.details-section{background:var(--wine);color:var(--paper)}
.details-section h2,.details-section h3,.details-section .eyebrow,.details-section .section-heading>span,.details-section .venues p,.details-section .venue-photo figcaption,.details-section time,.details-section .timeline-icon{color:var(--paper)}
.details-section .venues article,.details-section .text-link,.details-section .timeline ol,.details-section .timeline li{border-color:#e9e5d455}.details-section .timeline li:before{background:var(--paper)}
.welcome{background:var(--olive);color:var(--paper)}.welcome h2{color:var(--paper)}.welcome .text-link{border-color:#e9e5d480}
.rsvp{background:var(--wine);color:var(--paper)}.rsvp-button{background:var(--paper);color:var(--wine)}.rsvp-button:hover{background:#ded8bd}
footer{background:var(--paper);color:var(--wine)}


/* Cinematic invitation, restrained motion and paper finish */
.invitation,.dress,.gifts,.faq,.letter,.invitation-transition{background-image:radial-gradient(#7472470b .65px,transparent .8px),radial-gradient(#762e2c08 .65px,transparent .8px);background-size:5px 7px,7px 5px;background-position:0 0,2px 3px}
.envelope{transition:transform 1s cubic-bezier(.22,.8,.2,1)}.envelope.is-open{transform:rotate(0) scale(1.035)}
.envelope-flap{transition:transform 1.15s .25s cubic-bezier(.4,0,.2,1),opacity .45s .85s}
.envelope.is-open .envelope-flap{transform:rotateX(175deg)}
.letter{transition:transform 1.35s .7s cubic-bezier(.16,1,.3,1)}
.envelope.is-open .letter{transform:translateY(-75%)}
.wax-highlight{position:absolute;left:41%;top:42%;width:18%;height:34%;z-index:5;border-radius:50%;pointer-events:none;overflow:hidden;transition:transform .65s,opacity .45s}
.wax-highlight:after{content:'';position:absolute;inset:-70%;background:linear-gradient(115deg,transparent 42%,#fff5ce50 49%,transparent 56%);transform:translateX(-65%);animation:seal-glint 1.6s 1.2s ease both;mix-blend-mode:screen}
.envelope:hover .wax-highlight:after{animation:seal-hover 1.1s ease both}.envelope.is-open .wax-highlight{transform:translateY(18px) scale(1.12);opacity:0}
@keyframes seal-glint{to{transform:translateX(65%)}}@keyframes seal-hover{from{transform:translateX(-65%)}to{transform:translateX(65%)}}
.envelope-flowers{transform-origin:50% 90%;translate:var(--flower-x,0px) var(--flower-y,0px);transition:translate .7s ease;animation:flowers-arrive 1.8s .15s cubic-bezier(.2,.7,.2,1) both}
@keyframes flowers-arrive{0%{opacity:0;transform:rotate(6deg) translateY(18px)}65%{opacity:1;transform:rotate(16deg) translateY(-3px)}100%{opacity:1;transform:rotate(13deg) translateY(0)}}
.invitation-transition{position:fixed;z-index:100;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;text-align:center;background-color:var(--paper);color:var(--wine);box-shadow:0 25px 90px #220b0940;pointer-events:none;padding:20px;overflow:hidden}
.invitation-transition>span{font:clamp(30px,6vw,82px)/1.05 Georgia,serif}.invitation-transition small{font:10px/1.6 Arial,sans-serif;letter-spacing:.16em}.invitation-transition .letter-monogram{font-size:20px}
.venue-image-frame{overflow:hidden;border-radius:2px}.venue-photo img{height:320px;transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.photo-motion img{transform:scale(1.075)}.photo-entered img{transform:scale(1)}
.venues article h3{transition:opacity .8s .15s,translate .8s .15s}.venues article.reveal:not(.visible) h3{opacity:0;translate:0 10px}
.timeline ol{position:relative}.timeline ol:before{content:'';position:absolute;left:0;top:-1px;width:100%;height:1px;background:var(--paper);transform:scaleX(var(--progress,1));transform-origin:left;transition:transform .2s linear}
.timeline-motion li .timeline-icon,.timeline-motion li time,.timeline-motion li p{opacity:0;translate:0 12px;transition:opacity .55s,translate .55s}
.timeline-motion li.step-visible .timeline-icon,.timeline-motion li.step-visible time,.timeline-motion li.step-visible p{opacity:1;translate:0 0}
.timeline-motion li time{display:block;transition-delay:.08s}.timeline-motion li p{transition-delay:.14s}.timeline-motion li:before{scale:.5;opacity:.4;transition:scale .4s,opacity .4s}.timeline-motion li.step-visible:before{scale:1;opacity:1}
@media(max-width:760px){.venue-photo img{height:auto;aspect-ratio:4/3}.timeline ol:before{display:none}.timeline-motion li{position:relative}.timeline-motion li:after{content:'';position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--paper);transform:scaleX(0);transform-origin:left;transition:transform .55s}.timeline-motion li.step-visible:after{transform:scaleX(1)}.envelope.is-open{transform:rotate(0) scale(1.015)}}
@media(prefers-reduced-motion:reduce){.envelope-flowers{animation:none;translate:0 0}.wax-highlight{display:none}.photo-motion img{transform:none}.timeline-motion li .timeline-icon,.timeline-motion li time,.timeline-motion li p{opacity:1;translate:none}.timeline-motion li:before{scale:1;opacity:1}.timeline ol:before,.timeline-motion li:after{transform:scaleX(1)}.envelope.is-open{transform:none}}
.wax-seal-layer{position:absolute;inset:0;z-index:5;pointer-events:none;background:url('assets/envelope-v2.png') center 50% / 116.4% 137.7% no-repeat;clip-path:ellipse(9.2% 17% at 50% 58%);transition:transform .65s ease,opacity .45s .18s}
.envelope.is-open .wax-seal-layer{transform:translateY(25px) rotate(8deg) scale(1.08);opacity:0}
/* Keep the raised flap visible throughout the card expansion. */
.envelope-flap{backface-visibility:visible;transform-style:preserve-3d;transition:transform 1.15s .25s cubic-bezier(.4,0,.2,1)}
.envelope-flap:after{content:'';position:absolute;inset:0;background:linear-gradient(170deg,#858969,#62694c);transform:rotateX(180deg);backface-visibility:hidden;box-shadow:inset 0 1px #ffffff25}
.envelope.is-open .envelope-flap{opacity:1;transform:rotateX(175deg);z-index:1}
.envelope.is-open .envelope-front{z-index:3}
.envelope.is-open .letter{z-index:2}
.envelope.is-open .envelope-flap{background:linear-gradient(170deg,#62694c,#858969);clip-path:polygon(0 0,100% 0,50% 76%)}
.envelope-flap:after{display:none}

/* Rebuilt envelope: independent paper pocket and two-sided hinged flap. */
.envelope,.envelope:hover,.envelope.is-open{transform:none;transition:none}
.envelope-stage{filter:none;perspective:1400px;transform-style:preserve-3d}
.envelope-back{background:linear-gradient(145deg,#686e50,#414832);box-shadow:0 24px 38px #220c092b;border:1px solid #a1a68444}
.envelope-front,.envelope.is-open .envelope-front{z-index:3;background:linear-gradient(145deg,transparent 49.6%,#ffffff16 50%,transparent 50.5%),linear-gradient(215deg,transparent 49.6%,#10190930 50%,transparent 50.5%),linear-gradient(115deg,#777d5c,#535c40);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);transition:none}
.envelope-flap,.envelope.is-open .envelope-flap{inset:0;z-index:4;background:none;clip-path:none;opacity:1;backface-visibility:visible;transform-style:preserve-3d;transform-origin:50% 0;transform:rotateX(0deg);transition:transform 650ms cubic-bezier(.33,0,.16,1)}
.flap-face{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 60%);backface-visibility:hidden}
.flap-outside{background:linear-gradient(155deg,#879071,#697354 70%);transform:translateZ(1px)}
.flap-inside{background:linear-gradient(180deg,#889172,#596448);transform:rotateX(180deg) translateZ(1px)}
.envelope.is-open .envelope-flap{transform:rotateX(180deg)}
.envelope.is-open.flap-raised .envelope-flap{z-index:1}
.envelope .letter,.envelope.is-open .letter{top:7%;left:8%;width:84%;height:87%;z-index:2;opacity:1;transform:translateY(0);transition:transform 700ms cubic-bezier(.22,.68,.12,1)}
.envelope.card-rising .letter{transform:translateY(-109%)}
.envelope.card-flying .letter{visibility:hidden}
.wax-seal-layer{transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .4s .15s}
.envelope.is-open .wax-seal-layer{transform:translateY(30px) rotate(12deg) scale(1.05);opacity:0}
.wax-highlight{transition:opacity .25s}.envelope.is-open .wax-highlight{opacity:0}
.letter.invitation-flying{position:fixed;z-index:100;margin:0;opacity:1;visibility:visible;transform:none;transform-origin:center;transition:none;will-change:transform,opacity;pointer-events:none;box-shadow:0 15px 50px #220c0925}
@media(prefers-reduced-motion:reduce){.envelope .letter,.envelope-flap{transition:none}.envelope.card-rising .letter{transform:none}}
.envelope-stage{transform-style:flat;transition:translate 650ms cubic-bezier(.22,.68,.12,1)}
.envelope.is-open .envelope-stage{translate:0 45px}
.flap-inside{clip-path:polygon(0 100%,100% 100%,50% 40%)}
.envelope.card-rising .letter{transform:translateY(-94%)}

/* Soft olive shadows behind the invitation, with no video download. */
.opening{isolation:isolate}
.opening::before,.opening::after{content:'';position:absolute;z-index:-1;pointer-events:none;background:url('assets/olive-shadows.svg') center / contain no-repeat;transform-origin:90% 100%;will-change:transform}
.opening::before{width:min(85vw,1150px);height:115%;right:-15%;bottom:-15%;opacity:.24;filter:blur(9px);animation:olive-shadow-sway 22s ease-in-out infinite alternate}
.opening::after{width:min(52vw,720px);height:90%;left:-24%;top:-35%;opacity:.12;filter:blur(14px);rotate:155deg;animation:olive-shadow-sway 29s -11s ease-in-out infinite alternate-reverse}
@keyframes olive-shadow-sway{from{transform:rotate(-3deg) translate3d(-8px,0,0)}to{transform:rotate(4deg) translate3d(12px,-9px,0)}}
@media(max-width:760px){.opening::before{width:125%;height:75%;right:-36%;bottom:-9%;opacity:.2;filter:blur(6px)}.opening::after{display:none}}
@media(prefers-reduced-motion:reduce){.opening::before,.opening::after{animation:none;will-change:auto}}

/* A quiet landscape interlude between the invitation and the details. */
.tuscany-film{position:relative;isolation:isolate;overflow:hidden;height:clamp(360px,42vw,620px);background:#454638;color:var(--paper)}
.tuscany-film-poster,.tuscany-film-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%}
.tuscany-film-video{opacity:0;transition:opacity .6s ease}
.tuscany-film.has-frame .tuscany-film-video{opacity:1}
.tuscany-film::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,#171b1499);pointer-events:none}
.tuscany-film-caption{position:absolute;z-index:1;left:7%;bottom:12%;max-width:75%}
.tuscany-film-caption .eyebrow{font-size:10px;letter-spacing:.24em;margin-bottom:15px;color:#fff9e9}
.tuscany-film-title{font:clamp(38px,5vw,72px)/1.08 'Cormorant Garamond',Georgia,serif;letter-spacing:-.025em;color:#fff9e9}
@media(max-width:760px){.tuscany-film{height:420px}.tuscany-film-caption{left:7%;bottom:45px;max-width:86%}.tuscany-film-caption .eyebrow{font-size:9px}.tuscany-film-title{font-size:44px}}
@media(prefers-reduced-motion:reduce){.tuscany-film-video{transition:none}}

/* Guest actions */
.mobile-rsvp{display:none}
[hidden]{display:none!important}
@media(max-width:760px){
 body{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
 .mobile-rsvp{position:fixed;z-index:20;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:32px;padding:14px 24px;min-height:48px;background:var(--paper);color:var(--wine);border:1px solid var(--wine);box-shadow:0 5px 24px #220c092b;font-size:14px;white-space:nowrap}
}

/* Resting open envelope: keep the card within the original envelope bounds. */
.envelope.is-settled .envelope-stage{translate:0 0;transition:none}
.envelope.is-settled .letter{transform:translateY(0);transition:none}
.envelope.is-settled .envelope-flap{transform:rotateX(180deg) scaleY(.22);transition:none}
.envelope.is-settled .open-label{opacity:1;font-size:0}
.envelope.is-settled .open-label:after{content:'VIEW INVITATION';font-size:10px}

/* Wedding stationery: typography, photography and tactile details. */
@font-face{font-family:'Cormorant Garamond';src:url('assets/fonts/cormorant-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('assets/fonts/cormorant-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
:root{--display:'Cormorant Garamond',Georgia,serif}
h1,h2,h3,.monogram,.place,.signoff em,.letter>span,.invitation-transition>span{font-family:var(--display)}
h2{letter-spacing:-.035em}.opening-title h1{font-size:clamp(88px,9.3vw,152px);letter-spacing:-.045em;line-height:.85}.opening-title h1 em{font-size:.85em;color:#d0bc93}.opening-title .eyebrow{letter-spacing:.26em}.opening{background:radial-gradient(ellipse at 75% 35%,#91504a55,transparent 65%),var(--wine)}
.monogram{font-size:39px}.monogram span{font-size:.7em}.invitation-copy h2{font-size:clamp(76px,8vw,124px);line-height:.87}.signoff em{font-size:32px}.place{font-size:30px}
.envelope-back{box-shadow:0 2px 3px #171b2640,0 24px 36px #240c0d40,0 55px 65px -30px #240c0d60;border:1px solid #bbc09b80}
.envelope-front:after,.flap-face:after{content:'';position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.18' d='M0 0h180v180H0z'/%3E%3C/svg%3E");opacity:.38;box-shadow:inset 0 1px #eff1d36b,inset 0 -2px #26301d55}
.flap-outside{background:linear-gradient(155deg,#98a07e,#6a7455 70%)}
.letter{outline:1px solid #9e906e55;outline-offset:-10px}
.wax-seal-layer{inset:auto;left:41%;top:42%;width:18%;height:34%;clip-path:none;display:grid;place-items:center;border-radius:46% 52% 44% 49%;background:radial-gradient(ellipse at 35% 20%,#c79668,#aa754d 43%,#865132 76%,#bb8758);border:2px solid #c39364;box-shadow:inset 1px 2px 3px #f5d1a77a,inset -2px -3px 4px #56301e80,1px 5px 6px #17201066;color:#60371f}
.wax-seal-layer:before{content:'';position:absolute;inset:10%;border:1px solid #75452599;border-radius:50%;box-shadow:0 1px 1px #e6b7868c,inset 0 1px 2px #643d2855}
.wax-seal-layer>span{font:clamp(21px,2.5vw,40px)/1 var(--display);letter-spacing:-.09em;text-shadow:0 1px #edc293b0}.wax-seal-layer i{font-size:.7em;padding:0 .08em}
.photo-wrap{margin:20px 6% 60px 0}.photo-wrap>img{height:640px;object-position:50% 70%;border:9px solid #f4f0e3;box-shadow:0 12px 32px #38321d1a}.photo-wrap>span{margin-top:23px;text-align:left;font-size:9px}
.photo-keepsake{position:absolute;right:-14%;bottom:-35px;width:41%;margin:0;padding:9px 9px 15px;background:#f7f3e7;transform:rotate(7deg);box-shadow:0 8px 25px #31251430}
.photo-keepsake img{width:100%;height:auto;max-height:none;aspect-ratio:4/5;object-fit:cover;object-position:50% 85%}.photo-keepsake figcaption{font:italic clamp(15px,1.6vw,24px)/1.2 var(--display);text-align:center;margin-top:10px;color:var(--wine)}




.venues{gap:12%;align-items:start}.venues article{position:relative;border-top:0;padding-top:0}.venues article:nth-child(2){margin-top:140px}.venue-image-frame{border-radius:0}.venue-photo img{height:390px;border-radius:0}.venues article:nth-child(2) .venue-photo img{height:310px}.venues article>.eyebrow{display:flex;align-items:center;gap:18px;margin-top:24px;font-size:10px}.venue-number{font:italic 68px/.85 var(--display);letter-spacing:-.06em;color:#d0bc93}.venues h3{font-size:46px;margin-top:25px}.party-photo{padding:12px 12px 20px;border:1px solid #e9e5d44d;transform:rotate(2deg)}.party-photo.reveal.visible{transform:rotate(2deg)}
.dress{grid-template-columns:.8fr 1.2fr;gap:8%;padding-top:120px;padding-bottom:120px}.palette-intro{font:italic 25px var(--display);color:#62603b}.swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 16px;margin-top:35px}.colour-card{margin:0;padding:8px 8px 12px;background:#f7f3e8;box-shadow:0 5px 12px #3f352516;transform:rotate(-3deg);transition:transform .3s}.colour-card:nth-child(2n){transform:rotate(3deg)}.colour-card:nth-child(3n){transform:rotate(-1deg)}.swatches .colour-card>span{display:block;width:100%;height:auto;aspect-ratio:1.25;border-radius:0;background:linear-gradient(130deg,#ffffff1a,transparent 60%,#00000012),var(--swatch);clip-path:polygon(0 1%,24% 0,50% 1%,75% 0,100% 1%,99% 99%,70% 100%,45% 99%,20% 100%,0 99%)}.colour-card figcaption{font:italic 21px/1.2 var(--display);text-align:center;margin-top:10px;color:var(--wine)}
@media(hover:hover){.colour-card:hover{transform:translateY(-5px) rotate(0)}}
.rsvp{position:relative;isolation:isolate;overflow:hidden;padding-top:150px;padding-bottom:130px;background:radial-gradient(ellipse at center,#8d413b,var(--wine) 72%)}.rsvp:after{content:'';position:absolute;inset:22px;border:1px solid #e9e5d430;pointer-events:none}.rsvp-monogram{position:absolute;z-index:-1;inset:0;display:flex;align-items:center;justify-content:center;font:clamp(250px,52vw,800px)/1 var(--display);letter-spacing:-.12em;color:#e9e5d40a;pointer-events:none}.rsvp-monogram i{font-size:.7em}.rsvp-content{position:relative;max-width:650px;margin:auto}.rsvp-prelude{font:italic 30px/1.2 var(--display);margin-bottom:45px}.rsvp h2{font-size:clamp(80px,12vw,174px);line-height:1;margin:26px 0}.rsvp-content>.eyebrow{font-size:10px;letter-spacing:.2em}.rsvp-content>p:not([class]){font-size:14px;max-width:460px;margin:auto}.rsvp-button{width:min(290px,100%);min-height:64px;margin:36px auto;box-shadow:0 8px 30px #330f141a;transition:background .2s,transform .2s}.rsvp-signature{display:block;font:italic 27px var(--display);margin-top:48px;color:#dac8a5}
@media(max-width:760px){.opening-title h1{font-size:clamp(65px,17vw,98px);line-height:.89}.opening-title h1 em{font-size:.85em}.invitation-copy h2{font-size:82px}.photo-wrap{margin:0 9% 45px 0}.photo-wrap>img{height:480px;border-width:6px}.photo-keepsake{right:-10%;width:43%;padding:6px 6px 12px}.photo-keepsake img{height:auto}.photo-wrap>span{max-width:60%;font-size:8px}.venues{gap:55px}.venues article:nth-child(2){margin-top:0}.venue-photo img,.venues article:nth-child(2) .venue-photo img{height:auto;aspect-ratio:4/3}.venues h3{font-size:38px}.venue-number{font-size:56px}.dress{grid-template-columns:1fr;gap:32px;padding-top:75px;padding-bottom:80px}.swatches{gap:22px 13px}.colour-card{padding:6px 6px 10px}.colour-card figcaption{font-size:18px}.party-photo{margin:0 3%}.rsvp{padding:100px 9%}.rsvp:after{inset:13px}.rsvp-prelude{font-size:26px;margin-bottom:35px}.rsvp h2{font-size:clamp(70px,18vw,120px)}.rsvp-monogram{font-size:90vw}.rsvp-signature{font-size:25px}.wax-seal-layer>span{font-size:clamp(20px,6vw,30px)}}

/* Keep the invitation envelope proportionate on wide desktop screens. */
@media(min-width:761px){
 .envelope-area{width:100%;max-width:600px;justify-self:center}
}

/* Editorial finishing: generous stationery, a photographic interlude and quiet details. */
.opening{padding-inline:6%;background:radial-gradient(ellipse at 80% 45%,#a7655138,transparent 58%),var(--wine)}
.hero-grid{grid-template-columns:1fr 1.12fr;gap:7%;max-width:1440px;padding-block:65px 55px}
.opening-title h1{font-size:clamp(90px,10vw,152px);margin-block:28px 30px}
.hero-intro{font:25px/1.25 var(--display);color:var(--paper);margin-bottom:24px}
.hero-intro em{color:#dac8a5}
.hero-location{font-size:12px;letter-spacing:.06em}
.countdown{gap:23px;margin-top:28px;padding-top:18px;border-top:0}
.countdown strong{font:26px/1 var(--display);letter-spacing:0}
.countdown span{font-size:8px;letter-spacing:.12em;margin-top:6px}
.countdown>div{min-width:36px}
.envelope-area{padding-top:65px;max-width:600px}
.envelope-flowers{right:-10%;top:-32%;width:36%;height:115%}
.envelope:not(.is-open){rotate:-5deg}
.envelope{transition:rotate .65s ease}
.envelope-back{box-shadow:0 2px 3px #171b2640,0 30px 40px #240c0d55,0 70px 70px -35px #240c0d75}
.open-label{letter-spacing:.2em;font-size:10px;bottom:-8px}
.open-circle{width:38px;height:38px}
.opening-bottom{margin-top:20px;padding-top:20px}
.invitation{padding-block:130px;gap:14%}
.invitation-copy h2{font-size:clamp(70px,7vw,108px)}
.invitation-copy .text-link{max-width:340px}
.photo-wrap>img{border-width:12px;transform:rotate(-2deg)}
.photo-keepsake{right:-16%;bottom:-28px;width:38%}
.details-section{padding-block:130px}
.section-heading{padding-bottom:30px;border-bottom:1px solid #e9e5d440}
.venues{gap:14%;margin-top:65px}
.venues article:nth-child(2){margin-top:170px}
.venue-number{font-size:85px}
.venues h3{font-size:clamp(35px,4vw,58px)}
.venues .text-link{margin-top:26px}
.timeline{margin-top:120px;padding-top:55px;border-top:1px solid #e9e5d440}
.welcome{padding-block:120px;align-items:center}
.welcome-copy{max-width:450px}
.party-photo{padding:14px 14px 22px;background:#e9e5d412}
.rsvp{padding-block:155px;background:var(--wine)}
.rsvp:after{inset:30px;border-color:#e9e5d455}
.rsvp:before{content:'';position:absolute;inset:38px;border:1px solid #e9e5d420;pointer-events:none}
.rsvp-monogram{color:#e9e5d40c}
.rsvp-prelude{margin-bottom:55px}
.rsvp-button{background:var(--paper);color:var(--wine)}
@media(min-width:761px) and (max-width:1050px){
 .hero-grid{gap:4%;grid-template-columns:1fr 1fr}
 .opening-title h1{font-size:100px}
}
@media(max-width:760px){
 .hero-grid{grid-template-columns:1fr;gap:22px;padding-block:30px 25px}
 .opening-title h1{font-size:clamp(68px,19vw,110px);margin-block:20px}
 .hero-intro{font-size:23px;margin-bottom:18px}
 .hero-intro br{display:none}
 .hero-intro em{display:block}
 .countdown{margin-top:20px;gap:22px;padding-top:0}
 .countdown strong{font-size:23px}
 .envelope-area{padding:48px 5% 0;max-width:440px;justify-self:center;width:100%}
 /* Leave room for the flowers' rotation inside the clipped hero. */
 .envelope-flowers{right:14%;top:-28%;width:29%;height:98%}
 .envelope:not(.is-open){rotate:-3deg}
 .open-label{bottom:0;font-size:9px;letter-spacing:.12em}
 .open-circle{width:30px;height:30px}
 .opening-bottom{margin-top:8px}
 .invitation{padding-block:80px;gap:55px}
 .invitation-copy h2{font-size:78px}
 .photo-wrap>img{border-width:8px}
 .photo-keepsake{right:-10%;width:40%}
 .details-section,.welcome{padding-block:80px}
 .venues{gap:65px;margin-top:45px}
 .venues article:nth-child(2){margin-top:0}
 .venue-number{font-size:65px}
 .timeline{margin-top:65px;padding-top:35px}
 .rsvp{padding:100px 9%}
 .rsvp:after{inset:14px}
 .rsvp:before{inset:20px}
 .rsvp-prelude{margin-bottom:35px}
}
@media(prefers-reduced-motion:reduce){.envelope{transition:none}}

/* Shared date and title lockup for both celebrations. */
.celebration-heading,.section-heading.celebration-heading{display:flex;align-items:center;justify-content:flex-start;gap:32px}
.celebration-heading .day-marker,.section-heading .day-marker,.welcome-copy .day-marker{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:5px;margin:0;padding:0 30px 0 0;border:0;border-right:1px solid #e9e5d440;color:#dac8a5;text-align:center}
.day-marker>span{display:block;font:110px/1.12 var(--display);font-variant-numeric:lining-nums;letter-spacing:-.055em;padding-right:5px}
.day-marker small{display:block;font:10px/1.5 Arial,sans-serif;letter-spacing:.22em;padding-bottom:8px}
.celebration-title{min-width:0}
.celebration-title .eyebrow{font-size:10px;letter-spacing:.18em;margin-bottom:14px}
.celebration-title h2{margin:0;font-size:clamp(52px,6vw,84px)}
.heading-note{font-size:13px;margin-top:16px}
.welcome{grid-template-columns:1fr 1.2fr;gap:7%}
.welcome-copy{max-width:none}
.welcome-copy .celebration-heading{gap:24px;margin-bottom:35px}
.welcome-copy .day-marker{padding-right:24px}
.welcome-copy .celebration-title h2{font-size:clamp(48px,5vw,76px)}
.party-photo,.party-photo.reveal.visible{margin:0;padding:0;border:0;background:none;transform:none}
.party-photo img{height:auto;aspect-ratio:4/5;object-fit:cover;object-position:55% center}
.party-photo figcaption{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:9px;letter-spacing:.08em;line-height:1.6}
.party-photo figcaption span{display:inline;margin:0;font-size:inherit;letter-spacing:inherit;text-align:left}
.party-photo figcaption a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:1000px) and (min-width:761px){.welcome{grid-template-columns:1fr;gap:45px}.party-photo img{aspect-ratio:3/2}.welcome-copy{max-width:650px}}
@media(max-width:760px){
 .celebration-heading,.section-heading.celebration-heading{gap:20px}
 .celebration-heading .day-marker,.section-heading .day-marker,.welcome-copy .day-marker{padding-right:20px}
 .day-marker>span{font-size:78px}
 .day-marker small{font-size:9px}
 .celebration-title .eyebrow{font-size:9px;letter-spacing:.12em;line-height:1.7;margin-bottom:10px}
 .celebration-title h2,.welcome-copy .celebration-title h2{font-size:clamp(38px,10vw,62px);margin:0}
 .welcome{grid-template-columns:1fr;gap:40px}
 .welcome-copy .celebration-heading{gap:20px}
 .party-photo{margin:0}
 .party-photo img{aspect-ratio:4/5}
}

@media(max-width:760px){
 nav{gap:clamp(9px,3vw,17px)}
 nav a{font-size:clamp(10px,3.2vw,12px)}
 nav a:nth-child(3){display:inline}
 .nav-rsvp{min-width:50px}
}

/* A linear reading order for wedding details on small screens. */
@media(max-width:760px){
 .details-section{padding-block:56px 64px}
 .details-section .celebration-heading{padding-bottom:24px}
 .details-section .celebration-title h2{font-size:54px}
 .details-section .heading-note{margin-top:12px}
 .details-section .venues{margin-top:32px;gap:36px}
 .details-section .venues article{display:flex;flex-direction:column;min-width:0}
 .details-section .venues article+article{padding-top:32px;border-top:1px solid #e9e5d455}
 .details-section .venues article>.eyebrow{order:-1;margin:0 0 18px;gap:12px;font-size:12px;letter-spacing:.14em}
 .details-section .venue-number{font-size:30px;line-height:1}
 .details-section .venue-photo{margin:0 0 20px}
 .details-section .venue-photo img{aspect-ratio:3/2}
 .details-section .venue-photo figcaption{font-size:10px}
 .details-section .venues h3{font-size:36px;line-height:1.08;margin:0 0 12px}
 .details-section .venues p:not(.eyebrow){font-size:14px;line-height:1.6;margin:0}
 .details-section .venues .text-link{max-width:none;min-height:48px;margin-top:20px;padding:12px 16px;border:1px solid #e9e5d466}
 .details-section .timeline{margin-top:48px;padding-top:32px}
 .details-section .timeline h3{font-size:38px}
 .details-section .timeline ol{display:block;margin:24px 0 0;border:0}
 .details-section .timeline li{display:grid;grid-template-columns:26px 88px minmax(0,1fr);align-items:center;gap:12px;padding:20px 0;border:0;border-bottom:1px solid #e9e5d433}
 .details-section .timeline li:before,.details-section .timeline li:after{display:none}
 .details-section .timeline .timeline-icon{width:26px;height:26px;margin:0}
 .details-section .timeline time{font-size:30px;white-space:nowrap}
 .details-section .timeline li p{font-size:14px;line-height:1.4;margin:0}
 .details-section .timeline-motion li .timeline-icon,.details-section .timeline-motion li time,.details-section .timeline-motion li p{opacity:1;translate:none}
}
