@import"https://fonts.googleapis.com/css2?family=Great+Vibes&family=Playfair+Display:wght@700;800&family=Montserrat:wght@400;500;600&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--primary-brown: #8B5A3C;--dark-brown: #5C3D30;--light-brown: #A87C5B;--warm-cream: #F5E6D3;--accent-brown: #9D7552;--deep-brown: #3E2723;--text-dark: #5C3D30}html{scroll-behavior:smooth;height:100%;height:100dvh}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#f5e6d3,#e8d4ba);color:var(--text-dark);overflow-x:hidden;margin:0;padding:0;padding-top:max(0px,env(safe-area-inset-top));padding-bottom:max(0px,env(safe-area-inset-bottom));min-height:100dvh}#splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0000009e;display:flex;align-items:center;justify-content:center;transition:opacity 1s ease-out}#splash-screen.fade-out{opacity:0;pointer-events:none}.splash-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;padding:20px;animation:splashFadeIn 1.4s ease-out}@keyframes splashFadeIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.splash-eyebrow{font-family:Times New Roman,Times,serif;font-size:.7rem;letter-spacing:6px;text-transform:uppercase;color:#ffffff73}.splash-ornament{font-size:.7rem;color:#ffffff4d;letter-spacing:8px}.splash-names{font-family:Great Vibes,cursive;font-size:5.5rem;font-weight:400;color:#fff;line-height:1.1;text-shadow:0 2px 20px rgba(0,0,0,.5);margin:0}.splash-amp{font-style:italic;font-size:3.5rem;display:inline-block;margin:0 14px;opacity:.75}.splash-date-row{display:flex;align-items:center;gap:16px;width:100%;max-width:420px}.splash-rule-line{flex:1;height:1px;background:#fff3;display:block}.splash-date-text{font-family:Times New Roman,Times,serif;font-size:.72rem;letter-spacing:3px;color:#ffffff80;white-space:nowrap}.splash-cta{margin-top:10px;padding:14px 44px;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;font-family:Times New Roman,Times,serif;font-size:.72rem;letter-spacing:5px;text-transform:uppercase;cursor:pointer;transition:background .3s ease,border-color .3s ease,transform .15s ease;border-radius:0}.splash-cta:hover{background:#ffffff14;border-color:#ffffff8c}.splash-cta:active{transform:scale(.97)}.splash-sound{font-family:Times New Roman,Times,serif;font-size:.68rem;letter-spacing:2px;color:#ffffff40;font-style:italic}@media (max-width: 480px){.splash-names{font-size:3.6rem}.splash-amp{font-size:2.4rem}}.grain-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;opacity:.038;mix-blend-mode:overlay}.mrmrs{display:flex;justify-content:center;gap:15px;font-family:Times New Roman,Times,serif}.parents-family-name{font-size:1.3rem;color:#fff;margin-bottom:30px;font-weight:500;font-family:Times New Roman,Times,serif}#app{position:relative;z-index:2;transition:opacity .6s ease-in}#app.loaded{opacity:1}#background-carousel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1}.bg-slide{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.5s ease-in-out}.bg-slide.active{opacity:1}@media (max-width: 768px){#background-carousel{background-attachment:scroll;height:100dvh;background-size:cover;background-position:center center}}#background-carousel:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#0006;z-index:1}.pre-hero{position:relative;min-height:20dvh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff}.hero{position:relative;min-height:60dvh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff}.hero-content{animation:fadeInDown 1.2s ease-out}.parents-section{display:flex;gap:60px;align-items:center;justify-content:center;margin-bottom:40px;max-width:1000px;animation:fadeInUp 1s ease-out .3s both}.groom-parents-side,.bride-parents-side{text-align:center}.parents-names{font-size:2rem;font-weight:400;letter-spacing:.5px;text-shadow:1px 1px 4px rgba(0,0,0,.5);color:#fffffff2;margin:0 0 8px;font-family:Times New Roman,Times,serif}.parents-label{font-size:1.05rem;color:#ffffffbf;margin:0;letter-spacing:.5px;font-weight:300;text-transform:uppercase}.names{font-family:Great Vibes,cursive;font-size:.5rem;font-weight:250;padding:0 1px;margin:40px 0 30px;text-shadow:2px 2px 8px rgba(0,0,0,.7)}.ampersand{font-style:italic;font-size:1.2rem;display:inline-block;margin:5px 20px}.invite-text{font-size:2rem;font-style:italic;font-weight:500;letter-spacing:.5px;text-shadow:1px 1px 4px rgba(0,0,0,.5);color:#fffffff2;margin:10px 0;font-family:Times New Roman,Times,serif}.invite-text-2{font-size:1.2rem;font-style:italic;font-weight:300;letter-spacing:.5px;text-shadow:1px 1px 4px rgba(0,0,0,.5);color:#fffffff2;margin:60px 0;font-family:Times New Roman,Times,serif}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}#music-player{position:fixed;bottom:30px;right:30px;z-index:1000}#music-toggle{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#9d7552,#8b5a3c);border:2px solid #F5E6D3;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 4px 15px #8b5a3c4d;position:relative}#music-toggle:hover{transform:scale(1.1);box-shadow:0 6px 25px #8b5a3c80}#music-toggle:active{transform:scale(.95)}#music-toggle.playing:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid #9D7552;animation:pulse 1.5s ease-out infinite}@keyframes pulse{0%{transform:scale(1);opacity:1}to{transform:scale(1.4);opacity:0}}.introduction{padding:80px 20px;background:linear-gradient(135deg,#f5e6d3f2,#e8d4baf2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:2px solid #9D7552;border-bottom:2px solid #9D7552;animation:fadeInUp 1s ease-out}.intro-content{max-width:700px;margin:0 auto;text-align:center}.intro-text{font-size:1.2rem;line-height:1.8;color:var(--text-dark);font-weight:300;letter-spacing:.5px}.wedding-date{display:flex;flex-direction:column;align-items:center;gap:4px;color:#fff;font-family:Times New Roman,Times,serif;letter-spacing:3px}.top-row{display:flex;align-items:center;gap:12px;justify-content:center}.day-name{font-size:1.2rem;font-weight:400;white-space:nowrap}.middle-row{display:flex;align-items:center;justify-content:center;gap:0}.month{font-size:1rem;font-weight:400;padding-right:16px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.8)}.time{font-size:1rem;font-weight:400;white-space:nowrap;padding-left:16px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.8)}.day-number{font-size:2rem;font-weight:300;line-height:1;padding:0 16px}.bottom-row{display:flex;justify-content:center}.year{font-size:1.2rem;font-weight:400;letter-spacing:6px}.date-line{display:inline-block;height:1px;background-color:#fffc}.left-line,.right-line{width:50px}.venue-note{font-size:.85rem;color:#fffc;font-style:italic;letter-spacing:1px;margin-top:12px}.shoes-note-wrapper{display:flex;justify-content:center;padding:2rem 1rem 3rem}.shoes-note-inline{font-family:Times New Roman,Times,serif;font-size:.82rem;font-style:italic;color:#ffffff61;text-align:center;letter-spacing:2px;line-height:2}.countdown-section{margin-top:60px;padding:80px 20px;background:transparent;display:flex;align-items:center;justify-content:center;animation:fadeInUp 1s ease-out;font-family:Times New Roman,Times,serif}.countdown-container{max-width:800px;width:100%;text-align:center}.countdown-section h2{isolation:isolate;font-size:2.5rem;color:#fff;margin-bottom:50px;font-weight:300;letter-spacing:1px;text-shadow:2px 2px 8px rgba(0,0,0,.5)}.countdown-timer{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0 auto;max-width:520px}.countdown-item{display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 16px;position:relative}.countdown-item:not(:last-child):after{content:"";position:absolute;right:0;top:10%;height:80%;width:1px;background:#ffffff2e}.countdown-number{font-size:3.8rem;font-weight:300;color:#fff;font-family:Playfair Display,serif;letter-spacing:2px;text-shadow:0 2px 16px rgba(0,0,0,.4);line-height:1}.countdown-label{font-size:.62rem;color:#ffffff73;font-weight:400;letter-spacing:4px;text-transform:uppercase;font-family:Times New Roman,Times,serif}@media (max-width: 768px){.countdown-section{padding:60px 15px}.countdown-number{font-size:2.8rem}.countdown-item{padding:0 10px}}@media (max-width: 480px){.countdown-section{padding:40px 15px}.countdown-number{font-size:2.2rem}.countdown-timer{max-width:340px}}.locations{padding:80px 20px;min-height:auto;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:1000px;margin:0 auto}.locations h2{display:flex;align-items:center;gap:18px;margin-bottom:60px;color:#ffffffa6;font-weight:400;font-family:Times New Roman,Times,serif;font-size:.72rem;letter-spacing:6px;text-transform:uppercase;text-shadow:none;width:100%}.locations h2:before,.locations h2:after{content:"";flex:1;height:1px;background:#ffffff2e}.timeline{display:flex;flex-direction:column;align-items:center;width:100%;max-width:600px;margin:0 auto}.timeline-step{display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 20px;gap:8px}.step-time{font-family:Times New Roman,Times,serif;font-size:.75rem;letter-spacing:4px;text-transform:uppercase;color:#ffffff8c}.step-name{font-family:Playfair Display,serif;font-size:2rem;font-weight:400;color:#fff;text-decoration:none;letter-spacing:.5px;text-shadow:1px 1px 8px rgba(0,0,0,.5);transition:opacity .2s ease;display:block}.step-name:hover{opacity:.7}.step-subtitle{font-family:Times New Roman,Times,serif;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;color:#ffffff8c}.step-desc{font-family:Times New Roman,Times,serif;font-size:.9rem;font-style:italic;color:#ffffff80;margin-top:2px}.step-divider{color:#ffffff4d;font-size:.7rem;letter-spacing:2px;-webkit-user-select:none;user-select:none}@media (max-width: 768px){.locations{padding:60px 15px}.locations h2{font-size:1.8rem;margin-bottom:50px}.step-name{font-size:1.6rem}.timeline-step{padding:28px 16px}}@media (max-width: 480px){.locations{padding:40px 15px}.locations h2{font-size:1.5rem;margin-bottom:40px}.step-name{font-size:1.4rem}.timeline-step{padding:22px 12px}}.rsvp-section{padding:80px 20px;background:transparent;display:flex;align-items:center;justify-content:center}.rsvp-container{max-width:600px;width:100%;background:#ffffff12;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.15);border-radius:2px;padding:50px 40px}.rsvp-container h2{display:flex;align-items:center;gap:18px;font-size:.72rem;color:#ffffffa6;margin-bottom:10px;font-weight:400;letter-spacing:6px;text-transform:uppercase;font-family:Times New Roman,Times,serif}.rsvp-container h2:before,.rsvp-container h2:after{content:"";flex:1;height:1px;background:#ffffff2e}.rsvp-subtitle{text-align:center;color:#ffffff80;font-size:.85rem;margin-bottom:40px;font-weight:300;font-family:Times New Roman,Times,serif;letter-spacing:1px;font-style:italic}.family-name{text-align:center;font-size:1.2rem;color:#fff;margin-bottom:30px;font-weight:400;font-family:Playfair Display,serif}.form-group{margin-bottom:30px}.form-label{display:block;font-size:.78rem;color:#fff9;margin-bottom:15px;font-weight:400;letter-spacing:3px;text-transform:uppercase;font-family:Times New Roman,Times,serif}.family-members-list{display:flex;flex-direction:column;gap:15px}.member-checkbox{display:flex;align-items:center;cursor:pointer;font-size:.95rem;color:#fffc;padding:12px 15px;background:#ffffff0f;border-radius:2px;border:1px solid rgba(255,255,255,.1);transition:all .3s ease;font-family:Times New Roman,Times,serif;letter-spacing:.5px}.member-checkbox:hover{background:#ffffff1f;border-color:#ffffff40}.member-checkbox input[type=checkbox]{width:20px;height:20px;margin-right:12px;cursor:pointer;accent-color:#9D7552}.rsvp-submit-btn{width:100%;padding:15px 30px;background:linear-gradient(135deg,#9d7552,#8b5a3c);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #8b5a3c4d;letter-spacing:.5px}.rsvp-submit-btn:hover{transform:translateY(-2px);box-shadow:0 6px 25px #8b5a3c80}.rsvp-submit-btn:active{transform:translateY(0)}.rsvp-submit-btn:disabled{opacity:.7;cursor:not-allowed}.rsvp-submit-btn.success{background:linear-gradient(135deg,#4caf50,#45a049)}.loading,.error,.success-message{text-align:center;padding:30px;border-radius:8px;font-size:1.1rem}.loading{color:#9d7552;font-weight:500}.error{background:#f443361a;border:2px solid #f44336;color:#c62828}.error p{margin:0}.success-message{background:#4caf501a;border:2px solid #4caf50}.success-message h3{color:#2e7d32;margin:0 0 10px;font-size:1.5rem}.success-message p{color:#558b2f;margin:0}.registry-section{padding:80px 20px;background:linear-gradient(135deg,#e8d4ba14,#f5e6d314);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.registry-container{max-width:1000px;margin:0 auto}.registry-section h2{text-align:center;font-size:2.5rem;color:#fff;margin-bottom:60px;font-weight:300;letter-spacing:1px;text-shadow:2px 2px 8px rgba(0,0,0,.5);animation:fadeInUp .8s ease-out}.bank-section{padding:80px 20px;background:transparent;display:flex;align-items:center;justify-content:center}.bank-container{max-width:600px;width:100%}.bank-card{max-width:600px;margin:0 auto 60px;background:#ffffff12;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.15);border-radius:2px;padding:40px}.card-icon{font-size:3rem;text-align:center;margin-bottom:20px}.bank-card h3{text-align:center;font-size:1.8rem;color:#fff;margin-bottom:30px;font-weight:400}.bank-details{space-y:15px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(168,124,91,.2)}.detail-row:last-of-type{border-bottom:none}.detail-row .label{font-weight:400;color:#ffffff8c;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;font-family:Times New Roman,Times,serif}.detail-row .value{color:#fff;font-weight:400;font-size:1rem;font-family:Courier New,monospace;letter-spacing:1px}.detail-row .value.iban{letter-spacing:.5px}.bank-note{text-align:center;margin-top:25px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);color:#fff6;font-size:.78rem;font-weight:400;font-family:Times New Roman,Times,serif;font-style:italic;letter-spacing:1px}.registry-title{text-align:center;font-size:1.8rem;color:#fff;margin:40px 0;font-weight:300;letter-spacing:.5px;text-shadow:1px 1px 4px rgba(0,0,0,.5)}.registry-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;margin-bottom:40px}.item-card{max-width:100%;background:linear-gradient(135deg,#e8d4ba,#f5e6d3);border-radius:12px;padding:30px 25px;box-shadow:0 10px 40px #8b5a3c26;border:2px solid #9D7552;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;text-align:center}.item-card:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 15px 50px #8b5a3c4d}.item-icon{font-size:2.5rem;margin-bottom:15px}.item-card h4{font-size:1.3rem;color:#9d7552;margin-bottom:10px;font-weight:500}.item-price{font-size:1.4rem;color:#a87c5b;font-weight:600;margin:10px 0}.item-description{font-size:.95rem;color:var(--text-dark);margin:15px 0;line-height:1.5}.registry-btn{margin-top:15px;padding:10px 25px;background:linear-gradient(135deg,#9d7552,#8b5a3c);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .3s ease;box-shadow:0 4px 15px #8b5a3c33}.registry-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b5a3c66}.scroll-animate{opacity:0;transform:translateY(30px);animation:scrollFadeInUp .8s ease-out forwards}@keyframes scrollFadeInUp{to{opacity:1;transform:translateY(0)}}@media (min-width: 769px){.locations{padding:80px 20px}}@media (max-width: 768px){.registry-items{grid-template-columns:1fr;gap:20px}.bank-card{padding:30px 25px}.bank-card h3{font-size:1.5rem}.detail-row{flex-direction:column;align-items:flex-start;gap:8px}.item-card{padding:25px 20px}.item-icon{font-size:2rem}.item-card h4{font-size:1.1rem}.item-price{font-size:1.2rem}#music-player{bottom:20px;right:20px}#music-toggle{width:50px;height:50px;font-size:1.2rem}.names{font-size:4rem}.ampersand{font-size:3rem;margin:0 12px}.parents-section{gap:40px;margin-bottom:30px}.parents-names{font-size:1.8rem}.invite-text{font-size:1.2rem}.invite-text{font-size:1rem}.introduction{padding:60px 20px}.intro-text{font-size:1rem;line-height:1.6}.locations{padding:60px 15px}}@media (max-width: 480px){.names{font-size:2.8rem}.ampersand{font-size:2.2rem;margin:0 10px}.parents-section{grid-template-columns:1fr;gap:20px;margin-bottom:25px}.parents-names{font-size:1.5rem}.invite-text{font-size:1.1rem}.introduction{padding:40px 15px}.intro-text{font-size:.95rem;line-height:1.5}.locations{padding:40px 15px}.locations h2{font-size:1.5rem;margin-bottom:30px}}@media (max-width: 480px){.rsvp-container{padding:30px 20px}.rsvp-container h2{font-size:1.8rem}.family-name{font-size:1.1rem}.form-label{font-size:1rem}.member-checkbox{font-size:.95rem;padding:10px 12px}.member-checkbox input[type=checkbox]{width:18px;height:18px;margin-right:10px}.rsvp-submit-btn{padding:12px 20px;font-size:1rem}.bank-card{padding:30px 20px}.bank-card h3{font-size:1.8rem}.detail-row{flex-direction:column;align-items:flex-start;gap:8px}}.wish-account{font-weight:600;font-size:1.1rem;color:#a87c5b}.bank-logo{width:60px;height:60px;object-fit:contain;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.1));border-radius:15px}.contact-section{padding:60px 20px 80px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center}.contact-container{max-width:700px;width:100%;text-align:center}.contact-section h2{display:flex;align-items:center;gap:18px;margin-bottom:48px;color:#ffffffa6;font-weight:400;font-family:Times New Roman,Times,serif;font-size:.72rem;letter-spacing:6px;text-transform:uppercase}.contact-section h2:before,.contact-section h2:after{content:"";flex:1;height:1px;background:#ffffff2e}.contact-row{display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap}.contact-entry{display:flex;flex-direction:column;align-items:center;gap:10px}.contact-name{font-family:Playfair Display,serif;font-size:1.3rem;font-weight:400;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.4);margin:0}.contact-phone{font-family:Times New Roman,Times,serif;font-size:.9rem;color:#ffffff80;text-decoration:none;letter-spacing:2px;transition:color .2s ease}.contact-phone:hover{color:#fff}.contact-sep{color:#ffffff40;font-size:.7rem;flex-shrink:0}@media (max-width: 480px){.contact-row{gap:32px;flex-direction:column}.contact-sep{transform:rotate(90deg)}}
