:root{--wine:#4a1426;--wine-dark:#360d1a;--paper:#f8f4ee;--ink:#402830;--muted:#79666a;--gold:#c8ad85;--line:#dcd0c9;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid #aa794b;outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.03}header{height:98px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;border-bottom:1px solid var(--line)}.monogram{font-family:var(--serif);font-size:30px;letter-spacing:-2px}.monogram span{font-style:italic;font-size:22px;margin:0 4px}nav{display:flex;gap:36px;align-items:center;font-size:14px}.nav-date{border-bottom:1px solid var(--wine);padding:7px 0}.nav-date span{margin-left:20px}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:760px}.hero-copy{padding:62px 30px 55px;text-align:center;display:flex;flex-direction:column;align-items:center}.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500}h1{font-size:clamp(80px,7.5vw,124px);letter-spacing:-.055em;line-height:.84;margin:46px 0 32px}h1 .amp{display:block;font-style:italic;font-size:.54em;line-height:1.25;color:#977758;letter-spacing:0}.hero-invite{font-size:14px;line-height:1.8}.hero-date{display:flex;flex-direction:column;gap:4px;margin:29px 0 28px;font-size:13px;color:var(--muted)}.hero-date strong{font-family:var(--serif);font-size:28px;color:var(--ink);font-weight:500}.text-link{display:inline-flex;align-items:center;gap:24px;font-size:14px;padding:8px 0;border-bottom:1px solid var(--line)}.hero-art{position:relative;background:var(--wine);overflow:hidden;min-height:650px}.hero-art img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,5,15,.1),transparent 45%,rgba(35,5,15,.35))}.image-caption{position:absolute;z-index:1;top:10%;left:10%;right:10%;text-align:center;color:var(--paper);font-family:var(--serif);font-size:clamp(28px,3vw,46px);font-style:italic;line-height:1.15}.image-caption span{display:block}.photo-date{position:absolute;bottom:28px;left:0;right:0;text-align:center;color:var(--paper);z-index:1;font-size:12px;letter-spacing:.25em}.celebration{text-align:center;padding:120px 25px 100px;max-width:780px;margin:auto}.celebration h2{font-size:clamp(50px,5.5vw,78px);margin:26px 0 28px;letter-spacing:-.035em}.celebration>p:not(.eyebrow){max-width:535px;margin:0 auto 15px;color:var(--muted)}.welcomes{display:flex;align-items:center;justify-content:center;gap:27px;margin-top:36px;font-size:22px;font-family:var(--serif)}.diamond{color:#9c784c;font-size:25px}.countdown-section{padding:70px 8vw;background:var(--wine);color:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:40px}.count-intro .eyebrow{color:#d5bbab}.count-intro h2{font-size:60px;margin-top:18px;letter-spacing:-.025em}.countdown{display:grid;grid-template-columns:repeat(4,1fr);width:60%;max-width:700px}.countdown>div{text-align:center;border-left:1px solid #754757;padding:12px}.countdown span{font:72px var(--serif);font-variant-numeric:lining-nums tabular-nums}.countdown small{display:block;font-size:12px;letter-spacing:.1em;color:#d5bbab}.location{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:120px 10vw}.venue-title h2{font-size:clamp(52px,5.7vw,80px);margin:28px 0 23px;letter-spacing:-.035em}.venue-title>p:last-child{font-size:14px;color:var(--muted)}.venue-details{padding-top:8px}.detail-label{font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-bottom:13px}.venue-details h3{font-size:30px;margin-bottom:12px}.venue-details>p:not(.detail-label){font-size:14px;color:var(--muted)}.venue-line{height:1px;background:var(--line);margin:28px 0}address{font-style:normal;font-size:16px;line-height:1.8}.venue-actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:30px}.button{background:var(--wine);color:var(--paper);padding:14px 23px;font-size:14px;display:inline-flex;gap:25px}.button:hover{background:var(--wine-dark)}.closing{padding:95px 25px;text-align:center;border-top:1px solid var(--line)}.closing>p:first-child{font-size:14px;color:var(--muted)}.closing h2{font-size:clamp(48px,5vw,72px);margin:30px 0}.closing-date{font-size:13px;letter-spacing:.1em}.replay{border:0;border-bottom:1px solid var(--line);background:none;color:var(--muted);font-size:12px;margin-top:35px;padding:7px}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:25px 6vw;gap:25px;font-size:12px;color:var(--muted)}footer>span:first-child{font:24px var(--serif);color:var(--wine)}.skip{position:fixed;top:-100px;background:var(--paper);padding:10px;z-index:40}.skip:focus{top:10px}.cover{position:fixed;inset:0;background:var(--wine);color:var(--paper);z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:55px 25px 35px;text-align:center;transition:opacity .8s,transform 1.2s cubic-bezier(.2,.8,.2,1);overflow:auto}.cover[hidden]{display:none}.cover:before{content:'';position:absolute;inset:18px;border:1px solid #86505f;pointer-events:none}.cover-top{font-size:12px;letter-spacing:.14em}.cover-center{padding:55px 0;max-width:1100px}.cover-note{font-size:14px;color:#dac5bb}.cover-names{font:clamp(62px,8.4vw,140px)/1.12 var(--serif);letter-spacing:-.035em;margin:30px 0}.cover-names i{color:#c8ad85;font-size:.75em}.cover-rule{height:1px;width:70px;background:var(--gold);margin:30px auto}.cover-date{font:26px var(--serif)}.open-button{background:none;color:var(--paper);border:1px solid #96727b;padding:16px 28px;display:inline-flex;gap:30px;align-items:center;margin-top:45px;font-size:14px;transition:background .25s}.open-button:hover{background:#653043}.cover-bottom{display:flex;gap:35px;align-items:center;font-family:var(--serif);font-size:18px;color:#d7beb2}.cover.exit{opacity:0;transform:translateY(-5%);pointer-events:none}.locked{overflow:hidden}@media(min-width:1500px){.hero{min-height:870px}.hero-copy{justify-content:center}}@media(max-width:850px){header{height:78px;padding:0 25px}nav{gap:22px}.hero{min-height:680px}.hero-copy{padding:60px 18px 40px}h1{font-size:80px}.hero-art{min-height:650px}.hero-invite{font-size:13px}.hero-date strong{font-size:25px}.countdown-section{padding:60px 35px}.count-intro h2{font-size:48px}.countdown span{font-size:54px}.location{padding:85px 35px;gap:40px}.venue-details h3{font-size:27px}.venue-actions{gap:16px}.cover-names{max-width:500px}.cover-names i{display:block;line-height:.9}}@media(max-width:600px){header{height:72px;padding:0 22px}nav{gap:22px;font-size:12px}nav>a:first-child{display:none}.nav-date span{margin-left:10px}.hero{display:flex;flex-direction:column}.hero-copy{padding:48px 20px 42px}.hero .eyebrow{font-size:11px}h1{font-size:94px;margin:35px 0 28px}.hero-invite{font-size:14px}.hero-date{margin:22px 0 18px}.hero-art{min-height:510px}.hero-art img{object-position:50% 55%}.image-caption{top:9%;font-size:37px}.celebration{padding:80px 28px 65px}.celebration h2{font-size:57px}.celebration>p:not(.eyebrow){font-size:15px}.countdown-section{display:block;text-align:center;padding:55px 20px}.count-intro h2{font-size:52px}.count-intro h2 br{display:block}.countdown{width:100%;margin-top:28px}.countdown>div:first-child{border:0}.countdown>div{padding:8px}.countdown span{font-size:50px}.countdown small{font-size:11px}.location{display:block;padding:75px 28px}.venue-title h2{font-size:61px}.venue-details{margin-top:42px}.closing{padding:70px 25px}.closing h2{font-size:49px}footer{flex-wrap:wrap;justify-content:center;text-align:center;padding:25px}footer>span:nth-child(2){order:3;width:100%}.cover{padding:48px 22px 32px}.cover-center{padding:35px 0}.cover-names{font-size:77px;margin:24px 0}.cover-rule{margin:24px auto}.cover-bottom{gap:22px;font-size:17px}.open-button{margin-top:32px}.cover-top{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cover{transition:none}*{animation:none!important}}
.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}.language-control{position:fixed;right:22px;bottom:22px;z-index:30}.language-control select{border:1px solid #bfaab0;border-radius:2px;background:var(--paper);color:var(--wine);font:14px var(--sans);padding:11px 30px 11px 15px;box-shadow:0 3px 18px #360d1a12}.map-wrap{grid-column:1/-1;margin-top:5px;border:1px solid var(--line)}.map-wrap iframe{width:100%;height:360px;border:0;display:block}.map-fallback{display:block;padding:14px 20px;font-size:13px;text-align:center}.locate{background:none;color:var(--wine);border:0;border-bottom:1px solid var(--line);margin-top:15px;font-size:13px;text-align:left}.locate:disabled{opacity:.6;cursor:wait}#geo-status{font-size:13px;margin-top:10px;max-width:380px;color:var(--muted)}#geo-status a{text-decoration:underline}.language-control select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}@media(max-width:600px){.map-wrap{margin-top:40px}.map-wrap iframe{height:290px}.language-control{bottom:12px;right:12px}footer{padding-bottom:75px}.cover-bottom{margin-bottom:42px}}
/* The invitation opens into an immersive floral portrait. */
header{background:var(--wine-dark);color:var(--paper);border-color:#744752}.nav-date{border-color:#9a7580}.hero{position:relative;isolation:isolate;min-height:820px;height:calc(100svh - 98px);max-height:1150px;display:flex;background:var(--wine-dark);color:var(--paper);overflow:hidden}.hero-art{position:absolute;inset:0;min-height:0;z-index:-1}.hero-art img{object-position:center 61%}.hero-art:after{background:linear-gradient(90deg,rgba(36,7,16,.94) 0%,rgba(40,8,18,.83) 34%,rgba(40,8,18,.18) 76%),linear-gradient(0deg,rgba(36,7,16,.5),transparent 35%)}.hero-copy{width:66%;padding:55px 25px 65px;justify-content:center}.hero .eyebrow{color:#e1c8ae}.hero h1{font-size:clamp(100px,10vw,165px);margin:38px 0 30px;line-height:.83;letter-spacing:-.04em}.hero h1 .amp{font-size:.5em;color:#d2b78f;line-height:1.15}.hero-invite{color:#eee0d8;font-size:15px}.hero-date{color:#e0c9bd;margin:24px 0 25px}.hero-date strong{color:var(--paper);font-size:32px}.hero .text-link{border-color:#92727b;color:#eee0d8}.hero-welcome{display:flex;gap:17px;align-items:center;justify-content:center;margin-top:20px;font:21px var(--serif);color:#d9c09e}.hero-welcome span+span{padding-left:17px;border-left:1px solid #9a7376;font-size:18px}.image-caption{top:auto;bottom:100px;left:auto;right:6%;width:30%;text-align:right;font-size:clamp(30px,3.2vw,49px)}.photo-date{left:auto;right:6%;bottom:65px;text-align:right}.welcomes{gap:20px;flex-wrap:wrap}.envelope-art{position:absolute;inset:0;z-index:-1;overflow:hidden}.envelope-art img{width:100%;height:100%;object-fit:cover;object-position:center 52%;transition:transform 1.7s cubic-bezier(.65,0,.2,1),filter .4s}.cover{isolation:isolate;background:var(--wine);padding:0;overflow:hidden;transition:transform 1.8s cubic-bezier(.7,0,.2,1),opacity 1.4s .35s;transform-origin:top center}.cover:before{inset:20px;z-index:1;border-color:#bf966347}.cover:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#24081088,transparent 35%,transparent 65%,#24081066)}.cover-top{position:absolute;top:7%;left:20px;right:20px;color:#f3e5d3;z-index:1;pointer-events:none}.cover-center{display:contents}.cover-note{position:absolute;top:12%;width:100%;font-size:13px;color:#eadbca;pointer-events:none}.cover-names{position:absolute;top:16%;margin:0;width:100%;font-size:clamp(48px,6.4vw,96px);color:#fff3de;pointer-events:none}.cover-names i{font-size:.7em}.cover-rule{display:none}.cover-date{position:absolute;top:27%;width:100%;font-size:22px;color:#eadbca;pointer-events:none}.open-button{position:absolute;inset:0;margin:0;width:100%;height:100%;border:0;align-items:flex-end;justify-content:center;padding:0 25px 15svh;background:transparent;color:#f8ead6;gap:25px;z-index:2;font-size:14px;letter-spacing:.05em}.open-button:hover{background:transparent}.open-button:focus-visible{outline:1px solid #dec49e;outline-offset:-28px}.cover-bottom{position:absolute;bottom:7%;left:20px;right:20px;justify-content:center;color:#e9d4b8;pointer-events:none;z-index:3}.cover.exit{transform:translateY(-102%) rotateX(12deg);opacity:.2}.cover.exit .envelope-art img{transform:scale(1.08);filter:brightness(1.15)}.hero-copy,.image-caption{transition:transform 1.6s cubic-bezier(.2,.7,.2,1),opacity 1.2s}.locked #page:not(.revealed) .hero-copy{transform:translateY(55px);opacity:0}.locked #page:not(.revealed) .image-caption{transform:translateY(35px);opacity:0}#page.revealed .hero-copy{transition-delay:.45s}#page.revealed .image-caption{transition-delay:.7s}@media(max-width:850px){.hero{height:auto;min-height:830px}.hero-copy{width:73%}.hero h1{font-size:110px}.image-caption{right:4%;font-size:29px;width:27%;bottom:90px}.hero-art img{object-position:65% center}.cover-names{max-width:none}.cover-names i{display:inline;line-height:1}}@media(max-width:600px){.hero{min-height:790px;height:calc(100svh - 72px);max-height:none}.hero-copy{width:100%;padding:45px 20px 100px}.hero-art:after{background:linear-gradient(180deg,#300c1ada,#300c1aa3 55%,#300c1a8a),linear-gradient(90deg,#300c1a55,transparent)}.hero-art img{object-position:58% center}.hero h1{font-size:100px;margin:30px 0 27px}.hero-invite{font-size:14px}.hero-date{margin:20px 0}.hero-date strong{font-size:29px}.hero-welcome{margin-top:17px}.image-caption{bottom:37px;left:20px;right:20px;width:auto;text-align:center;font-size:24px}.image-caption span{display:inline}.image-caption span+span:before{content:' '}.photo-date{display:none}.cover-top{top:7%;font-size:11px}.cover-note{top:13%;font-size:12px}.cover-names{top:18%;font-size:45px;letter-spacing:-.04em}.cover-date{top:26%;font-size:22px}.cover-bottom{bottom:6%;margin:0;font-size:17px;gap:20px}.open-button{padding-bottom:16svh;font-size:13px}.cover:before{inset:12px}.welcomes{font-size:20px;gap:14px}}@media(max-width:360px){.hero h1{font-size:86px}.cover-names{font-size:39px}}@media(prefers-reduced-motion:reduce){.cover,.envelope-art img,.hero-copy,.image-caption{transition:none!important}}
@media(min-aspect-ratio:1/1){.envelope-art{background:#50151d}.envelope-art:before{content:'';position:absolute;inset:-40px;background:url('assets/envelope.png') center/cover;filter:blur(28px);opacity:.2}.envelope-art img{width:68vh;min-width:480px;max-width:100%;left:50%;position:absolute;object-position:center;transform:translateX(-50%);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.cover.exit .envelope-art img{transform:translateX(-50%) scale(1.08)}.cover-names{top:15%;font-size:clamp(46px,5.5vw,76px)}.cover-date{top:25%;font-size:22px}.cover-note{top:11%}}
/* Arabic uses its own reading direction and generous line height. */
html[lang="ar"]{--sans:'Noto Naskh Arabic',serif;--serif:'Noto Naskh Arabic',serif}
[dir="rtl"] .eyebrow,[dir="rtl"] .detail-label,[dir="rtl"] .cover-top,[dir="rtl"] .open-button,[dir="rtl"] .closing-date{letter-spacing:0}
[dir="rtl"] h1,[dir="rtl"] h2,[dir="rtl"] h3,[dir="rtl"] .cover-names{letter-spacing:0;line-height:1.35}
[dir="rtl"] .hero h1{font-size:clamp(75px,8vw,120px);line-height:1.05;margin:20px 0}
[dir="rtl"] .hero h1 .amp{font-size:.38em;line-height:1.15}
[dir="rtl"] .hero-copy{margin-right:auto}
[dir="rtl"] .cover-names{font-size:clamp(44px,5.5vw,78px);line-height:1.4}
[dir="rtl"] .hero-invite{font-size:18px;line-height:1.8}
[dir="rtl"] .hero .eyebrow,[dir="rtl"] .eyebrow{font-size:15px}
[dir="rtl"] .hero-date strong{font-size:28px}
[dir="rtl"] .image-caption{font-style:normal;line-height:1.6}
[dir="rtl"] .image-caption i,[dir="rtl"] h2 i{font-style:normal}
[dir="rtl"] .hero-welcome,[dir="rtl"] .cover-bottom,[dir="rtl"] .welcomes,[dir="rtl"] .countdown,[dir="rtl"] .monogram{direction:ltr}
[dir="rtl"] .countdown span{font-family:Georgia,serif}
[dir="rtl"] .venue-details,[dir="rtl"] .venue-title{text-align:right}
[dir="rtl"] .locate{text-align:right}
[dir="rtl"] .count-intro h2{font-size:48px}
[dir="rtl"] .celebration h2{font-size:clamp(42px,5vw,67px)}
[dir="rtl"] .cover-bottom,[dir="rtl"] .welcomes,[dir="rtl"] .hero-welcome{font-family:'Cormorant Garamond','Noto Naskh Arabic',serif}
@media(max-width:600px){[dir="rtl"] .hero h1{font-size:82px;margin:18px 0}[dir="rtl"] .cover-names{font-size:44px}[dir="rtl"] .image-caption{font-size:22px}[dir="rtl"] .count-intro h2{font-size:40px}[dir="rtl"] .venue-title h2{font-size:48px}[dir="rtl"] .closing h2{font-size:42px}}
@keyframes floral-drift{0%{transform:scale(1.055) translate(-.7%,.6%) rotate(-.3deg)}50%{transform:scale(1.105) translate(.7%,-.6%) rotate(.3deg)}100%{transform:scale(1.055) translate(-.7%,.6%) rotate(-.3deg)}}
.hero-art img{animation:floral-drift 24s ease-in-out infinite;transform-origin:50% 65%;will-change:transform}.motion-paused .hero-art img,.locked:not(:has(.revealed)) .hero-art img{animation-play-state:paused}.motion-toggle{position:absolute;left:25px;bottom:22px;z-index:3;border:1px solid #d9c09e66;border-radius:2px;background:#360d1a66;color:#f3e7d8;padding:6px 10px;font-size:12px;line-height:1.6}.motion-toggle:hover{background:#360d1aaa}.location{grid-template-columns:1.15fr 1fr;gap:48px 55px;padding-left:7vw;padding-right:7vw}.venue-title{grid-column:1/-1;text-align:center}.venue-title h2{margin:22px 0 18px}.venue-title h2 br{display:none}.venue-title h2 i:before{content:' '}.venue-photo{margin:0;align-self:center;min-width:0}.venue-photo-frame{padding:10px;border:1px solid #bd9e7c;background:#eee6db;box-shadow:0 14px 36px #4a142612}.venue-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.venue-photo figcaption{display:flex;flex-direction:column;gap:3px;text-align:center;padding:15px 8px;color:var(--muted)}.venue-photo figcaption>span{font-family:var(--serif);font-size:21px;color:var(--ink)}.venue-photo figcaption>a{font-size:12px;text-decoration:underline;text-underline-offset:3px}.venue-details{align-self:center}.map-wrap{margin-top:0}[dir="rtl"] .venue-title{text-align:center}@media(max-width:850px){.location{column-gap:32px;padding-left:30px;padding-right:30px}.venue-title h2{font-size:60px}}@media(max-width:600px){.location{padding:75px 25px}.venue-title h2{font-size:53px;line-height:1.12}.venue-title h2 br{display:block}.venue-photo{margin-top:35px}.venue-photo-frame{padding:7px}.venue-details{margin-top:30px}.motion-toggle{left:16px;bottom:13px;font-size:11px;padding:4px 7px}.image-caption{bottom:60px}.map-wrap{margin-top:32px}}@media(prefers-reduced-motion:reduce){.hero-art img{animation:none!important;transform:none;will-change:auto}.motion-toggle{display:none}}
/* A defined invitation button, and independently swaying floral regions. */
.cover .open-button{inset:auto auto 14% 50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 70px);height:auto;min-height:58px;justify-content:center;align-items:center;gap:24px;padding:16px 30px;border:1px solid #ead6b5;border-radius:4px;background:#f4e6cf;color:#471624;box-shadow:0 8px 26px #1b000533;font-size:15px;letter-spacing:0;font-weight:600;line-height:1.5;transition:background .2s,box-shadow .2s,transform .2s}.cover .open-button:hover{background:#fff5e5;box-shadow:0 10px 30px #1b00054d;transform:translateX(-50%) translateY(-2px)}.cover .open-button:active{transform:translateX(-50%) translateY(0)}.cover .open-button:focus-visible{outline:2px solid #fff6e6;outline-offset:5px}.cover .open-button span{font-size:22px;font-weight:400;line-height:1}.floral-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.hero-art.has-floral-motion>img{opacity:0;animation:none}.hero-art>img{animation-duration:8s}.hero-art:after{pointer-events:none}@media(max-width:600px){.cover .open-button{bottom:15%;min-height:56px;padding:15px 27px;font-size:15px;gap:25px}.cover-bottom{bottom:6%}}@media(prefers-reduced-motion:reduce){.floral-canvas{display:none}.hero-art.has-floral-motion>img{opacity:1}.cover .open-button{transition:none}}
/* Open a physical envelope before entering the invitation. */
.cover{perspective:1400px;transition:opacity .8s ease;transform:none}.cover.exit{transform:none;opacity:0}.cover .envelope-art{inset:0;width:100%;background:#45141e}.cover .envelope-art:before{content:'';position:absolute;inset:-40px;background:url('/assets/envelope.png') center bottom/cover;filter:blur(30px);opacity:.13}.envelope-scene{position:absolute;top:38%;left:50%;width:min(560px,76vw);aspect-ratio:1.55;transform:translateX(-50%);perspective:1400px;isolation:isolate;filter:drop-shadow(0 24px 35px #14000766)}.envelope-back{position:absolute;inset:0;background:#38101c;border:1px solid #87505a;border-radius:4px;z-index:0}.invitation-letter{position:absolute;inset:5% 6% 7%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;background:#f8f0e2;color:#4a1426;border:1px solid #d0b795;box-shadow:inset 0 0 0 10px #f8f0e2,inset 0 0 0 11px #d0b795;z-index:2;padding:24px;transform:translateY(0)}.letter-welcome{font-size:13px}.letter-names{font:clamp(24px,3vw,39px)/1.3 var(--serif)}.letter-rule{height:1px;width:40px;background:#b5946e}.letter-date{font:19px var(--serif)}.envelope-pocket{position:absolute;inset:0;z-index:3;background:#681e2b url('/assets/envelope.png') center bottom/100% 330%;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);border:1px solid #a36264;border-radius:3px}.envelope-flap{position:absolute;inset:0 0 42%;z-index:4;background:#7a2b35 url('/assets/envelope.png') center top/100% 330%;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;transform:rotateX(0);filter:drop-shadow(0 3px 3px #20050c99);backface-visibility:visible}.envelope-seal{position:absolute;z-index:5;width:clamp(65px,8vw,100px);aspect-ratio:1;left:50%;top:54%;transform:translate(-50%,-50%);border-radius:50%;overflow:hidden;box-shadow:0 5px 10px #1b071b66}.envelope-seal img{position:absolute;width:256%;max-width:none;height:auto;left:-75%;top:-120%}.cover.opening .open-button{opacity:0;pointer-events:none;transition:opacity .2s}.cover.opening .cover-top,.cover.opening .cover-note,.cover.opening .cover-names,.cover.opening .cover-date,.cover.opening .cover-bottom{opacity:0;transition:opacity .35s}.cover.opening .envelope-seal{animation:seal-release .5s ease forwards}.cover.opening .envelope-flap{animation:flap-open 1s .25s cubic-bezier(.3,.6,.2,1) forwards}.cover.opening .invitation-letter{animation:letter-emerge 2.25s .7s cubic-bezier(.2,.65,.2,1) forwards}.cover.opening .envelope-pocket,.cover.opening .envelope-back{animation:envelope-away .7s 1.85s ease-in forwards}@keyframes seal-release{to{transform:translate(-50%,-50%) rotate(-18deg) scale(1.2);opacity:0}}@keyframes flap-open{0%{transform:rotateX(0);z-index:4}49%{z-index:4}50%{z-index:1}100%{transform:rotateX(180deg);z-index:1;filter:brightness(.65)}}@keyframes letter-emerge{0%{transform:translateY(0);z-index:2}55%{transform:translateY(-62%);z-index:2}65%{transform:translateY(-62%);z-index:6;opacity:1}100%{transform:translateY(-45%) scale(1.55);z-index:6;opacity:0}}@keyframes envelope-away{to{transform:translateY(45%);opacity:0}}@media(min-aspect-ratio:1/1){.envelope-scene{top:36%;width:min(490px,60vh)}}@media(max-width:600px){.envelope-scene{top:38%;width:86vw}.invitation-letter{gap:10px;padding:18px}.letter-names{font-size:27px}.letter-welcome{font-size:12px}.letter-date{font-size:17px}.cover .open-button{bottom:17%}}@media(prefers-reduced-motion:reduce){.cover,.cover *{animation:none!important;transition:none!important}}
/* A full-width exterior portrait introduces the venue. */
.location{display:grid;grid-template-columns:1fr 1fr;gap:65px 65px;padding:0 0 95px;background:var(--paper)}.venue-showcase{grid-column:1/-1;position:relative;isolation:isolate;height:clamp(580px,53vw,780px);background:var(--wine-dark);color:var(--paper);margin-bottom:10px}.venue-showcase .venue-photo{position:absolute;inset:0;margin:0;align-self:stretch;width:100%;z-index:-1}.venue-showcase .venue-photo-frame{position:absolute;inset:0;padding:0;border:0;box-shadow:none;background:var(--wine-dark)}.venue-showcase .venue-photo img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:50% 35%}.venue-showcase:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#160c174d,transparent 30%,transparent 44%,#180b16a3 78%,#180b16e6)}.venue-showcase .venue-title{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:40px 30px 45px;text-align:center}.venue-showcase .venue-title>.eyebrow{position:absolute;top:35px;left:20px;right:20px;font-size:12px;text-shadow:0 1px 12px #0008}.venue-showcase .venue-title h2{font-size:25px;line-height:1.4;margin:0 0 10px;letter-spacing:0;text-shadow:0 3px 25px #0004}.venue-showcase .venue-title h2 br{display:none}.venue-showcase .venue-title h2 i{display:block;font-size:clamp(72px,8vw,116px);font-style:normal;line-height:1.12;letter-spacing:-.035em}.venue-showcase .venue-title h2 i:before{content:none}.venue-showcase .venue-title>p:last-child{color:#e5d5c9;font-size:14px;letter-spacing:.1em}.venue-showcase .venue-photo figcaption{position:absolute;bottom:-35px;right:5vw;padding:6px 0;display:block;text-align:end;color:var(--muted)}.venue-showcase .venue-photo figcaption>span{display:none}.venue-showcase .venue-photo figcaption>a{font-size:11px;text-decoration:none;opacity:.85}.location>.venue-details{margin:0;padding:10px 0 0 8vw;align-self:center;min-width:0}.location>.map-wrap{grid-column:2;margin:0 8vw 0 0;align-self:stretch;border:1px solid var(--line);display:flex;flex-direction:column;min-height:445px}.location>.map-wrap iframe{height:100%;min-height:390px;flex:1}.location>.map-wrap .map-fallback{padding:15px}.location .venue-details h3{font-size:31px}.location .venue-line{margin:26px 0}.location .venue-actions{gap:20px}.location .venue-title .eyebrow{color:var(--paper)}[dir="rtl"] .venue-showcase .venue-title h2{font-size:27px}[dir="rtl"] .venue-showcase .venue-title h2 i{font-size:clamp(56px,6vw,90px);letter-spacing:0;line-height:1.4}[dir="rtl"] .location>.venue-details{padding:10px 8vw 0 0}[dir="rtl"] .location>.map-wrap{margin:0 0 0 8vw}[dir="rtl"] .venue-showcase .venue-title>p:last-child{letter-spacing:0}@media(max-width:850px){.location{gap:55px 35px;padding-bottom:70px}.venue-showcase{height:580px}.location>.venue-details{padding-left:30px}.location>.map-wrap{margin-right:30px}.location .venue-details h3{font-size:28px}}@media(max-width:600px){.location{display:block;padding:0 0 65px}.venue-showcase{height:auto;display:flex;flex-direction:column;margin-bottom:55px}.venue-showcase .venue-photo{position:relative;inset:auto;order:0;z-index:0}.venue-showcase .venue-photo-frame{position:relative;aspect-ratio:4/3}.venue-showcase .venue-photo img{object-fit:cover;object-position:center}.venue-showcase:after{display:none}.venue-showcase .venue-title{position:relative;inset:auto;order:1;padding:30px 22px 35px;background:var(--wine-dark)}.venue-showcase .venue-title>.eyebrow{position:static;font-size:11px;margin-bottom:14px}.venue-showcase .venue-title h2{font-size:21px;margin-bottom:10px}.venue-showcase .venue-title h2 i{font-size:57px;margin-top:3px}.venue-showcase .venue-title>p:last-child{font-size:12px}.venue-showcase .venue-photo figcaption{bottom:auto;top:8px;right:10px;left:10px;text-align:right;padding:0}.venue-showcase .venue-photo figcaption>a{display:inline-block;max-width:100%;padding:3px 7px;background:#faf5ebdb;color:#4a3038;font-size:9px;opacity:1}.location>.venue-details{padding:0 26px;margin:0}.location>.map-wrap{margin:35px 26px 0;min-height:330px}.location>.map-wrap iframe{min-height:280px}.location .venue-details h3{font-size:29px}[dir="rtl"] .location>.venue-details{padding:0 26px}[dir="rtl"] .location>.map-wrap{margin:35px 26px 0}[dir="rtl"] .venue-showcase .venue-title h2{font-size:23px}[dir="rtl"] .venue-showcase .venue-title h2 i{font-size:47px}}
.venue-showcase .venue-photo figcaption>a{font-size:12px}@media(max-width:600px){.venue-showcase .venue-photo figcaption>a{font-size:12px;line-height:1.5}}
/* Keep every countdown column within narrow phone screens, including Arabic digits. */
@media(max-width:600px){.countdown{grid-template-columns:repeat(4,minmax(0,1fr))}.countdown span{font-size:clamp(36px,11vw,50px)}}
@media(max-height:500px) and (min-width:601px){.cover-top{top:6%;font-size:10px}.cover-note{top:12%;font-size:11px}.cover-names,[dir="rtl"] .cover-names{top:19%;font-size:clamp(28px,9vh,44px);line-height:1.1}.cover-date{top:31%;font-size:17px}.envelope-scene{top:42%;width:40vh}.cover .open-button{bottom:12%;min-height:46px;padding:10px 25px;font-size:14px}.cover-bottom{bottom:3%;font-size:14px}}
@media(max-height:500px) and (min-width:601px){.invitation-letter{gap:3px;padding:8px}.letter-welcome{font-size:9px}.letter-names{font-size:16px}.letter-date{font-size:11px}.letter-rule{width:25px}}

/* Consistent supporting typography on the invitation cover. */
.cover .cover-top,.cover .cover-note,.cover .cover-bottom{font-family:var(--sans)}
.cover .cover-top{letter-spacing:.03em}
[dir="rtl"] .cover .cover-top,[dir="rtl"] .cover .cover-note,[dir="rtl"] .cover .cover-bottom{font-family:'Noto Naskh Arabic',serif}
