@font-face{font-family:Great Vibes;src:url("./great-vibes-latin-Q4DJ6BVE.woff2") format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Diwani Letter;src:url("./diwani-letter-SHTMUQXW.woff2") format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Amiri;src:url("./amiri-400-5BXOPCHL.woff2") format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Aref Ruqaa;src:url("./aref-ruqaa-400-KAYHY6HF.woff2") format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Aref Ruqaa;src:url("./aref-ruqaa-700-CM5ZSD36.woff2") format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Reem Kufi;src:url("./reem-kufi-FQ553XQV.woff2") format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url("./cormorant-AS64EYGE.woff2") format("woff2");font-weight:300 700;font-display:swap}:root{--ivory: #f8f2ec;--paper: #f4ebe3;--blush: #efe2d8;--blush-deep: #e6cfc2;--rose: #9e4f60;--rose-soft: #b97f88;--gold: #b8955f;--gold-soft: #dcc59a;--lavender: #6f5b8c;--ink: #5b3a42;--ink-soft: #7c5c62;--line: rgba(184, 149, 95, .55);--font-body: "Amiri", "Times New Roman", serif;--font-names: "Aref Ruqaa", "Amiri", serif;--font-label: "Reem Kufi", "Amiri", sans-serif;--font-display: "Aref Ruqaa", "Amiri", serif;--font-latin: "Cormorant Garamond", "Times New Roman", serif;--page-w: min(100vw, 440px);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}html.locked,html.locked body{overflow:hidden;height:100%}body{background:radial-gradient(1200px 700px at 50% -10%,#f7ece4,transparent 70%),#e9d8cd;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.page{width:var(--page-w);margin:0 auto;background:var(--blush);box-shadow:0 0 60px #7846461f;overflow:hidden}.opener{position:fixed;inset:0;z-index:50;overflow:hidden;background:#efe7df;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}.opener-art{position:absolute;left:50%;top:50%;width:max(100vw,calc(100dvh * var(--ar)));height:max(100dvh,calc(100vw / var(--ar)));transform:translate(-50%,-50%);transform-origin:var(--seal-x) var(--seal-y)}.opener-art img{display:block;width:100%;height:100%;-webkit-user-select:none;user-select:none}.seal-pulse{position:absolute;left:var(--seal-x);top:var(--seal-y);width:30%;aspect-ratio:1;border-radius:50%;border:1.5px solid rgba(255,246,230,.9);box-shadow:0 0 18px #ffe4be8c;transform:translate(-50%,-50%) scale(.85);opacity:0;animation:sealPulse 2.6s ease-out infinite;pointer-events:none}.seal-pulse.delay{animation-delay:1.3s}@keyframes sealPulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}25%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(1.35)}}.opener-light{position:absolute;inset:0;background:radial-gradient(circle at 50% 53%,#fffaf3,#fff8f0e6 35%,#f6e8de00 75%);opacity:0;pointer-events:none}.opener.opening{cursor:default}.opener.opening .seal-pulse{animation:none;opacity:0}.opener.opening .opener-art{animation:envelopeIn 1.7s cubic-bezier(.6,.02,.3,1) forwards}.opener.opening .opener-light{animation:lightUp 1.7s ease-in forwards}.opener.opening{animation:gateOut 1.7s ease-in forwards}@keyframes envelopeIn{0%{transform:translate(-50%,-50%) scale(1);filter:brightness(1)}30%{transform:translate(-50%,-50%) scale(1.04)}to{transform:translate(-50%,-50%) scale(1.9);filter:brightness(1.25) blur(2px)}}@keyframes lightUp{0%,25%{opacity:0}75%{opacity:1}to{opacity:1}}@keyframes gateOut{0%,72%{opacity:1}to{opacity:0}}.hero{position:relative;height:100svh;min-height:640px;max-height:980px;overflow:hidden;isolation:isolate}.hero-arch{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.chandelier-wrap{position:absolute;top:0;left:50%;width:90%;transform:translate(-50%);transform-origin:50% 0;animation:sway 7s ease-in-out infinite;z-index:-1}.chandelier{display:block;width:100%;height:auto;filter:drop-shadow(0 8px 12px rgba(150,100,70,.18))}@keyframes sway{0%,to{transform:translate(-50%) rotate(-.7deg)}50%{transform:translate(-50%) rotate(.7deg)}}.chandelier .flame{animation:flicker 1.6s ease-in-out infinite alternate}.chandelier g>g:nth-of-type(odd) .flame{animation-duration:1.25s}.chandelier .halo{animation:haloPulse 2.4s ease-in-out infinite alternate}@keyframes flicker{0%{transform:scale(1) rotate(-2deg);opacity:.95}50%{transform:scale(.92,1.08) rotate(2deg);opacity:1}to{transform:scale(1.04,.94) rotate(-1deg);opacity:.9}}@keyframes haloPulse{0%{opacity:.55}to{opacity:.95}}.gold-dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.hero-text{position:absolute;left:0;right:0;top:49%;text-align:center;padding:0 64px;z-index:1}.hero-occasion{margin:0 0 6px;font-family:var(--font-display);font-size:clamp(22px,6.2vw,26px);color:var(--gold)}.hero-names{margin:0;display:flex;flex-direction:column;align-items:center;font-family:var(--font-names);font-weight:700;color:var(--rose);line-height:1.25}.hero-names .person-name{font-size:clamp(46px,13.5vw,60px);text-shadow:0 2px 10px rgba(255,245,238,.9)}.hero-and{font-size:clamp(24px,7vw,30px);color:var(--gold);line-height:1;margin:-2px 0 2px}.hero-divider{display:block;margin:12px auto 6px}.hero-date{margin:0;font-family:var(--font-latin);font-weight:500;font-size:clamp(22px,6.4vw,27px);letter-spacing:.18em;color:var(--ink-soft);font-variant-numeric:lining-nums}.hero .chandelier-wrap,.hero-text>*{opacity:0}.hero.revealed .chandelier-wrap{animation:dropIn 1.6s .5s cubic-bezier(.2,.7,.2,1) forwards,sway 7s 2.1s ease-in-out infinite}.hero.revealed .hero-text>*{animation:fadeUp 1.1s cubic-bezier(.2,.7,.2,1) forwards}.hero.revealed .hero-occasion{animation-delay:1.3s}.hero.revealed .hero-names{animation-delay:1.6s}.hero.revealed .hero-divider{animation-delay:2s}.hero.revealed .hero-date{animation-delay:2.2s}@keyframes dropIn{0%{opacity:0;transform:translate(-50%) translateY(-40px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.scroll-cue{position:absolute;bottom:22px;left:50%;width:22px;height:34px;margin-left:-11px;border:1.4px solid var(--gold);border-radius:12px;opacity:0}.hero.revealed .scroll-cue{animation:fadeUp 1s 2.8s forwards}.scroll-cue span{position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--gold);animation:cue 1.8s ease-in-out infinite}@keyframes cue{0%{transform:translateY(0);opacity:1}80%{transform:translateY(12px);opacity:0}to{opacity:0}}.card-section{padding:26px 18px}.card-section:first-of-type{padding-top:34px}.card{position:relative;padding:92px 26px 38px;text-align:center;background:radial-gradient(120% 60% at 50% 0%,#fffaf5,#fffaf500 70%),var(--ivory);border-radius:200px 200px 22px 22px;border:1px solid var(--line);box-shadow:0 10px 30px #965f551a}.card:before{content:"";position:absolute;inset:7px;border-radius:194px 194px 17px 17px;border:1px solid rgba(184,149,95,.32);pointer-events:none}.crest{position:absolute;top:10px;left:50%;transform:translate(-50%);width:84px;height:84px}.card-title{margin:0 0 22px;font-family:var(--font-display);font-weight:500;font-size:clamp(22px,6.4vw,26px);color:var(--rose)}.card-section .card{opacity:0;transform:translateY(26px)}.card-section.seen .card{animation:fadeUp 1s cubic-bezier(.2,.7,.2,1) forwards}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;direction:rtl}.cd-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 2px 10px;border-radius:999px 999px 12px 12px;background:linear-gradient(180deg,#fbf4ee,#f1e1d6);border:1px solid var(--line)}.cd-num{font-family:var(--font-latin);font-weight:600;font-size:clamp(28px,8vw,34px);line-height:1.1;color:var(--rose);font-variant-numeric:tabular-nums lining-nums}.cd-label{font-family:var(--font-label);font-size:14px;color:var(--ink-soft)}.lead{margin:0 0 14px;font-family:var(--font-display);font-size:clamp(17px,4.8vw,20px);line-height:1.8;color:var(--gold)}.intro p,.family-body p{margin:0;font-size:clamp(18px,5vw,20px);line-height:1.95;color:var(--ink)}.intro p+p{margin-top:6px}.person-name{display:block;font-family:var(--font-names);font-weight:700;color:var(--rose);overflow-wrap:anywhere}.names-pair{margin:16px 0 2px;line-height:1.4}.names-pair .person-name{font-size:clamp(36px,10vw,44px)}.names-pair .person-name+.person-name{margin-top:4px}.section-divider{display:block;margin:20px auto 22px}.family-body .name-line{margin:4px 0 6px;line-height:1.5}.family-body .name-line .person-name{display:inline;font-size:clamp(28px,8vw,34px)}.name-prefix{font-size:clamp(18px,5vw,20px);color:var(--ink-soft)}.inline-date{font-family:var(--font-latin);font-weight:600;font-size:1.1em;letter-spacing:.06em;color:var(--rose);white-space:nowrap}[data-invitation-section=programme]{padding:26px 18px 34px}[data-invitation-section=programme] .card{padding:38px 12px 28px;border:0;border-radius:0;background:var(--ivory);box-shadow:none}[data-invitation-section=programme] .card:before{display:none}[data-invitation-section=programme] .card-title{margin-bottom:30px;font-size:clamp(25px,7vw,30px);color:var(--ink)}.programme-moments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;direction:rtl;list-style:none;margin:0;padding:0}.programme-moment{display:grid;grid-template-rows:auto minmax(82px,auto) auto auto;justify-items:center;min-width:0;padding:0 8px;text-align:center}.programme-moment+.programme-moment{border-inline-start:1px solid rgba(185,127,136,.18)}@supports (grid-template-rows: subgrid){.programme-moments{grid-template-rows:auto auto auto auto}.programme-moment{grid-row:span 4;grid-template-rows:subgrid}}.programme-motif{display:block;width:clamp(58px,17vw,76px);height:auto;margin-bottom:18px;color:#b48b83}.programme-label{align-self:center;font-family:var(--font-body);font-size:clamp(17px,4.6vw,20px);line-height:1.65;color:var(--ink);text-wrap:balance}.programme-time{margin-top:12px;font-family:var(--font-latin);font-size:clamp(29px,8vw,35px);font-weight:500;line-height:1.15;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap;color:#8c585e}.programme-period{margin-top:5px;font-size:16px;line-height:1.5;color:var(--ink-soft)}.programme-flourish{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:32px;color:#b48b83}.programme-flourish svg{stroke:currentColor;stroke-width:1}.programme-flourish span{width:44px;height:1px;background:currentColor;opacity:.35}@media(max-width:350px){[data-invitation-section=programme]{padding-inline:12px}[data-invitation-section=programme] .card{padding-inline:4px}.programme-moment{padding-inline:5px}.programme-label{font-size:16px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 28px;border-radius:999px;background:linear-gradient(180deg,#ad5f70,var(--rose));color:#fff8f4;font-family:var(--font-label);font-size:18px;text-decoration:none;box-shadow:0 6px 16px #9e4f6047,inset 0 1px #ffffff40;transition:transform .2s ease,box-shadow .2s ease}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.btn.is-pending{opacity:.55;cursor:not-allowed}.page-end{display:flex;justify-content:center;padding:6px 0 40px;opacity:.85}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.video-opener{display:grid;place-items:center;background:var(--paper)}.video-opener.opening{animation:none}.opener-video-frame{position:relative;width:min(100vw,440px);height:100dvh}.opener-video-frame video{display:block;width:100%;height:100%;object-fit:contain}.opener-video-frame .seal-pulse{display:none}.opener-tap{position:absolute;inset:0;width:100%;border:0;padding:0;background:transparent;cursor:pointer;color:var(--ink);font-family:var(--font-body)}.opener-label{position:absolute;bottom:max(34px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);white-space:nowrap;padding:8px 22px;border:1px solid var(--line);border-radius:30px;background:#f8f2eceb;font-size:19px}.opener-skip{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);padding:8px 22px;border:1px solid var(--line);border-radius:30px;background:var(--ivory);color:var(--ink);font:18px var(--font-body);cursor:pointer}.opener-tap:focus-visible{outline:3px solid var(--rose);outline-offset:-6px}.opener-skip:focus-visible{outline:2px solid var(--rose);outline-offset:4px}.hero{height:auto;min-height:0;max-height:none;aspect-ratio:480 / 832;background:var(--paper)}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:-1}.hero-text{top:48%;padding:0 42px}.hero-occasion{margin-bottom:16px;font-family:var(--font-body);font-size:clamp(17px,4.6vw,21px);color:#806057}.hero-latin-names{display:flex;justify-content:center;align-items:baseline;gap:.18em;margin:0 0 14px;color:#b58d80;font-family:Great Vibes,cursive;font-size:clamp(32px,10.3vw,46px);font-weight:400;line-height:1.35;white-space:nowrap}.hero-latin-and{font-size:.65em}.hero-names{flex-direction:row;justify-content:center;gap:12px;margin-bottom:18px;line-height:1.65}.hero-names .person-name{font-family:Diwani Letter,Amiri,serif;font-weight:400;font-size:clamp(31px,9.2vw,42px);color:#a67a70;overflow-wrap:normal;white-space:nowrap}.hero-and{margin:0;font:400 22px var(--font-body);color:#a67a70}.hero-date{font-size:clamp(16px,4.7vw,20px);letter-spacing:.24em}.hero.revealed .hero-latin-names{animation-delay:1.5s}.lace-band{width:100%;aspect-ratio:3 / 1;background-size:cover;background-position:center}.music-player{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 0;gap:6px}.record-button{position:relative;display:grid;place-items:center;width:clamp(86px,24vw,108px);aspect-ratio:1;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.record-disc{display:block;width:100%;height:auto;filter:drop-shadow(0 3px 4px rgba(44,26,20,.22));animation:recordSpin 8s linear infinite;animation-play-state:paused}.record-button.is-playing .record-disc{animation-play-state:running}.record-control{position:absolute;display:grid;place-items:center;width:23%;aspect-ratio:1;border-radius:50%;background:#141313cc;color:#fff5ea}.record-control svg{width:70%;fill:currentColor;stroke:currentColor;stroke-width:2}.record-button:focus-visible{outline:2px solid var(--rose);outline-offset:5px}.record-button:disabled{cursor:default}.music-status{margin:0;padding:0 12px;text-align:center;font-size:15px;background:var(--ivory)}@keyframes recordSpin{to{transform:rotate(360deg)}}[data-invitation-section=invitation] .card{padding-top:176px}.cameo-crest{width:100px;height:150px;object-fit:contain}[data-invitation-section=countdown] .card,[data-invitation-section=venue] .card{padding-top:42px}.crystal-garland{display:block;width:calc(100% + 20px);height:auto;margin:0 -10px 26px}.palace-artwork{display:block;width:100%;height:auto;margin:0 auto 20px}
