:root{--green: #46583f;--green-deep: #36452f;--green-tint: #eef1ea;--cream: #f7f5f0;--card: #fffdf8;--border: #ded7c9;--text: #2c3327;--muted: #6b6f63;--terra: #b1452f}html,body{margin:0;padding:0}body{background:var(--cream);color:var(--text);font-family:Raleway,system-ui,sans-serif;line-height:1.6}.wrap{max-width:600px;margin:0 auto;padding:3.5rem 1.25rem 5rem}h1{font-family:Yesteryear,cursive;font-weight:400;font-size:clamp(3rem,9vw,4.5rem);color:var(--green);text-align:center;margin:0 0 2rem}input,textarea,select{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.7rem .85rem;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:#a8a597}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #46583f26}input[type=radio],input[type=checkbox]{accent-color:var(--green)}button{font:inherit;font-weight:600;letter-spacing:.02em;background:var(--green);color:#fff;border:none;border-radius:999px;padding:.75rem 1.6rem;cursor:pointer;transition:background .15s}button:hover{background:var(--green-deep)}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.msg{color:var(--terra);min-height:1.2em;margin:.5rem 0 0}.lead{color:var(--muted);margin:0 0 1.25rem}.back{display:inline-block;background:none;color:var(--green);font-weight:500;font-size:.95rem;padding:0;border-radius:0;text-decoration:none;cursor:pointer}.back:hover{background:none;color:var(--green-deep);text-decoration:underline}.search{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:2.5rem 1.5rem}.search input{width:100%;max-width:320px;text-align:center}.search button{margin-top:1rem}.search .back{margin-top:1.5rem}#matches{margin:1.5rem 0}#matches ul{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.6rem}.match{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;text-align:left;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.1rem;cursor:pointer;font-weight:600;transition:border-color .15s,background .15s}.match:hover{border-color:var(--green);background:var(--green-tint)}.match span{font-size:.9rem;font-weight:400;color:var(--muted)}.form-top{margin:0 0 1.5rem}#party-name{font-weight:700;font-size:1.6rem;margin:.75rem 0 1.25rem}.guest{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.25rem;margin:1rem 0}.guest>strong{font-size:1.1rem}.events{margin:.75rem 0 .25rem}.event{display:flex;align-items:center;gap:1rem;padding:.5rem 0;flex-wrap:wrap;border-top:1px solid var(--green-tint)}.event:first-child{border-top:none}.event>span{flex:1 1 8rem}.event label{display:inline-flex;align-items:center;gap:.35rem}.diet{width:100%;margin-top:.75rem}.kids{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.25rem;margin:1.5rem 0}.kids legend{font-weight:600;padding:0 .4rem}.banner{background:var(--green-tint);border:1px solid #d8e0d2;border-left:4px solid var(--green);border-radius:10px;padding:.85rem 1.1rem;margin:.85rem 0;color:var(--text)}.kids .field{display:block;margin:.85rem 0 .25rem}.kids .field input,.kids .field textarea{width:100%;margin-top:.3rem}.kids .field-label{margin:.85rem 0 .25rem}.email-field{display:block;margin:1.5rem 0;font-weight:600}.email-field .hint{display:block;font-weight:400;font-size:.9rem;color:var(--muted);margin:.2rem 0 .4rem}.email-field input{width:100%}#rsvp-form>button[type=submit]{width:100%;margin-top:.5rem;padding:.85rem}#done{text-align:center;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:2.5rem 1.5rem}#done h2{font-family:Yesteryear,cursive;font-weight:400;font-size:2.6rem;color:var(--green);margin:0 0 .5rem}.home-btn{display:inline-block;margin-top:1.25rem;background:var(--green);color:#fff;text-decoration:none;font-weight:600;padding:.75rem 1.6rem;border-radius:999px}.home-btn:hover{background:var(--green-deep)}
