:root{
  --bg:#efe1d0;
  --paper:#f8f2e9;
  --paper-2:#f3eadb;
  --ink:#6e5333;
  --gold:#a88756;
  --gold-soft:#c6ae84;
  --line:#d2bf9f;
  --shadow:0 16px 40px rgba(127, 95, 54, .10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Amiri",serif;overflow:hidden;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
.hidden{display:none!important}
a{color:inherit}

.cover{position:fixed;inset:0;z-index:30;background:#efe6d7 url('assets/cover.jpeg') center/cover no-repeat;transition:opacity .9s ease,transform 1.2s cubic-bezier(.2,.8,.2,1);overflow:hidden}
.cover.opening{opacity:0;transform:scale(1.045);pointer-events:none}
.cover-hit{position:absolute;inset:0;border:0;background:transparent;cursor:pointer}
.seal-pulse{position:absolute;left:50%;top:39.2%;width:112px;height:112px;transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 0 0 0 rgba(163,125,72,.38);animation:pulse 2s infinite;pointer-events:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(163,125,72,.35)}70%{box-shadow:0 0 0 20px rgba(163,125,72,0)}100%{box-shadow:0 0 0 0 rgba(163,125,72,0)}}

.cover-birds,.hero-birds{position:absolute;inset:0;pointer-events:none}
.bird{position:absolute;width:36px;height:18px;opacity:.55;animation:fly 10s linear infinite}
.bird::before,.bird::after{content:"";position:absolute;top:8px;width:18px;height:8px;border-top:3px solid rgba(127,104,74,.45);border-radius:50%}
.bird::before{left:0;transform:rotate(18deg)}
.bird::after{right:0;transform:scaleX(-1) rotate(18deg)}
.bird-1{top:12%;left:14%;animation-duration:13s}.bird-2{top:22%;right:15%;animation-duration:15s;animation-delay:1s}.bird-3{top:48%;right:25%;animation-duration:12s;animation-delay:3s}.bird-4{top:63%;left:32%;animation-duration:14s;animation-delay:2s}
.bird-a{top:12%;right:14%;animation-duration:12s}.bird-b{top:29%;left:10%;animation-duration:16s;animation-delay:1.5s}.bird-c{top:50%;right:22%;animation-duration:14s;animation-delay:2.4s}
@keyframes fly{0%{transform:translateX(0) translateY(0) scale(.95)}25%{transform:translateX(20px) translateY(-8px) scale(1)}50%{transform:translateX(44px) translateY(5px) scale(.92)}75%{transform:translateX(68px) translateY(-6px) scale(.98)}100%{transform:translateX(92px) translateY(0) scale(.95)}}

.petals{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.petals span{position:absolute;top:-10%;width:12px;height:18px;background:radial-gradient(circle at 30% 30%, #f0c8a4 0, #efc39a 45%, #e8b98c 100%);border-radius:60% 40% 60% 40%;opacity:.75;animation:fall linear infinite}
.petals span:nth-child(1){left:8%;animation-duration:14s;animation-delay:-2s}
.petals span:nth-child(2){left:16%;animation-duration:17s;animation-delay:-6s}
.petals span:nth-child(3){left:28%;animation-duration:15s;animation-delay:-9s}
.petals span:nth-child(4){left:40%;animation-duration:18s;animation-delay:-3s}
.petals span:nth-child(5){left:52%;animation-duration:16s;animation-delay:-8s}
.petals span:nth-child(6){left:64%;animation-duration:20s;animation-delay:-5s}
.petals span:nth-child(7){left:72%;animation-duration:13s;animation-delay:-10s}
.petals span:nth-child(8){left:80%;animation-duration:18s;animation-delay:-4s}
.petals span:nth-child(9){left:88%;animation-duration:15s;animation-delay:-12s}
.petals span:nth-child(10){left:24%;animation-duration:19s;animation-delay:-1s}
.petals span:nth-child(11){left:58%;animation-duration:17s;animation-delay:-7s}
.petals span:nth-child(12){left:92%;animation-duration:16s;animation-delay:-11s}
@keyframes fall{0%{transform:translate3d(0,0,0) rotate(0deg)}100%{transform:translate3d(40px,120vh,0) rotate(320deg)}}

.site{max-width:860px;margin:0 auto;padding:0 14px 48px;opacity:0;transform:translateY(18px);transition:opacity .8s ease .2s,transform .8s ease .2s;position:relative;z-index:3}
.site.show{opacity:1;transform:none}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

.section-label{display:flex;align-items:center;justify-content:center;gap:18px;font:600 20px/1.2 "Cormorant Garamond",serif;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:18px;text-align:center}
.section-label::before,.section-label::after{content:"";width:84px;height:1px;background:var(--line)}

.hero{min-height:100svh;display:grid;place-items:center;position:relative;padding:84px 0 40px}
.frame-hero{position:relative;width:min(100%,700px);padding:84px 28px 74px;border:2px solid rgba(181,152,110,.55);border-radius:180px 180px 34px 34px;background:linear-gradient(180deg, rgba(252,248,242,.95), rgba(247,238,226,.93));box-shadow:var(--shadow);text-align:center;overflow:hidden}
.frame-hero::before{content:"";position:absolute;inset:14px;border:1px solid rgba(181,152,110,.40);border-radius:168px 168px 26px 26px}
.frame-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 78%, rgba(185,200,205,.22), transparent 28%), linear-gradient(180deg, rgba(255,255,255,.25), rgba(255,255,255,0));pointer-events:none}
.eyebrow{font:600 17px "Cormorant Garamond",serif;letter-spacing:.25em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:18px;position:relative;z-index:1}
.en-names{font:400 clamp(52px,8vw,92px)/.9 "Great Vibes",cursive;margin:0;color:#9a7b4e;position:relative;z-index:1}
.en-names span{font-family:"Cormorant Garamond",serif;font-size:.6em;display:inline-block;transform:translateY(-10px)}
.ar-names{font:700 clamp(38px,5vw,58px)/1.3 "Aref Ruqaa",serif;margin:8px 0 0;position:relative;z-index:1}
.ar-names span{font-family:"Cormorant Garamond",serif;margin:0 8px;color:var(--gold)}
.hero-date{font:500 26px "Cormorant Garamond",serif;letter-spacing:.08em;margin:18px 0;color:var(--gold);position:relative;z-index:1}
.hero-sub{margin:8px auto;max-width:540px;position:relative;z-index:1}.hero-sub.ar{font-size:26px}.hero-sub.en{font-size:23px;font-family:"Cormorant Garamond",serif}

.verse-card,.countdown-block,.save-date,.story,.families,.venue,.adults,.rsvp,.footer{margin:36px 0}
.verse-card,.countdown-block,.save-date,.story,.families,.venue,.adults,.rsvp{background:linear-gradient(180deg, rgba(250,245,237,.92), rgba(244,234,220,.94));border:1px solid rgba(181,152,110,.28);box-shadow:var(--shadow);border-radius:30px;padding:34px 18px;position:relative;overflow:hidden}
.verse-card::before,.save-date::before,.story::before,.families::before,.venue::before,.rsvp::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 10% 10%, rgba(255,255,255,.35), transparent 20%);pointer-events:none}
.verse-inner{max-width:680px;margin:0 auto;padding:24px 22px;border:10px double rgba(196,169,125,.55);background:rgba(255,250,244,.70)}
.bismillah{font:700 40px "Aref Ruqaa",serif;text-align:center;margin:0 0 18px}
.verse-ar{font-size:38px;line-height:1.9;text-align:center;margin:0 0 18px}
.verse-en{font:italic 700 24px/1.7 "Cormorant Garamond",serif;text-align:center;margin:0 0 10px}
.surah{font:500 18px/1.2 "Cormorant Garamond",serif;letter-spacing:.18em;text-align:center;text-transform:uppercase;color:var(--gold);margin:0}

.countdown-block{text-align:center;background:transparent;box-shadow:none;border:none;padding:4px 0 14px}
.countdown-line{display:flex;justify-content:center;align-items:flex-end;gap:10px;direction:ltr;flex-wrap:wrap;padding:4px 0 10px}
.countdown-line div{min-width:110px;text-align:center}
.countdown-line strong{display:block;font:500 clamp(48px,8vw,86px)/1 "Cormorant Garamond",serif;color:#9c7a48}
.countdown-line span{display:block;font:500 24px/1.2 "Cormorant Garamond",serif;color:#9c7a48}.countdown-line em{font:400 clamp(42px,7vw,66px)/1 "Cormorant Garamond",serif;color:#9c7a48;font-style:normal;padding-bottom:28px}

.calendar-card{max-width:640px;margin:0 auto;padding:26px;border-radius:28px;background:rgba(255,251,245,.78);border:1px solid rgba(181,152,110,.26)}
.calendar-month{text-align:center;font:600 42px/1 "Cormorant Garamond",serif;letter-spacing:.12em;text-transform:uppercase;color:#9a7b4e;margin-bottom:22px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;text-align:center;direction:ltr}
.calendar-grid.labels span{font:600 16px/1 "Cormorant Garamond",serif;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft)}
.calendar-grid.dates span{padding:10px 0;border-radius:15px;font:500 28px/1 "Cormorant Garamond",serif;color:#7f633e;min-height:50px;display:grid;place-items:center}
.calendar-grid .muted{opacity:0}
.day-highlight{border:3px solid #c5a061;color:#a07b46;background:rgba(246,239,225,.9)}
.event-meta{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.event-meta div{min-width:180px;text-align:center;padding:14px 18px;border:1px solid rgba(181,152,110,.26);border-radius:18px;background:rgba(255,251,245,.72)}
.event-meta small,.venue-meta small{display:block;font:600 16px/1 "Cormorant Garamond",serif;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:6px}.event-meta strong{font-size:28px}

.story{text-align:center;padding-inline:28px}.story h3,.families h3,.venue h3,.adults h3,.rsvp h3{font:700 46px/1.2 "Aref Ruqaa",serif;text-align:center;margin:0 0 14px}.story p{max-width:670px;margin:14px auto}.story-ar{font-size:30px;line-height:1.9}.story-en{font:italic 700 22px/1.7 "Cormorant Garamond",serif}.divider{width:170px;height:1px;background:linear-gradient(90deg, transparent, var(--gold-soft), transparent);margin:24px auto;position:relative}.divider::after{content:"✦";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--paper-2);padding:0 10px;color:var(--gold-soft)}

.families{text-align:center}.parents-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.parent-card{padding:26px 18px;background:rgba(255,251,245,.82);border:1px solid rgba(181,152,110,.26);border-radius:26px}.parent-card small{display:block;font-size:24px;color:var(--gold)}.parent-card b{display:block;font-size:40px;margin:8px 0}.parent-card span{display:block;font:500 20px "Cormorant Garamond",serif;color:var(--gold-soft)}.families-note{max-width:720px;margin:24px auto 0;font-size:28px;line-height:1.9}

.venue{text-align:center}.venue h3{font-family:"Cormorant Garamond",serif;font-size:44px;font-weight:600}.venue-ar{font-size:28px;margin:0 0 16px}.photo-frame{padding:10px;border-radius:26px;background:rgba(255,251,245,.85);border:1px solid rgba(181,152,110,.26);box-shadow:0 14px 30px rgba(120,94,60,.10)}.photo-frame img{width:100%;display:block;border-radius:18px}.thumbs{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}.thumbs img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:15px;border:1px solid rgba(181,152,110,.24)}.venue-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.venue-meta div{padding:14px 16px;border:1px solid rgba(181,152,110,.26);border-radius:18px;background:rgba(255,251,245,.72)}.venue-meta p{margin:0;font-size:22px}
.btn{display:inline-flex;justify-content:center;align-items:center;min-height:54px;padding:0 28px;border-radius:999px;border:1px solid #a88452;background:linear-gradient(#b9925e,#8d6b3f);color:white;text-decoration:none;box-shadow:0 8px 20px rgba(105,75,35,.18);margin-top:18px}

.adults{text-align:center;padding:36px 18px}.adults-badge{width:84px;height:84px;display:grid;place-items:center;margin:0 auto 12px;border-radius:50%;border:2px solid var(--gold);font:600 28px/1 "Cormorant Garamond",serif;color:var(--gold)}.adults p{font-size:28px;margin:6px 0}.adults small{font:500 22px/1.4 "Cormorant Garamond",serif;color:var(--gold-soft)}

.rsvp{text-align:center}.rsvp-sub{margin:6px auto;max-width:620px;font-size:27px}.rsvp-sub.en{font:italic 700 21px/1.6 "Cormorant Garamond",serif}.rsvp form{display:grid;gap:14px;max-width:560px;margin:22px auto 0;text-align:right}.rsvp label>span:first-child{display:block;margin-bottom:6px;font-size:22px}.rsvp input,.rsvp select{width:100%;padding:14px 16px;border:1px solid rgba(154,120,71,.35);border-radius:16px;background:rgba(255,255,255,.72);color:#684f31;outline:none}.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice label{position:relative}.choice input{position:absolute;opacity:0;pointer-events:none}.choice span{display:block;text-align:center;padding:14px;border:1px solid rgba(154,120,71,.35);border-radius:999px;background:#fffaf2}.choice input:checked+span{background:#a47d49;color:#fff;border-color:#a47d49}.submit{width:100%;border:0;cursor:pointer}.status{text-align:center;min-height:26px;font-size:20px}

.footer{text-align:center;padding:10px 0 30px}.footer-mark{font:400 60px/1 "Great Vibes",cursive;color:#9a7b4e}.footer p{margin:8px 0;font-size:24px}
.music-fab{position:fixed;right:18px;bottom:18px;width:78px;height:78px;border-radius:50%;border:0;background:#7f8b57;color:#fff;box-shadow:0 12px 28px rgba(74,87,45,.28);font-size:28px;z-index:20}
#bgMusic{position:fixed;left:-10000px;bottom:-10000px;width:1px;height:1px;opacity:.001;pointer-events:none}

@media (max-width:760px){
  .frame-hero{padding:74px 20px 64px;border-radius:140px 140px 28px 28px}
  .bismillah{font-size:34px}.verse-ar{font-size:28px}.verse-en{font-size:21px}
  .parents-grid,.venue-meta{grid-template-columns:1fr}
  .event-meta{flex-direction:column;align-items:center}
}
@media (max-width:560px){
  .site{padding:0 10px 36px}
  .section-label{font-size:18px;gap:10px}.section-label::before,.section-label::after{width:52px}
  .hero{padding:66px 0 30px}.en-names{font-size:68px}.ar-names{font-size:41px}.hero-date{font-size:24px}.hero-sub.ar{font-size:22px}.hero-sub.en{font-size:20px}
  .verse-inner{padding:18px 14px}.bismillah{font-size:30px}.verse-ar{font-size:25px;line-height:1.8}.verse-en{font-size:18px}
  .countdown-line{gap:4px}.countdown-line div{min-width:74px}.countdown-line strong{font-size:52px}.countdown-line span{font-size:18px}.countdown-line em{font-size:34px;padding-bottom:18px}
  .calendar-card{padding:18px 14px}.calendar-month{font-size:34px}.calendar-grid.dates span{font-size:24px;min-height:44px}
  .story h3,.families h3,.venue h3,.adults h3,.rsvp h3{font-size:38px}.story-ar,.families-note,.adults p,.rsvp-sub{font-size:23px}.story-en,.rsvp-sub.en{font-size:18px}
  .parent-card small{font-size:21px}.parent-card b{font-size:34px}.parent-card span,.adults small,.venue-meta p{font-size:18px}
  .rsvp form{max-width:none}.rsvp label>span:first-child{font-size:20px}
  .music-fab{width:74px;height:74px;right:16px;bottom:16px}
}

.section-label .slash{font-size:.7em;opacity:.55;letter-spacing:0}
.music-fab{opacity:0;transform:scale(.88);pointer-events:none;transition:opacity .35s ease,transform .35s ease}
.site.show ~ .music-fab{opacity:1;transform:scale(1);pointer-events:auto}
.status{font-weight:700}


/* V10 refinements */
.hero{min-height:auto;display:block;padding:18px 0 24px}
.hero-scene{position:relative;width:min(100%,720px);margin:0 auto;overflow:hidden;background:url('assets/hero-swan-fixed.jpg') center/cover no-repeat;aspect-ratio:707/1166;box-shadow:var(--shadow)}
.hero-scene::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.08) 24%, rgba(255,255,255,.22) 55%, rgba(255,255,255,.10));pointer-events:none}
.hero-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:19% 11% 26%;text-align:center}
.swan-names{margin:0;color:#a17c4a;font:400 clamp(54px,9vw,92px)/.9 "Great Vibes",cursive;text-shadow:0 1px 0 rgba(255,255,255,.55)}
.swan-names span{font-family:"Cormorant Garamond",serif;font-size:.58em;line-height:.7;display:inline-block;margin:.06em 0}
.swan-date{margin-top:18px;font:500 clamp(26px,3.8vw,42px)/1 "Cormorant Garamond",serif;color:#9e7847;letter-spacing:.05em}
.swan-ar{margin:18px 0 0;color:#87653d;font:700 clamp(24px,4vw,38px)/1.5 "Aref Ruqaa",serif;text-shadow:0 1px 0 rgba(255,255,255,.45)}
.swan-ar span{font-family:"Cormorant Garamond",serif;color:#a98456;margin:0 8px}

.verse-card{background:transparent;border:0;box-shadow:none;padding:10px 0 4px;margin:18px 0 26px}
.verse-card::before{display:none}
.verse-image-wrap{max-width:660px;margin:0 auto;border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.verse-reference{display:block;width:100%;height:auto}

.notice{background:linear-gradient(180deg, rgba(250,245,237,.92), rgba(244,234,220,.94));border:1px solid rgba(181,152,110,.28);box-shadow:var(--shadow);border-radius:30px;padding:28px 18px;position:relative;overflow:hidden;margin:36px 0;text-align:center}
.notice-inner{max-width:680px;margin:0 auto}
.notice-icon{font-size:40px;line-height:1;margin-bottom:8px}
.notice h3{font:700 42px/1.2 "Aref Ruqaa",serif;margin:0 0 12px}
.notice p{font-size:28px;line-height:1.8;max-width:650px;margin:0 auto 10px}
.notice small{display:block;font:italic 700 20px/1.7 "Cormorant Garamond",serif;color:var(--gold)}

@media (max-width:560px){
  .hero{padding:12px 0 20px}
  .hero-overlay{padding:20% 10% 26%}
  .swan-names{font-size:64px}
  .swan-date{font-size:21px;margin-top:14px}
  .swan-ar{font-size:24px;line-height:1.45;margin-top:14px}
  .notice h3{font-size:36px}
  .notice p{font-size:22px}
  .notice small{font-size:17px}
}

/* V11 hero correction */
.hero-scene{border-radius:0}
.hero-scene::before{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01))}
.hero-overlay{padding:20% 11% 28%;justify-content:center}
.swan-names{font-size:clamp(58px,10vw,96px);line-height:.82;color:#9b7547}
.swan-names span{font-size:.52em;margin:.12em 0 .08em}
.swan-date{font-size:clamp(24px,4vw,38px);margin-top:22px;letter-spacing:.04em}
.swan-ar{font-size:clamp(22px,3.7vw,34px);margin-top:20px;color:#7e603d}
@media(max-width:560px){
  .swan-names{font-size:62px}
  .swan-date{font-size:22px}
  .swan-ar{font-size:23px;margin-top:16px}
}

/* V12 final hero tuning */
.hero-overlay{padding:21% 11% 29%}
.swan-names{font-size:clamp(64px,10.4vw,102px);line-height:.80}
.swan-date{margin-top:18px}
.swan-ar{margin-top:18px}
@media(max-width:560px){.hero-overlay{padding:22% 10% 29%}.swan-names{font-size:66px}}

/* V13 scroll reveal restored */
.reveal{
  opacity:0;
  transform:translateY(42px) scale(.985);
  filter:blur(2px);
  transition:
    opacity .95s ease,
    transform .95s cubic-bezier(.2,.75,.2,1),
    filter .8s ease;
  will-change:opacity,transform;
}
.reveal.in{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:blur(0);
}
