:root{--color-cream:#faf7f2;--color-ivory:#f5f1ed;--color-gold:#d4af90;--color-muted-rose:#c8a8a0;--color-sage:#9ba89e;--color-warm-beige:#e8dcc8;--color-text-primary:#4a4a4a;--color-text-secondary:#6f6f6f;--color-text-light:#9a9a9a;--font-serif:"Playfair Display", serif;--font-sans:"Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-persian:"Vazirmatn", Tahoma, sans-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);background:linear-gradient(135deg, var(--color-cream) 0%, var(--color-ivory) 100%);color:var(--color-text-primary);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:linear-gradient(135deg,#faf7f2f5 0%,#f5f1edf5 100%);flex-direction:column;min-height:100vh;display:flex;position:relative}.background-illustration{z-index:0;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.background-illustration img{opacity:.21;filter:blur(2.5px)saturate(.8);mix-blend-mode:multiply;-webkit-user-select:none;user-select:none;width:auto;height:min(82vh,720px);transform:translateY(3vh)scale(1.03)}.app-container>header,.app-container>main,.app-container>footer{z-index:1;position:relative}.language-fa,.language-fa .couple-names,.language-fa .wedding-date-hero,.language-fa .wedding-time-hero,.language-fa .detail-value,.language-fa .location-name,.language-fa .closing-message p{font-family:var(--font-persian)}.language-fa .event-type,.language-fa .detail-tag,.language-fa .detail-label,.language-fa .cta-button{letter-spacing:0;text-transform:none}.language-fa .couple-names{line-height:1.2}.language-switcher{top:max(14px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));z-index:1000;isolation:isolate;-webkit-backdrop-filter:blur(14px)saturate(140%);direction:ltr;background:#ffffffbd;border:1px solid #d4af9040;border-radius:999px;grid-template-columns:1fr 1fr;width:146px;padding:4px;display:grid;position:fixed;box-shadow:0 10px 35px #5943341f}.language-switcher-indicator{z-index:-1;background:linear-gradient(135deg,#d8b797,#cda47d);border-radius:999px;width:calc(50% - 4px);transition:transform .3s cubic-bezier(.22,1,.36,1);position:absolute;inset:4px auto 4px 4px;box-shadow:0 5px 14px #a6795338}.language-switcher-indicator.is-fa{transform:translate(100%)}.language-switcher button{min-height:32px;color:var(--color-text-secondary);font-family:var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.3rem .7rem;font-size:.75rem;font-weight:700;line-height:1;transition:color .25s}.language-switcher button:last-child{font-family:var(--font-persian);font-size:.82rem;font-weight:500}.language-switcher button.is-active{color:#fff}.language-switcher button:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:3px}.app-container:before{content:"";pointer-events:none;opacity:.88;z-index:0;background-image:radial-gradient(circle at 15% 15%,#ffffff8c,#0000 18%),radial-gradient(circle at 82% 12%,#ffffff47,#0000 22%),repeating-linear-gradient(0deg,#ffffff0a 0 1px,#0000 1px 4px);position:absolute;inset:0}.hero{padding:var(--spacing-2xl) var(--spacing-lg) var(--spacing-xl);text-align:center;position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;opacity:.55;background-image:radial-gradient(circle at 14% 20%,#ffffff9e,#0000 18%),radial-gradient(circle at 82% 12%,#ffffff6b,#0000 22%);position:absolute;inset:0}.hero-inner{z-index:2;max-width:36rem;margin:0 auto;position:relative}.hero-accent-top,.hero-accent-bottom{z-index:1;opacity:.16;position:absolute}.hero-accent-top{top:16px;left:50%;transform:translate(-50%)}.hero-accent-bottom{bottom:28px;right:6%}.hero-monogram{width:4rem;height:4rem;margin:0 auto var(--spacing-md);color:var(--color-text-secondary);font-family:var(--font-serif);letter-spacing:.35em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffd1;border:1px solid #d4af9059;border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;display:inline-flex}.event-type{font-family:var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:.75rem;font-size:.875rem;font-weight:300}.couple-names{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:-.5px;margin:.25rem 0 0;font-size:clamp(2.8rem,8vw,4.6rem);line-height:.98}.couple-names .bride,.couple-names .groom{display:block}.couple-names .ampersand{letter-spacing:.3em;color:var(--color-text-secondary);margin:.5rem 0;font-size:1.05em;font-weight:300;display:block}.hero-meta{margin-top:var(--spacing-md);flex-direction:column;align-items:center;gap:.5rem;display:flex}.wedding-date-hero,.wedding-time-hero{font-family:var(--font-serif);color:var(--color-text-secondary);font-size:1rem;font-weight:400}.hero-ornament{margin:var(--spacing-lg) auto 0;opacity:.75;width:min(220px,100%)}.hero-ornament path{stroke-dasharray:220;stroke-dashoffset:220px;animation:1.8s ease-out .5s forwards drawLine}.main-content{padding:var(--spacing-xl) var(--spacing-lg);flex:1;width:100%;max-width:720px;margin:0 auto}.invitation-section{text-align:center;margin-bottom:var(--spacing-2xl)}.invitation-section p{color:var(--color-text-secondary);letter-spacing:.2px;max-width:42rem;margin:0 auto;font-size:1rem;font-weight:300;line-height:1.9}.event-details{padding:calc(var(--spacing-lg) + .25rem);margin-bottom:var(--spacing-2xl);text-align:center;background:#ffffffbf;border:1px solid #d4af902e;border-radius:18px;box-shadow:0 20px 70px #5943340f}.event-details-head{margin-bottom:var(--spacing-lg);justify-content:center;align-items:center;gap:.75rem;display:inline-flex}.detail-tag{font-family:var(--font-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--color-text-secondary);font-size:.85rem;font-weight:400}.detail-line{background:#d4af90b3;width:4.5rem;height:1px}.detail-grid{gap:var(--spacing-lg);display:grid}.event-detail-item{padding:var(--spacing-md) 0;border-top:1px solid #d4af9026}.event-detail-item:first-child{border-top:none}.detail-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.14em;margin-bottom:.35rem;font-size:.875rem;font-weight:300;display:block}.detail-value{font-family:var(--font-serif);color:var(--color-text-primary);font-size:1.2rem;font-weight:500;line-height:1.45}.detail-address{font-size:1rem}.location-section{text-align:center;margin-bottom:var(--spacing-2xl)}.location-copy{margin-bottom:var(--spacing-lg)}.location-name{font-family:var(--font-serif);color:var(--color-text-primary);margin-bottom:.5rem;font-size:1.3rem;font-weight:500}.location-address{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);max-width:34rem;margin-left:auto;margin-right:auto;font-size:.95rem;line-height:1.75}.cta-button{background:var(--color-gold);color:#fff;font-family:var(--font-sans);letter-spacing:.08em;cursor:pointer;text-transform:uppercase;border:1px solid #0000;border-radius:99px;justify-content:center;align-items:center;padding:1rem 2.5rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .25s,box-shadow .25s,background-color .25s;display:inline-flex}.cta-button:hover,.cta-button:focus-visible{background:#c09d72;transform:translateY(-1px);box-shadow:0 18px 40px #d4af9033}.cta-button:active{transform:translateY(0)}.closing-message{text-align:center;margin-bottom:var(--spacing-2xl)}.closing-line{width:4.5rem;height:1px;margin:0 auto var(--spacing-md);background:#d4af90b3}.closing-message p{font-family:var(--font-serif);color:var(--color-text-secondary);max-width:35rem;margin:0 auto;font-size:1.1rem;line-height:1.9}.footer{padding:var(--spacing-xl) var(--spacing-lg);text-align:center;border-top:1px solid #d4af901f}.footer-accent{margin-bottom:var(--spacing-md);opacity:.24}.footer-text{font-family:var(--font-serif);color:var(--color-text-secondary);letter-spacing:.16em;text-transform:uppercase;font-size:1.05rem;font-weight:400}.footer-year{color:var(--color-text-light);margin-top:var(--spacing-md);font-size:.85rem;font-weight:300}.section{opacity:1;transform:translateY(0)}@keyframes drawLine{to{stroke-dashoffset:0}}@media (width<=480px){:root{--spacing-xl:2rem;--spacing-2xl:2.5rem}.hero{padding:var(--spacing-xl) var(--spacing-md) var(--spacing-lg)}.background-illustration img{opacity:.19;filter:blur(2px)saturate(.75);height:min(72vh,620px);transform:translateY(5vh)scale(1.05)}.hero-monogram{width:3.5rem;height:3.5rem;font-size:.85rem}.couple-names{font-size:clamp(2rem,7vw,3rem)}.hero-meta{gap:.35rem}.wedding-date-hero,.wedding-time-hero{font-size:.95rem}.main-content{padding:var(--spacing-lg) var(--spacing-md)}.event-details{padding:var(--spacing-md)}.detail-grid{gap:var(--spacing-md)}.detail-value{font-size:1.05rem}.location-name{font-size:1.2rem}.location-address{font-size:.92rem}.cta-button{padding:.85rem 1.9rem;font-size:.875rem}.footer{padding:var(--spacing-lg) var(--spacing-md)}}@media (width<=360px){.couple-names{font-size:clamp(1.75rem,6vw,2.5rem)}.invitation-section p{font-size:.95rem}.event-type{font-size:.72rem}.detail-label{font-size:.75rem}.detail-value{font-size:.95rem}.detail-address{font-size:.92rem}}@media (width>=768px){.hero{padding:var(--spacing-2xl) var(--spacing-lg) var(--spacing-xl)}.main-content{max-width:740px}.event-details{padding:var(--spacing-2xl)}.cta-button{padding:1.1rem 3rem}.couple-names{font-size:clamp(3rem,5vw,4.5rem)}}@media (width>=1024px){.hero{padding:var(--spacing-2xl) var(--spacing-lg) var(--spacing-xl)}.couple-names{font-size:4.5rem}.event-details{gap:var(--spacing-lg);text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.language-fa .event-details{text-align:right}.event-details-head{grid-column:1/-1}.event-detail-item{padding:0}}.music-controls{z-index:999;direction:ltr;position:fixed;bottom:18px;right:58px}.music-toggle,.music-skip{color:var(--color-text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #d4af902e;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 8px 20px #59433414}.music-toggle{border-radius:50%;width:44px;height:44px;font-size:1.05rem;transition:transform .12s,box-shadow .12s}.music-toggle:active{transform:scale(.96)}.music-skip{opacity:.36;width:32px;height:32px;font-family:var(--font-sans);pointer-events:auto;border-radius:50%;font-size:1.4rem;line-height:1;transition:opacity .25s,transform .3s cubic-bezier(.22,1,.36,1),box-shadow .25s;position:absolute;top:50%}.music-previous{right:calc(100% + 7px);transform:translate(14px,-50%)scale(.75)}.music-next{left:calc(100% + 7px);transform:translate(-14px,-50%)scale(.75)}.music-controls:hover .music-skip,.music-controls:focus-within .music-skip{opacity:.92;transform:translateY(-50%)scale(1)}.music-skip:hover,.music-skip:focus-visible{outline:none;box-shadow:0 10px 24px #59433429;opacity:1!important}@media (width<=420px){.language-switcher{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));width:132px}.language-switcher button{min-height:30px;padding-inline:.5rem}.music-controls{bottom:12px;right:52px}.music-toggle{width:40px;height:40px;font-size:.95rem}.music-skip{width:30px;height:30px}}@media (prefers-contrast:more){.event-details{border:2px solid var(--color-gold)}.detail-value{font-weight:700}}@media (prefers-reduced-motion:reduce){.hero-ornament path,.section,.animate-fade-in-up,.animate-fade-in-down{animation:none!important}.cta-button:hover,.cta-button:active{box-shadow:none;transform:none}}
