:root{--cream:#f5f0e6;--cream-deep:#ede5d4;--ivory:#faf6ec;--sage:#6b7a5a;--sage-deep:#4a5640;--olive:#2f3a28;--gold:#b89968;--gold-soft:#c9a978;--gold-pale:#e2d4b3;--heart:#c9a87e;--ink:#2a3328;--line:#b8996866}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);font-family:Cormorant Garamond,serif;font-weight:400;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:1;background-image:radial-gradient(at 20% 30%,#b899680f 0%,#0000 40%),radial-gradient(at 80% 70%,#6b7a5a0d 0%,#0000 40%),radial-gradient(#ffffff4d 0%,#0000 60%);position:fixed;inset:0}nav{z-index:100;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#f5f0e6d9;justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-monogram{color:var(--sage-deep);letter-spacing:.02em;font-family:Dancing Script,cursive;font-size:1.6rem;text-decoration:none}.nav-monogram .amp{color:var(--gold);margin:0 .15em}.nav-links{gap:2.5rem;list-style:none;display:flex}.nav-links a{letter-spacing:.18em;color:var(--sage-deep);text-transform:uppercase;padding:.25rem 0;font-family:Cinzel,serif;font-size:.7rem;text-decoration:none;transition:color .3s;position:relative}.nav-links a:hover{color:var(--gold)}.nav-links a:after{content:"";background:var(--gold);width:0;height:1px;transition:all .3s;position:absolute;bottom:0;left:50%}.nav-links a:hover:after{width:100%;left:0}.nav-toggle{cursor:pointer;color:var(--sage-deep);background:0 0;border:none;font-size:1.4rem;display:none}section{z-index:2;padding:8rem 2rem 6rem;position:relative}.section-inner{max-width:1100px;margin:0 auto;position:relative}.section-eyebrow{letter-spacing:.32em;color:var(--gold);text-transform:uppercase;text-align:center;margin-bottom:1rem;font-family:Cinzel,serif;font-size:.7rem}.section-title{color:var(--sage-deep);text-align:center;margin-bottom:.5rem;font-family:Dancing Script,cursive;font-size:clamp(2.5rem,6vw,4rem);font-weight:500}.heart-mark{color:var(--heart);font-size:.9rem}.sprig-divider{justify-content:center;align-items:center;gap:.75rem;margin:1.5rem 0;display:flex}.sprig-divider svg{width:60px;height:16px;color:var(--sage)}.sprig-divider .heart-mark{color:var(--heart);font-size:.7rem}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding-top:6rem;display:flex;overflow:hidden}.hero-botanical{pointer-events:none;opacity:.85;position:absolute}.hero-botanical-tl{width:280px;top:4rem;left:-2rem;transform:rotate(-10deg)}.hero-botanical-br{width:320px;bottom:2rem;right:-3rem;transform:rotate(15deg)}.hero-frame{border:1px solid var(--line);background:#faf6ec66;width:100%;max-width:720px;padding:5rem 3rem;position:relative}.hero-frame:before,.hero-frame:after{content:"";background:var(--line);width:1px;position:absolute}.hero-frame:before{top:-8px;bottom:-8px;left:8px}.hero-frame:after{top:-8px;bottom:-8px;right:8px}.hero-eyebrow{letter-spacing:.32em;color:var(--gold);text-transform:uppercase;margin-bottom:1.75rem;font-family:Cinzel,serif;font-size:.7rem}.hero-names{color:var(--sage-deep);margin-bottom:.75rem;font-family:Dancing Script,cursive;font-size:clamp(3.5rem,9vw,6.5rem);font-weight:500;line-height:1}.hero-names .amp{color:var(--gold);font-style:italic}.hero-tagline{letter-spacing:.28em;color:var(--olive);text-transform:uppercase;margin:1.5rem 0;font-family:Cinzel,serif;font-size:.85rem;line-height:1.6}.hero-info{flex-direction:column;align-items:center;gap:1.5rem;margin-top:2.5rem;display:flex}.hero-info-row{flex-direction:column;align-items:center;gap:.5rem;display:flex}.hero-info-row .icon{color:var(--gold);width:22px;height:22px}.hero-info-row .label{letter-spacing:.22em;color:var(--olive);text-transform:uppercase;font-family:Cinzel,serif;font-size:.85rem}.hero-info-row .venue-script{color:var(--gold);font-family:Dancing Script,cursive;font-size:1.4rem}.hero-info-row .venue-postcode{color:var(--olive);letter-spacing:.1em;font-family:Cormorant Garamond,serif;font-size:1rem}.hero-info-divider{background:linear-gradient(180deg, transparent, var(--line), transparent);width:1px;height:24px}.closing-script{color:var(--sage-deep);margin-top:2.5rem;font-family:Dancing Script,cursive;font-size:1.4rem;font-style:italic}.cta-rsvp{border:1px solid var(--gold);letter-spacing:.28em;color:var(--olive);text-transform:uppercase;background:0 0;margin-top:2.5rem;padding:1rem 3rem;font-family:Cinzel,serif;font-size:.75rem;text-decoration:none;transition:all .4s;display:inline-block;position:relative;overflow:hidden}.cta-rsvp:before{content:"";background:var(--gold);z-index:-1;transition:transform .4s;position:absolute;inset:0;transform:translateY(100%)}.cta-rsvp:hover{color:var(--ivory);border-color:var(--gold)}.cta-rsvp:hover:before{transform:translateY(0)}.story-grid{grid-template-columns:1fr 1fr;align-items:center;gap:4rem;margin-top:4rem;display:grid}.story-image{aspect-ratio:3/4;background:linear-gradient(135deg, var(--cream-deep), var(--gold-pale));border:1px solid var(--line);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.story-image:before{content:"";border:1px solid var(--line);position:absolute;inset:1rem}.story-image-label{color:var(--sage);opacity:.5;z-index:2;font-family:Dancing Script,cursive;font-size:1.5rem}.story-text{color:var(--olive);font-size:1.15rem;line-height:1.9}.story-text p{margin-bottom:1.5rem}.story-text .first-letter{color:var(--gold);float:left;margin:.3rem .3rem 0 0;font-family:Dancing Script,cursive;font-size:3.5rem;line-height:.9}.details{background:linear-gradient(180deg, var(--cream) 0%, var(--cream-deep) 100%)}.info-intro{text-align:center;max-width:580px;color:var(--olive);margin:2rem auto 4rem;font-size:1.2rem;font-style:italic;line-height:1.8}.detail-cards-grid{grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:4rem;display:grid}.info-card{background:var(--ivory);border:1px solid var(--line);text-align:center;padding:2.5rem 2rem;transition:all .4s;position:relative}.info-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px #4a56401a}.info-card-icon{width:60px;height:60px;color:var(--sage);margin:0 auto 1.5rem}.info-card-label{letter-spacing:.28em;color:var(--gold);text-transform:uppercase;margin-bottom:1rem;font-family:Cinzel,serif;font-size:.75rem}.info-card-value{color:var(--olive);margin-bottom:.5rem;font-family:Cormorant Garamond,serif;font-size:1.15rem;line-height:1.5}.info-card-script{color:var(--sage);margin-top:.5rem;font-family:Dancing Script,cursive;font-size:1.5rem}.info-card-divider{background:var(--gold);width:30px;height:1px;margin:1rem auto .75rem}.info-card-meta{letter-spacing:.2em;color:var(--gold);text-transform:uppercase;font-family:Cinzel,serif;font-size:.65rem}.schedule{background:var(--ivory);border:1px solid var(--line);margin-top:5rem;padding:3.5rem 3rem;position:relative}.schedule:before{content:"";border:1px solid var(--line);pointer-events:none;position:absolute;inset:8px}.schedule-title{color:var(--sage-deep);text-align:center;margin-bottom:.5rem;font-family:Dancing Script,cursive;font-size:2rem}.schedule-eyebrow{letter-spacing:.28em;color:var(--gold);text-transform:uppercase;text-align:center;margin-bottom:.5rem;font-family:Cinzel,serif;font-size:.65rem}.schedule-list{max-width:480px;margin:2rem auto 0}.schedule-item{border-bottom:1px dotted var(--line);align-items:baseline;padding:1.1rem 0;display:flex}.schedule-item:last-child{border-bottom:none}.schedule-time{letter-spacing:.18em;color:var(--gold);min-width:100px;font-family:Cinzel,serif;font-size:.8rem}.schedule-event{color:var(--olive);flex:1;padding-left:1rem;font-family:Cormorant Garamond,serif;font-size:1.15rem}.rsvp{background:var(--ivory);position:relative}.rsvp-botanical{pointer-events:none;opacity:.4;position:absolute}.rsvp-botanical-l{width:220px;top:8rem;left:-3rem;transform:rotate(-15deg)}.rsvp-botanical-r{width:200px;bottom:4rem;right:-2rem;transform:rotate(20deg)scaleX(-1)}.rsvp-form{background:var(--cream);border:1px solid var(--line);max-width:600px;margin:0 auto;padding:3.5rem 3rem;position:relative}.rsvp-form:before{content:"";border:1px solid var(--line);pointer-events:none;position:absolute;inset:8px}.form-group{margin-bottom:1.75rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-row .form-group{margin-bottom:1.75rem}.form-label{letter-spacing:.22em;color:var(--sage-deep);text-transform:uppercase;margin-bottom:.6rem;font-family:Cinzel,serif;font-size:.7rem;display:block}.form-input,.form-textarea,.form-select{background:var(--ivory);border:1px solid var(--line);width:100%;color:var(--olive);padding:.85rem 1rem;font-family:Cormorant Garamond,serif;font-size:1.1rem;transition:all .3s}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--gold);background:#fff;outline:none}.form-textarea{resize:vertical;min-height:100px;font-family:Cormorant Garamond,serif}.radio-group{gap:1rem;display:flex}.radio-option{flex:1;position:relative}.radio-option input{opacity:0;pointer-events:none;position:absolute}.radio-option label{text-align:center;border:1px solid var(--line);background:var(--ivory);letter-spacing:.22em;color:var(--olive);text-transform:uppercase;cursor:pointer;padding:1rem;font-family:Cinzel,serif;font-size:.7rem;transition:all .3s;display:block}.radio-option input:checked+label{background:var(--sage-deep);color:var(--ivory);border-color:var(--sage-deep)}.guests-section{background:var(--ivory);border:1px dashed var(--line);margin-bottom:1.75rem;padding:1.75rem;display:none;position:relative}.guests-section.show{display:block}.guests-header{text-align:center;border-bottom:1px dotted var(--line);margin-bottom:1.5rem;padding-bottom:1.25rem}.guests-title{letter-spacing:.28em;color:var(--gold);text-transform:uppercase;margin-bottom:.4rem;font-family:Cinzel,serif;font-size:.75rem}.guests-subtitle{color:var(--olive);font-family:Cormorant Garamond,serif;font-size:1rem;font-style:italic}.guest-list{flex-direction:column;gap:1rem;display:flex}.guest-row{grid-template-columns:auto 1fr 1fr auto;align-items:center;gap:.75rem;animation:.4s guestFadeIn;display:grid}@keyframes guestFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.guest-number{color:var(--gold);text-align:center;width:28px;font-family:Dancing Script,cursive;font-size:1.5rem;line-height:1}.guest-row .form-input{padding:.7rem .9rem;font-size:1rem}.guest-remove{border:1px solid var(--line);width:36px;height:36px;color:var(--sage);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;transition:all .3s;display:flex}.guest-remove:hover{background:var(--sage-deep);color:var(--ivory);border-color:var(--sage-deep)}.guest-remove svg{width:14px;height:14px}.add-guest-btn{border:1px dashed var(--gold);width:100%;color:var(--olive);cursor:pointer;letter-spacing:.22em;text-transform:uppercase;background:0 0;justify-content:center;align-items:center;gap:.6rem;margin-top:1.25rem;padding:.85rem 1rem;font-family:Cinzel,serif;font-size:.7rem;transition:all .3s;display:flex}.add-guest-btn:hover{background:var(--gold);color:var(--ivory);border-style:solid}.add-guest-btn svg{width:14px;height:14px}.form-submit{background:var(--sage-deep);width:100%;color:var(--ivory);letter-spacing:.28em;text-transform:uppercase;cursor:pointer;border:none;margin-top:1rem;padding:1.1rem;font-family:Cinzel,serif;font-size:.8rem;transition:all .3s}.form-submit:hover{background:var(--gold)}.form-success{text-align:center;padding:2rem;display:none}.form-success.show{display:block}.form-group--error .form-input,.form-group--error .form-textarea{border-color:#b85c5c}.form-error{color:#b85c5c;margin-top:.4rem;font-family:Cormorant Garamond,serif;font-size:.95rem;font-style:italic;display:block}.form-api-error{color:#b85c5c;text-align:center;background:#fdf5f5;border:1px solid #b85c5c;margin-bottom:1rem;padding:.75rem 1rem;font-family:Cormorant Garamond,serif;font-size:1rem}.form-submit:disabled{opacity:.6;cursor:not-allowed}.guest-row{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.guest-row .form-input{flex:1;margin-bottom:0}.remove-guest-btn{border:1px solid var(--line);width:2rem;height:2rem;color:var(--sage-deep);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;transition:all .2s;display:flex}.remove-guest-btn:hover{color:#b85c5c;border-color:#b85c5c}.rsvp-form.submitted .form-content{display:none}.success-script{color:var(--sage-deep);margin-bottom:1rem;font-family:Dancing Script,cursive;font-size:2.5rem}.success-text{color:var(--olive);margin-top:1rem;font-size:1.15rem;line-height:1.7}.travel{background:linear-gradient(180deg, var(--cream-deep) 0%, var(--cream) 100%)}.hotels-grid{grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:4rem;display:grid}footer{text-align:center;background:var(--olive);color:var(--cream);z-index:2;padding:5rem 2rem 3rem;position:relative}.footer-script{color:var(--gold-soft);margin-bottom:1rem;font-family:Dancing Script,cursive;font-size:2.5rem}.footer-message{color:var(--cream);opacity:.9;margin-bottom:2rem;font-family:Cormorant Garamond,serif;font-size:1.1rem;font-style:italic}.footer-divider{color:var(--gold-soft);letter-spacing:.5em;margin:2rem 0;font-size:.7rem}.footer-meta{letter-spacing:.28em;color:var(--gold-soft);text-transform:uppercase;opacity:.7;font-family:Cinzel,serif;font-size:.65rem}@media (width<=768px){nav{padding:1rem 1.25rem}.nav-links{background:var(--cream);border-bottom:1px solid var(--line);flex-direction:column;gap:1.25rem;padding:1.5rem;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.open{display:flex}.nav-toggle{display:block}section{padding:6rem 1.25rem 4rem}.hero-frame{padding:3rem 1.5rem}.story-grid{grid-template-columns:1fr;gap:2rem}.detail-cards-grid,.hotels-grid{grid-template-columns:1fr}.rsvp-form,.schedule{padding:2.5rem 1.5rem}.hero-botanical-tl,.hero-botanical-br{width:180px}.form-row{grid-template-columns:1fr;gap:0}.guest-row{grid-template-columns:auto 1fr auto;grid-template-areas:"num first remove""num last remove";row-gap:.5rem}.guest-row .guest-number{grid-area:num}.guest-row .guest-first{grid-area:first}.guest-row .guest-last{grid-area:last}.guest-row .guest-remove{grid-area:remove}.rsvp-botanical-r{display:none}.radio-group{flex-direction:column}}.fade-in{opacity:0;transition:opacity 1s,transform 1s;transform:translateY(20px)}.fade-in.visible{opacity:1;transform:translateY(0)}
