:root { --bg:#fbf6ef; --panel:#fffdfa; --text:#3f3328; --muted:#8a7a68; --accent:#b07a4f; --accent-2:#d4a373; --line:#ece0d2; }
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:"Georgia","Times New Roman",serif; background:var(--bg); color:var(--text); line-height:1.7; }
.hero { text-align:center; padding:90px 6vw 70px; background:linear-gradient(160deg,#f3e8da,var(--bg) 55%); border-bottom:1px solid var(--line); }
.names { font-size:clamp(2.4rem,7vw,4.2rem); letter-spacing:.06em; color:var(--accent); }
.date { font-size:1.15em; letter-spacing:.14em; text-transform:uppercase; margin-top:16px; }
.place { color:var(--muted); font-style:italic; margin-top:6px; }
.message { text-align:center; max-width:600px; margin:0 auto; padding:56px 20px 30px; }
.hearts { color:var(--accent-2); letter-spacing:.6em; margin-bottom:14px; }
.message h2 { font-size:1.5em; margin-bottom:14px; }
.message p { color:var(--muted); font-size:1.02em; }
.details { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:760px; margin:0 auto; padding:30px 20px 44px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:24px 18px; text-align:center; }
.card .emoji { font-size:2rem; }
.card h3 { color:var(--accent); font-size:1.05em; margin:8px 0 4px; letter-spacing:.04em; }
.card p { color:var(--muted); font-size:.9em; }
.rsvp { max-width:520px; margin:0 auto; padding:30px 20px 54px; text-align:center; }
.rsvp h2 { font-size:1.3em; margin-bottom:18px; }
.rsvp form { display:grid; gap:12px; text-align:left; }
.rsvp input, .rsvp select, .rsvp textarea { padding:12px 14px; border-radius:10px; border:1px solid var(--line); font-family:inherit; font-size:.95em; background:var(--panel); }
.rsvp input:focus, .rsvp textarea:focus, .rsvp select:focus { outline:2px solid rgba(176,122,79,.35); }
.btn { padding:13px 30px; border:none; border-radius:999px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; font-family:inherit; font-size:1em; font-weight:700; cursor:pointer; letter-spacing:.03em; }
.btn:hover { filter:brightness(1.06); }
.muted { color:var(--muted); font-size:.9em; margin-top:14px; }
footer { text-align:center; padding:24px; color:var(--accent); border-top:1px solid var(--line); font-size:1.05em; }
@media (max-width:640px) { .details { grid-template-columns:1fr; } }
