:root{--dark: #2C3520;--dark-hover: #38462a;--light: #ffffff;--gold: #C9A96E;--gold-light: #E8D5A3;--text-on-dark: #F0EAD8;--text-on-light: #3D3022;--text-muted: #7A6E60;--border-light: #E0D8CC;--font-script: "Great Vibes", cursive;--font-serif: "Cormorant Garamond", serif;--font-sans: "Montserrat", sans-serif;--radius-card: 28px;--max-width: 480px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background-color:#fff;color:var(--text-on-light);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}.section-inner{max-width:var(--max-width);margin:0 auto;width:100%}.script-heading{font-family:var(--font-script);font-size:clamp(2.4rem,7vw,3.2rem);font-weight:400;text-align:center;margin-bottom:36px;line-height:1.1}.script-heading--on-dark{color:var(--text-on-dark)}.script-heading--on-light{color:var(--text-on-light)}.section-subtitle{display:block;font-family:var(--font-sans);font-size:.6rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;text-align:center;margin-top:-28px;margin-bottom:36px}.section-subtitle--on-dark{color:#f0ead866}.section-subtitle--on-light{color:var(--text-muted)}.gold-divider{display:flex;align-items:center;gap:12px;margin:0 auto}.gold-divider__line{flex:1;height:1px;background:var(--gold);opacity:.4}.gold-divider__diamond{color:var(--gold);font-size:.42rem;opacity:.65}@media (min-width: 640px){:root{--max-width: 580px}}@media (min-width: 900px){:root{--max-width: 720px}.script-heading{font-size:clamp(3rem,4vw,4rem)}.section-subtitle{font-size:.72rem}}@media (min-width: 1200px){:root{--max-width: 860px}.script-heading{font-size:clamp(3.5rem,3.5vw,4.5rem)}}.hero{position:relative;background-color:#fff;min-height:100svh;display:flex;flex-direction:column;overflow:hidden}.hero__scroll-arrow{align-self:center;margin-top:28px;background:none;border:1px solid rgba(201,169,110,.45);border-radius:50%;width:46px;height:46px;display:flex;align-items:center;justify-content:center;color:var(--gold);cursor:pointer;transition:border-color .22s,background-color .22s;flex-shrink:0}.hero__scroll-arrow:hover{border-color:var(--gold);background-color:#c9a96e1a}.hero__watermark{position:absolute;top:-80%;right:-80%;bottom:-80%;left:-80%;overflow:hidden;pointer-events:none;display:flex;flex-direction:column;justify-content:space-around;transform:rotate(-18deg);z-index:0}.hero__wm-row{display:flex;white-space:nowrap;overflow:hidden;animation:wm-ltr 28s linear infinite}.hero__wm-row--reverse{animation-name:wm-rtl;animation-duration:32s}.hero__wm-row span{font-family:var(--font-script);font-size:1.75rem;color:#c9a96e12;letter-spacing:.04em;flex-shrink:0;padding:12px 0}@keyframes wm-ltr{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes wm-rtl{0%{transform:translate(-50%)}to{transform:translate(0)}}.hero__content{position:relative;z-index:2;padding:48px 20px;flex:1;display:flex;flex-direction:column}.hero__photo-wrap{width:calc(100% - 40px);max-width:var(--max-width);margin:32px auto 64px;border-radius:var(--radius-card);overflow:hidden;box-shadow:0 8px 40px #0000001a}.hero__photo-img{width:100%;height:clamp(260px,65vw,520px);object-fit:cover;object-position:center 30%;display:block}.hero__card{background:#ffffff;border-radius:var(--radius-card);padding:40px 28px;text-align:center;width:100%;max-width:var(--max-width);margin:0 auto;border:1px solid rgba(201,169,110,.22);box-shadow:0 4px 32px #0000000d;flex:1;display:flex;flex-direction:column;justify-content:center}.hero__eyebrow{font-family:var(--font-sans);font-size:.62rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);margin-bottom:18px}.hero__names{font-family:var(--font-serif);font-size:clamp(2.2rem,9vw,4.5rem);font-weight:300;color:var(--text-on-light);line-height:1.1;margin-bottom:6px}.hero__amp{font-family:var(--font-script);font-size:clamp(2.8rem,11vw,5.5rem);color:var(--gold);margin:0 4px;line-height:.8;vertical-align:middle;display:inline-block}.hero__surname{font-family:var(--font-serif);font-size:clamp(.82rem,2.5vw,1rem);font-weight:300;letter-spacing:.32em;text-transform:uppercase;color:var(--text-muted);margin-bottom:22px}.hero__divider{max-width:160px;margin:0 auto 20px}.hero__date{font-family:var(--font-serif);font-size:clamp(1.3rem,5vw,2.4rem);font-weight:400;letter-spacing:.2em;color:var(--text-on-light);margin-bottom:18px}.hero__subtitle{font-family:var(--font-serif);font-size:clamp(.9rem,2vw,1.25rem);font-style:italic;font-weight:300;color:var(--text-muted);line-height:1.85}.countdown{background-color:var(--light);padding:72px 24px;text-align:center}.countdown__grid{display:flex;align-items:flex-start;justify-content:center;gap:4px;flex-wrap:wrap}.cd-unit{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:64px}.cd-unit__flip{height:clamp(2.8rem,10vw,5.2rem);overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.cd-unit__value{font-family:var(--font-serif);font-size:clamp(2.4rem,9vw,5rem);font-weight:300;color:var(--gold);line-height:1;display:block}.cd-unit__label{font-family:var(--font-sans);font-size:clamp(.58rem,1.2vw,.75rem);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}.countdown__sep{font-family:var(--font-serif);font-size:clamp(1.8rem,7vw,2.8rem);color:var(--gold);opacity:.6;line-height:1;margin-top:4px;align-self:flex-start;padding-top:2px}.countdown__skeleton{height:80px;width:100%}.countdown .script-heading--on-light{color:var(--text-on-light)}.location{background-color:#fff;padding:80px 24px;border-top:1px solid rgba(201,169,110,.18)}.location__cards{display:flex;flex-direction:column;gap:20px;max-width:500px;margin:0 auto}.location__card{background:#ffffff;border-radius:var(--radius-card);overflow:hidden;border:1px solid rgba(201,169,110,.2)}.location__photo{width:100%;height:200px;overflow:hidden}.location__photo-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.location__body{padding:24px 24px 28px;text-align:center}.location__time{font-family:var(--font-serif);font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}.location__heading{font-family:var(--font-serif);font-size:clamp(1.05rem,3.5vw,1.25rem);font-weight:500;color:var(--text-on-light);margin-bottom:8px}.location__venue{font-family:var(--font-sans);font-size:.82rem;font-weight:500;color:var(--text-on-light);margin-bottom:4px}.location__hint{font-family:var(--font-sans);font-size:.72rem;font-weight:300;color:var(--text-muted);margin-bottom:22px;line-height:1.5}.location__btn{display:inline-block;background-color:var(--dark);color:var(--text-on-dark);font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:12px 28px;border-radius:100px;transition:background-color .22s ease,transform .18s ease}.location__btn:hover{background-color:var(--dark-hover);transform:translateY(-2px)}.location__btn:active{transform:translateY(0)}.program{background-color:var(--light);padding:80px 24px}.program__timeline{position:relative;display:flex;flex-direction:column;max-width:var(--max-width);margin:0 auto}.program__axis{position:absolute;left:84px;top:14px;bottom:14px;width:1px;background:linear-gradient(to bottom,transparent 0%,rgba(201,169,110,.5) 8%,rgba(201,169,110,.5) 92%,transparent 100%)}.program__row{display:grid;grid-template-columns:60px 24px 1fr;align-items:flex-start;gap:12px;padding:16px 0;position:relative;z-index:1}.program__time{font-family:var(--font-serif);font-size:.95rem;font-weight:500;color:var(--gold);text-align:right;padding-top:2px}.program__dot-wrap{display:flex;justify-content:center;padding-top:5px}.program__dot{width:10px;height:10px;border-radius:50%;background:var(--gold);flex-shrink:0;box-shadow:0 0 0 4px #c9a96e2e}.program__title{font-family:var(--font-serif);font-size:1.05rem;font-weight:500;color:var(--text-on-light);margin-bottom:5px;line-height:1.3}.program__desc{font-family:var(--font-sans);font-size:.76rem;font-weight:300;color:var(--text-muted);line-height:1.65}.dresscode{background-color:#fff;padding:80px 24px;border-top:1px solid rgba(201,169,110,.18)}.dresscode__inner{text-align:center}.dresscode__text{font-family:var(--font-serif);font-size:clamp(.95rem,2.8vw,1.1rem);font-style:italic;font-weight:300;color:var(--text-on-light);line-height:1.85;margin-bottom:40px}.dresscode__palette{display:flex;justify-content:center;align-items:flex-start;gap:16px;margin-bottom:36px;flex-wrap:wrap}.dresscode__swatch{display:flex;flex-direction:column;align-items:center;gap:10px}.dresscode__color{width:52px;height:52px;border-radius:50%;box-shadow:0 4px 16px #0000001a,inset 0 1px #ffffff80;border:1.5px solid rgba(0,0,0,.07);transition:transform .2s ease;cursor:default}.dresscode__color:hover{transform:scale(1.1)}.dresscode__color-name{font-family:var(--font-sans);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);opacity:.75}.dresscode__note{font-family:var(--font-sans);font-size:.75rem;font-style:italic;color:var(--text-muted);letter-spacing:.04em}.rsvp{background-color:#fff;padding:80px 24px;border-top:1px solid rgba(201,169,110,.18)}.rsvp__inner{text-align:center}.rsvp__card{background:#ffffff;border-radius:var(--radius-card);padding:36px 28px 40px;text-align:left;border:1px solid rgba(201,169,110,.2)}.rsvp__desc{font-family:var(--font-serif);font-size:.92rem;font-style:italic;color:var(--text-muted);line-height:1.75;margin-bottom:28px;text-align:center}.rsvp__desc strong{font-style:normal;color:var(--text-on-light);font-weight:500}.rsvp__form{display:flex;flex-direction:column;gap:18px}.rsvp__field{display:flex;flex-direction:column;gap:6px}.rsvp__label{font-family:var(--font-sans);font-size:.72rem;font-weight:500;letter-spacing:.1em;color:var(--text-on-light)}.rsvp__input{font-family:var(--font-sans);font-size:.88rem;font-weight:300;color:var(--text-on-light);background:#fff;border:1.5px solid var(--border-light);border-radius:12px;padding:13px 16px;outline:none;width:100%;transition:border-color .2s ease}.rsvp__input::placeholder{color:#c0b8ac}.rsvp__input:focus{border-color:var(--gold)}.rsvp__input--err{border-color:#b94040}.rsvp__err-msg{font-family:var(--font-sans);font-size:.7rem;color:#b94040}.rsvp__btn{margin-top:6px;background-color:var(--dark);color:var(--text-on-dark);font-family:var(--font-sans);font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:15px 24px;border:none;border-radius:100px;cursor:pointer;width:100%;transition:background-color .22s ease,transform .18s ease}.rsvp__btn:hover{background-color:var(--dark-hover);transform:translateY(-2px)}.rsvp__btn:active{transform:translateY(0)}.rsvp__btn--loading{opacity:.65;cursor:not-allowed;transform:none}.rsvp__submit-error{font-family:var(--font-sans);font-size:.72rem;color:#b94040;text-align:center;margin-top:4px;line-height:1.5}.rsvp__success{text-align:center;padding:20px 0 10px}.rsvp__success-icon{font-size:1.2rem;color:var(--gold);margin-bottom:16px;opacity:.8}.rsvp__success-script{font-family:var(--font-script);font-size:3.2rem;font-weight:400;color:var(--text-on-light);margin-bottom:16px;line-height:1}.rsvp__success-text{font-family:var(--font-serif);font-size:1rem;font-style:italic;font-weight:300;color:var(--text-muted);line-height:1.8}.rsvp__success-text strong{font-style:normal;color:var(--text-on-light);font-weight:500}.footer{background-color:#fff;overflow:hidden;border-top:1px solid rgba(201,169,110,.18)}.footer__content{padding:72px 24px 64px;text-align:center;max-width:var(--max-width);margin:0 auto}.footer__with-love{font-family:var(--font-script);font-size:clamp(2.6rem,9vw,3.6rem);font-weight:400;color:var(--text-on-light);margin-bottom:6px}.footer__names{font-family:var(--font-serif);font-size:clamp(1.4rem,5vw,1.9rem);font-weight:300;color:var(--text-on-light);letter-spacing:.08em;margin-bottom:20px}.footer__divider{max-width:160px;margin:0 auto 18px}.footer__date{font-family:var(--font-serif);font-size:.85rem;letter-spacing:.28em;color:var(--gold);opacity:.8;margin-bottom:24px}.footer__caption{font-family:var(--font-serif);font-size:.9rem;font-style:italic;font-weight:300;color:var(--text-muted);line-height:1.8}
