@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600&display=swap";.navbar{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.2rem 0;transition:all .4s ease}.navbar.scrolled{background:#0d090aeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(201,168,76,.15);padding:.8rem 0}.nav-inner{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:.6rem;color:var(--gold);text-decoration:none;font-family:Playfair Display,serif;font-size:1.15rem;font-weight:600}.nav-links{display:flex;gap:2rem}.nav-links a{color:var(--cream);text-decoration:none;font-size:.9rem;font-weight:500;letter-spacing:.03em;transition:color .3s;position:relative}.nav-links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1.5px;background:var(--gold);transition:width .3s}.nav-links a:hover,.nav-links a.active{color:var(--gold)}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.hero{min-height:100svh;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(to bottom,rgba(13,9,10,.55) 0%,rgba(13,9,10,.75) 60%,var(--dark) 100%),url(../images/wedding06.jpg) center 20% / cover no-repeat;text-align:center;overflow:hidden}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 0%,rgba(13,9,10,.4) 100%)}.hero-content{position:relative;z-index:2;padding:2rem;max-width:800px}.hero-eyebrow{font-size:1.3rem;color:var(--soft-gold);letter-spacing:.2em;text-transform:uppercase;margin-bottom:1rem;font-weight:400}.hero h1{font-size:clamp(3rem,10vw,5.5rem);line-height:1.1;color:#fff;margin-bottom:1.2rem;text-shadow:0 4px 30px rgba(0,0,0,.5)}.hero h1 .amp{font-weight:300;font-style:italic;color:var(--gold);font-size:.7em}.hero-sub{font-size:clamp(1.2rem,3vw,1.6rem);color:#f8f1e3d9;margin-bottom:1.5rem;font-weight:400}.hero-date{display:inline-flex;align-items:center;gap:.6rem;background:#c9a84c26;border:1px solid rgba(201,168,76,.35);padding:.6rem 1.4rem;border-radius:999px;color:var(--gold);font-weight:500;margin-bottom:2.5rem;font-size:1.05rem}.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.countdown{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin:1.5rem 0 2rem}.countdown-item{display:flex;flex-direction:column;align-items:center;min-width:72px;background:#0d090a8c;border:1px solid rgba(201,168,76,.3);border-radius:14px;padding:.9rem .7rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.countdown-num{font-family:Playfair Display,Georgia,serif;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:700;color:var(--gold);line-height:1.1}.countdown-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#f8f1e3a6;margin-top:.25rem}.countdown-done{font-size:1.3rem;color:var(--soft-gold);font-family:Cormorant Garamond,Georgia,serif;margin:1rem 0 1.5rem}.hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);color:var(--gold);opacity:.7}.section-header{text-align:center;margin-bottom:4rem}.section-icon{color:var(--gold);margin-bottom:.8rem;width:32px;height:32px}.section-header h2{font-size:clamp(2.2rem,5vw,3.2rem);color:#fff;margin-bottom:.6rem}.section-header p{font-size:1.25rem;color:#f8f1e3b3;max-width:500px;margin:0 auto}.story-section{background:linear-gradient(180deg,var(--dark) 0%,var(--charcoal) 50%,var(--dark) 100%)}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;margin-bottom:4rem}.story-image-wrap{position:relative}.story-main-img{width:100%;border-radius:16px;box-shadow:0 25px 60px #00000080;border:3px solid rgba(201,168,76,.2);object-fit:cover;aspect-ratio:4/5}.story-img-accent{position:absolute;bottom:-16px;right:-16px;width:60%;height:60%;border:2px solid var(--gold);border-radius:16px;z-index:-1;opacity:.4}.story-text h3{font-size:1.8rem;margin-bottom:1.2rem}.story-body{font-size:1.2rem;color:#f8f1e3cc;margin-bottom:1.2rem;line-height:1.75}.story-stats{display:flex;gap:2rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(201,168,76,.2)}.stat{display:flex;flex-direction:column}.stat-num{font-family:Playfair Display,serif;font-size:1.8rem;color:var(--gold);font-weight:700}.stat-label{font-size:.85rem;color:#f8f1e399;text-transform:uppercase;letter-spacing:.05em}.gallery-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:2rem}.gallery-item{border-radius:12px;overflow:hidden;aspect-ratio:3/4;cursor:pointer;box-shadow:0 10px 30px #0000004d}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.gallery-item:hover img{transform:scale(1.08)}.timeline-section{background:var(--dark);overflow:hidden}.timeline{position:relative;max-width:900px;margin:0 auto;padding:2rem 0}.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--gold),var(--burgundy),var(--gold),transparent);transform:translate(-50%)}.timeline-item{position:relative;margin-bottom:5rem;width:50%}.timeline-item.left{padding-right:3.5rem;text-align:right}.timeline-item.right{margin-left:50%;padding-left:3.5rem;text-align:left}.timeline-content{background:linear-gradient(145deg,#3d0f1899,#1a1214cc);border:1px solid rgba(201,168,76,.2);border-radius:16px;overflow:hidden;box-shadow:0 15px 40px #0000004d;transition:transform .3s,box-shadow .3s}.timeline-content:hover{transform:translateY(-4px);box-shadow:0 20px 50px #6b1d2a40;border-color:#c9a84c66}.timeline-image{position:relative;height:220px;overflow:hidden}.timeline-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.timeline-content:hover .timeline-image img{transform:scale(1.06)}.timeline-emoji{position:absolute;bottom:12px;right:12px;font-size:1.8rem;background:#0d090ab3;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.timeline-item.left .timeline-emoji{right:auto;left:12px}.timeline-text{padding:1.5rem}.timeline-date{display:inline-block;font-size:.85rem;color:var(--gold);font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.4rem}.timeline-text h3{font-size:1.4rem;color:#fff;margin-bottom:.6rem}.timeline-text p{font-size:1.05rem;color:#f8f1e3bf;line-height:1.65}.timeline-dot{position:absolute;top:40px;width:20px;height:20px;background:var(--dark);border:3px solid var(--gold);border-radius:50%;z-index:2}.timeline-item.left .timeline-dot{right:-10px}.timeline-item.right .timeline-dot{left:-10px}.dot-inner{width:8px;height:8px;background:var(--gold);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.registry-section{background:linear-gradient(180deg,var(--dark),var(--charcoal),var(--dark))}.registry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:3rem}.registry-card{background:linear-gradient(145deg,#3d0f1880,#1a1214b3);border:1px solid rgba(201,168,76,.15);border-radius:16px;padding:2rem 1.5rem;text-align:center;cursor:pointer;transition:all .3s ease}.registry-card:hover,.registry-card.selected{border-color:var(--gold);background:linear-gradient(145deg,#6b1d2a66,#3d0f1899)}.registry-icon{font-size:2.5rem;display:block;margin-bottom:.8rem}.registry-cat{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-weight:600}.registry-card h4{font-size:1.25rem;color:#fff;margin:.5rem 0}.registry-card p{font-size:.95rem;color:#f8f1e3a6;line-height:1.55}.registry-thanks{margin-top:1rem;padding-top:.8rem;border-top:1px solid rgba(201,168,76,.25);color:var(--gold);font-size:.9rem;font-weight:500;display:flex;align-items:center;justify-content:center;gap:.4rem}.registry-note{text-align:center;max-width:600px;margin:0 auto;padding:1.5rem;background:#c9a84c14;border-radius:12px;border:1px solid rgba(201,168,76,.15)}.registry-note p{font-size:1.15rem;color:#f8f1e3cc}.rsvp-section{background:var(--dark)}.rsvp-form{max-width:640px;margin:0 auto;background:linear-gradient(145deg,#3d0f1866,#1a121499);border:1px solid rgba(201,168,76,.2);border-radius:20px;padding:2.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.form-group{margin-bottom:1.4rem}.form-group label{display:block;font-size:.9rem;font-weight:500;color:var(--soft-gold);margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.85rem 1rem;background:#0d090a99;border:1px solid rgba(201,168,76,.25);border-radius:10px;color:var(--cream);font-size:1rem;font-family:inherit;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--gold)}.form-group input::placeholder,.form-group textarea::placeholder{color:#f8f1e359}.form-group select{cursor:pointer}.form-group select option{background:var(--charcoal);color:var(--cream)}.error{color:var(--rose);font-size:.8rem;margin-top:.3rem;display:block}.radio-group,.checkbox-group{display:flex;flex-direction:column;gap:.7rem}.radio-label,.check-label{display:flex;align-items:center;gap:.6rem;cursor:pointer;color:var(--cream);font-size:.95rem}.radio-label input,.check-label input{width:auto;accent-color:var(--gold)}.submit-btn{width:100%;justify-content:center;margin-top:.5rem;font-size:1.1rem;padding:1rem}.rsvp-success{text-align:center;max-width:500px;margin:0 auto;padding:3rem 2rem;background:linear-gradient(145deg,#3d0f1880,#1a1214b3);border:1px solid rgba(201,168,76,.3);border-radius:20px}.success-icon{font-size:4rem;margin-bottom:1rem}.rsvp-success h2{font-size:2.2rem;color:#fff;margin-bottom:1rem}.rsvp-success p{font-size:1.25rem;color:#f8f1e3cc;margin-bottom:2rem}.footer{background:var(--charcoal);border-top:1px solid rgba(201,168,76,.15);padding:3rem 0;text-align:center}.footer-content{display:flex;flex-direction:column;align-items:center;gap:.5rem}.footer-star{color:var(--gold);margin-bottom:.5rem}.footer h3{font-size:1.5rem;color:#fff}.footer p{color:#f8f1e399;font-size:.95rem}.footer-love{margin-top:.8rem;color:var(--rose)!important}@media (max-width: 900px){.story-grid{grid-template-columns:1fr;gap:2.5rem}.story-img-accent{display:none}.gallery-strip{grid-template-columns:repeat(3,1fr)}.gallery-strip .gallery-item:nth-child(4),.gallery-strip .gallery-item:nth-child(5){display:none}.timeline-line{left:20px}.timeline-item,.timeline-item.left,.timeline-item.right{width:100%;margin-left:0;padding-left:3.5rem;padding-right:0;text-align:left}.timeline-item.left .timeline-dot,.timeline-item.right .timeline-dot{left:10px;right:auto}.timeline-item.left .timeline-emoji{left:auto;right:12px}.nav-links{display:none}}@media (max-width: 600px){.form-row{grid-template-columns:1fr}.hero-cta{flex-direction:column;align-items:center}.hero-cta .btn{width:100%;max-width:280px;justify-content:center}.story-stats{flex-wrap:wrap;gap:1.2rem}.rsvp-form{padding:1.5rem}.gallery-strip{grid-template-columns:repeat(2,1fr)}}#confetti-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999}.registry-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d090abf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem}.registry-modal{background:linear-gradient(145deg,#3d0f18f2,#1a1214fa);border:1px solid rgba(201,168,76,.35);border-radius:20px;padding:2rem;max-width:440px;width:100%;box-shadow:0 25px 60px #00000080}.registry-modal h3{font-size:1.5rem;color:#fff;margin-bottom:.4rem;text-align:center}.registry-modal .modal-icon{font-size:2.5rem;text-align:center;display:block;margin-bottom:.5rem}.registry-modal .modal-desc{text-align:center;color:#f8f1e3b3;font-size:1rem;margin-bottom:1.5rem}.registry-modal .form-group{margin-bottom:1rem}.registry-modal .form-actions{display:flex;gap:.8rem;margin-top:1.2rem}.registry-modal .form-actions .btn{flex:1;justify-content:center}.registry-card.claimed{border-color:#c9a84c80;opacity:.9}.registry-card .claimed-badge{display:inline-block;margin-top:.8rem;padding:.3rem .8rem;background:#c9a84c26;border:1px solid rgba(201,168,76,.35);border-radius:999px;color:var(--gold);font-size:.8rem;font-weight:600}.registry-card .claim-btn{margin-top:1rem;padding:.55rem 1.2rem;font-size:.9rem}.bank-details{background:#c9a84c14;border:1px solid rgba(201,168,76,.2);border-radius:12px;padding:1rem 1.2rem;margin:1rem 0;text-align:left}.bank-details p{font-size:.95rem;color:#f8f1e3cc;margin:.3rem 0;line-height:1.5}.bank-details strong{color:var(--gold)}.registry-success-toast{text-align:center;padding:1rem;color:var(--gold);font-weight:500}.love-letters-section{padding-top:2rem;background:linear-gradient(180deg,var(--dark),var(--charcoal),var(--dark))}.love-letters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin:3rem 0 2rem}.love-letter{position:relative;display:block;width:100%;padding:2.2rem 2rem 1.7rem;text-align:left;font:inherit;color:inherit;background:linear-gradient(145deg,#3d0f188c,#1a1214cc);border:1px solid rgba(201,168,76,.22);border-radius:16px;cursor:pointer;box-shadow:0 15px 40px #00000040;transition:border-color .3s,box-shadow .3s,background .3s}.love-letter:hover,.love-letter:focus-visible{border-color:var(--gold);background:linear-gradient(145deg,#6b1d2a80,#3d0f18b3);box-shadow:0 20px 45px #0006;outline:none}.love-letter-quote{position:absolute;top:.45rem;left:1rem;font-family:Playfair Display,Georgia,serif;font-size:4rem;line-height:1;color:var(--gold);opacity:.35;pointer-events:none}.love-letter h4{position:relative;z-index:1;font-size:1.15rem;color:var(--gold);margin-bottom:1rem;padding-left:1.5rem}.love-letter p{font-size:1.1rem;color:#f8f1e3d9;line-height:1.75;font-style:italic}.love-letter .letter-from{display:block;margin-top:1.2rem;text-align:right;color:var(--soft-gold);font-style:normal;font-weight:600;font-size:.95rem}.love-letter-hint{display:block;margin-top:.9rem;color:var(--gold);font-size:.8rem;letter-spacing:.04em;opacity:.8}.love-letter-modal-overlay,.gallery-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:1.25rem;overflow-y:auto;background:#0d090ae6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .2s ease}.love-letter-modal{position:relative;width:min(720px,100%);max-height:90vh;overflow-y:auto;padding:3rem 3rem 2.5rem;background:linear-gradient(145deg,#3d0f18fa,#1a1214fc);border:1px solid rgba(201,168,76,.35);border-radius:20px;box-shadow:0 25px 70px #0009}.love-letter-modal-close,.gallery-modal-close,.lightbox-close{border:1px solid rgba(201,168,76,.4);background:#0d090aa6;color:var(--gold);width:42px;height:42px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.love-letter-modal-close{position:absolute;top:1rem;right:1rem}.love-letter-modal-close:hover,.gallery-modal-close:hover,.lightbox-close:hover{background:var(--gold);color:var(--dark)}.love-letter-modal-icon{display:block;margin:0 auto .7rem;color:var(--gold)}.love-letter-modal-to{display:block;text-align:center;color:var(--gold);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.love-letter-modal h3{text-align:center;color:#fff;font-size:1.8rem;margin:.4rem 0 1.7rem}.love-letter-full-text{color:#f8f1e3e6;font-size:1.2rem;line-height:1.9;font-style:italic;white-space:pre-wrap}.timeline-content{display:block;width:100%;padding:0;color:inherit;text-align:inherit;font:inherit;background:none;border:0;cursor:pointer}.timeline-image{position:relative}.timeline-image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;letter-spacing:.03em;background:#0d090a59;opacity:0;transition:opacity .25s;pointer-events:none}.timeline-content:hover .timeline-image-overlay,.timeline-content:focus-visible .timeline-image-overlay{opacity:1}.timeline-content:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:16px}.gallery-modal{position:relative;width:min(900px,100%);max-height:90vh;overflow-y:auto;padding:2rem;background:linear-gradient(145deg,#3d0f18f7,#1a1214fc);border:1px solid rgba(201,168,76,.35);border-radius:20px;box-shadow:0 25px 70px #0009}.gallery-modal-close{position:absolute;top:1rem;right:1rem;z-index:2}.gallery-modal-header{text-align:center;margin-bottom:1.5rem;padding:0 3rem}.gallery-modal-header .g-icon{display:block;font-size:2rem;margin-bottom:.4rem}.gallery-modal-header h3{color:#fff;font-size:1.6rem;margin:.3rem 0}.gallery-modal-header .g-date{color:var(--gold);font-size:.9rem;letter-spacing:.06em;text-transform:uppercase}.gallery-modal-header p{color:#f8f1e3bf;margin:.8rem auto 0;font-size:1.05rem;max-width:600px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem}.gallery-photo-button{position:relative;display:block;width:100%;padding:0;border:0;border-radius:12px;overflow:hidden;background:transparent;cursor:pointer}.gallery-photo-button img{display:block;width:100%;aspect-ratio:3 / 4;object-fit:cover;border:2px solid rgba(201,168,76,.15);border-radius:12px;transition:transform .3s,border-color .3s,filter .3s}.gallery-photo-zoom{position:absolute;right:.6rem;bottom:.6rem;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;background:#0d090abf;opacity:0;transition:opacity .2s;pointer-events:none}.gallery-photo-button:hover img,.gallery-photo-button:focus-visible img{transform:scale(1.03);border-color:var(--gold);filter:brightness(1.08)}.gallery-photo-button:hover .gallery-photo-zoom,.gallery-photo-button:focus-visible .gallery-photo-zoom{opacity:1}.gallery-photo-button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.lightbox-full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:4rem 1rem 1rem;background:#000000f0;cursor:default}.lightbox-full img{max-width:95vw;max-height:88vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 70px #000000b3}.lightbox-close{position:absolute;top:1rem;right:1rem;z-index:2}@media (max-width: 700px){.love-letters{grid-template-columns:1fr}.love-letter-modal{padding:2.7rem 1.4rem 2rem}.gallery-modal{padding:1.25rem}.gallery-modal-header{padding:0 2.5rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}}:root{--burgundy: #6b1d2a;--deep-burgundy: #3d0f18;--gold: #c9a84c;--soft-gold: #e8d5a3;--cream: #f8f1e3;--ivory: #fff8f0;--charcoal: #1a1214;--rose: #c45c6a;--coral: #e07a5f;--dark: #0d090a}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;background:var(--dark);color:var(--cream);overflow-x:hidden;line-height:1.6}h1,h2,h3,h4{font-family:Playfair Display,Georgia,serif;font-weight:600}.serif{font-family:Cormorant Garamond,Georgia,serif}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--charcoal)}::-webkit-scrollbar-thumb{background:var(--burgundy);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gold)}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.section{padding:6rem 0;position:relative}.gold-text{background:linear-gradient(135deg,var(--gold),var(--soft-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 2rem;border:none;border-radius:9999px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease;text-decoration:none}.btn-primary{background:linear-gradient(135deg,var(--burgundy),var(--rose));color:#fff;box-shadow:0 8px 25px #6b1d2a66}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 35px #6b1d2a8c}.btn-outline{background:transparent;color:var(--gold);border:2px solid var(--gold)}.btn-outline:hover{background:var(--gold);color:var(--dark)}.particles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.particle{position:absolute;font-size:1rem;opacity:.15;animation:float-up linear infinite}@keyframes float-up{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:.2}90%{opacity:.15}to{transform:translateY(-10vh) rotate(360deg);opacity:0}}
