@font-face{font-family:Amiri;src:url(/assets/fonts/amiri.ttf) format("truetype");font-display:swap}

.bismillah{font-family:"Amiri","Traditional Arabic","Noto Naskh Arabic",serif;font-size:clamp(1.35rem,4.4vw,2.25rem);line-height:1.9;color:#65451f;margin:0 auto 1rem;text-shadow:0 1px 9px #fff}
.sample-note{position:absolute;top:16px;left:10%;right:10%;text-align:center;font:10px/1.6 sans-serif;letter-spacing:1px;color:#695642;z-index:8}
.quran-section{text-align:center;padding:90px 24px;background:#fcf7ee;color:#755938}.quran-arabic{font-family:"Amiri","Traditional Arabic",serif;font-size:clamp(1.7rem,5vw,2.8rem);line-height:2.1;margin:22px 0}.eyebrow{font:10px/1.7 sans-serif;letter-spacing:3px}.quran-translation{font-family:"Cormorant Garamond",serif;font-size:23px;font-style:italic;line-height:1.5}.quran-section a{display:inline-block;font-size:12px;letter-spacing:1px;margin-top:20px;color:#927449}
.invite__frame{border:1px solid #c5a065;border-radius:48% 48% 8px 8px / 20% 20% 8px 8px;background:radial-gradient(ellipse at top,#fff9eb,#fffaf2 65%,#f3e4ca);outline:1px solid #cdb17a;outline-offset:-12px;box-shadow:inset 0 0 0 22px #fff7e5,inset 0 0 0 23px #d1b57f;position:relative}.invite__frame:before{content:'☾';position:absolute;top:8%;width:100%;text-align:center;color:#b79250;font-size:64px}.invite__text{inset:25% 0 10%;padding:0 15%}.crescent{display:block;font-size:23px;color:#b79250;line-height:1.4;margin:10px auto}
.music-toggle{display:none!important}.invite__name{font-size:clamp(2rem,12cqi,3.8rem)}.reply__form .demo-notice{font-size:13px;line-height:1.6;color:#765f49}.quran-section[data-reveal]{transition:opacity 1s,transform 1s}
/* A formal reply card, with larger type and clear choices. */
.band--rsvp{background:radial-gradient(ellipse at 12% 15%,#efdae0a6,transparent 45%),radial-gradient(ellipse at 94% 90%,#dfc38a55,transparent 48%),#fcf6eb;padding-top:90px;padding-bottom:100px}
.band--rsvp .wrap--slim{max-width:740px}.band--rsvp .head__title{font-weight:600;font-size:clamp(2.4rem,7vw,3.4rem);color:#5b3b31}.band--rsvp .head__note{font-size:17px;color:#765b4a}
.reply.plate{position:relative;background:linear-gradient(145deg,#fffdf8,#fff6e9);border:1.5px solid #c3a16b;border-radius:28px;padding:clamp(25px,5.2vw,48px);box-shadow:0 24px 65px #7953311a,0 4px 16px #7953310a;outline:1px solid #d9bf9780;outline-offset:7px;overflow:hidden}
.reply-intro{text-align:center;padding:0 0 27px;margin-bottom:27px;border-bottom:1px solid #d9bf9770}.reply-intro__seal{display:grid;place-items:center;width:52px;height:52px;border:1px solid #c9a263;border-radius:50%;margin:0 auto 14px;color:#9b743a;font-size:27px;background:#f7ecd8}.reply-intro h3{font-family:var(--font-display);font-size:27px;color:#5b3b31;margin-bottom:8px}.reply-intro p{font-size:15px;color:#826654;line-height:1.6}.reply__form{gap:23px}.reply .field{gap:10px}.reply .field label{font-family:var(--font-sans);font-size:14px;font-weight:800;letter-spacing:.045em;color:#624633;text-transform:uppercase}.reply .field input,.reply .field textarea{border:1.5px solid #d7c6b0;border-radius:12px;min-height:57px;padding:15px 17px;background:#fffdf9;font-family:var(--font-sans);font-weight:600;font-size:17px;color:#513c2c;box-shadow:inset 0 2px 5px #6e4a2a05;transition:border-color .2s,box-shadow .2s}.reply .field input::placeholder,.reply .field textarea::placeholder{font-weight:400;color:#9a8876;font-size:16px}.reply .field input:focus-visible,.reply .field textarea:focus-visible{outline:none;border-color:#ab8147;box-shadow:0 0 0 4px #c5a26525}.reply .field textarea{min-height:120px}.reply .choice-pair{gap:12px}.reply .choice{min-height:62px;padding:14px 9px;border:1.5px solid #d7c6b0;border-radius:12px;background:#fffdf9;font-weight:700;font-size:16px;color:#765a45;letter-spacing:0;text-transform:none}.reply .choice[aria-pressed="true"]{background:#efe3cc;border:2px solid #ad8245;color:#634322;box-shadow:0 4px 12px #a2814520}.reply .choice[aria-pressed="true"]:before{content:'✓';display:inline-block;margin-right:8px;font-weight:800}.reply .reply__send{width:100%;min-height:61px;border:1px solid #96713d;border-radius:13px;background:linear-gradient(110deg,#876030,#b38b4f 55%,#926b36);color:#fffaf0;box-shadow:0 8px 20px #8f692d2b;font-family:var(--font-sans);font-size:16px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-top:5px}.reply__send:hover{filter:brightness(1.08)}.reply__send:focus-visible,.reply .choice:focus-visible{outline:3px solid #b68a4d;outline-offset:4px}.reply-private{text-align:center;font-size:12px;color:#856d57;line-height:1.6;margin-top:18px}.reply .reply__thanks{padding:20px 0}.reply .reply__note{font-size:17px;font-weight:500}
@media(max-width:480px){.reply.plate{border-radius:22px}.reply-intro h3{font-size:23px}.reply .choice{font-size:14px}.reply .field label{font-size:12px}.band--rsvp .wrap{width:88%}}

.first-music-button{position:fixed;right:18px;bottom:20px;z-index:45;display:grid;place-items:center;width:50px;height:50px;border-radius:50%;border:1px solid #b69861;background:#fffbefed;color:#96703c;box-shadow:0 4px 18px #7c582122;font-size:23px;cursor:pointer;backdrop-filter:blur(8px)}.first-music-button .music-pause{display:none}.first-music-button.playing .music-play{display:none}.first-music-button.playing .music-pause{display:block}.first-music-button:focus-visible{outline:3px solid #bb9459;outline-offset:4px}

/* Illuminated garden invitation. All ornament motion respects reduced motion. */
.invite{padding-top:5rem;padding-bottom:5rem}
.invite__card{width:min(30rem,94vw);isolation:isolate}
.invite__frame{aspect-ratio: .51;border:1px solid #b79759;border-image:none;border-radius:48% 48% 14px 14px / 21% 21% 14px 14px;background:radial-gradient(ellipse at 50% 15%,#fff2ce99,transparent 40%),radial-gradient(ellipse at 0 80%,#e6c6bd55,transparent 48%),linear-gradient(145deg,#fffdf4,#faf1df);outline-offset:-10px;box-shadow:inset 0 0 0 17px #fdf5e7,inset 0 0 0 18px #ceaf73,0 22px 60px #8e673c22;overflow:hidden}
.invite__frame:before{content:'';inset:25px;top:25px;width:auto;border:1px dotted #c8a562;border-radius:48% 48% 0 0 / 20% 20% 0 0;background:repeating-conic-gradient(from 45deg,#c4a06107 0 25%,transparent 0 50%) 0 0/24px 24px;opacity:.7}
.invite__frame:after{content:'';position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 45%,#fff8da70 50%,transparent 55%);animation:card-gleam 9s ease-in-out infinite;pointer-events:none}
.celestial{position:absolute;top:6cqi;left:27%;width:46%;filter:drop-shadow(0 4px 9px #c3984250);animation:moon-float 6s ease-in-out infinite;pointer-events:none}
.celestial svg{display:block;width:100%}.moon-halo{transform-origin:120px 112px;animation:halo-turn 70s linear infinite}.moon-star{animation:star-glow 3s ease-in-out infinite}
.invite__text{inset:51cqi 0 9cqi;padding:0 11%;justify-content:space-evenly;gap:1.1cqi}
.invite__arabic{font-family:Amiri,serif;font-size:5.1cqi;line-height:1.8;color:#956e36}
.invite__overline{font-size:4.1cqi;margin:0;color:#a76470}.invite__kicker{font-size:3.8cqi;line-height:1.5}
.invite__name{font-size:15cqi;font-weight:500;line-height:1.05;color:#714b3e;text-shadow:0 2px 0 #fff5df}
.invite__family{font-size:3.8cqi;color:#8c7862}.invite__amp{font-size:8cqi;margin:2.2cqi 0;color:#b58b42}
.invite-divider{display:flex;align-items:center;gap:3cqi;width:64%;color:#bb914d;font-size:4cqi;line-height:1.1;margin:1.7cqi auto}.invite-divider:before,.invite-divider:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#b78a45)}.invite-divider:after{transform:rotate(180deg)}
.invite__date{font-size:4.3cqi;letter-spacing:.09em}.invite__time{font-size:3.6cqi;margin-top:1.4cqi}.invite__venue{font-size:3.8cqi;line-height:1.45;margin:2cqi 0}.invite__meta .map-link{margin-top:2cqi;padding:2.4cqi 4.5cqi;border:1px solid #c5a268;box-shadow:0 4px 12px #9a6b2a26;background:linear-gradient(115deg,#a87b35,#c79c51,#a57b39)}
.invite-flower{position:absolute;z-index:3;width:36%;pointer-events:none;filter:saturate(.65);transform-origin:top center;animation:flower-sway 7s ease-in-out infinite}.invite-flower--left{top:19%;left:-9%;transform:rotate(-18deg)}.invite-flower--right{bottom:-2%;right:-9%;transform:rotate(165deg);animation-name:flower-sway-right}
.invite-dust{position:absolute;inset:0;pointer-events:none;color:#bf974f}.invite-dust i{position:absolute;font-style:normal;font-size:13px;animation:star-glow 3s ease-in-out infinite}.invite-dust i:nth-child(1){top:32%;left:13%}.invite-dust i:nth-child(2){top:45%;right:12%;animation-delay:1s}.invite-dust i:nth-child(3){top:66%;left:10%;animation-delay:2s}.invite-dust i:nth-child(4){top:24%;right:18%;animation-delay:.5s}.invite-dust i:nth-child(5){bottom:13%;right:12%;animation-delay:1.5s}.invite-dust i:nth-child(6){top:9%;left:22%;animation-delay:2.5s}
@keyframes moon-float{50%{transform:translateY(-7px) rotate(2deg)}}@keyframes halo-turn{to{transform:rotate(360deg)}}@keyframes star-glow{0%,100%{opacity:.35;filter:drop-shadow(0 0 0 #d7b46a)}50%{opacity:1;filter:drop-shadow(0 0 5px #d7b46a)}}@keyframes card-gleam{0%,65%{transform:translateX(-60%)}100%{transform:translateX(60%)}}@keyframes flower-sway{50%{transform:rotate(-14deg)}}@keyframes flower-sway-right{50%{transform:rotate(169deg)}}
@media(prefers-reduced-motion:reduce){.invite__card *,.invite__frame:after{animation:none!important}.invite__card.is-in .invite__text>*{opacity:1}}
.invite__meta .map-link{color:#fffaf0}.invite-flower--right{width:29%;right:-8%;bottom:-1%}
