:root{
  --bg:#faf9f5;--surface:#ffffff;--surface2:#f4f3ef;--text:#1b1c1a;--muted:#646452;--line:#d9d4bf;--primary:#646400;--primary2:#808000;--accent:#8a704d;--error:#ba1a1a;--ok:#5f6f2a;
  --shadow:0 20px 60px rgba(31,28,4,.08);--radius:28px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.serif{font-family:'Playfair Display',Georgia,serif}.caps{font-size:12px;line-height:16px;letter-spacing:.18em;text-transform:uppercase;font-weight:700}.container{width:min(1040px,calc(100% - 40px));margin:auto}.section{padding:76px 0}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:999px;background:var(--primary);color:#fff;padding:16px 28px;min-height:54px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;font-size:12px;cursor:pointer;box-shadow:0 14px 32px rgba(95,95,0,.18);transition:.2s}.btn:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(95,95,0,.25)}.btn:disabled{opacity:.75;cursor:default;transform:none;box-shadow:none}.btn.is-sending{cursor:progress}.btn.is-sent,.btn.is-sent:hover{cursor:default;transform:none;box-shadow:none}.btn.secondary{background:rgba(255,255,255,.88);color:var(--text);border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.06)}.chip{display:inline-flex;border:1px solid rgba(100,100,0,.25);color:var(--primary);padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.55);backdrop-filter:blur(10px)}
.hero{min-height:100svh;display:grid;place-items:center;text-align:center;position:relative;isolation:isolate;padding:80px 20px;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.35),transparent 35%),linear-gradient(180deg,rgba(250,249,245,.18),rgba(250,249,245,.95)),url('https://images.unsplash.com/photo-1523438885200-e635ba2c371e?auto=format&fit=crop&w=1800&q=80') center/cover;z-index:-2}.hero:after{content:"";position:absolute;width:760px;height:760px;border-radius:50%;background:radial-gradient(circle,rgba(233,232,107,.22),transparent 64%);z-index:-1;top:8%;left:50%;translate:-50% 0}.hero h1{font-size:clamp(48px,10vw,112px);line-height:.95;font-weight:400;font-style:italic;margin:18px 0 22px;text-wrap:balance}.hero-date{font-family:'Playfair Display',Georgia,serif;font-size:clamp(26px,4vw,44px);letter-spacing:.12em;color:var(--primary)}.hero-actions{display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:34px}.leaf{position:absolute;opacity:.13;pointer-events:none;filter:grayscale(.2)}.leaf.one{left:-60px;bottom:10%;width:300px;rotate:18deg}.leaf.two{right:-80px;top:7%;width:310px;rotate:-25deg}.leaf:before{content:"❦";font-family:serif;font-size:280px;color:var(--primary)}
.quote{max-width:640px;text-align:center;margin:auto}.quote p{font-family:'Playfair Display',Georgia,serif;font-size:clamp(22px,3vw,34px);font-style:italic;color:var(--muted)}.card{background:rgba(255,255,255,.62);border:1px solid rgba(217,212,191,.8);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(14px)}.event-card{padding:42px;text-align:center;position:relative;overflow:hidden}.event-card:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(128,128,0,.08) 1px,transparent 1px);background-size:18px 18px;opacity:.5}.event-card>*{position:relative}.event-grid{display:grid;grid-template-columns:1fr 1px 1fr;gap:24px;align-items:center;margin-top:26px}.divider{height:76px;background:var(--line)}.big{font-family:'Playfair Display',Georgia,serif;font-size:clamp(26px,4vw,44px);line-height:1.15}.location{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:stretch}.location-img{min-height:420px;border-radius:var(--radius);overflow:hidden;background:url('https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&w=1400&q=80') center/cover}.location-text{padding:42px;display:flex;flex-direction:column;justify-content:center}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}.count-item{padding:24px 12px;text-align:center;background:var(--surface2);border-radius:22px;border:1px solid var(--line)}.count-num{font-family:'Playfair Display',Georgia,serif;font-size:clamp(34px,5vw,62px);line-height:1;color:var(--text)}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.info-card{padding:28px}.info-card h3{margin:8px 0 6px;font-family:'Playfair Display',Georgia,serif;font-size:26px;font-weight:400}.answer-section{padding-top:36px}.answer-card{padding:46px;text-align:center;position:relative;overflow:hidden}.answer-card:before{content:"";position:absolute;inset:18px;border:1px solid rgba(100,100,0,.14);border-radius:22px;pointer-events:none}.answer-ornament{position:absolute;right:28px;bottom:-58px;font-family:serif;font-size:220px;line-height:1;color:rgba(128,128,0,.07)}.answer-content{position:relative;z-index:1;max-width:620px;margin:auto}.answer-card h2{font-size:clamp(36px,6vw,68px);line-height:1.05;font-weight:400;margin:8px 0 12px}.answer-card p{font-size:18px;margin:0}.rsvp-form-section{width:min(720px,calc(100% - 40px));margin:auto}.rsvp-form-section .form-head h2{font-size:clamp(38px,7vw,64px);line-height:1.05;font-weight:400;margin:0 0 12px}.rsvp-form-section .form-head{margin-bottom:28px}
.rsvp-block{padding:44px;display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center;overflow:hidden;position:relative}.rsvp-block:after{content:"♡";position:absolute;right:24px;bottom:-52px;font-size:220px;color:rgba(128,128,0,.07);font-family:serif}.footer{text-align:center;padding:34px 0 70px;color:var(--muted)}
.form-page{min-height:100svh;display:grid;place-items:center;padding:36px 20px;background:radial-gradient(rgba(121,120,101,.05) 1px,transparent 1px),var(--bg);background-size:40px 40px}.form-shell{width:min(680px,100%)}.form-head{text-align:center;margin-bottom:28px}.form-head h1{font-size:clamp(38px,7vw,64px);line-height:1.05;font-weight:400;margin:0 0 12px}.form-card{padding:clamp(24px,5vw,54px)}.field{display:grid;gap:8px;margin-bottom:24px}.field label{color:var(--muted)}.input{width:100%;border:0;border-bottom:1px solid #b2ac88;background:transparent;border-radius:0;padding:12px 2px;color:var(--text);outline:none}.input:focus{border-bottom-color:var(--primary2);box-shadow:0 1px 0 var(--primary2)}.input.invalid{border-bottom-color:var(--error);box-shadow:0 1px 0 var(--error)}.field-help{font-size:12px;color:var(--muted);margin-top:-2px}textarea.input{min-height:88px;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.radio-row{display:flex;gap:12px;flex-wrap:wrap}.radio{flex:1;min-width:180px}.radio input{position:absolute;opacity:0}.radio span{display:flex;justify-content:center;align-items:center;min-height:48px;padding:12px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.5);cursor:pointer;text-align:center}.radio input:checked+span{background:var(--primary);border-color:var(--primary);color:#fff}.status{margin-top:16px;padding:14px 16px;border-radius:16px;background:var(--surface2);border:1px solid var(--line);display:none}.status.show{display:block}.status.ok{background:#f1f6e9;border-color:#cdd9b0;color:#43500f}.status.err{background:#fff0f0;border-color:#f0c2c2;color:var(--error)}.back-link{display:inline-flex;margin-bottom:20px;color:var(--muted)}
.mobile-only{display:none}
@media(max-width:760px){.section{padding:56px 0}.location,.rsvp-block{grid-template-columns:1fr}.location-img{min-height:280px}.event-grid{grid-template-columns:1fr;gap:16px}.divider{height:1px;width:100%}.countdown{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr}.row{grid-template-columns:1fr}.rsvp-block{padding:30px}.desktop-only{display:none}.mobile-only{display:inline}.hero-actions .btn{width:100%}}
.field-error {
  border-bottom-color: #ba1a1a !important;
  color: #ba1a1a;
}

.field-error-message {
  margin-top: 6px;
  font-size: 13px;
  line-height: 18px;
  color: #ba1a1a;
  font-family: var(--font-body, "DM Sans", sans-serif);
  letter-spacing: normal;
}

.status.err {
  background: #fff1f0;
  border-color: #ffdad6;
  color: #93000a;
}

.status.ok {
  background: #f2f6df;
  border-color: #dce7a8;
  color: #4b5200;
}