@font-face{font-family:IranNastaliq;src:url(/fonts/IranNastaliq.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{--color-cream:#f7f1e4;--color-ivory:#ece2cd;--color-gold:#b39459;--color-muted-rose:#a75d4c;--color-sage:#5d7669;--color-turquoise:#4c9692;--color-lapis:#22566e;--color-persian-blue:#286b78;--color-warm-beige:#dca;--color-text-primary:#263d3b;--color-text-secondary:#5c625d;--color-text-light:#837d70;--font-serif:"Cormorant Garamond", Georgia, serif;--font-sans:"Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-persian:"Vazirmatn", Tahoma, sans-serif;--font-nastaliq:"IranNastaliq", "Noto Nastaliq Urdu", Georgia, serif;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:4rem}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{font-family:var(--font-sans);color:var(--color-text-primary);background-color:#173f4b;background-image:linear-gradient(30deg,#ffffff06 12%,#0000 12.5% 87%,#ffffff06 87.5%),linear-gradient(150deg,#ffffff06 12%,#0000 12.5% 87%,#ffffff06 87.5%);background-size:32px 56px;line-height:1.6;overflow-x:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes softFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-fade-in{animation:.8s ease-out forwards fadeIn}.animate-fade-in-up{animation:.8s ease-out forwards fadeInUp}.animate-fade-in-down{animation:.8s ease-out forwards fadeInDown}.animate-float{animation:6s ease-in-out infinite softFloat}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.app-container{isolation:isolate;background:0 0;flex-direction:column;width:100%;min-height:100vh;margin:0 auto;display:flex;position:relative;overflow:hidden}.app-container:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#144252c7,#123946d6),repeating-linear-gradient(90deg,#ffffff05 0 1px,#0000 1px 5px);position:absolute;inset:0}.app-container:after{content:"";z-index:-2;pointer-events:none;backface-visibility:hidden;background:#173f4b url(/images/wedding-piano.png) 50% 25%/cover no-repeat;width:100%;height:100lvh;position:fixed;top:0;left:0;right:0;transform:translateZ(0)}.hero{--hero-monogram-intro-gap:clamp(.9rem, 2vh, 1.15rem);--hero-intro-names-gap:clamp(.72rem, 1.6vh, .95rem);--hero-name-meta-gap:clamp(.68rem, 1.5vh, .9rem);--hero-date-divider-gap:clamp(.45rem, 1vh, .65rem);text-align:center;background:radial-gradient(circle at 50% 39%,#0000,#0a283338 72%);place-items:center;min-height:clamp(32.5rem,88svh,38.5rem);padding-block:clamp(3.9rem,7vh,4.6rem) clamp(2.4rem,4vh,2.9rem);padding-inline:2rem;display:grid;position:relative;overflow:hidden}.ornament-stem{stroke:currentColor;stroke-width:1.1px;stroke-linecap:round}.ornament-stem-fine{stroke-width:.7px;opacity:.72}.ornament-leaf{fill:#4c969217;stroke:currentColor;stroke-width:.8px}.shah-abbasi{fill:#b3945914;stroke:var(--color-gold);stroke-width:.8px}.shah-abbasi-small{opacity:.72}.persian-arch{z-index:1;width:min(470px,100% - 4.5rem);height:calc(100% - 2.35rem);color:var(--color-gold);opacity:.62;pointer-events:none;position:absolute;top:1.4rem;left:50%;transform:translate(-50%)}.persian-arch .arch-line{stroke-dasharray:1500;stroke-dashoffset:1500px;animation:1.7s cubic-bezier(.22,1,.36,1) forwards archReveal}.persian-arch .arch-line-middle{animation-delay:.14s}.persian-arch .arch-line-inner{animation-delay:.26s}.persian-arch .arch-apex{opacity:.46}.persian-arch .arch-rosettes{opacity:.48}.hero-inner{z-index:2;align-items:center;gap:var(--hero-monogram-intro-gap);flex-direction:column;width:100%;max-width:29rem;margin:0 auto;display:flex;position:relative}.hero-origin,.hero-story,.hero-intro,.hero-details,.hero-date-group{flex-direction:column;align-items:center;display:flex}.hero-story{gap:var(--hero-intro-names-gap)}.hero-origin{transform:translateY(.65rem)}.hero-monogram-shell{color:#fff9e9;width:clamp(4rem,8vh,4.5rem);height:clamp(4rem,8vh,4.5rem);font-family:var(--font-serif);letter-spacing:.08em;justify-content:center;align-items:center;font-size:1.08rem;font-weight:600;line-height:1;display:inline-flex;position:relative}.hero-medallion{fill:none;width:100%;height:100%;stroke:var(--color-gold);stroke-width:.8px;vector-effect:non-scaling-stroke;position:absolute;inset:0;overflow:visible}.hero-medallion circle{stroke:var(--color-turquoise);stroke-width:.55px;opacity:.42}.hero-monogram-shell>span{z-index:1;position:relative}.blessing{color:#efd69a;font-family:var(--font-serif);font-size:1rem;font-style:italic;font-weight:500}.hero-intro{justify-content:center;gap:.08rem;min-block-size:4rem}.event-type{color:#a9ded8;letter-spacing:.25em;text-transform:uppercase;font-size:.68rem;font-weight:500}.hero-details{gap:var(--hero-name-meta-gap)}.couple-names{color:#fff9e9;min-block-size:clamp(10rem,20vw,11rem);font-family:var(--font-serif);letter-spacing:-.035em;align-content:center;justify-items:center;row-gap:.18rem;margin:0;font-size:clamp(2.65rem,6.1vw,3.5rem);font-weight:600;line-height:.8;display:grid}.couple-names .bride,.couple-names .groom,.couple-names .ampersand{display:block}.couple-names .ampersand{color:var(--color-gold);font-size:.72em;font-style:italic;font-weight:400;line-height:1}.hero-date-group{gap:var(--hero-date-divider-gap)}.hero-schedule{flex-direction:column;align-items:center;gap:.28rem;display:flex}.hero-meta{justify-content:center;align-items:center;gap:.85rem;display:flex}.hero-meta:before{content:"";background:#b78a4299;order:2;width:1px;height:1.8rem}.wedding-date-hero,.wedding-time-hero{color:#fff9e9eb;font-family:var(--font-serif);white-space:nowrap;font-size:1.02rem;font-weight:500}.wedding-date-hero{order:1}.wedding-time-hero{order:3}.hero-venue{color:#efd69a;font-family:var(--font-serif);letter-spacing:.16em;text-transform:uppercase;font-size:.78rem;font-weight:600}.hero-ornament{width:7.5rem;color:var(--color-gold);opacity:.78;line-height:0}.hero-inner{text-shadow:0 2px 14px #0519229e}.language-switcher{z-index:6;width:2.75rem;height:2.75rem;color:var(--color-lapis);font-family:var(--font-persian);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:pointer;background:#f7f1e4c7;border:1px solid #b394598c;border-radius:50%;place-items:center;padding:0;font-size:.75rem;font-weight:500;line-height:1;transition:color .25s,border-color .25s,background-color .25s;display:grid;position:absolute;top:1.25rem;right:1.25rem}.language-switcher:hover,.language-switcher:focus-visible{color:var(--color-cream);background:var(--color-lapis);border-color:var(--color-lapis);outline:none}.persian-divider{width:8.5rem;height:auto;color:var(--color-gold);display:block;overflow:visible}.persian-divider path,.persian-divider circle{stroke:currentColor;stroke-width:.8px}.persian-divider .divider-leaf{fill:#4c96921f}.persian-divider .divider-star{fill:var(--color-cream)}.hero-divider{z-index:3;position:absolute;bottom:.25rem;left:50%;transform:translate(-50%)}.hero-ornament path{stroke-dasharray:220;stroke-dashoffset:220px;animation:1.8s ease-out .5s forwards drawLine}.main-content{flex:1;width:100%;max-width:700px;margin:0 auto;padding-block:clamp(.5rem,1.5vw,.85rem) 2.5rem;padding-inline:2.5rem}.invitation-section,.location-section,.closing-message{width:min(90%,30rem)}.invitation-section{text-align:center;margin:0 auto 2.9rem;position:relative}.section-flower{color:#a9ded8;margin-bottom:.5rem;display:inline-block}.invitation-section p{color:#fff9e9;min-block-size:8.6rem;font-family:var(--font-serif);text-shadow:0 2px 14px #051922b8;white-space:pre-line;align-content:center;font-size:1.27rem;font-weight:500;line-height:1.65;display:grid}.location-section{color:#fff9e9;text-align:center;background:radial-gradient(circle at 50% -10%,#8fcec424,#0000 45%),#1958633d;border:1px solid #b394597a;flex-direction:column;align-items:center;gap:.8rem;margin:0 auto 2.8rem;padding-block:1.2rem 1.15rem;padding-inline:1.5rem;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 28px #05192224}.location-section:before,.location-section:after{content:"";pointer-events:none;position:absolute}.location-section:before{opacity:.045;background-image:radial-gradient(circle,#fff 0 1px,#0000 1.5px),radial-gradient(circle,#fff 0 1px,#0000 1.5px);background-position:0 0,8px 8px;background-size:16px 16px;inset:0}.location-section:after{border:1px solid #e8d3a033;inset:7px}.location-section>*{z-index:1;position:relative}.venue-ornament{justify-content:center;align-items:center;gap:7px;display:flex}.venue-ornament span{border:1px solid #ebd7a5c7;width:6px;height:6px;transform:rotate(45deg)}.venue-ornament span:nth-child(2){background:#ffffff0f;width:11px;height:11px}.location-copy{flex-direction:column;align-items:center;gap:.3rem;display:flex}.location-eyebrow{color:#ead39b;letter-spacing:.3em;text-transform:uppercase;place-items:center;min-block-size:1.8rem;font-size:.67rem;font-weight:600;display:grid}.location-name{color:#fff9e9;font-family:var(--font-serif);font-size:2.05rem;font-weight:600;line-height:1.05}.location-address{min-block-size:3.15rem;color:#fff9e9db;max-width:30rem;font-family:var(--font-serif);justify-content:center;align-items:center;margin:0 auto;font-size:.92rem;font-weight:500;line-height:1.75;display:flex}.mini-map{background:#eeeee9;border:1px solid #eed8a3c2;width:min(62%,19rem);margin-top:.25rem;text-decoration:none;display:block;position:relative;overflow:hidden;box-shadow:0 10px 24px #08202b3d}.mini-map img{object-fit:cover;width:100%;height:clamp(6.5rem,19vw,8.4rem);transition:transform .45s,filter .3s;display:block}.mini-map:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 5px #fff9e947}.mini-map-action{color:#fff9e9;letter-spacing:.07em;text-transform:uppercase;background:#194353f0;border:1px solid #eed8a3c2;justify-content:center;align-items:center;gap:.3rem;min-height:30px;padding:.32rem .52rem;font-size:.5rem;font-weight:600;transition:color .25s,background-color .25s;display:inline-flex;position:absolute;bottom:.8rem;right:.8rem}.mini-map-action svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:.7rem;height:.7rem}.mini-map:hover img,.mini-map:focus-visible img{filter:saturate(1.08);transform:scale(1.025)}.mini-map:hover .mini-map-action,.mini-map:focus-visible .mini-map-action{color:var(--color-persian-blue);background:#fff9e9}.mini-map:focus-visible{outline-offset:4px;outline:3px solid #ead39b}.closing-message{text-align:center;margin:0 auto 1rem}.closing-divider{margin:0 auto 1rem}.closing-message p{color:#fff9e9eb;min-block-size:5rem;font-family:var(--font-serif);text-shadow:0 2px 14px #051922b8;place-items:center;padding-block:.08em .24em;font-size:1.15rem;font-style:italic;line-height:2;display:grid}.footer{padding:1rem 1.5rem calc(.95rem + env(safe-area-inset-bottom));color:#fff9e9;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c313ec7;border-top:1px solid #b394598c;justify-items:center;gap:.24rem;display:grid;position:relative}.footer-accent{color:#d9bd75;opacity:.7;line-height:0}.footer-text{color:#fff9e9;font-family:var(--font-serif);letter-spacing:.12em;font-size:1.2rem;font-weight:600;line-height:1.1}.footer-city{color:#d9bd75;letter-spacing:.3em;text-transform:uppercase;font-size:.62rem;font-weight:600;line-height:1.2}.footer-year{color:#fff9e994;font-family:var(--font-serif);font-size:.9rem;line-height:1.2}.section{opacity:0;transition:opacity .8s ease-out,transform .8s ease-out;transform:translateY(18px)}.reveal-visible{opacity:1;transform:translateY(0)}@keyframes drawLine{to{stroke-dashoffset:0}}@keyframes archReveal{to{stroke-dashoffset:0}}.locale-fa{font-family:var(--font-persian)}.persian-nastaliq{font-family:var(--font-nastaliq);font-synthesis:none;font-style:normal;font-weight:400;overflow:visible}.locale-fa .mini-map-action,.locale-fa .footer-city{font-family:var(--font-persian);letter-spacing:0;text-transform:none}.locale-fa .blessing.persian-nastaliq{padding-block:.08em .22em;line-height:2}.locale-fa .event-type.persian-nastaliq{letter-spacing:0;text-transform:none;padding-block:.04em .14em;font-size:.8rem;line-height:1.8}.locale-fa .location-eyebrow.persian-nastaliq{letter-spacing:0;text-transform:none;padding-block:.04em .14em;font-size:.78rem;line-height:1.8}.locale-fa .couple-names.persian-nastaliq{letter-spacing:0;row-gap:0;padding-block:.24em .34em;line-height:1.22}.locale-fa .couple-names.persian-nastaliq .bride,.locale-fa .couple-names.persian-nastaliq .groom{padding-block:.04em .1em;line-height:1.22}.locale-fa .couple-names.persian-nastaliq .ampersand{padding-block:.04em .1em;font-size:.62em;line-height:1.15;display:block}.locale-fa .wedding-date-hero,.locale-fa .wedding-time-hero,.locale-fa .hero-venue,.locale-fa .invitation-section p,.locale-fa .location-name,.locale-fa .location-address,.locale-fa .footer-text,.locale-fa .footer-year{font-family:var(--font-persian)}.locale-fa .hero-venue{letter-spacing:0;text-transform:none;font-weight:500}.locale-fa .invitation-section p{font-weight:400}.locale-fa .location-name{font-weight:500}.locale-fa .location-address{font-weight:400}.locale-fa .footer-text{letter-spacing:0}@media (width<=600px){.app-container{box-shadow:none}.hero{padding-block:clamp(3.7rem,7vh,4.2rem) clamp(2.2rem,4vh,2.6rem);padding-inline:1.35rem}.persian-arch{width:calc(100% - 1.75rem);height:calc(100% - 1.95rem);top:1.35rem}.hero-monogram-shell{width:3.85rem;height:3.85rem}.couple-names{font-size:clamp(2.3rem,10.6vw,2.85rem)}.hero-meta{gap:.65rem}.wedding-date-hero,.wedding-time-hero{font-size:.94rem}.hero-ornament{width:6.7rem}.language-switcher{width:2.65rem;height:2.65rem;top:.9rem;right:.8rem}.main-content{padding-block:.45rem 2.25rem;padding-inline:1.25rem}.invitation-section{margin-bottom:2.35rem}.invitation-section p{font-size:1rem;line-height:1.72}.location-section{gap:.7rem;margin-bottom:2.35rem;padding-block:1.1rem 1.05rem;padding-inline:1.1rem}.location-name{font-size:1.85rem}.location-address{overflow-wrap:anywhere;font-size:.84rem}}@media (width<=360px){.hero{--hero-monogram-intro-gap:.68rem;--hero-intro-names-gap:.55rem;--hero-name-meta-gap:.52rem;--hero-date-divider-gap:.36rem;min-height:32rem;padding-inline:1rem}.blessing{font-size:.9rem}.event-type{font-size:.6rem}.couple-names{font-size:2.25rem}.hero-meta{flex-direction:column;gap:.15rem}.hero-meta:before{display:none}.invitation-section p{min-block-size:10.3rem}.main-content,.location-section{padding-inline:1rem}.mini-map img{height:6.5rem}.mini-map-action{min-height:30px;padding:.32rem .5rem;bottom:.55rem;right:.55rem}}@media (height<=620px){.hero{--hero-monogram-intro-gap:.62rem;--hero-intro-names-gap:.48rem;--hero-name-meta-gap:.44rem;--hero-date-divider-gap:.3rem;min-height:31.5rem;padding-block:3.4rem 2rem}.hero-monogram-shell{width:3.65rem;height:3.65rem}.couple-names{font-size:clamp(2.2rem,9.35vh,2.65rem)}}@media (prefers-contrast:more){.location-section{outline:2px solid #e2c77f}}@media (prefers-reduced-motion:reduce){.persian-arch .arch-line,.hero-ornament path,.section,.animate-fade-in-up,.animate-fade-in-down{animation:none!important}.persian-arch .arch-line,.hero-ornament path{stroke-dashoffset:0}.mini-map:hover img,.mini-map:focus-visible img{transform:none}}
