:root{--primary:#c9a96e;--primary-light:#dfc49a;--primary-dark:#a8844f;--secondary:#2c2c2c;--text:#2c2c2c;--text-muted:#6b6060;--background:#f5f0ea;--surface:#fdfaf7;--surface-alt:#f0ebe3;--border:#c9a96e40;--border-strong:#c9a96e8c;--shadow-soft:0 4px 24px #2c2c2c14;--shadow-medium:0 8px 40px #2c2c2c1f;--shadow-strong:0 16px 60px #2c2c2c2e;--display-font:"Cormorant Garamond", Georgia, serif;--script-font:"Great Vibes", cursive;--body-font:"Inter", sans-serif;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-xl:32px;--transition:all .35s cubic-bezier(.4, 0, .2, 1);--transition-fast:all .18s cubic-bezier(.4, 0, .2, 1)}[data-dark=true]{--background:#1a1714;--surface:#242018;--surface-alt:#2e2921;--text:#f0ebe3;--text-muted:#9a8f8a;--border:#c9a96e33;--shadow-soft:0 4px 24px #0000004d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--body-font);background-color:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;line-height:1.6;overflow-x:hidden}img{max-width:100%;display:block}button{cursor:pointer;font-family:var(--body-font);background:0 0;border:none}.display-font{font-family:var(--display-font)}.script-font{font-family:var(--script-font)}.body-font{font-family:var(--body-font)}.ornament-frame{position:relative}.ornament-frame:before,.ornament-frame:after{content:"";border-color:var(--primary);opacity:.6;border-style:solid;width:48px;height:48px;position:absolute}.ornament-frame:before{border-width:1.5px 0 0 1.5px;top:16px;left:16px}.ornament-frame:after{border-width:0 1.5px 1.5px 0;bottom:16px;right:16px}.ornament-frame-br:before{border-width:1.5px 1.5px 0 0;top:16px;right:16px}.ornament-frame-br:after{border-width:0 0 1.5px 1.5px;bottom:16px;left:16px}.diamond-icon{width:36px;height:36px;color:var(--primary)}.gold-divider{background:linear-gradient(90deg, transparent, var(--primary), transparent);width:60px;height:1.5px;margin:0 auto}.section-wrap{max-width:480px;margin:0 auto;padding:0 24px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes flipDown{0%{transform:rotateX(0)}50%{transform:rotateX(-90deg)}to{transform:rotateX(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-ring{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.animate-fade-in-up{animation:.8s cubic-bezier(.4,0,.2,1) both fadeInUp}.animate-fade-in{animation:.6s both fadeIn}.animate-scale-in{animation:.6s cubic-bezier(.4,0,.2,1) both scaleIn}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.sr{will-change:opacity, transform;transition:opacity .7s cubic-bezier(0,0,.2,1),transform .7s cubic-bezier(0,0,.2,1)}.sr--fade-up{opacity:0;transform:translateY(36px)}.sr--fade-up.sr--visible{opacity:1;transform:translateY(0)}.sr--fade-in{opacity:0}.sr--fade-in.sr--visible{opacity:1}.sr--scale-in{opacity:0;transform:scale(.9)}.sr--scale-in.sr--visible{opacity:1;transform:scale(1)}.sr--slide-left{opacity:0;transform:translate(40px)}.sr--slide-left.sr--visible{opacity:1;transform:translate(0)}.sr--slide-right{opacity:0;transform:translate(-40px)}.sr--slide-right.sr--visible{opacity:1;transform:translate(0)}.sr--zoom-rotate{opacity:0;transform:scale(.85)rotate(-3deg)}.sr--zoom-rotate.sr--visible{opacity:1;transform:scale(1)rotate(0)}.sr-stagger>.sr{transition-delay:calc(var(--sr-i,0) * .1s)}.skeleton{background:linear-gradient(90deg, var(--surface-alt) 25%, var(--surface) 50%, var(--surface-alt) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s infinite shimmer}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:2px}.toast{background:var(--secondary);color:#fff;border-radius:var(--radius-lg);letter-spacing:.03em;z-index:9999;opacity:0;pointer-events:none;white-space:nowrap;padding:14px 28px;font-size:.875rem;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .3s;position:fixed;bottom:32px;left:50%;transform:translate(-50%)translateY(80px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast.success{background:#4a7c59}.toast.error{background:#9b2335}.splash{background-color:var(--background);opacity:0;background-position:top;background-repeat:no-repeat;background-size:cover;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;transition:opacity .8s;display:flex;position:relative;overflow:hidden}.splash--visible{opacity:1}.splash__overlay{z-index:0;background:linear-gradient(#14121099 0%,#14121066 40%,#141210a6 80%,#141210cc 100%);position:absolute;inset:0}.splash__line-outer-t,.splash__line-outer-b,.splash__line-outer-l,.splash__line-outer-r{background:var(--primary);opacity:.5;z-index:10;pointer-events:none;position:absolute}.splash__line-outer-t{height:1px;top:20px;left:12px;right:12px}.splash__line-outer-b{height:1px;bottom:20px;left:12px;right:12px}.splash__line-outer-l{width:1px;top:12px;bottom:12px;left:20px}.splash__line-outer-r{width:1px;top:12px;bottom:12px;right:20px}.splash__line-inner-t,.splash__line-inner-b,.splash__line-inner-l,.splash__line-inner-r{background:var(--primary);opacity:.45;z-index:10;pointer-events:none;position:absolute}.splash__line-inner-t{height:1px;top:27px;left:19px;right:19px}.splash__line-inner-b{height:1px;bottom:27px;left:19px;right:19px}.splash__line-inner-l{width:1px;top:19px;bottom:19px;left:27px}.splash__line-inner-r{width:1px;top:19px;bottom:19px;right:27px}.splash__content{z-index:2;text-align:center;flex-direction:column;flex-grow:1;justify-content:center;align-items:center;margin-top:-40px;padding:0 32px;display:flex;position:relative}.splash__title{font-family:var(--display-font);color:#fdfaf7;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 2px 14px #00000073;flex-direction:column;align-items:center;font-size:clamp(2.8rem,13vw,4.5rem);font-weight:300;line-height:1.1;display:flex}.splash__name{display:block}.splash__ampersand{font-family:var(--script-font);color:var(--primary);text-transform:none;text-shadow:0 2px 10px #00000059;margin:6px 0;font-size:clamp(2.4rem,10vw,3.4rem);font-weight:400;line-height:.85}.splash__subtitle{font-family:var(--script-font);color:var(--primary);letter-spacing:.02em;text-shadow:0 2px 10px #00000059;margin-top:18px;font-size:clamp(2rem,8vw,3.2rem);font-weight:400}.splash__scroll{color:#fdfaf7;cursor:pointer;z-index:5;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:12px;transition:color .3s;display:flex;position:absolute;bottom:48px}.splash__scroll:hover{color:var(--primary)}.splash__scroll-text{font-family:var(--display-font);letter-spacing:.28em;text-transform:uppercase;opacity:.95;font-size:clamp(.72rem,3vw,.8rem);font-weight:500}.splash__scroll-arrow{color:inherit;animation:2s infinite bounce}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}60%{transform:translateY(-3px)}}.invitation{background-color:var(--surface);border-bottom:1px solid var(--border);padding:72px 24px;position:relative}.invitation__inner{text-align:center;flex-direction:column;align-items:center;display:flex}.invitation__icon{color:var(--primary);justify-content:center;margin-bottom:18px;display:flex}.invitation__subtitle{font-family:var(--display-font);letter-spacing:.22em;text-transform:uppercase;color:var(--primary);margin-bottom:28px;font-size:clamp(.8rem,3.5vw,.9rem);font-weight:500}.invitation__names{font-family:var(--display-font);text-transform:uppercase;color:#1a1714;letter-spacing:.05em;flex-direction:column;align-items:center;font-size:clamp(2.8rem,12vw,4rem);font-weight:300;line-height:1.1;display:flex}.invitation__name{display:block}.invitation__ampersand{font-family:var(--script-font);color:var(--primary);text-transform:none;margin:4px 0;font-size:clamp(2.4rem,10vw,3.4rem);font-weight:400;line-height:.85}.invitation__divider{background-color:var(--primary);opacity:.8;width:150px;height:1px;margin:28px auto}.invitation__datetime{font-family:var(--display-font);color:var(--primary);letter-spacing:.03em;font-size:clamp(1.1rem,4.5vw,1.3rem);line-height:1.6}.invitation__date{font-weight:400}.invitation__time{opacity:.9;font-weight:400}.invitation__message{font-family:var(--body-font);color:#5c5252;max-width:320px;margin:32px auto 0;font-size:clamp(.85rem,3.8vw,.92rem);font-style:italic;font-weight:300;line-height:1.75}.countdown{justify-content:center;align-items:center;min-height:auto;padding:64px 16px;display:flex;position:relative}.cd__corner{border-color:var(--primary);opacity:.5;pointer-events:none;border-style:solid;width:44px;height:44px;position:absolute}.cd__corner--tl{border-width:1.5px 0 0 1.5px;top:20px;left:20px}.cd__corner--tr{border-width:1.5px 1.5px 0 0;top:20px;right:20px}.cd__corner--bl{border-width:0 0 1.5px 1.5px;bottom:20px;left:20px}.cd__corner--br{border-width:0 1.5px 1.5px 0;bottom:20px;right:20px}.countdown__inner{text-align:center;flex-direction:column;align-items:center;gap:32px;display:flex}.countdown__diamond{color:var(--primary)}.countdown__subtitle{font-family:var(--display-font);color:#6b6060;letter-spacing:.03em;max-width:300px;font-size:clamp(1.1rem,4.5vw,1.35rem);font-style:italic;line-height:1.4}.countdown__tiles{align-items:flex-start;gap:6px;display:flex}.countdown__tile{flex-direction:column;align-items:center;gap:8px;display:flex}.countdown__number{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:60px;height:70px;box-shadow:var(--shadow-soft);font-family:var(--display-font);color:#2c2c2c;letter-spacing:-.02em;transform-origin:bottom;perspective:300px;justify-content:center;align-items:center;font-size:clamp(1.8rem,8vw,2.2rem);font-weight:700;display:flex;position:relative;overflow:hidden}@media (width>=380px){.countdown__tiles{gap:10px}.countdown__number{min-width:72px;height:80px;font-size:clamp(2.2rem,9vw,2.8rem)}}@keyframes countFlip{0%{opacity:1;transform:rotateX(0)}40%{opacity:.3;transform:rotateX(-70deg)}60%{opacity:.3;transform:rotateX(70deg)}to{opacity:1;transform:rotateX(0)}}.countdown__number--flip{animation:.35s countFlip}.countdown__label{font-family:var(--body-font);letter-spacing:.2em;color:#6b6060;text-transform:uppercase;font-size:.6rem;font-weight:500}.countdown__cal-btn{border:1.5px solid var(--primary);color:var(--primary);font-family:var(--display-font);letter-spacing:.08em;cursor:pointer;transition:var(--transition);background:0 0;border-radius:0;align-items:center;gap:10px;padding:14px 40px;font-size:1rem;font-style:italic;display:inline-flex;position:relative;overflow:hidden}.countdown__cal-btn:before{content:"";background:var(--primary);transform-origin:0;z-index:-1;transition:transform .35s;position:absolute;inset:0;transform:scaleX(0)}.countdown__cal-btn:hover{color:var(--surface)}.countdown__cal-btn:hover:before{transform:scaleX(1)}.venues{background:var(--background);padding:64px 0}.venues__header{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:0 24px 48px;display:flex}.venues__title{font-family:var(--display-font);color:#2c2c2c;letter-spacing:.03em;font-size:clamp(1.8rem,8vw,2.4rem);font-style:italic;font-weight:300}.venues__subtitle{font-family:var(--body-font);color:#6b6060;letter-spacing:.06em;font-size:.82rem}.venues__timeline{flex-direction:column;gap:0;max-width:440px;margin:0 auto;padding:0 20px;display:flex;position:relative}.venue-card{gap:20px;padding-bottom:40px;display:flex;position:relative}.venue-card:last-child{padding-bottom:0}.venue-card__timeline{flex-direction:column;flex-shrink:0;align-items:center;width:40px;padding-top:4px;display:flex;position:relative}.venue-card__step-badge{border:1.5px solid var(--primary);background:var(--surface);width:40px;height:40px;font-family:var(--display-font);color:var(--primary);z-index:2;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:600;display:flex;position:relative;box-shadow:0 2px 12px #c9a96e26}.venue-card:not(:last-child) .venue-card__timeline:after{content:"";background:linear-gradient(to bottom, var(--primary), transparent);opacity:.35;width:1px;position:absolute;top:44px;bottom:0;left:50%;transform:translate(-50%)}.venue-card__content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);transition:var(--transition);flex-direction:column;flex:1;gap:14px;padding:24px 20px;display:flex;position:relative;overflow:hidden}.venue-card__content:before{content:"";background:linear-gradient(90deg, transparent, var(--primary), transparent);opacity:0;height:3px;transition:opacity .4s;position:absolute;top:0;left:0;right:0}.venue-card__content:hover{box-shadow:var(--shadow-medium);border-color:var(--border-strong);transform:translateY(-2px)}.venue-card__content:hover:before{opacity:1}.venue-card__type-row{align-items:center;gap:8px;display:flex}.venue-card__type-icon{color:var(--primary);flex-shrink:0;align-items:center;display:flex}.venue-card__type-label{font-family:var(--body-font);letter-spacing:.22em;text-transform:uppercase;color:var(--primary);font-size:.68rem;font-weight:600}.venue-card__name{font-family:var(--display-font);color:#1a1714;letter-spacing:.01em;font-size:clamp(1.15rem,5vw,1.35rem);font-weight:600;line-height:1.3}.venue-card__info-grid{flex-direction:column;gap:8px;display:flex}.venue-card__info-row{color:#3d3535;align-items:center;gap:10px;font-size:.82rem;line-height:1.4;display:flex}.venue-card__info-row svg{color:var(--primary);opacity:.75;flex-shrink:0}.venue-card__parking{background:linear-gradient(135deg, var(--surface-alt), var(--surface));border-left:2px solid var(--primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:#4a4040;align-items:flex-start;gap:10px;padding:10px 14px;font-size:.78rem;line-height:1.5;display:flex}.venue-card__parking svg{color:var(--primary);opacity:.7;flex-shrink:0;margin-top:2px}.venue-card__map-btn{border:1.5px solid var(--primary);color:var(--primary);font-family:var(--body-font);letter-spacing:.18em;text-transform:uppercase;transition:var(--transition);background:0 0;border-radius:0;align-self:flex-start;align-items:center;gap:8px;margin-top:4px;padding:10px 24px;font-size:.7rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.venue-card__map-btn:before{content:"";background:var(--primary);transform-origin:0;z-index:-1;transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;inset:0;transform:scaleX(0)}.venue-card__map-btn:hover{color:var(--surface)}.venue-card__map-btn:hover:before{transform:scaleX(1)}.gallery{padding:60px 0}.gallery__header{margin-bottom:36px}.gallery__title-wrap{flex-direction:column;align-items:center;gap:16px;display:flex}.gallery__title{font-family:var(--display-font);color:#2c2c2c;text-align:center;letter-spacing:.04em;font-size:clamp(1.8rem,7vw,2.4rem);font-style:italic;font-weight:400}.gallery__grid{grid-template-columns:repeat(2,1fr);gap:6px;max-width:480px;margin:0 auto;padding:0 6px;display:grid}.gallery__item:nth-child(5n){grid-column:span 2}.gallery__item{cursor:pointer;background:var(--surface-alt);aspect-ratio:1;opacity:0;transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1);transition-delay:calc(var(--sr-i,0) * 80ms);border:none;padding:0;display:block;position:relative;overflow:hidden;transform:scale(.88)translateY(20px)}.gallery__grid--revealed .gallery__item{opacity:1;transform:scale(1)translateY(0)}.gallery__item:nth-child(5n){aspect-ratio:16/9}.gallery__item img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.4,0,.2,1);display:block}.gallery__item-overlay{opacity:0;background:linear-gradient(135deg,#0000 60%,#c9a96e2e);transition:opacity .3s;position:absolute;inset:0}.gallery__item:hover img{transform:scale(1.08)}.gallery__item:hover .gallery__item-overlay{opacity:1}.lightbox{z-index:1000;outline:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox__backdrop{-webkit-backdrop-filter:blur(12px);background:#1a1714f2;position:absolute;inset:0}.lightbox__close{z-index:10;color:#fff;cursor:pointer;width:44px;height:44px;transition:var(--transition);background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:20px;right:20px}.lightbox__close:hover{background:#fff3}.lightbox__nav{z-index:10;color:#fff;cursor:pointer;width:48px;height:48px;transition:var(--transition);background:#ffffff14;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox__nav:hover{background:#ffffff2e}.lightbox__nav--prev{left:12px}.lightbox__nav--next{right:12px}.lightbox__content{z-index:5;flex-direction:column;align-items:center;gap:12px;max-width:calc(100vw - 100px);max-height:90dvh;display:flex;position:relative}.lightbox__content img{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;max-height:80dvh}.lightbox__counter{color:#fff9;letter-spacing:.1em;font-size:.8rem}.story{padding:60px 0 80px;overflow:hidden}.story__header{flex-direction:column;align-items:center;gap:16px;margin-bottom:48px;display:flex}.story__title{font-family:var(--display-font);color:#2c2c2c;text-align:center;letter-spacing:.04em;font-size:clamp(1.8rem,7vw,2.4rem);font-style:italic;font-weight:400}.story__timeline{flex-direction:column;gap:0;max-width:480px;margin:0 auto;padding:0 20px;display:flex;position:relative}.story__timeline:before{content:"";background:linear-gradient(to bottom, transparent, var(--border-strong) 10%, var(--border-strong) 90%, transparent);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.story__item{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:20px 0;display:grid}.story__item--left .story__image-wrap{order:3}.story__item--left .story__node{order:2}.story__item--left .story__caption-wrap{text-align:right;order:1}.story__item--right .story__image-wrap{order:1}.story__item--right .story__node{order:2}.story__item--right .story__caption-wrap{text-align:left;order:3}.story__image-wrap{border-radius:var(--radius-md);aspect-ratio:3/4;box-shadow:var(--shadow-medium);position:relative;overflow:hidden}.story__image-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.story__item:hover .story__image-wrap img{transform:scale(1.06)}.story__year{color:#fff;font-family:var(--display-font);letter-spacing:.1em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2c2c2cb3;border-radius:20px;padding:3px 10px;font-size:.8rem;position:absolute;bottom:10px;right:10px}.story__node{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.story__node-dot{background:var(--primary);border:2px solid var(--background);width:12px;height:12px;box-shadow:0 0 0 2px var(--primary);z-index:1;border-radius:50%;flex-shrink:0}.story__caption-wrap{align-self:center}.story__caption{font-family:var(--display-font);color:#6b6060;font-size:.95rem;font-style:italic;line-height:1.6}.registry{background:var(--background);padding:80px 0;position:relative}.registry__header{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:0 24px 48px;display:flex}.registry__icon-container{color:var(--primary);justify-content:center;align-items:center;margin-bottom:4px;display:flex}.registry__title{font-family:var(--display-font);color:#1a1714;letter-spacing:.03em;font-size:clamp(1.8rem,8vw,2.4rem);font-style:italic;font-weight:300}.registry__subtitle{font-family:var(--body-font);color:#5c5252;letter-spacing:.06em;max-width:480px;font-size:.82rem;line-height:1.6}.registry__grid{grid-template-columns:1fr;gap:32px;max-width:480px;margin:0 auto;padding:0 24px;display:grid}.registry__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);transition:var(--transition);flex-direction:column;padding:32px 24px;display:flex;position:relative;overflow:hidden}.registry__card:before{content:"";background:linear-gradient(90deg, transparent, var(--primary), transparent);opacity:0;height:3px;transition:opacity .4s;position:absolute;top:0;left:0;right:0}.registry__card:hover{box-shadow:var(--shadow-medium);border-color:var(--border-strong);transform:translateY(-4px)}.registry__card:hover:before{opacity:1}.registry__card-title{font-family:var(--display-font);color:#1a1714;letter-spacing:.02em;margin-bottom:8px;font-size:clamp(1.3rem,5vw,1.6rem);font-weight:500}.registry__card-desc{font-family:var(--body-font);color:#5c5252;margin-bottom:24px;font-size:.8rem;line-height:1.5}.registry__bank-details{flex-direction:column;gap:16px;margin-top:auto;display:flex}.registry__detail-row{border-bottom:1px dashed var(--border);flex-direction:column;gap:4px;padding-bottom:12px;display:flex}.registry__detail-row:last-child{border-bottom:none;padding-bottom:0}.registry__detail-label{font-family:var(--body-font);text-transform:uppercase;letter-spacing:.15em;color:var(--primary);font-size:.65rem;font-weight:600}.registry__detail-value{font-family:var(--body-font);color:#1a1714;word-break:break-all;font-size:.85rem;font-weight:500}.registry__detail-value.code{letter-spacing:.05em;font-family:monospace;font-size:.85rem}.registry__copy-wrapper{justify-content:space-between;align-items:center;gap:12px;display:flex}.registry__copy-btn{border:1px solid var(--border);color:var(--primary);font-family:var(--body-font);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition-fast);background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:.7rem;font-weight:600;display:inline-flex}.registry__copy-btn:hover{background:var(--surface-alt);border-color:var(--primary)}.registry__copy-btn.copied{border-color:var(--primary);color:var(--primary-dark);background:#c9a96e1a}.registry__wishlist-content{text-align:center;flex-direction:column;align-items:center;gap:16px;margin-top:auto;padding:16px 0 0;display:flex}.registry__wishlist-icon{border:1px solid var(--border);background:var(--surface-alt);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:flex;box-shadow:0 4px 12px #c9a96e1a}.registry__wishlist-note{font-family:var(--body-font);color:#5c5252;max-width:280px;font-size:.82rem;line-height:1.6}.registry__btn{border:1.5px solid var(--primary);width:100%;color:var(--primary);font-family:var(--body-font);letter-spacing:.16em;text-transform:uppercase;transition:var(--transition);cursor:pointer;z-index:1;background:0 0;border-radius:0;justify-content:center;align-items:center;gap:10px;margin-top:12px;padding:12px 24px;font-size:.72rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.registry__btn:before{content:"";background:var(--primary);transform-origin:0;z-index:-1;transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;inset:0;transform:scaleX(0)}.registry__btn:hover{color:var(--surface)}.registry__btn:hover:before{transform:scaleX(1)}[data-dark=true] .registry__title{color:var(--text)}[data-dark=true] .registry__subtitle{color:var(--text-muted)}[data-dark=true] .registry__card-title{color:var(--text)}[data-dark=true] .registry__card-desc{color:var(--text-muted)}[data-dark=true] .registry__detail-value{color:var(--text)}[data-dark=true] .registry__wishlist-note{color:var(--text-muted)}.rsvp{background-color:var(--background);justify-content:center;align-items:center;min-height:auto;padding:64px 20px;display:flex;position:relative}.rsvp__corner{border-color:var(--primary);opacity:.5;pointer-events:none;z-index:0;border-style:solid;width:44px;height:44px;position:absolute}.rsvp__corner--tl{border-width:1.5px 0 0 1.5px;top:20px;left:20px}.rsvp__corner--tr{border-width:1.5px 1.5px 0 0;top:20px;right:20px}.rsvp__corner--bl{border-width:0 0 1.5px 1.5px;bottom:20px;left:20px}.rsvp__corner--br{border-width:0 1.5px 1.5px 0;bottom:20px;right:20px}.rsvp__inner{z-index:1;flex-direction:column;gap:36px;width:100%;max-width:440px;margin:0 auto;display:flex;position:relative}.rsvp__header{text-align:center}.rsvp__couple{font-family:var(--display-font);color:var(--primary);margin-bottom:8px;font-size:clamp(2rem,9vw,2.8rem);font-style:italic;font-weight:400;line-height:1}.rsvp__portal-title{font-family:var(--display-font);color:var(--primary);opacity:.75;font-size:clamp(1.4rem,6vw,1.9rem);font-style:italic;font-weight:400}.rsvp__form{flex-direction:column;gap:24px;display:flex}.rsvp__field{flex-direction:column;gap:8px;display:flex}.rsvp__attend-btns{grid-template-columns:1fr 1fr;gap:12px;display:grid}.rsvp__attend-btn{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;font-family:var(--display-font);color:#6b6060;transition:var(--transition);text-align:center;box-shadow:var(--shadow-soft);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px 16px;font-size:1rem;font-style:italic;line-height:1.3;display:flex}.rsvp__attend-btn:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-medium);transform:translateY(-2px)}.rsvp__attend-btn--active{border-color:var(--primary);color:var(--primary);background:#c9a96e0f}.rsvp__attend-btn--decline:hover,.rsvp__attend-btn--active-decline{color:#6b6060;background:var(--surface-alt);border-color:#6b6060}.rsvp__label{color:#6b6060;letter-spacing:.04em;font-size:.82rem}.rsvp__optional{opacity:.7;font-style:italic}.rsvp__input,.rsvp__textarea{border:1px solid var(--border-strong);width:100%;font-family:var(--display-font);color:#2c2c2c;transition:var(--transition);resize:vertical;background:0 0;border-radius:0;outline:none;padding:12px 14px;font-size:1rem;font-style:italic}.rsvp__input::placeholder,.rsvp__textarea::placeholder{color:#6b6060;opacity:.7}.rsvp__input:focus,.rsvp__textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #c9a96e26}.rsvp__input--error{border-color:#c0392b}.rsvp__error{color:#c0392b;font-size:.78rem}.rsvp__counter{justify-content:center;align-items:center;gap:24px;display:flex}.rsvp__counter-btn{border:1px solid var(--border-strong);width:36px;height:36px;color:var(--primary);cursor:pointer;transition:var(--transition);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;line-height:1;display:flex}.rsvp__counter-btn:hover{background:var(--primary);color:var(--surface);border-color:var(--primary)}.rsvp__counter-val{font-family:var(--display-font);color:#2c2c2c;text-align:center;min-width:32px;font-size:1.6rem;font-weight:600}.rsvp__submit{border:1.5px solid var(--primary);width:100%;color:var(--primary);font-family:var(--body-font);letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:var(--transition);background:0 0;padding:16px;font-size:.78rem;font-weight:600;position:relative;overflow:hidden}.rsvp__submit:before{content:"";background:var(--primary);z-index:-1;transition:transform .35s;position:absolute;inset:0;transform:translateY(100%)}.rsvp__submit:hover:not(:disabled){color:var(--surface)}.rsvp__submit:hover:not(:disabled):before{transform:translateY(0)}.rsvp__submit:disabled{opacity:.6;cursor:not-allowed}.rsvp__success{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:48px 24px;display:flex}.rsvp__success-icon{font-size:3rem}.rsvp__success-msg{font-family:var(--display-font);color:#6b6060;font-size:1.2rem;font-style:italic;line-height:1.6}.rsvp__again-btn{color:var(--primary);cursor:pointer;letter-spacing:.05em;background:0 0;border:none;font-size:.78rem;text-decoration:underline}.wedding-page{background:var(--background);width:100%;max-width:480px;min-height:100dvh;margin:0 auto}.loading-screen{background:var(--background);justify-content:center;align-items:center;min-height:100dvh;display:flex}.loading-screen__inner{flex-direction:column;align-items:center;gap:20px;display:flex}.loading-diamond{color:var(--primary);animation:1.5s ease-out infinite pulse-ring}.loading-bar{border-radius:var(--radius-sm);width:200px;height:16px}.loading-bar--short{width:120px;height:12px}.notfound-screen{background:var(--background);justify-content:center;align-items:center;min-height:100dvh;padding:40px 24px;display:flex}.notfound-screen__inner{text-align:center}.notfound-screen__code{font-family:var(--display-font);color:var(--primary);opacity:.4;margin-bottom:16px;font-size:6rem;font-weight:300;line-height:1}.notfound-screen__msg{font-family:var(--display-font);color:var(--text);margin-bottom:8px;font-size:1.4rem;font-style:italic}.notfound-screen__hint{color:var(--text-muted);font-size:.875rem}.rsvp-page-loader,.rsvp-page-error{background-color:var(--background);min-height:100dvh;color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.rsvp-page-spinner{border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;margin-bottom:20px;animation:1s linear infinite musicBar}@keyframes spin{to{transform:rotate(360deg)}}.rsvp-page-loader p{font-family:var(--display-font);font-size:1.25rem;font-style:italic}.rsvp-page-error h2{font-family:var(--display-font);color:var(--primary-dark);margin-bottom:12px;font-size:2.2rem;font-weight:300}.rsvp-auth-container{background-color:var(--background);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.rsvp-auth-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-strong);flex-direction:column;gap:28px;padding:40px 32px;display:flex}.rsvp-auth-header{text-align:center}.rsvp-auth-header h1{font-family:var(--script-font);color:var(--primary-dark);font-size:clamp(2.4rem,10vw,3.2rem);line-height:1.2}.rsvp-auth-header p{font-family:var(--display-font);letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-top:8px;font-size:1rem}.rsvp-auth-fields{flex-direction:column;gap:18px;display:flex}.rsvp-auth-field{flex-direction:column;gap:6px;display:flex}.rsvp-auth-field label{letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:600}.rsvp-auth-field input{background-color:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);transition:var(--transition-fast);outline:none;padding:12px 16px;font-size:.95rem}.rsvp-auth-field input:focus{border-color:var(--primary);background-color:var(--surface);box-shadow:0 0 0 2px #c9a96e26}.rsvp-auth-error-msg{color:#c94a5e;text-align:center;font-size:.8rem}.rsvp-auth-btn{background-color:var(--primary);color:#fff;border-radius:var(--radius-sm);letter-spacing:.25em;text-transform:uppercase;cursor:pointer;width:100%;transition:var(--transition-fast);padding:14px;font-size:.875rem;font-weight:600}.rsvp-auth-btn:hover:not(:disabled){background-color:var(--primary-dark)}.rsvp-auth-btn:disabled{opacity:.6;cursor:not-allowed}.rsvp-dashboard{background-color:var(--background);min-height:100dvh;color:var(--text);flex-direction:column;gap:32px;padding:32px 40px 60px;display:flex}.rsvp-dash-nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:20px;display:flex}.rsvp-dash-nav-brand h2{font-family:var(--display-font);color:var(--primary-dark);font-size:1.8rem;font-weight:400;line-height:1.2}.rsvp-dash-nav-brand span{letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:600}.rsvp-dash-logout{border:1px solid var(--border);border-radius:var(--radius-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);align-items:center;gap:8px;padding:8px 16px;font-size:.8rem;font-weight:500;display:flex}.rsvp-dash-logout:hover{background-color:var(--surface-alt);color:var(--text);border-color:var(--text-muted)}.rsvp-dash-stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}.rsvp-dash-stat-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);flex-direction:column;gap:6px;padding:24px;display:flex}.rsvp-dash-stat-card h3{letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:600}.rsvp-dash-stat-num{font-family:var(--display-font);color:var(--primary-dark);margin:4px 0;font-size:2.6rem;font-weight:300;line-height:1}.rsvp-dash-stat-desc{color:var(--text-muted);font-size:.75rem}.rsvp-dash-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.rsvp-dash-search{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:280px;max-width:460px;color:var(--text-muted);flex:1;align-items:center;gap:10px;padding:10px 16px;display:flex}.rsvp-dash-search input{width:100%;color:var(--text);background:0 0;border:none;outline:none;font-size:.95rem}.rsvp-dash-search input::placeholder{color:var(--text-muted);opacity:.6}.rsvp-dash-export{background-color:var(--primary);color:#fff;border-radius:var(--radius-sm);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:var(--transition-fast);align-items:center;gap:8px;padding:12px 24px;font-size:.8rem;font-weight:600;display:flex}.rsvp-dash-export:hover:not(:disabled){background-color:var(--primary-dark);transform:translateY(-1px)}.rsvp-dash-export:disabled{opacity:.5;cursor:not-allowed}.rsvp-dash-table-wrap{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);overflow-x:auto}.rsvp-dash-empty{text-align:center;color:var(--text-muted);font-family:var(--display-font);padding:60px 40px;font-size:1.15rem;font-style:italic}.rsvp-dash-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.rsvp-dash-table th{background-color:var(--surface-alt);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:18px 24px;font-size:.72rem;font-weight:600}.rsvp-dash-table td{border-bottom:1px solid var(--surface-alt);color:var(--text);vertical-align:middle;padding:18px 24px;line-height:1.5}.rsvp-dash-table tr:last-child td{border-bottom:none}.rsvp-dash-table tr:hover td{background-color:#c9a96e08}.rsvp-cell-name{color:var(--text);font-weight:500}.rsvp-cell-email{color:var(--primary-dark);transition:var(--transition-fast);text-decoration:none}.rsvp-cell-email:hover{text-decoration:underline}.rsvp-cell-status{letter-spacing:.05em;text-transform:uppercase;border-radius:20px;justify-content:center;align-items:center;padding:6px 12px;font-size:.75rem;font-weight:600;display:inline-flex}.status-attending{color:#4a7c59;background-color:#4a7c591a}.status-declined{color:#9b2335;background-color:#9b23351a}.rsvp-cell-count{font-weight:500}.rsvp-cell-message{font-family:var(--display-font);color:var(--text-muted);font-size:1rem;font-style:italic}.rsvp-cell-date{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.rsvp-cell-empty-val{color:var(--text-muted);opacity:.4}@media (width<=768px){.rsvp-dashboard{gap:24px;padding:24px 16px 40px}.rsvp-dash-stats{grid-template-columns:1fr 1fr;gap:12px}.rsvp-dash-stat-card{padding:16px}.rsvp-dash-stat-num{font-size:2rem}.rsvp-dash-toolbar{flex-direction:column;align-items:stretch}.rsvp-dash-search{max-width:none}.rsvp-dash-export{justify-content:center}.rsvp-dash-table th,.rsvp-dash-table td{padding:14px 16px}}@media (width<=480px){.rsvp-dash-nav{flex-direction:column;align-items:flex-start;gap:16px}.rsvp-dash-logout{align-self:flex-end}.rsvp-dash-stats{grid-template-columns:1fr}}
