.book-shell{background:#fffdf7;border:1px solid #d9cfe3;border-radius:24px;padding:clamp(1rem,3vw,2rem);margin:1rem 0 2rem}.book-page{display:grid;grid-template-columns:1.25fr 1fr;gap:2rem;align-items:center}.book-page img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:18px}.book-page h2{font:700 clamp(1.8rem,4vw,2.7rem)/1.15 Georgia,serif}.book-page .book-text{font-size:clamp(1.15rem,2.5vw,1.5rem);line-height:1.7}.book-page .prompt{border-top:2px solid #edbf5b;padding-top:1rem}.book-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}.page-dots{display:flex;gap:.5rem;flex-wrap:wrap}.page-dots button{background:white;color:#412465;min-width:48px}.page-dots button[aria-pressed=true]{background:#412465;color:white}.reading{background:#ffe093;box-shadow:0 0 0 4px #ffe093;border-radius:3px}.audio-controls audio{display:block;width:min(100%,620px);margin:.75rem 0}.audio-controls details{margin-top:.75rem}.audio-controls summary{cursor:pointer;font-weight:700}.matching-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;max-width:780px}.match-card{aspect-ratio:3/2;padding:0;overflow:hidden;display:grid;place-items:center;width:100%;border:3px solid #412465}.card-back{font:700 2.5rem Georgia,serif}.card-front{width:100%;height:100%;position:relative;background:white;color:#241a37}.card-front img{width:100%;height:75%;object-fit:cover}.card-front span{display:block;font-size:clamp(.85rem,2vw,1rem);line-height:1.4;padding:.2rem}.match-card[data-matched]{border-color:#155440;outline:3px solid #9ebfae}.match-card[data-matched] .card-front span:after{content:' ✓'}.book-title{font-size:clamp(2rem,4vw,3rem)}.book-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.book-status{min-height:1.5em}.book-page h2:focus-visible{outline:3px solid #b15b00;outline-offset:4px}@media(max-width:760px){.book-page{grid-template-columns:1fr;gap:.5rem}.book-page img{max-height:330px}.book-page h2{margin:.8rem 0}.matching-grid{gap:.6rem}.card-front img{height:70%}}@media(max-width:420px){.matching-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.book-controls .actions{width:100%;justify-content:space-between}}@media print{.book-page[hidden]{display:block!important}.book-page{display:block;break-before:page}.book-page img{max-width:400px}.book-controls,#matching-game,.voice-preview,.page-dots{display:none!important}}
