:root{
  --page-bg:#e8e4de;
  --wine:#32241e;
  --wine-deep:#1e1512;
  --cream:#f4e7d8;
  --cream-dim:#c9ad8f;
  --line:#d9b98d;
  --radius-outer:20px;
  --radius-inner:13px;
  color-scheme: light;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:
    radial-gradient(ellipse at 15% 10%, rgba(255,255,255,.5), transparent 45%),
    radial-gradient(ellipse at 85% 90%, rgba(0,0,0,.04), transparent 50%),
    var(--page-bg);
  color:var(--cream);
  font-family:'EB Garamond',Georgia,serif;
  font-size:17px;
  line-height:1.6;
  min-height:100vh;
}

.wrap{max-width:560px;margin:0 auto;padding:56px 20px 100px;}

.dots{
  text-align:center;
  color:var(--cream-dim);
  letter-spacing:.5em;
  font-size:11px;
  margin:18px 0;
}

.card{
  position:relative;
  background:var(--wine);
  border-radius:var(--radius-outer);
  padding:14px;
  margin-top:28px;
  box-shadow:
    0 2px 0 rgba(255,255,255,.06) inset,
    0 -30px 40px -30px rgba(0,0,0,.35) inset,
    0 30px 60px rgba(0,0,0,.28),
    0 10px 18px rgba(0,0,0,.18),
    0 2px 0 rgba(0,0,0,.2);
  isolation:isolate;
}
.card::before{
  content:"";
  position:absolute; inset:0;
  border-radius:var(--radius-outer);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay;
  opacity:.5;
  pointer-events:none;
  z-index:0;
}
.card-inner{
  position:relative;
  z-index:1;
  border:1px solid var(--line);
  border-radius:var(--radius-inner);
  padding:44px 34px;
  text-align:center;
}

.hero .eyebrow{
  font-family:'Jost',sans-serif;
  font-size:12px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--cream-dim);
  margin-bottom:22px;
}
.hero h1{
  font-family:'Pinyon Script',cursive;
  font-weight:400;
  font-size:clamp(2.6rem,9vw,4.2rem);
  line-height:1.1;
  margin:0 0 22px;
  color:var(--cream);
  text-shadow:0 0 1px rgba(244,231,216,.4), 0 0 3px rgba(244,231,216,.15);
}
.hero .names{
  font-family:'Jost',sans-serif;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--cream);
  margin-bottom:6px;
}
.hero .date{
  font-family:'Jost',sans-serif;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--cream-dim);
}
.hero .place{
  font-family:'Jost',sans-serif;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--cream);
  margin-top:18px;
}
.hero .note{
  font-family:'EB Garamond',serif;
  font-style:italic;
  font-size:15.5px;
  color:var(--cream-dim);
  margin-top:6px;
}

.card-inner h2{
  font-family:'Pinyon Script',cursive;
  font-weight:400;
  font-size:2.2rem;
  margin:0 0 4px;
  color:var(--cream);
  text-shadow:0 0 1px rgba(244,231,216,.4), 0 0 3px rgba(244,231,216,.15);
}
.thanks h2 .drop{
  font-size:1.5em;
  line-height:.7;
  vertical-align:-0.14em;
  margin-right:.02em;
  display:inline-block;
}
.card-inner .hint{
  font-family:'Jost',sans-serif;
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--cream-dim);
  margin:0 0 28px;
}

.search-row{position:relative;text-align:left;}
.search-input-row{display:flex;gap:8px;}
.search-input-row input{flex:1;}
.search-btn{
  flex-shrink:0;
  padding:0 20px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--cream);
  color:var(--wine);
  font-family:'Jost',sans-serif;
  font-size:12.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:600;
  cursor:pointer;
}
.search-btn:hover{background:#fff;}
input[type="text"], input[type="email"], textarea{
  width:100%;
  font-family:'EB Garamond',serif;
  font-size:17px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:rgba(244,231,216,.06);
  color:var(--cream);
}
input::placeholder, textarea::placeholder{color:var(--cream-dim);}
input:focus, textarea:focus{
  outline:none;
  border-color:var(--cream);
  background:rgba(244,231,216,.1);
}
.results{margin-top:10px;}
.result-item{
  display:block;width:100%;text-align:left;
  background:rgba(244,231,216,.05);
  border:1px solid var(--line);
  border-radius:8px;
  padding:13px 14px;
  margin-top:8px;
  cursor:pointer;
  font-family:'EB Garamond',serif;
  font-size:16px;
  color:var(--cream);
}
.result-item:hover{background:rgba(244,231,216,.12);}
.result-item .members{color:var(--cream-dim);font-size:13px;margin-top:2px;font-style:italic;}
.no-match{
  margin-top:16px;
  font-size:14px;
  font-style:italic;
  color:var(--cream-dim);
  text-align:left;
}
.no-match-btn{
  display:block;
  margin:20px auto 0;
  background:none;border:none;
  font-family:'Jost',sans-serif;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cream-dim);text-decoration:underline;cursor:pointer;
}

.party-label{
  font-family:'Pinyon Script',cursive;
  font-size:2rem;
  margin:0 0 4px;
  color:var(--cream);
  text-shadow:0 0 1px rgba(244,231,216,.4), 0 0 3px rgba(244,231,216,.15);
}
.change-link{
  background:none;border:none;padding:0;
  font-family:'Jost',sans-serif;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cream-dim);text-decoration:underline;cursor:pointer;
  margin-bottom:28px;
}
.event-block{
  text-align:left;
  padding:24px 0;
  border-top:1px solid rgba(227,207,174,.3);
}
.event-block:first-of-type{border-top:none;padding-top:0;}
.event-block h3{
  font-family:'Jost',sans-serif;
  font-size:14px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--cream);
  margin:0 0 4px;
}
.event-meta{
  font-family:'EB Garamond',serif;
  font-style:italic;
  font-size:14.5px;
  color:var(--cream-dim);
  margin:0 0 18px;
}
.guest-row{padding:12px 0;}
.guest-name{font-weight:500;font-size:16px;margin-bottom:10px;color:var(--cream);}
.toggle-group{display:flex;gap:8px;margin-bottom:10px;}
.toggle-btn{
  flex:1;
  padding:10px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:none;
  font-family:'Jost',sans-serif;
  font-size:11.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:500;
  cursor:pointer;
  color:var(--cream-dim);
}
.toggle-btn[data-active="true"][data-val="yes"]{
  background:var(--cream);border-color:var(--cream);color:var(--wine);
}
.toggle-btn[data-active="true"][data-val="no"]{
  background:none;border-color:var(--cream-dim);color:var(--cream);
  text-decoration:line-through;
}
.meal-select{margin-top:10px;}
.meal-options{display:flex;flex-wrap:wrap;gap:8px;}
.meal-chip{
  padding:7px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  background:none;
  font-family:'EB Garamond',serif;
  font-style:italic;
  font-size:14px;
  color:var(--cream-dim);
  cursor:pointer;
}
.meal-chip[data-active="true"]{
  border-color:var(--cream);
  color:var(--cream);
}
.field-label{
  display:block;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--cream-dim);margin:0 0 8px;
}
.party-fields{margin-top:6px;text-align:left;}
textarea{resize:vertical;min-height:80px;font-family:inherit;}

.submit-btn{
  width:100%;
  margin-top:30px;
  padding:15px;
  background:var(--cream);
  color:var(--wine);
  border:none;
  border-radius:999px;
  font-family:'Jost',sans-serif;
  font-size:12.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:600;
  cursor:pointer;
}
.submit-btn:disabled{opacity:.5;cursor:not-allowed;}
.submit-btn:not(:disabled):hover{background:#fff;}

.deadline-note{
  text-align:center;
  font-family:'EB Garamond',serif;
  font-style:italic;
  font-size:13.5px;
  color:var(--cream-dim);
  margin-top:18px;
}

.thanks p{color:var(--cream-dim);}
.summary-list{
  text-align:left;
  margin-top:22px;
  border-top:1px solid rgba(227,207,174,.3);
  padding-top:20px;
}
.summary-event{font-family:'Jost',sans-serif;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream-dim);margin:16px 0 6px;}
.summary-event:first-child{margin-top:0;}
.summary-row{display:flex;justify-content:space-between;padding:6px 0;font-size:15px;color:var(--cream);}
.summary-row .status-yes{color:var(--cream);font-weight:600;}
.summary-row .status-no{color:var(--cream-dim);text-decoration:line-through;}
.edit-again{
  display:block;margin:24px auto 0;background:none;border:none;
  color:var(--cream-dim);text-decoration:underline;font-size:13px;cursor:pointer;
  font-family:'Jost',sans-serif;letter-spacing:.05em;
}

.error-banner{
  margin-top:16px;padding:12px 14px;border:1px solid var(--cream-dim);
  color:var(--cream);font-size:13.5px;border-radius:8px;
  background:rgba(244,231,216,.08);text-align:left;
}
.status-msg{
  margin-top:16px;padding:12px 14px;border:1px solid var(--line);
  color:var(--cream);font-size:13.5px;border-radius:8px;
  background:rgba(244,231,216,.08);text-align:center;
}

footer{
  text-align:center;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:#9a9186;
  margin-top:44px;
}

[hidden]{display:none !important;}
