*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--wood:#3e2723;--paper:#f5e6d3;--ink:#1a1209;--spine:#8d6e63;--font-serif:'Libre Baskerville',serif;--font:'Noto Sans JP',sans-serif}
body{font-family:var(--font);background:var(--paper);color:var(--ink);line-height:1.75}
img{max-width:100%;display:block;object-fit:cover}
a{color:var(--wood);font-weight:500}
.nook-top{background:var(--wood);color:var(--paper);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}
.nook-top h1{font-family:var(--font-serif);font-size:1.4rem;letter-spacing:.06em}
.nook-top nav{display:flex;gap:1.25rem}
.nook-top nav a{color:var(--paper);text-decoration:none;font-size:.88rem}
.nook-banner{padding:3rem 2rem;text-align:center;background:repeating-linear-gradient(90deg,var(--paper) 0 40px,#ebe0cf 40px 41px)}
.nook-banner h2{font-family:var(--font-serif);font-size:clamp(1.6rem,4vw,2.4rem);margin-bottom:.5rem}
.nook-banner p{font-size:.92rem;max-width:520px;margin:0 auto;color:#4a3f32}
.bookshelf-wrap{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 3rem;background:linear-gradient(180deg,#5d4037 0%,var(--wood) 8%,var(--wood) 92%,#5d4037 100%);border-radius:4px;box-shadow:inset 0 4px 12px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.15)}
.shelf-label{color:var(--paper);font-family:var(--font-serif);font-size:.85rem;padding:0 0 1rem;opacity:.85}
.book-columns{columns:3;column-gap:1.25rem;column-fill:balance}
.book-spine{display:inline-block;width:100%;break-inside:avoid;margin-bottom:1.25rem;background:#fff;border-left:6px solid var(--spine);padding:1rem;border-radius:0 4px 4px 0;box-shadow:2px 2px 6px rgba(0,0,0,.2);transition:transform .2s}
.book-spine:hover{transform:translateX(4px)}
.book-spine img{width:100%;height:120px;border-radius:2px;margin-bottom:.65rem}
.book-spine h3{font-family:var(--font-serif);font-size:.95rem;line-height:1.35;margin-bottom:.25rem}
.book-spine .author{font-size:.78rem;color:#6d5c4a;margin-bottom:.35rem}
.book-spine .price{font-weight:700;color:var(--wood);font-size:1rem}
.book-spine button{margin-top:.6rem;width:100%;background:var(--wood);color:var(--paper);border:none;padding:.55rem;cursor:pointer;font-size:.82rem;border-radius:2px}
.book-spine button:hover{background:#5d4037}
.shelf-divider{height:8px;background:#2c1810;margin:1.5rem 0;border-radius:2px;box-shadow:inset 0 2px 4px rgba(0,0,0,.4)}
.reading-nook{display:grid;grid-template-columns:1.1fr 1fr;gap:2rem;max-width:1000px;margin:2rem auto;padding:0 1.5rem;align-items:start}
.reading-nook img{border-radius:4px;box-shadow:4px 4px 0 var(--spine)}
.reading-nook h2{font-family:var(--font-serif);font-size:1.5rem;margin-bottom:.75rem}
.reading-nook ul{margin:1rem 0 0 1.2rem;font-size:.9rem}
.genre-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.genre-tags span{background:var(--wood);color:var(--paper);font-size:.75rem;padding:.3rem .7rem;border-radius:2px}
.reviews-strip{background:#ebe0cf;padding:2rem 1.5rem;margin-top:1rem}
.reviews-strip h2{font-family:var(--font-serif);text-align:center;margin-bottom:1.25rem;font-size:1.3rem}
.review-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1000px;margin:0 auto}
.review-cards blockquote{background:#fff;padding:1rem;border-radius:4px;font-size:.85rem;border-left:3px solid var(--spine)}
.review-cards cite{display:block;margin-top:.5rem;font-size:.75rem;color:#6d5c4a;font-style:normal}
.legal-nook{padding:2.5rem 1.5rem;background:var(--ink);color:var(--paper);font-size:.88rem}
.legal-nook h3,.legal-nook h4{color:var(--spine);margin:1rem 0 .5rem}
.legal-nook a{color:#d7ccc8}
@media(max-width:900px){.book-columns{columns:2}}
@media(max-width:600px){
  .book-columns{columns:1}
  .reading-nook,.review-cards{grid-template-columns:1fr}
  .nook-top{flex-direction:column;text-align:center}
}
