: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;--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{background:linear-gradient(135deg,#faf7f2f5 0%,#f5f1edf5 100%);flex-direction:column;min-height:100vh;display:flex;position:relative}.app-container:before{content:"";pointer-events:none;opacity:.88;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:0;transition:opacity .9s ease-out,transform .9s ease-out;transform:translateY(20px)}.reveal-visible{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)}.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}.event-details-head{grid-column:1/-1}.event-detail-item{padding:0}}@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}}
