:root{--z-backdrop: 60;--z-modal: 70;--read-measure: 68ch}.layout--reading{grid-template-columns:minmax(0,1fr);max-width:772px;padding-top:30px}.lib-head{margin-bottom:8px}.lib-head__row{display:flex;align-items:flex-start;gap:16px}.lib-head h1{font-size:clamp(1.9rem,1.35rem + 2.1vw,2.55rem);margin-bottom:7px}.lib-head p{margin:0;color:var(--ink-soft);max-width:56ch}.lib-saved{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border-radius:999px;background:var(--panel);color:var(--ink);font-weight:600;font-size:.88rem;box-shadow:inset 0 0 0 1px var(--edge);transition:background .18s var(--ease),box-shadow .18s var(--ease)}.lib-saved:hover{background:var(--surface-hi);box-shadow:inset 0 0 0 1px var(--mute)}.lib-saved svg{width:17px;height:17px;color:var(--lead);flex:none}.lib-saved .count{color:var(--accent-deep);font-weight:700}.lib-saved.is-active{background:var(--accent-soft);color:var(--accent-deep);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.3)}.lib-saved.is-active svg{color:var(--accent-deep)}.lib-filters{display:flex;flex-direction:column;gap:12px;padding:16px 18px;margin:22px 0 8px;border-radius:var(--r-lg);background:var(--surface-hi);box-shadow:inset 0 0 0 1px var(--edge)}.lib-filterrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.lib-filterrow__label{flex:none;width:64px;font-size:.82rem;font-weight:700;color:var(--ink-soft)}.lib-filterrow--beta{border-top:1px solid var(--line);padding-top:13px}.lib-beta-toggle{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 12px;border-radius:999px;border:0;white-space:nowrap;background:var(--bg);color:var(--ink-soft);font-weight:600;font-size:.86rem;box-shadow:inset 0 0 0 1px var(--edge);transition:background .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease)}.lib-beta-toggle svg{width:15px;height:15px;flex:none}.lib-beta-toggle:hover{color:var(--accent-deep);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.4)}.lib-beta-toggle.is-on{background:var(--accent);color:#fff;box-shadow:none}.lib-empty{margin:28px 2px;text-align:center;color:var(--ink-soft);font-size:.94rem}.lib-empty[hidden]{display:none}.lib-count{font-size:.84rem;color:var(--ink-soft);margin:18px 2px 4px}.lib-count b{color:var(--accent-deep)}.lib-list{display:flex;flex-direction:column}.lib-item{display:block;position:relative;padding:22px 18px;border-radius:var(--r-lg);border-bottom:1px solid var(--line);transition:background .2s var(--ease)}.lib-item[hidden]{display:none}.lib-item:last-of-type{border-bottom:0}.lib-item:hover{background:var(--panel)}.lib-item:hover .lib-item__title{color:var(--lead-deep)}.lib-item__meta{display:flex;align-items:center;gap:12px;margin-bottom:9px;flex-wrap:wrap}.lib-chip{font-size:.74rem;font-weight:700;padding:4px 11px;border-radius:999px;background:rgba(var(--lead-rgb),.1);color:var(--lead-deep)}.lib-time{font-size:.8rem;color:var(--ink-soft);display:inline-flex;align-items:center;gap:6px}.lib-time svg{width:14px;height:14px;color:var(--mute);flex:none}.lib-item__title{font-size:1.34rem;line-height:1.22;margin-bottom:7px;transition:color .18s var(--ease)}.lib-item__excerpt{margin:0 0 11px;color:var(--ink-soft);font-size:.96rem;line-height:1.6;font-family:Literata,Georgia,serif;max-width:var(--read-measure);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lib-item__author{font-size:.86rem;color:var(--ink-soft);display:inline-flex;align-items:center;gap:7px}.lib-item__author svg{width:15px;height:15px;color:var(--mute);flex:none}.lib-item__author b{color:var(--ink);font-weight:600}.lib-item__author--anon b{color:var(--ink-soft);font-weight:600;font-style:italic}.lib-item__beta{display:flex;align-items:flex-start;gap:9px;margin:12px 0 0;padding:11px 14px;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-deep);font-size:.86rem;line-height:1.5}.lib-item__beta svg{width:16px;height:16px;flex:none;margin-top:2px}.lib-item__beta b{font-weight:700}.lib-more{display:flex;justify-content:center;margin:26px 0 8px}.lib-more .btn svg{transition:transform .4s var(--ease)}.lib-more .btn:hover svg{transform:rotate(180deg)}.lib-quiet{display:flex;align-items:center;gap:9px;margin-top:26px;padding:14px 18px;border-radius:var(--r-lg);background:var(--panel);box-shadow:inset 0 0 0 1px var(--edge);font-size:.86rem;color:var(--ink-soft)}.lib-quiet svg{width:17px;height:17px;color:var(--accent-deep);flex:none}.lib-quiet b{color:var(--ink)}.reader-page{background-image:none}.reader-bar{position:sticky;top:0;z-index:var(--z-topbar);display:flex;align-items:center;gap:14px;padding:13px clamp(16px,4vw,40px);background:rgba(var(--nav-bg),.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.reader-bar__back{display:inline-flex;align-items:center;gap:7px;padding:9px 14px 9px 11px;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);font-weight:600;font-size:.9rem;transition:background .18s var(--ease),color .18s var(--ease)}.reader-bar__back:hover{background:rgba(var(--lead-rgb),.1);color:var(--lead-deep)}.reader-bar__back svg{width:18px;height:18px}.reader-bar .logo{font-size:1.15rem}.reader-bar__spacer{margin-left:auto}.read-size{display:inline-flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--edge)}.read-size button{width:36px;height:32px;border:0;border-radius:999px;background:transparent;color:var(--lead-deep);font-family:Literata,serif;font-weight:700;display:grid;place-items:center;line-height:1;transition:background .16s var(--ease)}.read-size button:hover:not(:disabled){background:var(--surface-hi)}.read-size button:disabled{color:var(--mute);cursor:default}.read-size button.s-minus{font-size:.82rem}.read-size button.s-plus{font-size:1.05rem}.read-progress{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--accent);transition:width .1s linear}.reader{--rsize: 1.16rem;max-width:720px;margin:0 auto;padding:40px clamp(18px,5vw,36px) 60px}.reader__meta{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.reader__title{font-size:clamp(1.9rem,1.4rem + 2vw,2.7rem);line-height:1.12;letter-spacing:-.015em;margin-bottom:26px;text-wrap:balance}.reader__text{color:var(--ink);font-family:Literata,Georgia,serif;font-size:var(--rsize);line-height:1.78;text-wrap:pretty}.reader__text>p{margin:0 0 1.3em}.reader__text>p:first-child{margin-top:0}.reader__text>p:first-child:first-letter{font-family:Literata,serif;font-weight:700;color:var(--lead-deep);font-size:3.1em;line-height:.82;float:left;padding:6px 10px 0 0}.reader__pdf{display:inline-flex;align-items:center;gap:10px;margin-top:28px;padding:12px 18px;border-radius:var(--r-md, 12px);text-decoration:none;font-weight:600;color:var(--ink);background:var(--surface-hi);box-shadow:inset 0 0 0 1px var(--edge)}.reader__pdf:hover{box-shadow:inset 0 0 0 1px var(--lead-deep);color:var(--lead-deep)}.reader__pdf svg{width:20px;height:20px}.reader__author{display:flex;align-items:center;gap:12px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}.reader__author .ava{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--lead);color:var(--on-lead);font-family:Literata,serif;font-weight:600;font-size:1.1rem}.reader__author--anon .ava{background:var(--panel);color:var(--ink-soft);box-shadow:inset 0 0 0 1px var(--edge)}.reader__author .who .r{font-size:.78rem;color:var(--ink-soft)}.reader__author .who .nm{font-weight:700;font-size:1.02rem;font-family:Literata,serif}.reader__author--anon .who .nm{font-style:italic;color:var(--ink-soft)}.reader__beta{margin-top:30px;padding:20px 22px;border-radius:var(--r-lg);background:var(--accent-soft);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.22)}.reader__beta-h{display:flex;align-items:center;gap:10px;margin-bottom:10px}.reader__beta-h svg{width:20px;height:20px;color:var(--accent-deep);flex:none}.reader__beta-h h3{font-size:1.1rem;color:var(--accent-deep)}.reader__beta p{margin:0;color:var(--ink-soft);font-size:.94rem;line-height:1.6}.reader__beta p b{color:var(--accent-deep)}.reader__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}.reader__actions .btn{flex:1;min-width:150px;justify-content:center}.btn--saved-on{background:var(--accent-soft);color:var(--accent-deep);box-shadow:inset 0 0 0 1.5px rgba(var(--accent-rgb),.34)}.btn--saved-on:hover{background:var(--accent-soft);transform:none}.save-toggle .ic-off{display:inline-flex}.save-toggle .ic-on,.save-toggle.is-on .ic-off{display:none}.save-toggle.is-on .ic-on{display:inline-flex}.note-dlg{width:min(540px,94vw);max-height:92vh;border:0;padding:0;border-radius:var(--r-lg);background:var(--bg);color:var(--ink);box-shadow:0 40px 80px -30px rgba(var(--ink-rgb),.8);overflow:hidden}.note-dlg::backdrop{background:rgba(var(--ink-rgb),.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.note-dlg__head{display:flex;align-items:flex-start;gap:13px;padding:20px 22px 16px}.note-dlg__ic{width:42px;height:42px;flex:none;border-radius:12px;display:grid;place-items:center;background:rgba(var(--lead-rgb),.12);color:var(--lead-deep)}.note-dlg__ic svg{width:22px;height:22px}.note-dlg__head h3{font-size:1.18rem}.note-dlg__head p{margin:4px 0 0;font-size:.88rem;color:var(--ink-soft);line-height:1.5}.note-dlg__close{margin-left:auto;flex:none;width:36px;height:36px;border:0;border-radius:10px;background:var(--panel);color:var(--ink-soft);display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--edge);transition:color .18s var(--ease)}.note-dlg__close:hover{color:var(--lead-deep)}.note-dlg__close svg{width:19px;height:19px}.note-dlg__body{padding:0 22px 4px}.note-dlg__body textarea{width:100%;font:inherit;color:var(--ink);resize:vertical;min-height:132px;padding:14px 15px;border-radius:var(--r-md);background:var(--surface-hi);border:0;box-shadow:inset 0 0 0 1px var(--edge);line-height:1.6}.note-dlg__body textarea::placeholder{color:var(--ink-soft);opacity:.7}.note-dlg__body textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--lead)}.note-dlg__hint{display:flex;align-items:flex-start;gap:8px;margin:12px 0 0;font-size:.82rem;color:var(--ink-soft);line-height:1.5}.note-dlg__hint svg{width:16px;height:16px;color:var(--accent-deep);flex:none;margin-top:1px}.note-dlg__foot{display:flex;gap:10px;padding:18px 22px 22px}.note-dlg__foot .btn{flex:1;justify-content:center}.lib-item__remove{position:absolute;top:18px;right:14px;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);font-weight:600;font-size:.82rem;opacity:0;transition:opacity .18s var(--ease),background .18s var(--ease),color .18s var(--ease)}.lib-item:hover .lib-item__remove,.lib-item__remove:focus-visible{opacity:1}.lib-item__remove:hover{background:var(--surface-hi);color:var(--lead-deep)}.lib-item__remove svg{width:15px;height:15px}@media(max-width:920px){.layout--reading{padding-bottom:104px}.reader__actions .btn{flex:1 1 100%}.lib-head__row{flex-wrap:wrap}.lib-saved{margin-left:0}}@media(max-width:560px){.lib-item__remove{position:static;opacity:1;margin-top:10px;padding-left:0}.reader{padding-top:28px}}@media(prefers-reduced-motion:no-preference){.lib-list .lib-item{animation:rise .5s var(--ease) both}.lib-list .lib-item:nth-child(2){animation-delay:.05s}.lib-list .lib-item:nth-child(3){animation-delay:.1s}.lib-list .lib-item:nth-child(4){animation-delay:.15s}.lib-list .lib-item:nth-child(n+5){animation-delay:.2s}}@media(prefers-reduced-motion:reduce){.lib-item,.lib-saved,.lib-tab,.reader-bar__back,.read-size button,.read-progress{transition:none}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%) translateY(20px);z-index:var(--z-modal);padding:13px 20px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:9px;opacity:0;pointer-events:none;box-shadow:0 20px 40px -18px rgba(var(--ink-rgb),.8);transition:opacity .25s var(--ease),transform .25s var(--ease)}.toast svg{width:17px;height:17px;color:var(--accent)}.toast.is-on{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:920px){.toast{bottom:90px}}
