:root{--bg: #f7f3eb;--surface: #fff;--text: #2c2418;--muted: #7a6e5e;--accent: #8b6914;--accent-bg: #f5ecd6;--green: #4a6741;--border: #e0d5c0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Georgia,Times New Roman,serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}#app{max-width:1100px;margin:0 auto;padding:2rem}.hero{text-align:center;padding:4rem 0 2rem}.hero h1{font-size:3rem;font-weight:400;letter-spacing:.04em;color:var(--accent);margin-bottom:.5rem}.subtitle{font-size:1.1rem;color:var(--muted);font-style:italic;margin-bottom:2.5rem}.search-box{max-width:500px;margin:0 auto 2rem}.search-box input{width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem;border:1px solid var(--border);border-radius:3px;background:var(--surface);color:var(--text);outline:none;transition:border-color .2s}.search-box input:focus{border-color:var(--accent)}.section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:2.5rem 0 1rem;font-weight:400}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;text-align:left}.book-card{display:flex;gap:1rem;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:3px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.book-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #8b69141a}.book-cover{width:56px;height:80px;object-fit:cover;border-radius:2px;flex-shrink:0;background:var(--accent-bg)}.book-meta{display:flex;flex-direction:column;justify-content:center;min-width:0}.book-card .book-title{font-size:1rem;font-weight:700;margin-bottom:.2rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-card .book-author{font-size:.875rem;color:var(--muted);font-style:italic}.bestiary-header{text-align:center;padding:1.5rem 0 2rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.back{display:inline-block;margin-bottom:1rem;color:var(--muted);cursor:pointer;font-size:.875rem;border:none;background:none;font-family:inherit;padding:.25rem .5rem}.back:hover{color:var(--accent)}.header-cover{width:120px;height:170px;object-fit:cover;border-radius:3px;margin:0 auto 1.25rem;display:block;box-shadow:0 4px 12px #0000001f;background:var(--accent-bg)}.bestiary-label{font-size:.85rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);font-weight:400;margin-bottom:.5rem}.bestiary-header .book-title{font-size:2rem;font-style:italic;margin-bottom:.25rem}.bestiary-header .book-author{font-size:1.1rem;color:var(--muted)}.stats{font-size:.9rem;color:var(--accent);margin-top:.75rem}.stats:empty{display:none}.progress{text-align:center;padding:1rem;color:var(--muted);font-style:italic;font-size:.95rem}.progress:empty{display:none}.species-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.species-card{background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:1.5rem;animation:fadeIn .4s ease;transition:box-shadow .2s}.species-card:hover{box-shadow:0 4px 16px #0000000f}.species-name{font-size:1.25rem;margin-bottom:.125rem}.scientific-name{font-style:italic;color:var(--green);font-size:.95rem;margin-bottom:.625rem}.lineage{font-size:.8rem;color:var(--muted);line-height:1.5;margin-bottom:.625rem}.wiki-excerpt{font-size:.9rem;line-height:1.55;margin-bottom:.625rem}.context{font-style:italic;font-size:.85rem;color:var(--muted);border-left:2px solid var(--accent-bg);padding-left:.75rem;margin:.75rem 0;line-height:1.55}.context mark{background:var(--accent-bg);color:var(--text);padding:0 2px;border-radius:2px;font-style:normal}.mention-count{font-size:.8rem;color:var(--accent);font-variant-numeric:tabular-nums}.load-more{display:block;margin:1.5rem auto 0;padding:.6rem 2rem;font-family:inherit;font-size:.9rem;color:var(--accent);background:none;border:1px solid var(--border);border-radius:3px;cursor:pointer;transition:border-color .2s,color .2s}.load-more:hover:not([disabled]){border-color:var(--accent)}.load-more[disabled]{opacity:.5;cursor:default}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){#app{padding:1rem}.hero h1{font-size:2.25rem}.hero{padding:2rem 0 1rem}.bestiary-header .book-title{font-size:1.5rem}.species-grid,.book-grid{grid-template-columns:1fr}}
