.ebook-heading{margin:0 0 12px}.ebook-reader-heading{margin:24px 0 0}.ebook-heading h1{font-size:clamp(1.25rem,3vw,1.8rem);line-height:1.25;overflow-wrap:anywhere;margin:0 0 8px}.ebook-heading p,.ebook-reading-guide p{line-height:1.6}.ebook-reading-guide{margin:24px 0 0}.ebook-reading-guide h2{font-size:1.2rem}
/* Keep the shared news header, page spacing and saved background appearance. */
.news-public.news-ebook-reading{padding-bottom:0}
.ebook-library{width:100%;max-width:960px;margin:0 auto;padding:16px 0 20px;min-width:0}
.ebook-reader{position:relative;background:none;border:0;box-shadow:none;color:var(--ink)}
.ebook-reader[aria-busy=true]{opacity:1}
.ebook-viewport{overflow:hidden;position:relative;background:none;isolation:isolate;outline-offset:-3px;touch-action:pan-y pinch-zoom}
.ebook-stage{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:16px 0}
.ebook-spread{position:relative;display:flex;flex-shrink:0;perspective:2400px;transition:translate .76s cubic-bezier(.35,.05,.2,1);filter:drop-shadow(0 4px 5px #302b2618)}
.ebook-spread.is-cover{translate:-25% 0}
.ebook-spread.is-back-cover{translate:25% 0}
.ebook-spread.is-flat-turn{perspective:none}
.ebook-page{position:relative;width:50%;height:100%;overflow:hidden;background:#fffcf4;box-shadow:0 2px 0 #d8cbb8,0 3px 0 #bda88e}
.ebook-page-left{border-radius:2px 0 0 2px}.ebook-page-right{border-radius:0 2px 2px 0}
.ebook-page img,.ebook-leaf img,.ebook-hold img{display:block;width:100%;height:100%;object-fit:contain;background:#fffcf4;user-select:none}
.ebook-page:not(.is-blank):after{content:'';position:absolute;inset:0;pointer-events:none}
.ebook-page:not(.is-blank):before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(118deg,#ffffff05 8%,#ffffff08 32%,#ffffff38 45%,#ffffff0a 55%,transparent 70%);box-shadow:inset 0 0 0 1px #ffffff42;pointer-events:none}
.ebook-page-left:after{background:linear-gradient(90deg,#ffffff15,transparent 18%,transparent 87%,#4430212b)}
.ebook-page-right:after{background:linear-gradient(90deg,#44302130,transparent 12%,transparent 85%,#ffffff18)}
.ebook-page.is-blank{background:none;box-shadow:none}.ebook-page.is-blank:after{display:none}
.ebook-drag-zone{position:absolute;z-index:2;top:0;bottom:0;width:18%;touch-action:pinch-zoom;cursor:grab}
.ebook-drag-zone.is-start{left:0}.ebook-drag-zone.is-end{right:0}.ebook-drag-zone.is-bottom{inset:auto 0 0;width:100%;height:22%;z-index:3}
.ebook-page-left .ebook-drag-zone.is-end,.ebook-page-right .ebook-drag-zone.is-start{display:none}
.is-dragging .ebook-drag-zone,.is-dragging .ebook-viewport{cursor:grabbing}
.ebook-leaf{position:absolute;top:0;width:50%;height:100%;transform-style:preserve-3d;z-index:5;will-change:transform}
.ebook-leaf.is-forward{left:50%;transform-origin:left center}.ebook-leaf.is-backward{left:0;transform-origin:right center}
.ebook-leaf.is-forward.is-corner{transform-origin:left bottom}.ebook-leaf.is-backward.is-corner{transform-origin:right bottom}
.ebook-leaf-front,.ebook-leaf-back{position:absolute;inset:0;background:#fffcf4;backface-visibility:hidden;overflow:hidden;box-shadow:0 2px var(--page-shadow,12px) #302b2630}
.ebook-leaf-back{transform:rotateY(180deg)}
.ebook-leaf.is-curl{transform:translateZ(0);transform-style:flat;overflow:visible;will-change:auto}
.ebook-leaf.is-curl>.ebook-leaf-front,.ebook-leaf.is-curl>.ebook-leaf-back{display:none}
.ebook-curl-canvas{position:absolute;top:-16px;display:block;max-width:none;pointer-events:none}
.ebook-leaf-front:after,.ebook-leaf-back:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#66452b24,transparent 25%,#bda48312 75%,#4b2b2324),linear-gradient(112deg,transparent calc(var(--page-shine,45%) - 20%),#ffffff55 var(--page-shine,45%),transparent calc(var(--page-shine,45%) + 25%));pointer-events:none}
.ebook-hold{position:absolute;top:0;width:50%;height:100%;z-index:2}.ebook-hold.is-left{left:0}.ebook-hold.is-right{right:0}
.ebook-controls{display:flex;justify-content:center;align-items:center;gap:10px;padding:8px 0 0}
.ebook-controls button{display:grid;place-items:center;width:32px;height:32px;min-height:0;padding:0;border:0;border-radius:4px;background:none;color:var(--ink-soft);font:28px/1 Georgia,serif;cursor:pointer}
.ebook-controls button:hover:not(:disabled){color:var(--brand-dark);background:var(--paper-strong)}
.ebook-controls button:disabled{opacity:.25;cursor:default}
.ebook-page-number{display:flex;align-items:center;justify-content:center;gap:2px;min-width:80px;margin:0;text-align:center;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.ebook-page-number input{width:34px;min-width:0;min-height:28px;padding:3px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);font:inherit;text-align:center;appearance:textfield;-moz-appearance:textfield}
.ebook-page-number input::-webkit-inner-spin-button,.ebook-page-number input::-webkit-outer-spin-button{appearance:none;margin:0}
.ebook-page-number input:focus-visible{outline:2px solid var(--brand-dark);outline-offset:2px}
.ebook-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.ebook-reader.has-error .ebook-status{position:static;width:auto;height:auto;margin:10px 0;overflow:visible;clip:auto;white-space:normal;text-align:center;font-size:12px}
.ebook-retry{display:block;margin:8px auto;padding:5px 10px;background:none;border:1px solid var(--line);border-radius:4px;color:var(--ink);font:inherit;font-size:12px;cursor:pointer}
.ebook-retry[hidden]{display:none}
.ebook-preview-note,.ebook-empty{margin:12px 0;text-align:center;font-size:12px;color:var(--muted)}
.ebook-reader button:focus-visible,.ebook-viewport:focus-visible{outline:2px solid var(--brand-dark)}
@media(max-width:700px){.ebook-library{padding-top:12px}.is-single .ebook-page-left{display:none}.is-single .ebook-page-right{width:100%;border-radius:2px}.is-single .ebook-page-right:after{background:none}.is-single .ebook-page-right .ebook-drag-zone.is-start{display:block}.is-single .ebook-leaf{left:0;width:100%}.is-single .ebook-leaf.is-forward{transform-origin:left center}.is-single .ebook-leaf.is-backward{transform-origin:right center}.is-single .ebook-leaf.is-forward.is-corner{transform-origin:left bottom}.is-single .ebook-leaf.is-backward.is-corner{transform-origin:right bottom}}
@media(prefers-reduced-motion:reduce){.ebook-spread{transition:none}}
/* Compact, left-aligned library cards. */
.ebook-library-catalog{max-width:none;margin:0}
.ebook-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;max-width:440px;margin:0}
.ebook-card{min-width:0;padding:6px;border:1px solid var(--line);border-radius:7px;background:var(--sheet);overflow:hidden}
.ebook-card-cover{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--ink);text-decoration:none}
.ebook-card-cover img{display:block;max-width:100%;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 2px 3px #302b2615)}
.ebook-cover-fallback{display:none;padding:10px;text-align:center;font-size:12px;font-weight:700;overflow-wrap:anywhere}
.cover-unavailable .ebook-cover-fallback{display:block}
.cover-unavailable .ebook-card-cover img{display:none}
.ebook-card-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:4px}
.ebook-card-pin{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;min-height:0;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer}
.ebook-card-pin:hover{background:var(--paper-strong);color:var(--brand-dark)}
.ebook-card.is-pinned{border-color:var(--brand-dark)}
.ebook-card.is-pinned .ebook-card-pin{color:var(--brand-dark)}
.ebook-card.is-pinned .ebook-card-pin svg{fill:currentColor}
.ebook-card :is(a,button):focus-visible{outline:2px solid var(--brand-dark);outline-offset:2px}
.ebook-card-pages{margin:0;font-size:10px;line-height:1.4;color:var(--muted)}
.ebook-card-hidden{display:block;margin-top:4px;font-size:10px;color:var(--muted)}
.ebook-pin-status{max-width:340px;margin:12px 0;font-size:11px;color:var(--muted)}
@media(max-width:700px){.ebook-controls{gap:6px}.ebook-card-pin{height:32px}}
