:root{--bg:#f5f2eb;--paper:#fffefa;--ink:#203b31;--muted:#66716a;--line:#dce0d6;--green:#244d3b;--red:#8c3b37;--gold:#ac8140;--soft:#eaf0e8}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:16px/1.55 'Segoe UI',Arial,sans-serif}a{color:var(--green);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;background:var(--green);color:#fff;border:1px solid var(--green);border-radius:7px;padding:11px 20px;text-decoration:none;font-weight:600;cursor:pointer;line-height:1.35}button:hover,.button:hover{filter:brightness(1.12)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary,.button.secondary{background:transparent;color:var(--ink);border-color:#aebcb1}.danger{background:var(--red);border-color:var(--red)}.full{width:100%;margin-top:22px}input,select,textarea{display:block;width:100%;border:1px solid #b8c3b9;border-radius:6px;background:#fff;color:var(--ink);padding:11px 12px;margin:7px 0 0;min-height:46px}textarea{resize:vertical;line-height:1.5}label{display:block;font-size:.9rem;font-weight:600;margin:14px 0}input:focus-visible,button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.top{display:flex;align-items:center;gap:36px;min-height:96px;padding:20px 4vw;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;gap:13px;align-items:center;line-height:1.15;text-decoration:none;letter-spacing:.13em;font-weight:750;font-size:21px;flex-shrink:0}.brand-symbol{font-size:42px;color:var(--gold);font-weight:400}.brand small{display:block;font-size:11px;letter-spacing:.05em;font-weight:400;margin-top:7px;color:var(--muted)}nav{display:flex;gap:27px;flex:1;flex-wrap:wrap}nav a{text-decoration:none;font-size:14px}.top form{margin-left:auto}.link-button{background:none;border:0;padding:6px;min-height:40px;color:var(--muted);font-size:14px}.top-note{margin-left:auto;color:var(--muted);font-size:14px}.container{max-width:1300px;padding:38px 30px 60px;margin:auto}.guest-container{max-width:850px;margin:auto;padding:38px 24px 60px}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:28px;margin:0 0 24px}.narrow{max-width:510px;margin:0 auto 32px}.page-heading{display:flex;gap:24px;justify-content:space-between;align-items:center;margin:6px 0 30px}.page-heading p{margin:8px 0;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(32px,3.7vw,48px);line-height:1.13;letter-spacing:-.035em;font-weight:400;margin-bottom:15px}h1 em{font-weight:400;color:var(--red)}h2{font-size:22px;line-height:1.3;font-weight:600;margin-bottom:15px}h3{font-size:18px}h2 small{color:var(--muted);font-size:14px;background:var(--soft);padding:4px 9px;border-radius:20px;margin-left:7px;font-weight:400}.eyebrow{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.16em;color:var(--gold);margin-bottom:17px}.intro{padding:35px 0 28px}.intro h1{font-size:64px}.compact h1{font-size:42px}.center{text-align:center}.muted,.quiet{color:var(--muted)}.small,small{font-size:13px}.notice{border-radius:8px;background:#f3ead7;border:1px solid #e5d6b7;padding:18px 21px;margin-bottom:24px;color:#5a482d}.notice p:last-child{margin-bottom:0}.notice.success{background:#e8f1e6;border-color:#ccddc7;color:#284a2d}.notice.error{background:#f9eae5;border-color:#e5bdb1;color:#78382a}.local-banner{display:flex;gap:18px;font-size:14px}.local-banner strong{white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:32px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:19px 22px;text-decoration:none;display:flex;flex-direction:column;gap:8px}.stat span{font-size:13px;color:var(--muted)}.stat strong{font:38px/1.1 Georgia,serif}.stat.yes{background:var(--green);color:#fff;border-color:var(--green)}.stat.yes span{color:#e5ebdf}.stats.three{grid-template-columns:repeat(3,1fr)}.section-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.section-bar h2{margin:0}.badge,.pill{display:inline-block;font-size:12px;border-radius:30px;background:#edf0e7;padding:5px 11px;white-space:nowrap}.badge{color:#53664e;border:1px solid #dce2d4}.pill.yes,.pill.sent{background:#e5efdf;color:#31552c}.pill.no{background:#f4e7e1;color:#8c4232}.pill.open,.pill.not_sent{background:#f3eee2;color:#79643f}.pill.prepared{background:#e8edf2;color:#4e6070}.table-card{padding:0;overflow:hidden}.filters{display:flex;align-items:flex-end;gap:18px;padding:22px 26px;background:#fcfbf7;border-bottom:1px solid var(--line)}.filters label{margin:0}.filters .search{flex:1}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th{color:var(--muted);font-weight:500;font-size:12px;background:#faf9f4}td,th{padding:16px 24px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}td small{display:block;color:var(--muted);margin-top:5px;font-size:12px}.person-name{font-weight:600;text-decoration:none}.number{text-align:right}.empty{padding:35px;text-align:center;color:var(--muted)}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.fields{display:grid;grid-template-columns:1fr 2fr 1fr 1fr;gap:18px}.fields.two{grid-template-columns:repeat(2,1fr)}.fields label{margin:0 0 16px}.back{display:inline-block;margin-bottom:20px;text-decoration:none;font-size:14px}.details{display:grid;grid-template-columns:220px 1fr;gap:12px}.details dt{color:var(--muted);font-size:14px}.details dd{margin:0;overflow-wrap:anywhere}.mono{font:13px/1.6 Consolas,monospace}.split{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:24px}.check{display:flex;align-items:flex-start;gap:10px;font-weight:400}.check input{width:19px;height:19px;min-height:0;margin:3px 0 0;flex-shrink:0;accent-color:var(--green)}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.export-card h2{font-size:19px}.export-card p{font-size:14px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 Consolas,monospace;background:var(--soft);padding:18px;border-radius:7px}.dish summary{cursor:pointer;display:flex;justify-content:space-between;gap:15px;align-items:center}.dish summary:before{content:'+';color:var(--gold)}.dish[open] summary{margin-bottom:25px}.dish[open] summary:before{content:'−'}.dish-form button{margin-left:auto}.release{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.allergy{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.allergy span{display:block;color:var(--muted);font-size:13px}.allergy p{margin:9px 0 0}.pre-wrap{white-space:pre-wrap;overflow-wrap:anywhere}.event-hero{position:relative;background:var(--green);color:#fffbea;border-radius:14px;padding:45px 48px 28px;margin-bottom:24px;overflow:hidden}.event-hero .eyebrow{color:#d7c393}.event-hero h1{font-size:clamp(48px,7vw,76px);line-height:1.02;margin-bottom:35px}.event-hero h1 em{color:#d8bd8f;font-size:1.2em}.ornament{position:absolute;right:35px;top:20px;font-size:190px;line-height:1;color:#45654d}.event-details{display:grid;grid-template-columns:1.5fr 1fr;border-top:1px solid #56715e;padding-top:23px;position:relative}.event-details span{display:block;color:#c3ceb9;font-size:11px;text-transform:uppercase;letter-spacing:.13em;margin-bottom:8px}.event-details p{font-size:15px}.hero-note{font-size:12px;color:#c3ceb9;border-top:1px solid #56715e;padding-top:15px;margin-bottom:0}.response-card h2{font-family:Georgia,serif;font-size:34px;font-weight:400}.status-box{padding:17px 20px;border-radius:7px;background:var(--soft);margin:22px 0}.status-box strong,.status-box span{display:block}.status-box.no{background:#f7ebe6}.status-box span{font-size:14px;color:var(--muted);margin-top:3px}.rsvp-buttons{display:grid;grid-template-columns:1fr;gap:12px;margin-top:22px}.rsvp-buttons button{min-height:56px;font-size:17px}.rsvp-buttons button[aria-pressed=true]{box-shadow:0 0 0 2px var(--gold);border-color:var(--gold)}.rsvp-buttons+p{margin:20px 0 0}.menu-choices{border:0;border-top:1px solid var(--line);padding:22px 0 5px;margin:28px 0 0;min-width:0}.menu-choices legend{font-size:20px;font-weight:600;padding:0 14px 0 0}.menu-choices legend small{font-weight:400;color:var(--muted)}.choice{display:flex;gap:14px;border:1px solid var(--line);border-radius:8px;padding:15px 18px;cursor:pointer;font-size:15px;font-weight:400;margin:10px 0}.choice:has(input:checked){background:var(--soft);border-color:#597653}.choice input{width:20px;height:20px;min-height:0;margin:3px 0 0;flex-shrink:0;accent-color:var(--green)}.choice small{display:block;font-size:13px;font-weight:400;color:var(--muted);margin-top:4px}.privacy{font-size:12px;color:var(--muted);max-width:670px;margin:28px auto}.guest .card{padding:32px 38px}footer{display:flex;justify-content:space-between;gap:15px;max-width:1300px;margin:auto;padding:25px 30px;color:var(--muted);font-size:11px;border-top:1px solid var(--line)}.skip{position:fixed;left:10px;top:-100px;z-index:99;background:#fff;padding:10px}.skip:focus{top:10px}.error-page{margin-top:45px}
@media(max-width:1000px){.top{gap:22px;flex-wrap:wrap}nav{order:3;flex-basis:100%;gap:22px}.top form{margin-left:auto}.page-heading{align-items:flex-start;flex-direction:column}.stat{padding:17px}.stat span{min-height:40px}.fields{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.top{padding:17px 20px;gap:12px;min-height:75px}.brand{font-size:18px}.brand-symbol{font-size:34px}.top-note{display:none}nav{gap:12px 20px}nav a{font-size:13px}.container{padding:27px 16px 35px}.guest-container{padding:18px 14px 35px}h1{font-size:34px}.card{padding:22px 20px;margin-bottom:18px}.guest .card{padding:25px 23px}.page-heading{margin-bottom:22px;gap:15px}.page-heading .actions{width:100%}.page-heading .button{font-size:13px;padding:10px 13px}.stats{grid-template-columns:repeat(2,1fr);gap:9px}.stats.three{grid-template-columns:repeat(3,1fr)}.stat{padding:15px}.stat strong{font-size:31px}.stat span{font-size:12px;min-height:37px}.local-banner{flex-direction:column;gap:7px}.filters{flex-direction:column;align-items:stretch;padding:18px}.fields,.fields.two,.split{grid-template-columns:1fr}.details{grid-template-columns:1fr;gap:3px}.details dd{margin-bottom:12px}.event-hero{padding:33px 26px 22px;border-radius:10px}.event-hero h1{font-size:51px;margin-bottom:32px}.ornament{font-size:106px;right:15px;top:20px}.event-details{grid-template-columns:1fr;gap:4px}.event-details p{margin-bottom:15px;font-size:14px}.hero-note{font-size:11px}.intro h1{font-size:48px}.intro.compact h1{font-size:35px}.rsvp-buttons button{font-size:15px}.actions{gap:10px}.actions button,.actions .button{font-size:14px}.dish summary{font-size:14px}.dish-form button{margin-left:0}.release button{width:100%}footer{padding:20px;flex-direction:column;font-size:10px}.section-bar{gap:12px}.section-bar h2{font-size:20px}td,th{padding:14px 18px}.table-card{padding:0}}
@media(max-width:650px){.event-hero h1{font-size:clamp(28px,9.4vw,42px);position:relative;z-index:1}.ornament{opacity:.45}.event-hero{overflow-wrap:break-word}}
@media print{body{background:#fff;color:#000}.top,footer,.no-print,.skip{display:none!important}.container{padding:0;max-width:none}.page-heading h1{font-size:30px}.card{border:0;padding:12px 0;break-inside:avoid}.stat{border:1px solid #bbb;padding:10px}.stats{gap:10px;margin-bottom:10px}.allergy{break-inside:avoid}thead{display:table-header-group}tr{break-inside:avoid}.notice{background:#fff;border-color:#aaa}}
