:root{--primary-color: #a84343;--primary-color-rgb: 168, 67, 67;--secondary-color: #fde8e8;--font-color: #4a4a4a;--white: #ffffff;--gray: #f0f0f0;--dark-gray: #333;--font-heading: "Great Vibes", cursive;--font-body: "Montserrat", sans-serif;--hero-image-blur: 0px;--events-image-blur: 0px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:light;scroll-behavior:smooth;scroll-padding-top:2rem}body{font-family:var(--font-body);color:var(--font-color);background-color:var(--white);line-height:1.6;overflow-x:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}body.no-scroll,html.no-scroll{overflow-y:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes heart-beat{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes pulse{0%{box-shadow:0 0 rgba(var(--primary-color-rgb),.7)}70%{box-shadow:0 0 0 10px rgba(var(--primary-color-rgb),0)}to{box-shadow:0 0 rgba(var(--primary-color-rgb),0)}}@keyframes cursor-heart-beat{0%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.1)}to{transform:translate(-50%,-50%) scale(1)}}@keyframes halo-pulse{0%{filter:drop-shadow(0 0 10px rgba(var(--primary-color-rgb),.7))}to{filter:drop-shadow(0 0 20px rgba(var(--primary-color-rgb),1))}}.fade-in{animation:fadeIn .4s ease-in-out forwards}.animate-on-scroll{opacity:0;transition:opacity .8s cubic-bezier(.215,.61,.355,1),transform .8s cubic-bezier(.215,.61,.355,1)}.animate-on-scroll.slide-in-up{transform:translateY(50px)}.animate-on-scroll.is-visible{opacity:1;transform:translateY(0)}.animation-delay-200{transition-delay:.2s}.animation-delay-400{transition-delay:.4s}.container{max-width:1200px;margin:0 auto;padding:3rem;text-align:center}.section-title{font-family:var(--font-heading);font-size:3.5rem;font-weight:400;color:var(--primary-color);margin-bottom:1rem}.section-description{max-width:700px;margin:0 auto 2.5rem;font-size:1.1rem;color:var(--font-color)}.save-date-container{margin-bottom:3rem;position:relative;z-index:10}.save-date-container .btn{display:inline-flex;align-items:center;gap:.75rem;font-size:1.1rem;font-weight:500;padding:.8rem 2.2rem;border-color:var(--white);color:var(--white);background-color:transparent;transition:all .3s ease}.save-date-container .btn:hover{background-color:var(--white);color:var(--dark-gray);box-shadow:0 0 15px rgba(var(--primary-color-rgb),.6);transform:translateY(-2px)}.save-date-container .btn svg{width:20px;height:20px;stroke-width:2.5px}.calendar-dropdown{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);background-color:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;box-shadow:0 10px 30px #0003;padding:1rem;display:flex;flex-direction:column;gap:1rem;width:320px;color:var(--font-color);animation:fadeIn .3s ease}.calendar{text-align:center}.calendar-header{margin-bottom:.75rem}.calendar-header h4{font-family:var(--font-body);font-weight:700;font-size:1rem;color:var(--primary-color);margin:0;text-transform:capitalize}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day-name,.calendar-day{display:flex;align-items:center;justify-content:center;height:36px;font-size:.85rem}.calendar-day-name{font-weight:700;color:var(--dark-gray)}.calendar-day{border-radius:50%;transition:background-color .2s ease,color .2s ease}.calendar-day:not(.empty):hover{background-color:var(--secondary-color)}.calendar-day.event-day{background-color:var(--primary-color);color:var(--white);font-weight:700;animation:heart-beat 1.5s ease-in-out}.save-all-btn{width:100%;margin-top:.5rem;background-color:var(--primary-color);color:var(--white);border-color:var(--primary-color)}.save-all-btn:hover{background-color:transparent;color:var(--primary-color)}.btn{display:inline-block;padding:.75rem 2rem;font-family:var(--font-body);font-weight:700;text-decoration:none;border:2px solid var(--primary-color);transition:all .3s ease;background-color:transparent;color:var(--font-color);border-radius:50px;cursor:pointer}.btn:hover,.btn-primary{background-color:var(--primary-color);color:var(--white)}.btn-primary:hover,.btn-primary-outline{background-color:transparent;color:var(--primary-color);border-color:var(--primary-color)}.btn-primary-outline:hover{background-color:var(--primary-color);color:var(--white)}.btn-white{border-color:var(--white);background-color:var(--white);color:var(--dark-gray)}.btn-white:hover{background-color:transparent;color:var(--white);box-shadow:0 0 15px #fff9}.btn-secondary{border-color:#e0e0e0;background-color:transparent;color:var(--font-color)}.btn-secondary:hover{background-color:#e0e0e0;color:var(--dark-gray);border-color:#e0e0e0}.btn-round{width:50px;height:50px;border-radius:50%;padding:0;display:flex;justify-content:center;align-items:center;font-size:1.5rem}.btn-a{font-weight:500;padding:.5rem 1.5rem}.btn:disabled,.btn[disabled]{cursor:wait;opacity:.7}.btn-white:disabled,.btn-white[disabled]{background-color:#f0f0f0;color:#999;border-color:#f0f0f0}.loader-container{display:flex;justify-content:center;align-items:center;height:100vh;flex-direction:column;gap:1rem}.loader{border:4px solid var(--secondary-color);border-top:4px solid var(--primary-color);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}.couple-person-container{text-align:center;display:flex;flex-direction:column;align-items:center}.couple-person-details{margin-top:1.5rem;display:flex;flex-direction:column;align-items:center}.couple-person-details h3{font-size:2rem;font-family:var(--font-heading);color:var(--primary-color);font-weight:400}.couple-person-details p{font-size:1.1rem;color:var(--font-color);font-weight:300}.image-stack-wrapper{width:100%}.couple-person-container .image-stack-wrapper{max-width:350px}.image-stack{width:100%;aspect-ratio:3 / 4;position:relative;cursor:grab;-webkit-tap-highlight-color:transparent;touch-action:pan-y}.image-stack:active{cursor:grabbing}.image-stack-placeholder{display:flex;align-items:center;justify-content:center;background-color:var(--gray);border-radius:10px;color:var(--font-color)}.image-stack-card{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:10px;overflow:hidden;background-color:var(--gray);will-change:transform,opacity}.image-stack-card:last-child{box-shadow:0 8px 25px #00000026}.image-stack-card img{width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none}.image-stack-controls{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%,20px);z-index:50;display:flex;justify-content:center;align-items:center;gap:.75rem;background-color:#00000040;padding:.5rem 1rem;border-radius:50px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:0;pointer-events:none;transition:opacity .3s ease-out,transform .3s ease-out}.image-stack-controls.is-visible{opacity:1;transform:translate(-50%);pointer-events:auto}.image-stack-controls .btn-icon{background-color:#ffffff1a;color:var(--white);border:1px solid rgba(255,255,255,.3);border-radius:50%;width:36px;height:36px;display:flex;justify-content:center;align-items:center;padding:0;box-shadow:none;transition:all .2s ease-in-out}.image-stack-controls .btn-icon:hover{transform:scale(1.05);background-color:#fff3;border-color:var(--white)}.image-stack-controls .btn-icon:disabled{opacity:.5;cursor:not-allowed;transform:none;background-color:#ffffff1a}.image-stack-controls .btn-icon svg{width:20px;height:20px}.couple-separator{color:var(--primary-color);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.couple-separator svg{width:48px;height:48px;animation:heart-beat 2s infinite ease-in-out}.couple-separator span{font-family:var(--font-heading);font-size:3rem;line-height:1}.event-card{background-color:#ffffff1a;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);padding:1.5rem;border-radius:15px;border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #0000001a;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;text-align:center}.event-card:hover{border-color:#ffffff80;box-shadow:0 8px 32px #0000001a,0 0 20px rgba(var(--primary-color-rgb),.2)}.event-card:hover h3{text-shadow:0 2px 4px rgba(0,0,0,.5),0 0 25px var(--primary-color)}.event-card h3{font-family:var(--font-heading);color:var(--white);font-size:2.2rem;margin-bottom:.75rem;font-weight:400;text-shadow:0 2px 4px rgba(0,0,0,.5),0 0 15px rgba(var(--primary-color-rgb),.7);transition:text-shadow .3s ease}.event-time-pill{display:inline-flex;align-items:center;gap:.5rem;background-color:rgba(var(--primary-color-rgb),.8);color:var(--white);font-weight:700;padding:.35rem 1rem;border-radius:50px;margin-bottom:1rem;box-shadow:0 2px 5px #0000001a}.event-time-pill .event-icon{width:16px;height:16px;margin:0;color:var(--white)}.event-icon{flex-shrink:0;width:20px;height:20px;color:var(--white)}.event-location{margin-top:1rem;margin-bottom:1.25rem}.event-venue-container{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.event-card-venue{font-size:1.2rem;font-weight:700;color:var(--white);line-height:1.4;position:relative;padding-bottom:2px}.event-card-venue:after{content:"";position:absolute;width:100%;height:2px;bottom:0;left:0;background-color:var(--primary-color);transform:scaleX(0);transform-origin:bottom right;transition:transform .3s ease-out}.event-card:hover .event-card-venue:after{transform:scaleX(1);transform-origin:bottom left}.event-card-address{display:block;font-size:.9rem;color:#fffc}.event-card .btn{margin-top:.5rem;border-color:var(--white);color:var(--white)}.event-card .btn:hover{background-color:var(--white);color:var(--dark-gray);box-shadow:0 0 15px rgba(var(--primary-color-rgb),.6)}.gallery-modal,.image-stack-modal,.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:10002;display:flex;justify-content:center;align-items:center}.modal-overlay{background-color:#0009;animation:fadeIn .3s ease}.modal-content,.image-stack-modal-content{position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.modal-content img,.image-stack-modal-content img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:5px}.modal-btn,.image-stack-modal-close{position:absolute;background:#ffffff1a;color:#fff;border:none;border-radius:50%;z-index:1001;transition:background .2s ease;display:flex;align-items:center;justify-content:center;padding:0}.modal-btn:hover,.image-stack-modal-close:hover{background:#fff3}.modal-btn{top:50%;transform:translateY(-50%);width:50px;height:50px;font-size:1.5rem}.modal-close,.image-stack-modal-close{top:1.5rem;right:1.5rem;transform:none;font-size:2rem;width:40px;height:40px;line-height:1}.modal-prev{left:1.5rem}.modal-next{right:1.5rem}.confirmation-modal-card{background:var(--white);padding:2rem;border-radius:20px;max-width:90%;width:380px;text-align:center;box-shadow:0 10px 40px #0000004d;animation:slideInUp .3s cubic-bezier(.175,.885,.32,1.275);color:var(--dark-gray);display:flex;flex-direction:column;gap:1.5rem}.confirmation-title{font-family:var(--font-body);font-size:1.3rem;color:var(--primary-color);margin:0;font-weight:700}.confirmation-message{font-size:1rem;color:var(--font-color);margin:0;line-height:1.5}.confirmation-actions{display:flex;justify-content:center;gap:1rem;margin-top:.5rem}.confirmation-actions .btn{padding:.6rem 1.5rem;font-size:1rem;min-width:100px}.gift-money-modal-card{background:var(--white);padding:2rem;border-radius:20px;max-width:90%;width:480px;text-align:center;box-shadow:0 10px 40px #0000004d;animation:slideInUp .3s cubic-bezier(.175,.885,.32,1.275);color:var(--dark-gray);display:flex;flex-direction:column;gap:1.5rem}.qr-code-image{width:100%;max-width:350px;height:auto;margin:0 auto;border-radius:10px;background-color:var(--gray)}.gift-money-message{font-size:1rem;color:var(--font-color);margin:0;line-height:1.5;white-space:pre-wrap}.modal-actions{display:flex;justify-content:center;gap:1rem;margin-top:.5rem}.rsvp-form-wrapper{max-width:600px;margin:2rem auto 0;background-color:#00000080;padding:2.5rem;border-radius:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.rsvp-form-wrapper form{text-align:center}.form-group{margin-bottom:1.5rem;text-align:left}.form-group label{display:block;margin-bottom:.5rem;font-weight:700}.form-group input[type=text],.form-group input[type=number],.form-group textarea{width:100%;padding:.75rem;background-color:#ffffff1a;border:1px solid rgba(255,255,255,.3);border-radius:5px;color:var(--white);font-family:var(--font-body);font-size:1rem;transition:border-color .3s ease,box-shadow .3s ease}.form-group input::placeholder,.form-group textarea::placeholder{color:#ffffff80}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--white);box-shadow:0 0 10px #ffffff4d}.form-group input.prefilled{background-color:#fff3;font-weight:700;cursor:default}.form-group input.prefilled:focus{box-shadow:none;border-color:#ffffff4d}.attendance-options{display:flex;gap:1rem;flex-wrap:wrap}.attendance-options button{flex:1;padding:.75rem;font-weight:700;font-family:var(--font-body);background-color:transparent;border:2px solid rgba(255,255,255,.5);color:#fffc;border-radius:5px;transition:all .2s ease-in-out}.attendance-options button.active{background-color:var(--white);color:var(--dark-gray);border-color:var(--white)}.guest-count{animation:fadeIn .5s;text-align:center}.guest-input-wrapper{display:flex;align-items:center;justify-content:center;gap:1rem;margin:.5rem auto 0;width:fit-content}.guest-input-wrapper input[type=number]{width:80px;text-align:center;font-size:1.2rem;font-weight:700;border:1px solid rgba(255,255,255,.3);background:#ffffff1a;-moz-appearance:textfield}.guest-input-wrapper input[type=number]::-webkit-outer-spin-button,.guest-input-wrapper input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.guest-input-wrapper button{width:40px;height:40px;border-radius:50%;border:2px solid var(--white);background-color:var(--white);color:var(--dark-gray);font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;transition:transform .2s ease,background-color .2s ease,color .2s ease}.guest-input-wrapper button:hover{transform:scale(1.1);background-color:transparent;color:var(--white)}.guest-input-wrapper button:active{transform:scale(1)}.rsvp-form-wrapper .btn{width:auto;padding:.8rem 3rem;font-size:1rem;margin-top:1rem;border-color:var(--white);background-color:var(--white);color:var(--dark-gray)}.rsvp-form-wrapper .btn:hover{background-color:transparent;color:var(--white)}.rsvp-form-wrapper .btn:disabled{background-color:#ccc;border-color:#ccc;color:#666;cursor:not-allowed}.submission-feedback{padding:1rem;border-radius:5px;margin:1.5rem 0;text-align:center}.error-message{background-color:#ff525233;color:#ffcdd2;border:1px solid #e57373}.success-message{background-color:#66bb6a33;color:#c8e6c9;border:1px solid #81c784;min-height:200px;display:flex;flex-direction:column;justify-content:center;align-items:center}.success-message h3{font-family:var(--font-heading);font-size:3rem;font-weight:400;color:var(--white)}.settings-container{position:fixed;bottom:2rem;right:2rem;z-index:999;display:flex;flex-direction:column;align-items:flex-end}.btn-fab{width:42px;height:42px;background-color:var(--primary-color);color:var(--white);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:none;box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.4);transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.btn-fab:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(var(--primary-color-rgb),.6)}.btn-fab.active{transform:rotate(90deg)}.settings-menu{position:absolute;bottom:100%;right:0;margin-bottom:1rem;background-color:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:.8rem;box-shadow:0 10px 30px #00000026;display:flex;flex-direction:column;gap:.25rem;min-width:180px;opacity:0;transform:translateY(20px) scale(.9);pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);transform-origin:bottom right}.settings-menu.is-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.music-controls{display:flex;justify-content:space-between;align-items:center;padding:.2rem .5rem .8rem;margin-bottom:.5rem;border-bottom:1px solid rgba(0,0,0,.08)}.music-btn{background:none;border:none;cursor:pointer;color:var(--primary-color);padding:.4rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s,transform .1s}.music-btn:hover{background-color:rgba(var(--primary-color-rgb),.1)}.music-btn:active{transform:scale(.9)}.music-btn svg{width:24px;height:24px;fill:currentColor}.music-btn.play-pause svg{width:32px;height:32px}.settings-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem;border-radius:8px;border:none;background:transparent;cursor:pointer;font-family:var(--font-body);font-size:.9rem;font-weight:500;color:var(--dark-gray);transition:background-color .2s ease;text-align:left;white-space:nowrap}.settings-item:hover{background-color:#00000008}.settings-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--primary-color);flex-shrink:0}.settings-icon svg{width:20px;height:20px}.invitation-cover{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:10000;display:flex;justify-content:center;align-items:center;flex-direction:column;color:var(--white);text-align:center;background-size:cover;background-position:center;transition:opacity 1s ease-in-out,visibility 1s ease-in-out}.invitation-cover:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.invitation-cover-content{position:relative;z-index:2;animation:fadeIn 2s ease-out}.invitation-cover.is-hidden{opacity:0;visibility:hidden}.invitation-cover h1{font-family:var(--font-heading);font-size:6rem;font-weight:400;margin-bottom:2rem;letter-spacing:2px}.invitation-cover p{font-size:1.5rem;margin-bottom:1rem}.invitation-cover-guest-greeting{margin-bottom:1rem}.invitation-cover-guest-greeting p{font-size:1.5rem;margin-bottom:0}.invitation-cover-guest-greeting .guest-name{font-family:var(--font-heading);font-size:2.5rem;color:var(--white);margin:.5rem 0;line-height:1.5;font-weight:400;letter-spacing:2px}.main-content{opacity:0;transition:opacity 1.5s ease-in-out}.main-content.is-visible{opacity:1}.hero{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--white);position:relative;background-size:cover;background-position:center}.hero:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0006;-webkit-backdrop-filter:blur(var(--hero-image-blur, 0px));backdrop-filter:blur(var(--hero-image-blur, 0px));z-index:1}.hero-content{position:relative;z-index:2;animation:fadeIn 2s ease-out;top:5%}.hero h1{font-family:var(--font-heading);font-size:6rem;font-weight:400;margin:1.5rem 0;line-height:1;letter-spacing:2px}.hero h2{font-size:1.5rem;font-weight:300;margin-top:1rem;letter-spacing:2px}.hero-date-stacked{display:flex;flex-direction:column;align-items:center;margin-top:1rem;line-height:1.2}.hero-date-days{font-size:2rem;font-weight:700;letter-spacing:4px}.hero-date-month-year{font-size:1.5rem;font-weight:300;text-transform:capitalize;letter-spacing:1px}.hero-date-month-year strong{font-weight:700}.hero-date-year{font-size:1.5rem;font-weight:400;letter-spacing:4px}.countdown-container{background-color:var(--secondary-color)}.countdown-content-wrapper{display:flex;flex-direction:column;align-items:center;gap:1rem}.countdown-event-selector{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:-1rem 0 1rem}.countdown-subtitle{font-family:var(--font-heading);font-size:2rem;color:var(--primary-color);font-weight:600;margin:0;line-height:1;text-align:center}.countdown-event-selector button{background:transparent;border:none;color:var(--primary-color);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease-in-out;padding:0;flex-shrink:0}.countdown-event-selector button:hover{transform:scale(1.1)}.countdown-event-selector .nav-placeholder{width:36px;height:36px;flex-shrink:0}.countdown-grid{display:flex;justify-content:center;align-items:center;gap:2.5rem;max-width:800px;margin:0 auto;flex-wrap:nowrap}.countdown-item{position:relative;width:150px;height:150px;border-radius:50%;background-color:var(--white);border:4px solid var(--primary-color);box-shadow:0 10px 25px rgba(var(--primary-color-rgb),.15);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:translateY(20px);transition:transform .6s cubic-bezier(.215,.61,.355,1),opacity .6s cubic-bezier(.215,.61,.355,1),box-shadow .3s ease}.countdown-container .animate-on-scroll.is-visible .countdown-item{opacity:1;transform:translateY(0)}.countdown-container .animate-on-scroll.is-visible .countdown-item:nth-child(2){transition-delay:.1s}.countdown-container .animate-on-scroll.is-visible .countdown-item:nth-child(3){transition-delay:.2s}.countdown-container .animate-on-scroll.is-visible .countdown-item:nth-child(4){transition-delay:.3s}.countdown-item:hover{transform:translateY(-5px);box-shadow:0 15px 30px rgba(var(--primary-color-rgb),.25)}.countdown-number{font-size:3.5rem;font-weight:700;color:var(--primary-color);line-height:1.1}.countdown-label{font-size:.9rem;text-transform:uppercase;letter-spacing:1px;font-weight:700;color:var(--font-color);margin-top:.25rem}.countdown-item:not(:last-child):after{content:":";position:absolute;right:-1.75rem;top:50%;transform:translateY(-50%);font-size:3rem;color:var(--primary-color);font-weight:300;line-height:1}.countdown-finished{padding:2rem 0;text-align:center}.countdown-finished h2{animation:fadeIn 1s ease-in-out}.countdown-finished p{font-size:1.2rem;color:var(--font-color);margin-top:.5rem;animation:fadeIn 1s ease-in-out .5s;animation-fill-mode:backwards}.couple-section{background-color:var(--white)}.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;max-width:1000px;margin:0 auto}.story-content{text-align:left}.story-content:after{content:"";clear:both;display:table}.story-image{float:left;width:40%;margin:0 2rem 1rem 0}.story-image img{width:100%;height:auto;border-radius:15px;box-shadow:0 10px 30px #0000001a}.story-text p{white-space:pre-wrap}.events-container{background-size:cover;background-position:center;color:var(--white);padding:4rem 0;position:relative}.events-container:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0009;-webkit-backdrop-filter:blur(var(--events-image-blur, 0px));backdrop-filter:blur(var(--events-image-blur, 0px));z-index:1}.events-container .container{position:relative;z-index:2}.events-container .section-title{color:var(--white)}.events-container .section-description{color:#ffffffe6}.event-calendar-date{width:auto;margin:2rem auto 2.5rem;padding-bottom:1rem;display:flex;flex-direction:column;align-items:center;text-transform:capitalize;border-bottom:2px solid rgba(var(--primary-color-rgb),.5)}.event-calendar-month{font-family:var(--font-heading);font-size:2.5rem;font-weight:400;color:var(--white);line-height:1}.event-calendar-weekday{font-size:1rem;font-weight:400;color:#fffc;margin-top:.25rem;letter-spacing:1px}.timeline{position:relative;max-width:800px;margin:0 auto}.timeline:after{content:"";position:absolute;width:3px;background-image:linear-gradient(to bottom,#fff0,#ffffff80 10% 90%,#fff0);top:15px;bottom:15px;left:50%;margin-left:-1.5px;border-radius:3px}.timeline-item{padding:10px 40px;position:relative;width:50%;margin-bottom:30px}.timeline-item:last-child{margin-bottom:0}.timeline-item:nth-child(odd){left:0;padding-right:40px}.timeline-item:nth-child(2n){left:50%;padding-left:40px}.timeline-icon{position:absolute;width:40px;height:40px;background-color:var(--primary-color);border:3px solid var(--white);top:25px;border-radius:50%;z-index:1;display:flex;align-items:center;justify-content:center;color:var(--white);box-shadow:0 0 15px rgba(var(--primary-color-rgb),.5);animation:pulse 2s infinite cubic-bezier(.66,0,0,1)}.timeline-icon svg{width:20px;height:20px}.timeline-item:nth-child(odd) .timeline-icon{right:-20px}.timeline-item:nth-child(2n) .timeline-icon{left:-20px}.timeline-content{position:relative}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;grid-auto-rows:250px;grid-auto-flow:dense}.gallery-item{position:relative;overflow:hidden;border-radius:10px;box-shadow:0 4px 15px #0000000d;transition:transform .3s ease;background-color:var(--secondary-color)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.gallery-item:hover img{transform:scale(1.1)}.gallery-item.wide{grid-column:span 2}.gallery-item.tall{grid-row:span 2}.animate-on-scroll-gallery{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out}.animate-on-scroll-gallery.is-visible{opacity:1;transform:translateY(0)}.gallery-stacks-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:3rem;margin-top:2rem}.gallery-stack-item{width:100%;text-align:center}.gallery-stack-title{font-family:var(--font-heading);font-size:2.5rem;color:var(--primary-color);margin-bottom:1.5rem;font-weight:400}.rsvp-container{color:var(--white);padding:4rem 0;background-size:cover;background-position:center}.rsvp-container .section-title{color:var(--white)}.rsvp-container .section-description{color:#ffffffe6}.footer{padding:2rem;text-align:center;background-color:var(--secondary-color)}.footer p{font-family:var(--font-heading);font-size:1.5rem;color:var(--primary-color)}.music-player{position:fixed;bottom:2rem;right:2rem;z-index:999}.animation-heart-beat{animation:heart-beat 2s infinite ease-in-out}body.hide-cursor,body.hide-cursor *{cursor:none}.custom-cursor{position:fixed;top:0;left:0;width:24px;height:24px;color:var(--primary-color);pointer-events:none;z-index:20000;transition:transform .2s ease,filter .2s ease;animation:cursor-heart-beat 2s infinite ease-in-out;transform:translate(-50%,-50%)}.custom-cursor.interactive-hover{transform:scale(1.2);filter:drop-shadow(0 0 10px rgba(var(--primary-color-rgb),.7));animation:cursor-heart-beat .5s infinite ease-in-out,halo-pulse 1.5s infinite alternate}.heart{position:fixed;pointer-events:none;width:24px;height:24px;color:var(--primary-color);transform:translate(-50%,-50%);animation:fadeOut 1.8s forwards;z-index:20000}@keyframes fadeOut{to{opacity:0;transform:translate(-50%,-50%) translateY(-80px) scale(.5)}}.floating-heart{position:fixed;pointer-events:auto;z-index:20000;transform:translate(-50%,-50%) scale(var(--start-scale));color:var(--primary-color);width:24px;height:24px;will-change:transform,opacity;animation:floatUp var(--duration) ease-out var(--delay) forwards;-webkit-tap-highlight-color:transparent;outline:none}@keyframes floatUp{0%{transform:translate(-50%,-50%) scale(var(--start-scale));opacity:1}85%{opacity:1;transform:translate(calc(-50% + var(--end-x) * .85),calc(-50% + var(--end-y) * .85)) scale(var(--start-scale)) rotate(300deg)}to{transform:translate(calc(-50% + var(--end-x)),calc(-50% + var(--end-y))) scale(0) rotate(360deg);opacity:0}}.heart-burst{position:fixed;pointer-events:none;z-index:20001;transform:translate(-50%,-50%)}.heart-burst-particle{position:absolute;width:24px;height:24px;color:var(--primary-color);opacity:1;animation-duration:.8s;animation-timing-function:ease-out;animation-fill-mode:forwards}.heart-burst-particle.particle-1{animation-name:heart-burst-p1}.heart-burst-particle.particle-2{animation-name:heart-burst-p2}.heart-burst-particle.particle-3{animation-name:heart-burst-p3}.heart-burst-particle.particle-4{animation-name:heart-burst-p4}.heart-burst-particle.particle-5{animation-name:heart-burst-p5}.heart-burst-particle.particle-6{animation-name:heart-burst-p6}@keyframes heart-burst-p1{0%{transform:translate(0) scale(.8);opacity:1}to{transform:translateY(-60px) scale(0);opacity:0}}@keyframes heart-burst-p2{0%{transform:translate(0) scale(.8);opacity:1}to{transform:translate(50px,-25px) scale(0);opacity:0}}@keyframes heart-burst-p3{0%{transform:translate(0) scale(.8);opacity:1}to{transform:translate(50px,25px) scale(0);opacity:0}}@keyframes heart-burst-p4{0%{transform:translate(0) scale(.8);opacity:1}to{transform:translateY(60px) scale(0);opacity:0}}@keyframes heart-burst-p5{0%{transform:translate(0) scale(.8);opacity:1}to{transform:translate(-50px,25px) scale(0);opacity:0}}@keyframes heart-burst-p6{0%{transform:translate(0) scale(.8);opacity:1}to{transform:translate(-50px,-25px) scale(0);opacity:0}}@media(max-width:992px){.container{padding:2.5rem}.invitation-cover h1,.hero h1{font-size:4.5rem}.invitation-cover-guest-greeting .guest-name{font-size:3rem}.hero h2{font-size:1.2rem}.hero-date-days{font-size:2.2rem;letter-spacing:3px}.hero-date-month-year{font-size:1.1rem;letter-spacing:1.5px}.hero-date-year{font-size:1.2rem}.section-title{font-size:3rem}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-auto-rows:auto;gap:.75rem}.gallery-item{aspect-ratio:1/1}.gallery-item.wide,.gallery-item.tall{grid-column:span 1;grid-row:span 1}.countdown-grid{gap:2rem}.countdown-item{width:120px;height:120px}.countdown-number{font-size:2.8rem}.countdown-item:not(:last-child):after{right:-1.5rem;font-size:2.5rem}}@media(max-width:768px){.container{padding:1.5rem}.invitation-cover h1,.hero h1{font-size:3.5rem}.invitation-cover-guest-greeting .guest-name{font-size:2.2rem}.invitation-cover-guest-greeting p{font-size:1.2rem}.hero-date-days{font-size:2rem;letter-spacing:2px}.hero-date-month-year{font-size:1.2rem;letter-spacing:1px}.hero-date-year{font-size:1.1rem}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.couple-grid{grid-template-columns:1fr;gap:3rem}.couple-person-container.bride-container{flex-direction:column-reverse}.bride-container .couple-person-details{margin-top:0;margin-bottom:1.5rem;flex-direction:column-reverse}.couple-separator{flex-direction:row;padding-top:0;gap:1.5rem}.countdown-grid{gap:1rem}.countdown-item{width:90px;height:90px;border-width:3px}.countdown-number{font-size:2rem}.countdown-label{font-size:.7rem}.countdown-item:not(:last-child):after{right:-.75rem;font-size:2rem}.countdown-event-selector{gap:.25rem}.countdown-subtitle{font-size:1.8rem}.countdown-event-selector button,.countdown-event-selector .nav-placeholder{width:32px;height:32px}.modal-btn{width:40px;height:40px;font-size:1.2rem}.modal-prev{left:.5rem}.modal-next{right:.5rem}.modal-close,.image-stack-modal-close{top:.5rem;right:.5rem}.timeline:after{left:20px}.timeline-item{width:100%;padding-left:60px;padding-right:0}.timeline-item:nth-child(odd),.timeline-item:nth-child(2n){left:0;padding-left:60px;padding-right:0}.timeline-icon,.timeline-item:nth-child(odd) .timeline-icon,.timeline-item:nth-child(2n) .timeline-icon{left:0}}@media(max-width:480px){.story-image{float:none;width:100%;margin-right:0;margin-bottom:2rem}.invitation-cover h1{font-size:2.8rem;line-height:1.3}.invitation-cover h1 span{display:block}.invitation-cover p{font-size:1.2rem}.invitation-cover-guest-greeting .guest-name{font-size:2rem}.hero h1{font-size:2.8rem;line-height:1.3}.hero h1 span{display:block}.hero h2{font-size:1rem}.hero-date-days{font-size:1.8rem;letter-spacing:2px}.hero-date-month-year{font-size:1rem;letter-spacing:1px}.hero-date-year{font-size:1rem}.section-title{font-size:2.5rem}.person-images{max-width:100%}.rsvp-form-wrapper{padding:1.5rem}.music-player{bottom:1.5rem;right:1.5rem}.btn-round{width:45px;height:45px;font-size:1.2rem}.countdown-grid{gap:.5rem}.countdown-item{width:70px;height:70px;border-width:2px}.countdown-number{font-size:1.5rem}.countdown-label{font-size:.6rem;letter-spacing:.5px}.countdown-item:not(:last-child):after{display:none}.calendar-dropdown{width:90vw;max-width:300px;padding:.75rem}.calendar-day-name,.calendar-day{height:32px;font-size:.8rem}}.yarl__fullsize{height:100%;width:100%}.yarl__relative{position:relative}.yarl__portal{inset:0;opacity:0;overflow:hidden;position:fixed;transition:opacity var(--yarl__fade_animation_duration,.25s) var(--yarl__fade_animation_timing_function,ease);z-index:var(--yarl__portal_zindex,9999)}.yarl__portal_open{opacity:1}.yarl__container{background-color:var(--yarl__container_background_color,var(--yarl__color_backdrop,#000));inset:0;outline:none;overflow:hidden;overscroll-behavior:var(--yarl__controller_overscroll_behavior,contain);position:absolute;touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;-moz-user-select:none;user-select:none}.yarl__carousel{align-content:center;align-items:stretch;display:flex;flex:0 0 auto;height:100%;justify-content:center;opacity:var(--yarl__pull_opacity,1);transform:translate(var(--yarl__swipe_offset,0),var(--yarl__pull_offset,0));width:calc(100% + (var(--yarl__carousel_slides_count) - 1)*(100% + var(--yarl__carousel_spacing_px, 0)*1px + var(--yarl__carousel_spacing_percent, 0)*1%))}.yarl__carousel_with_slides{-moz-column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%);column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%)}.yarl__flex_center{align-content:center;align-items:center;display:flex;justify-content:center}.yarl__slide{flex:1;overflow:hidden;padding:calc(var(--yarl__carousel_padding_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_padding_percent, 0)*1%);position:relative}[dir=rtl] .yarl__slide{--yarl__direction:-1}.yarl__slide_image{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;touch-action:var(--yarl__controller_touch_action,none);-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.yarl__slide_image_cover{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.yarl__slide_image_loading{opacity:0}@media screen and (min-width:800px){.yarl__slide_wrapper:not(.yarl__slide_wrapper_interactive) .yarl__slide_image{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);-webkit-transform-style:preserve-3d}}.yarl__slide_placeholder{left:50%;line-height:0;position:absolute;top:50%;transform:translate(-50%) translateY(-50%)}.yarl__slide_loading{animation:yarl__delayed_fadein 1s linear;color:var(--yarl__slide_icon_loading_color,var(--yarl__color_button,hsla(0,0%,100%,.8)))}.yarl__slide_loading line{animation:yarl__stroke_opacity 1s linear infinite}.yarl__slide_loading line:first-of-type{animation-delay:-1.875s}.yarl__slide_loading line:nth-of-type(2){animation-delay:-1.75s}.yarl__slide_loading line:nth-of-type(3){animation-delay:-1.625s}.yarl__slide_loading line:nth-of-type(4){animation-delay:-1.5s}.yarl__slide_loading line:nth-of-type(5){animation-delay:-1.375s}.yarl__slide_loading line:nth-of-type(6){animation-delay:-1.25s}.yarl__slide_loading line:nth-of-type(7){animation-delay:-1.125s}.yarl__slide_loading line:nth-of-type(8){animation-delay:-1s}.yarl__slide_error{color:var(--yarl__slide_icon_error_color,red);height:var(--yarl__slide_icon_error_size,48px);width:var(--yarl__slide_icon_error_size,48px)}@media(prefers-reduced-motion){.yarl__portal,.yarl__slide{transition:unset}.yarl__slide_loading,.yarl__slide_loading line{animation:unset}}.yarl__toolbar{display:flex;justify-content:flex-end;inset:0 0 auto auto;padding:var(--yarl__toolbar_padding,8px);position:absolute}[dir=rtl] .yarl__toolbar{inset:0 auto auto 0}.yarl__icon{height:var(--yarl__icon_size,32px);width:var(--yarl__icon_size,32px)}.yarl__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--yarl__button_background_color,transparent);border:var(--yarl__button_border,0);color:var(--yarl__color_button,hsla(0,0%,100%,.8));cursor:pointer;filter:var(--yarl__button_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));line-height:0;margin:var(--yarl__button_margin,0);outline:none;padding:var(--yarl__button_padding,8px);-webkit-tap-highlight-color:transparent}.yarl__button:focus{color:var(--yarl__color_button_active,#fff)}.yarl__button:focus:not(:focus-visible){color:var(--yarl__color_button,hsla(0,0%,100%,.8))}.yarl__button:focus-visible{color:var(--yarl__color_button_active,#fff)}@media(hover:hover){.yarl__button:focus-visible:hover,.yarl__button:focus:hover,.yarl__button:hover{color:var(--yarl__color_button_active,#fff)}}.yarl__button:disabled{color:var(--yarl__color_button_disabled,hsla(0,0%,100%,.4));cursor:default}.yarl__navigation_next,.yarl__navigation_prev{padding:var(--yarl__navigation_button_padding,24px 16px);position:absolute;top:50%;transform:translateY(-50%)}.yarl__navigation_prev{left:0}[dir=rtl] .yarl__navigation_prev{left:unset;right:0;transform:translateY(-50%) rotate(180deg)}.yarl__navigation_next{right:0}[dir=rtl] .yarl__navigation_next{left:0;right:unset;transform:translateY(-50%) rotate(180deg)}.yarl__no_scroll{height:100%;overflow:hidden;overscroll-behavior:none}@keyframes yarl__delayed_fadein{0%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes yarl__stroke_opacity{0%{stroke-opacity:1}to{stroke-opacity:.125}}
