:root{
  --ivory:#f4ecdf;--paper:#fffaf0;--paper-2:#f7eedf;--gold:#b69152;--gold-2:#8d6a34;
  --burgundy:#6f2029;--ink:#493923;--muted:#7e6a4a;--line:rgba(141,106,52,.32);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:'Cairo',sans-serif;overflow-x:hidden}
button,a{font:inherit}.grain{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}
.sparkles{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}.spark{position:absolute;width:5px;height:5px;border-radius:50%;background:rgba(182,145,82,.45);animation:float 12s linear infinite}.spark:nth-child(3n){width:8px;height:8px;opacity:.35}.spark:nth-child(4n){border-radius:60% 0 60% 0;transform:rotate(45deg)}
@keyframes float{from{transform:translateY(105vh) rotate(0);opacity:0}20%{opacity:.6}to{transform:translateY(-12vh) rotate(180deg);opacity:0}}
.sound-btn{position:fixed;top:18px;left:18px;z-index:60;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:rgba(255,250,240,.82);backdrop-filter:blur(12px);color:var(--gold-2);box-shadow:0 8px 25px rgba(78,55,25,.12);cursor:pointer;opacity:0;pointer-events:none;transition:.3s}.sound-btn.show{opacity:1;pointer-events:auto}.sound-btn.muted{opacity:.55}
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 18px 38px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 0,rgba(255,255,255,.9),transparent 42%),linear-gradient(160deg,#f9f3e9,#eadbc1)}
.hero:before{content:"";position:absolute;inset:20px;border:1px solid rgba(182,145,82,.28);pointer-events:none}.hero:after{content:"✦";position:absolute;bottom:28px;color:var(--gold);font-size:12px}
.intro-mark{font-family:'Aref Ruqaa',serif;font-size:18px;color:var(--gold-2);letter-spacing:2px;margin-bottom:2px;animation:intro .65s ease both}.invited{font-family:'Great Vibes',cursive;font-size:32px;color:var(--gold-2);margin:0 0 10px;animation:intro .8s .08s ease both}
@keyframes intro{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.envelope{width:min(390px,88vw);aspect-ratio:1.45;position:relative;border:0;background:transparent;padding:0;cursor:pointer;perspective:1200px;animation:arrive 1s .15s cubic-bezier(.2,.8,.2,1) both}.envelope>*{position:absolute;display:block}.envelope-shadow{left:10%;right:10%;bottom:-11%;height:18%;background:radial-gradient(ellipse,rgba(74,47,20,.3),transparent 72%);filter:blur(11px)}
@keyframes arrive{from{opacity:0;transform:translateY(35px) scale(.95)}to{opacity:1;transform:none}}
.envelope-back{inset:19% 0 0;border-radius:10px;background:linear-gradient(145deg,#f2e5c7,#dec694);box-shadow:0 24px 45px rgba(88,59,25,.25),inset 0 0 0 1px rgba(151,111,52,.3)}
.letter{left:12%;right:12%;top:5%;height:72%;z-index:2;background:linear-gradient(180deg,#fffdf8,#f8eedc);border-radius:5px;box-shadow:0 16px 30px rgba(78,53,20,.18);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform 1.55s cubic-bezier(.16,1,.3,1),filter 1s}.letter-frame{inset:7px;border:1px solid var(--gold);pointer-events:none}.letter-small{font-size:10px;letter-spacing:4px;color:var(--gold-2)}.letter-names{font-family:'Aref Ruqaa',serif;font-size:clamp(25px,7vw,38px);margin:8px 0 3px}.letter-names b{color:var(--gold);font-family:Georgia,serif}.letter-date{font-size:11px;letter-spacing:4px;color:var(--muted)}
.envelope-flap{left:0;right:0;top:18%;height:47%;z-index:4;clip-path:polygon(0 0,50% 100%,100% 0);transform-origin:top;background:linear-gradient(160deg,#f5e9cd,#dec38b);filter:drop-shadow(0 5px 4px rgba(76,49,18,.08));transition:transform 1.1s cubic-bezier(.22,.8,.2,1)}
.envelope-front{inset:19% 0 0;z-index:3;border-radius:10px;clip-path:polygon(0 0,50% 52%,100% 0,100% 100%,0 100%);background:linear-gradient(165deg,#efe0bd,#dabe82);box-shadow:inset 0 0 0 1px rgba(151,111,52,.25)}
.envelope-front:after{content:"";position:absolute;inset:0;background:linear-gradient(40deg,transparent 48%,rgba(153,112,50,.28) 49%,transparent 50%),linear-gradient(-40deg,transparent 48%,rgba(153,112,50,.28) 49%,transparent 50%)}
.wax-seal{z-index:5;left:50%;top:58%;width:72px;height:72px;transform:translate(-50%,-50%);border-radius:49% 51% 47% 53%/52% 46% 54% 48%;background:radial-gradient(circle at 30% 22%,#a94a50,#6f2029 52%,#3d0e15);box-shadow:0 9px 18px rgba(64,13,20,.38),inset 0 2px 4px rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;gap:2px;color:#dfc27d;font-family:'Aref Ruqaa',serif;transition:.55s}.wax-seal small{font-family:Georgia,serif;font-size:11px}.wax-seal:after{content:"";position:absolute;inset:8px;border:1px solid rgba(224,194,125,.48);border-radius:50%}
.envelope.open .envelope-flap{transform:rotateX(180deg);z-index:1}.envelope.open .wax-seal{transform:translate(-50%,-50%) scale(.15) rotate(25deg);opacity:0}.envelope.open .letter{transform:translateY(-72%) rotate(-1deg);filter:drop-shadow(0 23px 20px rgba(78,53,20,.2))}.envelope.complete{pointer-events:none}
.open-hint{margin-top:18px;border:0;background:transparent;color:var(--muted);font-size:13px;cursor:pointer;animation:pulse 1.8s ease-in-out infinite}.open-hint:after{content:"";display:block;width:44px;height:1px;background:var(--gold);margin:7px auto 0;transform-origin:center;animation:linePulse 1.8s infinite}.open-hint.hide{opacity:0;pointer-events:none}.scroll-cue{position:absolute;bottom:22px;color:var(--gold-2);font-size:24px;opacity:0}
@keyframes pulse{50%{opacity:.55}}@keyframes linePulse{50%{transform:scaleX(.55)}}
.invitation{position:relative;z-index:2;background:var(--paper-2)}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,56px);border-bottom:1px solid var(--line);background:rgba(255,250,240,.8);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.topbar-brand{font-family:'Aref Ruqaa',serif;font-size:20px}.topbar-date{font-size:12px;color:var(--muted)}.topbar-dot{color:var(--gold)}
.panel{max-width:980px;margin:auto;padding:clamp(72px,10vw,120px) 22px;text-align:center}.ceremony{position:relative}.ceremony:before,.ceremony:after{content:"";position:absolute;width:80px;height:80px;border-color:var(--gold);opacity:.35}.ceremony:before{top:38px;right:18px;border-top:1px solid;border-right:1px solid}.ceremony:after{bottom:38px;left:18px;border-bottom:1px solid;border-left:1px solid}.ornament{color:var(--gold);margin:24px}.ornament-top{margin-top:0}.bismillah{font-family:'Amiri',serif;font-size:18px;color:var(--gold-2)}.verse{font-family:'Amiri',serif;font-size:clamp(17px,2.3vw,23px);line-height:2.1;margin:28px auto 8px;max-width:760px;font-weight:400}.verse-ref{font-size:12px;color:var(--muted)}
.name-lockup{direction:rtl;display:flex;align-items:center;justify-content:center;gap:clamp(18px,5vw,58px);margin:48px 0 16px}.name{font-family:'Aref Ruqaa',serif;font-size:clamp(44px,9vw,78px)}.ampersand{font-family:'Great Vibes',cursive;font-size:clamp(42px,8vw,70px);color:var(--gold);position:relative}.ampersand:before,.ampersand:after{content:"";position:absolute;top:54%;width:34px;height:1px;background:var(--gold);opacity:.45}.ampersand:before{right:calc(100% + 12px)}.ampersand:after{left:calc(100% + 12px)}.tagline{color:var(--muted);font-size:14px}
.details{max-width:1100px}.eyebrow{letter-spacing:4px;color:var(--gold-2);font-size:11px;margin:0 0 8px}.details h2,.countdown-section h2,.venue h2{font-family:'Aref Ruqaa',serif;font-size:clamp(30px,5vw,48px);font-weight:400;margin:0 0 42px}.details-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.detail-card{padding:34px 16px 30px;background:rgba(255,253,247,.72);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 35px rgba(84,58,24,.07);position:relative;overflow:hidden}.detail-card:before{content:"";position:absolute;inset:6px;border:1px solid rgba(182,145,82,.16);border-radius:9px}.detail-icon{font-size:23px;color:var(--gold)}.detail-card h3{font-size:15px;font-weight:500;margin:13px 0 10px}.detail-card p{font-size:13px;color:var(--muted);margin:0 0 4px}.detail-card strong{font-family:'Amiri',serif;font-size:18px;font-weight:700}
.countdown-section{padding:92px 22px 108px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(255,255,255,.08),transparent 42%),linear-gradient(145deg,#3e3326,#6e5532);color:#fffaf0}.eyebrow.light{color:#d7ba7d}.countdown-section h2{font-size:clamp(26px,4vw,40px);margin-bottom:46px}.countdown-grid{display:grid;grid-template-columns:repeat(2,150px);justify-content:center;gap:24px}.countdown-item{width:150px;height:150px;border-radius:50%;background:conic-gradient(#d5b36d calc(var(--p)*1%),rgba(255,255,255,.13) 0);padding:3px;box-shadow:0 0 0 1px rgba(213,179,109,.22),0 18px 35px rgba(0,0,0,.23)}.ring{height:100%;border-radius:50%;background:radial-gradient(circle,#554329,#342a20);border:1px solid rgba(238,211,151,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.ring:after{content:"";position:absolute;inset:9px;border:1px solid rgba(213,179,109,.28);border-radius:50%}.ring span{font-size:38px;font-weight:600;font-variant-numeric:tabular-nums}.ring small{font-size:12px;color:#d7c398;margin-top:2px}
.venue{max-width:1100px;padding:100px 22px;display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;align-items:center}.venue-copy{text-align:right}.venue-copy h2{margin:0 0 14px;letter-spacing:3px}.venue-address{color:var(--muted);margin-bottom:26px}.location-btn{display:inline-flex;text-decoration:none;color:var(--gold-2);border:1px solid var(--gold);padding:11px 22px;border-radius:999px;transition:.3s}.location-btn:hover{background:var(--gold-2);color:white}.venue-art{border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 24px 55px rgba(67,43,18,.2);background:#34324e}.venue-art svg{width:100%;height:auto;display:block}
.closing{text-align:center;padding:90px 22px 110px;background:#f0e3ce}.closing p{font-family:'Amiri',serif;font-size:20px}.closing-names{font-family:'Aref Ruqaa',serif;font-size:42px;margin:15px}.closing-names span{color:var(--gold)}.closing small{color:var(--muted)}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s ease}.reveal.in{opacity:1;transform:none}
@media(max-width:760px){.hero:before{inset:10px}.envelope{width:min(355px,94vw)}.details-grid{grid-template-columns:repeat(2,1fr)}.venue{grid-template-columns:1fr}.venue-copy{text-align:center}.venue-art{order:-1}.topbar{height:62px}.topbar-date{display:none}.countdown-grid{grid-template-columns:repeat(2,132px);gap:18px}.countdown-item{width:132px;height:132px}.name-lockup{gap:20px}.ampersand:before,.ampersand:after{display:none}}
@media(max-width:430px){.details-grid{grid-template-columns:1fr 1fr;gap:10px}.detail-card{padding:27px 8px 24px}.countdown-grid{grid-template-columns:repeat(2,122px)}.countdown-item{width:122px;height:122px}.ring span{font-size:32px}.name-lockup{gap:12px}.name{font-size:44px}.ampersand{font-size:44px}.letter{left:11%;right:11%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
