*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--cream: #ffffff;--warm-white: #ffffff;--blush: #e8c8c0;--blush-light: #f5e8e4;--gold: #b8975a;--gold-light: #d4b57a;--charcoal: #2c2c2c;--muted: #7a7060;--border: #e0d8cc;--serif: "Cormorant Garamond", Georgia, serif;--sans: "Jost", system-ui, sans-serif}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--charcoal);background:var(--cream);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.25rem 2rem;transition:background .3s,box-shadow .3s}nav.scrolled{background:#faf8f4f7;box-shadow:0 1px 0 var(--border)}nav ul{list-style:none;display:flex;justify-content:center;gap:2.5rem}nav a{font-family:var(--sans);font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:var(--charcoal);opacity:.7;transition:opacity .2s}nav a:hover{opacity:1}#hero{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5rem 2rem 3rem;background:var(--warm-white);position:relative;overflow:hidden}.hero-inner{position:relative;z-index:1}.hero-eyebrow{font-family:var(--sans);font-size:.75rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}#hero h1{font-family:var(--serif);font-size:clamp(2.5rem,8vw,5rem);font-weight:300;line-height:1;letter-spacing:.02em;color:var(--charcoal);margin-bottom:1rem}.hero-date{font-family:var(--serif);font-size:clamp(1rem,2.5vw,1.3rem);font-weight:300;font-style:italic;color:var(--muted);margin-bottom:.35rem}.hero-location{font-family:var(--sans);font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:2rem}.countdown{display:flex;align-items:center;gap:1rem;margin-bottom:3rem;justify-content:center}.countdown-item{display:flex;flex-direction:column;align-items:center}.countdown-item span{font-family:var(--serif);font-size:clamp(2rem,5vw,3rem);font-weight:300;line-height:1;color:var(--charcoal);min-width:2.5ch;text-align:center}.countdown-item label{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:.35rem}.countdown-sep{font-size:1.5rem;color:var(--blush);line-height:1;padding-bottom:1.2rem}.hero-ornament{font-size:1.5rem;color:var(--blush);margin-top:2rem;opacity:.6}.btn{display:inline-block;font-family:var(--sans);font-size:.75rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--warm-white);background:var(--charcoal);padding:.9rem 2.5rem;border:1.5px solid var(--charcoal);cursor:pointer;transition:background .2s,color .2s}.btn:hover{background:transparent;color:var(--charcoal)}.btn-full{width:100%;text-align:center}.section{padding:2rem 1.5rem;border:1px solid var(--border);border-radius:12px;margin:1rem}.section-alt{background:var(--warm-white)}.container{max-width:1100px;margin:0 auto}.container.narrow{max-width:700px}.container.center{text-align:center}.section-label{font-family:var(--sans);font-size:.7rem;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}h2{font-family:var(--serif);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:300;line-height:1.15;color:var(--charcoal);margin-bottom:.75rem}.story-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2px}.story-card{background:var(--warm-white);padding:2.5rem;border:1px solid var(--border);border-radius:12px}.story-year{font-family:var(--serif);font-size:3rem;font-weight:300;color:var(--blush);line-height:1;margin-bottom:1rem}.story-card h3{font-family:var(--serif);font-size:1.35rem;font-weight:400;margin-bottom:.75rem}.story-card p{font-size:.9rem;color:var(--muted);line-height:1.75}.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:3rem}.couple-card{text-align:center}.couple-avatar{width:100px;height:100px;border-radius:50%;background:var(--blush-light);border:2px solid var(--blush);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:2.5rem;font-weight:300;color:var(--gold);margin:0 auto 1.5rem}.couple-card h3{font-family:var(--serif);font-size:1.6rem;font-weight:400;margin-bottom:.25rem}.couple-role{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}.couple-card p:last-child{font-size:.9rem;color:var(--muted);line-height:1.75}.couple-divider{font-size:2.5rem;color:var(--blush);text-align:center}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--border);margin-bottom:2.5rem}.detail-card{background:var(--cream);padding:2.5rem 2rem;text-align:center;border-radius:12px}.detail-icon{font-size:1.5rem;color:var(--gold);margin-bottom:1.25rem}.detail-card h3{font-family:var(--serif);font-size:1.35rem;font-weight:400;margin-bottom:1rem}.detail-card p{font-size:.875rem;color:var(--muted);line-height:1.8;margin-bottom:.1rem}.dress-code{background:var(--blush-light);border:1px solid var(--blush);border-radius:12px;padding:1.25rem 1.75rem;text-align:center;font-size:.9rem;color:var(--muted)}.timeline{position:relative;padding-left:9rem}.timeline:before{content:"";position:absolute;left:6.35rem;top:.6rem;bottom:0;width:1px;background:linear-gradient(to bottom,var(--gold-light),var(--border))}.timeline-item{position:relative;padding-bottom:2rem;display:flex;gap:2.5rem}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:calc(-2.65rem - 6px);top:.45rem;width:11px;height:11px;border-radius:50%;background:var(--warm-white);border:2px solid var(--gold);box-shadow:0 0 0 3px var(--blush-light)}.timeline-time{position:absolute;left:-9rem;top:.15rem;font-family:var(--sans);font-size:.75rem;font-weight:500;letter-spacing:.08em;color:var(--muted);text-align:right;width:5.5rem}.timeline-content h4{font-family:var(--serif);font-size:1.2rem;font-weight:400;margin-bottom:.4rem}.timeline-content p{font-size:.875rem;color:var(--muted);line-height:1.7}.travel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem}.travel-card{padding:2rem;border:1px solid var(--border);border-radius:12px;background:var(--cream)}.travel-card h3{font-family:var(--serif);font-size:1.2rem;font-weight:400;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.travel-card p{font-size:.875rem;color:var(--muted);line-height:1.75}.registry-intro{font-size:.95rem;color:var(--muted);line-height:1.8;margin-bottom:2.5rem;max-width:540px;margin-left:auto;margin-right:auto}.registry-links{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.registry-btn{display:inline-block;font-family:var(--sans);font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:var(--charcoal);padding:.75rem 1.75rem;border:1.5px solid var(--border);transition:border-color .2s,background .2s}.registry-btn:hover{border-color:var(--gold);background:var(--blush-light)}.lead{font-size:.95rem;color:var(--muted);line-height:1.8;margin-bottom:2rem}.info-row{display:flex;justify-content:center;align-items:center;gap:1rem}.info-row .lead{margin-bottom:0}.toast-rules{background:var(--blush-light);border:1px solid var(--blush);border-radius:12px;padding:1rem 1.25rem;text-align:left}.toast-rules h3{font-family:var(--serif);font-size:1.2rem;font-weight:400;margin-bottom:1rem;color:var(--charcoal)}.toast-rules ul{padding-left:1.25rem;color:var(--muted);font-size:.9rem;line-height:1.9}.rsvp-deadline{font-size:.875rem;color:var(--muted);margin-bottom:.25rem;letter-spacing:.05em}.rsvp-form{display:flex;flex-direction:column;gap:1.5rem;text-align:left}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.form-group input,.form-group select,.form-group textarea{font-family:var(--sans);font-size:.9rem;color:var(--charcoal);background:var(--warm-white);border:1px solid var(--border);padding:.75rem 1rem;outline:none;transition:border-color .2s;width:100%;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold)}.radio-group{display:flex;gap:1.5rem}.radio-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important;color:var(--charcoal)!important;cursor:pointer}.radio-label input{width:auto}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important;color:var(--charcoal)!important;cursor:pointer}.checkbox-label input{width:auto}.info-box{background:var(--blush-light);border:1px solid var(--blush);border-radius:8px;padding:1.25rem 1.5rem;font-size:.875rem;color:var(--muted);line-height:1.75}.info-box-title{font-family:var(--serif);font-size:1.1rem;font-weight:400;color:var(--charcoal);margin-bottom:.5rem}.info-box ul{padding-left:1.25rem;margin-top:.25rem}.info-box li{margin-bottom:.25rem}.rsvp-success{display:none;text-align:center;padding:2.5rem 2rem}.success-icon{font-size:3rem;color:var(--blush);margin-bottom:1rem}.rsvp-success h3{font-family:var(--serif);font-size:2rem;font-weight:300;margin-bottom:1rem}.rsvp-success p{color:var(--muted)}footer{padding:2.5rem 2rem;background:var(--charcoal);color:var(--cream);text-align:center}.footer-names{font-family:var(--serif);font-size:2rem;font-weight:300;letter-spacing:.05em;margin-bottom:.5rem}.footer-date{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;opacity:.5;margin-bottom:1rem}.footer-hashtag{font-size:.85rem;color:var(--gold-light);letter-spacing:.05em}@media(max-width:768px){nav ul{gap:1.25rem}nav a{font-size:.7rem}.info-row{flex-direction:column;gap:.5rem}.info-row .lead:nth-child(2n){display:none}.couple-grid{grid-template-columns:1fr;gap:2rem}.couple-divider{transform:rotate(90deg)}.form-row{grid-template-columns:1fr}.timeline{padding-left:5rem}.timeline:before{left:3.5rem}.timeline-time{left:-5rem;width:3.5rem;font-size:.7rem}.timeline-item:before{left:-2rem}}@media(max-width:480px){nav ul{gap:.75rem}nav{padding:1rem}.section{padding:1.5rem 1.25rem}}
