@font-face{font-family:Literata;font-style:normal;font-display:swap;font-weight:400;src:url("./fonts/literata-latin-400-normal-XO4P34YW.woff2") format("woff2"),url("./fonts/literata-latin-400-normal-NHDNJLZZ.woff") format("woff")}@font-face{font-family:Literata;font-style:italic;font-display:swap;font-weight:400;src:url("./fonts/literata-latin-400-italic-Q22IDJIF.woff2") format("woff2"),url("./fonts/literata-latin-400-italic-GA46GMQK.woff") format("woff")}@font-face{font-family:Literata;font-style:normal;font-display:swap;font-weight:600;src:url("./fonts/literata-latin-600-normal-Y424EQFK.woff2") format("woff2"),url("./fonts/literata-latin-600-normal-IAYW7D37.woff") format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url("./fonts/bricolage-grotesque-latin-500-normal-I3AOOICK.woff2") format("woff2"),url("./fonts/bricolage-grotesque-latin-500-normal-XL4TSZ4T.woff") format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url("./fonts/bricolage-grotesque-latin-700-normal-TDD6IXKC.woff2") format("woff2"),url("./fonts/bricolage-grotesque-latin-700-normal-4VRD6Q6M.woff") format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url("./fonts/jetbrains-mono-latin-500-normal-V4XIP5OW.woff2") format("woff2"),url("./fonts/jetbrains-mono-latin-500-normal-ETEQEOVZ.woff") format("woff")}:root{--bg: #EEF2F1;--paper: #FBFCFB;--ink: #17201F;--muted: #5C6B69;--line: #D3DDDB;--accent: #1F5F8B;--accent-ink: #FFFFFF;--accent-soft: #DCE8F0;--hl: #FFE29A;--hl-ink: #17201F;--read: #8A9896;--danger: #B3261E;--shadow: 0 8px 28px rgba(16, 32, 31, .14);--f-ui: "Bricolage Grotesque", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--f-read: "Literata", Georgia, "Times New Roman", serif;--f-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--read-size: 19px;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0F1515;--paper: #151D1D;--ink: #E4ECEA;--muted: #93A5A2;--line: #2A3736;--accent: #6FB3E0;--accent-ink: #0B1414;--accent-soft: #1C3242;--hl: #5A4A12;--hl-ink: #FFF4CF;--read: #5F716E;--danger: #FF8A80;--shadow: 0 8px 28px rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--bg: #0F1515;--paper: #151D1D;--ink: #E4ECEA;--muted: #93A5A2;--line: #2A3736;--accent: #6FB3E0;--accent-ink: #0B1414;--accent-soft: #1C3242;--hl: #5A4A12;--hl-ink: #FFF4CF;--read: #5F716E;--danger: #FF8A80;--shadow: 0 8px 28px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;background:var(--bg);color:var(--ink)}body{font-family:var(--f-ui);font-size:15px;-webkit-tap-highlight-color:transparent;min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}svg{fill:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:4px;padding:calc(8px + var(--sat)) 12px 8px;background:var(--bg);border-bottom:1px solid transparent}.reader-top{background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom-color:var(--line)}.brand{display:flex;align-items:center;gap:10px;font-size:1.05rem;flex:1;padding-left:4px}.brand b{color:var(--accent);font-weight:700}.logo{width:30px;height:30px;flex:none}.icon-btn{width:42px;height:42px;border-radius:50%;border:0;background:transparent;display:grid;place-items:center;flex:none}.icon-btn:hover{background:var(--accent-soft)}.icon-btn svg{width:22px;height:22px}.rtitle{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2;padding-inline:4px}.rtitle span{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rtitle small{color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib{max-width:760px;margin:0 auto;padding-inline:16px;padding-block:8px 120px}.lib-head{padding-block:10px 14px}h1{font-size:1.75rem;font-weight:700;margin:0;letter-spacing:-.015em;text-wrap:balance}.sub{margin:4px 0 0;color:var(--muted);font-family:var(--f-mono);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.lib-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.lib-item{display:flex;align-items:stretch;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.card{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:14px 4px 14px 16px;display:grid;gap:6px}.card-top{display:flex;gap:8px;align-items:center;font-family:var(--f-mono);font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.kind{color:var(--accent)}.card-title{font-family:var(--f-read);font-weight:600;font-size:1.08rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums}.prog{flex:1;max-width:160px;height:4px;background:var(--line);border-radius:2px;overflow:hidden}.prog i{display:block;height:100%;background:var(--accent)}.more{border:0;background:transparent;width:44px;color:var(--muted);display:grid;place-items:center}.more svg{width:20px;height:20px}.more:hover{color:var(--danger)}.empty{text-align:center;padding:48px 16px;color:var(--muted);max-width:40ch;margin:0 auto;line-height:1.5}.empty-title{font-family:var(--f-read);font-size:1.2rem;color:var(--ink);margin:0 0 6px}.fab{position:fixed;right:16px;bottom:calc(20px + var(--sab));z-index:6;display:flex;align-items:center;gap:8px;padding:14px 20px 14px 16px;border:0;border-radius:16px;background:var(--accent);color:var(--accent-ink);font-weight:500;font-size:1rem;box-shadow:var(--shadow)}.fab svg{width:22px;height:22px}.text{max-width:65ch;margin:0 auto;padding-inline:20px;padding-block:24px 180px;font-family:var(--f-read);font-size:var(--read-size);line-height:1.75;overflow-wrap:anywhere;hyphens:auto}.text p{margin:0 0 1.05em}.text h2{font-family:var(--f-read);font-weight:600;font-size:1.3em;line-height:1.3;margin:1.6em 0 .6em;text-wrap:balance}.text h2:first-child{margin-top:0}.s{cursor:pointer;border-radius:4px;transition:background-color .2s,color .2s;-webkit-box-decoration-break:clone;box-decoration-break:clone}.s.done{color:var(--read)}.s.now{background:var(--hl);color:var(--hl-ink);box-shadow:0 0 0 3px var(--hl)}.s.marked{text-decoration:underline 2px var(--accent);text-underline-offset:5px}.player{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--paper);border-top:1px solid var(--line);padding:0 12px calc(12px + var(--sab))}.player-in{max-width:760px;margin:0 auto}.seek{height:18px;display:flex;align-items:center;cursor:pointer;touch-action:none}.seek{background:linear-gradient(var(--line),var(--line)) center / 100% 4px no-repeat}.seek i{display:block;height:4px;width:0;background:var(--accent);border-radius:2px;transition:width .25s}.controls{display:grid;grid-template-columns:1fr auto auto auto 1fr;align-items:center;gap:8px}.pinfo{display:flex;flex-direction:column;font-family:var(--f-mono);font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.5;min-width:0}.pinfo span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pextra{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.ctl{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:transparent;display:grid;place-items:center}.ctl svg{width:22px;height:22px}.ctl.play{width:58px;height:58px;border:0;background:var(--accent);color:var(--accent-ink)}.ctl.play svg{width:28px;height:28px}.ctl:disabled{opacity:.4;cursor:default}.chip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:6px 10px;font-family:var(--f-mono);font-size:.75rem;display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums}.chip.ghost{border-color:transparent;color:var(--muted)}.chip svg{width:14px;height:14px}dialog.sheet{width:100%;max-width:560px;max-height:88vh;margin:auto auto 0;padding:0 16px calc(18px + var(--sab));border:0;border-radius:18px 18px 0 0;background:var(--paper);color:var(--ink);box-shadow:var(--shadow);overflow-y:auto}dialog.sheet.small{padding-top:18px}dialog::backdrop{background:#0a141473}@media(min-width:640px){dialog.sheet{margin:auto;border-radius:18px;padding-bottom:18px}}.sheet-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--paper);padding-block:14px 8px;z-index:1}h2{font-size:1.2rem;margin:0;font-weight:700}.choose{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-block:6px}.opt{display:grid;gap:4px;justify-items:start;text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.opt svg{width:26px;height:26px;color:var(--accent);margin-bottom:4px}.opt b{font-weight:500}.opt span{font-size:.82rem;color:var(--muted);line-height:1.35}.opt:hover{border-color:var(--accent)}.pane{display:grid;gap:10px;padding-block:6px}.pane label,.label{font-weight:500;font-size:.9rem;display:flex;justify-content:space-between;align-items:baseline}input[type=text],input[type=url],textarea,select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:1rem}textarea{font-family:var(--f-read);line-height:1.5;resize:vertical;min-height:160px}.hint{margin:0;font-size:.84rem;color:var(--muted);line-height:1.45}.row-end{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:6px}.btn{border:0;border-radius:10px;padding:11px 18px;background:var(--accent);color:var(--accent-ink);font-weight:500}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--danger);color:var(--paper)}.btn.small{padding:7px 12px;font-size:.88rem}.btn:disabled{opacity:.5;cursor:default}.drop{display:grid!important;justify-items:center;gap:4px;text-align:center;padding:26px 14px;border:1.5px dashed var(--line);border-radius:12px;cursor:pointer;background:var(--bg)}.drop svg{width:30px;height:30px;color:var(--accent)}.drop span{font-weight:400;font-size:.84rem;color:var(--muted)}.drop.over{border-color:var(--accent)}.photo-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.busy p{margin:8px 0 0;line-height:1.45}.meter{height:6px;background:var(--line);border-radius:3px;overflow:hidden}.meter i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}.settings{display:grid;gap:18px;padding-block:6px 4px}.field{display:grid;gap:8px}.field>label{font-weight:500;display:flex;justify-content:space-between}.field-actions{display:flex;gap:8px;flex-wrap:wrap}.num{font-family:var(--f-mono);font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent)}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg button{border:0;background:transparent;padding:9px 6px;font-size:.9rem}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-checked=true],.seg button[aria-selected=true]{background:var(--ink);color:var(--paper)}.tabs{margin-bottom:8px}.nav-list{list-style:none;margin:0;padding:0}.nav-list li{display:flex;align-items:center;border-bottom:1px solid var(--line)}.nav-list li:last-child{border-bottom:0}.nav-list .go{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:12px 4px;display:grid;gap:2px}.nav-list .go b{font-family:var(--f-read);font-weight:400;font-size:1rem;line-height:1.35}.nav-list .go small{font-family:var(--f-mono);font-size:.7rem;color:var(--muted)}.nav-list .go.current b{color:var(--accent);font-weight:600}.nav-list .empty-li{padding:18px 4px;color:var(--muted);line-height:1.45}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(110px + var(--sab));z-index:50;max-width:min(92vw,480px);padding:12px 16px;border-radius:12px;background:var(--ink);color:var(--paper);box-shadow:var(--shadow);font-size:.92rem;line-height:1.4}.account-box{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.account-box .hint{margin-bottom:4px}.acc-email{margin:0;font-weight:500;overflow-wrap:anywhere}.danger-text{color:var(--danger)}.form-error{margin:0;color:var(--danger);font-size:.88rem;line-height:1.4}.sync-state{border:0;background:transparent;padding:0 0 0 10px;font:inherit;color:var(--muted);letter-spacing:inherit;text-transform:inherit;display:inline-flex;align-items:center;gap:6px}.sync-state:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--read)}.sync-state[data-s=ok]:before{background:#2e9d5b}.sync-state[data-s=syncing]:before{background:var(--accent)}.sync-state[data-s=offline]:before,.sync-state[data-s=error]:before{background:#d08a12}@media(max-width:420px){.controls{grid-template-columns:1fr auto auto auto}.pextra{grid-column:1 / -1;grid-row:2;justify-content:center}.pinfo{order:0}}@media(prefers-reduced-motion:reduce){.s,.seek i,.meter i{transition:none}}
