.hero{--hero-text-shadow:0 2px 16px #00000059,0 1px 4px #0003;justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero__bg{z-index:0;background-position:50%;background-size:cover;background-attachment:fixed;position:absolute;inset:0}.hero__overlay{z-index:1;background:linear-gradient(#00000073 0%,#00000059 40%,#000000a6 100%);transition:opacity .6s;position:absolute;inset:0}.hero__content{z-index:3;text-align:center;padding:var(--spacing-xl)var(--spacing-md);opacity:0;transition:opacity 1.2s cubic-bezier(.22,1,.36,1),transform 1.2s cubic-bezier(.22,1,.36,1);position:relative;transform:translateY(30px)}.hero--visible .hero__content{opacity:1;transform:translateY(0)}.hero__subtitle{font-family:var(--font-body);letter-spacing:.35em;text-transform:uppercase;color:#ffffffe6;margin-bottom:var(--spacing-sm);text-shadow:var(--hero-text-shadow);font-size:clamp(.875rem,1.2vw,1.125rem);font-weight:400}.hero__title{font-family:var(--font-display);color:#fff;text-shadow:var(--hero-text-shadow);margin:0;font-size:clamp(2.5rem,6vw,5.5rem);font-weight:300;line-height:1.15}.hero__divider{justify-content:center;align-items:center;gap:var(--spacing-sm);margin:var(--spacing-lg)auto;width:min(300px,60%);display:flex}.hero__divider-line{height:1px;filter:drop-shadow(var(--hero-text-shadow));background:linear-gradient(90deg,#0000 0%,#fff9 50%,#0000 100%);flex:1}.hero__divider-ornament{color:var(--color-accent);filter:drop-shadow(var(--hero-text-shadow));justify-content:center;align-items:center;animation:2.5s ease-in-out infinite hero-pulse;display:flex}.hero__date{font-family:var(--font-body);color:#fffffff2;letter-spacing:.2em;text-shadow:var(--hero-text-shadow);font-size:clamp(1rem,1.5vw,1.375rem);font-weight:400}.hero__scroll-indicator{bottom:var(--spacing-lg);z-index:3;opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;margin:0;animation:1s 1.5s forwards hero-fadeIn;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hero__scroll-text{font-family:var(--font-body);letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:#fff9;text-shadow:var(--hero-text-shadow);font-size:.7rem}.hero__scroll-arrow{color:#fff9;text-shadow:var(--hero-text-shadow);font-size:1rem;animation:2s ease-in-out infinite hero-bounce}.hero__bg--slide{opacity:0;transition:opacity 1.5s ease-in-out}.hero__bg--active{opacity:1}.hero__slide-indicators{bottom:calc(var(--spacing-lg) + 60px);z-index:4;justify-content:center;align-items:center;gap:12px;margin:0;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hero__slide-dot{cursor:pointer;background:0 0;border:1.5px solid #fff9;border-radius:50%;outline:none;width:8px;height:8px;margin:0;padding:0;transition:background .3s,transform .3s,border-color .3s}.hero__slide-dot:hover{border-color:#fff;transform:scale(1.3)}.hero__slide-dot--active{background:#fff;border-color:#fff;transform:scale(1.2)}.hero--framed{background:0 0}.hero--framed .hero__content{position:relative}.hero--framed .hero__subtitle{color:var(--color-text-muted)}.hero--framed .hero__title{color:var(--color-primary);text-shadow:none}.hero--framed .hero__divider-line{background:linear-gradient(90deg,transparent 0%,var(--color-border)50%,transparent 100%)}.hero--framed .hero__date{color:var(--color-text-muted)}.hero--framed .hero__scroll-text,.hero--framed .hero__scroll-arrow{color:var(--color-text-muted);opacity:.6}.hero__frame{z-index:0;opacity:0;background-position:50%;background-repeat:no-repeat;background-size:cover;transition:opacity 1.2s;position:absolute;inset:0}.hero--visible .hero__frame{opacity:1}.hero--framed:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(#ffffff80 0%,#0000 70%);position:absolute;inset:0}.hero--framed .hero__content{z-index:2}.hero--shadow-1{--hero-text-shadow:0 1px 8px #00000026,0 0 2px #0000001a}.hero--shadow-2{--hero-text-shadow:0 2px 16px #00000059,0 1px 4px #0003}.hero--shadow-3{--hero-text-shadow:0 2px 20px #00000073,0 1px 6px #00000047}.hero--shadow-4{--hero-text-shadow:0 3px 24px #0000008c,0 1px 8px #00000059}.hero--shadow-5{--hero-text-shadow:0 4px 30px #000000b3,0 2px 10px #00000073}@keyframes hero-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}@keyframes hero-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes hero-fadeIn{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (max-width:768px){.hero__bg{background-attachment:scroll}}
.countdown{padding:var(--spacing-2xl)var(--spacing-md);text-align:center;opacity:0;background:0 0;transition:opacity .8s,transform .8s;transform:translateY(20px)}.countdown--visible{opacity:1;transform:translateY(0)}.countdown__label{font-family:var(--font-body);letter-spacing:.3em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--spacing-xl);font-size:clamp(.8rem,1.1vw,1rem)}.countdown__grid{gap:var(--spacing-md);grid-template-columns:repeat(4,1fr);max-width:600px;margin:0 auto;display:grid}.countdown__unit{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-surface-alt);border-radius:var(--radius-md);border:1px solid var(--color-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;transition:transform .3s,box-shadow .3s;display:flex}.countdown__unit:hover{box-shadow:0 8px 30px var(--color-shadow);transform:translateY(-4px)}.countdown__number{font-family:var(--font-display);color:var(--color-primary);font-size:clamp(2rem,4vw,3.5rem);font-weight:300;line-height:1}.countdown__unit-label{font-family:var(--font-body);letter-spacing:.25em;text-transform:uppercase;color:var(--color-text-muted);font-size:.7rem}@media (max-width:480px){.countdown__grid{gap:var(--spacing-sm);grid-template-columns:repeat(2,1fr)}}
.timeline{padding:var(--spacing-md);background:0 0;overflow:hidden}.timeline__heading{font-family:var(--font-display);color:var(--color-primary);text-align:center;margin-bottom:var(--spacing-2xl);font-size:clamp(1.75rem,3.5vw,3rem);font-weight:300}.timeline__track{max-width:1200px;padding:var(--spacing-md)0;margin:0 auto;position:relative}.timeline__line{background:linear-gradient(180deg,transparent 0%,var(--color-border)10%,var(--color-border)90%,transparent 100%);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline__item{margin-bottom:var(--spacing-xl);opacity:0;align-items:flex-start;transition:opacity .8s,transform .8s cubic-bezier(.22,1,.36,1);display:flex;position:relative}.timeline__item--left{padding-right:calc(50% + var(--spacing-lg));flex-direction:row;transform:translate(-30px)}.timeline__item--right{padding-left:calc(50% + var(--spacing-lg));flex-direction:row-reverse;transform:translate(30px)}.timeline__item--visible{opacity:1;transform:translate(0)}.timeline__dot{background:var(--color-surface);border:2px solid var(--color-accent);z-index:2;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:transform .3s,box-shadow .3s;display:flex;position:absolute;left:50%;transform:translate(-50%)}.timeline__item--visible .timeline__dot{box-shadow:0 0 20px var(--color-accent-glow)}.timeline__dot-inner{background:var(--color-accent);border-radius:50%;width:10px;height:10px}.timeline__icon{font-size:1rem}.timeline__card{background:color-mix(in srgb,var(--color-surface),transparent 50%);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);width:100%;max-width:520px;transition:transform .3s,box-shadow .3s}.timeline__card:hover{box-shadow:0 6px 24px var(--color-shadow);transform:translateY(-2px)}.timeline__meta{margin-bottom:var(--spacing-xs);justify-content:space-between;align-items:center;display:flex}.timeline__time{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-size:.95rem;font-weight:500}.timeline__location-tag{font-family:var(--font-body);color:var(--color-text-muted);margin-top:4px;font-size:.8rem;font-weight:500;display:block}.timeline__event-title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:1.6rem;font-weight:400}.timeline__card-inner{gap:var(--spacing-md);align-items:center;display:flex}.timeline__item--left .timeline__card-inner{flex-direction:row}.timeline__item--right .timeline__card-inner{flex-direction:row-reverse}.timeline__content{flex-direction:column;flex:1;display:flex}.timeline__image-wrapper{border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-shrink:0;width:180px;height:180px;overflow:hidden}.timeline__image{object-fit:cover;width:100%;height:100%;transition:transform .5s}.timeline__card:hover .timeline__image{transform:scale(1.05)}.timeline__event-desc{font-family:var(--font-body);color:var(--color-text-muted);margin:0;font-size:.9rem;line-height:1.6}.timeline__map-link{align-self:flex-start;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-md);font-family:var(--font-body);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:8px 16px;font-size:.75rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.timeline__map-link:hover{background:var(--color-accent);color:#fff}.timeline__svg-icon{width:24px;height:24px;color:var(--color-accent)}.timeline--itinerary .timeline__dot{background:var(--color-background);border-width:1px;border-color:var(--color-border);width:56px;height:56px}.timeline--itinerary .timeline__svg-icon{width:32px;height:32px}.timeline--itinerary .timeline__item--visible .timeline__dot{box-shadow:0 10px 30px var(--color-shadow)}@media (max-width:768px){.timeline{padding:var(--spacing-lg)var(--spacing-md)}.timeline__heading{margin-bottom:var(--spacing-lg)}.timeline__line{left:24px}.timeline__item--left,.timeline__item--right{flex-direction:row;padding-left:56px;padding-right:0}.timeline--itinerary .timeline__item--left,.timeline--itinerary .timeline__item--right{padding-left:72px}.timeline__item--left,.timeline__item--right{transform:translateY(20px)}.timeline__dot{width:32px;height:32px;left:24px}.timeline--itinerary .timeline__dot{width:48px;height:48px;left:24px}.timeline__card{text-align:left;max-width:100%}.timeline__card-inner{align-items:flex-start;gap:0;flex-direction:column!important}.timeline__content{display:contents}.timeline__meta{order:1}.timeline__event-title{font-size:1.35rem;font-family:var(--font-display);color:var(--color-text);order:2;margin-top:4px;margin-bottom:2px;font-weight:400}.timeline__event-desc{order:3;margin:0;line-height:1.4}.timeline__location-tag{order:4;margin-top:2px}.timeline__image-wrapper{width:100%;height:200px;margin:var(--spacing-md)0;order:5}.timeline__map-link{order:6;align-self:flex-start;margin-top:0}}
.gallery{padding:var(--spacing-2xl)var(--spacing-md);background:0 0}.gallery__heading{font-family:var(--font-display);color:var(--color-primary);text-align:center;margin-bottom:var(--spacing-xl);font-size:clamp(1.75rem,3.5vw,3rem);font-weight:300}.gallery__grid{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);max-width:1000px;margin:0 auto;display:grid}.gallery__item{opacity:0;cursor:pointer;outline:none;transition:opacity .6s,transform .6s;transform:scale(.95)translateY(15px)}.gallery__item--visible{opacity:1;transform:scale(1)translateY(0)}.gallery__image-wrapper{border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;padding-top:100%;position:relative;overflow:hidden}.gallery__image{object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}.gallery__item:hover .gallery__image,.gallery__item:focus .gallery__image{transform:scale(1.08)}.gallery__hover-overlay{padding:var(--spacing-md);opacity:0;background:linear-gradient(#0000 30%,#0009 100%);flex-direction:column;justify-content:flex-end;align-items:center;transition:opacity .4s;display:flex;position:absolute;inset:0}.gallery__item:hover .gallery__hover-overlay,.gallery__item:focus .gallery__hover-overlay{opacity:1}.gallery__zoom-icon{color:#fff;opacity:.8;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gallery__zoom-icon svg{width:32px;height:32px}.gallery__caption{color:#ffffffe6;font-family:var(--font-body);text-align:center;margin:0;font-size:.85rem}.gallery__lightbox{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000eb;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.gallery__lightbox-close{top:var(--spacing-md);right:var(--spacing-md);color:#fff;cursor:pointer;opacity:.7;z-index:1001;padding:var(--spacing-xs);background:0 0;border:none;justify-content:center;align-items:center;transition:all .3s;display:flex;position:absolute}.gallery__lightbox-close:hover{opacity:1}.gallery__lightbox-image-wrapper{justify-content:center;align-items:center;max-width:100%;display:flex;position:relative}.gallery__lightbox-nav{color:#fff;cursor:pointer;z-index:1001;background:#0006;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;transition:all .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 15px #00000080}.gallery__lightbox-nav svg{width:28px;height:28px}.gallery__lightbox-close svg{width:32px;height:32px}.gallery__lightbox-nav:hover{background:#fff3}.gallery__lightbox-nav--prev{left:var(--spacing-sm)}.gallery__lightbox-nav--next{right:var(--spacing-sm)}.gallery__lightbox-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;max-width:95vw;max-height:92vh;display:flex}.gallery__lightbox-image{border-radius:var(--radius-sm);object-fit:contain;width:auto;max-width:100%;height:auto;max-height:85vh;box-shadow:0 20px 50px #00000080}.gallery__lightbox-caption{color:#fffc;font-family:var(--font-body);margin-top:var(--spacing-sm);font-size:.9rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width:768px){.gallery__grid{gap:var(--spacing-sm);grid-template-columns:repeat(2,1fr)}.gallery__lightbox-nav{background:#0009;border-color:#ffffff4d;width:48px;height:48px}.gallery__lightbox-nav--prev{left:var(--spacing-xs)}.gallery__lightbox-nav--next{right:var(--spacing-xs)}.gallery__lightbox-nav svg{filter:drop-shadow(0 2px 4px #00000080);width:24px;height:24px}}@media (max-width:480px){.gallery__grid{grid-template-columns:1fr}}
.quote{padding:var(--spacing-2xl)var(--spacing-md);text-align:center;opacity:0;background:0 0;flex-direction:column;align-items:center;transition:opacity 1s,transform 1s;display:flex;transform:translateY(20px)}.quote--visible{opacity:1;transform:translateY(0)}.quote__ornament{font-family:var(--font-accent);color:var(--color-accent);opacity:.3;margin-bottom:var(--spacing-sm);-webkit-user-select:none;user-select:none;font-size:clamp(4rem,8vw,7rem);line-height:.5}.quote__text{font-family:var(--font-accent);color:var(--color-text);quotes:none;max-width:700px;margin:0;font-size:clamp(1.25rem,2.5vw,2rem);font-style:italic;font-weight:300;line-height:1.6}.quote__author{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-muted);margin-top:var(--spacing-md);font-size:.85rem;font-style:normal}
.map-section{padding:var(--spacing-2xl)var(--spacing-md);opacity:0;background:0 0;transition:opacity .8s,transform .8s;transform:translateY(20px)}.map-section--visible{opacity:1;transform:translateY(0)}.map-section__heading{font-family:var(--font-display);color:var(--color-primary);text-align:center;margin-bottom:var(--spacing-xl);font-size:clamp(1.75rem,3.5vw,3rem);font-weight:300}.map-section__info{text-align:center;max-width:500px;margin:0 auto var(--spacing-xl)}.map-section__venue-icon{margin-bottom:var(--spacing-sm);font-size:2rem}.map-section__venue{font-family:var(--font-display);color:var(--color-text);margin:0 0 var(--spacing-xs);font-size:1.5rem;font-weight:400}.map-section__address{font-family:var(--font-body);color:var(--color-text-muted);margin:0 0 var(--spacing-md);font-size:.95rem;line-height:1.6}.map-section__directions{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent);border-bottom:1px solid #0000;padding-bottom:2px;font-size:.85rem;text-decoration:none;transition:border-color .3s}.map-section__directions:hover{border-color:var(--color-accent)}.map-section__embed{border-radius:var(--radius-md);border:1px solid var(--color-border);max-width:800px;box-shadow:0 4px 20px var(--color-shadow);margin:0 auto;overflow:hidden}.map-section__embed iframe{display:block}
.footer{padding:var(--spacing-2xl)var(--spacing-md)var(--spacing-xl);text-align:center;align-items:center;gap:var(--spacing-md);background:0 0;flex-direction:column;display:flex}.footer__ornament{align-items:center;gap:var(--spacing-sm);width:min(200px,50%);margin-bottom:var(--spacing-sm);display:flex}.footer__ornament-line{background:linear-gradient(90deg,transparent 0%,var(--color-border)50%,transparent 100%);flex:1;height:1px}.footer__ornament-heart{color:var(--color-accent);justify-content:center;align-items:center;animation:3s ease-in-out infinite pulse;display:flex}.footer__message{font-family:var(--font-display);color:var(--color-text);max-width:500px;margin:0;font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:300;line-height:1.5}.footer__hashtag{font-family:var(--font-body);letter-spacing:.1em;color:var(--color-accent);margin:0;font-size:1rem}.footer__social{gap:var(--spacing-md);flex-wrap:wrap;justify-content:center;display:flex}.footer__social-link{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:4px;text-decoration:none;transition:color .3s,transform .3s;display:flex}.footer__social-link:hover{color:var(--color-accent);transform:translateY(-2px)}.footer__social-icon{color:currentColor;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.footer__social-icon svg{width:100%;height:100%}.footer__social-name{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:500}.footer__credits{font-family:var(--font-body);color:var(--color-text-muted);opacity:.7;margin-top:calc(var(--spacing-md)*.5);font-size:.75rem;line-height:1.4}.footer__credits a{color:inherit;font-weight:500;text-decoration:none}.footer__credits a:hover{text-decoration:underline}.footer__legal{justify-content:center;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg);opacity:.6;font-size:.7rem;display:flex}.footer__legal-link{color:inherit;transition:opacity var(--transition-base);text-decoration:none}.footer__legal-link:hover{opacity:1;text-decoration:underline}.footer__legal-separator{color:var(--color-accent);opacity:.5}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.15)}}
.parents-godparents{padding:var(--spacing-xl)var(--spacing-md);text-align:center;background:0 0}.parents-godparents__container{max-width:900px;margin:0 auto}.parents-godparents__group{margin-bottom:var(--spacing-xl)}.parents-godparents__group:last-child{margin-bottom:0}.parents-godparents__title{font-family:var(--font-body);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.2em;margin-bottom:var(--spacing-lg);align-items:center;gap:var(--spacing-md);font-size:.9rem;font-weight:500;display:flex}.parents-godparents__title:before,.parents-godparents__title:after{content:"";background:linear-gradient(90deg,transparent,var(--color-border),transparent);flex:1;height:1px}.parents-godparents__grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));justify-content:center;display:grid}.parents-godparents__couple{padding:var(--spacing-sm)}.parents-godparents__label{font-family:var(--font-body);color:var(--color-accent);opacity:.8;margin-bottom:4px;font-size:.75rem;font-style:italic;display:block}.parents-godparents__names{margin:0;padding:0;list-style:none}.parents-godparents__name{font-family:var(--font-display);color:var(--color-text);margin-bottom:2px;font-size:1.25rem;font-weight:300}.parents-godparents__name:last-child{margin-bottom:0}@media (max-width:768px){.parents-godparents{padding:var(--spacing-lg)var(--spacing-md)}.parents-godparents__grid{gap:var(--spacing-md)}.parents-godparents__name{font-size:1.15rem}}
.music-section{padding:var(--spacing-lg)var(--spacing-md);text-align:center;background:0 0}.music-section__container{max-width:600px;padding:var(--spacing-xl);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 10px 40px var(--color-shadow);margin:0 auto}.music-section__info{margin-bottom:var(--spacing-lg)}.music-section__title{font-family:var(--font-display);color:var(--color-primary);margin-bottom:4px;font-size:1.75rem}.music-section__artist{font-family:var(--font-body);color:var(--color-text-muted);letter-spacing:.05em;font-size:.9rem;font-style:italic}.music-section__controls{align-items:center;gap:var(--spacing-md);flex-direction:column;display:flex}.music-section__play-btn{background:var(--color-accent);color:#fff;cursor:pointer;width:64px;height:64px;box-shadow:0 4px 15px var(--color-accent-glow);border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex}.music-section__play-btn:hover{background:var(--color-primary);transform:scale(1.1)}.music-section__play-btn svg{width:28px;height:28px}.music-section__seekbar-container{width:100%;margin:var(--spacing-md)0}.music-section__seekbar{background:var(--color-border);cursor:pointer;appearance:none;border-radius:2px;outline:none;width:100%;height:4px;position:relative}.music-section__seekbar::-webkit-slider-runnable-track{background:0 0;border-radius:2px;width:100%;height:4px}.music-section__seekbar::-moz-range-track{background:0 0;border-radius:2px;width:100%;height:4px}.music-section__seekbar::-webkit-slider-thumb{appearance:none;background:var(--color-accent);border:2px solid var(--color-background);border-radius:50%;width:12px;height:12px;margin-top:-4px;box-shadow:0 2px 6px #0003}.music-section__seekbar::-moz-range-thumb{background:var(--color-accent);border:2px solid var(--color-background);border-radius:50%;width:12px;height:12px;box-shadow:0 2px 6px #0003}.music-section__spotify-link{align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-lg);color:#fff;font-family:var(--font-body);background:#1db954;border-radius:30px;padding:10px 20px;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.music-section__spotify-link:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1db95466}.music-section__spotify-link svg{width:20px;height:20px}.music-widget{bottom:var(--spacing-lg);left:var(--spacing-lg);z-index:1000;position:fixed}.music-widget__btn{background:var(--color-surface);width:50px;height:50px;color:var(--color-accent);border:1px solid var(--color-border);cursor:pointer;box-shadow:0 4px 20px var(--color-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.music-widget__btn:hover{background:var(--color-background);border-color:var(--color-accent);transform:translateY(-5px)}.music-widget__btn svg{width:20px;height:20px}.music-widget--playing .music-widget__btn{animation:2s ease-in-out infinite musicPulse}@keyframes musicPulse{0%{box-shadow:0 0 0 0 var(--color-accent-glow)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@media (max-width:768px){.music-section{padding:var(--spacing-md)var(--spacing-md)}.music-section__container{padding:var(--spacing-lg)}}
.article{padding:var(--spacing-xl)var(--spacing-md);opacity:0;background:0 0;justify-content:center;transition:opacity 1s,transform 1s;display:flex;transform:translateY(20px)}.article--visible{opacity:1;transform:translateY(0)}.article__content{width:100%;max-width:800px}.article__header{text-align:center;margin-bottom:var(--spacing-xl)}.article__heading{font-family:var(--font-display);color:var(--color-primary);margin:0 0 var(--spacing-sm);font-size:clamp(1.75rem,3.5vw,3rem);font-weight:300}.article__subheading{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin:0;font-size:.9rem}.article__body{gap:var(--spacing-md);flex-direction:column;display:flex}.article__paragraph{font-family:var(--font-body);color:var(--color-text-muted);text-align:center;margin:0;font-size:1.05rem;line-height:1.8}.article__paragraph a{color:var(--color-accent);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px;transition:color .3s}.article__paragraph a:hover{color:var(--color-primary)}.article__paragraph b,.article__paragraph strong{color:var(--color-text);font-weight:600}
.media{padding:var(--spacing-xl)var(--spacing-md);opacity:0;background:0 0;justify-content:center;transition:opacity 1s,transform 1s;display:flex;transform:translateY(20px)}.media--visible{opacity:1;transform:translateY(0)}.media__content{align-items:center;gap:var(--spacing-lg);flex-direction:column;width:100%;max-width:800px;display:flex}.media__header{text-align:center}.media__heading{font-family:var(--font-display);color:var(--color-primary);margin:0 0 var(--spacing-sm);font-size:clamp(1.75rem,3.5vw,3rem);font-weight:300}.media__subtitle{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin:0;font-size:.9rem}.media__wrapper{justify-content:center;width:100%;display:flex}.media__element{width:100%;height:auto;box-shadow:var(--shadow-md);transition:box-shadow var(--transition-normal);display:block}.media__element--rounded{border-radius:var(--radius-lg)}.media__element:hover{box-shadow:var(--shadow-lg)}.media__caption{font-family:var(--font-body);color:var(--color-text-muted);text-align:center;letter-spacing:.02em;margin:0;font-size:.85rem;font-style:italic}@media (max-width:480px){.media{padding:var(--spacing-lg)var(--spacing-sm)}}
.simpleconfirmbutton{padding:var(--spacing-lg)var(--spacing-md);text-align:center;opacity:0;background:0 0;justify-content:center;align-items:center;transition:opacity 1s,transform 1s;display:flex;transform:translateY(20px)}.simpleconfirmbutton--visible{opacity:1;transform:translateY(0)}.simpleconfirmbutton__content{text-align:center;align-items:center;gap:var(--spacing-lg);flex-direction:column;width:100%;max-width:800px;display:flex}@media (min-width:768px){.simpleconfirmbutton__content{text-align:left;justify-content:center;gap:var(--spacing-2xl);flex-direction:row}.simpleconfirmbutton__content--reverse{text-align:right;flex-direction:row-reverse}}.simpleconfirmbutton__icon{color:var(--color-accent);opacity:.9;flex-shrink:0;justify-content:center;align-items:center;transition:transform .8s cubic-bezier(.22,1,.36,1);display:flex;transform:scale(.9)}.simpleconfirmbutton__icon svg{stroke:currentColor;width:80px;height:80px}.simpleconfirmbutton--visible .simpleconfirmbutton__icon{transform:scale(1)}.simpleconfirmbutton__text{flex-direction:column;justify-content:center;align-items:center;max-width:500px;display:flex}@media (min-width:768px){.simpleconfirmbutton__text{align-items:flex-start}.simpleconfirmbutton__content--reverse .simpleconfirmbutton__text{align-items:flex-end}}.simpleconfirmbutton__heading{font-family:var(--font-display);color:var(--color-primary);margin:0 0 var(--spacing-sm);font-size:clamp(1.75rem,3.5vw,3rem);font-weight:300}.simpleconfirmbutton__description{font-family:var(--font-body);color:var(--color-text-muted);margin:0 0 var(--spacing-lg);font-size:1.1rem;line-height:1.6}.simpleconfirmbutton__description b,.simpleconfirmbutton__description strong{color:var(--color-text);font-weight:600}.simpleconfirmbutton__action{justify-content:center;display:flex}@media (min-width:768px){.simpleconfirmbutton__action{justify-content:flex-start}.simpleconfirmbutton__content--reverse .simpleconfirmbutton__action{justify-content:flex-end}}.simpleconfirmbutton__button{justify-content:center;align-items:center;gap:var(--spacing-sm);font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;padding:var(--spacing-sm)var(--spacing-lg);border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;min-height:48px;font-size:.8rem;text-decoration:none;transition:background .4s,color .4s,transform .2s,box-shadow .4s;display:inline-flex}.simpleconfirmbutton__button svg{fill:currentColor;width:20px;height:20px}.simpleconfirmbutton__button:hover{color:var(--color-accent);box-shadow:0 4px 15px var(--color-accent-glow);background:0 0;transform:translateY(-2px)}.simpleconfirmbutton__button:active{transform:translateY(0)}
.generic-icon-section{padding:var(--spacing-lg)var(--spacing-md);text-align:center;opacity:0;background:0 0;justify-content:center;align-items:center;transition:opacity 1s,transform 1s;display:flex;transform:translateY(20px)}.generic-icon-section--visible{opacity:1;transform:translateY(0)}.generic-icon-section__content{text-align:center;align-items:center;gap:var(--spacing-lg);flex-direction:column;width:100%;max-width:800px;display:flex}@media (min-width:768px){.generic-icon-section__content{text-align:left;justify-content:center;gap:var(--spacing-2xl);flex-direction:row}.generic-icon-section__content--reverse{text-align:right;flex-direction:row-reverse}}.generic-icon-section__icon{color:var(--color-accent);opacity:.9;flex-shrink:0;justify-content:center;align-items:center;transition:transform .8s cubic-bezier(.22,1,.36,1);display:flex;transform:scale(.9)}.generic-icon-section--visible .generic-icon-section__icon{transform:scale(1)}.generic-icon-section__text{flex-direction:column;justify-content:center;align-items:center;max-width:500px;display:flex}@media (min-width:768px){.generic-icon-section__text{align-items:flex-start}.generic-icon-section__content--reverse .generic-icon-section__text{align-items:flex-end}}.generic-icon-section__heading{font-family:var(--font-display);color:var(--color-primary);margin:0 0 var(--spacing-sm);font-size:clamp(1.75rem,3.5vw,3rem);font-weight:300}.generic-icon-section__description{font-family:var(--font-body);color:var(--color-text-muted);margin:0 0 var(--spacing-lg);font-size:1.1rem;line-height:1.6}.generic-icon-section__description b,.generic-icon-section__description strong{color:var(--color-text);font-weight:600}.generic-icon-section__description a{color:var(--color-accent);text-decoration:underline}.generic-icon-section__description:last-child{margin-bottom:0}.generic-icon-section__buttons{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center;display:flex}@media (min-width:768px){.generic-icon-section__buttons{justify-content:flex-start}.generic-icon-section__content--reverse .generic-icon-section__buttons{justify-content:flex-end}}.generic-icon-section__button{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;padding:var(--spacing-sm)var(--spacing-lg);border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;min-height:40px;font-size:.8rem;text-decoration:none;transition:background .4s,color .4s,transform .2s,box-shadow .4s;display:inline-flex}.generic-icon-section__button:hover{color:var(--color-accent);box-shadow:0 4px 15px var(--color-accent-glow);background:0 0;transform:translateY(-2px)}.generic-icon-section__button:active{transform:translateY(0)}
.rsvp-return-cta{max-width:760px;padding:var(--spacing-lg)var(--spacing-md);text-align:center;align-items:center;gap:var(--spacing-sm);flex-direction:column;margin:0 auto;display:flex}.rsvp-return-cta__icon{color:var(--color-accent);opacity:.9;margin-bottom:var(--spacing-xs)}.rsvp-return-cta__title{font-family:var(--font-display);color:var(--color-primary);margin:0 0 var(--spacing-sm);font-size:clamp(1.65rem,3vw,2.6rem);font-weight:300;line-height:1.2}.rsvp-return-cta__description{font-family:var(--font-body);color:var(--color-text-muted);max-width:560px;margin-bottom:var(--spacing-lg);font-size:1.05rem;line-height:1.6}.rsvp-return-cta__button{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;padding:var(--spacing-sm)var(--spacing-lg);border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;border-radius:var(--radius-sm);justify-content:center;align-items:center;min-height:40px;font-size:.8rem;text-decoration:none;transition:background .35s,color .35s,transform .2s,box-shadow .35s;display:inline-flex}.rsvp-return-cta__button:hover{color:var(--color-accent);box-shadow:0 4px 15px var(--color-accent-glow);background:0 0;transform:translateY(-2px)}.rsvp-return-cta__button:active{transform:translateY(0)}
