.library{height:100%;padding:32px;overflow-y:auto}.library--dragging{outline:2px dashed var(--accent);outline-offset:-8px}.library__header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.library__header h1{margin:0;font-size:20px;font-weight:600}.library__add{border:1px solid var(--hairline);color:var(--chrome-fg);border-radius:3px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;display:flex}.library__add:hover{background:var(--surface)}.library__empty{color:var(--chrome-fg);font-size:14px}.library__grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:24px;display:grid}.card{cursor:pointer;position:relative}.card__delete{z-index:1;background:var(--bg);color:var(--chrome-fg);opacity:0;border-radius:3px;padding:4px;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}.card:hover .card__delete{opacity:1}.card__delete:hover{background:var(--surface);color:var(--fg)}.card__cover{aspect-ratio:2/3;border:1px solid var(--hairline);background:var(--surface);border-radius:3px;margin-bottom:8px;position:relative;overflow:hidden}.card__cover img{object-fit:cover;width:100%;height:100%;display:block}.card__cover-fallback{width:100%;height:100%}.card__progress{background:var(--accent);height:3px;position:absolute;bottom:0;left:0}.card__title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:1.3;overflow:hidden}.card__author{color:var(--chrome-fg);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.chrome{pointer-events:none;opacity:1;transition:opacity .2s;position:absolute;inset:0}.chrome--hidden{opacity:0}.chrome:focus-within{opacity:1!important}.chrome__bar{background:var(--bg);pointer-events:auto;align-items:center;gap:8px;height:44px;padding:0 12px;display:flex;position:absolute;left:0;right:0}.chrome__top{border-bottom:1px solid var(--hairline);justify-content:space-between;top:0}.chrome__bottom{border-top:1px solid var(--hairline);justify-content:space-between;bottom:0}.chrome__top--laptop{grid-template-columns:1fr auto 1fr;justify-content:normal;align-items:center;display:grid}.chrome__title{text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:13px;font-weight:500;overflow:hidden}.chrome__group{align-items:center;gap:8px;display:flex}.chrome__group--right{justify-content:flex-end}.chrome__group--playback{border:1px solid var(--hairline);border-radius:20px;overflow:hidden}.chrome__icon{color:var(--chrome-fg);border-radius:3px;padding:8px;display:flex}.chrome__icon:hover{background:var(--surface);color:var(--fg)}.chrome__play{color:var(--fg)}.highlights{background:var(--bg);border-right:1px solid var(--hairline);z-index:10;width:320px;max-width:80vw;position:absolute;top:0;bottom:0;left:0;overflow-y:auto}.highlights__header{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;height:44px;padding:0 16px;display:flex}.highlights__header h2{margin:0;font-size:13px;font-weight:600}.highlights__close{color:var(--chrome-fg);border-radius:3px;padding:6px;display:flex}.highlights__close:hover{background:var(--surface);color:var(--fg)}.highlights__empty{color:var(--chrome-fg);padding:16px;font-size:13px}.highlights__list{margin:0;padding:0;list-style:none}.highlights__item{text-align:left;border-bottom:1px solid var(--hairline);align-items:flex-start;gap:10px;width:100%;padding:10px 16px;display:flex}.highlights__item:hover{background:var(--surface)}.highlights__swatch{border-radius:2px;flex:none;align-self:stretch;width:4px;margin-top:2px}.highlights__body{flex-direction:column;gap:6px;min-width:0;display:flex}.highlights__excerpt{font-size:13px;line-height:1.4}.highlights__context{color:var(--chrome-fg)}.highlights__note{color:var(--chrome-fg);font-size:12px;font-style:italic;line-height:1.4}.note-editor__backdrop{z-index:30;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.note-editor{background:var(--bg);width:320px;max-width:calc(100vw - 32px);color:var(--fg);border:1px solid var(--hairline);font-family:var(--chrome-font);border-radius:8px;padding:12px}.note-editor__header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.note-editor__swatch{border-radius:50%;width:16px;height:16px}.note-editor__close{color:var(--chrome-fg);border-radius:4px;padding:4px;display:flex}.note-editor__close:hover{background:var(--surface);color:var(--fg)}.note-editor__text{resize:vertical;background:var(--surface);width:100%;min-height:100px;color:inherit;border:1px solid var(--hairline);border-radius:5px;padding:8px;font-family:inherit;font-size:13px}.note-editor__footer{justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;display:flex}.note-editor__delete{color:var(--chrome-fg);border-radius:5px;margin-right:auto;padding:6px;display:flex}.note-editor__delete:hover{background:var(--surface);color:#d64545}.note-editor__save{background:var(--accent);color:var(--bg);border-radius:5px;padding:6px 14px;font-size:13px;font-weight:600}.rail{cursor:pointer;width:8px;position:absolute;top:44px;bottom:0;right:0}.rail:before{content:"";background:var(--hairline);width:3px;margin:0 auto;position:absolute;inset:0}.rail__fill{background:var(--accent);width:3px;height:calc(var(--fraction,0) * 100%);margin:0 auto;position:absolute;top:0;left:0;right:0}.rail--horizontal{width:auto;height:8px;inset:auto 0 44px}.rail--horizontal:before{width:auto;height:3px;margin:auto 0;inset:0}.rail--horizontal .rail__fill{width:calc(var(--fraction,0) * 100%);height:3px;margin:auto 0;top:0;bottom:0;right:auto}.search{background:var(--bg);border-bottom:1px solid var(--hairline);pointer-events:auto;align-items:center;gap:8px;height:44px;padding:0 12px;display:flex;position:absolute;top:44px;left:0;right:0}.search__input{border:1px solid var(--hairline);min-width:0;color:var(--fg);background:0 0;border-radius:4px;flex:1;padding:6px 8px;font-family:inherit;font-size:13px}.search__count{color:var(--chrome-fg);white-space:nowrap;font-size:12px}.search__icon{color:var(--chrome-fg);border-radius:3px;padding:8px;display:flex}.search__icon:hover{background:var(--surface);color:var(--fg)}.search__icon--active{color:var(--accent)}.search__icon:disabled{opacity:.4}.selection-toolbar{z-index:20;background:var(--bg);border:1px solid var(--hairline);border-radius:8px;align-items:center;gap:6px;padding:6px;display:flex;position:fixed;box-shadow:0 4px 16px #0003}.selection-toolbar__swatch{border:1px solid var(--hairline);border-radius:50%;width:24px;height:24px}.selection-toolbar__note{color:var(--chrome-fg);border-radius:5px;padding:6px;display:flex}.selection-toolbar__note:hover{background:var(--surface);color:var(--fg)}.settings-panel{background:var(--bg);width:min(320px,100vw - 24px);max-height:calc(100vh - 104px);color:var(--fg);border:1px solid var(--hairline);font-family:var(--chrome-font);pointer-events:auto;border-radius:6px;margin:0;padding:4px 0;position:fixed;inset:auto 12px 52px auto;overflow-y:auto}@media (width>=701px){.settings-panel{top:52px;bottom:auto}}.settings-panel__group{padding:10px 16px}.settings-panel__group+.settings-panel__group{border-top:1px solid var(--hairline)}.settings-panel__group h3{text-transform:uppercase;letter-spacing:.04em;color:var(--chrome-fg);margin:0 0 8px;font-size:11px;font-weight:600}.settings-panel__swatches{gap:8px;margin-bottom:10px;display:flex}.settings-panel__swatch{border:1px solid var(--hairline);border-radius:4px;flex:1;height:32px;font-size:12px;font-weight:600}.settings-panel__swatch--active{outline:2px solid var(--accent);outline-offset:1px}.settings-panel__row{justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:6px 0;font-size:13px;display:flex}.settings-panel__row select{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--hairline);min-width:0;max-width:60%;color:var(--chrome-fg);background:0 0;border-radius:3px;padding:5px 8px;font-family:inherit;font-size:12px;overflow:hidden}.settings-panel__piper progress{flex:1;min-width:0}.settings-panel__segmented{border:1px solid var(--hairline);border-radius:4px;display:flex;overflow:hidden}.settings-panel__segment{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:60%;color:var(--chrome-fg);flex:1;padding:8px 4px;font-size:12px;overflow:hidden}.settings-panel__segment+.settings-panel__segment{border-left:1px solid var(--hairline)}.settings-panel__segment--active{background:var(--surface);color:var(--fg);font-weight:600}.settings-panel__fonts{flex-direction:column;gap:2px;margin-top:2px;display:flex}.settings-panel__font{text-align:left;color:var(--chrome-fg);border-radius:4px;padding:6px 8px;font-size:14px}.settings-panel__font--active{background:var(--surface);color:var(--fg);font-weight:600}.toc{background:var(--bg);border-right:1px solid var(--hairline);z-index:10;width:280px;max-width:80vw;position:absolute;top:0;bottom:0;left:0;overflow-y:auto}.toc__header{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;height:44px;padding:0 16px;display:flex}.toc__header h2{margin:0;font-size:13px;font-weight:600}.toc__close{color:var(--chrome-fg);border-radius:3px;padding:6px;display:flex}.toc__close:hover{background:var(--surface);color:var(--fg)}.toc__empty{color:var(--chrome-fg);padding:16px;font-size:13px}.toc__list{margin:0;padding:0 0 0 12px;list-style:none}.toc__list .toc__list{padding-left:16px}.toc__item{text-align:left;border-bottom:1px solid var(--hairline);width:100%;padding:8px 16px 8px 4px;font-size:13px;line-height:1.4;display:block}.toc__item:hover{background:var(--surface)}.reader{height:100%;position:relative}.reader__book{height:100%}.reader__loading{color:var(--chrome-fg);justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.reader__note-marker{z-index:15;background:var(--bg);border:1px solid;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:fixed;transform:translate(2px,-50%)}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/InstrumentSans-Variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Literata;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Literata-Variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/SourceSerif4-Variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Crimson Pro;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/CrimsonPro-Variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/AtkinsonHyperlegible-Variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Fraunces;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Fraunces-Variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}:root{--bg:#fbfaf7;--fg:#1c1b19;--accent:#0f5c4c;--book-font:"Literata", serif;--heading-font:"Fraunces", serif;--font-scale:1;--line-height:1.6}[data-theme=ink]{--bg:#121316;--fg:#e4e2dd;--accent:#7fb3ff;--book-font:"Source Serif 4", serif}[data-theme=dusk]{--bg:#1e1b18;--fg:#d8cfc2;--accent:#e0a458;--book-font:"Crimson Pro", serif}[data-theme=slate]{--bg:#edeef0;--fg:#22262b;--accent:#3b5bdb;--book-font:"Atkinson Hyperlegible", sans-serif;--heading-font:"Instrument Sans", sans-serif}:root{--chrome-fg:color-mix(in oklab, var(--fg) 65%, var(--bg));--hairline:color-mix(in oklab, var(--fg) 14%, var(--bg));--surface:color-mix(in oklab, var(--fg) 5%, var(--bg));--chrome-font:"Instrument Sans", sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);overscroll-behavior:none;height:100%;margin:0}body{color:var(--fg);font-family:var(--chrome-font)}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}
