:root{--font-headline:"Crimson Pro", Georgia, "Times New Roman", serif;--font-body:"Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--color-bg:#fafaf7;--color-surface:#fff;--color-band:#dde4d4;--color-text:#1f1d1a;--color-text-muted:#5b574f;--color-border:#e5e1d8;--color-accent:#8a4b1b;--color-accent-bg:#f4ead8;--color-chip-active-bg:#1f1d1a;--color-chip-active-text:#fff;--radius:6px;--shadow-sm:0 1px 2px #1f1d1a0f, 0 1px 3px #1f1d1a0a;font-family:var(--font-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-headline);font-weight:600;line-height:1.2}p{margin:0}a{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,input,select,textarea{font-family:inherit;font-size:100%}.app{flex-direction:column;min-height:100vh;display:flex}.app__main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:8px 24px 64px}.site-header{background:var(--color-band);border-bottom:1px solid #c8d2bd}.site-header__inner{text-align:center;flex-direction:column;align-items:center;gap:8px;max-width:1200px;margin:0 auto;padding:28px 24px 26px;display:flex}.site-header__wordmark{font-family:var(--font-headline);letter-spacing:-.01em;color:var(--color-text);font-size:2.2rem;font-weight:700;line-height:1;text-decoration:none}.site-header__wordmark:hover{color:var(--color-accent)}.site-header__tagline{font-family:var(--font-headline);color:var(--color-text-muted);letter-spacing:.01em;margin:0;font-size:1.1rem;font-style:italic;font-weight:400;line-height:1.3}.ornament{color:var(--color-text-muted);font-family:var(--font-headline);justify-content:center;align-items:center;gap:14px;margin:32px 0 24px;display:flex}.ornament:before,.ornament:after{content:"";background:var(--color-border);flex:1;max-width:120px;height:1px}.ornament__glyph{letter-spacing:.4em;padding-left:.4em;font-size:1.1rem}.tool-intro{text-align:center;flex-direction:column;align-items:center;gap:10px;margin:8px 0 36px;display:flex}.tool-intro__title{font-family:var(--font-headline);letter-spacing:-.01em;margin:0;font-size:2.8rem;font-weight:600;line-height:1.05}.tool-intro__lede{color:var(--color-text-muted);font-family:var(--font-headline);max-width:56ch;margin:0;font-size:1.15rem;font-style:italic;font-weight:400;line-height:1.5}.filters{background:var(--color-band);border-radius:var(--radius);border:1px solid #c8d2bd;flex-direction:column;gap:14px;max-width:1100px;margin:0 auto 32px;padding:22px 22px 18px;display:flex}.filters__row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:16px;display:grid}.filter{flex-direction:column;gap:6px;min-width:0;display:flex}.filter__label{font-family:var(--font-body);color:var(--color-text);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:700}.filter__control{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;height:42px;color:var(--color-text);padding:0 12px;font-family:inherit;font-size:1rem}select.filter__control{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%231f1d1a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M1 1.5l5 5 5-5'/></svg>");background-position:right 12px center;background-repeat:no-repeat;background-size:12px 8px;padding-right:36px}.filter__control:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.band-chips{border:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0;padding:0;display:flex}.band-chips__legend{font-family:var(--font-body);color:var(--color-text);text-transform:uppercase;letter-spacing:.08em;margin-right:4px;font-size:.75rem;font-weight:700}.band-chips__list{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.chip{font-family:var(--font-body);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.9rem;transition:background .12s,border-color .12s,color .12s}.chip:hover{border-color:var(--color-text)}.chip--active{background:var(--color-chip-active-bg);color:var(--color-chip-active-text);border-color:var(--color-chip-active-bg)}.chip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.filters__footer{justify-content:flex-end;min-height:18px;margin-top:2px;display:flex}.filters__clear{font-family:var(--font-body);color:var(--color-accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.filters__clear:hover{text-decoration-thickness:2px}.results__summary{text-align:center;font-family:var(--font-headline);color:var(--color-text-muted);margin:0 0 24px;font-size:1rem;font-style:italic}.book-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:28px 24px;display:grid}.book-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;transition:transform .12s,box-shadow .12s;display:flex;overflow:hidden}.book-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #1f1d1a14}.book-card__cover{aspect-ratio:3/4;background:var(--color-accent-bg);justify-content:center;align-items:center;display:flex;overflow:hidden}.book-card__cover img{object-fit:cover;width:100%;height:100%}.book-card__cover-fallback{color:var(--color-accent);text-align:center;font-family:var(--font-headline);-webkit-line-clamp:4;-webkit-box-orient:vertical;padding:16px;font-size:1rem;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.book-card__body{flex-direction:column;flex:1;gap:6px;padding:14px 14px 16px;display:flex}.book-card__title{font-family:var(--font-headline);margin:0;font-size:1.1rem;font-weight:600;line-height:1.25}.book-card__author{color:var(--color-text-muted);margin:0;font-size:.9rem}.book-card__meta{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:8px;display:flex}.book-card__region,.book-card__ages{font-family:var(--font-body);background:var(--color-accent-bg);color:var(--color-accent);letter-spacing:.02em;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:600}.book-card__ages{background:var(--color-border);color:var(--color-text-muted)}.site-footer{background:var(--color-band);border-top:1px solid #c8d2bd;margin-top:48px}.site-footer__inner{text-align:center;max-width:1200px;color:var(--color-text);flex-direction:column;align-items:center;gap:14px;margin:0 auto;padding:40px 24px 32px;display:flex}.site-footer__wordmark{font-family:var(--font-headline);letter-spacing:-.01em;color:var(--color-text);font-size:1.4rem;font-weight:700;line-height:1;text-decoration:none}.site-footer__wordmark:hover{color:var(--color-accent)}.site-footer__lede{max-width:52ch;font-family:var(--font-headline);color:var(--color-text-muted);margin:0;font-size:1rem;font-style:italic;line-height:1.5}.site-footer__nav{font-family:var(--font-body);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;margin-top:4px;font-size:.92rem;display:flex}.site-footer__nav a{color:var(--color-text);border-bottom:1px solid #0000;padding-bottom:1px;text-decoration:none;transition:border-color .12s,color .12s}.site-footer__nav a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.site-footer__nav-sep{color:var(--color-text-muted);-webkit-user-select:none;user-select:none}.site-footer__copyright{color:var(--color-text-muted);letter-spacing:.02em;margin:6px 0 0;font-size:.82rem}@media (width<=720px){.filters__row{grid-template-columns:1fr;gap:12px}.band-chips,.band-chips__list{justify-content:flex-start}}@media (width<=600px){.app__main{padding:4px 16px 48px}.site-header__inner{padding:22px 16px 20px}.site-header__wordmark{font-size:1.85rem}.site-header__tagline{font-size:1rem}.tool-intro__title{font-size:2.2rem}.tool-intro__lede{font-size:1.05rem}.ornament{margin:24px 0 18px}.ornament:before,.ornament:after{max-width:60px}.filters{padding:16px 16px 14px}.book-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px 14px}.site-footer__inner{padding:32px 16px 24px}}
