/* Friendsgiving invite — mirrors the printed card: white, gold frame, watercolor leaves */
:root {
  --maroon: #7a2233;
  --rust: #b5472f;
  --terracotta: #c9694f;
  --tan: #c47b4a;
  --olive: #6f6a45;
  --gold: #c2a24a;
  --ink: #111;
  --olive-green: #7a8f3a;
}
* { box-sizing: border-box; }
html, body { margin: 0; width: 100%; max-width: 100%; overflow-x: hidden; overscroll-behavior-x: none; }
html { touch-action: pan-y; background: #f4efe8; }
body {
  background: #fff;
  position: relative;
  color: var(--ink);
  font-family: "Libre Baskerville", Georgia, serif;
  -webkit-text-size-adjust: 100%;
}

/* ---- frame + corner leaves ---- */
.sheet {
  position: relative;
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  background: #fff;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  padding: 120px 28px 260px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sheet::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid var(--gold);
  pointer-events: none;
  z-index: 3;
}
.leaf { position: absolute; z-index: 1; mix-blend-mode: multiply; pointer-events: none; height: auto; }
.leaf-tr { top: 0; right: 0; width: min(62%, 300px); }
.leaf-bl { bottom: 0; left: 0; width: min(40%, 190px); }
.leaf-br { bottom: 0; right: 0; width: min(42%, 200px); }
.content { position: relative; z-index: 2; width: 100%; max-width: 420px; text-align: center; }

/* ---- type ---- */
.eyebrow {
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  letter-spacing: .32em;
  text-transform: uppercase;
  font-size: 22px;
  margin: 0;
}
.script {
  font-family: "Great Vibes", cursive;
  font-size: clamp(88px, 28vw, 128px);
  line-height: .95;
  margin: 26px 0 0;
  font-weight: 400;
  text-shadow: 0 3px 6px rgba(0,0,0,.12);
}
.join {
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: 14px;
  line-height: 1.7;
  margin: 8px 0 0;
}
.divider {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  margin: 22px auto; color: var(--terracotta); width: 82%;
}
.divider::before, .divider::after { content: ""; flex: 1; height: 1px; background: var(--terracotta); }
.divider span { font-size: 18px; line-height: 1; }
.date {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  color: var(--maroon);
  font-size: clamp(24px, 7.2vw, 36px);
  white-space: nowrap;
  margin: 0;
}
.time {
  font-family: "Cormorant Garamond", serif;
  color: var(--maroon);
  font-size: 26px;
  letter-spacing: .12em;
  margin: 10px 0 0;
}
.hosted {
  font-family: "Cormorant Garamond", serif;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--tan);
  font-size: 17px;
  font-weight: 600;
  margin: 0;
}
.host {
  font-family: "Playfair Display", serif;
  font-style: italic;
  color: var(--rust);
  font-size: 34px;
  margin: 8px 0 12px;
}
.address {
  display: block;
  color: var(--ink);
  text-decoration: none;
  font-size: 20px;
  line-height: 1.35;
  white-space: pre-line;
}
.address small {
  display: block; margin-top: 6px;
  font-size: 12px; letter-spacing: .15em; text-transform: uppercase; color: var(--rust);
}
.note {
  font-family: "Cormorant Garamond", serif;
  color: var(--olive);
  letter-spacing: .05em;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
}

/* ---- buttons ---- */
.actions { display: flex; flex-direction: column; gap: 12px; align-items: center; margin-top: 26px; }
.btn {
  display: inline-block;
  min-width: 220px;
  padding: 14px 26px;
  border: 1px solid var(--maroon);
  color: var(--maroon);
  background: #fff;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .2em;
  font-family: "Cormorant Garamond", serif;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
}
.btn.solid { background: var(--maroon); color: #fff; }
.btn:active { transform: translateY(1px); }

/* ---- countdown ---- */
.countdown { margin-top: 28px; }
.countdown-label {
  font-family: "Cormorant Garamond", serif; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; font-size: 15px; color: var(--olive); margin: 0 0 10px;
}
.countdown-grid { display: flex; justify-content: center; gap: 16px; font-variant-numeric: tabular-nums; }
.countdown-unit { min-width: 54px; }
.countdown-num { font-family: "Playfair Display", serif; font-weight: 700; font-size: 32px; color: var(--maroon); }
.countdown-unit-label { font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--tan); }
.countdown-done { font-family: "Playfair Display", serif; font-style: italic; color: var(--rust); font-size: 24px; margin: 0; }

/* ---- gate / rsvp / bring ---- */
.password-input, .rsvp-form input[type="text"] {
  width: 100%; padding: 14px; font-size: 18px; text-align: center;
  border: 1px solid var(--gold); background: #fff; font-family: "Libre Baskerville", serif;
  border-radius: 0;
}
.gate-form { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; align-items: center; }
.error, .rsvp-error { color: var(--rust); font-size: 14px; margin-top: 14px; }
.back-link { color: var(--rust); text-decoration: none; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; display: inline-block; margin-bottom: 20px; }
.rsvp-intro { font-size: 15px; line-height: 1.6; margin: 10px 0 26px; }
.rsvp-form label { display: block; text-align: left; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--tan); margin-bottom: 6px; }
.stoplight { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }
.stoplight button { padding: 14px; font-family: "Cormorant Garamond", serif; font-weight: 700; font-size: 17px; letter-spacing: .12em; text-transform: uppercase; color: #fff; border: 0; cursor: pointer; }
.stoplight .yes { background: var(--olive-green); }
.stoplight .maybe { background: var(--tan); }
.stoplight .no { background: var(--maroon); }
.rsvp-thanks .big { font-family: "Playfair Display", serif; color: var(--maroon); font-size: 30px; margin: 0 0 8px; }
.gift-list { list-style: none; padding: 0; margin: 24px 0 0; text-align: left; }
.gift-list li { display: flex; gap: 14px; padding: 10px 0; }
.gift-list .icon { font-size: 28px; }
.gift-list .name { font-family: "Playfair Display", serif; font-weight: 700; color: var(--maroon); font-size: 18px; }
.gift-list p { margin: 4px 0 0; font-size: 14px; line-height: 1.5; }
.page-title { font-family: "Playfair Display", serif; color: var(--maroon); font-size: 32px; margin: 0 0 6px; }
[hidden] { display: none !important; }

img { max-width: 100%; }
input, button { max-width: 100%; }
@media (min-width: 481px) { body { background: #f4efe8; } .sheet { box-shadow: 0 0 40px rgba(0,0,0,.08); } }
