:root{--paper:#f5ead6;--red:#c10924;--ink:#680d20;--gold:#dac699;color-scheme:dark;font-family:Arial,Helvetica,sans-serif;font-size:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#080808;color:var(--paper)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:6px}h1,h2,p{margin:0}button{color:inherit}button:disabled{cursor:default}.skip-link{position:fixed;top:-100px;left:15px;padding:15px;background:#111;z-index:200}.skip-link:focus{top:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.opening{height:1050svh;background:#080808}.opening-sticky{position:sticky;top:0;height:100svh;min-height:0;overflow:hidden;isolation:isolate;background:#080808}
.hands-backdrop{position:absolute;inset:0;z-index:0;background:#080808}.hands-backdrop img{width:100%;height:100%;object-fit:cover;object-position:50% 52%;opacity:.8}.hands-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(#0008,transparent 45%,#000b)}
.red-sheet{position:absolute;inset:0 0 auto;height:116%;z-index:1;background:#16050b;will-change:transform;filter:drop-shadow(0 15px 9px #0008);transform:translateY(var(--sheet-y,0%))}
.red-sheet:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 35% 20%,#ff182918,transparent 60%),linear-gradient(120deg,#32000825,transparent 45%,#30000045);mix-blend-mode:multiply}
.site-header{position:absolute;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:28px 5vw;z-index:3;font-size:12px}.site-header>span{text-transform:uppercase;letter-spacing:.16em;font-size:10px}.site-header a{text-decoration:none}.wordmark{font:28px Georgia,serif;letter-spacing:-3px}.wordmark span{font-size:17px;margin:0 3px}.site-header>a:last-child{border-bottom:1px solid #f5ead655;padding-bottom:5px}
.backdrop-copy{position:absolute;top:14%;left:4%;right:4%;text-align:center;text-shadow:0 2px 1px #68031650}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:11px;line-height:1.5}.backdrop-copy h1{font:italic clamp(70px,12vw,185px)/1.12 Georgia,serif;letter-spacing:-.07em;margin:16px 0}.backdrop-copy h1 span{font-size:.5em;vertical-align:middle;letter-spacing:-.1em}.backdrop-subtitle{font:italic 17px/1.6 Georgia,serif}.backdrop-script{position:absolute;left:3%;bottom:17%;white-space:nowrap;font:italic clamp(58px,10.6vw,180px)/1 Georgia,serif;letter-spacing:-.07em;transform:rotate(-5deg);opacity:.94}
.torn-edge{position:absolute;bottom:0;left:0;right:0;height:2px;background:transparent}
.hands-copy{position:absolute;top:9%;left:6%;right:6%;z-index:2;opacity:var(--hands-copy,0);text-align:center;pointer-events:none;text-shadow:0 2px 12px #000}.hands-copy>p:last-child{font:clamp(30px,4.5vw,60px)/1.15 Georgia,serif;margin-top:12px}.hands-copy em{font-weight:400}
#envelope-3d{position:absolute;inset:0;z-index:3;opacity:0;transition:opacity .6s;touch-action:pan-y;cursor:pointer}#envelope-3d.ready{opacity:1}#envelope-3d canvas{width:100%;height:100%;display:block}#envelope-3d[aria-disabled=true]{cursor:default}#scene-status{position:absolute;top:50%;left:0;right:0;text-align:center;z-index:5;font:italic 16px Georgia,serif;pointer-events:none}.opening-bottom{position:absolute;bottom:28px;left:5vw;right:5vw;z-index:5;display:flex;justify-content:space-between;align-items:center;opacity:var(--cue-opacity,1);pointer-events:var(--cue-events,auto)}.scroll-cue{border:1px solid #f5ead64a;border-radius:40px;background:#23060975;backdrop-filter:blur(8px);padding:12px 22px;display:flex;align-items:center;gap:22px;font:italic 16px Georgia,serif}.scroll-cue>span:last-child{font-style:normal;font-size:22px}.gesture-hint{font-size:11px;letter-spacing:.1em;opacity:.75}.opening-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff16;z-index:6}.opening-progress span{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}
.paper-choices{position:absolute;bottom:30px;left:5%;right:5%;z-index:6;text-align:center;opacity:var(--choices-opacity,0);pointer-events:var(--choices-events,none)}.paper-choices>p{font:italic 18px Georgia,serif;margin-bottom:16px}.paper-choices>div{display:flex;justify-content:center;gap:8px}.paper-choices button{border:1px solid #f4ead344;border-radius:25px;background:#08080880;backdrop-filter:blur(10px);padding:12px 17px;font-size:12px}.paper-choices button:hover{background:#77102f}
.closing{min-height:70svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:80px 8vw;background:#080808}.closing h2{font:clamp(44px,8vw,100px) Georgia,serif;margin:22px 0}.closing h2 i{font-size:.65em;color:#ba9275}.closing>p:not(.eyebrow){max-width:350px;font:16px/1.8 Georgia,serif;opacity:.68}.closing a{margin-top:45px;font-size:12px;text-decoration:none;border-bottom:1px solid #ffffff50;padding-bottom:7px}
#experience{transition:filter .35s}.inspect-open #experience{filter:blur(8px) brightness(.45)}.inspect-open{overflow:hidden}#paper-inspector{position:fixed;inset:0;margin:auto;border:0;padding:0;width:100vw;height:100svh;max-width:none;max-height:none;background:transparent;color:var(--paper);overflow:hidden}#paper-inspector::backdrop{background:#07030370;backdrop-filter:blur(3px)}.inspect-toolbar{position:absolute;left:5vw;right:5vw;top:26px;display:flex;justify-content:space-between;align-items:center;z-index:2}.inspect-toolbar h2{font:italic 22px Georgia,serif;font-weight:400}.inspect-toolbar button,.inspect-bottom button{border:1px solid #fff4;background:#10101088;border-radius:30px;padding:10px 17px;font-size:13px}.inspect-toolbar button span{font-size:22px;margin-left:12px}#inspect-stage{position:absolute;inset:80px 0 85px;touch-action:none;cursor:grab}#inspect-stage.dragging{cursor:grabbing}#inspect-stage canvas{display:block;width:100%;height:100%}.inspect-bottom{position:absolute;bottom:28px;left:5vw;right:5vw;display:flex;justify-content:space-between;align-items:center;gap:15px}.inspect-bottom p{font-size:13px;line-height:1.5;max-width:68%}
@media(max-width:600px){.site-header{padding:22px 6vw}.site-header>span{display:none}.backdrop-copy{top:18%}.backdrop-copy h1{font-size:22vw;margin-top:13px}.backdrop-subtitle{font-size:14px;padding:0 25px}.backdrop-script{bottom:22%;font-size:15vw;left:2%}.red-sheet{background-size:auto 100%;background-position:center top}.hands-backdrop img{object-position:50% 50%}.hands-copy{top:10%}.hands-copy>p:last-child{font-size:35px}.opening-bottom{left:6%;right:6%;bottom:25px}.gesture-hint{font-size:10px}.scroll-cue{font-size:14px;padding:10px 15px;gap:10px}.paper-choices>div{gap:5px}.paper-choices button{padding:11px 12px;font-size:11px}.paper-choices>p{font-size:17px}.inspect-toolbar h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.opening{height:100svh}.opening-sticky{position:relative}.red-sheet{display:none}.hands-copy{opacity:1}#envelope-3d{transition:none}.opening-bottom{display:none}.paper-choices{opacity:1;pointer-events:auto}#experience{transition:none}}
/* The supplied texture's alpha carries its irregular torn lower edge. */

.red-sheet{background-color:#ff3355;background-blend-mode:multiply}

.hands-backdrop img{opacity:var(--hands-image,0)}
#paper-inspector[open] #inspect-stage{animation:paper-focus .45s cubic-bezier(.16,1,.3,1)}
@keyframes paper-focus{from{opacity:0;transform:translateY(35px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.hands-backdrop img{opacity:.8}#paper-inspector[open] #inspect-stage{animation:none}}

.hands-backdrop img{transform:translateY(-13%)}
.hands-backdrop:after{background:linear-gradient(#0008,transparent 30%,#0002 58%,#080808 94%)}

/* The physical backdrop now lives inside the 3D transmission/shadow pass. */
.scene-ready .red-sheet{background:none;mask-image:none;-webkit-mask-image:none;filter:none;z-index:4;pointer-events:none}
.scene-ready .red-sheet:before,.scene-ready .backdrop-copy,.scene-ready .backdrop-script,.scene-ready .hands-backdrop{visibility:hidden}
.scene-ready .site-header{pointer-events:auto}
.paper-choices>p:after{content:'Scroll on to our next chapter ↓';display:block;font:10px Arial,sans-serif;letter-spacing:.12em;margin-top:9px;opacity:.65}
.photo-finale{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:var(--hands-copy,0);color:#ffe6bd;overflow:hidden}
.finale-topline{position:absolute;top:6%;left:6%;right:6%;display:flex;justify-content:space-between;font:italic 14px Georgia,serif;opacity:.75}
.finale-heading{position:absolute;top:15%;left:0;right:0;text-align:center;transform:translateY(calc((1 - var(--hands-copy,0))*24px))}
.finale-heading .eyebrow{font-size:10px;letter-spacing:.22em;color:#e4b787;margin-bottom:18px}
.finale-heading h2{font:clamp(42px,6.5vw,94px)/.92 Georgia,serif;letter-spacing:-.055em;font-weight:400;text-shadow:0 0 3px #ffcd9150,0 0 22px #ffac5c66,0 0 58px #f6813644,0 3px 14px #100000}
.finale-heading h2 em{font-size:1.16em;line-height:1.2;font-weight:400}
.finale-note{position:absolute;right:7%;bottom:26%;text-align:right;font:italic clamp(13px,1.5vw,19px)/1.6 Georgia,serif;color:#f6dfbf;text-shadow:0 0 16px #d68a4770,0 2px 14px #000}
.finale-foot{position:absolute;left:6%;right:6%;bottom:6%;padding-top:17px;border-top:1px solid #f0be8636;display:flex;justify-content:space-between;font:10px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.ethereal-light{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 19%,#ffd68a19,transparent 40%),radial-gradient(ellipse at 51% 56%,#ff9b421c,transparent 25%);mix-blend-mode:screen}
.ethereal-light:before{content:'';position:absolute;left:23%;top:5%;width:54%;height:65%;background:linear-gradient(#ffe2ab24,#ffa64b09 75%,transparent);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);filter:blur(35px);opacity:.8}
.ethereal-light:after{content:'';position:absolute;left:44%;top:13%;width:12%;height:1px;box-shadow:0 0 55px 18px #ffd49730;transform:rotate(-10deg)}
@media(max-width:600px){.paper-choices{left:4%;right:4%;bottom:22px}.paper-choices>div{flex-wrap:wrap}.paper-choices button{padding:10px 11px;font-size:10px}.paper-choices>p{font-size:15px;margin-bottom:10px}.finale-heading{top:19%}.finale-heading h2{font-size:13vw}.finale-heading .eyebrow{font-size:8px;letter-spacing:.15em}.finale-topline{font-size:12px;top:7%}.finale-note{bottom:21%;right:8%;font-size:14px}.finale-foot{font-size:8px;letter-spacing:.06em}.ethereal-light:before{left:12%;width:76%}}
@media(prefers-reduced-motion:reduce){.photo-finale{display:none}.paper-choices>p:after{display:none}}
/* A feathered pool of amber light, with no hard triangular boundary. */
.ethereal-light:before{background:radial-gradient(ellipse at 50% 16%,#ffe2ab2b, #ffa64b12 38%,transparent 72%);clip-path:none;filter:blur(28px);transform:rotate(-12deg);left:18%;width:64%;height:85%;top:1%}
@font-face{font-family:Amiri;src:url('assets/fonts/Amiri-Regular.woff2') format('woff2');font-display:swap;font-weight:400}
:root{--title-font:'Aref Ruqaa',serif;--body-font:Amiri,serif;--paper:#ecd9b5;--gold:#e2b675;font-family:var(--body-font);background:#0c0306;color-scheme:dark}

body{background:#0c0306}
/* Fine film grain covers the full page and is repeated inside the modal top layer. */
body:after,#paper-inspector:after{content:'';position:fixed;inset:-10%;z-index:100;pointer-events:none;opacity:.105;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.91' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h220v220H0z'/%3E%3C/svg%3E");background-size:220px 220px;animation:film-grain .45s steps(3) infinite}
@keyframes film-grain{0%{transform:translate(0,0)}33%{transform:translate(-2%,1%)}66%{transform:translate(1%,-2%)}100%{transform:translate(-1%,2%)}}


.site-header{direction:ltr;padding-right:calc(5vw + 110px);font-family:var(--body-font);font-size:17px}
.site-header>span{font-family:var(--body-font);font-size:14px;letter-spacing:0;text-transform:none}
.wordmark{color:#edd5af;text-shadow:0 0 16px #ffb35d55}
.red-sheet{background:#16050b;mask-image:none;-webkit-mask-image:none}
.red-sheet:before{background:none}
.backdrop-copy,.backdrop-script{font-family:var(--title-font)}
.scroll-cue,.paper-choices>p,.inspect-toolbar h2{font-family:var(--title-font);font-style:normal;font-size:20px}
.gesture-hint{font-family:var(--body-font);letter-spacing:0;font-size:17px}
.paper-choices>p:after{content:none}
.paper-choices small{display:block;font:15px var(--body-font);letter-spacing:0;margin-top:6px;opacity:.7}
.paper-choices button{font:17px var(--body-font);padding:8px 18px}
.finale-heading h2{font-family:var(--title-font);letter-spacing:0;font-size:clamp(52px,7vw,96px);line-height:1.45;font-weight:400}
.finale-heading h2 em{font-family:var(--title-font);font-style:normal;line-height:1.3}
.finale-heading .eyebrow,.finale-topline,.finale-foot,.finale-note{font-family:var(--body-font);letter-spacing:0;text-transform:none;font-style:normal}
.finale-heading .eyebrow{font-size:18px;margin-bottom:7px}
.finale-topline{font-size:19px}.finale-note{font-size:22px;line-height:1.7}.finale-foot{font-size:16px}

.closing{background:radial-gradient(ellipse at 50% 20%,#38110e,#130609 48%,#080406);padding:110px 7vw 95px;min-height:100svh;gap:12px;position:relative;font-family:var(--body-font)}
.closing:before{content:'';width:1px;height:70px;background:linear-gradient(transparent,#d8a85e);margin-bottom:24px;box-shadow:0 0 18px #fd9f4766}
.closing .bismillah{font:30px/1.9 var(--title-font);opacity:1;color:#f1d5a4;margin-bottom:25px;text-shadow:0 0 20px #ff9c4740}
.closing>p:not(.eyebrow){font:24px/1.8 var(--body-font);max-width:750px;opacity:.9}
.families{display:flex;gap:35px;align-items:center;justify-content:center;font-size:26px;margin:7px 0 12px}.families>span{color:#b79c71}
.closing h2{font:clamp(48px,7vw,90px)/1.7 var(--title-font);font-weight:400;margin:2px 0 14px;color:#f0d2a0;text-shadow:0 0 6px #ffd19333,0 0 30px #c96c3544}
.wedding-facts{font:25px/1.9 var(--body-font);padding:20px 35px;border-top:1px solid #d3a57035;border-bottom:1px solid #d3a57035;margin:12px 0 20px}
.wedding-facts .venue{color:#f4d9ac;margin-top:8px}.closing-blessing{font:24px/1.7 var(--body-font)}
.gift-details{margin-top:38px;padding-top:25px;border-top:1px solid #d3a57030;font:22px/1.8 var(--body-font);color:#cbb58f}.gift-details p[dir=ltr]{font-family:'Cormorant Garamond';font-size:20px;letter-spacing:.06em}.closing a{font:19px var(--body-font);margin-top:28px}
.inspect-toolbar button,.inspect-bottom button,.inspect-bottom p{font-family:var(--body-font);font-size:18px}.inspect-toolbar h2{font-size:27px}
@media(max-width:600px){.site-header{padding-right:calc(6vw + 93px)}.site-header a:last-child{font-size:17px}.scroll-cue{font-size:18px}.gesture-hint{font-size:14px}.paper-choices button{font-size:16px;padding:6px 13px}.paper-choices>p{font-size:19px}.paper-choices small{font-size:13px}.finale-heading{top:18%}.finale-heading h2{font-size:16vw;line-height:1.45}.finale-heading .eyebrow{font-size:15px}.finale-topline{font-size:16px;top:10%}.finale-note{font-size:19px;bottom:21%}.finale-foot{font-size:12px}.families{flex-direction:column;gap:0;font-size:24px}.closing>p:not(.eyebrow){font-size:21px}.closing .bismillah{font-size:26px}.closing h2{font-size:49px}.wedding-facts{font-size:22px;padding:20px 10px}.closing-blessing{font-size:21px}.inspect-toolbar h2{font-size:24px}.inspect-bottom p{font-size:17px}}
@media(prefers-reduced-motion:reduce){body:after,#paper-inspector:after{animation:none}}

/* Approved Diwani / Didot pairing. Natural Arabic forms, no repeated tatweel. */
@font-face{font-family:'Diwani Letter';src:url('assets/fonts/DiwaniLetter.woff2') format('woff2');font-display:swap}
:root{--title-font:'Diwani Letter',serif;--script-font:'Diwani Bent',serif}

[data-name-lockup]{position:relative;display:block;width:6em;height:2.3em;max-width:90vw;margin-inline:auto!important;font-family:var(--title-font);font-weight:400;font-style:normal!important;line-height:1!important;letter-spacing:0!important;direction:ltr}
[data-name-lockup] span{position:absolute;display:block;white-space:nowrap;font-weight:400;font-style:normal;font-size:1em!important;line-height:1;letter-spacing:0!important;left:48%;transform:translateX(-50%)}
[data-name-lockup] .name-groom{top:0}
[data-name-lockup] .name-bride{top:.64em;font-size:1.15em!important}
[data-name-lockup] .name-join{top:1.38em;left:70%;font-size:.54em!important;color:#d6b88b}


.backdrop-copy h1{font-size:clamp(48px,7vw,104px);margin-top:12px}
.closing h2[data-name-lockup]{font-size:clamp(45px,7vw,82px);margin-block:20px 6px}
.closing .bismillah{font-family:var(--script-font);font-size:27px;line-height:1.5}

.finale-heading h2{line-height:1.05}
.finale-heading h2 em{display:inline-block;line-height:1.05}




.scroll-cue,.paper-choices>p{font-family:var(--body-font)}
@media(max-width:600px){.closing h2[data-name-lockup]{font-size:12vw}.backdrop-copy h1{font-size:12vw}.finale-heading h2{font-size:15vw;line-height:1.12}.closing .bismillah{font-size:25px}}
html[lang=ar] .closing h2[data-name-lockup]{font-size:clamp(62px,10vw,108px);width:5em;height:2em}
html[lang=ar] [data-name-lockup] .name-join{left:72%}
.closing>p.bismillah{font:27px/1.6 var(--script-font)}

@media(max-width:600px){html[lang=ar] .closing h2[data-name-lockup]{font-size:16vw}.closing>p.bismillah{font-size:25px}}

/* Preparation is a real readiness boundary, including the first rendered frame. */
html.scene-loading,html.scene-loading body,html.scene-load-failed,html.scene-load-failed body{overflow:hidden;overscroll-behavior:none}
.scene-loader{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 38%,#2c1017 0,#13080d 48%,#080406 100%);padding:32px;text-align:center}
.scene-loader[hidden]{display:none}.loader-content{width:min(350px,100%);color:#ecd9b5}.loader-mark{width:82px;margin:0 auto 32px;position:relative}.loader-mark:before{content:'';position:absolute;width:106px;height:106px;border:1px solid #dcc09b20;border-top-color:#dcc09b;left:-12px;top:-22px;border-radius:50%;animation:loader-orbit 3s linear infinite}.loader-mark svg{width:80px;stroke:#d7b788;stroke-width:1;stroke-linejoin:round}.loader-kicker{font:22px Didot,Georgia,serif;letter-spacing:.16em;direction:ltr;margin:0 0 25px}.loader-kicker span{font-size:15px;color:#b99972}.loader-content h2{font:24px/1.6 var(--body-font);font-weight:400}.loader-content #loader-detail{font:17px/1.7 var(--body-font);min-height:3.4em;color:#bea88b;margin:9px 0 18px}.loader-content progress{appearance:none;display:block;width:120px;height:2px;border:0;margin:0 auto 28px;background:#dac69924;color:#dac699;direction:ltr}.loader-content progress::-webkit-progress-bar{background:#dac69924}.loader-content progress::-webkit-progress-value{background:#dac699;transition:width .25s}.loader-content progress::-moz-progress-bar{background:#dac699}.loader-content button{display:block;margin:18px auto 0;border:1px solid #d3b68b70;border-radius:30px;background:transparent;color:#e8cfac;padding:10px 24px;font:18px var(--body-font);min-height:44px}.loader-content button[hidden],.loader-content progress[hidden]{display:none}.loader-content .loader-read{border:0;padding:8px;font-size:16px;text-decoration:underline;text-underline-offset:5px;color:#bda78b}.scene-load-failed .loader-mark:before{animation:none;border-color:#dcc09b50}
@keyframes loader-orbit{to{transform:rotate(360deg)}}
.opening-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
/* Print artwork stays front-facing and is painted directly from its source canvas. */
#paper-inspector:after{display:none}body.inspect-open:after{display:none}
#inspect-stage{inset:82px 0 80px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;cursor:auto;padding:25px 5vw;display:flex;flex-direction:column;align-items:center}
#inspect-stage canvas.flat-card{display:block;width:min(100%,590px);height:auto;max-height:none;flex:none;aspect-ratio:var(--card-ratio);margin:auto;transform:none;filter:none;box-shadow:none}
#inspect-stage[data-paper=main] canvas{width:min(100%,1000px)}
#inspect-stage[data-paper=main]{justify-content:center}
.inspect-bottom{justify-content:center;text-align:center;pointer-events:none}.inspect-bottom p{max-width:100%;color:#d3c3a9;font-size:16px}
@media(max-width:600px){#inspect-stage{padding:18px 16px}#inspect-stage[data-paper=main]{justify-content:flex-start}#inspect-stage[data-paper=main] canvas{width:760px;max-width:none;align-self:flex-start;margin-block:auto}#inspect-stage[data-paper=main]{align-items:flex-start;overflow-x:auto;touch-action:pan-x pan-y pinch-zoom}.inspect-toolbar{top:20px}.inspect-bottom{bottom:20px;left:18px;right:18px}.inspect-bottom p{font-size:15px}.opening-actions{max-width:45%;text-align:end}}
@media(prefers-reduced-motion:reduce){.loader-mark:before{animation:none}.loader-content progress::-webkit-progress-value{transition:none}#paper-inspector[open] #inspect-stage{animation:none}.finale-heading{transform:none}}



.inspect-bottom{pointer-events:auto;gap:20px}.inspect-bottom button{flex:none;min-height:44px}
#inspect-stage canvas.flat-card{max-width:100%}
#inspect-stage[data-paper=main]{align-items:center;justify-content:flex-start;touch-action:pan-x pan-y pinch-zoom}
#inspect-stage[data-paper=main] canvas{width:min(100%,1000px);align-self:center}
#inspect-stage.zoomed{align-items:flex-start;overflow:auto}
#inspect-stage.zoomed canvas.flat-card{width:760px;max-width:none;align-self:flex-start;margin-block:0}
#inspect-stage.zoomed[data-paper=main] canvas{width:1100px}
@media(max-width:600px){#inspect-stage[data-paper=main] canvas{width:100%;align-self:center}.inspect-bottom{gap:12px}.inspect-bottom p{font-size:13px;text-align:start}.inspect-bottom button{font-size:16px;padding:8px 14px}#inspect-stage.zoomed[data-paper=main] canvas{width:800px;align-self:flex-start}}

#inspect-stage:not(.zoomed) canvas.flat-card{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;align-self:center;margin:auto;min-height:0}



/* October 16: supplied artwork, Arabic only and the Photoshop text composition. */
.emblem-art{display:block;width:100%;height:100%;background:#e2c598;mask:url('assets/artwork/emblem.svg') center/contain no-repeat;-webkit-mask:url('assets/artwork/emblem.svg') center/contain no-repeat}
.site-header{padding:24px 5vw;direction:ltr;align-items:flex-start}
.site-header .wordmark{width:66px;height:56px;border:0;padding:0;flex:none}
.site-header #details-link{margin-top:10px;font:19px Amiri,serif}
.loader-mark{width:94px;height:80px;margin:0 auto 38px}
.loader-mark:before{width:120px;height:120px;left:-13px;top:-20px}
.wedding-countdown{position:absolute;top:20%;left:5%;right:5%;text-align:center;color:#f3d9ad;text-shadow:0 2px 22px #000}
.wedding-countdown h2{font:clamp(26px,3vw,43px)/1.7 Amiri,serif;font-weight:400;margin:0 0 24px}
.countdown-units{display:flex;justify-content:center;gap:clamp(22px,5vw,70px);font-family:Amiri,serif}
.countdown-units>div{min-width:1.8em;display:flex;flex-direction:column;align-items:center}
.countdown-units strong{font-size:clamp(42px,6.2vw,82px);font-weight:400;line-height:1.2;font-variant-numeric:tabular-nums}
.countdown-units span{font-size:clamp(16px,1.8vw,23px);margin-top:10px}
.closing{display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at 50% 20%,#2f0c14,#130609 60%,#080406);padding:70px 20px 75px;text-align:center;gap:0}
.closing:before{display:none}
.psd-invitation{width:min(850px,100%);position:relative}
.psd-lettering{display:block;width:100%;height:auto;filter:brightness(0) saturate(100%) invert(89%) sepia(22%) saturate(492%) hue-rotate(346deg) brightness(92%) contrast(88%)}
.closing .text-enlarge{font:18px Amiri,serif;color:#ddc7a2;background:none;border:1px solid #d5b58b55;border-radius:30px;min-height:44px;padding:7px 22px;margin:22px 0 0}
.closing .location-link{display:flex;align-items:center;flex-direction:column;gap:14px;margin:64px 0 0;text-decoration:none;font:21px/1.6 Amiri,serif}
.location-link img{width:132px;height:132px;object-fit:contain;background:#ead9b8;padding:10px;border-radius:3px}
.location-link span{text-decoration:underline;text-underline-offset:5px}
.gift-details{margin:65px 0 0;padding:30px 0 0;border-top:1px solid #d3a57030;width:min(500px,100%);font:20px/1.8 Amiri,serif}
.gift-details h3{margin:0 0 15px;font:26px/1.6 Amiri,serif;font-weight:400}
.gift-details dl{margin:0}.gift-details dl>div{display:flex;justify-content:center;align-items:baseline;gap:16px;margin:6px 0}
.gift-details dt{font-family:Arial,sans-serif;font-size:14px;direction:ltr;min-width:48px;text-align:left}.gift-details dd{margin:0;color:#cbb58f;font-size:19px}
.closing .restart-invitation{margin-top:48px;font:18px Amiri,serif}
.scene-fallback .text-enlarge{display:none}
@media(max-width:600px){.site-header{padding:20px 6vw}.site-header .wordmark{width:52px;height:44px}.site-header #details-link{margin-top:5px;font-size:18px}.wedding-countdown{top:22%;left:4%;right:4%}.wedding-countdown h2{font-size:28px;margin-bottom:22px}.countdown-units{gap:20px}.countdown-units strong{font-size:42px}.countdown-units span{font-size:16px;margin-top:7px}.closing{padding:50px 8px 60px}.closing .text-enlarge{font-size:16px;margin-top:18px}.gift-details{width:calc(100% - 40px)}.gift-details dd{font-size:17px}.closing .location-link{margin-top:45px;font-size:20px}}

/* Append after the existing reader rules. Dimensions are set by the reader
   from the stage's available area, keeping image and QR hit target together. */
#inspect-stage{direction:ltr;touch-action:pan-x pan-y pinch-zoom}
#inspect-stage .flat-card-frame{position:relative;flex:none;max-width:none;margin:auto;align-self:center}
#inspect-stage.zoomed .flat-card-frame{margin:0;align-self:flex-start}
#inspect-stage .flat-card-frame canvas.flat-card{display:block;width:100%;height:100%;max-width:none;max-height:none;min-height:0;margin:0;aspect-ratio:auto;object-fit:fill;transform:none;filter:none;box-shadow:none}
#inspect-stage .card-location-link{position:absolute;display:block;min-width:44px;min-height:44px;transform:translate(-50%,-50%);border-radius:3px;cursor:pointer;touch-action:pan-x pan-y pinch-zoom}
#inspect-stage .card-location-link:focus-visible{outline:3px solid #fff1c9;outline-offset:4px;box-shadow:0 0 0 7px #49101e}
#inspect-stage .card-location-link:hover{outline:2px solid #fff1c999;outline-offset:3px}

#inspect-stage[data-paper=closing] .flat-card-frame{background:#f4e8d2}

.text-artwork-failed .psd-lettering{display:none}.text-artwork-failed .invitation-transcript{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;font:23px/2 Amiri,serif;padding:30px 12px}.text-artwork-failed h2{font:38px/1.7 Amiri,serif;margin:22px 0}.text-artwork-failed p{margin:12px 0}
@media(prefers-reduced-motion:reduce){#experience>.photo-finale{display:block;position:relative;height:350px;opacity:1;pointer-events:auto;background:linear-gradient(#08040666,#080406bb),url('assets/holding-hands.webp') center/cover}#experience>.photo-finale .wedding-countdown{top:50%;transform:translateY(-50%)}}

/* Preserve the supplied QR alpha; no opaque square or padding behind it. */
.location-link img{width:144px;height:144px;padding:0;background:none;border-radius:0;image-rendering:auto}
/* Western number groups flow left to right; Arabic labels retain their direction. */
.countdown-units{direction:ltr;gap:clamp(6px,1.8vw,24px);font-size:clamp(32px,6vw,76px)}
.countdown-units>div{min-width:1.35em}
.countdown-units strong,.countdown-units .countdown-separator{direction:ltr;unicode-bidi:isolate;font:400 1em/1.2 Georgia,serif;font-variant-numeric:tabular-nums}
.countdown-units .countdown-separator{margin:0;flex:none}
.countdown-units>div>span{direction:rtl;unicode-bidi:isolate}
.gift-details{width:min(560px,calc(100% - 28px))}
.gift-details dl>div.gift-account{display:flex;flex-direction:column;align-items:center;gap:8px;margin:26px 0;direction:ltr}
.gift-details dt{width:100%;min-width:0;text-align:center;font:14px/1.5 Arial,sans-serif}
.gift-details dd{display:flex;width:100%;min-width:0;justify-content:center;align-items:center;gap:12px;text-align:center;direction:ltr;font-family:Arial,sans-serif;font-size:20px}
.gift-account bdi{unicode-bidi:isolate;user-select:text;white-space:nowrap;font-family:Arial,sans-serif;letter-spacing:.025em}
.gift-details .iban-account dd{font-size:16px}
.copy-account{flex:none;font:16px Amiri,serif;border:1px solid #d5b58b55;border-radius:22px;background:transparent;color:#ddc7a2;min-width:44px;min-height:44px;padding:4px 9px;direction:rtl}
.iban-qr{display:block;width:180px;height:180px;margin:30px auto 0;object-fit:contain;background:none}
.copy-status{font:17px/1.6 Amiri,serif;min-height:1.6em;margin-top:16px}
@media(max-width:600px){.countdown-units{font-size:clamp(30px,8.5vw,44px)}.gift-details .iban-account dd{font-size:clamp(11px,3.05vw,16px)}.gift-details dd{gap:10px}}

.location-link img,.iban-qr{filter:brightness(0) saturate(100%) invert(89%) sepia(22%) saturate(492%) hue-rotate(346deg) brightness(92%) contrast(88%)}

/* Keep the requested loader free of preparation captions. Errors remain readable. */
#loader-detail[hidden]{display:none}.loader-content progress{margin-top:22px}
.reader-status{font:20px/1.8 Amiri,serif;color:#ecd9b5;text-align:center;max-width:560px;padding:32px;margin:auto}
