.reading-wrapper{margin-left:auto;margin-right:auto;max-width:56rem;padding:3rem 2rem}@media (min-width:768px){.reading-wrapper{padding-left:1.6rem;padding-right:1.6rem}}.reading-header{margin-bottom:2rem}.page-title{margin-bottom:1rem;font-family:Literata,Georgia,serif;font-size:3rem;line-height:1;font-weight:700}.page-description{font-size:1.125rem;line-height:1.75rem;--tw-text-opacity:1;color:rgb(var(--text-secondary)/var(--tw-text-opacity, 1))}.hardcover-link{--tw-text-opacity:1;color:rgb(var(--accent)/var(--tw-text-opacity, 1))}.hardcover-link:hover{text-decoration-line:underline}.books-section{margin-bottom:4rem}.section-title{margin-bottom:1.5rem;font-family:Literata,Georgia,serif;font-size:1.5rem;line-height:2rem;font-weight:700;--tw-text-opacity:1;color:rgb(var(--text-primary)/var(--tw-text-opacity, 1))}.bookshelf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media (min-width:768px){.bookshelf{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.25rem}}.book-spine{position:relative;cursor:pointer;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);overflow:hidden;border-radius:.5rem;border-width:1px;border-color:rgb(var(--text-secondary)/.2)}@media (min-width:768px){.book-spine{aspect-ratio:auto;height:24rem;width:3.5rem;border-radius:.125rem;border-width:0}}@media (min-width:768px){.book-spine{background:linear-gradient(to right,#00000014,#0000 50%)}html.dark .book-spine{background:linear-gradient(to right,#0000000d,#0000 50%)}}@media (min-width:768px){.book-spine:hover:not(.book-spine--skeleton){z-index:10;width:16rem}}.book-spine--skeleton{pointer-events:none;cursor:default;animation:skeleton-pulse-light 1.5s ease-in-out infinite}.book-spine--skeleton .spine-content{background-color:rgb(var(--text-secondary)/.2)}.book-spine--skeleton .skeleton-text{display:block;border-radius:.25rem;background-color:#fff3}.book-spine--skeleton .spine-title.skeleton-text{margin-left:auto;margin-right:auto;height:5rem;width:75%}@media (min-width:768px){.book-spine--skeleton .spine-title.skeleton-text{height:8rem}}.book-spine--skeleton .spine-author.skeleton-text{margin-left:auto;margin-right:auto;margin-top:.5rem;height:2rem;width:50%}@media (min-width:768px){.book-spine--skeleton .spine-author.skeleton-text{height:4rem}}@media (max-width:768px){.book-spine:active{transform:scale(.98);transition:transform .1s ease}.book-spine.show-details .book-expanded{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.book-spine.show-details .book-details{opacity:1;pointer-events:auto}}.bookmark{position:absolute;z-index:20;--tw-translate-x:-50%;top:.5rem;right:.5rem;left:auto;--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:768px){.bookmark{top:0;left:50%;right:auto;--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}.bookmark{width:20px;height:40px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.bookmark-icon{height:100%;width:100%;color:#ef4444}.book-spine--reading .spine-content{box-shadow:inset -1px 0 2px #0003,0 2px 4px #0000001a,0 0 0 2px #ef444499}html.dark .book-spine--reading .spine-content{box-shadow:inset -1px 0 2px #00000026,0 0 0 1px #ef444466}.spine-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem;pointer-events:none;opacity:0}@media (min-width:768px){.spine-content{pointer-events:auto;border-radius:.125rem;opacity:1}}.spine-content{writing-mode:vertical-rl;text-orientation:mixed;transition:opacity .3s ease}.spine-content{background:linear-gradient(135deg,hsl(var(--accent-h) var(--accent-s) var(--accent-l)/.95),hsl(var(--accent-h) var(--accent-s) var(--accent-l)/.85));box-shadow:inset -1px 0 2px #0003,0 2px 4px #0000001a}html.dark .spine-content{background:linear-gradient(135deg,hsl(var(--accent-h) var(--accent-s) var(--accent-l)/.9),hsl(var(--accent-h) var(--accent-s) var(--accent-l)/.7));box-shadow:inset -1px 0 2px #00000026}@media (min-width:768px){.book-spine:hover .spine-content{opacity:0}}.spine-title{max-height:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity, 1))}.spine-author{margin-top:.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#fffc}.book-expanded{overflow:hidden;border-radius:.5rem;position:relative;display:flex;aspect-ratio:2/3;flex-direction:column;justify-content:flex-end}@media (min-width:768px){.book-expanded{pointer-events:none;visibility:hidden;position:absolute;inset:0;aspect-ratio:auto;opacity:0}}.book-expanded{box-shadow:0 4px 12px #0000001a;transition:opacity .15s ease,visibility .15s ease,backdrop-filter .3s ease;background-size:cover;background-position:center;background-repeat:no-repeat;background-color:rgb(var(--text-secondary)/.12);animation:skeleton-pulse-light 1.5s ease-in-out infinite}html.dark .book-expanded{background-color:rgb(var(--bg-dark));animation:skeleton-pulse-dark 1.5s ease-in-out infinite}.book-expanded.loaded,html.dark .book-expanded.loaded{animation:none}.book-expanded.error{background-color:hsl(var(--accent)/.1)}@media (min-width:768px){.book-spine:hover .book-expanded{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s ease .15s,visibility .2s ease .15s}}.book-details{position:relative;z-index:10;pointer-events:none;padding:1rem;opacity:0}@media (min-width:768px){.book-details{pointer-events:auto;padding:.75rem;opacity:1}}.book-details{transition:opacity .3s ease;background:linear-gradient(to top,rgba(0,0,0,.95)0,rgba(0,0,0,.85) 50%,rgba(0,0,0,.4) 80%,transparent 100%)}.book-title{margin-bottom:.5rem;font-weight:700;line-height:1.25;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity, 1));font-size:.875rem;line-height:1.25rem}@media (min-width:768px){.book-title{font-size:.875rem;line-height:1.25rem}}.book-rating{margin-bottom:.5rem;display:flex;align-items:center;gap:.25rem}.rating-stars{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity, 1));font-size:1rem;line-height:1.5rem}@media (min-width:768px){.rating-stars{font-size:1rem;line-height:1.5rem}}.rating-stars{display:inline-flex;align-items:center}.half-star{display:inline-block;position:relative}.half-star-filled{position:absolute;left:0;top:0;overflow:hidden;width:.5em}.rating-value{color:#fffc;font-size:.75rem;line-height:1rem}@media (min-width:768px){.rating-value{font-size:.75rem;line-height:1rem}}.book-author{margin-bottom:.25rem;font-style:italic;color:#ffffffe6;font-size:.75rem;line-height:1rem}@media (min-width:768px){.book-author{font-size:.75rem;line-height:1rem}}.book-year{margin-bottom:.5rem;color:#ffffffb3;font-size:10px}@media (min-width:768px){.book-year{font-size:10px}}.book-genres{margin-bottom:.5rem;display:none;flex-wrap:wrap;gap:.25rem}@media (min-width:768px){.book-genres{display:flex}}.genre-tag{border-radius:9999px;background-color:#ffffff26;padding:.125rem .375rem;color:#ffffffe6;font-size:10px}@media (min-width:768px){.genre-tag{font-size:10px}}.book-status{font-size:10px;color:#ffffffb3}.book-status-badge{margin-bottom:.5rem}.status-indicator{display:inline-block;border-radius:9999px;background-color:#ef4444cc;padding:.25rem .5rem;font-size:10px;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity, 1))}.empty-state{padding-top:4rem;padding-bottom:4rem;text-align:center;--tw-text-opacity:1;color:rgb(var(--text-secondary)/var(--tw-text-opacity, 1))}.book-spine:nth-child(6n+1) .spine-content{background:linear-gradient(135deg,hsl(var(--accent-h) var(--accent-s) var(--accent-l)/.95),hsl(var(--accent-h) var(--accent-s) var(--accent-l)/.85))}.book-spine:nth-child(6n+2) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) - 30) var(--accent-s) var(--accent-l)/.95),hsl(calc(var(--accent-h) - 30) var(--accent-s) var(--accent-l)/.85))}.book-spine:nth-child(6n+3) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) + 90) calc(var(--accent-s)*.9) calc(var(--accent-l) - 15%)/.95),hsl(calc(var(--accent-h) + 90) calc(var(--accent-s)*.9) calc(var(--accent-l) - 15%)/.85))}.book-spine:nth-child(6n+4) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) + 60) var(--accent-s) var(--accent-l)/.95),hsl(calc(var(--accent-h) + 60) var(--accent-s) var(--accent-l)/.85))}.book-spine:nth-child(6n+5) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) - 190) var(--accent-s) var(--accent-l)/.95),hsl(calc(var(--accent-h) - 190) var(--accent-s) var(--accent-l)/.85))}.book-spine:nth-child(6n+6) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) + 120) var(--accent-s) var(--accent-l)/.95),hsl(calc(var(--accent-h) + 120) var(--accent-s) var(--accent-l)/.85))}html.dark .book-spine:nth-child(6n+1) .spine-content{background:linear-gradient(135deg,hsl(var(--accent-h) var(--accent-s) var(--accent-l)/.85),hsl(var(--accent-h) var(--accent-s) var(--accent-l)/.65))}html.dark .book-spine:nth-child(6n+2) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) - 30) var(--accent-s) var(--accent-l)/.85),hsl(calc(var(--accent-h) - 30) var(--accent-s) var(--accent-l)/.65))}html.dark .book-spine:nth-child(6n+3) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) + 90) calc(var(--accent-s)*.9) var(--accent-l)/.85),hsl(calc(var(--accent-h) + 90) calc(var(--accent-s)*.9) var(--accent-l)/.65))}html.dark .book-spine:nth-child(6n+4) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) + 60) var(--accent-s) var(--accent-l)/.85),hsl(calc(var(--accent-h) + 60) var(--accent-s) var(--accent-l)/.65))}html.dark .book-spine:nth-child(6n+5) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) - 190) var(--accent-s) var(--accent-l)/.85),hsl(calc(var(--accent-h) - 190) var(--accent-s) var(--accent-l)/.65))}html.dark .book-spine:nth-child(6n+6) .spine-content{background:linear-gradient(135deg,hsl(calc(var(--accent-h) + 120) var(--accent-s) var(--accent-l)/.85),hsl(calc(var(--accent-h) + 120) var(--accent-s) var(--accent-l)/.65))}@media (max-width:768px){.page-title{font-size:2.25rem;line-height:2.5rem}.page-description{font-size:1rem;line-height:1.5rem}}