.ffb{container-type:inline-size;padding-bottom:56px;--ffb-bg:#171819;position:relative;width:100%;background:var(--ffb-bg);color:#e8e8e8;border-radius:6px;overflow:hidden;font:14px/1.4 system-ui,sans-serif;user-select:none;-webkit-user-select:none}
.ffb:fullscreen{border-radius:0;display:flex;flex-direction:column;padding-bottom:0}
/* Reserve the final height up front (US Letter ratio) so switching tabs does not shift the page. */
.ffb-stage{display:flex;align-items:center;justify-content:center;min-height:calc(min((100cqw - 24px) * 1.2941, max(320px, 80vh)) + 32px);padding:16px 12px;overflow:hidden}
@container (min-width:664px){.ffb-stage{min-height:calc(min((100cqw - 24px) * .64705, max(320px, 80vh)) + 32px)}}
.ffb:fullscreen .ffb-stage{min-height:0}
.ffb:fullscreen .ffb-stage{flex:1}
.ffb-loading,.ffb-error{opacity:.7;padding:40px 0;text-align:center}
.ffb-book{box-shadow:0 10px 40px rgba(0,0,0,.5)}
.ffb-page{background:#eceef0;overflow:hidden;position:relative}
.ffb-page::after{content:"";position:absolute;left:50%;top:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border:3px solid rgba(0,0,0,.12);border-top-color:rgba(0,0,0,.4);border-radius:50%;animation:ffb-spin .8s linear infinite}
.ffb-page:has(.ffb-ready)::after{display:none}
@keyframes ffb-spin{to{transform:rotate(360deg)}}
.ffb-page img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .25s}
.ffb-page img.ffb-ready{opacity:1}
@media (prefers-reduced-motion:reduce){.ffb-page::after{animation:none}.ffb-page img{transition:none}}
.ffb-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px 12px;flex-wrap:wrap}
.ffb-bar button,.ffb-bar a{background:transparent;border:1px solid rgba(255,255,255,.25);color:inherit;border-radius:4px;min-width:36px;height:36px;padding:0 10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font:inherit;text-decoration:none}
.ffb-bar button:hover,.ffb-bar a:hover{background:rgba(255,255,255,.12)}
.ffb-bar button:focus-visible,.ffb-bar a:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ffb-bar button:disabled{opacity:.35;cursor:default}
.ffb-count{min-width:84px;text-align:center;font-variant-numeric:tabular-nums}
.ffb-zoom .ffb-book{transition:transform .2s}
@media (max-width:600px){.ffb-stage{padding:8px 4px}.ffb-bar a span{display:none}}
.ffb:fullscreen .ffb-bar{position:static}
.ffb-bar [hidden]{display:none}
.ffb-still{display:flex;justify-content:center;align-items:flex-start;width:auto !important}
.ffb-still .ffb-page{flex:none}
