html{scrollbar-gutter:stable}
.card-image .image-link{inset:0;width:100%;height:100%;border-radius:0;background:transparent;font-size:0;z-index:1}
.card-image .image-link:after{content:'↗';position:absolute;right:16px;bottom:16px;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#fff9ef;color:#342738;font-size:25px}
.card-image .image-link:focus-visible{outline-offset:-4px}
.card-body h3 a:hover{color:var(--accent)}
body.reader-open{overflow:hidden}
.book-reader{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:#f8f4ed;box-shadow:none;color:#342738}
.book-reader::backdrop{background:#f8f4ed}
.reader-toolbar{position:relative;z-index:2;min-height:66px;height:calc(66px + env(safe-area-inset-top,0px));padding:calc(10px + env(safe-area-inset-top,0px)) 24px 10px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #dcd3cb;background:#f8f4ed;font:15px/1.4 Arial,sans-serif}
.reader-toolbar button,.reader-toolbar a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:5px;text-decoration:none;white-space:nowrap;font:inherit}
.reader-close{background:transparent;color:#342738}.reader-close:hover{background:#ece2d7}
.reader-tabs{display:flex;gap:5px;align-items:center}.reader-tabs a[aria-current=page],.reader-toolbar .reader-create{background:#342738;color:#fff}
.reader-stage{position:absolute;inset:calc(66px + env(safe-area-inset-top,0px)) 0 0;overflow:hidden;background:#f1edf0}
.reader-frame{border:0;display:block;width:100%;height:100%;opacity:0;transition:opacity .14s ease;background:#f1edf0}
.reader-frame.is-ready{opacity:1}
.reader-loading{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:30px;text-align:center;font:16px/1.5 Arial,sans-serif;background:#f1edf0}
/* Delay feedback so quick opens reveal only the real book. */
.reader-loading{opacity:0;animation:reader-feedback .12s ease .45s forwards}
.reader-loading[hidden]{display:none}
@keyframes reader-feedback{to{opacity:1}}
.reader-loading p{margin:0}.reader-loading-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.reader-loading-actions button,.reader-loading-actions a{min-height:44px;background:#342738;color:#fff;border-radius:5px;padding:12px 16px;font:15px Arial,sans-serif}
.reader-loading-actions a{background:transparent;color:#342738;text-decoration:underline;text-underline-offset:4px}
@media(max-width:650px){.reader-toolbar{padding-right:10px;padding-left:10px;gap:8px;font-size:14px}.reader-toolbar .reader-create{display:none}.reader-toolbar button,.reader-toolbar a{padding:10px}.reader-tabs{gap:2px}.reader-close span{display:none}}
@media(prefers-reduced-motion:reduce){.reader-frame{transition:none}.reader-loading{animation-duration:0s}}

@media(max-width:900px){.reader-toolbar .reader-create{display:none}}
