/* Reading room: one continuous book, comfortable measure, no page transitions. */
.frn-reading-note{font:13px/1.5 Arial,sans-serif;color:#64727c;margin-top:12px}
#frn-book-reader{--reader-paper:#fff;--reader-ink:#25303a;--reader-line:#dfe4e5;--reader-muted:#60717b;--reader-button:#174254;--reading-size:21px;background:var(--reader-paper);color:var(--reader-ink);margin:0;width:100%;height:100dvh;max-height:100dvh;max-width:none;inset:0;border:0;padding:0}
#frn-book-reader[data-tone=paper]{--reader-paper:#f5efdf;--reader-ink:#352f26;--reader-line:#ded5c2;--reader-muted:#73644c}
#frn-book-reader[data-tone=night]{--reader-paper:#172126;--reader-ink:#e2e6e4;--reader-line:#37464d;--reader-muted:#a0b0b6;--reader-button:#b9dce7}
#frn-book-reader *{box-sizing:border-box}
#frn-book-reader [hidden]{display:none!important}
#frn-book-reader .frn-reader-shell{position:relative;grid-template-rows:64px minmax(0,1fr) 38px;overflow:hidden}
#frn-book-reader .frn-reader-top,#frn-book-reader .frn-reader-bottom{background:var(--reader-paper);color:var(--reader-ink);border-color:var(--reader-line);font:13px/1.4 Arial,sans-serif;padding:10px clamp(16px,4vw,52px);z-index:4}
#frn-book-reader .frn-reader-top>strong{font:600 15px/1.3 Arial,sans-serif;min-width:0}
#frn-book-reader .frn-reader-tools{gap:8px;flex:none}
#frn-book-reader button,#frn-book-reader summary{font:600 13px/1.3 Arial,sans-serif;border:1px solid var(--reader-line);border-radius:6px;color:var(--reader-ink);background:var(--reader-paper);padding:10px 13px;cursor:pointer;min-height:40px}
#frn-book-reader button:focus-visible,#frn-book-reader summary:focus-visible,#frn-book-reader a:focus-visible{outline:3px solid #4991b4;outline-offset:3px}
#frn-book-reader .frn-reader-body{scroll-behavior:auto;scrollbar-gutter:stable;overflow:auto;padding:0 24px;overscroll-behavior:contain;text-align:left;background:var(--reader-paper);color:var(--reader-ink)}
#frn-book-reader .frn-reading-flow{width:100%;max-width:680px;margin:auto;padding:58px 0 84px}
#frn-book-reader .frn-reader-chapter{max-width:none;background:none;color:inherit;padding:0;margin:0 0 64px;font:var(--reading-size)/1.85 Georgia,'Times New Roman',serif;overflow-wrap:break-word}
#frn-book-reader .frn-reader-chapter+.frn-reader-chapter{border-top:1px solid var(--reader-line);padding-top:56px}
#frn-book-reader .frn-chapter-kicker{font:700 11px/1.6 Arial,sans-serif;letter-spacing:.18em;color:var(--reader-muted);margin:0 0 14px}
#frn-book-reader .frn-reader-chapter h2{font:400 clamp(30px,4vw,44px)/1.2 Georgia,serif;letter-spacing:-.025em;color:inherit;margin:0 0 34px}
#frn-book-reader .frn-reader-prose p{font:inherit;line-height:inherit;color:inherit;margin:0 0 1.15em}
#frn-book-reader .frn-reader-prose img{max-width:100%;height:auto}
#frn-book-reader .frn-reader-prose a{color:inherit;text-decoration:underline}
#frn-book-reader .frn-reader-continue{border-top:1px solid var(--reader-line);padding-top:30px;display:flex;justify-content:center}
#frn-book-reader [data-reader-next]{background:#174254;border:0;color:#fff;min-height:50px;padding:15px 24px;border-radius:100px}
#frn-book-reader .frn-reader-finished{margin:0;padding-top:20px}
#frn-book-reader .frn-reader-finished>h2{font:400 34px/1.2 Georgia,serif;color:inherit}
#frn-book-reader .frn-next-books{padding:24px 0;margin:0;background:none}
#frn-book-reader .frn-next-books h2{font:600 16px/1.5 Arial,sans-serif;color:inherit}
#frn-book-reader .frn-next-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#frn-book-reader .frn-next-grid a{background:var(--reader-paper)!important;color:var(--reader-ink);border-color:var(--reader-line)!important}
#frn-book-reader .frn-reader-settings{position:relative}
#frn-book-reader .frn-reader-settings summary{list-style:none;text-align:center}
#frn-book-reader .frn-reader-settings summary::-webkit-details-marker{display:none}
#frn-book-reader .frn-reader-settings>div{position:absolute;right:0;top:48px;width:220px;padding:18px;background:var(--reader-paper);border:1px solid var(--reader-line);box-shadow:0 10px 30px #0002;border-radius:8px;display:grid;gap:14px}
#frn-book-reader .frn-reader-settings>div>div{display:flex;gap:12px}
#frn-book-reader .frn-reader-settings label{display:grid;gap:8px}
#frn-book-reader select{width:100%;padding:9px;background:var(--reader-paper);color:var(--reader-ink);border:1px solid var(--reader-line);border-radius:4px}
#frn-book-reader .frn-reader-chapter-menu{position:absolute;top:64px;bottom:38px;left:0;width:min(360px,100%);padding:26px;background:var(--reader-paper);border-right:1px solid var(--reader-line);box-shadow:12px 0 26px #0001;z-index:5;overflow:auto;text-align:left}
#frn-book-reader .frn-reader-chapter-menu h2{font:400 26px/1.2 Georgia,serif;margin:0 0 20px}
#frn-book-reader .frn-reader-chapter-menu ol{list-style:none;padding:0;margin:0}
#frn-book-reader .frn-reader-chapter-menu li{margin-bottom:10px}
#frn-book-reader .frn-reader-chapter-menu button{width:100%;display:flex;gap:14px;text-align:left;line-height:1.5}
#frn-book-reader .frn-reader-chapter-menu button[aria-current=true]{border-color:#4384a0;background:#4384a014}
#frn-book-reader .frn-reader-chapter-menu small{color:var(--reader-muted)}
#frn-book-reader .frn-reader-saved{color:var(--reader-muted);font-size:11px}
#frn-book-reader.frn-reader-scrolled .frn-reader-shell{grid-template-rows:0 minmax(0,1fr) 38px}
#frn-book-reader.frn-reader-scrolled .frn-reader-shell>.frn-reader-bottom{display:flex}
#frn-book-reader .frn-reader-floating-close{display:none;position:absolute;top:10px;right:12px;width:36px;min-height:36px;height:36px;border-radius:50%;padding:0;font-size:23px;z-index:3;box-shadow:0 2px 8px #0001}
#frn-book-reader.frn-reader-scrolled .frn-reader-floating-close{display:block}
#frn-book-reader.frn-reader-graphic .frn-reader-body{background:#252b2e;padding:12px}
#frn-book-reader .frn-pdf-pages{display:grid;gap:12px;max-width:1120px;margin:auto}
#frn-book-reader .frn-pdf-page{max-width:100%;margin:auto;background:#fff;overflow:hidden}
#frn-book-reader [data-reader-status]{text-align:center;font:16px/1.8 Arial,sans-serif;padding:30px}
#frn-book-reader.frn-reader-graphic [data-reader-status]{background:#fff;color:#25303a}
@media(max-width:600px){#frn-book-reader .frn-reader-shell{grid-template-rows:64px minmax(0,1fr) 36px}#frn-book-reader .frn-reader-top{padding:10px 12px;gap:8px}#frn-book-reader .frn-reader-tools{gap:5px}#frn-book-reader button,#frn-book-reader summary{padding:10px;font-size:12px}#frn-book-reader .frn-reader-top>strong{font-size:13px}#frn-book-reader .frn-reading-flow{padding-top:38px}#frn-book-reader .frn-reader-body{padding:0 22px}#frn-book-reader .frn-reader-chapter{line-height:1.75}#frn-book-reader .frn-reader-bottom{padding:8px 14px;font-size:11px}#frn-book-reader .frn-next-grid{grid-template-columns:1fr}}
/* The modal owns its viewport; wide pages cannot enlarge a grid column. */
#frn-book-reader{box-sizing:border-box;position:fixed;inset:0;margin:0;min-width:0;min-height:0;width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100dvh;overflow:hidden;transform:none!important;animation:none!important;transition:none!important}
#frn-book-reader .frn-reader-shell{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;box-sizing:border-box}
#frn-book-reader .frn-reader-shell>*{min-width:0;min-height:0}
/* Keep pages in the flexible middle row when the toolbar is hidden on scroll.
   Auto-placement otherwise moves the book into the toolbar's zero-height row,
   including immediately after restoring a saved reading position. */
#frn-book-reader .frn-reader-top{grid-area:1 / 1 / 2 / 2}
#frn-book-reader .frn-reader-body{grid-area:2 / 1 / 3 / 2}
#frn-book-reader .frn-reader-bottom{grid-area:3 / 1 / 4 / 2}
#frn-book-reader .frn-reader-top{display:flex;min-height:64px;gap:10px;padding-top:max(10px,env(safe-area-inset-top))}
#frn-book-reader .frn-reader-top>strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#frn-book-reader .frn-reader-tools{display:flex;flex:none;align-items:center}
#frn-book-reader .frn-reader-body{width:100%;min-height:0;min-width:0;max-width:100%;max-height:100%;overflow:auto!important}
#frn-book-reader .frn-reader-prose{min-width:0;overflow-wrap:anywhere}#frn-book-reader .frn-reader-prose pre{white-space:pre-wrap;overflow-wrap:anywhere}#frn-book-reader .frn-reader-prose table{display:block;max-width:100%;overflow:auto}
#frn-book-reader .frn-reader-bottom{display:flex;gap:10px;min-height:38px;padding-bottom:max(8px,env(safe-area-inset-bottom))}
#frn-book-reader.frn-reader-scrolled .frn-reader-shell{grid-template-rows:0 minmax(0,1fr) auto}
#frn-book-reader.frn-reader-scrolled .frn-reader-top{display:none}
#frn-book-reader .frn-reader-floating-close{top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:44px;height:44px;min-height:44px;z-index:10}
#frn-book-reader .frn-pdf-pages{display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:1120px;min-width:0}
#frn-book-reader .frn-pdf-page{max-width:100%;min-width:0}
#frn-book-reader .frn-pdf-page canvas{display:block;max-width:100%;height:auto!important;transform:none!important;transition:none!important;animation:none!important}
#frn-book-reader .frn-pdf-pages.is-zoomed{width:max-content;max-width:none;min-width:100%}
#frn-book-reader .frn-pdf-pages.is-zoomed .frn-pdf-page{width:calc(var(--pdf-page-width) * 1.6)!important;min-width:calc(var(--pdf-page-width) * 1.6);max-width:none!important}
.frn-book-cover-button{display:block;padding:0;border:0;background:transparent;cursor:pointer;width:100%;min-width:0;justify-self:start}
.frn-book-page .frn-book-cover-button .frn-book-cover{display:block;float:none;width:100%;height:auto;max-height:340px;object-fit:contain;margin:0}
.frn-book-cover-button:focus-visible{outline:3px solid #4384a0;outline-offset:4px}
@media(max-width:480px){#frn-book-reader .frn-reader-top{padding-left:10px;padding-right:10px;gap:6px}#frn-book-reader .frn-reader-tools{gap:4px}#frn-book-reader .frn-reader-tools button,#frn-book-reader .frn-reader-tools summary{padding:9px 8px;white-space:nowrap;min-height:40px}#frn-book-reader .frn-reader-bottom{font-size:10px}#frn-book-reader .frn-reader-body{padding-left:18px;padding-right:18px}#frn-book-reader.frn-reader-graphic .frn-reader-body{padding:8px}}
/* A reading popup on desktop; a screen-filling reading surface on phones. */
@media(min-width:761px){
 #frn-book-reader{width:min(1040px,calc(100vw - 64px));height:calc(100vh - 64px);height:calc(100dvh - 64px);max-height:920px;margin:auto;border:1px solid #ffffff50;border-radius:18px;box-shadow:0 28px 100px #05121a70}
 #frn-book-reader.frn-reader-graphic{width:min(1200px,calc(100vw - 64px))}
}
#frn-book-reader::backdrop{background:#0b1b2bcc;backdrop-filter:blur(5px)}
#frn-book-reader:fullscreen{width:100%;height:100dvh;max-height:none;max-width:none;margin:0;border:0;border-radius:0}
/* The loading layer is outside the scrolling page flow and never intercepts Close. */
#frn-book-reader .frn-reader-loading{position:absolute;inset:64px 0 38px;z-index:6;display:grid;place-items:center;pointer-events:none;background:var(--reader-paper);overflow:hidden}
#frn-book-reader.frn-reader-graphic .frn-reader-loading{background:#252b2e}
#frn-book-reader.frn-reader-scrolled .frn-reader-loading{top:0}
#frn-book-reader .frn-loading-word{position:relative;display:flex;gap:clamp(3px,1vw,12px);font:700 clamp(26px,5vw,58px)/1.2 'Courier New',monospace;color:#137f96;text-shadow:0 0 18px #1bbcd955;letter-spacing:.04em;padding:24px}
#frn-book-reader.frn-reader-graphic .frn-loading-word,#frn-book-reader[data-tone=night] .frn-loading-word{color:#b3f8ff;text-shadow:0 0 12px #56e8ff88,0 0 34px #56e8ff44}
#frn-book-reader .frn-loading-word>span{display:block;animation:frn-hologram-breathe 1.8s ease-in-out infinite;animation-delay:calc(var(--letter) * .09s)}
#frn-book-reader .frn-loading-word:after{content:"";position:absolute;inset:14px 20px;background:repeating-linear-gradient(transparent 0 4px,#5fcde233 4px 5px);mask-image:linear-gradient(transparent,#000,transparent);pointer-events:none}
#frn-book-reader .frn-reader-loading.is-leaving{animation:frn-loading-clear .55s ease-out both}
#frn-book-reader .frn-reader-loading.is-leaving .frn-loading-word>span{animation:frn-hologram-dissolve .5s ease-out both;animation-delay:calc(var(--letter) * .018s)}
@keyframes frn-hologram-breathe{0%,100%{opacity:.65;transform:translateY(2px)}50%{opacity:1;transform:translateY(-2px)}}
@keyframes frn-hologram-dissolve{0%{opacity:1;filter:blur(0);transform:translateY(0)}100%{opacity:0;filter:blur(9px);transform:translateY(-24px) scale(1.12)}}
@keyframes frn-loading-clear{0%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){#frn-book-reader .frn-reader-loading,#frn-book-reader .frn-loading-word>span{animation:none!important}#frn-book-reader .frn-reader-loading.is-leaving{display:none}}
