:root{--bg: #faf6f0;--text: #3a3226;--text-secondary: #8a7e6e;--border: #e8e0d4;--accent: #8b7355;--accent-green: #5a8a5a;--card-bg: #fff;--card-shadow: rgba(0,0,0,.1);--font-family: Georgia, serif;--font-size: 18px;--line-height: 1.9;--margin: 40px;--progress-bg: #e8e0d4}.dark{--bg: #1a1a1a;--text: #c8c0b4;--text-secondary: #6a6358;--border: #333;--accent: #a89070;--accent-green: #6aaa6a;--card-bg: #242424;--card-shadow: rgba(0,0,0,.3);--progress-bg: #333}@font-face{font-family:Literata;src:url(/fonts/Literata-VariableFont.woff2) format("woff2");font-weight:200 900;font-display:swap}@font-face{font-family:Lora;src:url(/fonts/Lora-VariableFont.woff2) format("woff2");font-weight:400 700;font-display:swap}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-family);transition:background .3s,color .3s}#app{min-height:100dvh;transition:opacity .2s}.transitioning{opacity:0}.search-view,.shelf-view{max-width:960px;margin:0 auto;padding:24px}.discover-header{text-align:center;padding:48px 0 32px}.discover-title{font-size:48px;font-weight:400;font-variant:small-caps;letter-spacing:6px;color:var(--text);margin-bottom:8px}.discover-subtitle{color:var(--text-secondary);font-size:16px;font-style:italic;margin-bottom:28px}.discover-search{max-width:480px;margin:0 auto;display:block}.discover-section{margin-bottom:36px}.discover-section-title{font-size:18px;font-weight:400;font-variant:small-caps;letter-spacing:2px;color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:16px}.book-five-words{font-size:10px;color:var(--text-secondary);margin-top:4px;font-style:italic;line-height:1.3}.search-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}.search-header h1{font-size:24px;font-weight:400;font-variant:small-caps;letter-spacing:2px}.back{color:var(--text-secondary);text-decoration:none;font-size:14px}.back:hover{color:var(--text)}.search-input{width:100%;padding:12px 16px;font-family:var(--font-family);font-size:16px;background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;outline:none}.search-input:focus{border-color:var(--accent)}.search-results,.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px;margin-top:24px}.book-card{background:var(--card-bg);border-radius:6px;overflow:hidden;box-shadow:0 2px 8px var(--card-shadow);text-decoration:none;color:var(--text);transition:transform .15s,box-shadow .15s}.book-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px var(--card-shadow)}.book-cover{width:100%;aspect-ratio:2/3;object-fit:cover;display:block;background:var(--border)}.book-info{padding:10px}.book-title{font-size:13px;font-weight:700;line-height:1.3}.book-author{font-size:11px;color:var(--text-secondary);margin-top:3px}.progress-bar{margin-top:8px;height:3px;background:var(--progress-bg);border-radius:2px}.progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s}.progress-text{font-size:10px;color:var(--text-secondary);margin-top:3px;display:block}.loading{color:var(--text-secondary);font-style:italic;text-align:center;padding:40px}.shelf-title{font-size:28px;font-weight:400;font-variant:small-caps;letter-spacing:3px;color:var(--text)}.shelf-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.search-btn{color:var(--accent);text-decoration:none;font-size:14px;padding:8px 16px;border:1px solid var(--border);border-radius:6px}.search-btn:hover{background:var(--card-bg)}.empty-state{text-align:center;padding:80px 24px}.empty-state p{color:var(--text-secondary);margin-bottom:16px}.search-link{color:var(--accent);text-decoration:underline;font-size:16px}.reader{position:relative;min-height:100dvh}.reader-text{max-width:680px;margin:0 auto;padding:60px var(--margin) 80px;font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height);color:var(--text)}.reader-text p{text-indent:2em;margin-bottom:.5em}.reader-text figure{margin:1.5em 0;text-align:center}.reader-text figure img,.reader-text .inline-img{max-width:100%;height:auto;border-radius:2px}.reader-text .table-wrap{overflow-x:auto;margin:1em 0}.reader-text table{border-collapse:collapse;font-size:.85em;width:100%}.reader-text th,.reader-text td{border-bottom:1px solid var(--border);padding:6px 12px;text-align:left}.reader-text th{font-weight:600}.chapter-heading{text-align:center;font-variant:small-caps;letter-spacing:2px;font-size:14px;color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:24px}.top-bar{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:8px 20px;background:var(--bg);border-bottom:1px solid var(--border);font-size:13px;transition:opacity .4s}.bottom-bar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;align-items:center;gap:12px;padding:8px 20px;background:var(--bg);border-top:1px solid var(--border);font-size:12px;transition:opacity .4s}.reader-chrome.faded{opacity:0;pointer-events:none}.reader-title{font-variant:small-caps;letter-spacing:1px;color:var(--text-secondary)}.settings-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:18px}.reader-progress{flex:1}.nav-arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:5;background:none;border:none;font-size:36px;color:var(--text-secondary);cursor:pointer;padding:20px;opacity:0;transition:opacity .3s}.nav-arrow:hover{opacity:1}.nav-arrow:disabled{display:none}.nav-prev{left:0}.nav-next{right:0}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0006;display:flex;justify-content:center;padding-top:48px}.settings-panel{background:var(--bg);border-radius:8px;padding:20px;width:320px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-label{font-size:14px;color:var(--text-secondary)}.settings-row select{background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-family:var(--font-family);font-size:13px}.stepper{display:flex;align-items:center;gap:12px}.step-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--card-bg);color:var(--text);cursor:pointer;font-size:18px}.step-value{font-size:14px;min-width:40px;text-align:center}.preset-group{display:flex;gap:4px}.preset{padding:4px 10px;border-radius:4px;border:1px solid var(--border);background:none;color:var(--text-secondary);cursor:pointer;font-size:12px}.preset.active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.dict-tooltip{position:absolute;transform:translate(-50%);background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:12px 16px;max-width:min(300px,90vw);z-index:50;box-shadow:0 4px 16px var(--card-shadow);font-size:14px;line-height:1.5}.dict-tooltip.above{transform:translate(-50%,-100%)}.dict-tooltip:after{content:"";position:absolute;left:50%;transform:translate(-50%);border:6px solid transparent}.dict-tooltip.above:after{top:100%;border-top-color:var(--border)}.dict-tooltip.below:after{bottom:100%;border-bottom-color:var(--border)}.dict-word{font-weight:700;font-size:16px}.dict-ipa{color:var(--text-secondary);font-size:13px;margin-left:8px}.dict-header{margin-bottom:6px}.dict-pos{color:var(--accent);font-size:11px;font-style:italic;margin-bottom:4px}.dict-def{color:var(--text);margin-bottom:4px}.dict-none{color:var(--text-secondary);font-style:italic;display:block;margin-top:4px}.dict-rest{margin-top:4px;padding-top:4px;border-top:1px solid var(--border)}.dict-loading{color:var(--text-secondary);font-style:italic}.action-bar{position:absolute;transform:translate(-50%,-100%);background:var(--card-bg);border:1px solid var(--border);border-radius:6px;padding:6px;display:flex;gap:4px;z-index:50;box-shadow:0 4px 16px var(--card-shadow)}.action-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:6px 12px;font-size:13px;border-radius:4px}.action-btn:hover{background:var(--border)}.note-input{width:200px;padding:8px;font-family:var(--font-family);font-size:13px;border:1px solid var(--border);border-radius:4px;resize:none;background:var(--bg);color:var(--text)}.save-note{width:100%;margin-top:4px}.highlight{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;background:none}.note-dot{color:var(--accent);font-size:8px;vertical-align:super;cursor:pointer;margin-left:2px}.bookmarked{border-left:3px solid var(--accent);padding-left:12px}.bookmark-gutter{position:absolute;left:-24px;top:0;width:20px;height:20px;cursor:pointer;opacity:0;transition:opacity .2s}.reader-text p{position:relative}.reader-text p:hover .bookmark-gutter{opacity:.4}.bookmarked .bookmark-gutter{opacity:1}.annotations-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:16px;margin-right:8px}.annotations-panel{max-height:70vh;overflow-y:auto}.panel-title{font-size:16px;font-variant:small-caps;letter-spacing:1px;margin-bottom:16px}.ann-chapter{font-size:12px;color:var(--text-secondary);margin-top:12px;margin-bottom:4px;font-variant:small-caps}.ann-item{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.ann-type{flex-shrink:0}.ann-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ann-note{color:var(--text-secondary);font-size:11px}.ann-delete{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:16px}.empty-annotations{color:var(--text-secondary);font-style:italic;text-align:center;padding:24px}@media(max-width:600px){.reader-text{padding:52px 20px 72px}.search-results,.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.search-view,.shelf-view{padding:16px}.nav-arrow{display:none}.settings-panel{width:calc(100vw - 32px)}}
