@import url(https://fonts.googleapis.com/css2?family=Literata:ital,opsz,wght@0,7..72,200..900;1,7..72,200..900&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}.bookshelf-container{background-color:#1a1a1a;display:flex;flex-direction:row;font-family:Georgia,Times New Roman,serif;height:100vh;height:100dvh;overflow:hidden;position:relative;width:100vw}.user-auth-container{display:flex;justify-content:center;margin-top:auto;padding:20px 30px 30px}.google-login-btn{align-items:center;background:#fff;border:none;border-radius:24px;box-shadow:0 2px 10px #0000004d;color:#333;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;padding:10px 20px;transition:transform .2s,box-shadow .2s}.google-login-btn:hover{box-shadow:0 4px 15px #0006;transform:translateY(-2px)}.google-icon{flex-shrink:0}.user-menu-wrapper{align-items:center;display:flex;gap:12px;position:relative}.upload-book-btn-icon{align-items:center;background:#4ade801a;border:2px solid #4ade8066;border-radius:50%;color:#4ade80;cursor:pointer;display:flex;height:44px;justify-content:center;padding:0;transition:all .2s ease;width:44px}.upload-book-btn-icon:hover{background:#4ade8033;border-color:#4ade80;transform:scale(1.05)}.upload-book-btn-icon svg{color:inherit}.user-avatar-btn{background:#333;border:2px solid #ffffff4d;border-radius:50%;cursor:pointer;height:44px;overflow:hidden;padding:0;transition:border-color .2s,transform .2s;width:44px}.user-avatar-btn:hover{border-color:#fff9;transform:scale(1.05)}.user-avatar{height:100%;object-fit:cover;width:100%}.user-avatar-placeholder{align-items:center;color:#fff;display:flex;font-size:18px;font-weight:600;height:100%;justify-content:center;text-transform:uppercase;width:100%}.user-dropdown{animation:dropdownFadeIn .2s ease;background:#222;border-radius:12px;bottom:54px;box-shadow:0 4px 20px #00000080;min-width:200px;overflow:hidden;position:absolute;right:0}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-info{border-bottom:1px solid #ffffff1a;display:flex;flex-direction:column;gap:4px;padding:16px}.user-name{color:#fff;font-size:14px;font-weight:600}.user-email{color:#888;font-size:12px}.logout-btn{background:none;border:none;color:#ff6b6b;cursor:pointer;font-size:14px;padding:14px 16px;text-align:left;transition:background .2s;width:100%}.logout-btn:hover{background:#ff6b6b1a}.user-credits{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:12px 16px}.credits-label{color:#888;font-size:13px}.credits-amount{color:#4ade80;font-size:14px;font-weight:600}.buy-credits-btn{background:none;border:none;border-bottom:1px solid #ffffff1a;color:#4ade80;cursor:pointer;font-size:14px;padding:14px 16px;text-align:left;transition:background .2s;width:100%}.buy-credits-btn:hover{background:#4ade801a}.upload-modal-overlay{--uf-chrome-border:#ffebcd26;--uf-cream:#f6f4ed;--uf-cream-shade:#eae4d3;--uf-ink:#2b241a;--uf-print:#625a41;--uf-rule-blue:#5e76a947;--uf-rule-red:#c45a4280;--uf-brass:#d8b271;--uf-stamp:#b4533c;--uf-text-warm:#f4ead9;--uf-text-dim:#f4ead99e;--uf-serif:"Literata","Iowan Old Style","Palatino",Georgia,"Songti SC",serif;--uf-type:"American Typewriter","Courier New",monospace;--uf-line:28px;align-items:center;animation:fadeIn .2s ease;background:#0a0705b8;bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:2000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.upload-modal-content{animation:slideUp .3s ease;background:#1a140f;border:1px solid var(--uf-chrome-border);border-radius:10px;box-shadow:0 12px 30px #00000073;font-family:var(--uf-serif);max-width:420px;padding:20px 22px 18px;width:min(420px,calc(100vw - 32px))}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.upload-modal-content h2{color:#fff;font-size:1.8rem;font-weight:400;margin:0 0 30px;text-align:center}.upload-modal-content button:focus-visible,.upload-modal-content input:focus-visible,.upload-modal-content select:focus-visible{outline:2px solid var(--uf-brass);outline-offset:2px}.uf-form-no{color:#4a4330;font-family:var(--uf-type);font-size:11px;letter-spacing:.18em;line-height:var(--uf-line);margin:0 0 var(--uf-line);text-align:center;text-transform:uppercase}.uf-form-no small{color:inherit;font-size:inherit;font-style:normal;letter-spacing:inherit}.uf-doc{animation:slideUp .3s ease;background:repeating-linear-gradient(#0000,#0000 calc(var(--uf-line) - 1px),var(--uf-rule-blue) calc(var(--uf-line) - 1px),var(--uf-rule-blue) var(--uf-line)),linear-gradient(160deg,var(--uf-cream) 82%,var(--uf-cream-shade));border-radius:10px;box-shadow:inset 0 1px 0 #cfc8b8,0 24px 60px #0009,0 4px 12px #0006;color:var(--uf-ink);font-family:var(--uf-serif);max-width:480px;padding:var(--uf-line) 36px calc(var(--uf-line)*2) 44px;position:relative;width:min(480px,calc(100vw - 32px))}.uf-doc button:focus-visible,.uf-doc input:focus-visible,.uf-doc select:focus-visible{outline:2px solid var(--uf-stamp);outline-offset:2px}.uf-doc:before{border-left:1.5px solid var(--uf-rule-red);bottom:0;content:"";left:22px;position:absolute;top:0}.uf-doc p{margin:0}.uf-hole{background:radial-gradient(circle at 40% 35%,#23201a,#0d0b08);border-radius:50%;bottom:8px;box-shadow:0 1px 0 #ffffff8c;height:13px;left:50%;margin-left:-7px;position:absolute;width:13px}.uf-print{color:var(--uf-print);font-family:var(--uf-type);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase}.uf-entry,.uf-print{line-height:var(--uf-line)}.uf-entry{color:var(--uf-ink);font-family:var(--uf-serif);font-size:14px}.uf-row{align-items:baseline;display:flex;gap:12px;justify-content:space-between;line-height:var(--uf-line)}.uf-gap{height:var(--uf-line)}.uf-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.uf-stamp-text{color:var(--uf-stamp)}.uf-actions{display:flex;gap:10px;margin-top:var(--uf-line)}.uf-btn-primary{align-items:center;background:#2b241a;border:none;border-radius:6px;color:#f6f4ed;cursor:pointer;display:flex;flex:1.6 1;font-family:var(--uf-serif);font-size:15px;font-weight:600;height:calc(var(--uf-line)*2);justify-content:center;padding:0;transition:background .2s,transform .15s,opacity .2s}.uf-btn-primary:hover{background:#3d3423}.uf-btn-primary:active{transform:translateY(1px)}.uf-btn-primary:disabled{cursor:not-allowed;opacity:.5}.uf-btn-quiet{background:none;border:1px solid #f4ead938;border-radius:10px;color:var(--uf-text-dim);cursor:pointer;flex:1 1;font-family:var(--uf-serif);font-size:14px;padding:12px 0;transition:background .2s,color .2s}.uf-btn-quiet:hover{background:#f4ead912;color:var(--uf-text-warm)}.uf-btn-quiet:disabled{cursor:not-allowed;opacity:.5}.uf-btn-quiet-paper{align-items:center;background:none;border:1.5px solid #2b241a80;border-radius:6px;color:var(--uf-ink);cursor:pointer;display:flex;flex:1 1;font-family:var(--uf-serif);font-size:14px;height:calc(var(--uf-line)*2);justify-content:center;padding:0;transition:background .2s}.uf-btn-quiet-paper:hover{background:#2b241a0f}.uf-btn-quiet-paper:disabled{cursor:not-allowed;opacity:.5}.uf-doc-status{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;height:calc(var(--uf-line)*5);padding:var(--uf-line) 0;text-align:center}.uf-doc-status .uf-spinner{margin:12px 0}.uf-spinner{animation:spin 1s linear infinite;border:3px solid #2b241a26;border-radius:50%;border-top-color:#2b241a8c;height:32px;width:32px}@keyframes spin{to{transform:rotate(1turn)}}.uf-doc-affix{cursor:pointer;display:block}.uf-affix-box{align-items:center;border:2px dashed #2b241a94;border-radius:5px 10px 10px 5px;display:flex;flex-direction:column;gap:8px;height:calc(var(--uf-line)*6);justify-content:center;margin:var(--uf-line) auto;position:relative;transition:transform .3s cubic-bezier(.2,.9,.3,1.2),border-color .25s;width:118px}.uf-affix-box:before{border-left:1px dashed #2b241a47;content:"";height:64px;left:9px;position:absolute;top:6px}.uf-plus{align-items:center;border:1.5px solid #2b241ab3;border-radius:50%;color:#2b241ab3;display:flex;font-size:24px;font-weight:300;height:40px;justify-content:center;transition:all .25s;width:40px}.uf-affix-note{box-sizing:border-box;color:var(--uf-print);font-family:var(--uf-type);font-size:9.5px;letter-spacing:.2em;padding:0 10px;text-align:center;text-transform:uppercase;width:100%}.uf-doc-affix:hover .uf-affix-box{border-color:var(--uf-stamp);transform:translateY(-4px)}.uf-doc-affix:hover .uf-plus{border-color:var(--uf-stamp);color:var(--uf-stamp)}@media (prefers-reduced-motion:reduce){.uf-doc-affix:hover .uf-affix-box{transform:none}.uf-stamp{animation:none}}.uf-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:16.5px;font-style:italic;font-weight:600;overflow:hidden}.uf-card-author,.uf-card-title{line-height:var(--uf-line);margin:0}.uf-card-author{color:var(--uf-ink);font-size:13.5px}.uf-card-author:before{color:var(--uf-print);content:"by ";font-style:italic}.uf-mode-selector{display:flex;flex-direction:column}.uf-mode-row{align-items:baseline;cursor:pointer;display:flex;font-size:14px;gap:10px;line-height:var(--uf-line)}.uf-sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.uf-box{align-self:center;border:1.5px solid var(--uf-ink);border-radius:2px;flex:none;height:13px;position:relative;width:13px}.uf-mode-row.checked .uf-box:after{color:var(--uf-ink);content:"✓";font-size:16px;left:0;position:absolute;top:-6px}.uf-mode-note{margin-left:auto}.uf-mode-row.dim{color:var(--uf-print)}.uf-mode-row.dim .uf-box{border-color:#9a917a}.uf-lang-line{align-items:flex-end}.uf-lang-line select{background:#0000;border:none;border-bottom:1px solid #b9b19d;color:var(--uf-ink);cursor:pointer;font-family:var(--uf-serif);font-size:14px;line-height:1.1;padding:1px 2px 0}.uf-lang-line select:disabled{cursor:not-allowed;opacity:.6}.uf-lang-fields{align-items:flex-end;display:inline-flex}.uf-arrow{align-self:center;margin:0 6px}.uf-lang-warning{line-height:var(--uf-line);margin:0;text-align:center}.uf-fee-zone{position:relative}.uf-fee-lines{box-sizing:border-box;min-width:0;padding-right:92px}.uf-fee-lines .uf-row{max-width:190px}.uf-fee-lines .uf-entry{font-size:13.5px}.uf-need-more{font-size:10px;letter-spacing:.16em;line-height:var(--uf-line);margin:0}.uf-stamp{animation:uf-stamp-in .4s cubic-bezier(.3,1.6,.5,1) both;animation-delay:.35s;border:2.5px double var(--uf-stamp);border-radius:6px;color:var(--uf-stamp);font-family:var(--uf-type);mix-blend-mode:multiply;opacity:.88;padding:7px 13px 6px;position:absolute;right:0;text-align:center;top:0;transform:rotate(-5deg)}@keyframes uf-stamp-in{0%{opacity:0;transform:rotate(-5deg) scale(1.7)}to{opacity:.88;transform:rotate(-5deg) scale(1)}}.uf-stamp-num{font-feature-settings:"tnum";font-size:19px;font-variant-numeric:tabular-nums;letter-spacing:.04em}.uf-stamp-unit{font-size:9.5px;letter-spacing:.3em;text-transform:uppercase}@media (max-width:480px){.upload-modal-content{padding:16px 16px 14px}.upload-modal-overlay{padding:12px}.uf-doc{max-width:calc(100vw - 24px);padding:var(--uf-line) 24px calc(var(--uf-line)*2) 32px;width:calc(100vw - 24px)}}.bookshelf-wall{background-position:0 0;background-repeat:no-repeat;background-size:cover;box-shadow:inset -20px 0 50px #00000080;flex-grow:1;height:100%;overflow:hidden;position:relative}.shelf-content{height:100%;position:relative;width:100%}.books-grid{align-items:flex-end;display:flex;flex-wrap:nowrap;gap:0;left:0;overflow-x:auto;overflow-y:hidden;padding-left:40px;padding-top:20px;position:absolute;right:0;scrollbar-width:none}.books-grid::-webkit-scrollbar{display:none}.shelf-slide-up{animation:shelf-rise-in .42s cubic-bezier(.22,.61,.36,1)}.shelf-slide-down{animation:shelf-drop-in .42s cubic-bezier(.22,.61,.36,1)}@keyframes shelf-rise-in{0%{opacity:0;transform:translateY(18%)}to{opacity:1;transform:translateY(0)}}@keyframes shelf-drop-in{0%{opacity:0;transform:translateY(-18%)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.shelf-slide-down,.shelf-slide-up{animation:none}}.shelf-actions{gap:8px;transform:scale(1);transform:scale(var(--shelf-scale,1));transform-origin:left top;z-index:60}.shelf-actions,.shelf-pagination{align-items:center;display:flex;position:absolute}.shelf-pagination{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#00000059;border-radius:999px;bottom:16px;color:#ffffffe6;font-size:12px;gap:6px;padding:4px 8px;right:16px;z-index:70}.shelf-page-btn{align-items:center;background:#ffffff26;border:none;border-radius:50%;color:#fffffff2;cursor:pointer;display:flex;font-size:16px;height:24px;justify-content:center;line-height:1;padding:0;transition:background .15s ease,opacity .15s ease;width:24px}.shelf-page-btn:hover:not(:disabled){background:#ffffff4d}.shelf-page-btn:disabled{cursor:default;opacity:.35}.shelf-page-indicator{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:28px;text-align:center}.shelf-avatar-btn{background:#0000004d;border:none;border-radius:50%;cursor:pointer;height:29px;overflow:hidden;padding:0;transition:opacity .2s ease;width:29px}.shelf-avatar-btn:hover{opacity:.8}.shelf-avatar-btn .user-avatar{height:100%;object-fit:cover;width:100%}.shelf-avatar-btn .user-avatar-placeholder{align-items:center;background:#64646480;color:#fff;display:flex;font-size:14px;height:100%;justify-content:center;width:100%}.shelf-signin-btn{align-items:center;background:#fff4e414;border:1px solid #fff4e43d;border-radius:10px;color:#ffffffe6;cursor:pointer;display:flex;font-size:12px;gap:6px;padding:6px 12px;transition:background .15s ease,border-color .15s ease;white-space:nowrap}.shelf-signin-btn:hover{background:#fff4e424;border-color:#fff4e466}.shelf-github-btn{align-items:center;background:none;border:none;color:#ffffffe6;display:flex;height:30px;justify-content:center;text-decoration:none;transition:opacity .2s ease;width:30px}.shelf-github-btn:hover{opacity:.7}.shelf-help-wrapper{position:relative}.shelf-help-btn{align-items:center;background:none;border:none;color:#ffffffe6;cursor:pointer;display:flex;height:30px;justify-content:center;padding:0;transition:opacity .2s ease;width:30px}.shelf-help-btn:hover{opacity:.7}.shelf-help-dropdown{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e1e1ef2;border-radius:8px;bottom:36px;box-shadow:0 8px 32px #00000080;min-width:140px;padding:4px;position:absolute;right:0;z-index:100}.shelf-help-item{align-items:center;border-radius:9px;color:#fffaf0e0;display:flex;font-size:13.5px;gap:10px;padding:9px 12px;text-decoration:none;transition:background .15s ease,color .15s ease}.shelf-help-item:hover{background:#fff4e41a;color:#fff}.shelf-help-item svg{flex-shrink:0;opacity:.75}.shelf-help-item-btn{background:#0000;border:none;cursor:pointer;font-family:inherit;text-align:left;width:100%}.shelf-menu-wrapper{align-items:center;display:flex;position:relative}.dock-menu{animation:dock-menu-in .16s ease both;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#181511f0;border:1px solid #fff4e417;border-radius:14px;bottom:calc(100% + 14px);box-shadow:0 18px 44px #00000073,0 2px 8px #0000004d;left:50%;padding:6px;position:absolute;transform:translateX(-50%);z-index:100}@keyframes dock-menu-in{0%{opacity:0;transform:translateX(-50%) translateY(6px) scale(.97)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}.dock-menu-divider{background:#fff4e417;height:1px;margin:6px 8px}.shelf-help-dropdown.dock-menu{min-width:150px}.shelf-user-dropdown{min-width:216px}.shelf-user-dropdown .user-info{display:flex;flex-direction:column;gap:2px;padding:10px 12px 8px}.shelf-user-dropdown .user-name{color:#fff;font-size:14px;font-weight:600}.shelf-user-dropdown .user-email{color:#fffaf08c;font-size:12px}.shelf-user-dropdown .user-credits{align-items:baseline;display:flex;justify-content:space-between;padding:8px 12px}.shelf-user-dropdown .credits-label{color:#fffaf099;font-size:13px}.shelf-user-dropdown .credits-amount{font-feature-settings:"tnum";color:#fff;font-size:13.5px;font-variant-numeric:tabular-nums;font-weight:600}.shelf-user-dropdown .buy-credits-btn,.shelf-user-dropdown .logout-btn{border:none;border-radius:9px;cursor:pointer;font-family:inherit;font-size:13.5px;padding:9px 12px;text-align:left;transition:background .15s ease,color .15s ease;width:100%}.shelf-user-dropdown .buy-credits-btn{background:#fff4e41f;color:#fff}.shelf-user-dropdown .buy-credits-btn:hover{background:#fff4e433}.shelf-user-dropdown .logout-btn{background:none;color:#fffaf08c}.shelf-user-dropdown .logout-btn:hover{background:#fff4e414;color:#fff}.shelf-theme-btn{align-items:center;background:#fff4e414;border:none;border-radius:50%;cursor:pointer;display:flex;height:28px;justify-content:center;padding:0;transition:background .15s ease;width:28px}.shelf-theme-btn:hover{background:#fff4e429}.shelf-theme-dot{border:1px solid #fff4e466;border-radius:50%;flex-shrink:0;height:14px;width:14px}.shelf-theme-dropdown{min-width:150px}.shelf-theme-option{align-items:center;background:none;border:none;border-radius:9px;color:#fffaf0e0;cursor:pointer;display:flex;font-family:inherit;font-size:13.5px;gap:10px;padding:9px 12px;text-align:left;transition:background .15s ease,color .15s ease;width:100%}.shelf-theme-option:hover{background:#fff4e41a;color:#fff}.shelf-theme-option.active{background:#fff4e424;color:#fff}.book-spine-container{box-shadow:-2px 0 4px -1px #00000040,3px 0 4px -1px #0000004d,0 -2px 4px -2px #0003,0 3px 5px -2px #00000059,0 0 8px #00000026;cursor:pointer;flex-shrink:0;height:300px;height:var(--book-height,300px);margin-bottom:0;position:relative;transform-origin:bottom center;transition:transform .2s ease,filter .2s ease;width:56.61px;width:calc(var(--book-height, 300px)*var(--book-spine-ratio, .1887));z-index:1}.book-spine-container:hover{box-shadow:inset 3px 0 8px #fff3,inset -3px 0 8px #0006,-3px 0 8px -1px #00000059,5px 0 8px -1px #0006,0 -3px 8px -2px #0000004d,0 5px 10px -2px #00000073,0 0 14px #0003;transform:scale(1.05) translateY(-5px);z-index:50}.book-spine-img{border-radius:2px;display:block;height:100%;object-fit:contain;object-position:center bottom;width:100%}.book-spine-container:after{border-radius:2px;box-shadow:inset 2px 0 4px #ffffff14,inset -2px 0 4px #0000002e,inset 0 2px 3px #0000001f,inset 0 -2px 3px #0000001f;content:"";inset:0;pointer-events:none;position:absolute;z-index:2}.book-spine-default{align-items:center;background:#555;border-radius:3px;box-shadow:inset 2px 0 5px #ffffff1a,inset -2px 0 5px #0000004d;color:#ffffffe6;display:flex;height:100%;justify-content:center;padding:5px 0;text-orientation:mixed;width:100%;writing-mode:vertical-rl}.book-spine-default.book-spine-pending{background:linear-gradient(90deg,#4c4942f2,#777268f2,#393730f2),#5f5a52;filter:blur(1.5px) saturate(.65);opacity:.86}.book-spine-default.book-spine-pending:before{background:#fffaf02e;border-radius:999px;content:"";height:72%;width:28%}.spine-title{font-size:.9rem;font-weight:500;letter-spacing:1px;max-height:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-preview-sidebar{background:#111;border-left:1px solid #ffffff1a;box-shadow:-10px 0 30px #00000080;display:flex;flex-direction:column;height:100%;min-width:350px;position:relative;right:auto;top:auto;width:350px;z-index:100}.preview-content{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:40px 30px;position:relative;scrollbar-color:#fff3 #0000;scrollbar-width:thin;width:100%}.preview-content::-webkit-scrollbar{width:6px}.preview-content::-webkit-scrollbar-track{background:#0000}.preview-content::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.preview-content::-webkit-scrollbar-thumb:hover{background:#fff6}.preview-cover{align-items:center;box-shadow:0 10px 30px #00000080;display:flex;flex-shrink:0;justify-content:center;margin-bottom:30px;min-height:200px;overflow:hidden;width:100%}.preview-cover,.preview-cover img{border-radius:8px;max-height:280px}.preview-cover img{max-width:100%;object-fit:contain;transition:opacity .2s ease-in-out}.preview-cover img.cover-loading{opacity:0}.preview-cover img.cover-loaded{opacity:1}.default-preview-cover{color:#ffffffb3;padding:20px;text-align:center}.preview-info{color:#fff;text-align:center}.preview-info h2{font-size:1.8rem;font-weight:400;margin:0 0 10px}.preview-info h3{color:#aaa;font-size:1.2rem;font-style:italic;font-weight:300;margin:0 0 15px}.preview-info .author{color:#888;font-size:1rem;margin-bottom:40px}.book-completed-badge{align-items:center;background:#4ade801a;border:1px solid #4ade804d;border-radius:20px;color:#4ade80;display:flex;font-size:.85rem;font-weight:500;gap:6px;margin-bottom:15px;margin-left:auto;margin-right:auto;padding:8px 16px;width:fit-content}.book-completed-badge svg{height:14px;width:14px}.book-actions{display:flex;flex-direction:column;gap:8px}.mark-complete-btn{align-items:center;background:#0000;border:1px solid #444;border-radius:30px;color:#888;cursor:pointer;display:flex;font-size:.85rem;gap:6px;justify-content:center;padding:10px 40px;transition:all .2s;width:100%}.mark-complete-btn:hover{background:#4ade800d;border-color:#4ade80;color:#4ade80}.mark-complete-btn.completed{background:#4ade801a;border-color:#4ade80;color:#4ade80}.remove-book-btn{font-size:.85rem}.book-spine-wrapper{flex-shrink:0;position:relative}.book-spine-wrapper.processing .book-spine-container{filter:blur(2px) brightness(.6);opacity:.7}.book-spine-wrapper.processing .book-spine-container:hover{filter:blur(1.5px) brightness(.7);opacity:.8;transform:none}.book-processing-overlay{align-items:center;display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute;z-index:10}.processing-spinner{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}.book-status-processing{align-items:center;border:1px solid #333;border-radius:16px;color:#aaa;display:flex;flex-direction:column;font-size:.95rem;gap:8px;justify-content:center;padding:15px 40px;width:100%}.book-status-processing>.processing-spinner{margin-bottom:2px}.translation-progress-bar{background:#ffffff1a;border-radius:2px;height:4px;overflow:hidden;width:100%}.translation-progress-fill{background:linear-gradient(90deg,#4ade80,#22c55e);border-radius:2px;height:100%;transition:width .5s ease}.book-status-error{border:1px solid #ff6b6b33;border-radius:30px;color:#ff6b6b;font-size:.95rem;padding:15px 40px;text-align:center;width:100%}.safe-to-close-hint{color:#777;display:block;font-size:.8rem;font-style:italic;margin-top:6px}.upload-callout{animation:upload-callout-in .45s cubic-bezier(.22,1.2,.36,1);background:linear-gradient(180deg,#fcf6e8fa,#f0e4c8fa);border:1px solid #78502859;border-radius:4px;box-shadow:0 14px 32px #00000073,0 2px 4px #00000040,inset 0 1px 0 #fff9,inset 0 -1px 0 #78502814;color:#3a2817;cursor:pointer;font-family:Literata,New York,ui-serif,Georgia,Times New Roman,serif;font-size:.82rem;line-height:1.45;max-width:min(280px,70vw);padding:10px 16px 12px;position:fixed;text-align:center;transform:translateX(-50%);width:max-content;z-index:50}.upload-callout strong{color:#2a1a0e;display:block;font-size:.92rem;font-weight:600;letter-spacing:.005em;margin-bottom:2px}.upload-callout strong:after{background:#78502866;content:"";display:block;height:1px;margin:4px auto 5px;width:28px}.upload-callout:after{border-left:7px solid #0000;border-right:7px solid #0000;border-top:7px solid #f0e4c8fa;content:"";filter:drop-shadow(0 1px 0 rgba(120,80,40,.45)) drop-shadow(0 3px 3px rgba(0,0,0,.3));height:0;left:50%;left:var(--tail-left,50%);position:absolute;top:calc(100% - 1px);transform:translateX(-50%);width:0}@keyframes upload-callout-in{0%{opacity:0;transform:translateX(-50%) translateY(6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.book-spine-wrapper.just-uploaded .book-spine-container{animation:just-uploaded-glow 2.6s ease-out 1}@keyframes just-uploaded-glow{0%{box-shadow:0 0 0 0 #daa55000}35%{box-shadow:0 0 22px 4px #daa55080}to{box-shadow:0 0 0 0 #daa55000}}@media (max-width:768px){.bookshelf-container{flex-direction:column}.bookshelf-wall{background-position:-30px top;height:100%;width:100%}.shelf-actions{gap:6px}.shelf-avatar-btn{height:30px;width:30px}.shelf-help-btn{height:35px;width:35px}.shelf-help-btn svg{height:20px;width:20px}.shelf-signin-btn{font-size:11px;padding:4px 10px}.shelf-signin-btn .google-icon{height:14px;width:14px}.shelf-user-dropdown{left:0;transform:none}.shelf-user-dropdown.dock-menu{animation:none}.books-grid{padding-left:16px}.book-spine-container{height:30vh;height:var(--book-height,30vh);max-width:none;min-width:0;min-width:auto;touch-action:manipulation;width:5.661vh;width:calc(var(--book-height, 30vh)*var(--book-spine-ratio, .1887))}.book-preview-sidebar{display:none}.mobile-book-sheet-overlay{animation:fadeIn .2s ease;background:#0009;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.mobile-book-sheet{animation:slideUp .3s ease;background:#1a1a1a;border-radius:20px 20px 0 0;bottom:0;left:0;max-height:70vh;overflow-y:auto;padding:20px 20px calc(20px + env(safe-area-inset-bottom, 0px));position:fixed;right:0;z-index:1001}.mobile-book-sheet .sheet-handle{background:#ffffff4d;border-radius:2px;height:4px;margin:0 auto 20px;width:40px}.mobile-book-sheet .sheet-cover{border-radius:8px;box-shadow:0 8px 20px #0006;display:block;margin:0 auto 16px;max-height:180px;min-height:160px;object-fit:contain;width:120px}.mobile-book-sheet .sheet-title{color:#fff;font-size:1.4rem;font-weight:400;margin:0 0 6px;text-align:center}.mobile-book-sheet .sheet-translated-title{color:#aaa;font-size:1rem;font-style:italic;margin:0 0 8px;text-align:center}.mobile-book-sheet .sheet-author{color:#888;font-size:.9rem;margin:0 0 20px;text-align:center}.mobile-book-sheet .sheet-read-btn{background:#fff;border:none;border-radius:12px;color:#1a1a1a;cursor:pointer;display:block;font-size:1rem;font-weight:600;margin-bottom:10px;padding:14px;touch-action:manipulation;width:100%}.mobile-book-sheet .sheet-read-btn:active{opacity:.8}.mobile-book-sheet .sheet-status{color:#aaa;font-size:.9rem;padding:14px;text-align:center}.mobile-book-sheet .remove-book-btn{margin-top:8px}.mobile-book-sheet .progress-section{margin-bottom:16px}}.credits-modal{max-width:450px}.credits-balance{color:#ffffffb3;font-size:1rem;margin:0 0 30px;text-align:center}.credits-balance strong{color:var(--uf-brass);font-size:1.2rem}.credit-packages{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.credit-package{align-items:center;background:#ffffff0d;border:2px solid #ffffff1a;border-radius:12px;cursor:pointer;display:flex;gap:15px;padding:20px;transition:background .15s ease,border-color .15s ease}.credit-package:hover{background:#ffffff14;border-color:var(--uf-brass)}.package-credits{color:#fff;font-size:1.5rem;font-weight:700}.package-label{color:#888;flex:1 1;font-size:.9rem;text-align:left}.package-price{color:var(--uf-brass);font-size:1.2rem;font-weight:600}.credits-info{color:#ffffff80;font-size:.85rem;margin:0 0 20px;text-align:center}.progress-section{margin-bottom:20px;width:100%}.progress-bar{background:#ffffff1a;border-radius:3px;height:6px;margin-bottom:8px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#4ade80,#22c55e);border-radius:3px;height:100%;transition:width .3s ease}.progress-text{color:#4ade80;display:block;font-size:.85em;font-weight:500;text-align:center}.remove-book-btn{align-items:center;background:#0000;border:1px solid #444;border-radius:30px;color:#666;cursor:pointer;display:flex;font-size:.85em;gap:6px;justify-content:center;padding:10px 40px;transition:border-color .2s,color .2s;width:100%}.remove-book-btn:hover{border-color:#ff6b6b;color:#ff6b6b}.empty-shelf-guide{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:4}.empty-shelf-content{animation:empty-shelf-fade-in .6s ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffffd9;border-radius:16px;max-width:420px;padding:40px 30px;text-align:center}.empty-shelf-content h2{color:#1a1a1a;font-family:Literata,Georgia,serif;font-size:28px;font-weight:600;margin:0 0 16px}.empty-shelf-desc{color:#555;font-size:15px;line-height:1.6;margin:0 0 6px}.empty-shelf-desc-en{color:#999;font-size:13px;line-height:1.5;margin:0 0 24px}.empty-shelf-login-btn{background:#fff;border:none;border:1px solid #ddd;border-radius:8px;color:#1a1a1a;cursor:pointer;display:inline-block;font-size:15px;font-weight:500;padding:10px 28px;transition:all .2s}.empty-shelf-login-btn:hover{border-color:#999}@keyframes empty-shelf-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.empty-shelf-content{margin:0 16px;padding:30px 20px}.empty-shelf-content h2{font-size:22px}}.bookshelf-wall.closet-mode{background:#171210;box-shadow:none}.closet-suspense{align-items:center;background:#171210;display:flex;inset:0;justify-content:center;position:absolute}.shelf-actions--floating{backdrop-filter:blur(22px) saturate(135%);-webkit-backdrop-filter:blur(22px) saturate(135%);background:#20181475;border:1px solid #fff4e438;border-radius:20px;bottom:calc(16px + env(safe-area-inset-bottom, 0px));box-shadow:0 12px 32px #00000042,inset 0 1px 0 #ffffff14;gap:10px;left:50%;max-width:calc(100vw - 32px);padding:8px 16px;right:auto;top:auto;transform:translateX(-50%);transition:opacity .25s ease,visibility .25s ease}.closet-dock-hint{border-left:1px solid #ffebcd2e;color:#fff4e480;font-size:12px;letter-spacing:.04em;margin-left:2px;padding-left:12px;white-space:nowrap}@media (max-width:768px){.closet-dock-hint{display:none}.shelf-content:has(.closet3d-panel) .shelf-actions--floating{opacity:0;pointer-events:none;visibility:hidden}}.bilingual-reader{background-color:#faf6ec;background-color:var(--rt-bg,#faf6ec);color:#2f2a21;color:var(--rt-text,#2f2a21);font-family:LXGW Neo ZhiSong Screen,ui-serif,Georgia,Times New Roman,serif!important;font-weight:400;line-height:1.7;margin:0 auto;max-width:680px;padding:40px 50px;text-align:left}.reader-header{margin-bottom:30px;text-align:center}.reader-title{color:#2f2a21;color:var(--rt-text,#2f2a21);font-size:1.8em;font-weight:400;letter-spacing:.5px;margin:0 0 40px;text-align:center}.reader-content{padding:0;text-align:left}.paragraph-container{margin-bottom:1.2em}.paragraph{color:#2f2a21;color:var(--rt-text,#2f2a21);cursor:pointer;font-size:16px;-webkit-hyphens:auto;hyphens:auto;margin:0;padding:0;text-indent:1.5em;word-spacing:.1em}.toggleable-text{transform-origin:center center;transition:color .1s ease,opacity .1s ease,transform .1s ease}.toggleable-text.toggling{opacity:.9}.translated-text-style{color:#4a443a;color:var(--rt-text-translated,#4a443a)}.original-text-style{color:#2f2a21;color:var(--rt-text,#2f2a21)}.chapter-text.translated-text-style,.title-text.translated-text-style{color:#4a443a;color:var(--rt-text-translated,#4a443a)}.chapter-text.original-text-style,.title-text.original-text-style{color:#2f2a21;color:var(--rt-text,#2f2a21)}.fab-container{bottom:calc(20px + env(safe-area-inset-bottom, 0px));bottom:calc(20px + env(safe-area-inset-bottom, 0px) + var(--fab-vv-offset, 0px));position:fixed;right:20px;z-index:1000}.fab{align-items:center;background-color:#3a3324!important;background-color:var(--rt-fab-bg,#3a3324)!important;border:none!important;border-radius:25%;box-shadow:0 2px 10px #0000004d;color:#f6f2e7!important;color:var(--rt-fab-fg,#f6f2e7)!important;cursor:pointer;display:flex;font-size:20px;height:30px;justify-content:center;padding:0;transition:background-color .15s ease,opacity .2s ease;width:30px}.fab-dots{pointer-events:none;position:relative}.fab-dots,.fab-dots:after,.fab-dots:before{background-color:#f6f2e7;background-color:var(--rt-fab-fg,#f6f2e7);border-radius:50%;height:4px;width:4px}.fab-dots:after,.fab-dots:before{content:"";left:0;position:absolute}.fab-dots:before{top:-7px}.fab-dots:after{top:7px}.fab:hover{filter:brightness(1.15)}.fab-backdrop{display:none}.fab-menu{background-color:#fffdf6;background-color:var(--rt-surface,#fffdf6);border:1px solid #e6dfcc;border:1px solid var(--rt-border,#e6dfcc);border-radius:12px;bottom:46px;box-shadow:0 4px 20px #00000026;max-height:70vh;min-width:200px;overflow-y:auto;padding:8px 0;position:absolute;right:0}.fab-menu-item{align-items:center;background:none;border:none;color:#2f2a21;color:var(--rt-text,#2f2a21);cursor:pointer;display:flex;font-size:14px;justify-content:space-between;padding:10px 16px;text-align:left;transition:background-color .15s ease;width:100%}.fab-menu-item:hover{background-color:#f2edde;background-color:var(--rt-surface-alt,#f2edde)}.fab-menu-item:active{background-color:#e6dfcc;background-color:var(--rt-border,#e6dfcc)}.fab-menu-item-completed{color:#8b5a2b;color:var(--rt-accent,#8b5a2b);font-weight:600}.fab-menu-item:disabled{cursor:default;opacity:.5}.fab-divider{background:#e6dfcc;background:var(--rt-border,#e6dfcc);height:1px;margin:4px 0}.fab-error{color:#8f3d2c;font-size:12px;font-weight:600;padding:4px 16px}.fab-section-toggle{color:#2f2a21;color:var(--rt-text,#2f2a21);font-size:14px}.fab-chevron{color:#8a8171;color:var(--rt-text-muted,#8a8171);font-size:14px;transition:transform .2s ease}.fab-chevron.open{transform:rotate(90deg)}.fab-theme-row{align-items:flex-start;display:flex;flex-direction:column;gap:8px;padding:8px 16px}.fab-theme-swatches{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.fab-theme-swatch{align-items:center;border:1px solid #e6dfcc;border:1px solid var(--rt-border,#e6dfcc);border-radius:50%;cursor:pointer;display:flex;font-size:12px;height:22px;justify-content:center;line-height:1;padding:0;transition:box-shadow .15s ease,transform .15s ease;width:22px}.fab-theme-swatch:hover{transform:scale(1.08)}.fab-theme-swatch.active{box-shadow:0 0 0 2px #8b5a2b;box-shadow:0 0 0 2px var(--rt-accent,#8b5a2b)}.fab-theme-swatch-auto{background:#0000;color:#2f2a21;color:var(--rt-text,#2f2a21);font-size:14px}.fab-font-options{display:flex;gap:6px}.fab-font-btn{background:#0000;border:1px solid #e6dfcc;border:1px solid var(--rt-border,#e6dfcc);border-radius:6px;color:#2f2a21;color:var(--rt-text,#2f2a21);cursor:pointer;font-size:13px;line-height:1.4;padding:3px 10px;transition:background .15s ease,box-shadow .15s ease}.fab-font-btn:hover{background:#f2edde;background:var(--rt-surface-alt,#f2edde)}.fab-font-btn.active{background:#8b5a2b1f;background:var(--rt-accent-soft,#8b5a2b1f);box-shadow:0 0 0 2px #8b5a2b;box-shadow:0 0 0 2px var(--rt-accent,#8b5a2b)}.fab-switch{background:#f2edde;background:var(--rt-surface-alt,#f2edde);border:1px solid #e6dfcc;border:1px solid var(--rt-border,#e6dfcc);border-radius:999px;cursor:pointer;height:20px;padding:0;position:relative;transition:background .15s ease;width:36px}.fab-switch-knob{background:#8a8171;background:var(--rt-text-muted,#8a8171);border-radius:50%;height:14px;left:2px;position:absolute;top:2px;transition:left .15s ease,background .15s ease;width:14px}.fab-switch.on{background:#8b5a2b1f;background:var(--rt-accent-soft,#8b5a2b1f)}.fab-switch.on .fab-switch-knob{background:#8b5a2b;background:var(--rt-accent,#8b5a2b);left:18px}.fab-typography-panel{padding:4px 16px 8px}.fab-typo-row{align-items:center;display:flex;justify-content:space-between;padding:6px 0}.fab-typo-label{color:#4a443a;color:var(--rt-text-translated,#4a443a);flex-shrink:0;font-size:13px;min-width:100px}.fab-typo-value{font-feature-settings:"tnum";color:#8a8171;color:var(--rt-text-muted,#8a8171);font-size:12px;font-variant-numeric:tabular-nums;min-width:40px;text-align:center}.fab-menu-controls{align-items:center;display:flex;gap:6px}.fab-control-btn{align-items:center;background-color:#f2edde;background-color:var(--rt-surface-alt,#f2edde);border:1px solid #e6dfcc;border:1px solid var(--rt-border,#e6dfcc);border-radius:50%;color:#2f2a21;color:var(--rt-text,#2f2a21);cursor:pointer;display:flex;font-size:13px;font-weight:700;height:26px;justify-content:center;transition:all .15s ease;width:26px}.fab-control-btn:hover{background-color:#e6dfcc;background-color:var(--rt-border,#e6dfcc)}.fab-control-btn:active{transform:scale(.9)}.fab-reset-btn{background:#0000;border:1px solid #e6dfcc;border:1px solid var(--rt-border,#e6dfcc);border-radius:6px;color:#8a8171;color:var(--rt-text-muted,#8a8171);cursor:pointer;font-size:12px;margin-top:8px;padding:6px 0;transition:all .15s;width:100%}.fab-reset-btn:hover{background-color:#f2edde;background-color:var(--rt-surface-alt,#f2edde);color:#2f2a21;color:var(--rt-text,#2f2a21)}.fab-reset-btn:active{transform:scale(.97)}.chinese-text{font-weight:400}.english-text{font-weight:500;word-spacing:0}.title-text,h2.title-text{border-bottom:2px solid #e6dfcc;border-bottom:2px solid var(--rt-border,#e6dfcc);color:#2f2a21;color:var(--rt-text,#2f2a21);font-size:2.2em;font-weight:600;letter-spacing:.5px;margin-bottom:30px;padding-bottom:20px;text-align:center;text-indent:0}.chapter-text,h3.chapter-text{color:#2f2a21;color:var(--rt-text,#2f2a21);font-size:1.6em;font-weight:500;letter-spacing:.3px;margin:40px 0 30px;text-align:center;text-indent:0}.chapter-container,.title-container{margin-bottom:0}.chapters-modal{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.chapters-backdrop{background-color:#00000080;bottom:0;left:0;position:absolute;right:0;top:0;z-index:-1}.chapters-content{background:#fffdf6;background:var(--rt-surface,#fffdf6);border-radius:12px;box-shadow:0 10px 30px #0003;display:flex;flex-direction:column;max-height:80vh;max-width:500px;overflow:hidden;width:90%}.chapters-header{align-items:center;background:#f2edde;background:var(--rt-surface-alt,#f2edde);border-bottom:1px solid #e6dfcc;border-bottom:1px solid var(--rt-border,#e6dfcc);display:flex;justify-content:space-between;padding:20px 24px}.chapters-header h3{color:#2f2a21;color:var(--rt-text,#2f2a21);font-size:1.3em;font-weight:600;margin:0}.chapters-close{align-items:center;background:none;border:none;border-radius:50%;color:#8a8171;color:var(--rt-text-muted,#8a8171);cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:all .2s ease;width:30px}.chapters-close:hover{background-color:#e6dfcc;background-color:var(--rt-border,#e6dfcc);color:#2f2a21;color:var(--rt-text,#2f2a21)}.chapters-list{flex:1 1;overflow-y:auto;padding:16px}.search-input-row{padding:12px 16px 4px}.search-input{background:#f2edde;background:var(--rt-surface-alt,#f2edde);border:1px solid #e6dfcc;border:1px solid var(--rt-border,#e6dfcc);border-radius:8px;box-sizing:border-box;color:#2f2a21;color:var(--rt-text,#2f2a21);font-size:14px;outline:none;padding:8px 12px;width:100%}.search-input:focus{border-color:#8b5a2b;border-color:var(--rt-accent,#8b5a2b)}.search-status{color:#8a8171;color:var(--rt-text-muted,#8a8171);font-size:13px;padding:14px 16px;text-align:center}.search-result-item{background:none;border:none;border-bottom:1px solid #e6dfcc;border-bottom:1px solid var(--rt-border,#e6dfcc);cursor:pointer;display:block;padding:10px 16px;text-align:left;transition:background-color .15s ease;width:100%}.search-result-item:hover{background-color:#f2edde;background-color:var(--rt-surface-alt,#f2edde)}.search-result-chapter{color:#8a8171;color:var(--rt-text-muted,#8a8171);font-size:12px;margin-bottom:3px}.search-result-snippet{color:#2f2a21;color:var(--rt-text,#2f2a21);font-size:13.5px;line-height:1.55;word-break:break-word}.search-result-snippet mark{background:#8b5a2b2e;background:var(--rt-accent-soft,#8b5a2b2e);border-radius:2px;color:#8b5a2b;color:var(--rt-accent,#8b5a2b);padding:0 1px}.chapter-item{align-items:flex-start;background:none;border:none;border-bottom:1px solid #e6dfcc;border-bottom:1px solid var(--rt-border,#e6dfcc);border-radius:0;cursor:pointer;display:flex;gap:12px;margin-bottom:1px;padding:16px;text-align:left;transition:all .2s ease;width:100%}.chapter-item:hover{background-color:#f2edde;background-color:var(--rt-surface-alt,#f2edde)}.chapter-item:last-child{border-bottom:none;margin-bottom:0}.chapter-item.active{background-color:#8b5a2b1f;background-color:var(--rt-accent-soft,#8b5a2b1f)}.chapter-item.active .chapter-title-original{color:#2f2a21;color:var(--rt-text,#2f2a21);font-weight:600}.chapter-number{color:#8a8171;color:var(--rt-text-muted,#8a8171);flex-shrink:0;font-size:14px;font-weight:500;margin-top:2px;min-width:20px}.chapter-titles{flex:1 1;min-width:0}.chapter-title-original{color:#2f2a21;color:var(--rt-text,#2f2a21);font-size:16px;font-weight:500;margin-bottom:4px}.chapter-title-original,.chapter-title-translated{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-title-translated{color:#8a8171;color:var(--rt-text-muted,#8a8171);font-size:14px}.chapter-navigation-top{align-items:center;display:flex;justify-content:flex-start;margin-bottom:40px;padding-bottom:20px}.chapter-navigation-bottom{align-items:center;display:flex;justify-content:flex-end;margin-top:60px;padding-top:40px}.nav-button{align-items:center;background-color:initial;border:none;color:#8a8171;color:var(--rt-text-muted,#8a8171);cursor:pointer;display:inline-flex;font-size:32px;font-weight:900;justify-content:center;padding:8px;text-decoration:none;transition:color .15s ease,opacity .15s ease}.nav-button:hover{color:#2f2a21;color:var(--rt-text,#2f2a21)}.nav-button:active{opacity:.65}.prev-button{margin-right:auto}.next-button{margin-left:auto}@media (max-width:768px){.bilingual-reader{padding:16px 16px 80px;touch-action:manipulation}.reader-content{padding:0}.reader-title{font-size:1.6em}.paragraph{font-size:1em;padding:0}.fab-container{bottom:calc(20px + env(safe-area-inset-bottom, 0px));bottom:calc(20px + env(safe-area-inset-bottom, 0px) + var(--fab-vv-offset, 0px));right:16px}.fab{height:36px;opacity:.35;transition:opacity .3s ease;width:36px}.fab-container:has(.fab-menu) .fab,.fab:active{opacity:1}.fab-backdrop{background:#0000004d;display:block;inset:0;position:fixed;z-index:999}.fab-menu{border-radius:16px 16px 0 0;bottom:0;box-shadow:0 -4px 20px #00000026;left:0;max-height:65vh;min-width:0;min-width:auto;padding:8px 0 calc(env(safe-area-inset-bottom, 12px) + 8px);position:fixed;right:0;width:100%;z-index:1000}.fab-menu-item{font-size:16px;min-height:48px;padding:14px 20px}.chapter-navigation-top{justify-content:flex-start;margin-bottom:24px;padding-bottom:12px}.chapter-navigation-bottom{justify-content:flex-end;margin-top:30px;padding-top:24px}.nav-button{font-size:36px;min-height:48px;min-width:48px;padding:12px}.chapters-content{margin:20px;max-height:85vh;width:95%}.chapters-header{padding:16px 20px}.chapter-item{gap:12px;min-height:48px;padding:14px 12px}.chapter-number{font-size:13px;min-width:18px}.chapter-title-original{font-size:15px}.chapter-title-translated{font-size:13px}}sup{color:#8a8171;color:var(--rt-text-muted,#8a8171);cursor:pointer;font-size:.75em;line-height:0;margin-left:2px;position:relative;top:-.4em;vertical-align:initial}sup:hover{color:#8b5a2b;color:var(--rt-accent,#8b5a2b)}.onboarding-tooltip{animation:onboarding-fade-in .4s ease-out;background:#1e1e1e;border-radius:6px;box-shadow:0 3px 10px #0000002e;color:#fff;cursor:pointer;font-size:15px;line-height:1.6;padding:12px 18px;pointer-events:auto;position:absolute;text-align:center;white-space:nowrap;z-index:1000}.onboarding-tooltip-arrow{background:#1e1e1e;height:12px;position:absolute;right:-6px;top:50%;transform:translateY(-50%) rotate(45deg);width:12px}.onboarding-tooltip-en{color:#ffffffa6;display:block;font-size:13px;margin-top:2px}@keyframes onboarding-fade-in{0%{opacity:0;transform:translateY(-50%) translateX(-8px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}@media (max-width:768px){.onboarding-tooltip{font-size:14px;max-width:200px;padding:10px 14px;white-space:normal}}.epub-content [data-ov-hidden=note]{display:none}.reader-content-v2 a[data-ov-chapter]{color:#8b5a2b;color:var(--rt-accent,#8b5a2b);cursor:pointer;text-decoration:underline;text-decoration-color:#8b5a2b80;text-decoration-color:var(--rt-accent-soft,#8b5a2b80);text-decoration-style:dotted;text-underline-offset:3px}.reader-content-v2 a[data-ov-note]{font-feature-settings:"tnum";border-radius:6px;font-variant-numeric:tabular-nums;margin:-6px -3px;padding:6px 5px;text-decoration:none}.reader-content-v2 a[data-ov-note]:hover{background:#8b5a2b1a;background:var(--rt-accent-soft,#8b5a2b1a)}@keyframes ov-jump-flash{0%{background:#d8b27173;background:var(--rt-flash,#d8b27173)}to{background:#0000}}.epub-content .ov-jump-flash{animation:ov-jump-flash 3.5s ease-out both}@media (prefers-reduced-motion:reduce){.epub-content .ov-jump-flash{animation:none}}.note-popover-backdrop{background:#0a070559;inset:0;position:fixed;z-index:1500}.note-popover{animation:note-popover-in .22s ease both;background:#fffdf6;background:var(--rt-surface,#fffdf6);border:1px solid #e6dfcc;border:1px solid var(--rt-border,#e6dfcc);border-radius:14px;bottom:calc(24px + env(safe-area-inset-bottom, 0px));box-shadow:0 24px 60px #00000047,0 4px 12px #0000001f;color:#2f2a21;color:var(--rt-text,#2f2a21);display:flex;flex-direction:column;left:50%;max-height:min(55vh,480px);position:fixed;transform:translateX(-50%);width:min(560px,calc(100vw - 24px));z-index:1501}@keyframes note-popover-in{0%{opacity:0;transform:translateX(-50%) translateY(16px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (prefers-reduced-motion:reduce){.note-popover{animation:none}}.note-popover-header{align-items:center;border-bottom:1px solid #e6dfcc;border-bottom:1px solid var(--rt-border,#e6dfcc);display:flex;justify-content:space-between;padding:12px 16px 8px}.note-popover-title{color:#8b5a2b;color:var(--rt-accent,#8b5a2b);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.note-popover-close{background:none;border:none;color:#8a8171;color:var(--rt-text-muted,#8a8171);cursor:pointer;font-size:20px;line-height:1;padding:4px 6px}.note-popover-close:hover{color:#2f2a21;color:var(--rt-text,#2f2a21)}.note-popover-body{font-size:15px;line-height:1.7;overflow-y:auto;padding:12px 16px}.note-popover-body p{margin:0}.note-popover-original a[data-ov-chapter]{color:#8b5a2b;color:var(--rt-accent,#8b5a2b);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.note-popover-translated{border-top:1px dashed #e6dfcc;border-top:1px dashed var(--rt-border,#e6dfcc);color:#4a443a;color:var(--rt-text-translated,#4a443a);margin-top:10px;padding-top:10px}.note-popover-status{color:#8a8171;color:var(--rt-text-muted,#8a8171);margin:8px 0;text-align:center}.note-popover-goto{align-self:flex-end;background:none;border:none;color:#8b5a2b;color:var(--rt-accent,#8b5a2b);cursor:pointer;font-size:13px;margin:0 12px 12px;padding:6px 12px;text-decoration:underline;text-decoration-color:#8b5a2b66;text-decoration-color:var(--rt-accent-soft,#8b5a2b66);text-underline-offset:3px}.note-popover-goto:hover{text-decoration-color:initial}.return-chip{animation:return-chip-in .25s ease both;background:#3a3324;background:var(--rt-fab-bg,#3a3324);border:none;border-radius:999px;bottom:calc(18px + env(safe-area-inset-bottom, 0px));bottom:calc(18px + env(safe-area-inset-bottom, 0px) + var(--fab-vv-offset, 0px));box-shadow:0 8px 24px #0000004d;color:#f6f2e7;color:var(--rt-fab-fg,#f6f2e7);cursor:pointer;font-family:inherit;font-size:13.5px;left:50%;padding:9px 16px;position:fixed;transform:translateX(-50%);z-index:1400}.return-chip:hover{filter:brightness(1.15)}@keyframes return-chip-in{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (prefers-reduced-motion:reduce){.return-chip{animation:none}}*{font-family:Noto Sans CJK SC,Literata,system-ui,sans-serif}.App{text-align:left}.title-page{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;min-height:100dvh;padding:2rem;text-align:center}.clickable-title{cursor:pointer}
/*# sourceMappingURL=main.6f172bb1.css.map*/