.catalogue-tabs{display:flex;gap:6px;padding:5px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:8px;width:fit-content;margin:0 0 22px}
.catalogue-tabs button{border:0;border-radius:5px;padding:11px 20px;background:transparent;color:var(--muted);font-size:14px;min-height:44px}
.catalogue-tabs [aria-selected=true]{background:var(--button,#242826);color:var(--buttonText,#fff)}
.book-view{position:relative;border:1px solid var(--line);background:var(--surface,#fff);border-radius:8px;overflow:hidden}
.book-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 22px;border-bottom:1px solid var(--line)}
.book-heading h1{font:normal 27px/1.2 var(--serif);margin:0}.book-heading p{margin:4px 0 0;color:var(--muted);font-size:13px}
.book-view button,.book-view select,.book-download{min-height:44px;border:1px solid var(--line);border-radius:5px;padding:8px 13px;font:13px var(--sans);background:var(--surface,#fff);color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.book-view button:disabled{opacity:.3}.book-view button:hover:not(:disabled),.book-download:hover{border-color:var(--accent)}
.book-view button svg{width:20px;height:20px;flex:none}.book-view #bookFullscreen{background:var(--button);color:var(--buttonText);border-color:var(--button);white-space:nowrap}
.book-stage{position:relative;background:var(--paper);min-height:300px}
.book-frame{display:flex;height:clamp(390px,calc(100dvh - 335px),1100px);width:100%;overflow:hidden;padding:12px;position:relative;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none}
.book-frame.is-zoomed{display:block;overflow:auto;touch-action:pan-x pan-y pinch-zoom}
.book-paper{position:relative;overflow:hidden;margin:auto;flex-shrink:0;background:#fff;box-shadow:0 12px 35px #0002}
.book-paper>img,.book-sheet>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;display:block;user-select:none;-webkit-user-drag:none;pointer-events:none}
.book-paper[data-side=left]>img,.book-paper[data-side=right]>img,.book-sheet[data-side=left]>img,.book-sheet[data-side=right]>img{width:200%}
.book-paper[data-side=right]>img,.book-sheet[data-side=right]>img{left:-100%}
.book-spine{display:none;position:absolute;z-index:1;top:0;bottom:0;left:calc(50% - 9px);width:18px;background:linear-gradient(90deg,transparent,#00000009 43%,#00000017 50%,#ffffff08 55%,transparent);pointer-events:none}
.book-paper[data-open=true]>.book-spine{display:block}.book-paper.is-turning{overflow:visible;background:transparent;box-shadow:none}.book-paper.is-turning>.book-spine{display:none}
.book-turn{position:absolute;inset:0;z-index:2;perspective:2400px;isolation:isolate;pointer-events:none}
.book-sheet{position:absolute;overflow:hidden;background:#fff}.book-sheet>img{object-fit:fill}
.book-fixed{top:0;bottom:0;width:50%;box-shadow:0 8px 28px #0002}.book-left{left:0}.book-right{left:50%}
.book-flap{position:absolute;top:0;bottom:0;width:50%;transform-style:preserve-3d;will-change:transform;z-index:3}
.book-front,.book-back{inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:0 3px 24px #0003}
.book-front{transform:rotateY(0deg)}.book-back{transform:rotateY(180deg)}
.book-front::after,.book-back::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0001,transparent 12%,transparent 88%,#0000000a)}
.book-cover-layer{box-shadow:0 10px 35px #0002;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.book-loading{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;pointer-events:none}
.book-loading p{padding:8px 14px;background:var(--surface,#fff);color:var(--ink);border-radius:4px;font-size:13px}.book-loading button{pointer-events:auto}
.book-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 18px;border-top:1px solid var(--line)}
.book-nav-group{display:flex;align-items:center;gap:7px}.book-turn-controls button{width:44px;padding:6px}.book-turn-controls select{min-width:128px;max-width:180px}
.book-options{flex-wrap:wrap;justify-content:center}.book-options select{max-width:145px}
.book-view #bookZoomValue{font-size:12px;color:var(--muted);min-width:36px;text-align:center;font-variant-numeric:tabular-nums}
.book-view #bookZoomIn,.book-view #bookZoomOut{font-size:20px;width:40px;padding:4px}
.book-accessible{border-top:1px solid var(--line);padding:12px 20px;color:var(--muted);font-size:13px}.book-accessible summary{cursor:pointer}.book-accessible pre{font:inherit;white-space:pre-wrap;max-height:220px;overflow:auto;color:var(--ink)}
.book-screen-actions,.book-hint{display:none}
/* Fullscreen contains one uninterrupted reading surface. Controls overlay the
   pages only on request; they never subtract from the book's available height. */
.book-fullscreen{overflow:hidden;overscroll-behavior:none}
.book-fullscreen .topbar,.book-fullscreen .catalogue-tabs{visibility:hidden}
.book-fullscreen .book-view{position:fixed;inset:0;z-index:9000;width:100%;height:100vh;height:100dvh;border:0;border-radius:0;background:var(--dark,#161918);overflow:hidden}
.book-fullscreen .book-heading,.book-fullscreen .book-accessible{display:none}
.book-fullscreen .book-stage{position:absolute;inset:0;min-height:0;background:transparent}
.book-fullscreen .book-frame{position:absolute;inset:0;width:100%;height:100%;padding:0;min-height:0;touch-action:none}
.book-fullscreen .book-frame.is-zoomed{touch-action:pan-x pan-y pinch-zoom}
.book-fullscreen .book-paper{box-shadow:none}
.book-fullscreen .book-screen-actions{display:flex;gap:6px;position:absolute;z-index:10;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right))}
.book-screen-actions button{width:44px;height:44px;padding:10px;background:#1619189c;color:#fff;border:1px solid #ffffff24;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.book-fullscreen .book-nav{position:absolute;z-index:10;bottom:max(12px,env(safe-area-inset-bottom));left:50%;width:max-content;max-width:calc(100% - 24px);transform:translate(-50%,12px);opacity:0;visibility:hidden;pointer-events:none;padding:8px;gap:12px;border:1px solid #ffffff26;border-radius:8px;background:#161918eb;color:#fff;box-shadow:0 6px 30px #0003;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:opacity .2s,transform .2s,visibility .2s}
.book-fullscreen .show-book-controls .book-nav{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.book-fullscreen .book-nav button,.book-fullscreen .book-nav select,.book-fullscreen .book-download{background:#252925;color:#fff;border-color:#ffffff25;font-size:12px}
.book-fullscreen .book-nav #bookZoomValue{color:#ddd}.book-fullscreen .book-nav select option{color:#fff;background:#252925}
.book-fullscreen .book-hint{display:block;position:absolute;z-index:4;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;margin:0;padding:8px 13px;border-radius:5px;background:#161918b8;color:#fff;font-size:12px;line-height:1.5;text-align:center;pointer-events:none}
.book-fullscreen .show-book-controls .book-hint{display:none}
.presentation .catalogue-tabs{display:none}
@media(max-width:1050px){.book-nav{flex-wrap:wrap;justify-content:center}.book-options{gap:5px}.book-fullscreen .book-nav{max-width:calc(100% - 32px);width:max-content}.book-fullscreen .book-options{flex-wrap:nowrap}}
@media(max-width:700px){
 .catalogue-tabs{width:100%;margin-bottom:16px}.catalogue-tabs button{flex:1;padding:10px}
 .book-heading{padding:12px;gap:12px}.book-heading h1{font-size:23px}.book-heading p{font-size:12px;max-width:240px}
 .book-view #bookFullscreen{padding:8px 10px;font-size:12px}.book-frame{height:clamp(340px,calc(100dvh - 325px),950px)}
 .book-nav{gap:7px;padding:8px}.book-options{width:100%}.book-options select{max-width:124px}.book-options .book-download{padding:8px}
 .book-fullscreen .book-nav{width:min(560px,calc(100% - 24px));gap:5px}.book-fullscreen .book-options{flex-wrap:wrap;gap:5px}
 .book-fullscreen .book-turn-controls select{max-width:190px}.book-fullscreen .book-hint{font-size:11px}
}
@media(max-height:520px){.book-fullscreen .book-nav{flex-wrap:nowrap;width:max-content;gap:8px}.book-fullscreen .book-options{width:auto}.book-fullscreen .book-options #bookZoomValue,.book-fullscreen .book-options #bookFit,.book-fullscreen .book-options #bookMode{display:none}.book-fullscreen .book-hint{bottom:max(10px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.book-nav{transition:none}}
