:root{--color-midnight:#0d1b2a;--color-midnight-light:#162033;--color-gold:#c9a84c;--color-gold-dark:#8b6914;--color-gold-light:#e2c97e;--color-ivory:#faf7f2;--color-ivory-dark:#f0eae0;--color-cream-text:#f5e6d3;--color-dark-text:#2a1a0e;--color-champagne:#e8d5b0;--color-muted:#9e8e7a;--font-display:var(--font-cinzel),"Cinzel",serif;--font-heading:var(--font-cormorant),"Cormorant Garamond",serif;--font-body:var(--font-montserrat),"Montserrat",sans-serif;--section-pad:5rem 0;--transition:.3s ease}html,body{box-sizing:border-box;background-color:var(--color-midnight);height:100%;color:var(--color-cream-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-weight:300}*,:before,:after{box-sizing:inherit}.wrapper{box-sizing:border-box;flex-direction:column;min-height:100%;display:flex}main{flex:1}h1,h2,h3,h4,h5{font-family:var(--font-heading);letter-spacing:.02em;font-weight:400}.display-name{font-family:var(--font-display);letter-spacing:.15em;text-transform:uppercase;font-weight:400}.section-label{font-family:var(--font-display);letter-spacing:.25em;text-transform:uppercase;color:var(--color-gold);margin-bottom:.75rem;font-size:.7rem;display:block}.gold-text{color:var(--color-gold)}.cream-text{color:var(--color-cream-text)}.muted-text{color:var(--color-muted)}.section-dark{background-color:var(--color-midnight);color:var(--color-cream-text);padding:var(--section-pad)}.section-light{background-color:var(--color-ivory);color:var(--color-dark-text);padding:var(--section-pad)}.section-mid{background-color:var(--color-midnight-light);color:var(--color-cream-text);padding:var(--section-pad)}.gold-divider{background:var(--color-gold);width:60px;height:1px;margin:1.5rem auto}.hero-section{background-color:var(--color-midnight);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.stars-canvas{pointer-events:none;position:absolute;inset:0}.hero-content{z-index:2;text-align:center;padding:2rem;position:relative}.hero-ampersand{font-family:var(--font-heading);color:var(--color-gold);font-size:clamp(3rem,8vw,6rem);font-style:italic;line-height:1;display:block}.hero-names{font-family:var(--font-display);color:var(--color-cream-text);letter-spacing:.2em;text-transform:uppercase;font-size:clamp(2.5rem,7vw,5.5rem);line-height:1.1}.hero-date{font-family:var(--font-body);letter-spacing:.35em;text-transform:uppercase;color:var(--color-gold);margin-top:1.5rem;font-size:clamp(.85rem,2vw,1.1rem);font-weight:300}.gold-border-line{background:linear-gradient(to bottom,transparent,var(--color-gold),transparent);width:1px;height:60px;margin:1.5rem auto}.countdown-wrap{flex-wrap:wrap;justify-content:center;gap:2rem;margin-top:2rem;display:flex}.countdown-unit{text-align:center}.countdown-number{font-family:var(--font-display);color:var(--color-cream-text);font-size:clamp(2rem,5vw,3.5rem);line-height:1;display:block}.countdown-label{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--color-gold);margin-top:.3rem;font-size:.6rem;display:block}.scroll-chevron{z-index:2;color:var(--color-gold);opacity:.7;cursor:pointer;background:0 0;border:none;font-size:1.5rem;animation:2s infinite bounce;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}@keyframes bounce{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(8px)}}.wedding-nav{z-index:1000;transition:background var(--transition),box-shadow var(--transition),padding var(--transition);padding:1.25rem 0;position:fixed;top:0;left:0;right:0}.wedding-nav.scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.75rem 0;box-shadow:0 1px #c9a84c33;background:#0d1b2af7!important}.wedding-nav.transparent{background:0 0!important}.nav-brand{font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;font-size:1.1rem;text-decoration:none;color:var(--color-gold)!important}.nav-link-wedding{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;transition:color var(--transition);font-size:.75rem;font-weight:400;text-decoration:none;color:var(--color-cream-text)!important;padding:.5rem 1rem!important}.nav-link-wedding:hover{color:var(--color-gold)!important}.nav-rsvp-btn{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;background:var(--color-gold);border:1px solid var(--color-gold);transition:background var(--transition),color var(--transition);font-size:.7rem;font-weight:500;text-decoration:none;display:inline-block;color:var(--color-midnight)!important;padding:.45rem 1.25rem!important}.nav-rsvp-btn:hover{background:var(--color-gold-dark);border-color:var(--color-gold-dark);color:var(--color-cream-text)!important}.story-timeline{padding:2rem 0;position:relative}.story-timeline:before{content:"";background:linear-gradient(to bottom,transparent,var(--color-gold)10%,var(--color-gold)90%,transparent);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}@media (max-width:768px){.story-timeline:before{left:1.25rem}.story-content:before{content:"";background:var(--color-gold);border:3px solid var(--color-midnight);border-radius:50%;width:12px;height:12px;position:absolute;top:1.75rem;left:-2.25rem}.story-content{position:relative}}.story-card{align-items:center;gap:2rem;margin-bottom:4rem;display:flex}.story-card.right{flex-direction:row-reverse}@media (max-width:768px){.story-card,.story-card.right{flex-direction:column;gap:1.5rem;padding-left:3.5rem}}.story-dot-col{z-index:2;flex-shrink:0;justify-content:center;align-items:center;width:20px;display:flex;position:relative}@media (max-width:768px){.story-dot-col{display:none}}.story-dot{background:var(--color-gold);border:3px solid var(--color-midnight);border-radius:50%;flex-shrink:0;width:14px;height:14px}.story-content{background:var(--color-midnight-light);min-width:0;transition:border-color var(--transition);border:1px solid #c9a84c33;flex:1;padding:2rem}.story-content:hover{border-color:#c9a84c80}.story-photo{flex:1;min-width:0}@media (max-width:768px){.story-photo{width:100%;max-width:100%}}.story-photo img{object-fit:cover;border:1px solid #c9a84c4d;width:100%;height:280px;display:block}.story-photo-placeholder{background:var(--color-midnight-light);width:100%;height:280px;color:var(--color-muted);letter-spacing:.1em;border:1px dashed #c9a84c4d;justify-content:center;align-items:center;font-size:.75rem;display:flex}.story-city{font-family:var(--font-display);letter-spacing:.3em;text-transform:uppercase;color:var(--color-gold);margin-bottom:.5rem;font-size:.65rem}.story-title{font-family:var(--font-heading);color:var(--color-cream-text);margin-bottom:.75rem;font-size:1.6rem;line-height:1.2}.story-body{color:var(--color-champagne);font-size:.9rem;line-height:1.8}.event-card{background:var(--color-midnight-light);text-align:center;transition:border-color var(--transition),transform var(--transition);border:1px solid #c9a84c40;height:100%;padding:2.5rem 2rem}.event-card:hover{border-color:var(--color-gold);transform:translateY(-4px)}.event-icon{color:var(--color-gold);margin-bottom:1rem;font-size:2rem;display:block}.event-name{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--color-gold);margin-bottom:.5rem;font-size:1rem}.event-date{font-family:var(--font-heading);color:var(--color-cream-text);margin-bottom:.25rem;font-size:1.4rem}.event-time{color:var(--color-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;font-size:.8rem}.event-venue{color:var(--color-champagne);font-size:.88rem;line-height:1.6}.event-note{color:var(--color-muted);border-top:1px solid #c9a84c33;margin-top:1rem;padding-top:1rem;font-size:.8rem;font-style:italic}.travel-card{background:var(--color-midnight);border:1px solid #c9a84c33;height:100%;padding:2rem}.travel-card h5{font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;color:var(--color-gold);margin-bottom:1rem;font-size:.8rem}.travel-item{border-bottom:1px solid #c9a84c1a;padding:1rem 0}.travel-item:last-child{border-bottom:none}.travel-item-title{font-family:var(--font-heading);color:var(--color-cream-text);margin-bottom:.3rem;font-size:1.1rem}.travel-item-desc{color:var(--color-champagne);font-size:.85rem;line-height:1.7}.travel-item-link{color:var(--color-gold);letter-spacing:.1em;text-transform:uppercase;transition:border-color var(--transition);border-bottom:1px solid #0000;margin-top:.5rem;font-size:.75rem;text-decoration:none;display:inline-block}.travel-item-link:hover{border-bottom-color:var(--color-gold);color:var(--color-gold)}.rsvp-page{background-color:var(--color-midnight);padding:8rem 0 5rem}.rsvp-form-wrap{background:var(--color-midnight-light);border:1px solid #c9a84c33;max-width:640px;margin:0 auto;padding:3rem}@media (max-width:576px){.rsvp-form-wrap{padding:2rem 1.25rem}}.form-label-wedding{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--color-gold);margin-bottom:.5rem;font-size:.7rem;display:block}.form-control-wedding{background:var(--color-midnight)!important;color:var(--color-cream-text)!important;font-family:var(--font-body)!important;transition:border-color var(--transition)!important;border:1px solid #c9a84c4d!important;border-radius:0!important;padding:.75rem 1rem!important;font-size:.9rem!important}.form-control-wedding:focus{border-color:var(--color-gold)!important;outline:none!important;box-shadow:0 0 0 2px #c9a84c26!important}.form-control-wedding::placeholder{color:var(--color-muted)!important}.form-check-wedding{cursor:pointer;transition:border-color var(--transition);border:1px solid #c9a84c26;align-items:flex-start;gap:.75rem;margin-bottom:.5rem;padding:.75rem 1rem;display:flex}.form-check-wedding:hover{border-color:#c9a84c66}.form-check-wedding input[type=checkbox],.form-check-wedding input[type=radio]{accent-color:var(--color-gold);cursor:pointer;flex-shrink:0;width:16px;height:16px;margin-top:2px}.form-check-wedding label{color:var(--color-champagne);cursor:pointer;font-size:.875rem;line-height:1.5}.form-error{color:#e07070;margin-top:.35rem;font-size:.75rem;display:block}.btn-gold{background:var(--color-gold);color:var(--color-midnight);font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background var(--transition),color var(--transition);border:none;border-radius:0;width:100%;padding:1rem 3rem;font-size:.75rem;font-weight:500;display:block}.btn-gold:hover{background:var(--color-gold-dark);color:var(--color-cream-text)}.btn-gold:disabled{opacity:.6;cursor:not-allowed}.btn-outline-gold{color:var(--color-gold);border:1px solid var(--color-gold);font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:background var(--transition),color var(--transition);background:0 0;border-radius:0;padding:.75rem 2rem;font-size:.75rem;font-weight:400;text-decoration:none;display:inline-block}.btn-outline-gold:hover{background:var(--color-gold);color:var(--color-midnight)}.admin-page{background-color:var(--color-midnight);color:var(--color-cream-text);padding:8rem 0 4rem}.stat-card{background:var(--color-midnight-light);text-align:center;border:1px solid #c9a84c33;height:100%;padding:1.5rem}.stat-number{font-family:var(--font-display);color:var(--color-gold);font-size:2.5rem;line-height:1;display:block}.stat-label{letter-spacing:.15em;text-transform:uppercase;color:var(--color-muted);margin-top:.5rem;font-size:.7rem;display:block}.rsvp-table{border-collapse:collapse;width:100%;font-size:.85rem}.rsvp-table th{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--color-gold);text-align:left;border-bottom:1px solid #c9a84c4d;padding:.75rem 1rem;font-size:.65rem}.rsvp-table td{color:var(--color-champagne);vertical-align:top;border-bottom:1px solid #ffffff0d;padding:.875rem 1rem}.rsvp-table tr:hover td{background:#c9a84c0a}.badge-side{letter-spacing:.1em;text-transform:uppercase;border-radius:0;padding:.25rem .6rem;font-size:.65rem;font-weight:400}.badge-bride{color:var(--color-gold);background:#c9a84c26;border:1px solid #c9a84c66}.badge-groom{color:var(--color-cream-text);background:#f5e6d31a;border:1px solid #f5e6d34d}.wedding-footer{background:var(--color-midnight);text-align:center;color:var(--color-muted);border-top:1px solid #c9a84c26;padding:3rem 0}.footer-names{font-family:var(--font-display);letter-spacing:.2em;color:var(--color-gold);text-transform:uppercase;font-size:1.1rem}.footer-date{letter-spacing:.2em;color:var(--color-muted);margin-top:.5rem;font-size:.75rem}.section-heading{font-family:var(--font-heading);margin-bottom:.5rem;font-size:clamp(2rem,4vw,3rem);line-height:1.2}.section-intro{max-width:560px;margin:0 auto;font-size:.95rem;line-height:1.8}.form-control:focus{box-shadow:0 0 0 2px #c9a84c33!important}.navbar-toggler-icon{filter:invert()}
