:root{--paper:#fbf8f2;--ivory:#f3eee5;--beige:#e7ddce;--gold:#a58a59;--ink:#5d4b36;--muted:#857561;--line:#d7c7ab;--arabic:'Noto Sans Arabic',Tahoma,sans-serif;--serif:'Amiri',serif;--names:'Aref Ruqaa','Amiri',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:#e9e2d7;color:var(--ink);font-family:var(--arabic);font-size:14px;line-height:1.9;-webkit-font-smoothing:antialiased}body.sealed{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button{color:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:wait}.svg-library{position:absolute;width:0;height:0;overflow:hidden}svg{display:inline-block}p{margin:0}h1,h2{font-weight:400;margin:0}h2{font:400 clamp(35px,6vw,47px)/1.6 var(--serif);color:var(--ink)}.invitation{max-width:760px;margin:auto;background:var(--paper);box-shadow:0 0 85px #59402510;overflow:hidden}.masthead{position:relative;display:flex;justify-content:center;align-items:center;gap:22px;padding:25px 24px;border-bottom:1px solid #d7c7ab55;font:19px var(--serif);background:#f9f5ee}.masthead svg{width:13px;height:13px;color:var(--gold)}.paper-section{background:var(--paper) url('satin-paper.png') center/cover no-repeat;position:relative}.hero{min-height:820px;min-height:min(930px,calc(100svh - 70px));padding:62px 75px 38px;text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center;isolation:isolate}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#fbf8f244 35%,#fbf8f244 65%,transparent);z-index:-1}.hero-frame{position:absolute;inset:24px;border:1px solid #b9a68166;pointer-events:none;z-index:-1}.hero-frame:after{content:'';position:absolute;inset:6px;border:1px solid #b9a68135}.hero-verse{font:clamp(15px,2.3vw,20px)/2.1 var(--serif);color:#78664d;margin-bottom:26px}.overline{font:17px var(--serif);letter-spacing:.04em}.small-ornament{display:flex;align-items:center;justify-content:center;gap:16px;margin:25px auto;color:var(--gold);width:190px}.small-ornament span{height:1px;width:60px;background:linear-gradient(90deg,transparent,var(--line))}.small-ornament span:last-child{transform:rotate(180deg)}.small-ornament svg{width:12px;height:12px}.hero .small-ornament{margin:0 auto 29px}h1{font:400 clamp(73px,13vw,106px)/1.27 var(--names);display:flex;flex-direction:column;align-items:center;margin:13px 0 25px;color:#7b623e;text-shadow:0 1px 0 #fff}.name-join{font:34px/1 var(--serif);color:var(--gold);margin:1px 0 -2px}.hero-message{font:23px/1.7 var(--serif)}.hero-date{display:flex;align-items:center;justify-content:center;gap:17px;font-size:12px;margin:25px 0 24px}.date-line{height:22px;width:1px;background:var(--line)}.scroll-cue{display:flex;align-items:center;flex-direction:column;color:var(--muted);font-size:10px;gap:4px;letter-spacing:.03em}.down-arrow{font:25px var(--serif);animation:float-arrow 2.4s ease-in-out infinite}.section-pad{padding:80px 70px;text-align:center}.section-number{display:block;font-family:Georgia,serif;font-size:10px;letter-spacing:.27em;color:var(--gold);line-height:1.8;margin-bottom:13px}.muted{color:var(--muted);font-size:13px;line-height:2}.intro{margin:23px 0 16px}.families{font:25px/1.8 var(--serif)}.family-and{display:block;font:21px/1.4 var(--serif);color:var(--gold);margin:4px}.invite-paragraph{font:20px var(--serif);margin-top:25px}.couple-inline{font:42px/1.8 var(--names);margin:7px 0 15px}.couple-inline span{font:24px var(--serif);color:var(--gold);padding:0 10px}.invitation-copy .small-ornament{margin-bottom:0}.date-section{padding-top:68px;background:#f4efe6;border-block:1px solid #d7c7ab55}.date-section>p{margin-top:8px}.scratch-wrap{position:relative;max-width:450px;height:182px;margin:32px auto 13px;border:1px solid #c9b79580;overflow:hidden;background:#fbf8f2;box-shadow:inset 0 0 0 6px #f4efe6,inset 0 0 0 7px #c9b79533}.date-revealed{padding:24px 22px}.weekday{font:19px var(--serif);color:var(--gold)}.date-numbers{display:flex;justify-content:center;gap:21px;align-items:center;margin-top:10px}.date-numbers div{display:flex;flex-direction:column;min-width:64px}.date-numbers b{font:40px/1.25 var(--serif);font-weight:400}.date-numbers .month{font-size:29px;padding:6px 0}.date-numbers div span{font-size:9px;color:var(--muted)}.date-numbers i{font:25px var(--serif);color:var(--line)}#scratch{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .8s}.scratched #scratch{opacity:0;pointer-events:none}.text-button{display:block;background:none;border:0;font-size:10px;color:var(--muted);margin:0 auto 28px;padding:6px}.text-button span{color:var(--gold);padding:0 4px}.outline-button,.filled-button{border:1px solid var(--gold);background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:11px;padding:12px 22px;font-size:12px;min-height:49px;transition:background .25s,transform .25s}.outline-button:hover{background:#e4d9c740}.outline-button svg,.filled-button svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.35;fill:none}.filled-button{background:#8f7752;border-color:#8f7752;color:#fffaf0;min-width:235px}.filled-button:hover{background:#786241;transform:translateY(-2px)}.link-arrow{margin-right:20px}.countdown-section{position:relative;isolation:isolate;overflow:hidden}.countdown-section>p{margin-top:4px}.countdown{direction:rtl;display:flex;justify-content:center;align-items:center;gap:20px;margin-top:32px}.countdown div{min-width:68px;display:flex;flex-direction:column}.countdown b{font:48px/1.2 var(--serif);font-weight:400;color:#8b7048;font-variant-numeric:tabular-nums}.countdown span{font-size:10px;color:var(--muted);padding-top:9px}.countdown i{font:21px var(--serif);color:#cbbd9f;transform:translateY(-12px)}.countdown-flower{position:absolute;height:280px;width:130px;left:-28px;bottom:-42px;opacity:.14;color:var(--gold);transform:rotate(25deg);z-index:-1}.venue-section{padding-top:35px}.venue-card{max-width:450px;margin:28px auto 0;border:1px solid #c9b79590;outline:1px solid #c9b79540;outline-offset:7px;background:#f4eee350;padding:38px 25px 34px}.venue-pin{width:38px;height:38px;stroke:var(--gold);stroke-width:1;fill:none;margin-bottom:12px}.venue-name{font:41px/1.5 var(--serif)}.venue-english{font:11px Georgia,serif;letter-spacing:.35em;color:var(--gold);margin-top:5px}.venue-card .small-ornament{width:130px;margin:22px auto 18px}.venue-card>.muted{margin-bottom:24px}.map-note{font-size:10px;color:var(--muted);margin-top:24px}.closing{min-height:530px;padding:75px 60px;text-align:center;display:flex;align-items:center;justify-content:center}.closing:before{content:'';position:absolute;inset:0;background:#fbf8f222}.closing-content{position:relative}.closing-content>p:not(.closing-names){font:21px/2 var(--serif);color:var(--muted);margin-top:22px}.closing-names{font:51px/1.8 var(--names);color:#7c6443;margin-top:25px}.closing-names span{font:29px var(--serif);padding:0 8px}.closing-star{height:19px;width:19px;color:var(--gold);margin-top:8px}footer{border-top:1px solid #d7c7ab55;padding:25px 25px 28px;display:flex;flex-direction:column;align-items:center;gap:9px;background:#f3eee5}footer>span:first-child{font:9px/1.7 Georgia,serif;letter-spacing:.22em}.footer-date{font:10px Georgia,serif;letter-spacing:.19em;color:var(--muted)}
.envelope{position:fixed;inset:0;z-index:20;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#eee8dd;perspective:1200px;transition:opacity .7s 1s,visibility 0s 1.7s}.envelope-paper{position:absolute;inset:0;background:#f3eee5 url('satin-paper.png') center/cover no-repeat;transition:transform 1.4s cubic-bezier(.62,.04,.24,1),opacity 1.2s}.flap{position:absolute;inset:0;pointer-events:none;background:linear-gradient(145deg,#f8f4ed,#eae1d4);transition:transform 1.3s cubic-bezier(.62,.04,.24,1),opacity 1s}.flap-top{clip-path:polygon(3% 0,97% 0,50% 54%);background:linear-gradient(180deg,#f6f0e6cc,#ded2bf77);transform-origin:top;filter:drop-shadow(0 3px 3px #5b452830)}.flap-left{clip-path:polygon(0 0,50% 54%,0 100%);background:linear-gradient(90deg,#eee7da88,#ded1be44)}.flap-right{clip-path:polygon(100% 0,50% 54%,100% 100%);background:linear-gradient(-90deg,#eee7da88,#ded1be44)}.envelope-content{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;transform:translateY(15px);transition:opacity .45s,transform .9s}.envelope-kicker{color:#8d7754;margin-bottom:32px;font-size:24px}.seal{width:156px;height:156px;border:1px solid #c2ac8790;border-radius:48% 45% 50% 46%;background:linear-gradient(135deg,#fffdf4,#dfd1b8 52%,#f6eddc);box-shadow:3px 11px 19px #5e482e28,inset 2px 2px 3px #fff9ee,inset -2px -2px 5px #98826366;padding:12px;transition:transform .35s;position:relative}.seal:hover{transform:scale(1.04)}.seal:active{transform:scale(.98)}.seal-inner{display:flex;width:100%;height:100%;border:1px solid #b69f7890;border-radius:50%;box-shadow:inset 1px 2px 4px #a18c6a33,1px 1px 0 #fff9ea;align-items:center;justify-content:center;flex-direction:column}.seal-names{font:31px/1.2 var(--names);color:#80643b;text-shadow:0 1px 0 #fff3d3;display:flex;flex-direction:column}.seal-names span{font:18px/1 var(--serif)}.seal-star{position:absolute;bottom:18px;left:72px;width:8px;height:8px;color:#ad9367}.open-label{font:28px/1.8 var(--serif);margin-top:32px;color:#6f5d44}.open-hint{font-size:11px;color:#87755b;margin-top:7px;animation:soft-pulse 3s ease-in-out infinite}.envelope-date{font:12px Georgia,serif;letter-spacing:.25em;margin-top:35px;color:#9a835e}.cover-credit{position:absolute;bottom:max(27px,env(safe-area-inset-bottom));left:0;width:100%;text-align:center;font:8px Georgia,serif;letter-spacing:.22em;color:#8e7959}.opened .envelope{opacity:0;visibility:hidden;pointer-events:none}.opened .envelope-content{opacity:0;transform:translateY(15px) scale(.85)}.opened .flap-top{transform:rotateX(-170deg);opacity:0}.opened .flap-left{transform:translateX(-85%);opacity:0}.opened .flap-right{transform:translateX(85%);opacity:0}.opened .envelope-paper{transform:scale(1.1);opacity:0}.floating-controls{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:max(20px,calc((100vw - 760px)/2 + 18px));z-index:10;display:flex;flex-direction:column;gap:10px}.floating-controls[hidden]{display:none}.round-button{display:flex;align-items:center;justify-content:center;border-radius:50%;height:43px;width:43px;background:#fffdf6eb;border:1px solid #c8b79380;box-shadow:0 3px 12px #5d4b3610;position:relative;font:23px var(--serif);backdrop-filter:blur(8px)}.round-button svg{width:19px;height:19px;stroke:#9c8259;fill:none;stroke-width:1.3}.mute-slash{position:absolute;width:22px;height:1px;transform:rotate(-45deg);background:#9c8259;box-shadow:0 -1px 0 #fffdf6}.playing .mute-slash{display:none}#toast{position:fixed;bottom:28px;right:50%;transform:translate(50%,20px);max-width:calc(100vw - 45px);width:max-content;background:#64533e;color:#fff9ed;padding:11px 22px;font-size:12px;opacity:0;pointer-events:none;transition:.3s;z-index:30}#toast.visible{opacity:1;transform:translate(50%,0)}.reveal{opacity:1;transform:none}.motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .95s,transform .95s}.motion .reveal.visible{opacity:1;transform:none}
@keyframes float-arrow{50%{transform:translateY(6px)}}@keyframes soft-pulse{50%{opacity:.6}}@media(min-width:900px){.envelope{width:760px;left:calc((100vw - 760px)/2);right:auto;box-shadow:0 0 100px #5d4b3622}.envelope-paper{background-size:100% 100%}}
@media(max-width:600px){body{font-size:13px}.masthead{padding:20px;font-size:17px}.hero{padding:45px 38px 35px;min-height:760px;min-height:calc(100svh - 61px)}.hero-frame{inset:14px}.hero-verse{font-size:15px;line-height:2.1;margin-bottom:22px}.hero .small-ornament{margin-bottom:22px}.hero .overline{font-size:15px}h1{font-size:83px;margin:12px 0 23px}.hero-message{font-size:20px}.hero-date{font-size:11px;gap:12px;margin-top:22px}.section-pad{padding:65px 30px}h2{font-size:38px}.section-number{font-size:8px;letter-spacing:.23em}.families{font-size:24px}.muted{font-size:12px}.date-numbers{gap:11px}.date-numbers div{min-width:61px}.date-numbers b{font-size:36px}.date-numbers .month{font-size:27px}.date-revealed{padding:27px 12px}.scratch-wrap{height:175px}.countdown{gap:11px}.countdown div{min-width:50px}.countdown b{font-size:38px}.countdown i{font-size:18px}.venue-section{padding-top:18px}.venue-card{padding:32px 20px}.venue-name{font-size:38px}.closing{min-height:530px;padding:70px 38px}.closing-content>p:not(.closing-names){font-size:19px}.closing-names{font-size:46px}.floating-controls{left:13px;bottom:16px;gap:8px}.round-button{width:39px;height:39px}.envelope-content{transform:translateY(0)}.envelope-kicker{margin-bottom:29px;font-size:23px}.seal{width:145px;height:145px}.seal-star{left:66px;bottom:16px}.open-label{font-size:26px}.open-hint{font-size:10px}.cover-credit{font-size:7px}.hero-date{white-space:nowrap}.filled-button{min-width:220px}}
@media(max-height:740px){.hero{min-height:720px}.envelope-kicker{margin-bottom:20px}.open-label{margin-top:23px}.envelope-date{margin-top:24px}}
.paper-section{background-size:100% 100%}.hero-frame{display:none}.hero:before{background:linear-gradient(90deg,transparent,#fbf8f20a 35%,#fbf8f20a 65%,transparent)}.flap{opacity:.35}.flap-top{background:linear-gradient(180deg,#f6f0e640,#ded2bf10)}.flap-left,.flap-right{background:transparent}.envelope-kicker{font-size:21px;letter-spacing:.05em}.seal{background:linear-gradient(135deg,#fffcf3,#dfd1b8 52%,#f6eddc)}.closing:before{background:#fbf8f218}.envelope[hidden]{display:none}
.envelope-paper{background-size:100% 100%}
/* Selected original satin artwork, flowing with the invitation. */
body{isolation:isolate}.invitation{position:relative;background:transparent;box-shadow:none}.masthead,.paper-section,.date-section,.countdown-section,.invitation-copy,.venue-section,footer{background:transparent;border-color:transparent}.hero:before,.closing:before{display:none}.venue-card{background:transparent}.countdown-flower{display:none}.brand-name{font:42px/1.6 var(--names);color:#90734c;margin-bottom:22px;letter-spacing:0}.footer-brand{font:31px/1.6 var(--names)!important;letter-spacing:0!important;color:#90734c}.designer-credit{font:9px/1.7 Georgia,serif;letter-spacing:.22em}.section-pad{position:relative}.invitation-copy:after,.date-section:after,.countdown-section:after{content:'';position:absolute;bottom:0;left:38%;right:38%;height:1px;background:linear-gradient(90deg,transparent,#bda57a80,transparent)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion .reveal{opacity:1;transform:none}.opened .envelope{display:none}}



/* Reuse the exact approved artwork; mirrored edges meet without a hard seam. */
.invitation{isolation:isolate;background:#f4eee4}
.scrolling-satin-art{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none}
.satin-panel{position:relative;width:100%;mask-image:linear-gradient(to bottom,transparent,#000 120px)}
.satin-panel:before{content:'';position:absolute;inset:0;background:url('satin-paper.png') center/100% 100% no-repeat}
.satin-panel:first-child{mask-image:none}
.satin-panel+.satin-panel{margin-top:-120px}
.satin-panel:nth-child(even):before{transform:scaleY(-1)}
.reveal,.motion .reveal{opacity:1;transform:none;transition:none}
