:root{--paper:#f8f5ee;--paper-deep:#efe9df;--ink:#562b38;--text:#4f4546;--muted:#77686b;--line:#cfc2bc;--gold:#9a7951;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased}body.opening-visible{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button{border:0;background:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.06}h2{font-size:clamp(38px,4.2vw,58px)}h3{font-size:48px}em{font-weight:400}::selection{background:#e0cbd0}section,article{scroll-margin-top:100px}.eyebrow{font:500 10px/1.6 var(--sans);letter-spacing:2.4px;text-transform:uppercase}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:16px;z-index:101;padding:12px;background:var(--paper)}.skip-link:focus{top:12px}
.opening{position:fixed;inset:0;z-index:100;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;padding:60px 28px;transition:opacity .65s ease;overflow:auto;min-height:100dvh}.opening[hidden]{display:none}.opening.is-leaving{opacity:0;pointer-events:none}.opening-border{position:absolute;inset:22px;border:1px solid #c6ab9766;pointer-events:none}.opening-border:after{content:'';position:absolute;inset:6px;border:1px solid #c6ab9726}.opening-top,.opening-bottom{color:#d5c0b2;position:relative}.opening-top{letter-spacing:3.3px}.opening-bottom{font-size:9px;letter-spacing:2px}.opening-content{padding:32px 0 46px}.monogram{position:relative;font-family:var(--serif);font-weight:400}.monogram-large{width:156px;height:166px;margin:0 auto 24px;font-size:115px;line-height:1}.monogram-large span:first-child{position:absolute;top:0;left:0}.monogram-large span:last-child{position:absolute;right:0;bottom:0}.monogram-large i{position:absolute;left:64px;top:58px;font-size:57px;color:#c6ab97;z-index:1}.monogram-large:before,.monogram-large:after{content:'';position:absolute;inset:-26px -23px;border:1px solid #c6ab9744;border-radius:50%}.monogram-large:after{inset:-32px -29px;border-color:#c6ab9724}.tiny-ornament{font-size:26px;font-family:var(--serif);color:var(--gold)}.opening .tiny-ornament{margin:45px 0 15px;color:#c6ab97}.opening h1{font-size:clamp(35px,4.5vw,56px)}.opening-subtitle{font-size:12px;color:#d5c0b2;margin-top:14px}
.site-header{height:96px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);max-width:1600px;margin:0 auto}.wordmark{font-family:var(--serif);font-size:33px;line-height:1;display:inline-flex;gap:5px;align-items:center}.wordmark i{font-size:22px;color:var(--gold);margin:0 1px}.site-header nav{display:flex;gap:38px;font-size:10px;letter-spacing:1.4px;text-transform:uppercase}.site-header nav a{padding:12px 0;position:relative}.site-header nav a:after{content:'';position:absolute;left:0;bottom:4px;width:0;height:1px;background:var(--ink);transition:width .25s}.site-header nav a:hover:after{width:100%}.site-header nav span{font-size:15px;margin-left:4px}
.hero{position:relative;text-align:center;padding:76px 50px 61px;overflow:hidden}.hero>.eyebrow{margin-bottom:23px}.hero h1{font-size:clamp(62px,7.8vw,112px);line-height:.99;letter-spacing:-2.4px}.hero h1 em{color:#84515b}.couple-names{margin:29px auto 22px;display:flex;align-items:center;justify-content:center;gap:21px;font:400 30px/1.3 var(--serif)}.couple-names i{font-size:24px;color:var(--gold)}.hero-copy{font-size:12px;line-height:1.85;color:var(--muted)}.hero-date{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:34px;font-size:10px;letter-spacing:1.9px;text-transform:uppercase}.line{width:45px;height:1px;background:var(--line)}.hero-location{margin-top:7px;font:italic 18px var(--serif);color:var(--muted)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--ink);padding:10px 0;font-size:10px;letter-spacing:1.3px;text-transform:uppercase}.text-link span{font-size:18px}.hero-link{margin-top:35px}.hero-side{position:absolute;top:49%;font-size:9px;letter-spacing:2.8px;text-transform:uppercase;writing-mode:vertical-rl;color:var(--muted)}.hero-side.left{left:4%;transform:rotate(180deg)}.hero-side.right{right:4%}
.celebrations{background:var(--paper-deep);padding:70px 7% 78px;border-top:1px solid var(--line)}.section-heading{text-align:center;margin-bottom:42px}.section-heading .eyebrow{margin-bottom:16px}.section-heading h2{font-size:clamp(35px,4vw,52px)}.section-heading>p:last-child{margin-top:14px;color:var(--muted);font-size:12px}.wedding-card,.reception-grid{max-width:1120px;margin-left:auto;margin-right:auto}.wedding-card{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:64px;background:var(--paper);border:1px solid #b9a29a;padding:58px 64px 55px}.wedding-card:after{content:'';position:absolute;inset:7px;border:1px solid #d7cbc1;pointer-events:none}.event-number{font-family:var(--serif);font-style:italic;font-size:28px;line-height:1;color:var(--gold)}.wedding-card>.event-number{position:absolute;top:25px;left:26px;font-size:25px}.wedding-invitation{padding:4px 35px 0 5px;text-align:center;align-self:center}.wedding-invitation h3{margin-top:16px;margin-bottom:20px;font-size:58px}.event-description{color:var(--muted);font-size:12px;line-height:1.9;max-width:370px}.small-rule{height:1px;width:36px;background:var(--gold);margin:24px auto 17px}.family-signoff{font-family:var(--serif);font-size:19px;font-style:italic;line-height:1.35}.event-details{display:grid;gap:24px}.wedding-card>.event-details{border-left:1px solid var(--line);padding:4px 0 4px 42px}.detail-label{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.detail-value{font-family:var(--serif);font-size:26px;line-height:1.2}.detail-secondary{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.7}.event-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:15px 24px}.pending-location{font-size:10px;letter-spacing:.5px;display:flex;align-items:center;gap:8px;color:var(--muted)}.pending-location:before{content:'';display:block;width:5px;height:5px;border:1px solid var(--gold);border-radius:50%}.event-actions .text-link{font-size:9px;padding:5px 0}.calendar-button{font-size:10px;padding:9px 0;color:var(--muted);border-bottom:1px solid var(--line)}.calendar-button:hover{color:var(--ink)}.reception-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:22px;gap:22px}.reception-card{padding:34px 38px 38px;border:1px solid var(--line)}.reception-top{display:flex;align-items:center;gap:18px;margin-bottom:23px}.reception-top .eyebrow{font-size:9px;letter-spacing:1.5px}.reception-card h3{font-size:41px;margin-bottom:15px}.reception-card .event-description{min-height:70px}.reception-card .event-details{margin-top:24px;padding-top:26px;border-top:1px solid var(--line);grid-template-columns:1fr;gap:20px}.reception-card .detail-value{font-size:25px}
.travel-section{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:100px;padding:85px 7% 91px}.travel-intro .eyebrow{margin-bottom:20px}.travel-intro h2{font-size:clamp(38px,4vw,52px)}.travel-intro>p:not(.eyebrow){color:var(--muted);font-size:12px;line-height:1.9;margin-top:24px;max-width:370px}.travel-intro>p.travel-signoff{font:italic 21px/1.4 var(--serif);color:var(--ink);margin-top:20px}.travel-questions{padding-top:10px}details{border-bottom:1px solid var(--line);padding:24px 0}details:first-child{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;font-family:var(--serif);font-size:25px;display:flex;align-items:center;justify-content:space-between;gap:20px}summary::-webkit-details-marker{display:none}summary:after{content:'+';font-family:var(--sans);font-size:20px;color:var(--gold);font-weight:400}details[open] summary:after{content:'−'}details p{font-size:12px;line-height:1.9;color:var(--muted);padding-top:15px;max-width:360px}
.closing{background:var(--ink);color:var(--paper);text-align:center;padding:50px 24px 55px}.closing .tiny-ornament{display:block;color:#c6ab97;margin-bottom:17px}.closing>.eyebrow{color:#d5c0b2;font-size:9px;margin-bottom:22px}.closing h2{font-size:clamp(35px,4vw,54px);line-height:1.1}.closing h2 em{color:#d4b9b6}.closing-mark{margin-top:34px;font-size:37px}.closing-mark i{color:#c6ab97}.closing-names{font:17px var(--serif);margin-top:14px;color:#d5c0b2}.closing-names i{margin:0 5px}footer{padding:22px 6%;display:flex;gap:20px;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px}footer button{font-size:10px;padding:8px}footer a{padding:8px 0}footer a:hover,footer button:hover{color:var(--ink)}
@media(min-width:1600px){.hero{padding-top:92px;padding-bottom:78px}.celebrations{padding-top:90px;padding-bottom:95px}}
@media(max-width:900px){.site-header{padding:0 5%;height:83px}.site-header nav{gap:22px;font-size:9px;letter-spacing:1px}.hero{padding:65px 28px 57px}.hero h1{font-size:85px}.celebrations{padding:60px 5%}.wedding-card{gap:30px;padding:48px 36px}.wedding-invitation{padding-right:4px}.wedding-card>.event-details{padding-left:28px}.wedding-invitation h3{font-size:49px}.reception-card{padding:29px}.reception-card h3{font-size:34px}.reception-card .event-description{min-height:92px}.travel-section{gap:45px;padding:65px 6%}}
@media(max-width:600px){html{scroll-padding-top:24px}section,article{scroll-margin-top:24px}.opening{padding:47px 25px;min-height:100dvh}.opening-border{inset:13px}.opening-content{padding:48px 0 40px}.opening-top{font-size:8px;letter-spacing:2.5px}.opening-bottom{font-size:8px;letter-spacing:1.25px}.monogram-large{transform:scale(.86);margin-bottom:5px}.opening .tiny-ornament{margin-top:28px}.opening h1{font-size:38px}.opening-subtitle{font-size:11px}.open-button{padding:14px 20px;min-width:228px;margin-top:30px}.site-header{height:78px;padding:0 23px}.wordmark{font-size:29px}.wordmark i{font-size:19px}.site-header nav{gap:16px;font-size:8px;letter-spacing:.3px}.site-header nav span{display:none}.hero{padding:54px 20px 45px}.hero>.eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:22px}.hero h1{font-size:clamp(52px,12vw,72px);letter-spacing:-1px;line-height:1.02}.couple-names{font-size:24px;gap:12px;margin:25px 0 22px;flex-wrap:wrap}.couple-names i{font-size:22px}.hero-copy{font-size:11px}.hero-date{gap:13px;font-size:9px;letter-spacing:1.4px;margin-top:28px}.line{width:25px}.hero-location{font-size:17px}.hero-link{margin-top:24px;font-size:9px}.hero-side{display:none}.celebrations{padding:47px 20px}.section-heading{margin-bottom:30px}.section-heading .eyebrow{font-size:8px;letter-spacing:1.4px;margin:0 auto 15px;max-width:270px}.section-heading h2{font-size:36px;max-width:320px;margin:auto;line-height:1.1}.section-heading h2 em{display:block}.section-heading>p:last-child{font-size:11px}.wedding-card{display:block;padding:49px 28px 35px}.wedding-card>.event-number{top:22px;left:23px;font-size:23px}.wedding-invitation{padding:0}.wedding-invitation .eyebrow{font-size:8px;letter-spacing:1.5px}.wedding-invitation h3{font-size:52px;margin-top:13px;margin-bottom:17px}.event-description{font-size:12px;margin-left:auto;margin-right:auto}.small-rule{margin-top:20px;margin-bottom:14px}.family-signoff{font-size:20px}.wedding-card>.event-details{border-left:0;border-top:1px solid var(--line);margin-top:28px;padding:27px 0 0;text-align:center;gap:22px}.event-actions{justify-content:center}.detail-value{font-size:27px}.detail-secondary{font-size:11px}.reception-grid{grid-template-columns:1fr;gap:18px;margin-top:18px}.reception-card{padding:28px}.reception-card h3{font-size:39px}.reception-card .event-description{min-height:0;max-width:100%}.reception-card .event-actions{justify-content:flex-start}.reception-card .event-details{margin-top:21px;padding-top:23px}.travel-section{display:block;padding:50px 28px 55px}.travel-intro h2{font-size:43px}.travel-intro .eyebrow{font-size:9px}.travel-intro>p:not(.eyebrow){max-width:100%;margin-top:20px}.travel-questions{margin-top:32px;padding-top:0}details{padding:21px 0}summary{font-size:25px}.closing{padding:39px 20px 43px}.closing h2{font-size:35px}.closing-mark{margin-top:28px}.closing-names{font-size:16px}footer{flex-wrap:wrap;justify-content:center;padding:20px;gap:5px 25px;font-size:9px}footer p{flex-basis:100%;text-align:center}footer button,footer a{font-size:9px}}
@media(max-height:700px) and (min-width:601px){.opening{padding:40px 25px}.opening-content{padding:20px 0}.monogram-large{transform:scale(.7);height:145px;margin-bottom:0}.opening .tiny-ornament{margin:15px 0 8px}.opening h1{font-size:44px}.open-button{margin-top:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-header nav a:after{transition:none}}
.calendar-section{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1.1fr;gap:100px;padding:85px 7%;border-bottom:1px solid var(--line)}.calendar-intro{align-self:center}.calendar-intro .eyebrow{margin-bottom:20px}.calendar-intro h2{font-size:clamp(40px,4.2vw,57px)}.calendar-intro>p:not(.eyebrow){font-size:12px;line-height:1.9;color:var(--muted);margin-top:22px;max-width:340px}.save-calendar{display:flex;align-items:center;gap:33px;background:var(--ink);color:var(--paper);padding:15px 21px;font-size:10px;text-transform:uppercase;letter-spacing:1.3px;margin-top:28px;transition:background .2s}.save-calendar:hover{background:#754553}.save-calendar span{font-size:18px}.calendar-intro>p.calendar-note{font-size:10px;line-height:1.9;margin-top:15px;max-width:315px}.calendar-panel{border:1px solid var(--line);padding:28px 30px 21px}.month-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:22px}.month-heading h3{font-size:32px}.month-heading h3 em{font-size:24px;color:var(--gold);margin-left:3px}.month-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.month-grid{border-collapse:collapse;width:100%;table-layout:fixed;text-align:center}.month-grid th{font-size:9px;text-transform:uppercase;font-weight:500;letter-spacing:.8px;color:var(--muted);padding-bottom:14px}.month-grid td{height:44px;font-size:12px;color:var(--muted)}.month-grid td>span,.calendar-day{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px}.calendar-day{font-size:12px;border:1px solid var(--ink);border-radius:50%;color:var(--ink)}.calendar-day[aria-pressed=true]{background:var(--ink);color:var(--paper)}.calendar-day:hover{box-shadow:0 0 0 3px var(--paper-deep)}.calendar-agenda{border-top:1px solid var(--line);margin-top:20px;padding-top:8px;min-height:138px}.agenda-event{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:12px 0}.agenda-event strong{display:block;font-family:var(--serif);font-size:23px;font-weight:500;line-height:1.1}.agenda-event small{display:block;color:var(--muted);font-size:10px;margin-top:6px;line-height:1.6}.agenda-arrow{font-size:20px;color:var(--gold)}.agenda-event:hover strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.calendar-hint{font-size:9px;color:var(--muted);text-align:center;margin-top:8px}
@media(max-width:900px){.calendar-section{gap:40px;padding:60px 5%}.calendar-panel{padding:23px}.month-heading{flex-wrap:wrap;gap:6px}.month-heading .eyebrow{display:none}}
@media(max-width:600px){.site-header nav{gap:13px}.site-header nav a:last-child{display:none}.calendar-section{grid-template-columns:1fr;gap:30px;padding:48px 24px}.calendar-intro h2{font-size:46px}.calendar-intro>p:not(.eyebrow){max-width:100%}.calendar-panel{padding:24px 20px 20px}.month-heading{justify-content:space-between;flex-wrap:nowrap}.month-heading .eyebrow{display:block;font-size:7px}.month-heading h3{font-size:31px}.month-heading h3 em{font-size:24px}.calendar-agenda{min-height:138px}.agenda-event strong{font-size:24px}.calendar-hint{font-size:9px}.save-calendar{font-size:9px}.calendar-intro>p.calendar-note{font-size:10px;max-width:100%}}

#invite-title:focus{outline:none}

/* The envelope is built from CSS so the opening stays image-free. */
.opening{transition:opacity .25s var(--ease-out);--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1)}
.opening.is-leaving{transition:opacity .25s var(--ease-out);transition-delay:0s}
.opening-content{width:min(440px,78vw);padding:28px 0 40px}
.envelope{position:relative;width:100%;height:clamp(230px,34vh,300px);margin:0 auto 14px;perspective:900px;isolation:isolate}
.opening{cursor:pointer}.opening-hint{font-size:14px;letter-spacing:1.1px;color:#d5c0b2}
.envelope:before{content:'';position:absolute;inset:14% 0 0;background:#70404b;border:1px solid #c6ab9799;box-shadow:0 18px 45px #1b0e1244}
.envelope-letter{position:absolute;z-index:1;inset:0 8% 14%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8f3ec;color:var(--ink);border:1px solid #d8c9bb;padding:15px 18px;text-align:center;opacity:0;transform:translateY(12%);transition:transform .38s var(--ease-out),opacity .28s var(--ease-out);transition-delay:0s}
.envelope-letter .monogram-large{transform:scale(.48);height:78px;margin:0 auto -2px;width:156px;font-size:115px;color:var(--ink)}
.envelope-letter .monogram-large:before,.envelope-letter .monogram-large:after{display:none}
.envelope-letter .monogram-large i{color:#85505c}
.envelope-letter .tiny-ornament{font-size:19px;color:#85505c;line-height:1;margin:4px 0 6px}
.envelope-letter h1{font-size:clamp(25px,3.4vw,37px);color:var(--ink)}
.envelope-letter .opening-subtitle{color:#6f5a58;font:italic 14px/1.35 var(--serif);margin-top:5px}
.envelope-pocket{position:absolute;z-index:2;inset:14% 0 0;background:#613440;clip-path:polygon(0 0,50% 52%,100% 0,100% 100%,0 100%);pointer-events:none}
.envelope-flap{position:absolute;z-index:3;inset:14% 0 auto;height:52%;background:#80515c;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;transform:rotateX(0);transition:transform .38s var(--ease-in-out);transition-delay:0s;backface-visibility:hidden}
.envelope-seal{position:absolute;z-index:4;left:50%;top:54%;width:68px;height:68px;display:grid;place-items:center;border:1px solid #e8d8c8;border-radius:50%;background:#f0e6da;color:#562b38;box-shadow:0 3px 12px #24111855;transform:translate(-50%,-50%);transition:opacity .15s var(--ease-out);}
.envelope-seal>span{font:500 21px/1 var(--serif);white-space:nowrap}.envelope-seal i{font-size:13px;color:#9b7568;margin:0 -2px}.envelope-seal:focus-visible{outline:2px solid #e8d8c8;outline-offset:5px}
.envelope.is-opening .envelope-seal{opacity:0;pointer-events:none}
.envelope.is-opening .envelope-flap{transform:rotateX(180deg);transition-delay:.15s}
.envelope.is-opening .envelope-letter{opacity:1;transform:translateY(-10%);transition-delay:.3s,.3s}
.opening.is-leaving{opacity:0;pointer-events:none;transition:opacity .25s var(--ease-out);transition-delay:0s}
@media(max-width:600px){.opening-content{width:min(390px,82vw);padding:30px 0 26px}.envelope{height:clamp(210px,31vh,260px);margin-bottom:12px}.envelope-letter{padding:11px 12px}.envelope-letter h1{font-size:29px}.envelope-letter .opening-subtitle{font-size:12px}.envelope-seal{width:62px;height:62px}}
@media(max-height:700px) and (min-width:601px){.envelope{height:215px;margin-bottom:38px}.opening-content{padding:8px 0 20px}}
@media(prefers-reduced-motion:reduce){.opening{transition:opacity .2s var(--ease-out)}.envelope-letter,.envelope-flap,.envelope-seal{transition:none}.opening.is-leaving{transition:opacity .2s var(--ease-out);transition-delay:0s}}

/* GSAP opening: the flap folds back to show its inner face, behind the rising letter. */
.envelope-flap-back{position:absolute;z-index:0;left:0;right:0;bottom:86%;height:52%;background:#8c606a;clip-path:polygon(0 100%,100% 100%,50% 0);transform-origin:50% 100%;transform:scaleY(0);pointer-events:none}
.has-gsap .envelope-letter,.has-gsap .envelope-flap,.has-gsap .envelope-seal,.has-gsap .opening,.has-gsap .opening.is-leaving{transition:none}
.has-gsap .envelope.is-opening .envelope-flap-back{transform:none}
@media(prefers-reduced-motion:reduce){.envelope-flap-back{display:none}}
.card-sheet{position:fixed;inset:0;z-index:101;display:none;background:var(--paper);pointer-events:none}

/* Embroidered seal: satin-stitch fill, a running-stitch ring and a stitched edge. */
.envelope-seal{width:84px;height:84px;border:0;background:
  repeating-linear-gradient(62deg,#efe3d4 0 1.5px,#e2d1bd 1.5px 3px);
  box-shadow:0 0 0 3px #c6a884,0 0 0 4px #8f6b4a,0 4px 14px #24111866,inset 0 2px 3px #fff8,inset 0 -3px 5px #7a573a33}
.envelope-seal:before{content:'';position:absolute;inset:7px;border-radius:50%;border:2px dashed #9a7351;opacity:.9}
.envelope-seal:after{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px dotted #c6a884}
.envelope-seal>span{font:600 25px/1 var(--serif);color:#5a2c3a;text-shadow:0 1px 0 #fff6,0 -1px 0 #3b1a2455;letter-spacing:.5px}
.envelope-seal i{color:#9a7351}
@media(max-width:600px){.envelope-seal{width:74px;height:74px}.envelope-seal>span{font-size:22px}}

/* Venue map, Uber and calendar choices */
.venue-map{margin:0;border:1px solid var(--line);background:var(--paper)}
.venue-map iframe{display:block;width:100%;height:190px;border:0;filter:grayscale(.35) sepia(.15)}
.venue-panel{display:grid;gap:2px;padding:12px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.venue-panel strong{font:500 18px/1.2 var(--serif);color:var(--ink)}
.venue-contact{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.calendar-menu{border:0;padding:0;position:relative}
.reception-card .calendar-menu summary,.calendar-menu summary{font:inherit;font-size:10px;letter-spacing:0;display:inline-block;padding:9px 0}
.calendar-menu summary:after{content:none}
.calendar-options{display:grid;margin-top:6px;border:1px solid var(--line);background:var(--paper)}
.calendar-options a,.calendar-options button{padding:10px 14px;font-size:11px;text-align:left;border-bottom:1px solid var(--line);color:var(--ink)}
.calendar-options>:last-child{border-bottom:0}
.calendar-options a:hover,.calendar-options button:hover{background:var(--paper-deep)}

/* Countdown, flourish and smooth scrolling */
.countdown{margin-top:12px;font:italic 20px/1.3 var(--serif);color:var(--ink)}
.countdown #days-left{font-style:normal;font-variant-numeric:tabular-nums;color:var(--gold);font-size:28px}
.flourish{display:block;width:180px;height:30px;margin:0 auto 14px;fill:none;stroke:#c6ab97;stroke-width:1.2;stroke-linecap:round}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}

/* ---- Refinements: alignment, monogram, parents, countdown, hearts ---- */
.site-header nav a{display:inline-flex;align-items:center;gap:6px}
.site-header nav a[aria-current=true]:after{width:100%}
.event-actions{align-items:flex-start}
.calendar-menu summary.text-link{font-size:9px;padding:5px 0;letter-spacing:1.3px;text-transform:uppercase;display:inline-flex;gap:30px}
.calendar-menu summary.text-link span{font-size:18px;line-height:1}
.calendar-menu[open] summary.text-link span{transform:rotate(45deg)}
.detail-note{font-size:11px;color:var(--gold);margin-top:-12px}

/* One monogram, used in the header, seal and closing */
.mono{display:inline-flex;align-items:baseline;gap:.08em;font-family:var(--serif);font-weight:500;letter-spacing:.02em;line-height:1}
.mono i{font-family:var(--serif);font-style:italic;font-weight:400;font-size:.62em;color:var(--gold);margin:0 .04em;transform:translateY(-.02em)}
.wordmark.mono i,.closing-mark.mono i,.envelope-seal .mono i{font-size:.62em;margin:0 .04em}
.closing-mark.mono i,.envelope-seal .mono i{color:#c6a884}

.parents{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:560px;margin:-6px auto 24px;text-align:center}
.parents p{display:grid;gap:2px;font:italic 16px/1.35 var(--serif);color:var(--ink)}
.parents-role{font:500 9px/1.6 var(--sans);letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);font-style:normal}

.countdown{display:inline-grid;grid-template-columns:repeat(3,minmax(76px,auto));margin:22px auto 4px;border:1px solid var(--line);background:#fffaf3}
.countdown[hidden]{display:none}
.countdown>div{display:grid;justify-items:center;gap:2px;padding:12px 18px}
.countdown>div+div{border-left:1px solid var(--line)}
.count-num{font:500 34px/1 var(--serif);color:var(--ink);font-variant-numeric:lining-nums tabular-nums}
.count-unit{font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}

/* Heart markers on the calendar */
.calendar-day{border:0;border-radius:0;width:40px;height:38px;padding-bottom:4px;background:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 38'%3E%3Cpath d='M20 35C9 26 2.5 20 2.5 12A8.5 8.5 0 0 1 20 7.5 8.5 8.5 0 0 1 37.5 12C37.5 20 31 26 20 35Z' fill='none' stroke='%23562b38' stroke-width='1.4'/%3E%3C/svg%3E")}
.calendar-day[aria-pressed=true]{color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 38'%3E%3Cpath d='M20 35C9 26 2.5 20 2.5 12A8.5 8.5 0 0 1 20 7.5 8.5 8.5 0 0 1 37.5 12C37.5 20 31 26 20 35Z' fill='%23562b38'/%3E%3C/svg%3E")}
.calendar-day:hover{box-shadow:none;transform:scale(1.06)}
@media(max-width:600px){.parents{grid-template-columns:1fr;gap:12px;margin-bottom:20px}.countdown{grid-template-columns:repeat(3,minmax(68px,auto))}.countdown>div{padding:10px 12px}.count-num{font-size:28px}}

.calendar-day,.calendar-day[aria-pressed=true]{background-color:transparent}
.calendar-section{border-bottom:0}
.countdown,.count-unit{font-style:normal}
.parents{max-width:720px}
.event-actions .text-link,.calendar-menu summary.text-link{min-height:34px;align-items:center}
.mono i{transform:translateY(-.1em)}
@media(max-width:600px){.site-header nav a:last-child{display:inline-flex}}

.card-download{max-width:1120px;margin:34px auto 0;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.card-download p{font-size:11px;color:var(--muted);max-width:340px}.card-download button[disabled]{opacity:.5}

/* Action tiles: icon + label, equal size (research: NN/g labels with icons, WCAG 2.2 target size) */
.event-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:10px;align-items:stretch}
.action-tile{display:flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:0 14px;border:1px solid var(--ink);border-radius:2px;color:var(--ink);background:transparent;font:500 12.5px/1.2 var(--sans);letter-spacing:.03em;text-transform:none;cursor:pointer;list-style:none;transition:background-color .15s ease,color .15s ease;white-space:nowrap}
.action-tile::-webkit-details-marker{display:none}
.action-icon{width:19px;height:19px;flex:none}
@media(hover:hover){.action-tile:hover{background:var(--ink);color:var(--paper)}}
.action-tile:active{background:#3f1f29;color:var(--paper)}
.action-tile:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.calendar-menu{position:relative;display:block}
.calendar-menu[open]>.action-tile{background:var(--ink);color:var(--paper)}
.calendar-menu .calendar-options{position:absolute;z-index:5;right:0;top:calc(100% + 6px);min-width:220px;margin:0;box-shadow:0 10px 28px #2a121a22}
.calendar-options a,.calendar-options button{min-height:48px;display:flex;align-items:center;font-size:13px}
.pending-location{grid-column:1/-1}
@media(max-width:600px){.event-actions{grid-template-columns:1fr}.action-tile{justify-content:flex-start;min-height:56px;font-size:14px}.calendar-menu .calendar-options{position:static;margin-top:6px;box-shadow:none;min-width:0}}

/* Footer: sign-off in the centre, replay on the left, back to top on the right */
footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
footer p{grid-column:2;grid-row:1;text-align:center}
footer #replay-opening{grid-column:1;grid-row:1;justify-self:start}
footer>a{grid-column:3;grid-row:1;justify-self:end}
@media(max-width:600px){footer{grid-template-columns:1fr 1fr;row-gap:6px}footer p{grid-column:1/-1;grid-row:1}footer #replay-opening{grid-row:2}footer>a{grid-column:2;grid-row:2}}

/* Override the older calendar-summary rules so all three tiles match */
.event-actions .calendar-menu{border:0;padding:0;margin:0}
.event-actions .calendar-menu>summary.action-tile{display:flex;font:500 12.5px/1.2 var(--sans);letter-spacing:.03em;padding:0 14px;min-height:52px;height:100%}
.event-actions .calendar-menu>summary.action-tile:after{content:none}
@media(max-width:600px){.event-actions .calendar-menu>summary.action-tile{font-size:14px;min-height:56px}}

/* Vintage split-flap countdown */
.countdown .count-num{position:relative;display:inline-block;min-width:1.5em;height:1.3em;line-height:1.3em;perspective:260px;margin-bottom:6px}
.flip .sizer{visibility:hidden;padding:0 .14em}
.flip>span{position:absolute;left:0;right:0;height:50%;overflow:hidden;text-align:center;backface-visibility:hidden}
.flip>span>b{display:block;height:1.3em;line-height:1.3em;font-weight:500}
.flip .u,.flip .fu{top:0;background:#fffcf7;border-radius:3px 3px 0 0;transform-origin:50% 100%}
.flip .l,.flip .fl{bottom:0;background:#f5eee4;border-radius:0 0 3px 3px;transform-origin:50% 0}
.flip .l>b,.flip .fl>b{transform:translateY(-50%)}
.flip:after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:#d9cbbf;z-index:3}
.flip .fu{z-index:2;animation:flip-top .28s ease-in forwards}
.flip .fl{z-index:2;transform:rotateX(90deg);animation:flip-bottom .28s .28s ease-out forwards}
.countdown>div{gap:6px}
@keyframes flip-top{to{transform:rotateX(-90deg)}}
@keyframes flip-bottom{to{transform:rotateX(0)}}
@media(prefers-reduced-motion:reduce){.flip .fu,.flip .fl{display:none}}

/* Flip cards: dark burgundy leaves with ivory numbers, like a vintage flip calendar */
.countdown{background:transparent;border:0;gap:14px;grid-template-columns:repeat(3,auto)}
.countdown>div{padding:0}
.countdown>div+div{border-left:0}
.countdown .count-num{font-size:40px;min-width:1.7em;color:var(--paper);filter:drop-shadow(0 6px 10px #2a121a2e)}
.flip .sizer{padding:0 .22em}
.flip .u,.flip .fu{background:linear-gradient(#6a3747,#5d2f3d);border-radius:5px 5px 0 0}
.flip .l,.flip .fl{background:linear-gradient(#562b38,#4b2531);border-radius:0 0 5px 5px}
.flip:after{background:#2d141c;height:2px;margin-top:-1px}
.flip:before{content:'';position:absolute;z-index:4;top:50%;left:-3px;right:-3px;height:6px;margin-top:-3px;background:radial-gradient(circle at 3px 3px,#c6a884 2px,transparent 2.5px) left/6px 6px no-repeat,radial-gradient(circle at 3px 3px,#c6a884 2px,transparent 2.5px) right/6px 6px no-repeat}
.count-unit{margin-top:4px}
@media(max-width:600px){.countdown{gap:10px}.countdown .count-num{font-size:34px}}

/* Share band: a visible place to save or share the invitation card */
.share-band{max-width:1120px;margin:0 auto;padding:80px 7%;display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:72px;align-items:center}
.share-preview{margin:0;justify-self:center;transform:rotate(-2.5deg);box-shadow:0 18px 40px #2a121a26,0 2px 6px #2a121a1a;background:var(--paper);transition:transform .4s ease}
.share-preview:hover{transform:rotate(0)}
.share-preview img{display:block;width:100%;height:auto;aspect-ratio:1080/1530;background:var(--paper-deep)}
.share-copy .eyebrow{margin-bottom:18px}
.share-copy h2{font-size:clamp(36px,4vw,52px)}
.share-copy>p:not(.eyebrow){margin-top:18px;font-size:13px;line-height:1.85;color:var(--muted);max-width:420px}
.share-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.share-actions .action-tile{min-width:190px;font-size:13px}
.action-primary{background:var(--ink);color:var(--paper)}
@media(hover:hover){.action-primary:hover{background:#3f1f29}}
.share-actions button[disabled]{opacity:.6}
@media(max-width:760px){.share-band{grid-template-columns:1fr;gap:36px;padding:56px 24px;text-align:center}.share-preview{width:min(240px,64vw)}.share-copy>p:not(.eyebrow){margin-left:auto;margin-right:auto}.share-actions{justify-content:center}.share-actions .action-tile{flex:1 1 100%;justify-content:center;min-height:56px;font-size:14px}}
.share-band{border-top:1px solid var(--line)}
.share-copy h2{text-wrap:balance}

/* Richer metallic gold for the monogram ampersand, everywhere */
.mono i,.monogram-large i{background:linear-gradient(180deg,#e6c98a 0%,#c39a4e 55%,#a87c34 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:500}
.closing-mark.mono i,.envelope-seal .mono i{background:linear-gradient(180deg,#f0d9a0,#c9a25a 60%,#b08840);-webkit-background-clip:text;background-clip:text;color:transparent}
.couple-names i{color:#b8913f}
.envelope-seal .mono i{background:linear-gradient(180deg,#b88a3e,#8a6226);-webkit-background-clip:text;background-clip:text;color:transparent}


/* Map cards: maps and buttons line up across both cards */
.reception-card{display:flex;flex-direction:column}
.reception-card .event-details{flex:1;display:flex;flex-direction:column}
.reception-card .venue-map{margin-top:auto}
.venue-panel .detail-note{display:block;margin-top:4px;color:var(--gold);font-size:11px}
.venue-map iframe{height:200px}

/* Flip card pins, slightly larger */
.flip:before{left:-5px;right:-5px;height:10px;margin-top:-5px;background:radial-gradient(circle at 5px 5px,#d4b27a 3.6px,#9c7a45 4.2px,transparent 4.8px) left/10px 10px no-repeat,radial-gradient(circle at 5px 5px,#d4b27a 3.6px,#9c7a45 4.2px,transparent 4.8px) right/10px 10px no-repeat}

.petal-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:103;pointer-events:none}
.venue-panel{min-height:92px;align-content:start}

.petal-canvas{z-index:201}
.opening.is-fading{pointer-events:none}
/* Letter monogram: same inline A & V as everywhere else */
.envelope-letter .monogram-large{display:inline-flex;align-items:baseline;gap:.08em;width:auto;height:auto;transform:none;font-size:46px;margin:0 auto 2px}
.envelope-letter .monogram-large span,.envelope-letter .monogram-large i{position:static}
.envelope-letter .monogram-large i{font-size:.62em;transform:translateY(-.1em)}
