@font-face{font-family:Pinar;src:url('assets/pinar.ttf') format('truetype');font-weight:100 1000;font-display:swap}
@font-face{font-family:Bodoni;src:url('assets/bodoni.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Bodoni;src:url('assets/bodoni-italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
:root{--canvas:#e9eaea;--paper:#f7f8f5;--ink:#161a1b;--muted:#777e80;--line:#d9dddc;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:400 1rem/1.85 Pinar,Tahoma,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button,a{color:inherit}a{text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid #949d9e;outline-offset:5px}::selection{background:#23292a;color:#fff}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.invitation-stage{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 24px 22px;--move-x:0px;--move-y:0px}.stage-top{width:min(100%,900px);display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;min-height:34px}.stage-top>p{font-size:.875rem;color:#788083}.language-switch{display:flex;align-items:center;gap:10px;direction:ltr;font-family:Arial,Pinar,sans-serif;font-size:.875rem}.language-switch>a{display:grid;place-items:center;min-width:36px;min-height:34px;opacity:.45;transition:opacity .25s}.language-switch>a[lang=fa]{font-family:Pinar,Tahoma,sans-serif}.language-switch>a[aria-current=page]{opacity:1}.language-switch>a:hover{opacity:1}.language-switch>span{color:#b9bfc0}.invitation-book{width:min(100%,900px);position:relative;background:var(--paper);overflow:hidden;border-radius:2px;box-shadow:0 30px 80px #2731351f,0 1px 3px #27313514;isolation:isolate}.letter-content{display:grid;grid-template-columns:.76fr 1.24fr;direction:ltr;min-height:684px}.letter-art{position:relative;overflow:hidden;background:#080a0b}.letter-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%;transform:scale(1);opacity:.8}.letter-art:after{position:absolute;inset:30% 0 0;content:'';background:linear-gradient(transparent,#080a0be8);pointer-events:none}.letter-art figcaption{position:absolute;z-index:1;inset:auto 30px 36px;color:#f3f5f1;text-align:start;direction:rtl}.art-monogram{font-family:Bodoni,Georgia,serif;font-size:1.5rem;letter-spacing:5px}.letter-art figcaption>p{font-size:1.9rem;font-weight:400;line-height:1.7;margin:27px 0}.letter-art figcaption>p>span{display:block}.letter-art figcaption>span:last-child{font:400 .875rem/1.5 Arial,sans-serif;letter-spacing:3px;color:#9ea6a7}.letter-body{position:relative;padding:35px 43px 30px;text-align:center;direction:rtl;min-width:0;background:var(--paper)}.close-invitation{position:absolute;top:13px;inset-inline-end:13px;width:36px;height:36px;display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:50%;transition:transform .5s var(--ease),border-color .3s}.close-invitation>span{font:300 1.45rem/1 Arial,sans-serif;color:#7e8688}.close-invitation:hover{transform:rotate(90deg);border-color:#ccd1d1}.invocation{font-size:.875rem;color:var(--muted);margin-top:9px}.letter-names{display:flex;justify-content:center;align-items:center;gap:12px;font-size:3rem;font-weight:500;line-height:1.6;margin:10px 0 8px;white-space:nowrap}.letter-and{font-size:1.5rem;color:#8c9494;font-weight:300}.invitation-message{font-size:1rem;line-height:2;color:#687174}.invitation-message>span{display:block}.hospitality{font-size:.9375rem;margin-top:15px}.ceremony-date{display:flex;align-items:center;justify-content:center;gap:21px;margin-top:23px;padding-top:18px;border-top:1px solid var(--line)}.day-number{font-size:3.8rem;line-height:1.3;font-weight:400}.ceremony-date>div{text-align:start;border-inline-start:1px solid #cdd3d3;padding-inline-start:19px}.ceremony-date p{font-size:1.125rem;font-weight:500}.ceremony-date>div>span{font-size:.9375rem;color:var(--muted)}.ceremony-time{margin-top:8px}.ceremony-time>p{font-size:1rem}.ceremony-time>span{font-size:.875rem;color:var(--muted)}.venue{margin-top:23px}.venue h3{font-size:1.125rem;font-weight:500}.venue address{font-size:.9375rem;font-style:normal;color:#727a7b;line-height:2;margin-top:5px;text-wrap:balance}.directions{margin-top:23px}.directions-title{font-size:.875rem;color:var(--muted);margin-bottom:11px}.map-apps{display:flex;justify-content:center;gap:10px}.map-app{display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;min-width:88px;padding:8px 12px;border:1px solid #d8dddd;background:#fff;border-radius:4px;font-size:.9375rem;transition:transform .5s var(--ease),box-shadow .4s,border-color .4s}.map-app>img{width:25px;height:25px;object-fit:contain;border-radius:6px}.map-app:hover{transform:translateY(-4px);border-color:#9eaaaa;box-shadow:0 7px 18px #2632330c}.map-app:active{transform:translateY(-1px)}.route-status{font-size:.875rem;color:#899193;line-height:1.9;min-height:24px;margin-top:10px}.signature{font-size:.9375rem;margin-top:23px;color:#818b8c}.countdown-line{font-size:.875rem;color:#858d8f;text-align:center;margin-top:19px;min-height:24px}
.cover{position:absolute;inset:0;z-index:3;color:#f2f4f0;overflow:hidden;direction:rtl}.curtain{position:absolute;top:0;bottom:0;width:50.15%;background:#0d1112;transition:transform 1.5s var(--ease)}.curtain-start{left:0;transform:translateX(0)}.curtain-end{right:0;transform:translateX(0)}.cover-photo{position:absolute;inset:0 auto 0 0;width:49%;margin:0;overflow:hidden;opacity:.8;transition:transform 1.65s var(--ease),opacity 1s var(--ease);mask-image:linear-gradient(to right,#000 70%,transparent);-webkit-mask-image:linear-gradient(to right,#000 70%,transparent)}.cover-photo>img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:translate3d(var(--move-x),var(--move-y),0) scale(1.06)}.cover-content{position:relative;padding:50px 55px 140px;margin-inline-end:36%;z-index:2;transition:opacity .5s ease,transform .95s var(--ease)}.cover-label{font-size:.875rem;letter-spacing:0;color:#a1aaab}.cover-names{position:relative;margin-top:33px;font-size:5.85rem;line-height:1.35;font-weight:450;font-variation-settings:'KSHD' 25}.name-line{display:block;overflow:hidden;padding-block:3px}.name-line>span{display:inline-block}.bride-line{padding-inline-start:68px}.cover-amp{position:absolute;inset-inline-start:42px;top:44%;font:italic 400 3.2rem/1 Bodoni,Georgia,serif;color:#677476;transform:translateY(-10%)}.cover-note{font-size:.9375rem;line-height:2;color:#a9b1b2;margin-top:20px}.open-invitation{display:flex;align-items:center;gap:18px;background:none;border:0;padding:0;color:#e7ecea;margin-top:32px;font-size:.9375rem;min-height:54px}.open-circle{display:grid;place-items:center;width:53px;height:53px;border:1px solid #7a8788;border-radius:50%;font:400 1.65rem/1 Arial,sans-serif;transition:transform .6s var(--ease),background .5s,color .5s}.open-invitation:hover .open-circle{transform:rotate(45deg);background:#edf1ec;color:#121a1b}.open-label{position:relative}.open-label:after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:#93a0a0;transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}.open-invitation:hover .open-label:after{transform:scaleX(1)}.cover-footer{position:absolute;z-index:2;left:55px;right:55px;bottom:32px;display:flex;align-items:flex-end;justify-content:space-between;border-top:1px solid #96a4a425;padding-top:20px;transition:opacity .5s ease,transform .95s var(--ease)}.cover-footer>div{font-size:1rem}.cover-weekday{display:block;font-size:.875rem;color:#889496;margin-top:3px}.cover-edition{font:400 .875rem/1.8 Arial,sans-serif;letter-spacing:2px;color:#7f8b8d;text-align:left}
.is-ready .letter-content{transition:opacity .9s var(--ease);opacity:0;pointer-events:none}.is-ready.is-open .letter-content{opacity:1;pointer-events:auto}.is-ready .letter-art>img{transform:scale(1.13);transition:transform 2s var(--ease)}.is-ready.is-open .letter-art>img{transform:scale(1)}.is-ready .reveal{opacity:0;transform:translate3d(0,23px,0);transition:transform 1.15s var(--ease),opacity 1s var(--ease);transition-delay:0s}.is-open .reveal{opacity:1;transform:translate3d(0,0,0);transition-delay:.25s}.is-open .letter-names{transition-delay:.33s}.is-open .invitation-message{transition-delay:.41s}.is-open .hospitality{transition-delay:.48s}.is-open .ceremony-date{transition-delay:.55s}.is-open .ceremony-time{transition-delay:.6s}.is-open .venue{transition-delay:.66s}.is-open .directions{transition-delay:.72s}.is-open .signature{transition-delay:.78s}.is-open .curtain-start{transform:translateX(-101%)}.is-open .curtain-end{transform:translateX(101%)}.is-open .cover-photo{transform:translate3d(-30%,0,0);opacity:0}.is-open .cover-content{opacity:0;transform:translate3d(0,-30px,0);pointer-events:none}.is-open .cover-footer{opacity:0;transform:translate3d(0,20px,0)}.is-moving .curtain,.is-moving .cover-photo,.is-moving .cover-content{will-change:transform,opacity}.language-changing .letter-body,.language-changing .cover-content,.language-changing .cover-footer,.language-changing .letter-art figcaption{opacity:0!important;transform:translate3d(0,7px,0)}.letter-body,.letter-art figcaption{transition:opacity .3s,transform .6s var(--ease)}
[data-lang=en]{font-family:Arial,sans-serif;line-height:1.65}[data-lang=en] .cover{direction:ltr}[data-lang=en] .cover-content{padding-top:55px}[data-lang=en] .cover-photo{left:auto;right:0;mask-image:linear-gradient(to left,#000 70%,transparent);-webkit-mask-image:linear-gradient(to left,#000 70%,transparent)}[data-lang=en].is-open .cover-photo{transform:translate3d(30%,0,0)}[data-lang=en] .cover-names{font:500 5.7rem/1.08 Bodoni,Georgia,serif;margin-top:47px}[data-lang=en] .cover-amp{font-size:3rem;top:45%;inset-inline-start:55px}[data-lang=en] .bride-line{padding-inline-start:69px;padding-top:17px}[data-lang=en] .cover-label{text-transform:uppercase;letter-spacing:1.6px;font-size:.875rem;line-height:1.8}[data-lang=en] .cover-note{margin-top:25px}[data-lang=en] .cover-footer{direction:ltr}[data-lang=en] .cover-edition{text-align:right}[data-lang=en] .letter-body,[data-lang=en] .letter-art figcaption{direction:ltr}[data-lang=en] .letter-names{font:500 2.75rem/1.5 Bodoni,Georgia,serif;gap:9px;margin-top:21px;margin-bottom:19px}[data-lang=en] .letter-and{font:italic 400 2.2rem/1 Bodoni,Georgia,serif}[data-lang=en] .invitation-message{line-height:1.8;font-size:.9375rem}[data-lang=en] .hospitality{font-size:.9375rem;margin-top:17px}[data-lang=en] .day-number{font:500 4rem/1.3 Bodoni,Georgia,serif}[data-lang=en] .ceremony-date{margin-top:24px}[data-lang=en] .ceremony-date p{font-size:1rem}[data-lang=en] .venue h3{font-size:1.0625rem;line-height:1.6}[data-lang=en] .venue address{font-size:.9375rem;line-height:1.7;margin-top:8px}[data-lang=en] .map-app{min-width:87px;font-size:.9375rem;padding-inline:10px}[data-lang=en] .route-status{font-size:.875rem;line-height:1.7}[data-lang=en] .letter-art figcaption>p{font:500 2.5rem/1.3 Bodoni,Georgia,serif}[data-lang=en] .signature{font-family:Bodoni,Georgia,serif;font-style:italic;font-size:1.125rem}
@media(max-width:800px){.invitation-stage{padding-inline:20px}.cover-content{padding:45px 37px 140px;margin-inline-end:34%}.cover-names{font-size:5.1rem}.cover-footer{left:37px;right:37px}.letter-body{padding:35px 28px 28px}.letter-names{font-size:2.6rem;gap:9px}.letter-art figcaption{inset-inline:23px}.map-app{min-width:75px;gap:6px;padding-inline:9px}[data-lang=en] .cover-names{font-size:4.55rem}[data-lang=en] .letter-names{font-size:2.25rem;gap:6px}[data-lang=en] .map-app{min-width:75px;padding-inline:8px;font-size:.875rem}.cover-amp{font-size:2.8rem}[data-lang=en] .cover-amp{font-size:2.5rem}}
@media(max-width:600px){.invitation-stage{padding:18px 16px;justify-content:flex-start}.stage-top{margin-bottom:11px}.stage-top>p{font-size:.875rem}.invitation-book{width:100%}.letter-content{grid-template-columns:1fr;min-height:710px}.letter-art{display:none}.letter-body{padding:40px 27px 31px}.letter-names{font-size:2.9rem}.cover-content{margin-inline-end:0;padding:48px 31px 150px}.cover-names{font-size:5.3rem;margin-top:36px}.cover-photo{inset:22% auto 0 -11%;width:68%;height:68%;opacity:.43;mask-image:linear-gradient(to right,#000,transparent);-webkit-mask-image:linear-gradient(to right,#000,transparent)}.cover-footer{left:31px;right:31px;bottom:30px}.cover-note{margin-top:26px}.open-invitation{margin-top:32px}.cover-label{font-size:.875rem}.map-app{min-width:85px;padding-inline:10px}.countdown-line{font-size:.875rem}[data-lang=en] .cover-photo{inset:22% -11% 0 auto;mask-image:linear-gradient(to left,#000,transparent);-webkit-mask-image:linear-gradient(to left,#000,transparent)}[data-lang=en] .cover-content{padding-top:52px}[data-lang=en] .cover-names{font-size:4.6rem;line-height:1.13;margin-top:45px}[data-lang=en] .cover-note{margin-top:30px}[data-lang=en] .letter-names{font-size:2.65rem;gap:7px}[data-lang=en] .map-app{min-width:84px;font-size:.9375rem}[data-lang=en] .letter-body{padding-top:44px}.invocation{font-size:.875rem}.cover-edition{font-size:.875rem}}
@media(max-width:370px){.invitation-stage{padding-inline:12px}.cover-content{padding-inline:25px}.cover-names{font-size:4.8rem}.cover-footer{left:25px;right:25px}.letter-body{padding-inline:20px}.letter-names{font-size:2.45rem}.map-app{min-width:78px}.map-apps{gap:7px}[data-lang=en] .cover-names{font-size:4rem}[data-lang=en] .letter-names{font-size:2.2rem}[data-lang=en] .map-app{min-width:78px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}.cover-photo>img{transform:none!important}.is-open .cover{opacity:0}}
@media print{body{background:#fff}.invitation-stage{padding:0;min-height:0}.stage-top,.countdown-line,.cover,.close-invitation{display:none!important}.invitation-book{width:100%;box-shadow:none}.letter-content,.reveal{opacity:1!important;transform:none!important}.letter-content{pointer-events:auto!important}}

.language-changing .cover-photo{opacity:0;transition:opacity .3s ease}
@media(pointer:coarse){.language-switch>a{min-height:44px;min-width:44px}.close-invitation{width:44px;height:44px}}

/* Atmosphere, depth and the small guest tools */
body{background:radial-gradient(circle at 50% -10%,#fff 0,#eef0ef 28%,var(--canvas) 68%);overflow-x:hidden}
.invitation-stage{position:relative;isolation:isolate}
.invitation-stage:before,.invitation-stage:after{content:'';position:fixed;z-index:-2;width:34vw;height:34vw;max-width:430px;max-height:430px;border-radius:50%;filter:blur(2px);opacity:.28;pointer-events:none}
.invitation-stage:before{top:-12vw;inset-inline-start:-8vw;background:radial-gradient(circle,#d0dad7,transparent 68%);animation:orb-drift 15s ease-in-out infinite alternate}
.invitation-stage:after{bottom:-15vw;inset-inline-end:-9vw;background:radial-gradient(circle,#c4cfce,transparent 68%);animation:orb-drift 19s ease-in-out -5s infinite alternate-reverse}
.ambient-lights{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.ambient-lights i{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 18px 4px #fff;opacity:0;animation:float-light 8s ease-in-out infinite}
.ambient-lights i:nth-child(1){top:14%;left:16%;animation-delay:-1s}.ambient-lights i:nth-child(2){top:35%;right:12%;animation-delay:-4s}.ambient-lights i:nth-child(3){top:68%;left:8%;animation-delay:-6s}.ambient-lights i:nth-child(4){top:78%;right:20%;animation-delay:-2s}.ambient-lights i:nth-child(5){top:21%;right:30%;animation-delay:-7s}
.invitation-book{border:1px solid #fff8;box-shadow:0 38px 100px #27313526,0 1px 3px #27313514;transition:transform .8s var(--ease),box-shadow .8s var(--ease)}
.invitation-book:before{content:'';position:absolute;z-index:5;inset:0;border:1px solid #fff4;pointer-events:none;mix-blend-mode:screen}
.letter-body:before,.letter-body:after{content:'';position:absolute;width:70px;height:70px;border-color:#d8dddd;border-style:solid;opacity:.55;pointer-events:none}
.letter-body:before{top:17px;inset-inline-start:17px;border-width:1px 0 0 1px}.letter-body:after{bottom:17px;inset-inline-end:17px;border-width:0 1px 1px 0}
.letter-art>img{filter:saturate(.78) contrast(1.07);transition:transform 2s var(--ease),filter 1.4s var(--ease),opacity 1s var(--ease)}
.letter-art:before{content:'';position:absolute;z-index:1;inset:-20%;background:linear-gradient(115deg,transparent 42%,#fff2 50%,transparent 58%);transform:translateX(-80%) rotate(9deg);animation:soft-shine 8s ease-in-out infinite;pointer-events:none}
.cover:after{content:'';position:absolute;z-index:1;inset:0;background:radial-gradient(circle at 72% 36%,#e8efeb10,transparent 23%),linear-gradient(115deg,transparent 35%,#fff08 47%,transparent 59%);opacity:.8;pointer-events:none;animation:cover-sheen 10s ease-in-out infinite}
.cover-content,.cover-footer{z-index:3}.open-invitation{position:relative}.open-invitation:after{content:'';position:absolute;inset:-10px -16px;border:1px solid #fff0;border-radius:50%;transform:scale(.75);transition:transform .7s var(--ease),border-color .7s;pointer-events:none}.open-invitation:hover:after{transform:scale(1);border-color:#fff3}
.map-app{position:relative;overflow:hidden}.map-app:before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,#fff8 50%,transparent 65%);transform:translateX(-130%);transition:transform .8s var(--ease)}.map-app:hover:before{transform:translateX(130%)}
.map-apps .map-app:nth-child(1){transition-delay:.03s}.map-apps .map-app:nth-child(2){transition-delay:.08s}.map-apps .map-app:nth-child(3){transition-delay:.13s}
.guest-actions{display:flex;justify-content:center;gap:8px;margin-top:16px;flex-wrap:wrap}
.guest-action{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 10px;border:1px solid transparent;background:transparent;color:#788183;border-radius:999px;font-size:.875rem;transition:color .35s,background .35s,border-color .35s,transform .5s var(--ease)}
.guest-action>span:first-child{font:400 1rem/1 Arial,sans-serif;color:#929b9c}.guest-action:hover{color:var(--ink);background:#fff;border-color:#d8dddd;transform:translateY(-3px)}
.toast{position:fixed;z-index:20;bottom:22px;left:50%;transform:translate(-50%,14px);padding:9px 16px;border:1px solid #ffffffaa;border-radius:999px;background:#192022e8;color:#f6f8f5;box-shadow:0 12px 34px #1920222b;font-size:.875rem;opacity:0;pointer-events:none;transition:opacity .35s,transform .55s var(--ease)}.toast:not([hidden]){opacity:1;transform:translate(-50%,0)}
.countdown-line{position:relative;display:inline-block;padding:6px 14px;border:1px solid #d8dddd;border-radius:999px;background:#ffffff80;box-shadow:0 8px 24px #2731350a;transition:background .4s,border-color .4s}.countdown-line:before{content:'';display:inline-block;width:5px;height:5px;margin-inline-end:8px;border-radius:50%;background:#82908f;vertical-align:middle;box-shadow:0 0 0 0 #82908f80;animation:live-pulse 2s infinite}
.is-open .guest-actions{transition-delay:.83s}.is-ready .guest-actions{opacity:0;transform:translate3d(0,23px,0);transition:transform 1.15s var(--ease),opacity 1s var(--ease)}.is-open .guest-actions{opacity:1;transform:none}
@keyframes orb-drift{to{transform:translate3d(3vw,2vw,0) scale(1.08)}}
@keyframes float-light{0%,100%{opacity:0;transform:translate3d(0,18px,0) scale(.6)}35%,65%{opacity:.8}50%{transform:translate3d(18px,-25px,0) scale(1)}}
@keyframes soft-shine{0%,55%{transform:translateX(-85%) rotate(9deg)}75%,100%{transform:translateX(85%) rotate(9deg)}}
@keyframes cover-sheen{0%,62%{transform:translateX(-30%);opacity:0}72%{opacity:.8}90%,100%{transform:translateX(30%);opacity:0}}
@keyframes live-pulse{70%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media(max-width:600px){.invitation-stage:before,.invitation-stage:after{width:68vw;height:68vw}.guest-actions{gap:3px;margin-top:13px}.guest-action{padding-inline:8px;font-size:.8125rem}.letter-body:before,.letter-body:after{width:48px;height:48px}.toast{bottom:14px;max-width:calc(100vw - 30px);white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.ambient-lights,.invitation-stage:before,.invitation-stage:after,.letter-art:before,.cover:after{animation:none!important}.guest-action,.invitation-book{transition:none!important}}

/* Keep the information panel clean: remove the date dividers and corner marks. */
.ceremony-date{border-top:0!important}
.ceremony-date>div{border-inline-start:0!important;padding-inline-start:0!important}
.letter-body:before,.letter-body:after{display:none!important}
.second-name{padding-inline-start:68px}
[data-lang=en] .second-name{padding-inline-start:69px;padding-top:17px}
.open-invitation:after{display:none!important}
