: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-calligraphy:"Noto Nastaliq Urdu", "Vazirmatn", Tahoma, 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:var(--color-cream);flex-direction:column;width:min(100%,860px);min-height:100vh;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 0 72px #051c264d}.app-container:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#f8f1dfb8,#f8f1dfb8),repeating-linear-gradient(90deg,#233c3d09 0 1px,#0000 1px 5px);position:absolute;inset:0}.hero{--hero-place-monogram-gap:clamp(.55rem, 1.2vh, .75rem);--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%,#ffffffc7,#0000 42%),linear-gradient(#4c96920e,#0000 48%);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}.tile-border{z-index:4;background-color:#22566ee6;background-image:linear-gradient(45deg,#0000 42%,#e2cc95e0 43% 57%,#0000 58%),linear-gradient(-45deg,#0000 42%,#68afa8e0 43% 57%,#0000 58%);background-position:0 0,6px 0;background-size:12px 12px;height:6px;position:absolute;left:0;right:0}.tile-border-top{top:0}.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-place-group,.hero-intro,.hero-details,.hero-date-group{flex-direction:column;align-items:center;display:flex}.hero-origin{gap:var(--hero-place-monogram-gap)}.hero-story{gap:var(--hero-intro-names-gap)}.hero-place{color:var(--color-lapis);letter-spacing:.34em;text-transform:uppercase;font-size:.68rem;font-weight:600}.hero-monogram-shell{width:clamp(4rem,8vh,4.5rem);height:clamp(4rem,8vh,4.5rem);color:var(--color-lapis);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:var(--color-gold);font-family:var(--font-serif);font-size:1rem;font-style:italic;font-weight:500}.hero-intro{gap:.08rem}.event-type{color:var(--color-turquoise);letter-spacing:.25em;text-transform:uppercase;font-size:.68rem;font-weight:500}.hero-details{gap:var(--hero-name-meta-gap)}.couple-names{color:var(--color-text-primary);font-family:var(--font-serif);letter-spacing:-.035em;justify-items:center;row-gap:.18rem;margin:0;font-size:clamp(3.45rem,8vw,4.55rem);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-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:var(--color-text-secondary);font-family:var(--font-serif);font-size:1.02rem;font-weight:500}.wedding-date-hero{order:1}.wedding-time-hero{order:3}.hero-ornament{width:7.5rem;color:var(--color-gold);opacity:.78;line-height:0}.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{text-align:center;max-width:36rem;margin:0 auto 2.9rem;position:relative}.section-flower{color:var(--color-turquoise);margin-bottom:.5rem;display:inline-block}.invitation-section p{color:var(--color-text-primary);font-family:var(--font-serif);white-space:pre-line;font-size:1.27rem;font-weight:500;line-height:1.65}.location-section{color:#fff9e9;text-align:center;background:radial-gradient(circle at 50% -10%, #8fcec433, transparent 45%), var(--color-persian-blue);border:1px solid #b39459ad;flex-direction:column;align-items:center;gap:.8rem;margin-bottom:2.8rem;padding-block:1.55rem 1.45rem;padding-inline:2.1rem;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 38px #14364624}.location-section:before,.location-section:after{content:"";pointer-events:none;position:absolute}.location-section:before{opacity:.07;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 #e8d3a047;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;font-size:.67rem;font-weight:600}.location-name{color:#fff9e9;font-family:var(--font-serif);font-size:2.05rem;font-weight:600;line-height:1.05}.location-address{color:#fff9e9db;max-width:30rem;font-family:var(--font-serif);margin:0 auto;font-size:.92rem;font-weight:500;line-height:1.75}.cta-button{color:#fff9e9;letter-spacing:.15em;text-transform:uppercase;background:#f7f1e40f;border:1px solid #eed8a3c2;border-radius:0;justify-content:center;align-items:center;gap:.65rem;min-height:48px;padding:.78rem 1.55rem;font-size:.67rem;font-weight:600;text-decoration:none;transition:color .25s,background-color .25s,transform .25s;display:inline-flex}.cta-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:1rem;height:1rem}.cta-button:hover,.cta-button:focus-visible{color:var(--color-lapis);background:#ead39b;transform:translateY(-1px)}.closing-message{text-align:center;max-width:32rem;margin:0 auto 1rem}.closing-divider{margin:0 auto 1rem}.closing-message p{color:var(--color-text-secondary);font-family:var(--font-serif);font-size:1.15rem;font-style:italic;line-height:1.7}.footer{padding:1rem 1.5rem calc(.95rem + env(safe-area-inset-bottom));color:#fff9e9;text-align:center;background:#173f4b;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)}.locale-fa .hero{--hero-place-monogram-gap:clamp(.45rem, 1vh, .62rem);--hero-monogram-intro-gap:clamp(.78rem, 1.6vh, .95rem);--hero-intro-names-gap:clamp(.58rem, 1.25vh, .76rem);--hero-name-meta-gap:clamp(.5rem, 1vh, .68rem);--hero-date-divider-gap:clamp(.38rem, .8vh, .52rem)}.locale-fa .hero-place,.locale-fa .event-type,.locale-fa .location-eyebrow,.locale-fa .cta-button,.locale-fa .footer-city{font-family:var(--font-persian);letter-spacing:0;text-transform:none}.locale-fa .blessing{font-family:var(--font-calligraphy);font-size:1.1rem;font-style:normal;line-height:1.65}.locale-fa .hero-intro{gap:clamp(.2rem,.5vh,.3rem)}.locale-fa .couple-names{font-family:var(--font-calligraphy);letter-spacing:0;grid-template-columns:repeat(3,max-content);align-items:center;gap:0 clamp(.55rem,2vw,.85rem);padding-block:.08em .2em;font-size:clamp(2.5rem,5.5vw,2.85rem);font-weight:400;line-height:1.3}.locale-fa .couple-names .ampersand{min-block-size:0;font-family:var(--font-calligraphy);padding-block:0;font-size:.58em;font-style:normal;font-weight:400;line-height:1.2;display:block}.locale-fa .hero-meta{flex-direction:column;gap:.08rem}.locale-fa .hero-meta:before{display:none}.locale-fa .wedding-date-hero,.locale-fa .wedding-time-hero,.locale-fa .invitation-section p,.locale-fa .location-name,.locale-fa .location-address,.locale-fa .closing-message p,.locale-fa .footer-text,.locale-fa .footer-year{font-family:var(--font-persian)}.locale-fa .invitation-section p{font-size:1.02rem;font-weight:400;line-height:2.15}.locale-fa .location-name{font-size:1.72rem;font-weight:500}.locale-fa .location-address{font-size:.86rem;font-weight:400;line-height:1.9}.locale-fa .closing-message p{font-size:.98rem;font-style:normal;line-height:1.9}.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(3rem,14vw,3.8rem)}.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.4rem 1.3rem;padding-inline:1.35rem}.location-name{font-size:1.85rem}.location-address{overflow-wrap:anywhere;font-size:.84rem}}@media (width<=360px){.hero{--hero-place-monogram-gap:.45rem;--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}.hero-place{font-size:.6rem}.blessing{font-size:.9rem}.event-type{font-size:.6rem}.couple-names{font-size:2.85rem}.locale-fa .hero{--hero-place-monogram-gap:.38rem;--hero-monogram-intro-gap:.62rem;--hero-intro-names-gap:.45rem;--hero-name-meta-gap:.42rem;--hero-date-divider-gap:.32rem}.locale-fa .couple-names{column-gap:.45rem;font-size:2.4rem}.hero-meta{flex-direction:column;gap:.15rem}.hero-meta:before{display:none}.main-content,.location-section{padding-inline:1rem}.cta-button{width:100%}}@media (height<=620px){.hero{--hero-place-monogram-gap:.38rem;--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.85rem,12vh,3.4rem)}.locale-fa .couple-names{font-size:2.35rem}}@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}.cta-button:hover,.cta-button:active{transform:none}}
