:root{--paper:#f7f3ea;--card:#fffdf8;--ink:#2b2a26;--muted:#77715f;--line:#e6dfcf;--green:#1f4d3a;--green-soft:#e3ece5;--gold:#b88a2c;--danger:#9b3b2e;--serif:"Lora", Georgia, serif;--sans:"Source Sans 3", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font:17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;margin:0}h1,h2{font-family:var(--serif);margin:0;font-weight:600;line-height:1.2}h2{margin-bottom:.75rem;font-size:1.3rem}a{color:var(--green)}input,select,button{font:inherit}input,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:.6rem .75rem}input:focus,select:focus{outline:2px solid var(--green);outline-offset:1px}button{cursor:pointer;border-radius:8px}button:disabled{opacity:.5;cursor:default}.primary{background:var(--green);color:#fff;border:0;padding:.7rem 1.1rem;font-weight:600}.ghost{color:var(--green);border:1px solid var(--green);white-space:nowrap;background:0 0;padding:.55rem 1rem}.link{color:var(--green);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.link.danger{color:var(--danger)}.shell{max-width:720px;margin:0 auto;padding:1.5rem 16px 4rem}.masthead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:1rem;padding-bottom:1rem;display:flex}.brand{color:var(--ink);flex-direction:column;text-decoration:none;display:flex}.brand-small{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.75rem}.brand-name{font-family:var(--serif);color:var(--green);font-size:1.6rem;font-weight:600}.who{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.tag{background:var(--green-soft);color:var(--green);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.tabs{gap:1.5rem;margin:.75rem 0 2rem;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;padding:.4rem 0;text-decoration:none}.tabs a[aria-current=page]{color:var(--green);border-bottom-color:var(--green);font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:1.5rem;padding:1.25rem}.stack{flex-direction:column;gap:.75rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.row input{flex:1;min-width:10rem}.grid2{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.muted{color:var(--muted)}.small{font-size:.875rem}.error{color:var(--danger);background:#f8e6e2;border-radius:8px;padding:.6rem .9rem}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem;font-size:.75rem;display:block}.page-title{font-size:2rem}.intro{margin:.25rem 0 1.5rem}.login{text-align:center;max-width:420px;margin:0 auto;padding:18vh 16px 4rem}.login-title{color:var(--green);margin-bottom:2rem;font-size:2.4rem}.login .card{text-align:left}.mail{border:1px dashed var(--line);background:#fff;border-radius:8px;padding:1rem}.cover{object-fit:cover;background:var(--green-soft);border-radius:3px 6px 6px 3px;flex-shrink:0;display:block;box-shadow:0 1px 2px #00000026,0 8px 18px -8px #00000059}.cover-s{width:56px;height:84px}.cover-m{width:84px;height:126px}.cover-l{width:140px;height:210px}.cover-blank{background:var(--green);color:#f7f3ea;font-family:var(--serif);flex-direction:column;justify-content:space-between;padding:.6rem;font-size:.8rem;line-height:1.2;display:flex}.cover-l.cover-blank{font-size:1.05rem}.hero{margin-bottom:2rem}.hero-body{align-items:flex-start;gap:1.5rem;margin-bottom:1rem;display:flex}.book-title{margin:0;font-size:1.35rem}.hero .book-title{font-size:2rem}.author{font-family:var(--serif);color:var(--muted);margin:0;font-style:italic}.facts{gap:.15rem;margin:.5rem 0 0;display:grid}.facts dt{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.6rem;font-size:.75rem}.facts dd{margin:0}.facts dd:first-letter{text-transform:uppercase}.rsvp{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem;display:grid}.choice{border:1px solid var(--line);color:var(--ink);background:#fff;padding:.7rem .4rem}.choice.chosen{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}.attendance{margin:.5rem 0 0}.attendance .eyebrow{margin-bottom:.1rem}.bring{margin:0 0 1rem;padding:0;list-style:none}.bring li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.bring label{cursor:pointer;align-items:center;gap:.6rem;display:flex}.bring input{width:1.2rem;height:1.2rem;accent-color:var(--green)}.bring li.taken span:first-of-type{color:var(--muted);text-decoration:line-through}.field{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.shelf-head{gap:1.25rem;margin-bottom:1rem;display:flex}.shelf-head p{margin:.15rem 0}.stars{color:var(--gold);letter-spacing:.05em}.stars-off{color:var(--line)}.average strong{font-family:var(--serif);font-size:1.2rem}.reviews{margin:0 0 1rem;padding:0;list-style:none}.reviews li{border-top:1px solid var(--line);padding:.45rem 0}.reviewer{font-weight:600}.reviews q{font-family:var(--serif);color:var(--ink);font-style:italic;display:block}.my-review{background:var(--paper);border-radius:8px;padding:.9rem}.star-picker{gap:.15rem;margin-bottom:.5rem;display:flex}.star-picker button{color:var(--line);background:0 0;border:0;padding:.1rem;font-size:1.8rem;line-height:1}.star-picker button.on{color:var(--gold)}.proposals{margin:0;padding:0;list-style:none}.proposal{align-items:flex-start;gap:1rem;display:flex}.proposal.next{border-color:var(--green);box-shadow:inset 4px 0 0 var(--green)}.proposal-body{flex:1}.proposal-body .tag{margin-bottom:.3rem}.proposal-body .row{margin-top:.4rem}.thumb{border:1px solid var(--line);min-width:3.5rem;color:var(--ink);background:#fff;flex-direction:column;align-items:center;padding:.5rem;font-weight:600;display:flex}.thumb.voted{background:var(--green-soft);border-color:var(--green);color:var(--green)}@media (width<=520px){body{font-size:16px}.hero-body{text-align:center;flex-direction:column;align-items:center}.facts{text-align:center}.hero .book-title{font-size:1.7rem}.cover-m{width:68px;height:102px}.grid2,.rsvp{grid-template-columns:1fr}.masthead{align-items:flex-start}}
