:root{--ink:#17231f;--paper:#f6f2e8;--green:#174f43;--mint:#d8e7df;--gold:#d39a44;--white:#fff;--muted:#68736e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,sans-serif}header,main,footer{width:min(1120px,calc(100% - 32px));margin:auto}header{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{font:700 24px Georgia,serif;color:var(--ink);text-decoration:none}.badge{background:var(--mint);padding:6px 10px;border-radius:999px;font-size:13px}.hero{padding:58px 0 38px;max-width:780px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--green);font-weight:700;font-size:12px}h1{font:700 clamp(42px,7vw,76px)/.98 Georgia,serif;margin:.25em 0}h2,h3{font-family:Georgia,serif}.hero>p:not(.eyebrow){font-size:19px;color:var(--muted);max-width:650px}.mode{display:inline-flex;gap:10px;align-items:center;font-weight:700}.members{display:grid;grid-template-columns:1fr 1fr;gap:20px}.card,#output{background:rgba(255,255,255,.72);border:1px solid #d9d4c7;border-radius:20px;padding:24px}.card h2{margin:0;font-size:28px}.search{display:grid;grid-template-columns:110px 1fr auto;gap:8px}input,select,button{min-height:44px;border:1px solid #aab2ad;border-radius:9px;padding:8px 11px;font:inherit;background:white}button{cursor:pointer;font-weight:700}.primary{background:var(--green);color:white;border:0;padding:12px 22px}.action{display:flex;gap:16px;align-items:center;margin:22px 0}.results button{display:block;width:100%;text-align:left;margin:8px 0}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{background:var(--mint);border:0;border-radius:999px}.books{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.book{background:white;border-left:5px solid var(--gold);padding:16px;border-radius:8px}.book h3{margin:0}.meta{color:var(--muted);font-size:14px}footer{padding:36px 0;color:var(--muted);font-size:13px}@media(max-width:700px){.members,.books{grid-template-columns:1fr}.search{grid-template-columns:1fr}.hero{padding-top:28px}header,main,footer{width:min(100% - 20px,1120px)}}
