:root{--ink:#1f1d1a;--muted:#6b6559;--rule:#ddd8cf;--paper:#fbfaf7;--accent:#6b6559;--measure:34rem}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--ink);-webkit-text-size-adjust:100%;margin:0;font-family:Georgia,Times New Roman,serif;line-height:1.6}.wrap{max-width:var(--measure);margin:0 auto;padding:2rem 1.25rem 4rem}header.site{border-bottom:1px solid var(--rule);text-align:center;padding:1.5rem 1rem 1rem}header.site .names{letter-spacing:.14em;text-transform:uppercase;color:var(--ink);font-size:1.25rem;text-decoration:none}nav.site{flex-wrap:wrap;justify-content:center;gap:.4rem 1.1rem;margin-top:.9rem;display:flex}nav.site a{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #0000;padding:.25rem 0;font-size:.82rem;text-decoration:none}nav.site a:hover,nav.site a:focus-visible,nav.site a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}h1{letter-spacing:.04em;margin:0 0 .5rem;font-size:2rem;font-weight:400}h2{letter-spacing:.08em;text-transform:uppercase;margin:2.5rem 0 .75rem;font-size:1.15rem;font-weight:400}h3{margin:1.5rem 0 .25rem;font-size:1rem}a{color:var(--ink)}.lede{text-align:center}.lede .big{margin:1rem 0 .25rem;font-size:1.4rem;display:block}dl.facts{margin:0}dl.facts dt{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:1.1rem;font-size:.78rem}dl.facts dd{margin:.15rem 0 0}ol.timeline{margin:0;padding:0;list-style:none}ol.timeline li{border-bottom:1px solid var(--rule);grid-template-columns:6.5rem 1fr;gap:.75rem;padding:.6rem 0;display:grid}ol.timeline .t{color:var(--muted);font-variant-numeric:tabular-nums}ol.timeline .d{color:var(--muted);font-size:.9rem}.faq{border-bottom:1px solid var(--rule);padding:.9rem 0}.faq p{margin:.3rem 0 0}.tbd{background:#fff3c4;border-bottom:1px dashed #b58900;padding:0 .25rem;font-style:italic}.empty{color:var(--muted);font-style:italic}footer.site{border-top:1px solid var(--rule);text-align:center;color:var(--muted);padding:1.5rem 1rem;font-size:.8rem}.countdown{color:var(--muted);letter-spacing:.06em;font-size:.9rem}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.field{margin:1.25rem 0}.field label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;font-size:.78rem;display:block}input[type=text],textarea{border:1px solid var(--rule);width:100%;color:var(--ink);font-size:16px;font:inherit;background:#fff;border-radius:2px;padding:.7rem .75rem;font-size:1rem}input[type=text]:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px}textarea{resize:vertical;min-height:5rem}#code-input{text-transform:uppercase;letter-spacing:.35em;text-align:center;font-size:1.3rem}button{font:inherit;border:1px solid var(--ink);background:var(--ink);min-height:44px;color:var(--paper);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;border-radius:2px;padding:.7rem 1.4rem;font-size:.82rem}button:hover:not(:disabled){color:var(--ink);background:0 0}button:disabled{opacity:.5;cursor:progress}button.secondary{color:var(--muted);border-color:var(--rule);background:0 0}.guest-card{border:1px solid var(--rule);margin:1rem 0;padding:1rem 1.1rem}.guest-card h3{margin:0 0 .6rem;font-size:1.05rem}.choices{gap:.5rem;display:flex}.choices label{text-align:center;border:1px solid var(--rule);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;min-height:44px;color:var(--muted);border-radius:2px;flex:1;justify-content:center;align-items:center;margin:0;padding:.55rem;font-size:.82rem;display:flex}.choices input{opacity:0;pointer-events:none;position:absolute}.choices label:has(input:checked){background:var(--ink);color:var(--paper);border-color:var(--ink)}.choices label:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}.error{background:#fdecea;border:1px solid #e6a8a2;margin:1rem 0;padding:.7rem .85rem;font-size:.92rem}.hint{color:var(--muted);margin-top:.35rem;font-size:.86rem}.hidden{display:none}@media (width<=24rem){.choices{flex-direction:column}}@media (width<=30rem){#rsvp-form button,#code-form button,#done button{width:100%;margin-top:.5rem}.wrap{padding-left:1rem;padding-right:1rem}}.loading{color:var(--muted);font-style:italic}.admin{max-width:72rem}.admin h2{margin-top:2.5rem}ul.tallies{flex-wrap:wrap;gap:1.5rem;margin:1.5rem 0;padding:0;list-style:none;display:flex}ul.tallies li{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.82rem}ul.tallies strong{color:var(--ink);letter-spacing:0;font-size:1.9rem;display:block}.toolbar{flex-wrap:wrap;gap:.6rem;margin-bottom:.75rem;display:flex}.toolbar input{flex:16rem}.toolbar select{font:inherit;border:1px solid var(--rule);background:#fff;border-radius:2px;padding:.7rem .5rem;font-size:16px}.table-scroll{border:1px solid var(--rule);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:.55rem .7rem}th{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);background:#f3f0ea;font-size:.72rem;position:sticky;top:0}tbody tr:hover{background:#f7f5f0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.pill{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:.72rem;display:inline-block}.pill-attending{color:#245b2c;background:#e3f0e4}.pill-declined{color:#7a3b39;background:#f2e6e6}.pill-no-reply{color:var(--muted);background:#efece6}pre.sample{border:1px solid var(--rule);background:#f3f0ea;padding:.8rem;font-size:.82rem;overflow-x:auto}.error.ok{white-space:pre-line;background:#e3f0e4;border-color:#a8cbaf}.error{white-space:pre-line}input[type=file]{margin-top:.6rem;font-size:.88rem}
