@font-face{font-family:DisplayAr;src:url(/fonts/display-ar.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:DisplayAr;src:url(/fonts/display-ar-bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Tajawal;src:url(/fonts/Tajawal-Regular.woff2)format("woff2");font-display:swap}@font-face{font-family:Pinyon;src:url(/fonts/PinyonScript-Regular.woff2)format("woff2");font-display:swap}@font-face{font-family:Cormorant;src:url(/fonts/CormorantGaramond-Regular.woff2)format("woff2");font-display:swap}:root{--paper:#fbf7ec;--paper-deep:#f3ecda;--ink:#40302a;--muted:#6b5b45;--gold:#b08d3e;--gold-soft:#d7bd7d;--gold-deep:#8a6a22;--rose:#9c3950;--display-ar:"DisplayAr", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;font-variant-numeric:lining-nums;font-family:Cormorant,Georgia,serif}*{box-sizing:border-box}body{background:var(--paper-deep);min-width:320px;color:var(--ink);margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a,select,input,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}.invite{background:radial-gradient(120% 70% at 50% 0%, #fdfaf3, transparent 60%), var(--paper-deep);min-height:100svh;padding:clamp(.5rem,2vw,2rem)}.invite[lang=ar]{font-family:Tajawal,system-ui,sans-serif;line-height:1.8}.window{z-index:2;background:var(--paper);border:clamp(2.1rem,9vw,3.6rem) solid #0000;border-image:url(/frame.svg) 130 round;width:min(100%,44rem);margin:0 auto;position:relative;box-shadow:0 2px 30px #40302a1a}.window-head{margin:calc(clamp(2.1rem,9vw,3.6rem)/-2) 0 0;position:relative}.window-head img{width:100%;display:block}.window-body{text-align:center;margin-top:-14%;padding-bottom:clamp(1rem,4vw,2rem)}.intro{max-width:22rem;color:var(--muted);margin:0 auto clamp(1.2rem,4vw,1.75rem);font-size:.98rem;line-height:1.85}.names{justify-items:center;margin:0;font-weight:400;display:grid}.name{font-family:var(--display-ar);color:var(--ink);font-size:clamp(2.7rem,13.5vw,4.4rem);font-weight:700;line-height:1.34}.invite[lang=en] .name{font-family:Pinyon,cursive;font-size:clamp(2.9rem,14vw,4.8rem);line-height:1.18}.amp{color:var(--gold);font-family:Pinyon,cursive;font-size:clamp(1.8rem,7vw,2.6rem);line-height:1.1}.names-alt{color:var(--gold);margin:.9rem 0 0;font-family:Pinyon,cursive;font-size:clamp(1.35rem,5.6vw,1.9rem);line-height:1.5;display:block}.invite[lang=en] .names-alt{font-family:var(--display-ar);font-size:clamp(1.2rem,5vw,1.7rem)}.ornament{width:min(13rem,62%);height:24px;color:var(--gold);margin:clamp(1.5rem,5vw,2.25rem) auto;display:block}.event-line{justify-items:center;gap:.75rem;display:grid}.when{grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(.9rem,4vw,1.6rem);display:grid}.when-side{color:var(--ink);letter-spacing:.04em;font-size:clamp(.92rem,3.4vw,1.05rem)}.when-day{font-family:var(--display-ar);color:var(--ink);border-inline:1px solid var(--gold-soft);padding-inline:clamp(.9rem,4vw,1.5rem);font-size:clamp(2.9rem,12vw,4rem);font-weight:700;line-height:1}.invite[lang=en] .when-day{font-family:Cormorant,Georgia,serif}.when-month{letter-spacing:.12em;color:var(--gold);margin:0;font-size:clamp(.95rem,3.6vw,1.08rem)}.nile{letter-spacing:.1em;color:var(--gold);margin:0;font-size:.82rem;font-style:italic}.event-line .place{color:var(--muted);margin:.2rem 0 0;font-size:clamp(.95rem,3.6vw,1.05rem)}.countdown{margin:clamp(1.6rem,5vw,2.4rem) 0}.countdown p{color:var(--muted);margin:0;font-size:.96rem;line-height:1.6}.countdown strong{font-family:var(--display-ar);color:var(--gold);font-size:clamp(2.5rem,9.5vw,3.2rem);font-weight:400;line-height:1.25;display:block}.invite[lang=en] .countdown strong{font-family:Cormorant,Georgia,serif}.actions{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.6rem;max-width:22rem;margin:0 auto clamp(1.5rem,5vw,2.2rem);display:grid}.action{color:var(--ink);border:1px solid var(--gold-soft);cursor:pointer;letter-spacing:.03em;background:0 0;justify-content:center;align-items:center;min-height:3rem;padding:.85rem 1rem;font-size:.95rem;text-decoration:none;transition:color .3s,border-color .3s,box-shadow .3s;display:inline-flex;position:relative;overflow:hidden}.action:after{content:"";background:var(--gold);transform-origin:bottom;z-index:-1;transition:transform .4s cubic-bezier(.22,.68,.36,1);position:absolute;inset:0;transform:scaleY(0)}.action:hover,.action:focus-visible{color:var(--paper);border-color:var(--gold)}.action:hover:after,.action:focus-visible:after{transform:scaleY(1)}.action.primary{background:var(--gold-deep);border-color:var(--gold-deep);color:var(--paper);box-shadow:inset 0 0 0 3px var(--gold-deep), inset 0 0 0 4px #fbf7ecb3;grid-column:1/-1}.action.primary:after{display:none}.action.primary:hover,.action.primary:focus-visible{color:var(--gold-deep);box-shadow:inset 0 0 0 3px transparent, inset 0 0 0 4px var(--gold-soft);background:0 0}.action:active{transform:translateY(1px)}.music-toggle{border:1px solid var(--gold);width:2.75rem;height:2.75rem;color:var(--gold-deep);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;transition:color .3s,border-color .3s;display:grid}.music-toggle svg{width:1.15rem;height:1.15rem}.music-toggle .cross,.music-toggle.is-muted .wave{opacity:0}.music-toggle.is-muted .cross{opacity:1}.music-toggle:hover{color:var(--gold);border-color:var(--gold)}.guest-panel{border-block-start:1px solid var(--gold-soft);padding-block-start:clamp(1.6rem,5vw,2.25rem)}.guest-panel[hidden]{display:none}.guest-panel>p{max-width:24rem;margin:0 auto 1.4rem;line-height:1.8}.reply{text-align:center;max-width:22rem;margin-inline:auto}.reply h2{font-family:var(--display-ar);color:var(--ink);margin:0 0 1.25rem;font-size:clamp(1.3rem,5vw,1.6rem);font-weight:700}.invite[lang=en] .reply h2{font-family:Pinyon,cursive;font-size:clamp(1.7rem,6.5vw,2.1rem)}.reply fieldset{border:0;gap:1.1rem;margin:0;padding:0;display:grid}.reply label{letter-spacing:.06em;color:var(--muted);gap:.45rem;font-size:.88rem;display:grid}.response-options{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.choice{border:1px solid var(--gold);min-height:3.4rem;color:var(--ink);letter-spacing:0;cursor:pointer;background:#ffffff59;place-items:center;gap:0;padding:.75rem .6rem;font-size:.96rem;transition:border-color .25s,background .25s,color .25s;display:grid;position:relative}.choice input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.choice:hover{border-color:var(--gold)}.choice:has(input:checked){border-color:var(--gold-deep);color:var(--gold-deep);box-shadow:inset 0 0 0 1px var(--gold-deep);background:#b08d3e1f}.choice:has(input:focus-visible){outline:2px solid var(--gold-deep);outline-offset:3px}.reply select,.reply textarea{border:1px solid var(--gold);width:100%;color:var(--ink);text-align:center;background:#ffffff73;border-radius:0;min-height:3.1rem;padding:.8rem .85rem;font-size:.98rem;transition:border-color .25s}.reply select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%);background-position:calc(100% - 1.1rem) 1.35rem,calc(100% - .75rem) 1.35rem;background-repeat:no-repeat;background-size:6px 6px,6px 6px}[dir=rtl] .reply select{background-position:1.1rem 1.35rem,.75rem 1.35rem}.reply textarea{field-sizing:content;resize:none;text-align:center;border:0;border-bottom:1px solid var(--gold);background:0 0;min-height:2.6rem;padding-inline:.2rem;line-height:1.8}.reply textarea:focus{border-bottom-color:var(--gold-deep);box-shadow:0 1px 0 var(--gold-deep)}.reply textarea::placeholder{color:var(--muted);opacity:.7}.reply select:focus,.reply textarea:focus{border-color:var(--gold-deep)}.field{justify-items:center;gap:.55rem;display:grid}.field[hidden]{display:none}.field-label{letter-spacing:.12em;color:var(--muted);font-size:.8rem}.form-error{color:var(--rose);margin:.6rem 0 0;font-size:.88rem}.form-error:empty{margin:0;display:none}.reply .action.primary{width:100%;margin-top:.3rem}.saved{border:1px solid var(--gold);background:#ffffff59;justify-items:center;gap:.7rem;padding:1.5rem 1.25rem;display:grid}.saved p{margin:0}.saved p:first-child{font-family:var(--display-ar);color:var(--ink);font-size:1.25rem;font-weight:700}.invite[lang=en] .saved p:first-child{font-family:Pinyon,cursive;font-size:1.6rem}.privacy{color:var(--muted);max-width:22rem;margin:1.4rem auto 0;font-size:.78rem;line-height:1.7}.share-fallback{gap:.4rem;max-width:22rem;margin:1rem auto 0;font-size:.9rem;display:grid}.share-fallback input{border:1px solid var(--gold);width:100%;color:inherit;text-align:center;background:#ffffff73;padding:.7rem}.foot{text-align:center;justify-items:center;gap:.8rem;padding:clamp(1.2rem,4vw,1.75rem) 0 0;display:grid}.lang-link{color:var(--muted);border-bottom:1px solid var(--gold-soft);padding-bottom:.15rem;font-size:.82rem;text-decoration:none}.lang-link:hover{color:var(--gold)}.opening{z-index:8;background:radial-gradient(120% 70% at 50% 0%, #fdfaf3, transparent 60%), var(--paper-deep);cursor:pointer;align-content:center;justify-items:center;gap:clamp(1.75rem,6vh,2.75rem);padding:1.25rem;transition:opacity .55s .35s,visibility .55s .35s;display:grid;position:fixed;inset:0}.opening[hidden]{display:none}.opening.is-open{opacity:0;visibility:hidden;pointer-events:none}.opening.is-open .envelope{opacity:0;transition:opacity .45s,transform .45s;transform:translateY(-14px)scale(.97)}.envelope{--fold:polygon(0 0, 50% 47%, 100% 0);--pocket:polygon(0 0, 50% 47%, 100% 0, 100% 100%, 0 100%);--fibre:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='90' height='90' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");aspect-ratio:1.42;perspective:1500px;filter:drop-shadow(0 1px 1px #604a2c57)drop-shadow(0 7px 9px #604a2c33)drop-shadow(0 28px 44px #604a2c3d);width:min(92vw,30rem);animation:1s cubic-bezier(.22,.68,.36,1) backwards rise;position:relative}.env-back,.env-body,.env-flap{position:absolute;inset:0}.env-back{background:radial-gradient(90% 60% at 50% 0,#0006,#0000 62%),repeating-linear-gradient(56deg,#d6b47442 0 1px,#0000 1px 15px),repeating-linear-gradient(-56deg,#d6b47442 0 1px,#0000 1px 15px),linear-gradient(170deg,#843046,#5f1c2f);transition:filter .9s}.opening.is-opening .env-back{filter:brightness(1.12)}.env-body{background-image:var(--fibre), radial-gradient(135% 115% at 50% 45%, transparent 52%, #a376342b), linear-gradient(112deg, #ffffff9e, #fff0 62%), radial-gradient(120% 90% at 22% 8%, #fffdf6d9, transparent 64%), linear-gradient(172deg, #faf5e7, #ead8b0);background-blend-mode:overlay, normal, normal, normal, normal;clip-path:var(--pocket);z-index:3;background-size:90px 90px,auto,auto,auto,auto}.env-body:before{content:"";clip-path:var(--pocket);background:linear-gradient(to bottom right,#0000 calc(50% - 1.6px),#ffffff8c calc(50% - .7px),#96784a57 50%,#0000 calc(50% + 1.1px)),linear-gradient(to bottom left,#0000 calc(50% - 1.6px),#ffffff8c calc(50% - .7px),#96784a57 50%,#0000 calc(50% + 1.1px));position:absolute;inset:0}.env-body:after{content:"";clip-path:var(--pocket);background:linear-gradient(to bottom right,#0000 calc(50% - 3px),#5e462229 calc(50% - 2px),#0000 calc(50% - .4px)),linear-gradient(to bottom left,#0000 calc(50% - 3px),#5e462229 calc(50% - 2px),#0000 calc(50% - .4px));position:absolute;inset:0;box-shadow:inset 0 -1px #ffffff80,inset 1px 0 #ffffff73,inset -1px 0 #785e362e}.env-flap{transform-origin:top;transform-style:preserve-3d;z-index:4;transition:transform 1.15s cubic-bezier(.62,.02,.3,1) .45s}.env-flap:before,.env-flap:after{content:"";backface-visibility:hidden;position:absolute;inset:0}.env-flap:before{background-image:var(--fibre), linear-gradient(112deg, #ffffff80, #fff0 62%), linear-gradient(190deg, #fcf7ea, #e8d5ac);background-blend-mode:overlay, normal, normal, normal;clip-path:var(--fold);background-size:90px 90px,auto,auto,auto}.env-flap:after{clip-path:polygon(0 100%,50% 53%,100% 100%);background:linear-gradient(#0000 45%,#00000047),repeating-linear-gradient(56deg,#d6b47442 0 1px,#0000 1px 15px),repeating-linear-gradient(-56deg,#d6b47442 0 1px,#0000 1px 15px),linear-gradient(10deg,#843046,#5f1c2f);transform:rotateX(180deg)}.opening.is-opening .env-flap{z-index:1;transform:rotateX(179deg)}.env-letter{background-image:var(--fibre), radial-gradient(130% 100% at 20% 0%, #fffdf7, transparent 62%), linear-gradient(168deg, #fdfaf1, #f5eeda);background-blend-mode:overlay, normal, normal, normal;box-shadow:inset 0 0 0 7px #fdfaf1e6, inset 0 0 0 8px var(--gold-soft), inset 0 1px 0 #fffc;z-index:2;background-size:90px 90px,auto,auto,auto;border:1px solid #e4d6b4;align-content:center;justify-items:center;gap:.05rem;padding:1.5rem 1.3rem;transition:transform 1.15s cubic-bezier(.3,.8,.3,1) .68s,box-shadow .6s .68s;display:grid;position:absolute;inset:7%}.opening.is-opening .env-letter{z-index:5;box-shadow:inset 0 0 0 7px #fdfaf1e6, inset 0 0 0 8px var(--gold-soft), 0 2px 3px #4a361a2e, 0 18px 34px #4a361a38;transform:translateY(-54%)}.env-name{font-family:var(--display-ar);color:var(--ink);font-size:clamp(1.4rem,5.6vw,1.9rem);font-weight:700;line-height:1.26}.invite[lang=en] .env-name{font-family:Pinyon,cursive}.env-amp{color:var(--gold);font-family:Pinyon,cursive;font-size:clamp(1rem,4vw,1.3rem)}.env-date{color:var(--muted);white-space:nowrap;border-top:1px solid var(--gold-soft);margin-top:.6rem;padding-top:.55rem;font-size:.68rem}.env-stamp{z-index:5;letter-spacing:.22em;text-indent:.22em;color:var(--gold-deep);text-align:center;justify-items:center;gap:.5rem;font-size:.66rem;transition:opacity .5s;display:grid;position:absolute;inset-block-end:7.5%;inset-inline:0}.env-stamp:before{content:"";background:linear-gradient(to right, transparent, var(--gold-soft) 22%, var(--gold) 50%, var(--gold-soft) 78%, transparent);width:clamp(3rem,14%,4.5rem);height:1px}.opening.is-opening .env-stamp{opacity:0}.wax{aspect-ratio:1;cursor:pointer;z-index:6;color:#f2d9a0;filter:drop-shadow(0 1px 1px #3a0c188c)drop-shadow(0 5px 9px #3a0c184d);background:url(/seal.svg) 50%/contain no-repeat;border:0;place-items:center;width:clamp(4.6rem,19vw,5.8rem);padding:0;transition:transform .45s,opacity .5s,filter .3s;animation:2.8s ease-in-out 1.2s 3 seal-breathe;display:grid;position:absolute;top:44%;left:50%;translate:-50% -50%}.wax:hover{filter:drop-shadow(0 1px 1px #3a0c188c)drop-shadow(0 10px 16px #3a0c1861);animation:none;transform:translateY(-2px)scale(1.035)}.wax-mark{z-index:1;font-family:var(--display-ar);letter-spacing:.04em;text-shadow:0 -1px 1px #340a16bf,0 1px #ffe8b24d;font-size:clamp(1.05rem,4.4vw,1.3rem);line-height:1;position:relative}.invite[lang=en] .wax-mark{z-index:1;font-family:Pinyon,cursive;font-size:clamp(1.3rem,5.4vw,1.6rem);position:relative}.wax{background-image:none}.wax:before,.wax:after{content:"";pointer-events:none;background:url(/seal.svg) 50%/contain no-repeat;transition:transform .8s cubic-bezier(.34,.62,.3,1),opacity .8s;position:absolute;inset:0}.wax:before{clip-path:polygon(0 0,53% 0,45% 100%,0 100%)}.wax:after{clip-path:polygon(53% 0,100% 0,100% 100%,45% 100%)}.opening.is-opening .wax{animation:none;transform:scale(1.03)}.opening.is-opening .wax:before{opacity:0;transform:translate(-46%,52%)rotate(-40deg)}.opening.is-opening .wax:after{opacity:0;transform:translate(46%,58%)rotate(36deg)}.opening.is-opening .wax-mark{z-index:1;opacity:0;transition:opacity .3s;position:relative}@keyframes seal-breathe{0%,to{transform:none}50%{transform:translateY(-1.5px)scale(1.018)}}.env-hint{letter-spacing:.2em;text-indent:.2em;color:var(--muted);margin:0;font-size:.76rem;transition:opacity .4s;animation:1s cubic-bezier(.22,.68,.36,1) .35s backwards rise}.opening.is-opening .env-hint{opacity:0}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.reveal{opacity:0;transition:opacity .85s cubic-bezier(.22,.68,.36,1),transform .85s cubic-bezier(.22,.68,.36,1);transform:translateY(18px)}.reveal.is-in{opacity:1;transform:none}.admin-page{background:var(--paper-deep);min-height:100svh;color:var(--ink);font-family:system-ui,sans-serif}.admin{width:min(100% - 2rem,76rem);margin:0 auto;padding:2rem 0 4rem}.admin h1{margin:0 0 2rem;font-family:Cormorant,Georgia,serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:400}.admin-card{background:var(--paper);border:1px solid var(--gold-soft);margin-bottom:1rem;padding:clamp(1rem,3vw,2rem)}.admin-grid{background:var(--gold-soft);border:1px solid var(--gold-soft);grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:1rem;display:grid}.admin-stat{background:var(--paper);gap:.25rem;padding:1rem;display:grid}.admin-stat strong{font-family:Cormorant,Georgia,serif;font-size:2rem;font-weight:400}.admin form{gap:.75rem;max-width:28rem;display:grid}.admin label{gap:.35rem;display:grid}.admin input,.admin select{border:1px solid var(--gold-soft);background:#fff;min-height:2.6rem;padding:.5rem}.admin button{background:var(--ink);min-height:2.6rem;color:var(--paper);border:1px solid var(--ink);cursor:pointer;padding:.5rem .9rem}.admin .secondary{color:var(--ink);background:0 0}.admin-toolbar{flex-wrap:wrap;align-items:end;gap:.6rem;margin-bottom:1rem;display:flex}.admin-toolbar label{flex:13rem}.table-wrap{border:1px solid var(--gold-soft);overflow-x:auto}.admin table{border-collapse:collapse;width:100%;min-width:50rem}.admin th,.admin td{border-bottom:1px solid var(--gold-soft);text-align:start;vertical-align:top;padding:.75rem}.admin th{font-size:.78rem;font-weight:700}.admin td button{min-height:2rem;font-size:.8rem}.admin-message{min-height:1.35rem;color:var(--rose)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.opening{display:none}.reveal{opacity:1;transform:none}}.petals{pointer-events:none;z-index:9;position:fixed;inset:0;overflow:hidden}.petal{top:-6vh;left:var(--x);width:var(--size);height:calc(var(--size) * 1.35);background:radial-gradient(120% 90% at 30% 20%, #fff8, transparent 60%), var(--tint);opacity:.3;animation:fall var(--fall) linear infinite;animation-delay:var(--delay), var(--delay);border-radius:100% 0;position:absolute;box-shadow:0 1px 2px #785a461a}@keyframes fall{to{transform:translate(22px,112vh)rotate(420deg)}}@media (prefers-reduced-motion:reduce){.petals{display:none}}.greeting{font-family:var(--display-ar);color:var(--ink);font-size:1.15rem}.invite[lang=en] .greeting{font-family:Cormorant,Georgia,serif}.wax-halo{opacity:0;pointer-events:none;border:1px solid #8a6a228c;border-radius:50%;animation:2.6s ease-out infinite sealHalo;position:absolute;inset:-10%}.wax-halo:nth-of-type(2){animation-delay:1.3s}@keyframes sealHalo{0%{opacity:.7;transform:scale(.92)}70%{opacity:0;transform:scale(1.28)}to{opacity:0;transform:scale(1.28)}}.opening.is-opening .wax-halo{opacity:0;animation:none}.env-hint{letter-spacing:.04em;color:var(--gold-deep);text-align:center;margin:0;font-size:.92rem;transition:opacity .35s;animation:.9s cubic-bezier(.22,.68,.36,1) .5s backwards hintIn,3.2s ease-in-out 1.6s infinite hintNudge}.opening.is-opening .env-hint{opacity:0;animation:none}@keyframes hintIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes hintNudge{0%,88%,to{transform:none}92%{transform:translateY(-3px)}96%{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.wax-halo,.env-hint{animation:none!important}.wax-halo{opacity:0}}
