:root{--color-white:#fff;--color-white-soft:#fffffffa;--color-white-muted:#fffffff0;--color-gold:#e8cc6e;--color-gold-light:#e8cc6e;--color-overlay:#00000059;--color-overlay-heavy:#00000080;--color-card-bg:#fff3;--color-card-border:#ffffff47;--font-heading:"Playfair Display", Georgia, serif;--font-body:"Inter", -apple-system, sans-serif;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:2rem;--spacing-lg:4rem;--spacing-xl:6rem}*{box-sizing:border-box;margin:0;padding:0}.skip-link{background:var(--color-gold);color:#000;z-index:10000;border-radius:4px;padding:.5rem 1rem;font-size:.875rem;text-decoration:none;position:absolute;top:-100%;left:1rem}.skip-link:focus{top:1rem}:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px;border-radius:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-white);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#1a1a2e;line-height:1.6}.app{max-width:100%;position:relative;overflow-x:hidden}.app:before{content:"";opacity:.6;z-index:-2;background-image:url(/bg.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}.app:after{content:"";z-index:-1;background:linear-gradient(#0003 0%,#0000001a 30%,#0000004d 70%,#00000080 100%);position:fixed;inset:0}.section-title{font-family:var(--font-heading);text-align:center;margin-bottom:var(--spacing-md);color:var(--color-white);text-shadow:0 2px 10px #00000080;font-size:1.5rem;font-weight:400;line-height:1.4}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.animate-fade-up{opacity:0;animation:1s cubic-bezier(.22,1,.36,1) forwards fadeUp}.scroll-reveal{transition:transform 1s cubic-bezier(.22,1,.36,1);transform:translateY(32px)}.scroll-reveal.revealed{transform:translateY(0)}.hero{text-align:center;min-height:100svh;padding:var(--spacing-lg) var(--spacing-sm);justify-content:center;align-items:center;display:flex}.hero-content{width:100%;max-width:340px;padding:var(--spacing-md) var(--spacing-sm);background:var(--color-card-bg);-webkit-backdrop-filter:blur(18px);will-change:backdrop-filter;isolation:isolate;border-radius:8px;position:relative}.hero-content:before{content:"";pointer-events:none;border:1px solid #ffffff40;border-radius:8px;position:absolute;inset:0}.hero-logo{margin-bottom:var(--spacing-sm)}.logo-img{width:80px;height:auto}.hero-pretext{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--color-white-muted);margin-bottom:var(--spacing-xs);font-size:.7rem;font-weight:300}.hero-names{font-family:var(--font-heading);color:var(--color-white);margin-bottom:var(--spacing-sm);text-shadow:0 2px 12px #0009,0 1px 3px #0006;font-size:2.2rem;font-weight:400;line-height:1.2}.ampersand{color:var(--color-gold);margin:0 .1em;font-style:italic;display:inline-block}.hero-divider{margin:var(--spacing-sm) 0;justify-content:center;align-items:center;display:flex}.divider-ornament{background:var(--color-gold);width:50px;height:1px;display:block;position:relative}.divider-ornament:before{content:"";background:var(--color-gold);border-radius:50%;width:7px;height:7px;position:absolute;top:-3px;left:50%;transform:translate(-50%)}.hero-heading{font-family:var(--font-heading);color:var(--color-gold-light);margin-bottom:var(--spacing-xs);text-shadow:0 2px 10px #0009,0 1px 3px #0006;font-size:1.5rem;font-style:italic;font-weight:400}.hero-subtext{font-family:var(--font-body);color:var(--color-white-muted);font-size:.875rem;font-weight:300}.scroll-indicator{margin-top:var(--spacing-md);flex-direction:column;align-items:center;gap:.5rem;display:flex}.scroll-cta{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--color-white-muted);font-size:.65rem;font-weight:300}.scroll-arrow{border-right:1.5px solid var(--color-white-muted);border-bottom:1.5px solid var(--color-white-muted);width:16px;height:16px;margin:0 auto;animation:2s infinite bounce;display:block;transform:rotate(45deg)}@keyframes bounce{0%,20%,50%,80%,to{transform:rotate(45deg)translateY(0)}40%{transform:rotate(45deg)translateY(6px)}60%{transform:rotate(45deg)translateY(3px)}}.celebration-countdown{flex-direction:column;display:flex}.celebration-countdown .event-details,.celebration-countdown .calendar-buttons{padding-bottom:0}.celebration-countdown .countdown{padding-top:var(--spacing-md);position:relative}.celebration-countdown .countdown:before{content:"";background:linear-gradient(90deg, transparent, var(--color-gold), transparent);width:80px;height:1px;margin:0 auto var(--spacing-md);display:block}.countdown-inline{padding:var(--spacing-md) var(--spacing-sm) 0;text-align:center}.countdown-grid-inline{max-width:260px}.countdown-grid-inline .countdown-item{padding:var(--spacing-xs) var(--spacing-sm)}.countdown-grid-inline .countdown-number{font-size:1.4rem}.countdown-grid-inline .countdown-label{font-size:.6rem}.countdown{padding:var(--spacing-lg) var(--spacing-sm);text-align:center}.countdown-grid{gap:var(--spacing-sm);grid-template-columns:repeat(2,1fr);max-width:260px;margin:0 auto;display:grid}.countdown-item{padding:var(--spacing-sm);background:var(--color-card-bg);-webkit-backdrop-filter:blur(18px);will-change:backdrop-filter;isolation:isolate;border:1px solid var(--color-card-border);border-radius:8px;flex-direction:column;align-items:center;transition:transform .3s,box-shadow .3s;display:flex}.countdown-item:hover{background:#ffffff2e;transform:translateY(-2px)}.countdown-number{font-family:var(--font-heading);color:var(--color-gold);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:600;line-height:1}.countdown-label{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--color-white-muted);margin-top:.4rem;font-size:.65rem;font-weight:400}.event-details{padding:var(--spacing-lg) var(--spacing-md);text-align:center}.events-grid{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);grid-template-columns:1fr;max-width:300px;margin-left:auto;margin-right:auto;display:grid}.event-card{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-card-bg);-webkit-backdrop-filter:blur(18px);will-change:backdrop-filter;isolation:isolate;border:1px solid var(--color-card-border);border-radius:8px;width:100%;transition:transform .3s,box-shadow .3s,border-color .3s}.event-card:hover{background:#ffffff2e;border-color:#e8cc6e66;transform:translateY(-4px)}.event-day-label{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--color-gold-light);font-size:.65rem;font-weight:500}.event-date{font-family:var(--font-heading);color:var(--color-white);white-space:nowrap;margin:.3rem 0;font-size:1.25rem;font-weight:400}.event-description{color:var(--color-white-muted);font-size:.85rem;font-weight:300}.venue-info{margin-top:var(--spacing-md)}.venue-link{color:inherit;text-decoration:none;transition:opacity .2s}.venue-link:hover{opacity:.8}.venue-divider{background:var(--color-gold);width:30px;height:1px;margin:0 auto var(--spacing-sm)}.venue-name{font-family:var(--font-heading);color:var(--color-white);text-shadow:0 2px 10px #0009,0 1px 3px #0006;margin-bottom:.25rem;font-size:1.4rem;font-weight:400}.venue-location{color:var(--color-white-muted);justify-content:center;align-items:center;gap:.3rem;font-size:.9rem;font-weight:300;display:flex}.pin-icon{flex-shrink:0;width:16px;height:16px}.carousel-section{padding:0 var(--spacing-sm) var(--spacing-sm);text-align:center}.carousel{justify-content:center;align-items:center;max-width:340px;margin:0 auto;display:flex;position:relative}.carousel-track{aspect-ratio:3/4;touch-action:pan-y;border:1px solid var(--color-card-border);border-radius:8px;width:100%;position:relative;overflow:hidden}.carousel-slide{opacity:0;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:absolute;inset:0}.carousel-slide.active{opacity:1}.carousel-img{object-fit:cover;width:100%;height:100%}.carousel-slide:after{content:"";pointer-events:none;background:linear-gradient(#0000,#0000008c);height:45%;position:absolute;bottom:0;left:0;right:0}.carousel-caption{font-family:var(--font-heading);color:var(--color-white);text-align:center;letter-spacing:.05em;text-shadow:0 1px 6px #00000080;z-index:1;font-size:1.25rem;font-style:italic;position:absolute;bottom:1.5rem;left:0;right:0}.carousel-placeholder-text{font-family:var(--font-heading);color:#fff;opacity:.8;font-size:1.1rem}.carousel-btn{-webkit-backdrop-filter:blur(4px);width:34px;height:34px;color:var(--color-white);cursor:pointer;z-index:2;background:#0006;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-btn:hover{background:var(--color-gold);color:#fff;border-color:var(--color-gold)}.carousel-btn:active{transform:translateY(-50%)scale(.95)}.carousel-btn-prev{left:8px}.carousel-btn-next{right:8px}.carousel-dots{margin-top:var(--spacing-sm);justify-content:center;gap:12px;display:flex}.carousel-dot{border:1px solid var(--color-white-muted);cursor:pointer;background:0 0;border-radius:50%;width:8px;height:8px;padding:0;transition:all .2s;position:relative}.carousel-dot:before{content:"";position:absolute;inset:-10px}.carousel-dot.active{background:var(--color-gold);border-color:var(--color-gold);transform:scale(1.3)}.footer{padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-md);text-align:center}.footer-ornament{background:var(--color-gold);width:30px;height:1px;margin:0 auto var(--spacing-sm)}.footer-text{font-family:var(--font-heading);color:var(--color-white-muted);margin-bottom:.25rem;font-size:1.1rem;font-style:italic}.footer-family{font-family:var(--font-heading);color:var(--color-white);text-shadow:0 1px 4px #0000004d;font-size:1.75rem;font-weight:400}.intro-overlay{z-index:9999;background:#1a1a2e;flex-direction:column;justify-content:center;align-items:center;transition:opacity .8s ease-out;display:flex;position:fixed;inset:0}.intro-overlay.fading{opacity:0;pointer-events:none}.intro-logo{width:100px;height:auto;animation:.6s ease-out fadeUp}.intro-countdown-line{margin-top:var(--spacing-sm);font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;color:var(--color-white-muted);font-size:1.25rem;font-weight:400;animation:.6s ease-out .15s both fadeUp}.intro-family{bottom:var(--spacing-lg);font-family:var(--font-heading);color:var(--color-white-muted);letter-spacing:.1em;font-size:1.1rem;font-weight:400;animation:.6s ease-out .3s both fadeUp;position:absolute}.countdown-number.flip{animation:.3s digitFlip}@keyframes digitFlip{0%{opacity:1;transform:translateY(0)}50%{opacity:.3;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.calendar-buttons{justify-content:center;gap:var(--spacing-sm);padding:0 var(--spacing-sm);flex-wrap:wrap;display:flex}.cal-btn{background:var(--color-card-bg);-webkit-backdrop-filter:blur(18px);will-change:backdrop-filter;isolation:isolate;border:1px solid var(--color-card-border);color:var(--color-white);font-family:var(--font-body);letter-spacing:.05em;cursor:pointer;border-radius:50px;align-items:center;padding:.6rem 1.2rem;font-size:.75rem;font-weight:400;text-decoration:none;transition:all .2s;display:inline-flex}.cal-btn:hover{border-color:var(--color-gold);color:var(--color-gold-light);background:#fff3}.share-btn{-webkit-backdrop-filter:blur(18px);will-change:backdrop-filter;isolation:isolate;color:var(--color-white);font-family:var(--font-body);letter-spacing:.05em;cursor:pointer;z-index:100;background:#00000080;border:1px solid #ffffff26;border-radius:50px;align-items:center;gap:.4rem;padding:.6rem 1rem;font-size:.7rem;font-weight:400;transition:all .2s;display:flex;position:fixed;bottom:24px;right:24px}.share-btn:hover{border-color:var(--color-gold);background:#000000b3}.share-icon{width:14px;height:14px}.particles{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.particle{background:var(--color-gold);opacity:0;border-radius:50%;width:3px;height:3px;animation:linear infinite float;position:absolute}@keyframes float{0%{opacity:0;transform:translateY(100vh)scale(.5)}10%{opacity:.4}90%{opacity:.4}to{opacity:0;transform:translateY(-10vh)scale(1)}}.particle-0{width:2px;height:2px;animation-duration:12s;animation-delay:0s;left:5%}.particle-1{width:3px;height:3px;animation-duration:15s;animation-delay:1s;left:15%}.particle-2{width:2px;height:2px;animation-duration:11s;animation-delay:3s;left:25%}.particle-3{width:4px;height:4px;animation-duration:14s;animation-delay:2s;left:35%}.particle-4{width:2px;height:2px;animation-duration:13s;animation-delay:4s;left:45%}.particle-5{width:3px;height:3px;animation-duration:16s;animation-delay:1.5s;left:55%}.particle-6{width:2px;height:2px;animation-duration:12s;animation-delay:3.5s;left:65%}.particle-7{width:3px;height:3px;animation-duration:14s;animation-delay:.5s;left:75%}.particle-8{width:2px;height:2px;animation-duration:11s;animation-delay:2.5s;left:85%}.particle-9{width:4px;height:4px;animation-duration:15s;animation-delay:4.5s;left:92%}.particle-10{width:2px;height:2px;animation-duration:13s;animation-delay:5s;left:10%}.particle-11{width:3px;height:3px;animation-duration:16s;animation-delay:6s;left:30%}.particle-12{width:2px;height:2px;animation-duration:12s;animation-delay:7s;left:50%}.particle-13{width:3px;height:3px;animation-duration:14s;animation-delay:5.5s;left:70%}.particle-14{width:2px;height:2px;animation-duration:11s;animation-delay:6.5s;left:88%}.section-divider{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);display:flex}.section-divider-line{background:linear-gradient(90deg,#0000,#e8cc6e66,#0000);flex:1;max-width:120px;height:1px}.divider-monogram{opacity:.35;width:28px;height:auto}.countdown-inline{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md) 0;display:flex}.countdown-inline-line{background:linear-gradient(90deg,#0000,#e8cc6e4d,#0000);flex:1;max-width:80px;height:1px}.countdown-inline-text{text-align:center;white-space:nowrap}.countdown-inline-days{font-family:var(--font-heading);color:var(--color-gold);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600}.countdown-inline-label{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--color-white-muted);margin-left:.3rem;font-size:.7rem;font-weight:300}.snap-page{padding-bottom:var(--spacing-md);flex-direction:column;justify-content:center;display:flex}@media (width<=767px){html{scroll-snap-type:y mandatory;overflow-y:scroll}.hero{scroll-snap-align:start}.snap-page{scroll-snap-align:start;min-height:100svh}}@media (width>=768px){.section-title{margin-bottom:var(--spacing-lg);font-size:1.75rem}.hero-content{max-width:500px;padding:var(--spacing-lg)}.logo-img{width:100px}.hero-pretext{font-size:.8rem}.hero-names{font-size:3.5rem}.hero-heading{font-size:2rem}.hero-subtext{font-size:1rem}.divider-ornament{width:70px}.scroll-arrow{width:20px;height:20px}.countdown{padding:var(--spacing-xl) var(--spacing-md)}.countdown:before{width:120px;margin-bottom:var(--spacing-lg)}.countdown-grid{gap:var(--spacing-md);max-width:500px;display:flex}.countdown-item{min-width:100px;padding:var(--spacing-md)}.countdown-number{font-size:2.5rem}.countdown-label{font-size:.7rem}.event-details{padding:var(--spacing-xl) var(--spacing-md)}.event-details:before{width:120px;margin-bottom:var(--spacing-lg)}.events-grid{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);grid-template-columns:1fr 1fr;max-width:580px}.event-card{padding:var(--spacing-md) var(--spacing-lg)}.event-date{font-size:1.5rem}.venue-name{font-size:1.75rem}.carousel-section{padding:var(--spacing-xl) var(--spacing-md)}.carousel-section:before{width:120px;margin-bottom:var(--spacing-lg)}.carousel{max-width:450px}.carousel-track{aspect-ratio:4/5}.carousel-btn{width:40px;height:40px;font-size:1.5rem}.carousel-btn-prev{left:-20px}.carousel-btn-next{right:-20px}.footer{padding:var(--spacing-xl) var(--spacing-md)}.footer-text{font-size:1.25rem}.footer-family{font-size:2rem}}@media (width>=1024px){.section-title{font-size:2rem}.hero-content{max-width:600px;padding:var(--spacing-xl) var(--spacing-lg)}.logo-img{width:120px}.hero-names{font-size:4.5rem}.hero-heading{font-size:2.5rem}.countdown-grid{max-width:600px}.countdown-item{min-width:120px}.countdown-number{font-size:3rem}.countdown-label{font-size:.75rem}.carousel{max-width:550px}.carousel-track{aspect-ratio:4/5}.event-card{min-width:280px}}
