@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Lato:wght@300;400;700&display=swap";:root{--color-bg:#f9f7f2;--color-text:#7b2d2d;--color-accent:#8b3535;--color-muted:#9b6b6b;--color-line:#7b2d2d40;--font-heading:"Cormorant Garamond", serif;--font-body:"Lato", sans-serif;--transition-smooth:all .6s cubic-bezier(.16, 1, .3, 1)}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.8s forwards fade-up}.fade-up-delay-1{animation-delay:.2s}.fade-up-delay-2{animation-delay:.4s}.fade-up-delay-3{animation-delay:.6s}.fade-up-delay-4{animation-delay:.8s}.fade-up-delay-5{animation-delay:1s}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100vh}a{color:inherit;text-decoration:none;transition:opacity .2s}a:hover{opacity:.6}.page{flex-direction:column;align-items:center;min-height:100vh;padding:2rem 1.5rem 3rem;display:flex}.countdown-bar{text-align:center;letter-spacing:.18em;color:var(--color-text);padding:1.2rem 0 .8rem;font-size:.72rem;font-weight:400;line-height:1.8}.countdown-timer{justify-content:center;align-items:center;gap:1.2rem;margin:.8rem auto 1rem;display:flex}.countdown-slot{flex-direction:column;align-items:center;display:flex}.slot-value{font-family:var(--font-heading);color:var(--color-accent);font-size:2rem;font-weight:400;line-height:1}.slot-label{letter-spacing:.14em;color:var(--color-muted);margin-top:.4rem;font-size:.58rem}.countdown-divider{color:var(--color-line);margin-top:-.8rem;font-size:1.2rem}.nav{border-bottom:1px solid var(--color-line);flex-wrap:wrap;justify-content:center;gap:.25rem 2rem;width:100%;max-width:900px;padding:1rem 0 1.5rem;display:flex}.hero{text-align:center;flex-direction:column;flex:1;align-items:center;padding:3rem 1rem 2rem;display:flex}.wreath-ornament{width:150px;height:auto;margin-bottom:2.5rem;margin-left:auto;margin-right:auto}.photos-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-rows:280px;grid-auto-flow:dense;gap:20px;margin-top:2rem;display:grid}.photo-tile{border:1px solid var(--color-line);background:#fff;transition:transform .4s;position:relative;overflow:hidden}.photo-tile:hover{z-index:10;transform:translateY(-8px)}.photo-tile:nth-child(3n){grid-row:span 2}.photo-tile:nth-child(4n){grid-column:span 2}.photo-tile img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.photo-tile:hover img{transform:scale(1.08)}.photo-overlay{opacity:0;background:#7b2d2d66;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:absolute;inset:0}.photo-tile:hover .photo-overlay{opacity:1}.photo-overlay span{color:#fff;font-family:var(--font-heading);letter-spacing:.1em;border:1px solid #fff;padding:.5rem 1.5rem;font-size:1.2rem}.loading-spinner{text-align:center;font-family:var(--font-heading);color:var(--color-accent);letter-spacing:.05em;margin:3rem 0;font-style:italic}.scroll-trigger{min-height:50px}@media (width<=600px){.photos-grid{grid-template-columns:1fr;grid-auto-rows:300px}.photo-tile:nth-child(4n){grid-column:span 1}}.timeline-container{max-width:900px;margin:3rem auto;padding:0 1rem;position:relative}.timeline-container:before{content:"";background:var(--color-line);width:1px;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.timeline-item{justify-content:space-between;align-items:center;width:100%;margin-bottom:2.5rem;display:flex;position:relative}.timeline-content{border:1px solid var(--color-line);width:44%;transition:var(--transition-smooth);background:#fff;border-radius:4px;padding:1rem 1.25rem;position:relative;box-shadow:0 4px 15px #00000005}.timeline-item.compact{margin-bottom:1.5rem}.timeline-item:nth-child(2n) .timeline-content{text-align:right}.timeline-item:nth-child(2n) .timeline-header{flex-direction:row-reverse}.timeline-header{align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.timeline-item.compact .timeline-content{padding:.6rem .8rem}.timeline-item.compact .timeline-title{margin-bottom:0;font-size:1rem;display:inline-block}.timeline-item.compact .timeline-time{opacity:.8;margin-bottom:0;font-size:.9rem;display:inline-block}.timeline-item.compact .timeline-description{font-size:.75rem;line-height:1.3}.timeline-item.compact .timeline-icon{flex-shrink:0;width:28px;height:28px;margin-bottom:0}.timeline-content:hover{transform:translateY(-5px);box-shadow:0 10px 25px #0000000d}.timeline-item:nth-child(2n){flex-direction:row-reverse}.timeline-dot{background:var(--color-bg);border:2px solid var(--color-accent);z-index:2;border-radius:50%;width:12px;height:12px;position:absolute;left:50%;transform:translate(-50%)}.timeline-time{font-family:var(--font-heading);color:var(--color-accent);letter-spacing:.05em;margin-bottom:.5rem;font-size:1.1rem;display:block}.timeline-title{font-family:var(--font-heading);color:var(--color-text);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.8rem;font-size:1.4rem}.timeline-description{color:var(--color-muted);font-size:.85rem;line-height:1.6}.timeline-icon{color:var(--color-accent);background:var(--color-bg);border:1px solid var(--color-line);width:48px;height:48px;transition:var(--transition-smooth);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1rem;display:flex}.timeline-content:hover .timeline-icon{border-color:var(--color-accent);background:#fff;transform:scale(1.1)}@media (width<=768px){.timeline-container:before{left:20px}.timeline-item{justify-content:flex-start;margin-bottom:3rem;padding-left:45px}.timeline-item:nth-child(2n){flex-direction:row}.timeline-item:nth-child(2n) .timeline-content{text-align:center;align-items:center}.timeline-item:nth-child(2n) .timeline-icon{margin-left:initial;margin-right:initial}.timeline-content{text-align:center;flex-direction:column;align-items:center;width:100%;display:flex}.timeline-dot{left:20px}}.couple-names{font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:1.5rem;font-size:clamp(2.4rem,6vw,4rem);font-weight:400;line-height:1.1}.wedding-date{letter-spacing:.22em;text-transform:uppercase;color:var(--color-text);font-size:.72rem;line-height:2}.divider{background:var(--color-line);width:80px;height:1px;margin:1.5rem auto 1rem}.section-page{width:100%;max-width:960px;margin:0 auto;padding:3rem 1.5rem 6rem}.section-page h2{font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;text-align:center;margin-bottom:2rem;font-size:2rem;font-weight:400}.section-page p{color:var(--color-muted);text-align:center;font-size:.9rem;line-height:1.9}.table-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;width:100%;max-width:900px;margin:0 auto;display:grid}.table-card{border:1px solid var(--color-line);background:#ffffff80;border-radius:2px;flex-direction:column;padding:1.5rem;display:flex}.table-card h3{font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.8rem;font-size:1.3rem;font-weight:400}.table-card ul{flex-wrap:wrap;gap:.3rem 1.5rem;list-style:none;display:flex}.table-card ul li{letter-spacing:.06em;color:var(--color-muted);font-size:.82rem}.footer{text-align:center;letter-spacing:.1em;color:var(--color-muted);padding:2rem 0 1rem;font-size:.68rem;line-height:2}.footer a{text-decoration:underline}.nav-container{border-bottom:1px solid var(--color-line);z-index:1001;justify-content:center;width:100%;max-width:900px;margin-bottom:1rem;display:flex;position:relative}.menu-toggle{cursor:pointer;z-index:1002;background:0 0;border:none;flex-direction:column;gap:6px;padding:1rem;display:none;position:absolute;top:50%;right:0;transform:translateY(-50%)}.menu-toggle span{background-color:var(--color-text);width:25px;height:2px;transition:all .3s;display:block}.menu-toggle.open span:first-child{transform:translateY(8px)rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.nav{flex-wrap:wrap;justify-content:center;gap:.25rem 2rem;width:100%;padding:1rem 0 1.5rem;display:flex}.nav a{letter-spacing:.14em;text-transform:uppercase;padding:.2rem 0;font-size:.72rem;font-weight:400;position:relative}.nav a.active:after{content:"";background:var(--color-text);height:1px;position:absolute;bottom:-2px;left:0;right:0}@media (width<=900px){.nav{gap:.25rem 1.2rem}}@media (width<=768px){.menu-toggle{display:flex}.nav{background:var(--color-bg);z-index:1000;flex-direction:column;justify-content:center;align-items:center;gap:2rem;width:100%;height:100vh;padding:0;transition:right .5s cubic-bezier(.77,0,.175,1);position:fixed;top:0;right:-100%}.nav.menu-open{right:0}.nav a{letter-spacing:.2em;padding:.5rem 0;font-size:1.4rem}.nav a.active:after{height:2px;bottom:-5px}.hero{padding:2rem 1rem}.couple-names{letter-spacing:.08em;font-size:2.2rem}.countdown-timer{gap:.8rem}.slot-value{font-size:1.6rem}.section-page{padding:2rem 1.2rem}.section-page h2{font-size:1.8rem}.table-list{grid-template-columns:1fr;gap:1rem}.invitation-page{width:100%!important}.invitation-card{margin:.5rem!important;padding:1.5rem .75rem!important}.wreath-ornament{width:120px;margin-bottom:1.5rem}.parent-name{font-size:1rem}.together-with{margin:.5rem 0}.guest-name{font-size:1.5rem}.couple-main-names{font-size:1.8rem}}@media (width<=400px){.couple-names{font-size:1.8rem}.countdown-timer{transform:scale(.85)}.invitation-page{width:100%!important}.invitation-card{margin:.25rem!important;padding:1rem .5rem!important}.wreath-ornament{width:100px}.guest-name{font-size:1.3rem}.couple-main-names{font-size:1.6rem}.date-main{gap:.8rem;padding:.8rem 1rem}}.invitation-page{background-color:var(--color-bg);justify-content:center;align-items:center;width:50%;min-height:100vh;padding:3rem .5rem;display:flex}.invitation-card{border:1px solid var(--color-line);text-align:center;background:#fff;border-radius:4px;width:100%;max-width:1200px;padding:4rem 2.5rem;position:relative;box-shadow:0 10px 40px #00000008}.invitation-header{flex-direction:column;gap:1.5rem;display:flex}.parents-section{flex-direction:column;gap:.8rem;display:flex}.parent-name{font-family:var(--font-heading);color:var(--color-accent);font-size:1.1rem;font-style:italic}.together-with{letter-spacing:.1em;color:var(--color-muted);font-size:.75rem}.request-honour{font-family:var(--font-heading);color:var(--color-text);margin:1rem 0;font-size:1.1rem;font-style:italic}.guest-name-box{margin:1.5rem auto;display:inline-block;position:relative}.guest-name{font-family:var(--font-heading);color:var(--color-accent);padding:0 1rem;font-size:1.8rem}.name-underline{background:var(--color-line);width:100%;height:1px;margin-top:.5rem}.at-marriage{letter-spacing:.05em;color:var(--color-muted);font-size:.8rem}.couple-main-names{font-family:var(--font-heading);color:var(--color-accent);margin:1rem 0;font-size:clamp(2.4rem,5vw,3.4rem);line-height:1.1}.and-text{color:var(--color-text);font-size:1.2rem;font-style:italic}.date-section{flex-direction:column;align-items:center;gap:.5rem;margin:2rem 0;display:flex}.date-top-line{letter-spacing:.2em;font-size:.8rem}.date-main{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);align-items:center;gap:1.5rem;padding:.8rem 2rem;display:flex}.date-month,.date-year{letter-spacing:.15em;font-size:.8rem}.date-day{font-family:var(--font-heading);color:var(--color-accent);font-size:2.2rem}.time-venue-details{flex-direction:column;gap:.5rem;margin:1.5rem 0;display:flex}.detail-line{letter-spacing:.12em;color:var(--color-text);font-size:.75rem}.highlighted{color:var(--color-accent);font-weight:700}.rsvp-section{border-top:1px solid var(--color-line);margin-top:2rem;padding-top:1.5rem}.rsvp-title{letter-spacing:.2em;margin-bottom:.5rem;font-size:.7rem}.rsvp-phone{color:var(--color-muted);font-size:.8rem}.wreath-ornament{width:150px;height:auto;margin:0 auto 2rem}.wreath-ornament img{width:100%;height:auto;display:block}.page-background-layer{z-index:-1;pointer-events:none;background-color:var(--color-bg);position:fixed;inset:0;overflow:hidden}.bg-image-wrapper{opacity:.12;mix-blend-mode:multiply;width:60%;height:60%;transition:opacity 1s ease-in-out;position:absolute}.bg-image-wrapper img{object-fit:cover;width:100%;height:100%;-webkit-mask-image:radial-gradient(circle,#000 20%,#0000 80%);mask-image:radial-gradient(circle,#000 20%,#0000 80%)}.pos-top-left{top:-10%;left:-10%}.pos-bottom-right{bottom:-15%;right:-15%;transform:rotate(5deg)}.pos-center{opacity:.08;width:80%;top:50%;left:50%;transform:translate(-50%,-50%)}.section-page,.hero{z-index:1;position:relative}.page:before{content:"";opacity:.15;pointer-events:none;z-index:-1;background-image:url(https://www.transparenttextures.com/patterns/natural-paper.png);width:100%;height:100%;position:fixed;top:0;left:0}
