.book-shelf-room{background:var(--paper-2)}.mystery-shelf-room{background:#c7cdfa}.book-showcase,.book-stage{position:relative}.book-stage-frame{position:relative;min-height:clamp(420px,52vw,620px);cursor:-webkit-grab;cursor:grab;touch-action:none}.book-stage-frame:active{cursor:-webkit-grabbing;cursor:grabbing}.book-stage-canvas{display:block;width:100%;height:100%;touch-action:none}.book-stage-pill{position:absolute;top:0;left:0;z-index:3;margin:-34px 0 0 14px;padding:5px 12px;color:#fff;background:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--yellow);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .16s ease}.book-stage-pill.is-on{opacity:1}.book-stage-hint{margin-top:6px;color:var(--ink-3);font-family:var(--font-hand),cursive;font-size:22px;transform:rotate(-1.5deg)}.book-showcase-fallback{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:28px;gap:28px;list-style:none}.book-showcase-fallback a{display:grid;grid-template-columns:130px 1fr;grid-gap:22px;gap:22px;align-items:center;padding:20px;background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow-cut)}.book-showcase-fallback img{width:100%;height:auto;border:2px solid var(--ink)}.book-showcase-fallback h3{font-size:26px}.book-showcase-fallback p{margin-top:8px;color:var(--ink-2);font-size:15px}.book-showcase-fallback b{display:block;margin-top:12px;color:var(--accent,var(--blue));font-size:13px}@media (max-width:900px){.book-stage-frame{min-height:min(74svh,560px)}.book-stage-hint{text-align:center}}@media (prefers-reduced-motion:reduce){.book-stage-pill{transition:none}}