body.reader{background:#fff;overflow:hidden}.reader .app-shell{background:#fff}.reader *{cursor:auto}.r-top{z-index:5;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:linear-gradient(#fff 60%,rgba(255,255,255,0));align-items:center;gap:10px;display:flex;position:absolute;top:0;left:0;right:0}.r-home img{mix-blend-mode:multiply;height:38px;display:block}.r-title{flex-direction:column;flex:1;min-width:0;display:flex}.r-title b{font-family:var(--serif);color:var(--brown);white-space:nowrap;text-overflow:ellipsis;font-size:18px;overflow:hidden}.r-title span{color:var(--grey);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.r-make{flex:none}.reader .reader-controls{bottom:calc(88px + env(safe-area-inset-bottom));align-items:center;gap:14px;left:50%;right:auto;transform:translate(-50%)}.reader .page-button{width:44px;height:44px;color:var(--brown);cursor:pointer;background:#fff;border-color:rgba(107,51,34,.3)}.r-state{color:var(--grey);text-align:center;min-width:60px;font-size:13px}.r-hint{z-index:4;left:0;right:0;bottom:calc(146px + env(safe-area-inset-bottom));text-align:center;color:var(--grey);pointer-events:none;margin:0;font-size:13px;transition:opacity .6s;position:absolute}.r-hint.gone{opacity:0}.r-actions{z-index:5;padding:12px 12px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(rgba(255,255,255,0),#fff 35%);flex-wrap:wrap;justify-content:center;gap:8px;display:flex;position:absolute;bottom:0;left:0;right:0}.r-actions .btn{padding:10px 14px}.manage-bar{z-index:6;top:calc(64px + env(safe-area-inset-top));border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:8px;padding:6px 6px 6px 14px;font-size:13px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 4px 14px rgba(0,0,0,.08)}.manage-bar[hidden]{display:none}.c-logo{mix-blend-mode:multiply;width:110px;margin:0 auto 6px;display:block}.c-line{margin:6px 0;font-size:16px}.pbtns{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:460px){.r-actions{gap:6px;padding-left:8px;padding-right:8px}.r-actions .btn{white-space:nowrap;padding:9px 10px;font-size:13px}}@media (max-width:400px){.manage-bar span{display:none}}@media (max-width:350px){.r-actions .btn{padding:8px 7px;font-size:12px}}.r-actions{pointer-events:none}.r-actions>*{pointer-events:auto}.fb2d{z-index:1;padding:calc(84px + env(safe-area-inset-top)) 14px calc(150px + env(safe-area-inset-bottom));box-sizing:border-box;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.fb2d-stage{justify-content:center;align-items:center;gap:0;width:100%;height:100%;display:flex}.fb2d-page{background:#fff;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.18),0 2px 6px rgba(0,0,0,.12)}.fb2d-page img{object-fit:cover;-webkit-user-drag:none;width:100%;height:100%;display:block}.fb2d-next .fb2d-page{animation:.28s ease-out fb2dIn}.fb2d-prev .fb2d-page{animation:.28s ease-out fb2dInL}@-webkit-keyframes fb2dIn{0%{opacity:.3;-webkit-transform:translate(30px)}}@keyframes fb2dIn{0%{opacity:.3;transform:translate(30px)}}@-webkit-keyframes fb2dInL{0%{opacity:.3;-webkit-transform:translate(-30px)}}@keyframes fb2dInL{0%{opacity:.3;transform:translate(-30px)}}.loading-progress{white-space:nowrap;color:#888;font-size:12px;position:absolute;top:18px;left:50%;transform:translate(-50%)}body.has-manage .fb2d{padding-top:calc(124px + env(safe-area-inset-top))}@media (max-width:380px){.reader .reader-controls{bottom:calc(128px + env(safe-area-inset-bottom))}.r-hint{bottom:calc(186px + env(safe-area-inset-bottom))}.fb2d{padding-bottom:calc(186px + env(safe-area-inset-bottom))}}:root{color:#111;font-synthesis:none;background:#fff;font-family:Arial,sans-serif}*{box-sizing:border-box;cursor:default}html,body{background:#fff;min-width:320px;min-height:100%;margin:0;overflow:hidden}button{font:inherit}.app-shell{background:#fff;width:100vw;height:100svh;position:relative;overflow:hidden}#book-scene{touch-action:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;pointer-events:none!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.library,.reader-controls,.loading-card{z-index:2;position:absolute}.library{flex-direction:column;gap:8px;display:flex;top:50%;left:22px;transform:translateY(-50%)}.library-book,.page-button{color:rgba(0,0,0,.38);background:rgba(255,255,255,.84);border:1px solid rgba(0,0,0,.12);border-radius:50%;align-items:center;justify-items:center;padding:0;transition:color .15s,border-color .15s,opacity .15s;display:grid}.library-book{width:30px;height:30px;font-size:9px}.library-book:hover,.library-book.is-active,.page-button:hover:not(:disabled){color:#000;border-color:rgba(0,0,0,.48);outline:none}.library-book:focus-visible{color:#000;border-color:rgba(0,0,0,.48);outline:none}.page-button:focus-visible{color:#000;border-color:rgba(0,0,0,.48);outline:none}.library-book.is-active{color:#fff;background:#111;border-color:#111}.reader-controls{gap:8px;display:flex;bottom:22px;left:50%;transform:translate(-50%)}.page-button{width:38px;height:38px;padding-bottom:2px;font:24px/1 Georgia,serif}.page-button:disabled{opacity:.16}.loading-card{opacity:0;pointer-events:none;align-items:center;justify-items:center;width:20px;height:20px;transition:opacity .15s;display:grid;top:50%;left:50%;transform:translate(-50%,-50%)}.loading-card.is-visible{opacity:1}.loading-pulse{background:#111;border-radius:50%;width:5px;height:5px;animation:.85s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.2;transform:scale(.7)}}@media (max-width:620px){.library{flex-direction:row;top:auto;bottom:24px;left:18px;transform:none}.reader-controls{bottom:20px;left:auto;right:18px;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
