#wedding-complete{--pillar-pieces:url('./pillars-v2.png')}#wedding-complete .storybook-cloud{height:95px;background:transparent url('./cloud-v2.png') center/contain no-repeat;box-shadow:none;border-radius:0;opacity:.9}#wedding-complete .storybook-cloud:before,#wedding-complete .storybook-cloud:after{display:none}#wedding-complete .journey{background:linear-gradient(180deg,#c7e0ed,#f7eedc 35%,#d9e7e9 65%,#f8eedb)}#wedding-complete .little-heart .heart-shape,#wedding-complete .merged-heart .heart-shape{background:radial-gradient(ellipse at 30% 20%,#fff1e5,#dba9a2 50%,#b47c74);box-shadow:inset -3px -3px 7px #80565333}#wedding-complete .heart-n .heart-shape{background:radial-gradient(ellipse at 30% 20%,#f5fcff,#aebfc9 50%,#7d9ba9)}#wedding-complete .falling-leaves i{box-shadow:inset 2px 0 3px #f4e9a877,1px 2px 2px #45553222}#wedding-complete .scene .parchment{background:linear-gradient(120deg,#fffdf6f5,#f7f2e5f2);border:1px solid #bba16c;outline:1px solid #c8b68a;outline-offset:-9px;filter:drop-shadow(0 6px 12px #80653c22);position:relative}#wedding-complete .scene .parchment:before,#wedding-complete .scene .parchment:after{content:'✧';position:absolute;left:50%;transform:translateX(-50%);color:#bba16c;font-size:24px}#wedding-complete .scene .parchment:before{top:12px}#wedding-complete .scene .parchment:after{bottom:12px}html[data-panel=arch] #wedding-complete .scene .parchment{border-radius:48% 48% 3px 3px / 17% 17% 3px 3px;background:radial-gradient(ellipse at top,#fffef8,#f4ecdef5)}html[data-panel=glass] #wedding-complete .scene .parchment{border-radius:22px;background:#fffdf1b8;backdrop-filter:blur(7px);outline-offset:-5px}#wedding-complete .stage{height:100svh;min-height:640px;max-height:870px}#wedding-complete .scene .reveal-copy{top:36px;bottom:60px;left:25px;right:25px}#wedding-complete .scene .parchment{height:100%;min-height:0!important;padding:32px 24px!important;box-sizing:border-box}#wedding-complete .scene .quran{font-size:clamp(20px,2.9svh,24px);line-height:1.9}#wedding-complete .scene .basmala{font-size:22px;margin-bottom:18px}#wedding-complete .scene .verse-ref{margin-top:18px}@media(prefers-reduced-motion:reduce){#wedding-complete .verse-word,#wedding-complete .scene .basmala{animation:none!important;opacity:1!important}}html,body{overflow-anchor:none!important;scroll-behavior:auto!important}body{margin:0}

/* Version 2 final: content-sized frosted pearl, sky and independent florals. */
#wedding-complete .scene .reveal-copy{inset:0 25px 56px;display:flex;align-items:center;justify-content:center}
#wedding-complete .scene .parchment{height:auto;min-height:0!important;width:100%;padding:clamp(36px,7svh,72px) 23px!important;border-radius:22px;background:linear-gradient(135deg,#ffffffc9,#fff8e5a6)!important;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);border:1px solid #bca171;outline:1px solid #fff9e8b0;outline-offset:-5px;box-shadow:inset 0 1px 14px #ffffff8c,0 12px 36px #686c6519}
#wedding-complete .scene .parchment:before,#wedding-complete .scene .parchment:after{content:'';width:20px;height:20px;border:1px solid #b89b5e;transform:translateX(-50%) rotate(45deg);opacity:.6}
#wedding-complete .scene .parchment:before{top:14px}#wedding-complete .scene .parchment:after{bottom:14px}
#wedding-complete .scene .quran{font-size:clamp(20px,2.9svh,24px);line-height:1.85;color:#503d2d}
#wedding-complete .scene .basmala{font-size:21px;line-height:1.6;margin-bottom:14px}
#wedding-complete .scene .verse-ref{margin-top:14px}
#wedding-complete .verse-revealing .verse-word{animation-duration:.6666665s}
#wedding-complete .scene .basmala-revealing{animation-duration:.625s}
#wedding-complete .sky-depth{position:absolute;inset:0;transform:none!important;background-image:url('./cloud-v2.png'),url('./cloud-v2.png'),url('./cloud-v2.png'),linear-gradient(#bdd9e9,#f6eddb);background-position:-140px -60px,130px 170px,-30px 340px,center;background-size:440px 294px,400px 267px,500px 334px,100% 100%;background-repeat:repeat-y,repeat-y,repeat-y,no-repeat;opacity:.95}
#wedding-complete .storybook-cloud{opacity:.65}
#wedding-complete .pillar-flowers{position:absolute;z-index:2;width:66px;height:132px;object-fit:contain;pointer-events:none;transform:rotate(var(--flower-rotation));filter:drop-shadow(0 2px 2px #6b664522)}
#wedding-complete .pillar-flowers.left{left:-5px}#wedding-complete .pillar-flowers.right{right:-5px;transform:scaleX(-1) rotate(var(--flower-rotation))}
#wedding-complete .full-content section,#wedding-complete .invitation-footer{position:relative}
/* One continuous silhouette, without independently shaded circular lobes. */
#wedding-complete .heart-shape,#wedding-complete .merged-heart .heart-shape{inset:0;transform:none;border-radius:0;background:linear-gradient(145deg,#f8c9ce,#d88f9f)!important;box-shadow:none!important;clip-path:path('M 31 58 C 23 51 1 35 1 19 C 1 1 22 -3 31 12 C 40 -3 61 1 61 19 C 61 35 39 51 31 58 Z');filter:none}
#wedding-complete .heart-shape:before,#wedding-complete .heart-shape:after{display:none}
#wedding-complete .heart-n .heart-shape{background:linear-gradient(145deg,#d2eaf7,#91b7d0)!important}
#wedding-complete .little-heart{filter:drop-shadow(0 0 7px #fff1dca6)}
#wedding-complete .heart-letter{inset:0 0 8px;font-size:25px}
#wedding-complete .merged-heart .heart-shape{clip-path:path('M 49 93 C 36 81 1 56 1 30 C 1 2 35 -4 49 19 C 63 -4 97 2 97 30 C 97 56 62 81 49 93 Z');background:linear-gradient(145deg,#f8d1d3,#db9aae)!important}
#wedding-complete .merged-heart img{left:12px;top:12px;width:74px;height:58px}
#wedding-complete .heart-stage.play .merged-heart{animation:hearts-united 3.6s ease-in-out forwards,merge-glow 3.6s ease-out forwards}
@keyframes merge-glow{0%,55%{filter:drop-shadow(0 0 0 #fff1ca00)}75%{filter:drop-shadow(0 0 22px #ffe8aeee) drop-shadow(0 0 10px #fff8ed)}100%{filter:drop-shadow(0 0 8px #fff1c9b3)}}
@media(max-height:690px){#wedding-complete .stage{min-height:100svh}#wedding-complete .scene .parchment{padding:34px 22px!important}#wedding-complete .scene .quran{font-size:20px;line-height:1.65}}
@media(prefers-reduced-motion:reduce){#wedding-complete .heart-stage.play .merged-heart{animation:none;opacity:1;transform:translateX(-50%);filter:drop-shadow(0 0 8px #fff1c9b3)}}

/* Readable, translucent panels for event details. */
#wedding-complete .full-content section:is(.date-block,.venue-block,.rsvp-block){padding-left:38px;padding-right:38px}
#wedding-complete .pearl-content-card{position:relative;z-index:3;isolation:isolate;box-sizing:border-box;width:100%;padding:38px 21px;text-align:center;background:linear-gradient(135deg,rgba(255,252,242,.79),rgba(255,248,232,.65));border:1px solid rgba(179,151,105,.55);outline:1px solid rgba(255,255,247,.7);outline-offset:-6px;border-radius:4px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 9px 28px #70593414,inset 0 1px 0 #fff9; color:#503c2b}
#wedding-complete .pearl-content-card .rsvp-form{background:transparent;border:0;box-shadow:none;padding:14px 0 0;text-align:left}
#wedding-complete .pearl-content-card .countdown{width:100%;gap:5px}
#wedding-complete .pearl-content-card textarea{background:#fffdf6d9}
#wedding-complete .countdown>div{box-sizing:border-box;min-width:0;padding:8px 3px 7px;border:1px solid rgba(151,123,79,.58);border-radius:5px;background:rgba(255,252,244,.62)}
#wedding-complete .countdown small{margin-top:5px}
#wedding-complete .guest-name-list{display:grid;gap:9px;margin-bottom:10px}
#wedding-complete .guest-name-row{display:flex;align-items:center;gap:8px}
#wedding-complete .guest-name{box-sizing:border-box;min-width:0;flex:1;padding:11px 12px;background:#fffdf6d9;border:1px solid #c4b49c;border-radius:2px;font:400 18px/1.4 'Cormorant Garamond',Georgia,serif;color:#60482e}
#wedding-complete .guest-name::placeholder{color:#8b7c69;opacity:.85}
#wedding-complete .add-guest,#wedding-complete .remove-guest{display:inline-grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border:1px solid #bda982;border-radius:50%;background:#fffaf0;color:#60482e;font:400 25px/1 Georgia,serif;cursor:pointer}
#wedding-complete .add-guest{margin:0 0 17px}
#wedding-complete .remove-guest{font-size:23px}
#wedding-complete .add-guest:focus-visible,#wedding-complete .remove-guest:focus-visible,#wedding-complete .guest-name:focus-visible{outline:2px solid #8a7049;outline-offset:2px}
@media(max-width:350px){#wedding-complete .full-content section:is(.date-block,.venue-block,.rsvp-block){padding-left:30px;padding-right:30px}#wedding-complete .pearl-content-card{padding:32px 15px}}
/* Full-screen envelope: top, bottom, left and right sheets part independently. */
#wedding-complete .stage{perspective:none}
#wedding-complete .stage .envelope{position:fixed;inset:0;width:100vw;height:100svh;transform:none!important;opacity:1;filter:none;z-index:30;transition:none;pointer-events:auto}
#wedding-complete .stage .letter,#wedding-complete .stage .lining{display:none}
#wedding-complete .stage .back{inset:0;border-radius:0;background:linear-gradient(0deg,#c6ae8955,#fff8eb33),var(--paper) center/540px;clip-path:polygon(0 100%,50% 47%,100% 100%);z-index:3;transition:transform 1.8s cubic-bezier(.55,0,.2,1) 1.15s}
#wedding-complete .stage .pocket{inset:0;border-radius:0;overflow:visible;box-shadow:none;z-index:2}
#wedding-complete .stage .pocket:before,#wedding-complete .stage .pocket:after{inset:0;border-radius:0;filter:none;transition:transform 1.8s cubic-bezier(.55,0,.2,1) .95s}
#wedding-complete .stage .pocket:before{background:linear-gradient(110deg,#fffaf155,#b59b7522),var(--paper) center/540px;clip-path:polygon(0 0,53% 50%,0 100%)}
#wedding-complete .stage .pocket:after{background:linear-gradient(250deg,#fffaf155,#b59b7533),var(--paper) center/540px;clip-path:polygon(100% 0,47% 50%,100% 100%)}
#wedding-complete .stage .flap{inset:0;width:100%;height:100%;border-radius:0;clip-path:polygon(0 0,100% 0,50% 52%);background:linear-gradient(180deg,#fffdf366,#bea68233),var(--paper) center/540px;z-index:4!important;transform:none;filter:drop-shadow(0 2px 2px #71583855);transition:transform 1.9s cubic-bezier(.45,0,.2,1) .45s}
#wedding-complete .stage .seal{top:calc(50% - 48px);left:50%;width:96px;height:96px;z-index:6;transition:transform .6s,opacity .5s}
#wedding-complete .stage .intro{position:fixed;top:21svh;left:0;right:0;z-index:31;pointer-events:none}
#wedding-complete .stage .intro .eyebrow{background:transparent;border:0;box-shadow:none;font-size:17px;letter-spacing:2.5px;padding:15px}
#wedding-complete .opened .envelope{pointer-events:none}
#wedding-complete .opened .envelope .flap{transform:translateY(-105%)}
#wedding-complete .opened .envelope .back{transform:translateY(105%)}
#wedding-complete .opened .envelope .pocket:before{transform:translateX(-105%)}
#wedding-complete .opened .envelope .pocket:after{transform:translateX(105%)}
#wedding-complete .opened .scene{opacity:1;transform:none;transition:opacity .45s .5s}
#wedding-complete .revealed .envelope,#wedding-complete .opened .intro{visibility:hidden}
#wedding-complete .heart-a .heart-shape{background:linear-gradient(145deg,#d2eaf7,#91b7d0)!important}
#wedding-complete .heart-n .heart-shape{background:linear-gradient(145deg,#f8c9ce,#d88f9f)!important}
@media(prefers-reduced-motion:reduce){#wedding-complete .stage .envelope *{transition-duration:.01s!important;transition-delay:0s!important}}


#wedding-complete .invitation-footer{padding-left:38px;padding-right:38px}
#wedding-complete .closing-card{padding:32px 20px 28px}
#wedding-complete .closing-card p{color:#503c2b}
@media(max-width:350px){#wedding-complete .invitation-footer{padding-left:30px;padding-right:30px}}

#wedding-complete .calendar-button{margin-top:12px}
#wedding-complete .merged-heart{width:112px;height:112px;top:28px}
#wedding-complete .merged-heart .heart-shape{clip-path:path('M 56 106 C 41 92 1 63 1 34 C 1 3 40 -4 56 22 C 72 -4 111 3 111 34 C 111 63 71 92 56 106 Z');background:linear-gradient(145deg,#ee6674 0%,#d52e45 52%,#ae172e 100%)!important;box-shadow:inset -5px -6px 10px #74102c55, inset 3px 3px 10px #ffd2d755!important}
#wedding-complete .remove-guest:disabled{opacity:.38;cursor:not-allowed}
#wedding-complete .stage .intro{top:clamp(38px,14svh,132px);padding:0 16px;text-align:center}
#wedding-complete .stage .intro .eyebrow{padding:0;color:#574633;font:500 14px/1.3 'Cormorant Garamond',Georgia,serif;letter-spacing:3.2px}
#wedding-complete .landing-separator{display:flex;align-items:center;gap:8px;width:min(170px,44vw);height:12px;margin:14px auto 10px;color:#80694f}
#wedding-complete .landing-separator:before,#wedding-complete .landing-separator:after{content:'';height:1px;flex:1;background:currentColor;opacity:.72}
#wedding-complete .landing-separator span{width:6px;height:6px;flex:0 0 6px;border:1px solid currentColor;border-radius:50%}
#wedding-complete .landing-script{margin:0;color:#624735;font:400 35px/1.15 'Great Vibes','Segoe Script',cursive;letter-spacing:.2px;text-shadow:0 1px 10px #fff9edaa}
#wedding-complete .stage .hint{position:fixed;top:calc(50svh + 74px);z-index:31;color:#624735;font:400 14px/1.4 'Cormorant Garamond',Georgia,serif;letter-spacing:.8px;padding:0 12px}
#wedding-complete .hint-separator{width:min(140px,36vw);margin:12px auto 0}
#wedding-complete .stage .envelope-engraving{position:absolute;inset:0;z-index:5;display:block;width:100%;height:100%;opacity:.7;mix-blend-mode:multiply;pointer-events:none;transition:opacity .42s ease}
#wedding-complete .stage .envelope-engraving img{display:block;width:100%;height:100%;object-fit:fill}
#wedding-complete .opened .envelope-engraving{opacity:0}
@media(max-height:700px){#wedding-complete .stage .intro{top:9svh}#wedding-complete .landing-script{font-size:30px}#wedding-complete .landing-separator{margin-top:9px;margin-bottom:7px}#wedding-complete .stage .hint{top:calc(50svh + 68px)}}
#wedding-complete .stage .intro{top:clamp(48px,16svh,150px)}
#wedding-complete .stage .hint{top:calc(84svh - 70px);font-size:16px;text-shadow:0 1px 8px #fff9ed}
#wedding-complete .landing-script{font-size:37px}
#wedding-complete .gift-block .gift-copy{font-size:20px;line-height:1.65;margin:20px 0 0}
#wedding-complete .full-content .gift-block{min-height:620px}
@media(max-height:700px){#wedding-complete .stage .hint{top:calc(84svh - 70px)}}
@media(max-width:360px){#wedding-complete .stage .hint{font-size:14px}#wedding-complete .landing-script{font-size:32px}}
#wedding-complete .wamd-details{display:flex;justify-content:center;margin-top:20px}
#wedding-complete .copy-wamd-number{min-width:min(100%,250px);margin-top:3px}
#wedding-complete .stage .hint{display:block!important}

#wedding-complete .closing-card .closing-names{font:400 23px/1.3 'Bodoni Moda',Georgia,serif;letter-spacing:.5px;margin:12px 0 7px;color:#503c2b}

#wedding-complete .stage .landing-signoff{position:fixed;top:calc(50svh + 55px);left:0;right:0;z-index:31;margin:0 16px;text-align:center;pointer-events:none}

#wedding-complete .stage .landing-signoff{top:calc(50svh + 70px);font-size:29px;transition:opacity .4s,visibility .4s}
#wedding-complete.opened .stage .landing-signoff,#wedding-complete.revealed .stage .landing-signoff{opacity:0;visibility:hidden}

#wedding-complete .stage.opened .landing-signoff,#wedding-complete .stage.revealed .landing-signoff{opacity:0;visibility:hidden}

html.preseal,html.preseal body{height:100%;overflow:hidden!important;overscroll-behavior:none!important}
#wedding-complete .stage .intro{top:clamp(26px,7svh,64px);padding:0 22px}
#wedding-complete .stage .intro .eyebrow{font-size:clamp(12px,3vw,14px);letter-spacing:clamp(2px,.7vw,3px)}
#wedding-complete .stage .intro .landing-separator{width:min(150px,38vw);margin:8px auto 6px}
#wedding-complete .stage .intro .landing-script{font-size:clamp(27px,7vw,32px);line-height:1.05}
#wedding-complete .add-guest{display:inline-flex!important;align-items:center;justify-content:center;gap:9px;flex:0 0 auto!important;width:auto!important;min-width:40px;height:40px;padding:0 14px 0 10px;border-radius:999px;margin:0 0 17px;font:400 16px/1 'Cormorant Garamond',Georgia,serif}
#wedding-complete .add-guest span:first-child{font:400 25px/1 Georgia,serif}
#wedding-complete .merged-heart .heart-shape{background-image:radial-gradient(circle at 3px 3px,rgba(255,248,230,.52) 0 1px,transparent 1.45px),radial-gradient(circle at 8px 8px,rgba(105,77,43,.12) 0 .8px,transparent 1.3px),linear-gradient(145deg,#f3e5c8 0%,#d7bf98 50%,#c9ab7a 100%)!important;background-size:10px 10px,10px 10px,100% 100%!important;box-shadow:inset 2px 2px 7px #fff9e9a8,inset -5px -6px 10px #8a684333!important}

/* Classic A/N seal monogram, longer landing headline, and traditional Quranic Naskh. */
#wedding-complete .stage .intro .landing-script{max-width:min(94vw,720px);margin:0 auto;font-size:clamp(26px,6.8vw,35px);line-height:1.04;text-wrap:balance}
#wedding-complete .scene .quran,#wedding-complete .scene .basmala,#wedding-complete .scene .verse-ref{font-family:'Scheherazade New','Amiri',serif!important;font-weight:400}
#wedding-complete .scene .quran{font-size:clamp(22px,3.1svh,27px);line-height:1.85;letter-spacing:0}
#wedding-complete .scene .basmala{font-size:24px;line-height:1.7}
/* Landing copy above the seal; keep the long invitation message comfortably wrapped. */
#wedding-complete .stage .intro{top:clamp(30px,8svh,78px);left:0;right:0;padding:0 20px;text-align:center}
#wedding-complete .stage .intro .landing-script{max-width:min(92vw,720px);margin:0 auto;font-size:clamp(24px,5.4vw,36px);line-height:1.08;text-wrap:balance}

/* November 2026 calendar and requested Arabic display typography. */
#wedding-complete .mini-calendar-section{margin:20px auto 18px;max-width:280px;padding:12px 14px 14px;border:1px solid #c9b48c66;border-radius:12px;background:#fffaf0a8}
#wedding-complete .mini-calendar-title{margin:0 0 8px;color:#75593b;font:500 13px/1.3 'Cormorant Garamond',Georgia,serif;letter-spacing:1.8px;text-transform:uppercase}
#wedding-complete .mini-calendar{width:100%;color:#665540;font:400 13px/1 'Cormorant Garamond',Georgia,serif}
#wedding-complete .calendar-weekdays,#wedding-complete .calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;text-align:center}
#wedding-complete .calendar-weekdays{margin-bottom:5px;color:#9a8363;font:500 11px/1.4 'Cormorant Garamond',Georgia,serif}
#wedding-complete .calendar-days{row-gap:4px}
#wedding-complete .calendar-days>span{position:relative;display:grid;place-items:center;aspect-ratio:1;z-index:0}
#wedding-complete .calendar-days>.heart-day{color:#714c3e;font-weight:700}
#wedding-complete .calendar-days>.heart-day:before{content:'♡';position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-53%);z-index:-1;color:#ad6b68;font:400 29px/1 Georgia,serif}
#wedding-complete .closing-signoff{margin:20px 0 0;font:italic 18px/1.4 'Bodoni Moda',Georgia,serif;color:#503c2b}
#wedding-complete .scene .quran,#wedding-complete .scene .basmala{font-family:'Aref Ruqaa','Amiri',serif!important;font-weight:400}
#wedding-complete .scene .basmala{font-size:clamp(25px,3.5svh,29px);line-height:1.85;word-spacing:.12em}
/* Deluxe Edition first; existing Great Vibes is the web-safe wedding-script fallback. */
#wedding-complete .full-content h2,#wedding-complete .happening{font-family:'Deluxe Edition','Great Vibes','Bodoni Moda',Georgia,serif}
#wedding-complete .full-content .kicker,#wedding-complete .count-title{font-family:'Deluxe Edition','Cormorant Garamond',Georgia,serif}
@media(max-width:390px){#wedding-complete .mini-calendar-section{max-width:260px;padding:10px 12px 12px}#wedding-complete .calendar-days{font-size:12px}}
/* Locally bundled OFL fonts make the script and Ruqaa styles load consistently. */
@font-face{font-family:'Dancing Script';src:url('/assets/fonts/DancingScript-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Aref Ruqaa Local';src:url('/assets/fonts/ArefRuqaa-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Aref Ruqaa Local';src:url('/assets/fonts/ArefRuqaa-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
/* These declarations intentionally override the earlier Scheherazade !important rule. */
#wedding-complete .scene .quran,#wedding-complete .scene .basmala{font-family:'Aref Ruqaa Local',serif!important;font-weight:400!important}
#wedding-complete .full-content h2,#wedding-complete .happening{font-family:'Dancing Script',cursive!important;font-weight:400}
#wedding-complete .full-content .count-title{font-family:'Dancing Script',cursive;font-size:clamp(21px,5.4vw,28px);line-height:1.25;letter-spacing:0;text-transform:none}
/* Consistent centered card width; vertical spacing remains content- and section-driven. */
#wedding-complete .full-content section,#wedding-complete .invitation-footer{padding-left:0!important;padding-right:0!important;align-items:center}
#wedding-complete .pearl-content-card,#wedding-complete .celebration-card{box-sizing:border-box;width:min(88vw,620px)!important;max-width:calc(100% - 32px);margin-left:auto;margin-right:auto}
/* Keep the celebration content and heart animation at their existing sizes. */
#wedding-complete .celebration-card{padding-top:31px;padding-bottom:32px}
#wedding-complete .date-block .kicker,#wedding-complete .mini-calendar-title{font-family:'Dancing Script',cursive!important;font-size:23px;line-height:1.2;letter-spacing:.2px;text-transform:none}
#wedding-complete .closing-card .closing-names{font:400 30px/1.3 'Dancing Script',cursive;letter-spacing:0;margin:13px 0 7px}
#wedding-complete .full-content .date-block .count-title{font-family:'Dancing Script',cursive;font-size:clamp(21px,5.4vw,28px);line-height:1.25;letter-spacing:0;text-transform:none}

/* Shared editorial type scale: match every invitation heading to the date kicker. */
#wedding-complete{--invitation-heading-size:23px;--invitation-copy-size:20px}
#wedding-complete .full-content h2,
#wedding-complete .full-content .happening,
#wedding-complete .date-block .kicker,
#wedding-complete .mini-calendar-title,
#wedding-complete .full-content .date-block .count-title{font-size:var(--invitation-heading-size)!important;line-height:1.25}
#wedding-complete .full-content p:not(.kicker):not(.count-title):not(.small-copy):not(.day):not(.closing-signoff):not(.closing-names):not(.form-result){font-size:var(--invitation-copy-size);line-height:1.6}
#wedding-complete .date-block .day{font-size:var(--invitation-copy-size);line-height:1.5}
#wedding-complete .closing-card>p:not(.closing-signoff):not(.closing-names){font-size:var(--invitation-copy-size);line-height:1.6}
#wedding-complete .rsvp-form legend,#wedding-complete .rsvp-form .name-label,#wedding-complete .rsvp-form .attendance{font-size:18px;line-height:1.45}
#wedding-complete .landing-script{font-family:'Dancing Script',cursive}
#wedding-complete .calendar-days>.heart-day:before{transform:translate(-50%,-43%)}
/* Match every information card to the date card's shared pearl surface. */
#wedding-complete .pearl-content-card,#wedding-complete .celebration-card{background:linear-gradient(135deg,rgba(255,252,242,.79),rgba(255,248,232,.65))!important;border:1px solid rgba(179,151,105,.55)!important;outline:1px solid rgba(255,255,247,.7)!important;outline-offset:-6px!important;border-radius:4px!important;backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important;box-shadow:0 9px 28px #70593414,inset 0 1px 0 #fff9!important;color:#503c2b!important}
#wedding-complete .celebration-card:before{display:none!important}

/* Responsive envelope artwork with a real hinged top flap. */
#wedding-complete .stage .envelope{--envelope-art:url('/assets/envelope-mobile-v4.png');overflow:visible;perspective:1300px}
#wedding-complete .stage .back,#wedding-complete .stage .lining,#wedding-complete .stage .letter,#wedding-complete .stage .pocket{display:none!important}
#wedding-complete .stage .envelope:before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(145deg,#fff9ed,#f0e2ce);clip-path:polygon(0 0,100% 0,100% 41%,50% 67%,0 41%);opacity:1;transition:opacity 1.45s ease}
#wedding-complete .stage .envelope-engraving{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;opacity:1;mix-blend-mode:normal;pointer-events:none;transition:opacity 1.45s ease}
#wedding-complete .stage .envelope-engraving img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
#wedding-complete .stage .flap{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;clip-path:polygon(0 0,100% 0,100% 41%,50% 67%,0 41%);background:var(--envelope-art) center/cover no-repeat;transform-origin:50% 0;transform:none;backface-visibility:hidden;filter:drop-shadow(0 5px 6px #75573355);z-index:4!important;transition:transform 1.05s cubic-bezier(.42,0,.2,1) .24s,opacity .42s ease 1.03s}
#wedding-complete .stage .flap .intro{position:absolute!important;top:clamp(230px,33svh,340px)!important;left:0!important;right:0!important;z-index:2!important;margin:0!important;padding:0 18px!important;text-align:center;opacity:1!important;visibility:visible!important;pointer-events:none}
#wedding-complete .stage .flap .landing-script{position:relative;max-width:min(90vw,700px);margin:0 auto;color:#997447;font:400 clamp(26px,6vw,36px)/1.1 'Dancing Script',cursive;letter-spacing:.1px;text-shadow:0 1px 0 #fff7e8,0 -1px 0 #87663388,1px 1px 2px #80623c66;mix-blend-mode:multiply;text-align:center}
#wedding-complete .stage .flap .landing-names{position:absolute;left:0;right:0;bottom:100%;margin-bottom:5px;text-align:center;font-size:1.08em;line-height:1.05}
#wedding-complete .stage .flap .flap-monogram{position:absolute;left:50%;top:47svh;width:min(150px,34vw);height:auto;transform:translateX(-50%);z-index:2;opacity:.78;mix-blend-mode:multiply;filter:sepia(.2)}
#wedding-complete .stage .seal{top:calc(66svh - 48px);left:50%;width:96px;height:96px;z-index:6}
#wedding-complete .stage.opened .envelope .flap{transform:rotateX(155deg)!important;opacity:0;transition:transform 1.65s cubic-bezier(.42,0,.2,1) .2s,opacity .42s ease 1.46s!important}
#wedding-complete .stage.opened.flap-behind .envelope .flap{z-index:4!important}
#wedding-complete .stage.opened .envelope .flap .intro{opacity:1!important;visibility:visible!important}
#wedding-complete .stage.opened .envelope-engraving{opacity:1!important}
#wedding-complete .stage.extracting .envelope-engraving,#wedding-complete .stage.extracting .envelope:before{opacity:0!important;transition:opacity 1.45s ease!important}
#wedding-complete .stage.extracting .envelope .flap .intro,#wedding-complete .stage.extracting .envelope .flap .flap-monogram{opacity:0!important;transition:opacity .4s ease!important}
#wedding-complete .stage.revealed .envelope{visibility:hidden}
@media(min-width:700px){
  #wedding-complete .stage .envelope{--envelope-art:url('/assets/envelope-desktop-tangerine-v4.svg')}
  #wedding-complete .stage .envelope:before,#wedding-complete .stage .flap{clip-path:polygon(0 0,100% 0,100% 28%,50% 70%,0 28%)}
  #wedding-complete .stage .flap .intro{top:17svh!important}
  #wedding-complete .stage .flap .flap-monogram{display:none}
  #wedding-complete .stage .seal{top:calc(70svh - min(12svh,130px));width:min(24svh,260px);height:min(24svh,260px);background:transparent;box-shadow:none;filter:none}
  #wedding-complete .stage .seal img{opacity:0}
}
@media(prefers-reduced-motion:reduce){#wedding-complete .stage.opened .envelope .flap{transform:translateY(-105%)!important;opacity:0!important}}

/* Keep the Basmala in the same locally bundled Ruqaa face as the verse and on one line on narrow screens. */
#wedding-complete .scene .basmala{font-family:'Aref Ruqaa Local',serif!important;font-weight:400!important;font-size:clamp(13px,4.4vw,24px);line-height:1.6;white-space:nowrap;width:100%;word-spacing:normal;letter-spacing:normal;text-align:center;text-align-last:center;}

/* Selected display fonts and Bodoni body typography. */
@font-face{font-family:'Tangerine Local';src:url('/assets/fonts/Tangerine-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Quetine Local';src:url('/assets/fonts/Quetine.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
#wedding-complete .stage,#wedding-complete .full-content,#wedding-complete .hint,#wedding-complete .full-content p,#wedding-complete .full-content h2,#wedding-complete .full-content .kicker,#wedding-complete .mini-calendar,#wedding-complete .calendar-weekdays,#wedding-complete .wedding-button,#wedding-complete .rsvp-form,#wedding-complete .rsvp-form input,#wedding-complete .rsvp-form button,#wedding-complete .bottom-replay,#wedding-complete .music-control{font-family:Georgia,serif!important}
#wedding-complete .stage .flap .landing-script{font-family:'Tangerine Local',cursive!important;font-weight:400;font-style:normal;line-height:1.05;font-size:clamp(36px,7vw,48px)}
#wedding-complete .full-content .tangerine-heading{font-family:'Tangerine Local',cursive!important;font-size:clamp(34px,8.5vw,42px)!important;font-weight:400!important;font-style:normal;line-height:1.12;letter-spacing:0;text-transform:none}
#wedding-complete .full-content .mini-calendar-title.tangerine-heading{font-size:36px!important;margin-bottom:12px}
#wedding-complete .full-content .closing-signoff,#wedding-complete .full-content .closing-names{font-family:'Quetine Local',cursive!important;font-weight:400;font-style:normal;letter-spacing:0;line-height:1.3}
#wedding-complete .full-content .closing-signoff{font-size:29px}
#wedding-complete .full-content .closing-names{font-size:36px}
#wedding-complete .full-content .verse-ref{font-family:'Aref Ruqaa Local',serif!important}
#wedding-complete .full-content .date-block .count-title.tangerine-heading{font-size:clamp(34px,8.5vw,42px)!important;line-height:1.12}
#wedding-complete .countdown small,#wedding-complete .replay,.music-ui{font-family:Georgia,serif!important}

/* Version 46 rendered the sign-off in Georgia Italic; match English body copy. */
#wedding-complete .full-content p:not(.tangerine-heading):not(.closing-signoff):not(.closing-names):not(.verse-ref){font-style:normal}

/* Envelope spacing, date color, and single-line venue requested in version 49. */
#wedding-complete .stage .flap .intro{top:calc(clamp(230px,33svh,340px) - 24px)!important}
@media(min-width:700px){#wedding-complete .stage .flap .intro{top:calc(17svh - 24px)!important}}
#wedding-complete .full-content .wedding-date{color:#997447}
#wedding-complete .full-content .venue-name{white-space:nowrap;font-size:clamp(17px,5vw,23px)!important;letter-spacing:0;line-height:1.35}

/* Keep music controls absent until the Quran reveal and first audible playback. */
#music-toggle[hidden]{display:none!important}

/* Separate first/last names while retaining the card design. */
#wedding-complete .guest-name-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 32px;align-items:end;gap:8px}
#wedding-complete .guest-name-part{display:grid;gap:5px;min-width:0;text-align:left;font:14px/1.3 Georgia,serif}
#wedding-complete .guest-name-part .guest-name{box-sizing:border-box;width:100%;padding:10px 7px;font-size:16px}
#wedding-complete .guest-name-row .remove-guest{width:32px;height:42px;min-width:32px}
#wedding-complete .rsvp-form .name-label{margin-bottom:10px;text-align:left}

#memory-uploader-dialog{box-sizing:border-box;position:fixed;inset:0;width:min(90vw,430px);max-height:85svh;padding:28px;border:1px solid #bba17c;border-radius:12px;background:#fff9ee;color:#60482e;font:17px/1.5 Georgia,serif;z-index:100;overflow:auto}
#memory-uploader-dialog::backdrop{background:#37291d88}
#memory-uploader-dialog h2{font:400 29px/1.1 'Tangerine Local',cursive;margin:0 0 15px}
#memory-uploader-dialog label{display:grid;gap:8px;font-size:16px}
#memory-uploader-dialog input{box-sizing:border-box;width:100%;padding:12px;border:1px solid #bba17c;background:#fffdf8;font:18px Georgia,serif;color:#60482e}
#memory-uploader-dialog .uploader-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
#memory-uploader-dialog button{padding:11px 14px;min-height:44px;font:16px Georgia,serif;border:1px solid #a78c65;background:#7c6242;color:#fff9ee;border-radius:4px}
#memory-uploader-dialog .uploader-cancel{background:transparent;color:#60482e}
