/* Books shelf: 3D covers. Uses theme tokens (--teal, --gold, --navy) with fallbacks. */
.prsr-shelf-page { padding: 3rem 0 4rem; }
.prsr-shelf-head { margin-bottom: 2.5rem; max-width: 46rem; }
.prsr-shelf-head h1 { margin: .3rem 0 .6rem; }
.prsr-shelf { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 3rem 2.2rem; }
.prsr-shelf__item { text-align: left; }
.prsr-book3d { position: relative; display: block; perspective: 1100px; width: 100%; max-width: 230px; aspect-ratio: 2 / 3; margin-bottom: 1rem; }
.prsr-book3d__inner { position: absolute; inset: 0; transform-style: preserve-3d; transform: rotateY(-24deg); transition: transform .45s cubic-bezier(.22,.61,.36,1); }
.prsr-book3d:hover .prsr-book3d__inner, .prsr-book3d:focus-visible .prsr-book3d__inner { transform: rotateY(-6deg) translateY(-4px); }
.prsr-book3d__front { position: absolute; inset: 0; transform: translateZ(14px); border-radius: 2px 5px 5px 2px !important; box-shadow: 0 1px 0 rgba(255,255,255,.12) inset, 6px 18px 30px -10px rgba(0,0,0,.55); }
.prsr-book3d__front::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 10px; background: linear-gradient(90deg, rgba(255,255,255,.18), rgba(0,0,0,.25) 60%, rgba(0,0,0,0)); }
.prsr-book3d__pages { position: absolute; top: 3px; bottom: 3px; right: 0; width: 26px; transform: rotateY(90deg) translateZ(-12px) translateX(-1px); transform-origin: right; background: repeating-linear-gradient(90deg, #f6f1e3 0 2px, #ddd5c0 2px 3px); }
.prsr-book3d__back { position: absolute; inset: 0; transform: translateZ(-14px); background: #0a1224; border-radius: 2px 5px 5px 2px; box-shadow: -12px 22px 36px -12px rgba(0,0,0,.5); }
.prsr-shelf .prsr-cover { position: absolute; width: 100%; height: 100%; overflow: hidden; }
.prsr-shelf .prsr-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.prsr-shelf .prsr-cover--generated { background: radial-gradient(120% 80% at 80% 0%, rgba(32,201,180,.35), transparent 60%), radial-gradient(90% 60% at 0% 100%, rgba(240,190,70,.28), transparent 60%), #0a1224; color: #fff; display: flex; flex-direction: column; justify-content: center; padding: 14% 12%; font-family: Inter, system-ui, sans-serif; }
.prsr-shelf .prsr-cover__kicker { font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: #20c9b4; font-weight: 700; }
.prsr-shelf .prsr-cover__title { font-size: 1.15rem; font-weight: 800; line-height: 1.15; margin: .5rem 0; }
.prsr-shelf .prsr-cover__rule { display: block; width: 36px; height: 3px; background: #f0be46; margin: .4rem 0 .8rem; }
.prsr-shelf .prsr-cover__author { font-size: .75rem; color: #f0be46; font-weight: 600; }
.prsr-shelf .prsr-cover--image { background: radial-gradient(120% 80% at 80% 0%, rgba(32,201,180,.3), transparent 60%), #0a1224; color: #fff; display: flex; flex-direction: column; font-family: Inter, system-ui, sans-serif; }
.prsr-shelf .prsr-cover--image .prsr-cover__art { padding: 10% 9% 0; }
.prsr-shelf .prsr-cover--image img { height: auto; object-fit: contain; border-radius: 3px; box-shadow: 0 6px 14px rgba(0,0,0,.45); }
.prsr-shelf .prsr-cover--image .prsr-cover__text { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 6% 12% 12%; }
.prsr-shelf__title { font-size: 1.02rem; line-height: 1.3; margin: .2rem 0 .2rem; }
.prsr-shelf__title a { color: inherit; text-decoration: none; }
.prsr-shelf__title a:hover { color: var(--teal, #20c9b4); }
.prsr-shelf__author { margin: 0; font-size: .85rem; opacity: .75; }
.prsr-shelf__badge { display: inline-block; margin: .5rem 0 0; font: 600 .72rem/1 Inter, system-ui, sans-serif; letter-spacing: .04em; padding: .35rem .55rem; border-radius: 999px; color: var(--gold, #f0be46); border: 1px solid rgba(240,190,70,.5); background: rgba(240,190,70,.1); }
.prsr-shelf__continue { margin: .45rem 0 0; font-size: .82rem; color: var(--teal, #20c9b4); font-weight: 600; }
.prsr-ring { position: absolute; right: -10px; top: -10px; width: 52px; height: 52px; z-index: 3; border-radius: 50%; background: #0a1224; box-shadow: 0 4px 12px rgba(0,0,0,.35); display: grid; place-items: center; }
.prsr-ring[hidden] { display: none; }
.prsr-ring svg { position: absolute; inset: 4px; transform: rotate(-90deg); }
.prsr-ring__bg { fill: none; stroke: rgba(255,255,255,.15); stroke-width: 3.2; }
.prsr-ring__fg { fill: none; stroke: #20c9b4; stroke-width: 3.2; stroke-linecap: round; }
.prsr-ring__txt { position: relative; font: 700 .7rem Inter, system-ui, sans-serif; color: #f0be46; }
@media (prefers-reduced-motion: reduce) { .prsr-book3d__inner { transition: none; } }
