*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:none;text-size-adjust:none}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--fg);font-family:var(--font-ui);font-size:calc(15px / var(--tz, 1));line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@supports not (height: 1dvh){body{min-height:100vh}}a{color:inherit}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}img{max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lib-app{min-height:100dvh;display:flex;flex-direction:column}@supports not (height: 1dvh){.lib-app{min-height:100vh}}.lib-main{flex:1}.lib-page{width:100%;max-width:1180px;margin:0 auto;padding:28px 24px 64px}.lib-narrow{max-width:680px}.lib-h1{margin:0 0 8px;font-family:var(--font-prose);font-weight:500;font-size:calc(30px / var(--tz, 1));line-height:1.2}.lib-h2{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:calc(12px / var(--tz, 1));font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--fg-2)}.lib-count{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--btn-bg);color:var(--fg-soft);font-size:calc(11px / var(--tz, 1));font-weight:700;line-height:18px;text-align:center;letter-spacing:0}.lib-text-btn{padding:2px 0;color:var(--fg-3);font-size:calc(12px / var(--tz, 1));font-weight:600;transition:color .12s}.lib-text-btn:hover{color:var(--fg)}.lib-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:64px 0;color:var(--fg-3)}.lib-empty{display:flex;flex-direction:column;align-items:center;gap:14px;padding:56px 0;text-align:center}.lib-hero{text-align:center;padding:26px 0 30px}.lib-hero-title{margin:0;font-family:var(--font-prose);font-weight:500;font-size:calc(42px / var(--tz, 1));line-height:1.1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.lib-hero-sub{margin:10px 0 22px;color:var(--fg-2);font-size:calc(15px / var(--tz, 1))}.lib-search-row{display:flex;align-items:stretch;gap:10px;max-width:640px;margin:0 auto}.lib-search{position:relative;flex:1;min-width:0}.lib-search svg{position:absolute;left:16px;top:50%;width:18px;height:18px;transform:translateY(-50%);fill:none;stroke:var(--fg-3);stroke-width:2;stroke-linecap:round}.lib-search input{width:100%;padding:14px 18px 14px 46px;font:inherit;font-size:calc(16px / var(--tz, 1));color:var(--fg);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:999px;outline:none;box-shadow:inset 0 1px 0 var(--hairline);transition:border-color .12s,box-shadow .12s}.lib-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.lib-browse{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px;align-items:start}.lib-filters{position:sticky;top:78px;display:flex;flex-direction:column;gap:18px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);max-height:calc(100dvh - 100px);overflow-y:auto}@supports not (height: 1dvh){.lib-filters{max-height:calc(100vh - 100px)}}.lib-filter{display:flex;flex-direction:column;gap:8px}.lib-filters .pub-chip{font-size:calc(12px / var(--tz, 1));padding:4px 10px}.lib-chip-count{color:var(--fg-3);font-size:calc(11px / var(--tz, 1))}.lib-results{min-width:0}.lib-results-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:30px;margin-bottom:14px}.lib-filters-toggle{display:none;flex:none;align-items:center;gap:7px;padding:0 18px;border-radius:999px;background:var(--surface-raised);border:1px solid var(--border-strong);color:var(--fg-soft);font-size:calc(14px / var(--tz, 1));font-weight:600;box-shadow:inset 0 1px 0 var(--hairline);transition:border-color .12s,color .12s,background .12s}.lib-filters-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.lib-filters-toggle:hover{border-color:var(--accent-border);color:var(--fg)}.lib-filters-toggle.on{border-color:var(--accent-border);color:var(--accent-text)}.lib-filters-count{min-width:19px;padding:0 6px;border-radius:999px;background:var(--accent-strong);color:#fff;font-size:calc(11px / var(--tz, 1));line-height:19px;text-align:center}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:14px}.lib-more{display:flex;justify-content:center;padding:26px 0 0}.lib-card{display:flex;gap:16px;padding:16px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:inset 0 1px 0 var(--hairline);transition:border-color .12s;min-width:0}.lib-card:hover{border-color:var(--accent-border)}.lib-card-cover{flex:none;display:block}.lib-card-cover .book-cover-md{width:104px}.lib-card-cover .book-cover-md .book-cover-title{font-size:calc(calc(13px * var(--cover-title-k, 1)) / var(--tz, 1))}.lib-card-cover .book-cover-md .book-cover-author{font-size:calc(7px / var(--tz, 1))}.lib-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.lib-card-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:calc(11.5px / var(--tz, 1));color:var(--fg-3)}.lib-card-status{font-weight:600}.lib-card-title{font-family:var(--font-prose);font-size:calc(19px / var(--tz, 1));font-weight:500;line-height:1.25;color:var(--fg);text-decoration:none;overflow-wrap:anywhere}.lib-card-title:hover{color:var(--accent-text)}.lib-card-author{font-size:calc(13px / var(--tz, 1));color:var(--fg-3)}.lib-author-link{color:var(--fg-soft);font-weight:600;text-decoration:none}.lib-author-link:hover{color:var(--accent-text)}.lib-card-desc{margin:2px 0 0;font-size:calc(13.5px / var(--tz, 1));line-height:1.55;color:var(--fg-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.lib-card-stats{margin-top:auto;padding-top:4px;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:calc(12px / var(--tz, 1));color:var(--fg-3)}.lib-card-remove{margin-left:auto}.lib-new-badge{padding:1px 8px;border-radius:999px;background:var(--accent-strong);color:#fff;font-size:calc(11px / var(--tz, 1));font-weight:700}.lib-tags{display:flex;flex-wrap:wrap;gap:5px}.lib-tag{padding:2px 9px;border-radius:999px;background:var(--bg-deep);border:1px solid var(--border);color:var(--fg-2);font-size:calc(12px / var(--tz, 1));text-decoration:none;transition:color .12s,border-color .12s}.lib-tag:hover{color:var(--accent-text);border-color:var(--accent-border)}.lib-tag-more{font-size:calc(12px / var(--tz, 1));color:var(--fg-3);padding:2px 4px}.lib-rating{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;font-size:calc(11px / var(--tz, 1));font-weight:800;color:#fff;background:var(--btn-bg-hover);flex:none;vertical-align:middle}.lib-rating.large{width:44px;height:44px;border-radius:10px;font-size:calc(20px / var(--tz, 1))}.lib-rating.rating-general{background:#3f8f5d}.lib-rating.rating-teen{background:#b9963e}.lib-rating.rating-mature{background:#c26a32}.lib-rating.rating-explicit{background:#b33a4a}.lib-book{max-width:960px}.lib-own-note{margin-bottom:18px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}.lib-edit-btn{flex-shrink:0;text-decoration:none}.lib-book-head{display:flex;gap:32px;align-items:flex-start}.lib-book-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}.lib-book-title{margin:0;font-family:var(--font-prose);font-weight:500;font-size:calc(36px / var(--tz, 1));line-height:1.15;overflow-wrap:anywhere}.lib-book-author{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;color:var(--fg-soft);font-weight:600;text-decoration:none}.lib-book-author:hover{color:var(--accent-text)}.lib-meta{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.lib-meta>div{display:flex;flex-direction:column;gap:2px;min-width:0}.lib-meta dt{font-size:calc(11px / var(--tz, 1));font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--fg-3)}.lib-meta dd{margin:0;font-size:calc(14px / var(--tz, 1));color:var(--fg-soft);display:flex;align-items:center;gap:6px}.lib-book-stats{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:calc(13px / var(--tz, 1));color:var(--fg-3)}.lib-book-stats strong{color:var(--fg-soft);font-variant-numeric:tabular-nums}.lib-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:26px 0 8px}.lib-read-btn{padding:11px 22px;font-size:calc(14px / var(--tz, 1))}.lib-toggle.on{background:var(--accent-soft);color:var(--accent-text);box-shadow:0 0 0 1px var(--accent-border)}.lib-toggle .lib-count{margin-left:2px}.lib-section{margin-top:34px}.lib-blurb p{margin:0 0 12px;font-family:var(--font-prose);font-size:calc(16.5px / var(--tz, 1));line-height:1.7;color:var(--fg-soft);white-space:pre-line}.lib-toc{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.lib-toc li+li{border-top:1px solid var(--border)}.lib-toc-link{display:flex;align-items:center;gap:14px;padding:13px 16px;text-decoration:none;transition:background .12s}.lib-toc-link:hover{background:var(--hover)}.lib-toc-num{flex:none;width:24px;color:var(--fg-3);font-variant-numeric:tabular-nums}.lib-toc-title{flex:1;min-width:0;font-family:var(--font-prose);font-size:calc(16px / var(--tz, 1));color:var(--fg)}.lib-toc-summary{display:block;margin-top:2px;font-family:var(--font-ui);font-size:calc(12.5px / var(--tz, 1));font-style:italic;color:var(--fg-3)}.lib-toc-here{flex:none;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:calc(11px / var(--tz, 1));font-weight:700}.lib-toc-meta{flex:none;font-size:calc(12px / var(--tz, 1));color:var(--fg-3)}.lib-menu-wrap{position:relative;display:inline-flex}.lib-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.lib-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:31;width:290px;padding:6px;display:flex;flex-direction:column;background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 16px 40px -12px #000000b3}.lib-menu button{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:6px;text-align:left}.lib-menu button:hover{background:var(--btn-bg-hover)}.lib-menu strong{font-size:calc(13.5px / var(--tz, 1));color:var(--fg)}.lib-menu span{font-size:calc(11.5px / var(--tz, 1));color:var(--fg-3)}.lib-menu-error{position:absolute;top:calc(100% + 6px);left:0;width:280px;z-index:5}.lib-gate{display:flex;justify-content:center;padding:64px 20px}.lib-gate-card{max-width:520px;display:flex;flex-direction:column;align-items:center;gap:14px;padding:34px 30px;text-align:center;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-lg)}.lib-gate-title{margin:0;font-family:var(--font-prose);font-weight:500;font-size:calc(24px / var(--tz, 1))}.lib-gate-text{margin:0;color:var(--fg-2);line-height:1.6}.lib-gate-text strong{color:var(--fg)}.lib-gate-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px}.lib-gate-check{display:inline-flex;align-items:center;gap:7px;font-size:calc(12.5px / var(--tz, 1));color:var(--fg-2);cursor:pointer;transition:color .12s}.lib-gate-check:hover,.lib-gate-check:has(input:checked){color:var(--fg)}.lib-gate-check input{margin:0;width:14px;height:14px;accent-color:var(--accent-strong);cursor:pointer}.lib-reader{--r-bg: var(--bg);--r-fg: #e9e3dc;--r-muted: var(--fg-3);--r-border: var(--border);--r-surface: var(--surface);background:var(--r-bg);color:var(--r-fg);min-height:calc(100dvh - 58px);padding:0 20px 64px}@supports not (color: color-mix(in srgb,red,blue)){.lib-reader{--r-bg__r: var(--bg__r);--r-bg__g: var(--bg__g);--r-bg__b: var(--bg__b);--r-bg__a: var(--bg__a);--r-fg__r: 233;--r-fg__g: 227;--r-fg__b: 220;--r-fg__a: 1;--r-muted__r: var(--fg-3__r);--r-muted__g: var(--fg-3__g);--r-muted__b: var(--fg-3__b);--r-muted__a: var(--fg-3__a);--r-border__r: var(--border__r);--r-border__g: var(--border__g);--r-border__b: var(--border__b);--r-border__a: var(--border__a);--r-surface__r: var(--surface__r);--r-surface__g: var(--surface__g);--r-surface__b: var(--surface__b);--r-surface__a: var(--surface__a)}}@supports not (height: 1dvh){.lib-reader{min-height:calc(100vh - 58px)}}.lib-reader.theme-paper{--r-bg: #fbfaf7;--r-fg: #26221f;--r-muted: #5f5852;--r-border: #e7e2da;--r-surface: #f2efe9}@supports not (color: color-mix(in srgb,red,blue)){.lib-reader.theme-paper{--r-bg__r: 251;--r-bg__g: 250;--r-bg__b: 247;--r-bg__a: 1;--r-fg__r: 38;--r-fg__g: 34;--r-fg__b: 31;--r-fg__a: 1;--r-muted__r: 95;--r-muted__g: 88;--r-muted__b: 82;--r-muted__a: 1;--r-border__r: 231;--r-border__g: 226;--r-border__b: 218;--r-border__a: 1;--r-surface__r: 242;--r-surface__g: 239;--r-surface__b: 233;--r-surface__a: 1}}.lib-reader.theme-sepia{--r-bg: #f3e9d7;--r-fg: #3a2f22;--r-muted: #5e4e3b;--r-border: #e1d3ba;--r-surface: #ebdfc8}@supports not (color: color-mix(in srgb,red,blue)){.lib-reader.theme-sepia{--r-bg__r: 243;--r-bg__g: 233;--r-bg__b: 215;--r-bg__a: 1;--r-fg__r: 58;--r-fg__g: 47;--r-fg__b: 34;--r-fg__a: 1;--r-muted__r: 94;--r-muted__g: 78;--r-muted__b: 59;--r-muted__a: 1;--r-border__r: 225;--r-border__g: 211;--r-border__b: 186;--r-border__a: 1;--r-surface__r: 235;--r-surface__g: 223;--r-surface__b: 200;--r-surface__a: 1}}.lib-app-reading .lib-main{background:var(--bg)}.lib-reader-bar{position:relative;max-width:760px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--r-border);font-size:calc(13px / var(--tz, 1))}.lib-reader-book{flex:1;min-width:0;color:var(--r-muted);text-decoration:none;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-reader-book:hover{color:var(--r-fg)}.lib-reader-pos{color:var(--r-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.lib-aa{font-family:var(--font-prose);font-size:calc(15px / var(--tz, 1));color:var(--r-fg)!important}.lib-reader-share{color:var(--r-fg)!important;padding-left:9px!important;padding-right:9px!important}.lib-reader:not(.theme-night) .pub-btn{background:var(--r-surface);color:var(--r-fg);box-shadow:none}.lib-reader:not(.theme-night) .pub-btn:hover:not(:disabled){background:var(--r-border);color:var(--r-fg)}.lib-reader:not(.theme-night) .pub-btn-primary{background:var(--grad-btn);color:#fff}.lib-reader:not(.theme-night) .pub-btn-primary:hover:not(:disabled){background:var(--grad-btn);color:#fff}.lib-chapter{max-width:38em;margin:0 auto;padding:44px 0 10px;font-size:calc(var(--reader-size, 19px) / var(--tz, 1))}.lib-chapter-head{text-align:center;margin-bottom:2.2em}.lib-chapter-kicker{margin:0 0 10px;font-family:var(--font-ui);font-size:calc(12px / var(--tz, 1));font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--r-muted)}.lib-chapter-kicker a{color:inherit;text-decoration:none}.lib-chapter-kicker a:hover{color:var(--accent)}.lib-chapter-title{margin:0;font-family:var(--font-prose);font-weight:500;font-size:1.75em;line-height:1.2;color:var(--r-fg)}.lib-chapter-summary{margin:10px 0 0;font-style:italic;font-size:.95em;line-height:1.5;color:var(--r-muted)}.lib-chapter-meta{margin:12px 0 0;font-family:var(--font-ui);font-size:calc(12.5px / var(--tz, 1));color:var(--r-muted)}.lib-prose{font-family:var(--font-prose);line-height:1.78;color:var(--r-fg);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.font-sans .lib-prose{font-family:var(--font-ui);line-height:1.7}.lib-prose p{margin:0 0 1.05em}.lib-scene-break{border:none;margin:1.8em 0;text-align:center;overflow:visible;height:auto}.lib-scene-break:before{content:"⁂";color:var(--r-muted);font-size:1.1em}.lib-chapter-nav{max-width:38em;margin:28px auto 0;padding-top:22px;border-top:1px solid var(--r-border);display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:calc(15px / var(--tz, 1))}.lib-end-mark{font-family:var(--font-prose);font-style:italic;color:var(--r-muted)}.lib-kudos-nudge{max-width:38em;margin:22px auto 0;padding:14px 18px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;border-radius:var(--r-md);background:var(--r-surface);color:var(--r-fg);font-size:calc(14px / var(--tz, 1))}.lib-reader-comments{max-width:38em;margin:40px auto 0}.lib-comments{scroll-margin-top:78px}.lib-prose p.lib-p-g{position:relative}.lib-gut{position:absolute;top:0;left:-34px;height:1.75em;height:1lh;display:flex;align-items:center;user-select:none;-webkit-user-select:none;z-index:2}.lib-gut-btn{display:grid;place-items:center;width:28px;height:28px;padding:0;border-radius:999px;color:var(--accent);-webkit-tap-highlight-color:transparent}.lib-gut-dash{display:block;width:9px;height:1.5px;border-radius:1px;background:var(--r-fg);opacity:.15;transition:background .22s,width .22s,opacity .22s}.lib-reader.theme-night .lib-gut-dash{opacity:.21}.lib-prose p.lib-p-g:hover .lib-gut-dash{opacity:.3}.lib-prose p .lib-gut-btn:hover .lib-gut-dash,.lib-prose p .lib-gut-btn:focus-visible .lib-gut-dash,.lib-prose p .lib-gut.open .lib-gut-dash{width:13px;background:var(--accent);opacity:1}.lib-gut-btn svg{display:block;fill:currentColor;opacity:.85}.lib-gut.marked .lib-gut-btn:hover svg,.lib-gut.marked.open svg{opacity:1}.lib-reader:not(.theme-night) .lib-gut-btn{color:var(--accent-strong)}.lib-margin-menu{position:absolute;top:50%;left:32px;transform:translateY(-50%);display:flex;gap:2px;padding:4px;border-radius:999px;background:color-mix(in srgb,var(--surface-raised) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-strong);box-shadow:0 12px 32px -12px #000000b3,inset 0 1px 0 var(--hairline);font-family:var(--font-ui);font-size:calc(13px / var(--tz, 1));font-style:normal;font-weight:400;white-space:nowrap;animation:lib-margin-in .16s cubic-bezier(.2,.8,.2,1)}@supports not (color: color-mix(in srgb,red,blue)){.lib-margin-menu{background:rgba(var(--surface-raised__r),var(--surface-raised__g),var(--surface-raised__b),calc(var(--surface-raised__a) * .94))}}@keyframes lib-margin-in{0%{opacity:0;transform:translate(-6px,-50%) scale(.96)}}.lib-margin-item{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;color:var(--fg-soft);font-weight:600;transition:background .12s,color .12s}.lib-margin-item svg{fill:currentColor;color:var(--accent)}.lib-margin-item:hover:not(:disabled){background:var(--accent-soft);color:var(--fg)}.lib-margin-item.on{color:var(--accent-text)}.lib-margin-done{padding:7px 14px;color:var(--accent-text);font-weight:700}.lib-margin-count{min-width:18px;padding:0 5px;border-radius:999px;background:var(--spark-soft);color:var(--spark-text);font-size:calc(11px / var(--tz, 1));font-weight:800;line-height:17px;text-align:center}.lib-reader:not(.theme-night) .lib-margin-count{background:#7c3aed1f;color:var(--spark-strong)}.pcm{max-width:580px}.pcm-body{padding-bottom:22px;gap:14px}.pcm-quote{margin:0;padding:10px 14px;border-left:3px solid var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--accent-soft);font-family:var(--font-prose);font-style:italic;font-size:calc(14.5px / var(--tz, 1));line-height:1.6;color:var(--fg-soft)}.pcm-section{margin:6px 0 0;font-size:calc(11.5px / var(--tz, 1));font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}@media(max-width:560px){.pcm-overlay{top:var(--vv-top, 0px);bottom:auto;height:var(--vv-h, 100dvh);padding:12px;-webkit-backdrop-filter:none;backdrop-filter:none}@supports not (height: 1dvh){.pcm-overlay{height:var(--vv-h, 100vh)}}.pcm{max-height:100%;animation:pcm-up .34s cubic-bezier(.2,.9,.3,1) both}}@keyframes pcm-up{0%{transform:translateY(48px);opacity:0}}.lib-prose p{transition:background .3s,box-shadow .3s;border-radius:4px}.lib-prose p.lib-p-focus{background:var(--accent-soft);box-shadow:0 0 0 6px var(--accent-soft)}.lib-prose p.lib-p-flash{animation:lib-p-flash 2.4s ease-out}@keyframes lib-p-flash{0%,30%{background:var(--accent-soft-hover);box-shadow:0 0 0 8px var(--accent-soft-hover)}to{background:transparent;box-shadow:0 0 0 8px transparent}}.lib-reader:not(.theme-night) .lib-margin-menu{background:var(--r-bg);border-color:var(--r-border);box-shadow:0 12px 32px -14px #3c281459}.lib-reader:not(.theme-night) .lib-margin-item{color:var(--r-fg)}.lib-reader:not(.theme-night) .lib-margin-item svg{color:var(--accent-strong)}.lib-bookmark-jump{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));z-index:40;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:color-mix(in srgb,var(--surface-raised) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--accent-border);box-shadow:0 14px 34px -14px #000000bf,0 0 0 4px var(--accent-soft);color:var(--accent-text);font-family:var(--font-ui);font-size:calc(13.5px / var(--tz, 1));font-weight:700;white-space:nowrap;animation:lib-jump-in .42s cubic-bezier(.2,.8,.2,1) .6s both;transition:background .14s}@supports not (color: color-mix(in srgb,red,blue)){.lib-bookmark-jump{background:rgba(var(--surface-raised__r),var(--surface-raised__g),var(--surface-raised__b),calc(var(--surface-raised__a) * .94))}}@keyframes lib-jump-in{0%{opacity:0;transform:translate(-50%,14px)}}.lib-bookmark-jump svg{fill:currentColor}.lib-bookmark-jump:hover{background:var(--surface-raised)}.lib-read-ribbon{fill:currentColor;margin-right:7px;vertical-align:-1px}@media(prefers-reduced-motion:reduce){.lib-gut-dash{transition:none}.lib-margin-menu,.lib-prose p.lib-p-flash,.lib-bookmark-jump{animation:none}}@media(max-width:640px){.lib-gut{left:-17px}.lib-gut-btn{width:18px;height:30px}.lib-gut-dash{width:7px}.lib-margin-menu{left:20px}}.lib-bm-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));gap:14px}.lib-bm{display:flex;gap:16px;padding:16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);box-shadow:inset 0 1px 0 var(--hairline);transition:border-color .16s,transform .16s}.lib-bm:hover{border-color:var(--border-strong)}.lib-bm-cover{flex:none;text-decoration:none}.lib-bm-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.lib-bm-top{display:flex;flex-direction:column;gap:1px}.lib-bm-title{font-family:var(--font-prose);font-size:calc(18px / var(--tz, 1));font-weight:500;line-height:1.25;text-decoration:none;color:var(--fg)}.lib-bm-title:hover{color:var(--accent-text)}.lib-bm-author{font-size:calc(12.5px / var(--tz, 1));color:var(--fg-3)}.lib-bm-where{display:flex;align-items:center;gap:6px;min-width:0;font-size:calc(12.5px / var(--tz, 1));font-weight:700;color:var(--accent-text)}.lib-bm-where svg{flex:none;fill:currentColor}.lib-bm-where span:not(.lib-bm-when){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-bm-when{flex:none;color:var(--fg-3);font-weight:600}.lib-bm-quote{margin:2px 0 0;padding:0 0 0 12px;border-left:2px solid var(--accent-border);font-family:var(--font-prose);font-style:italic;font-size:calc(14px / var(--tz, 1));line-height:1.55;color:var(--fg-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.lib-bm-actions{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:6px}@media(max-width:640px){.lib-bm{padding:12px;gap:12px}.lib-bm .book-cover-sm{width:60px}}.lib-written-with{margin:0;font-family:var(--font-ui);font-size:calc(13px / var(--tz, 1));line-height:1.65;color:var(--r-muted, var(--fg-3));text-wrap:pretty}.lib-written-with strong{font-weight:600;color:var(--r-fg, var(--fg-2))}.lib-written-with a{color:var(--r-fg, var(--fg-soft));font-weight:600;white-space:nowrap;text-decoration:underline;text-decoration-color:var(--r-border, var(--border-strong));text-underline-offset:3px;transition:text-decoration-color .12s}.lib-written-with a:hover{text-decoration-color:currentColor}.lib-written-with-book{margin-top:22px}.lib-written-with-reader{max-width:38em;margin:26px auto 0;text-align:center}.lib-reader:not(.theme-night) .lib-comments{--fg: var(--r-fg);--fg-soft: var(--r-fg);--fg-2: var(--r-muted);--fg-3: var(--r-muted);--border: var(--r-border)}@supports not (color: color-mix(in srgb,red,blue)){.lib-reader:not(.theme-night) .lib-comments{--fg__r: var(--r-fg__r);--fg__g: var(--r-fg__g);--fg__b: var(--r-fg__b);--fg__a: var(--r-fg__a);--fg-soft__r: var(--r-fg__r);--fg-soft__g: var(--r-fg__g);--fg-soft__b: var(--r-fg__b);--fg-soft__a: var(--r-fg__a);--fg-2__r: var(--r-muted__r);--fg-2__g: var(--r-muted__g);--fg-2__b: var(--r-muted__b);--fg-2__a: var(--r-muted__a);--fg-3__r: var(--r-muted__r);--fg-3__g: var(--r-muted__g);--fg-3__b: var(--r-muted__b);--fg-3__a: var(--r-muted__a);--border__r: var(--r-border__r);--border__g: var(--r-border__g);--border__b: var(--r-border__b);--border__a: var(--r-border__a)}}.lib-reader:not(.theme-night) .lib-comments .pub-textarea{background:#fff;color:#222;border-color:var(--r-border)}.lib-reader:not(.theme-night) .lib-compose-gate{background:var(--r-surface)}.lib-comments{display:flex;flex-direction:column;gap:14px}.lib-comment-quote{margin:2px 0 4px;padding:0 0 0 10px;border-left:2px solid var(--accent-border);font-family:var(--font-prose);font-style:italic;font-size:calc(13.5px / var(--tz, 1));line-height:1.5;color:var(--fg-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lib-compose{display:flex;gap:12px;align-items:flex-start}.lib-compose-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.lib-compose .pub-textarea{min-height:84px;font-size:calc(14.5px / var(--tz, 1))}.lib-compose-actions{display:flex;justify-content:flex-end;gap:6px}.lib-compose-gate{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface-raised);border:1px solid var(--border);font-size:calc(13.5px / var(--tz, 1));color:var(--fg-2)}.lib-comment-list,.lib-replies{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}.lib-replies{margin-top:14px;padding-left:4px}.lib-comment{display:flex;gap:12px;align-items:flex-start}.lib-comment-main{flex:1;min-width:0}.lib-comment-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.lib-comment-name{font-weight:700;font-size:calc(13.5px / var(--tz, 1));color:var(--fg);text-decoration:none}a.lib-comment-name:hover{color:var(--accent-text)}.lib-author-badge{padding:0 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:calc(10.5px / var(--tz, 1));font-weight:700;line-height:17px}.lib-comment-time{font-size:calc(12px / var(--tz, 1));color:var(--fg-3)}.lib-comment-body{margin-top:4px;font-size:calc(14.5px / var(--tz, 1));line-height:1.6;color:var(--fg-soft);white-space:pre-wrap;overflow-wrap:anywhere}.lib-comment-actions{display:flex;gap:14px;margin-top:4px}.lib-comment .lib-compose{margin-top:12px}.lib-author-head{display:flex;gap:24px;align-items:flex-start;margin-bottom:30px}.lib-author-head .pub-avatar-lg{width:96px;height:96px;font-size:calc(36px / var(--tz, 1))}.lib-author-info{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.lib-author-info .lib-h1{margin:0}.lib-author-handle{margin:0;color:var(--fg-3);font-size:calc(13.5px / var(--tz, 1))}.lib-author-info .lib-blurb p{font-size:calc(15px / var(--tz, 1));margin:4px 0}.lib-author-stats{margin:0;color:var(--fg-3);font-size:calc(13px / var(--tz, 1))}.lib-author-friend{display:flex;flex-direction:column;align-items:inherit;gap:6px;margin-top:4px}.lib-author-friend-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lib-author-friend-row .pub-hint{margin:0}.lib-author-friend .pub-error{margin:0;font-size:calc(13px / var(--tz, 1))}.lib-author-friend-badge{font-size:calc(13px / var(--tz, 1));font-weight:600;color:var(--accent-text)}.lib-tabs{display:flex;gap:4px;margin:14px 0 20px;border-bottom:1px solid var(--border)}.lib-tab{padding:9px 14px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--fg-2);font-weight:600;font-size:calc(14px / var(--tz, 1));text-decoration:none}.lib-tab:hover{color:var(--fg)}.lib-tab.on{color:var(--fg);border-bottom-color:var(--accent)}.lib-foot{border-top:1px solid var(--border);background:var(--bg-deep);padding-bottom:env(safe-area-inset-bottom)}.lib-foot-inner{max-width:1180px;margin:0 auto;padding:22px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;font-size:calc(13px / var(--tz, 1));color:var(--fg-3)}.lib-foot a{color:var(--fg-2);text-decoration:none}.lib-foot a:hover{color:var(--accent-text)}.lib-foot nav{display:flex;flex-wrap:wrap;gap:16px}@media(max-width:900px){.lib-browse{grid-template-columns:minmax(0,1fr)}.lib-filters{display:none;position:static;max-height:none}.lib-filters.open{display:flex;margin-bottom:4px}.lib-filters-toggle{display:inline-flex}.lib-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.lib-page{padding:18px 16px 48px}.lib-hero{padding:12px 0 22px}.lib-hero-title{font-size:calc(32px / var(--tz, 1))}.lib-card{padding:12px;gap:12px}.lib-card-cover .book-cover-md{width:82px}.lib-card-cover .book-cover-md .book-cover-title{font-size:calc(calc(11px * var(--cover-title-k, 1)) / var(--tz, 1))}.lib-card-title{font-size:calc(17px / var(--tz, 1))}.lib-book-head{flex-direction:column;align-items:center;text-align:center;gap:18px}.lib-book-head .book-cover-lg{width:170px}.lib-book-head .book-cover-photo.book-cover-lg .book-cover-title{font-size:calc(calc(20px * var(--cover-title-k, 1)) / var(--tz, 1))}.lib-book-info{align-items:center}.lib-book-author{align-self:center}.lib-meta{text-align:left;width:100%}.lib-book-head .lib-tags,.lib-book-stats{justify-content:center}.lib-book-title{font-size:calc(28px / var(--tz, 1))}.lib-actions{justify-content:center}.lib-read-btn{flex-basis:100%}.lib-toc-meta{display:none}.lib-reader{padding:0 16px 48px}.lib-chapter{padding-top:28px}.lib-author-head{flex-direction:column;align-items:center;text-align:center}.lib-author-info{align-items:center}.lib-author-friend-row{justify-content:center}.lib-menu{left:auto;right:0}}#library-ssr{--r-fg: #e9e3dc;--r-muted: var(--fg-3);line-height:1.6}@supports not (color: color-mix(in srgb,red,blue)){#library-ssr{--r-fg__r: 233;--r-fg__g: 227;--r-fg__b: 220;--r-fg__a: 1;--r-muted__r: var(--fg-3__r);--r-muted__g: var(--fg-3__g);--r-muted__b: var(--fg-3__b);--r-muted__a: var(--fg-3__a)}}#library-ssr a{color:var(--accent)}#library-ssr ol,#library-ssr ul{padding-left:1.3em}#library-ssr li{margin:0 0 8px}#library-ssr li span,.lib-ssr-facts{color:var(--fg-3);font-size:calc(13px / var(--tz, 1))}.lib-ssr-facts{margin:0 0 6px}.lib-ssr-adult{color:var(--fg-2);font-size:calc(13px / var(--tz, 1))}.lib-ssr-nav{margin:32px 0}.lib-private-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);box-shadow:0 0 0 1px var(--accent-border);font-family:var(--font-ui);font-size:calc(11px / var(--tz, 1));font-weight:700;white-space:nowrap}.lib-private-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0;font-size:calc(13px / var(--tz, 1));color:var(--fg-3)}.lib-locked{position:relative}.lib-toc-locked{pointer-events:none;-webkit-user-select:none;user-select:none}.lib-toc-locked .lib-toc-link{cursor:default}.lib-blur{filter:blur(5px);-webkit-user-select:none;user-select:none}.lib-locked-card{position:relative;z-index:1;max-width:460px;margin:-64px auto 0;padding:18px 20px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface-raised);text-align:center;box-shadow:0 10px 30px #0000001f}.lib-locked-title{margin:0 0 6px;font-size:calc(16px / var(--tz, 1));font-weight:700;color:var(--fg)}.lib-locked-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}.lib-locked-ok{margin:10px 0 0;font-size:calc(13px / var(--tz, 1));color:var(--accent-text)}.lib-friend-add{display:flex;gap:8px;margin:14px 0 6px}.lib-friend-add .pub-input{flex:1;min-width:0}.lib-friend-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.lib-friend{display:flex;align-items:center;gap:12px;padding:11px 14px}.lib-friend+.lib-friend{border-top:1px solid var(--border)}.lib-friend-name{flex:1;min-width:0;font-weight:600;color:var(--fg);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.lib-friend-name:hover{color:var(--accent-text)}.lib-friend-handle{margin-left:6px;font-weight:400;font-size:calc(12.5px / var(--tz, 1));color:var(--fg-3)}.lib-friend-when{flex:none;font-size:calc(12px / var(--tz, 1));color:var(--fg-3)}.lib-friend-name .lib-friend-when{margin-left:8px;font-weight:400}.lib-friend-actions{flex:none;display:flex;gap:6px}.lib-notif{align-items:flex-start}.lib-notif-new{background:var(--accent-soft, rgba(240, 106, 155, .08))}.lib-notif-icon{flex:none;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--btn-bg);font-size:calc(15px / var(--tz, 1))}.lib-notif-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lib-notif-text{color:var(--fg);font-weight:600;text-decoration:none}a.lib-notif-text:hover{color:var(--accent-text)}.lib-notif-excerpt{font-size:calc(13px / var(--tz, 1));color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:560px){.lib-friend{flex-wrap:wrap}.lib-friend-when{order:3;width:100%}.lib-friend-add{flex-direction:column}.lib-locked-card{margin-top:-40px}}.lib-tip-btn{display:inline-flex;align-items:center;gap:6px}.lib-tip-btn .tip-art{margin:-3px 0 -2px -2px}.lib-tip-btn:hover .tip-art{animation:tip-bob 1.2s ease-in-out infinite}.lib-app-messages{height:100dvh;min-height:0;overflow:hidden}@supports not (height: 1dvh){.lib-app-messages{height:100vh}}.lib-app-messages .lib-main{flex:1;min-height:0;display:flex}.lib-app-messages .lib-foot{display:none}.msg-shell{flex:1;min-height:0;width:100%;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:340px minmax(0,1fr);border-left:1px solid var(--border);border-right:1px solid var(--border)}.msg-shell-loading{display:flex;align-items:center;justify-content:center}.msg-main{position:relative;min-width:0;min-height:0;display:flex;background:var(--bg)}.msg-icon-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:var(--fg-2);text-decoration:none;transition:background .12s,color .12s}.msg-icon-btn:hover,.msg-icon-btn.is-on{background:var(--btn-bg);color:var(--fg)}.msg-icon-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.msg-link{padding:0;color:var(--accent-2);font-size:calc(12px / var(--tz, 1));font-weight:700}.msg-link:hover{color:var(--accent-text);text-decoration:underline}.msg-link-danger,.msg-link-danger:hover{color:var(--danger)}.msg-face{flex:none;position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;color:#fff;font-weight:700;line-height:1;-webkit-user-select:none;user-select:none}.msg-face img{width:100%;height:100%;object-fit:cover;display:block}.msg-face-pair{flex:none;position:relative;display:inline-block}.msg-face-pair .msg-face{position:absolute;box-shadow:0 0 0 2px var(--bg-deep)}.msg-face-pair .msg-face:first-child{top:0;right:0}.msg-face-pair .msg-face:last-child{bottom:0;left:0}.msg-side{display:flex;flex-direction:column;min-height:0;background:var(--bg-deep);border-right:1px solid var(--border)}.msg-side-head{display:flex;align-items:center;gap:8px;padding:18px 16px 10px 20px}.msg-side-head h1{flex:1;margin:0;font-family:var(--font-prose);font-weight:500;font-size:calc(26px / var(--tz, 1));line-height:1.2}.msg-new{background:var(--accent-soft);color:var(--accent-text)}.msg-new:hover{background:var(--accent-soft-hover);color:var(--accent-text)}.msg-search{display:flex;align-items:center;gap:8px;margin:2px 14px 8px;padding:0 12px;border-radius:999px;background:var(--surface);border:1px solid var(--border);transition:border-color .12s,box-shadow .12s}.msg-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.msg-search svg{flex:none;width:16px;height:16px;fill:none;stroke:var(--fg-3);stroke-width:2;stroke-linecap:round}.msg-search input{flex:1;min-width:0;padding:9px 0;border:none;outline:none;background:none;color:var(--fg);font:inherit;font-size:calc(14px / var(--tz, 1))}.msg-search input::-webkit-search-cancel-button{filter:invert(.6)}.msg-threads-wrap{flex:1;min-height:0;overflow-y:auto;padding:2px 8px 16px;overscroll-behavior:contain}.msg-threads{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.msg-thread{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-md);color:inherit;text-decoration:none;transition:background .12s}.msg-thread:hover{background:var(--hover)}.msg-thread.is-active{background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--border-strong),inset 0 1px 0 var(--hairline)}.msg-thread-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.msg-thread-top,.msg-thread-bottom{display:flex;align-items:center;gap:8px;min-width:0}.msg-thread-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--fg-soft)}.msg-thread-when{flex:none;font-size:calc(12px / var(--tz, 1));color:var(--fg-3)}.msg-thread-preview{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(13.5px / var(--tz, 1));color:var(--fg-3)}.msg-thread-preview.is-muted{font-style:italic}.msg-thread.is-unread .msg-thread-name{color:var(--fg);font-weight:800}.msg-thread.is-unread .msg-thread-preview{color:var(--fg-soft);font-weight:600}.msg-thread.is-unread .msg-thread-when{color:var(--accent-text);font-weight:700}.msg-thread-typing{display:flex;align-items:center;height:20px}.msg-badge{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--grad-btn);color:#fff;font-size:calc(11px / var(--tz, 1));font-weight:800;line-height:20px;text-align:center;box-shadow:var(--glow)}.msg-side-note{padding:18px 14px;color:var(--fg-3);font-size:calc(13.5px / var(--tz, 1));text-align:center}.msg-side-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:36px 20px;text-align:center}.msg-side-empty strong{font-size:calc(15px / var(--tz, 1))}.msg-side-empty p{margin:0 0 8px;color:var(--fg-3);font-size:calc(13.5px / var(--tz, 1))}.msg-thread-ghost{pointer-events:none}.msg-ghost-face,.msg-ghost-line{background:linear-gradient(90deg,var(--surface) 0%,var(--surface-raised) 50%,var(--surface) 100%);background-size:200% 100%;animation:msgShimmer 1.4s ease-in-out infinite}.msg-ghost-face{flex:none;width:46px;height:46px;border-radius:50%}.msg-ghost-line{display:block;height:12px;border-radius:6px}.msg-ghost-short{height:10px;opacity:.7}@keyframes msgShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.msg-pick,.msg-gate{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 24px;text-align:center}.msg-gate{max-width:520px;margin:0 auto;padding-top:72px;justify-content:flex-start}.msg-pick h2{margin:6px 0 0;font-family:var(--font-prose);font-weight:500;font-size:calc(26px / var(--tz, 1))}.msg-pick p{margin:0 0 8px;max-width:340px;color:var(--fg-2)}.msg-pick-art,.msg-gate-art{display:inline-flex;align-items:center;justify-content:center;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 30% 25%,var(--accent-soft-hover),var(--accent-soft) 60%,transparent 72%);box-shadow:inset 0 0 0 1px var(--accent-border)}.msg-pick-art svg,.msg-gate-art svg{width:50px;height:50px;fill:none;stroke:var(--accent-text);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}.msg-conv{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.msg-conv-head{flex:none;display:flex;align-items:center;gap:6px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:3}@supports not (color: color-mix(in srgb,red,blue)){.msg-conv-head{background:rgba(var(--bg__r),var(--bg__g),var(--bg__b),calc(var(--bg__a) * .9))}}.msg-back{display:none;margin-right:-2px}.msg-conv-who{flex:1;min-width:0;display:flex;align-items:center;gap:11px;padding:4px 8px 4px 4px;border-radius:var(--r-md);text-align:left;transition:background .12s}.msg-conv-who:hover{background:var(--hover)}.msg-conv-names{min-width:0;display:flex;flex-direction:column}.msg-conv-names strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(15.5px / var(--tz, 1))}.msg-conv-names small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(12.5px / var(--tz, 1));color:var(--fg-3)}.msg-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:auto}.msg-stream{display:flex;flex-direction:column;padding:18px 22px 14px;min-height:100%;justify-content:flex-end}.msg-older{display:flex;justify-content:center;padding:10px 0}.msg-thread-error{text-align:center}.msg-intro{display:flex;flex-direction:column;align-items:center;gap:4px;padding:26px 16px 22px;text-align:center}.msg-intro strong{margin-top:8px;font-family:var(--font-prose);font-weight:500;font-size:calc(22px / var(--tz, 1))}.msg-intro-link{color:var(--fg-3);font-size:calc(13px / var(--tz, 1));text-decoration:none}.msg-intro-link:hover{color:var(--accent-text)}.msg-intro p{margin:6px 0 0;max-width:360px;color:var(--fg-3);font-size:calc(13.5px / var(--tz, 1))}.msg-day{position:sticky;top:6px;z-index:2;display:flex;justify-content:center;margin:16px 0 6px;pointer-events:none}.msg-day span{padding:3px 11px;border-radius:999px;background:var(--surface-raised);border:1px solid var(--border);box-shadow:0 4px 14px #00000059;color:var(--fg-2);font-size:calc(11.5px / var(--tz, 1));font-weight:700}.msg-time{margin:14px 0 4px;text-align:center;font-size:calc(11.5px / var(--tz, 1));font-weight:600;color:var(--fg-3)}.msg-event{margin:12px auto 4px;max-width:80%;text-align:center;font-size:calc(12.5px / var(--tz, 1));color:var(--fg-3)}.msg-unread-line{display:flex;align-items:center;gap:10px;margin:14px 0 2px;color:var(--accent-text);font-size:calc(11.5px / var(--tz, 1));font-weight:800;letter-spacing:.4px;text-transform:uppercase}.msg-unread-line:before,.msg-unread-line:after{content:"";flex:1;height:1px;background:var(--accent-border)}.msg-row{display:flex;align-items:flex-end;gap:8px;margin-top:2px}.msg-row.pos-first,.msg-row.pos-single{margin-top:10px}.msg-row.is-mine{justify-content:flex-end}.msg-row-face{flex:none;width:30px;display:flex;align-self:flex-end}.msg-row.is-theirs .msg-col{align-items:flex-start}.msg-col{display:flex;flex-direction:column;align-items:flex-end;min-width:0;max-width:min(560px,76%)}.msg-sender{margin:0 0 3px 12px;font-size:calc(12px / var(--tz, 1));font-weight:700;color:var(--fg-2)}.msg-bubble-line{display:flex;align-items:center;gap:6px;max-width:100%}.msg-row.is-mine .msg-bubble-line{flex-direction:row-reverse}.msg-bubble{min-width:0;padding:8px 13px 9px;border-radius:19px;font-size:calc(15px / var(--tz, 1));line-height:1.42;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;cursor:default;transition:box-shadow .12s,opacity .16s}.msg-bubble.is-fresh{animation:msgIn .18s ease-out}@keyframes msgIn{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}.msg-row.is-theirs .msg-bubble{background:var(--surface-raised);color:var(--fg);box-shadow:inset 0 0 0 1px var(--border),inset 0 1px 0 var(--hairline)}.msg-row.is-mine .msg-bubble{background:var(--grad-btn);color:#fff}.msg-row.is-mine .msg-bubble a{color:#fff;text-decoration:underline;text-underline-offset:2px}.msg-row.is-theirs .msg-bubble a{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px}.msg-row.is-mine.pos-first .msg-bubble{border-bottom-right-radius:6px}.msg-row.is-mine.pos-middle .msg-bubble{border-top-right-radius:6px;border-bottom-right-radius:6px}.msg-row.is-mine.pos-last .msg-bubble{border-top-right-radius:6px}.msg-row.is-theirs.pos-first .msg-bubble{border-bottom-left-radius:6px}.msg-row.is-theirs.pos-middle .msg-bubble{border-top-left-radius:6px;border-bottom-left-radius:6px}.msg-row.is-theirs.pos-last .msg-bubble{border-top-left-radius:6px}.msg-bubble.is-jumbo{padding:0 2px;background:none!important;box-shadow:none!important;font-size:calc(44px / var(--tz, 1));line-height:1.15}.msg-bubble.is-deleted{background:none!important;color:var(--fg-3)!important;font-style:italic;font-size:calc(14px / var(--tz, 1));box-shadow:inset 0 0 0 1px var(--border-strong)!important}.msg-bubble.is-sending{opacity:.6}.msg-bubble.is-failed{box-shadow:0 0 0 1.5px var(--danger)!important}.msg-row.is-selected .msg-bubble{box-shadow:0 0 0 2px var(--accent-ring)}.msg-row.is-theirs.is-selected .msg-bubble{box-shadow:inset 0 0 0 1px var(--border),0 0 0 2px var(--accent-ring)}.msg-row-act{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:var(--fg-3);opacity:0;transition:opacity .12s,background .12s,color .12s}.msg-row-act svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.msg-row-act:hover{background:var(--danger-soft);color:var(--danger)}.msg-row:hover .msg-row-act,.msg-row-act:focus-visible{opacity:1}@media(hover:none){.msg-row-act{display:none}}.msg-meta{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:4px 6px 0;font-size:calc(11.5px / var(--tz, 1));color:var(--fg-3)}.msg-meta-status{font-weight:600}.msg-meta-failed{color:var(--danger)}.msg-meta-actions{animation:msgIn .14s ease-out}.msg-readers{display:inline-flex;align-items:center;margin:4px 4px 0}.msg-readers .msg-face{box-shadow:0 0 0 1.5px var(--bg);font-size:calc(8px / var(--tz, 1))!important}.msg-readers .msg-face+.msg-face{margin-left:-4px}.msg-readers-more{margin-left:4px;font-size:calc(10.5px / var(--tz, 1));font-weight:700;color:var(--fg-3)}.msg-typing-bubble{display:inline-flex;align-items:center;padding:12px 14px}.msg-dots{display:inline-flex;align-items:center;gap:4px}.msg-dots i{width:7px;height:7px;border-radius:50%;background:var(--fg-3);animation:msgDot 1.2s infinite ease-in-out}.msg-dots i:nth-child(2){animation-delay:.15s}.msg-dots i:nth-child(3){animation-delay:.3s}.msg-thread-typing .msg-dots i{width:6px;height:6px;background:var(--accent-text)}@keyframes msgDot{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}.msg-jump{position:absolute;left:50%;bottom:86px;z-index:4;transform:translate(-50%);padding:7px 14px;border-radius:999px;background:var(--grad-btn);color:#fff;font-size:calc(12.5px / var(--tz, 1));font-weight:700;box-shadow:var(--glow),0 8px 20px #0006;animation:msgIn .16s ease-out}.msg-composer{flex:none;display:flex;align-items:flex-end;gap:10px;padding:10px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg)}.msg-composer-box{position:relative;flex:1;min-width:0;display:flex;border-radius:22px;background:var(--surface-raised);border:1px solid var(--border-strong);box-shadow:inset 0 1px 0 var(--hairline);transition:border-color .12s,box-shadow .12s}.msg-composer-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.msg-composer-box.is-over{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.msg-composer textarea{flex:1;min-width:0;max-height:168px;padding:10px 16px;border:none;outline:none;resize:none;background:none;color:var(--fg);font:inherit;font-size:calc(15px / var(--tz, 1));line-height:1.45}.msg-composer textarea::placeholder{color:var(--fg-3)}.msg-count{position:absolute;right:14px;bottom:-18px;font-size:calc(11px / var(--tz, 1));font-weight:700;color:var(--fg-3)}.msg-composer-box.is-over .msg-count{color:var(--danger)}.msg-send{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--grad-btn);color:#fff;box-shadow:var(--glow);transition:transform .12s,filter .12s,background .12s,box-shadow .12s}.msg-send svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;transform:translate(1px)}.msg-send:hover:not(:disabled){filter:brightness(1.08);transform:scale(1.04)}.msg-send:active:not(:disabled){transform:scale(.95)}.msg-send:disabled{background:var(--btn-bg);color:var(--fg-4);box-shadow:none;cursor:default}.msg-cant{flex:none;padding:14px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border);text-align:center;font-size:calc(13.5px / var(--tz, 1));color:var(--fg-3)}.msg-info-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#00000059;animation:msgFade .16s ease-out}@keyframes msgFade{0%{opacity:0}to{opacity:1}}.msg-info{position:absolute;top:0;right:0;bottom:0;z-index:6;width:min(340px,100%);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:-24px 0 50px #00000073;animation:msgSlide .2s cubic-bezier(.2,.8,.2,1)}@keyframes msgSlide{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.msg-info-head{display:flex;align-items:center;gap:8px;padding:16px 14px 8px 20px}.msg-info-head h2{flex:1;margin:0;font-size:calc(15px / var(--tz, 1));font-weight:700}.msg-info-body{flex:1;min-height:0;overflow-y:auto;padding:4px 16px 20px;display:flex;flex-direction:column;gap:18px}.msg-info-who{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 0 4px;text-align:center}.msg-info-title{font-family:var(--font-prose);font-weight:500;font-size:calc(21px / var(--tz, 1));overflow-wrap:anywhere}.msg-rename{display:flex;gap:8px;width:100%}.msg-rename .pub-input{flex:1;min-width:0}.msg-info-section h3{margin:0 0 8px;font-size:calc(11.5px / var(--tz, 1));font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--fg-3)}.msg-members{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.msg-member{width:100%;display:flex;align-items:center;gap:11px;padding:7px 8px;border-radius:var(--r-sm);color:inherit;text-decoration:none;text-align:left}a.msg-member:hover,button.msg-member:hover{background:var(--hover)}.msg-member-name{min-width:0;display:flex;flex-direction:column;font-weight:600;font-size:calc(14px / var(--tz, 1))}.msg-member-name small{font-weight:400;font-size:calc(12px / var(--tz, 1));color:var(--fg-3)}.msg-member-add{color:var(--accent-text);font-weight:700;font-size:calc(14px / var(--tz, 1))}.msg-member-plus{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-border)}.msg-member-plus svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.msg-info-danger{border-top:1px solid var(--border);padding-top:14px}.msg-danger-btn{width:100%;padding:10px 12px;border-radius:var(--r-sm);color:var(--danger);font-weight:700;font-size:calc(14px / var(--tz, 1));text-align:left}.msg-danger-btn:hover{background:var(--danger-soft)}.msg-confirm{padding:12px;border-radius:var(--r-md);background:var(--danger-soft);border:1px solid var(--danger-border);animation:msgIn .14s ease-out}.msg-confirm p{margin:0 0 10px;font-size:calc(13.5px / var(--tz, 1));color:var(--fg-soft)}.msg-confirm div{display:flex;justify-content:flex-end;gap:8px}.msg-picker{max-width:460px}.msg-to{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 24px 6px;padding:7px 10px;border-radius:var(--r-md);background:var(--bg-deep);border:1px solid var(--border-strong);cursor:text;transition:border-color .12s,box-shadow .12s}.msg-to:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.msg-to-label{font-size:calc(13px / var(--tz, 1));font-weight:700;color:var(--fg-3)}.msg-to-chip{padding:3px 9px;font-size:calc(12.5px / var(--tz, 1))}.msg-to input{flex:1;min-width:120px;padding:4px 2px;border:none;outline:none;background:none;color:var(--fg);font:inherit;font-size:calc(14px / var(--tz, 1))}.msg-picker-list{list-style:none;margin:0;padding:4px 16px;overflow-y:auto;max-height:min(360px,46dvh);display:flex;flex-direction:column;gap:2px}@supports not (height: 1dvh){.msg-picker-list{max-height:min(360px,46vh)}}.msg-picker-note{display:flex;justify-content:center;padding:22px 8px;color:var(--fg-3);font-size:calc(13.5px / var(--tz, 1))}.msg-pick-row{width:100%;display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:var(--r-md);text-align:left;transition:background .12s}.msg-pick-row:hover:not(:disabled){background:var(--hover)}.msg-pick-row.is-on{background:var(--accent-soft)}.msg-pick-row.is-on:hover:not(:disabled){background:var(--accent-soft-hover)}.msg-pick-row:disabled{cursor:default;opacity:.55}.msg-pick-name{flex:1;min-width:0;display:flex;flex-direction:column;font-weight:600;font-size:calc(14.5px / var(--tz, 1))}.msg-pick-name small{font-weight:400;font-size:calc(12px / var(--tz, 1));color:var(--fg-3)}.msg-check{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border-strong);transition:background .12s,border-color .12s}.msg-check.is-on{background:var(--grad-btn);border-color:transparent}.msg-check svg{width:14px;height:14px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.msg-picker-name{padding:8px 24px 0}.msg-picker-name .pub-input{width:100%}.msg-picker-hint{margin:8px 24px 0}.msg-picker-empty{display:flex;flex-direction:column;align-items:center;gap:14px;padding:10px 24px 28px;text-align:center;color:var(--fg-2)}.msg-picker-empty p{margin:0}@media(prefers-reduced-motion:reduce){.msg-bubble,.msg-info,.msg-info-scrim,.msg-jump,.msg-meta-actions,.msg-confirm,.msg-dots i,.msg-ghost-face,.msg-ghost-line{animation:none}}@media(max-width:760px){.msg-shell{grid-template-columns:minmax(0,1fr);border:none}.msg-shell.msg-has-open .msg-side{display:none}.msg-shell:not(.msg-has-open) .msg-main{display:none}.msg-side{border-right:none}.msg-back{display:inline-flex}.msg-conv-head{padding:8px 8px 8px 6px}.msg-stream{padding:14px 12px 10px}.msg-col{max-width:82%}.msg-row-face{width:28px}.msg-composer{padding:8px 10px calc(10px + env(safe-area-inset-bottom));gap:8px}.msg-composer textarea,.msg-search input,.msg-to input{font-size:calc(16px / var(--tz, 1))}.msg-info{width:100%;border-left:none}.msg-jump{bottom:76px}}.msg-face-team{background:#2c2c2e;box-shadow:0 0 0 2px var(--spark),0 0 12px #8b5cf673}.msg-team-badge{margin-left:6px}.msg-thread-name .msg-team-badge,.msg-conv-names .msg-team-badge{vertical-align:1px}.msg-thread.is-team .msg-thread-when{color:var(--spark-text)}.msg-thread.is-team.is-unread .msg-badge{background:var(--grad-spark);box-shadow:var(--spark-glow)}.msg-row.is-team .msg-bubble:not(.is-deleted):not(.is-jumbo){background:var(--grad-spark);color:#fff;box-shadow:0 6px 18px -8px #8b5cf6cc,inset 0 1px #ffffff2e}.msg-row.is-team .msg-bubble a{color:#fff;text-decoration:underline;text-underline-offset:2px}.msg-row.is-team .msg-sender{color:var(--spark-text)}.msg-typing-bubble.is-team{background:var(--spark-soft-solid);box-shadow:inset 0 0 0 1px var(--spark-border)}.msg-typing-bubble.is-team .msg-dots i{background:var(--spark-text)}.msg-intro.is-team strong{display:inline-flex;align-items:center}.msg-info-note{margin:2px 0 0;max-width:280px;color:var(--fg-3);font-size:calc(13px / var(--tz, 1));text-align:center}.msg-support{color:var(--spark-text)}.msg-support:hover{background:var(--spark-soft);color:var(--spark-text)}.msg-gate-support{margin-top:2px}.msg-support-row{display:flex;align-items:center;gap:12px;width:100%;margin-top:6px;padding:10px 12px;border:1px dashed var(--spark-border);border-radius:var(--r-md);background:var(--spark-soft);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .12s,border-color .12s}.msg-support-row:hover{background:var(--spark-soft-hover);border-color:var(--spark)}.msg-support-row .msg-thread-preview{white-space:normal;color:var(--fg-2);font-size:calc(13px / var(--tz, 1))}.msg-composer{flex-direction:column;align-items:stretch;gap:0}.msg-composer-row{display:flex;align-items:flex-end;gap:10px}.msg-tip-btn{flex:none;width:44px;height:44px;color:#f5b73b}.msg-tip-btn svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.msg-tip-btn:hover,.msg-tip-btn.is-on{background:#f5b73b24;color:#f5b73b}.msg-tip-tag{flex:none;align-self:center;display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px 9px 3px 6px;border-radius:999px;background:linear-gradient(135deg,#ffe29a,#f5b73b);color:#3a2208;font-size:calc(12.5px / var(--tz, 1));font-weight:700;white-space:nowrap}.msg-cant.msg-cant-tip{border-top:1px solid var(--border);padding-bottom:4px}.msg-cant-tip+.msg-composer{border-top:0}.msg-bubble.has-tip{padding:8px 10px 9px}.msg-bubble.has-tip{min-width:min(270px,100%)}.msg-bubble.has-tip .tip-card{min-width:0;max-width:none}.msg-tip-short{max-width:400px;text-align:center}.msg-tip-short-art{display:flex;justify-content:center;margin:4px 0 6px}.msg-tip-short p{margin:8px 0 0;color:var(--fg-2);line-height:1.5}.msg-tip-short .msg-tip-short-note{font-size:calc(13.5px / var(--tz, 1));color:var(--fg-3)}.msg-tip-short-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}.tipc{max-width:380px;padding:0 26px 24px;text-align:center;overflow:hidden;background:radial-gradient(120% 70% at 50% 0%,rgba(245,183,59,.16),transparent 60%),radial-gradient(90% 60% at 50% 10%,rgba(163,92,240,.22),transparent 70%),var(--surface-raised, #1d1422)}.tipc-scene{position:relative;height:170px;margin:0 -26px 4px}.tipc-glow{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-68px 0 0 -75px;border-radius:50%;background:radial-gradient(circle,rgba(255,214,140,.55),rgba(255,143,179,.18) 55%,transparent 72%);animation:tipc-breathe 2.8s ease-in-out infinite}.tipc-box{position:absolute;left:50%;top:50%;transform:translate(-50%,-44%);animation:tipc-float 3.2s ease-in-out infinite}.tipc-heart,.tipc-spark{position:absolute;bottom:18px;opacity:0}.tipc-heart{width:16px;height:16px;fill:#ff8fb3;animation:tipc-rise 3.6s ease-in infinite}.tipc-heart.h0{left:22%;animation-delay:0s}.tipc-heart.h1{left:34%;width:12px;height:12px;fill:#ffb3cf;animation-delay:.9s}.tipc-heart.h2{left:66%;animation-delay:.4s}.tipc-heart.h3{left:76%;width:12px;height:12px;fill:#c9a2ff;animation-delay:1.6s}.tipc-heart.h4{left:46%;width:10px;height:10px;animation-delay:2.3s}.tipc-heart.h5{left:58%;width:13px;height:13px;fill:#ffd27a;animation-delay:2.9s}.tipc-heart.h6{left:28%;width:11px;height:11px;fill:#c9a2ff;animation-delay:3.3s}.tipc-spark{width:12px;height:12px;fill:#ffe29a;animation:tipc-twinkle 2.4s ease-in-out infinite}.tipc-spark.s0{left:18%;top:26%;animation-delay:.2s}.tipc-spark.s1{left:80%;top:20%;width:9px;height:9px;fill:#fff;animation-delay:1s}.tipc-spark.s2{left:72%;top:62%;animation-delay:1.7s}.tipc-spark.s3{left:26%;top:66%;width:8px;height:8px;fill:#fff;animation-delay:.6s}.tipc-spark.s4{left:60%;top:10%;width:8px;height:8px;animation-delay:1.3s}.tipc-spark.s5{left:38%;top:12%;width:10px;height:10px;fill:#ffb3cf;animation-delay:2s}.tipc.is-sent .tipc-heart{animation:tipc-burst 1.2s cubic-bezier(.2,.9,.3,1) forwards}.tipc.is-sent .tipc-glow{animation:tipc-flash 1.2s ease-out forwards}.tipc.is-sent .tipc-box{animation:tipc-hop .7s cubic-bezier(.2,1.5,.4,1)}@keyframes tipc-breathe{0%,to{transform:scale(.92);opacity:.8}50%{transform:scale(1.06);opacity:1}}@keyframes tipc-float{0%,to{transform:translate(-50%,-44%) rotate(-2deg)}50%{transform:translate(-50%,-50%) rotate(2deg)}}@keyframes tipc-rise{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:.95}to{transform:translateY(-140px) translate(8px) scale(1.05);opacity:0}}@keyframes tipc-twinkle{0%,to{opacity:0;transform:scale(.4) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}@keyframes tipc-burst{0%{transform:translateY(-50px) scale(.4);opacity:0}30%{opacity:1}to{transform:translateY(-150px) scale(1.6);opacity:0}}@keyframes tipc-flash{0%{transform:scale(1)}40%{transform:scale(1.5);opacity:1}to{transform:scale(1.3);opacity:.7}}@keyframes tipc-hop{0%{transform:translate(-50%,-44%)}40%{transform:translate(-50%,-62%) scale(1.08)}to{transform:translate(-50%,-44%)}}.tipc-title{margin:0;font-family:Lora,Georgia,serif;font-size:calc(22px / var(--tz, 1));font-weight:600;line-height:1.3;color:var(--fg)}.tipc-note{margin:12px auto 0;max-width:300px;padding:10px 14px;border-radius:14px;background:#ffffff0d;border:1px solid var(--border);color:var(--fg-2);font-size:calc(14.5px / var(--tz, 1));font-style:italic;line-height:1.45;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tipc-line{margin:12px 0 0;color:var(--fg-3);font-size:calc(13px / var(--tz, 1));line-height:1.5}.tipc-actions{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:18px}.tipc-send{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:220px;padding:12px 22px;border:0;border-radius:999px;background:linear-gradient(135deg,#ffe29a,#f5b73b);color:#3a2208;font:inherit;font-size:calc(15.5px / var(--tz, 1));font-weight:700;cursor:pointer;box-shadow:0 10px 26px -10px #f5b73bf2;transition:transform .15s ease,box-shadow .15s ease}.tipc-send:hover{transform:translateY(-1px);box-shadow:0 14px 30px -10px #f5b73b}.tipc-send:focus-visible{outline:2px solid #ffe29a;outline-offset:3px}.tipc-later{padding:8px 14px;border:0;background:none;color:var(--fg-3);font:inherit;font-size:calc(13.5px / var(--tz, 1));cursor:pointer}.tipc-later:hover{color:var(--fg)}@media(prefers-reduced-motion:reduce){.tipc *,.tipc-box{animation:none!important}.tipc-heart.h0,.tipc-heart.h2,.tipc-spark.s0,.tipc-spark.s2{opacity:.8}}.tipr .tipc-title{font-size:calc(21px / var(--tz, 1));overflow-wrap:anywhere}.tipr-line{max-width:320px;margin-left:auto;margin-right:auto;font-size:calc(14px / var(--tz, 1));color:var(--fg-2)}.tipr-scene{display:block;width:100%;max-width:320px;height:auto;margin:6px auto 2px;overflow:visible}.tipr-arc{fill:none;stroke:#ffe29a8c;stroke-width:2;stroke-dasharray:2 7;stroke-linecap:round;animation:tipr-flow 1.2s linear infinite}@keyframes tipr-flow{to{stroke-dashoffset:-18}}.tipr-arrow{fill:none;stroke:#ffe29acc;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.tipr-pill-bg{fill:#f5b73b;filter:drop-shadow(0 4px 10px rgba(245,183,59,.6))}.tipr-pill-text{fill:#3a2208;font:700 calc(12px / var(--tz, 1)) var(--font-ui, system-ui)}.tipr-coin-g{transform-box:fill-box;transform-origin:center;animation:tipr-in .6s .1s cubic-bezier(.2,1.4,.4,1) both}.tipr-coin{filter:drop-shadow(0 4px 12px rgba(245,183,59,.55));transform-box:fill-box;transform-origin:center;animation:tipr-spin 4s ease-in-out infinite}@keyframes tipr-spin{0%,to{transform:scaleX(1)}50%{transform:scaleX(.82)}}.tipr-coin-glow{transform-box:fill-box;transform-origin:center;animation:tipc-breathe 2.8s ease-in-out infinite}.tipr-gift{transform-box:fill-box;transform-origin:center;animation:tipr-in .6s .2s cubic-bezier(.2,1.4,.4,1) both}.tipr-gift>*{animation:tipr-bob 3s ease-in-out infinite}@keyframes tipr-bob{0%,to{translate:0 0}50%{translate:0 -4px}}@keyframes tipr-in{0%{transform:scale(.5);opacity:0}to{transform:none;opacity:1}}.tipr-lid{transition:transform .5s cubic-bezier(.2,1.4,.4,1)}.tipr-gift.is-open .tipr-lid{transform:translate(-6px,-12px) rotate(-16deg)}.tipr-heart{fill:#ff8fb3;opacity:0;transform-box:fill-box;animation:tipr-rise 3.4s ease-in infinite}.tipr-heart.h0{transform:translate(140px,86px);animation-delay:0s}.tipr-heart.h1{transform:translate(160px,86px);fill:#c9a2ff;animation-delay:.7s}.tipr-heart.h2{transform:translate(150px,86px);fill:#ffd27a;animation-delay:1.4s}.tipr-heart.h3{transform:translate(136px,86px);fill:#ffb3cf;animation-delay:2.1s}.tipr-heart.h4{transform:translate(164px,86px);animation-delay:2.8s}@keyframes tipr-rise{0%{opacity:0;translate:0 0;scale:.6}20%{opacity:1}to{opacity:0;translate:0 -70px;scale:1.3}}.tipr-spark{fill:#ffe29a;opacity:0;animation:tipc-twinkle 2.6s ease-in-out infinite}.tipr-spark.k1{fill:#fff;animation-delay:.8s}.tipr-spark.k2{fill:#ffc2d8;animation-delay:1.5s}.tipr-spark.k3{fill:#c9a2ff;animation-delay:2.1s}.tipr-scene.is-done .tipr-arc,.tipr-scene.is-done .tipr-arrow{opacity:0;transition:opacity .4s .6s}.tipr-scene.is-done .tipr-pill{animation:tipr-land .3s .85s ease-in forwards}@keyframes tipr-land{to{opacity:0}}.tipr-scene.is-done .tipr-coin-g{animation:tipr-pop .6s .9s cubic-bezier(.2,1.6,.4,1) both}@keyframes tipr-pop{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1.1)}}.tipr-scene.is-done .tipr-gift{opacity:.25;transition:opacity .6s .4s}.tipr-delete{min-width:220px;padding:12px 22px;border-radius:999px;border:1px solid rgba(255,138,138,.55);background:#ff8a8a14;color:#ffb4b4;font:inherit;font-size:calc(15px / var(--tz, 1));font-weight:700;cursor:pointer;transition:background .15s ease}.tipr-delete:hover:not(:disabled){background:#ff8a8a29}.tipr .tipc-send:disabled,.tipr-delete:disabled{opacity:.75;cursor:default}.tipr .tipc-send,.tipr-delete{display:inline-flex;align-items:center;justify-content:center;gap:8px}.tipr-error{margin:10px 0 0;color:#ffb4b4;font-size:calc(13px / var(--tz, 1))}.tipr-spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(58,34,8,.3);border-top-color:#3a2208;animation:tip-rot .8s linear infinite}.tipr-delete .tipr-spin{border-color:#ffb4b44d;border-top-color:#ffb4b4}@media(prefers-reduced-motion:reduce){.tipr *,.tipr-scene *{animation:none!important;transition:none!important}.tipr-heart.h0,.tipr-heart.h2,.tipr-spark.k0,.tipr-spark.k1{opacity:.8}}.lib-gut.tipping .lib-gut-dash{width:13px;background:var(--accent);animation:lib-gut-pulse 1.6s ease-in-out infinite}@keyframes lib-gut-pulse{0%,to{box-shadow:0 0 #f06a9b8c}50%{box-shadow:0 0 0 5px #f06a9b00}}.lib-gut-tip{position:absolute;top:100%;left:2px;z-index:6;margin-top:8px;width:min(290px,calc(100vw - 28px));display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:12px;background:var(--surface-raised);border:1px solid var(--accent-border);box-shadow:0 16px 36px -14px #000000b3,0 0 0 4px var(--accent-soft);color:var(--fg);font-family:var(--font-ui);font-size:calc(13.5px / var(--tz, 1));font-style:normal;font-weight:500;line-height:1.5;text-align:left;white-space:normal;-webkit-hyphens:none;hyphens:none;animation:lib-gut-tip-in .26s cubic-bezier(.2,.8,.2,1)}.lib-gut-tip:before{content:"";position:absolute;top:-6px;left:6px;width:10px;height:10px;background:var(--surface-raised);border-left:1px solid var(--accent-border);border-top:1px solid var(--accent-border);transform:rotate(45deg)}@keyframes lib-gut-tip-in{0%{opacity:0;transform:translateY(-4px)}}.lib-gut-tip-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.lib-gut-tip-check{display:inline-flex;align-items:center;gap:7px;font-size:calc(12.5px / var(--tz, 1));font-weight:600;color:var(--fg-2);cursor:pointer}.lib-gut-tip-check input{margin:0;width:15px;height:15px;accent-color:var(--accent-strong)}.lib-gut-tip-ok{flex:none;padding:6px 14px;border-radius:999px;background:var(--grad-btn);color:#fff;font-size:calc(13px / var(--tz, 1));font-weight:700}.lib-gut-tip-ok:hover{filter:brightness(1.08)}@media(prefers-reduced-motion:reduce){.lib-gut.tipping .lib-gut-dash,.lib-gut-tip{animation:none}}@media(max-width:640px){.lib-gut-tip{left:4px}.lib-gut-tip:before{left:2px}}.dash{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:236px minmax(0,1fr);gap:28px;padding:24px 24px 64px}.dash-main{min-width:0}.dash-main>.lib-page{padding:2px 0 0;max-width:none}.dash-main>.lib-page.lib-narrow{max-width:720px;margin:0}@media(min-width:901px){.dash-main>.lib-reader{min-height:calc(100dvh - 140px);padding:0 48px 64px;border-radius:var(--r-xl)}@supports not (height: 1dvh){.dash-main>.lib-reader{min-height:calc(100vh - 140px)}}.dash-main>.lib-reader.theme-night{box-shadow:inset 0 0 0 1px var(--border)}}.lib-app-messages .dash{flex:1;min-height:0;width:100%;grid-template-rows:minmax(0,1fr);padding-bottom:24px}.lib-app-messages .dash-main{display:flex;min-height:0}.lib-app-messages .dash-side{max-height:100%}.dash-main>.msg-shell{max-width:none;border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden}.dash-books{display:flex;flex-direction:column;gap:16px}.dash-main>.lib-page.dash-books{max-width:900px}.dash-page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}.dash-page-head .lib-h1{margin:0}.dash-page-actions{display:flex;flex-wrap:wrap;gap:8px}.dash-page{display:flex;flex-direction:column;gap:22px}@keyframes dash-up{0%{opacity:0;transform:translateY(14px)}}.dash-out{max-width:620px;margin:0 auto;padding:48px 24px 72px}.dash-out-hero{display:flex;flex-direction:column;align-items:center;gap:4px;padding:44px 32px 36px;text-align:center}.dash-out-ink{width:64px;height:64px;margin-bottom:14px;border-radius:20px}.dash-out-ink .dash-icon{width:28px;height:28px}.dash-out-hero .dash-hero-sub{max-width:40ch;margin-top:10px;line-height:1.55}.dash-out-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}.dash-out-actions .pub-btn{padding:11px 20px;font-size:calc(14px / var(--tz, 1));border-radius:10px}.dash-hero{position:relative;overflow:hidden;isolation:isolate;padding:34px 32px 26px;border-radius:26px;background:radial-gradient(120% 150% at 0% 0%,#33262d 0%,var(--surface) 52%,var(--bg-deep) 100%);border:1px solid var(--border);box-shadow:inset 0 1px 0 var(--hairline),0 40px 80px -50px #f06a9b73;animation:dash-up .7s cubic-bezier(.2,.8,.2,1) both}.dash-aurora{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;filter:blur(52px);opacity:.5;pointer-events:none}.dash-aurora span{position:absolute;border-radius:50%;mix-blend-mode:screen;animation:dash-drift 18s ease-in-out infinite alternate}.dash-aurora span:nth-child(1){width:420px;height:260px;left:-90px;top:-130px;background:#f06a9b}.dash-aurora span:nth-child(2){width:340px;height:240px;right:-70px;top:-90px;background:#8b5cf6;animation-duration:23s;animation-delay:-7s}.dash-aurora span:nth-child(3){width:380px;height:200px;left:38%;bottom:-160px;background:#f5a66a;opacity:.7;animation-duration:27s;animation-delay:-12s}@keyframes dash-drift{0%{transform:translate(0) scale(1)}50%{transform:translate(48px,22px) scale(1.14)}to{transform:translate(-34px,32px) scale(.94)}}.dash-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.5;background-image:radial-gradient(1px 1px at 12% 22%,rgba(255,255,255,.7),transparent 60%),radial-gradient(1px 1px at 78% 18%,rgba(255,255,255,.55),transparent 60%),radial-gradient(1.5px 1.5px at 64% 42%,rgba(255,220,235,.6),transparent 60%),radial-gradient(1px 1px at 30% 64%,rgba(255,255,255,.4),transparent 60%),radial-gradient(1px 1px at 90% 70%,rgba(255,255,255,.45),transparent 60%),radial-gradient(1.2px 1.2px at 46% 12%,rgba(255,255,255,.5),transparent 60%)}.dash-hero-date{margin:0 0 6px;font-size:calc(12px / var(--tz, 1));font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}.dash-hero-title{margin:0;font-family:var(--font-prose);font-weight:500;font-size:calc(clamp(28px,3.4vw,40px) / var(--tz, 1));line-height:1.12;color:var(--fg)}.dash-hero-name{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.dash-hero-sub{margin:8px 0 0;color:var(--fg-soft);font-size:calc(14.5px / var(--tz, 1))}.dash-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px}.dash-stat{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:16px;background:#0c0a0f73;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.07);box-shadow:inset 0 1px #ffffff0d;animation:dash-up .65s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.14s + var(--i, 0) * 70ms)}.dash-stat-icon{display:flex;margin-bottom:4px}.dash-stat-icon .dash-icon{width:16px;height:16px;color:var(--accent-text)}.dash-stat-value{font-family:var(--font-prose);font-size:calc(29px / var(--tz, 1));line-height:1.1;font-variant-numeric:tabular-nums;color:var(--fg)}.dash-stat-label{font-size:calc(12px / var(--tz, 1));font-weight:600;color:var(--fg-2)}.dash-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:22px;align-items:start}.dash-col{display:flex;flex-direction:column;gap:22px;min-width:0}.dash-card{padding:18px 18px 20px;border-radius:20px;background:var(--surface);border:1px solid var(--border);box-shadow:inset 0 1px 0 var(--hairline);animation:dash-up .65s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.22s + var(--i, 0) * 80ms)}.dash-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.dash-card-title{display:flex;align-items:center;gap:9px;margin:0;font-size:calc(12px / var(--tz, 1));font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}.dash-card-title .dash-icon{width:16px;height:16px;color:var(--accent-text)}.dash-card-more{font-size:calc(12.5px / var(--tz, 1));font-weight:700;color:var(--accent-text);text-decoration:none}.dash-card-more:hover{text-decoration:underline}.dash-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;color:var(--fg-3);font-size:calc(13.5px / var(--tz, 1));line-height:1.55}.dash-empty p{margin:0;max-width:46ch}.dash-empty-tri{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.dash-empty-tri span{width:11px;height:2px;border-radius:1px;background:currentColor;box-shadow:0 0 6px #f06a9b8c}.dash-skel{display:flex;flex-direction:column;gap:10px}.dash-skel span{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--btn-bg) 0%,var(--btn-bg-hover) 50%,var(--btn-bg) 100%);background-size:200% 100%;animation:dash-shimmer 1.4s linear infinite}.dash-skel span:nth-child(2n){width:72%}.dash-skel span:nth-child(3n){width:54%}@keyframes dash-shimmer{to{background-position:-200% 0}}.dash-feature{position:relative;padding:22px;border-radius:22px;background:linear-gradient(160deg,var(--surface-raised),var(--surface)) padding-box,var(--grad-border) border-box;border:1px solid transparent;box-shadow:var(--glow);animation:dash-up .65s cubic-bezier(.2,.8,.2,1) both;animation-delay:.16s}.dash-feature-main{display:flex;gap:24px;align-items:center}.dash-feature-cover{flex:none;text-decoration:none}.dash-feature-cover .book-cover{transform:rotate(-3deg);box-shadow:0 22px 44px -18px #000000d9;transition:transform .32s cubic-bezier(.2,.8,.2,1)}.dash-feature:hover .dash-feature-cover .book-cover{transform:rotate(0) translateY(-4px)}.dash-feature-cover .book-cover-md{width:118px}.dash-feature-body{min-width:0}.dash-eyebrow{margin:0 0 6px;font-size:calc(11.5px / var(--tz, 1));font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.dash-feature-title{margin:0;font-family:var(--font-prose);font-weight:500;font-size:calc(28px / var(--tz, 1));line-height:1.15;color:var(--fg);overflow-wrap:anywhere}.dash-feature-chapter{margin:6px 0 0;color:var(--fg-soft);font-size:calc(14px / var(--tz, 1))}.dash-feature-meta{margin:4px 0 16px;color:var(--fg-3);font-size:calc(12.5px / var(--tz, 1))}.dash-feature-text{margin:6px 0 16px;color:var(--fg-2);font-size:calc(14px / var(--tz, 1));max-width:44ch}.dash-cta{gap:8px}.dash-cta span{display:inline-block;transition:transform .2s}.dash-cta:hover span{transform:translate(3px)}.dash-feature-empty{display:flex;gap:20px;align-items:center}.dash-feature-ink{flex:none;display:grid;place-items:center;width:84px;height:84px;border-radius:24px;background:var(--grad-btn);box-shadow:var(--glow);color:#fff}.dash-feature-ink .dash-icon{width:36px;height:36px;stroke-width:1.5}.dash-others{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.dash-others-title{margin:0 0 8px;font-size:calc(11.5px / var(--tz, 1));font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}.dash-others ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.dash-other{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:color-mix(in srgb,var(--bg-deep) 70%,transparent);border:1px solid var(--border);text-decoration:none;transition:border-color .14s,background .14s}@supports not (color: color-mix(in srgb,red,blue)){.dash-other{background:rgba(var(--bg-deep__r),var(--bg-deep__g),var(--bg-deep__b),calc(var(--bg-deep__a) * .7))}}.dash-other:hover{border-color:var(--accent-border);background:var(--accent-soft)}.dash-other .book-cover-sm,.dash-pub-book .book-cover-sm{width:34px;border-radius:4px}.dash-other .book-cover-title,.dash-other .book-cover-author,.dash-pub-book .book-cover-title,.dash-pub-book .book-cover-author{display:none}.dash-other-text{min-width:0;display:flex;flex-direction:column}.dash-other-name{font-size:calc(13.5px / var(--tz, 1));font-weight:700;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-other-meta{font-size:calc(11.5px / var(--tz, 1));color:var(--fg-3)}.dash-other-go{margin-left:auto;color:var(--fg-3);transition:transform .16s,color .16s}.dash-other:hover .dash-other-go{color:var(--accent-text);transform:translate(2px)}.dash-bm-list{grid-template-columns:minmax(0,1fr);gap:10px}.dash-bm-list .lib-bm{background:color-mix(in srgb,var(--bg-deep) 70%,transparent);padding:14px}@supports not (color: color-mix(in srgb,red,blue)){.dash-bm-list .lib-bm{background:rgba(var(--bg-deep__r),var(--bg-deep__g),var(--bg-deep__b),calc(var(--bg-deep__a) * .7))}}.dash-shelf{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:16px 14px}.dash-shelf-book{display:flex;flex-direction:column;gap:6px;text-decoration:none}.dash-shelf-cover{position:relative;display:block}.dash-shelf-cover .book-cover-sm{width:100%;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s}.dash-shelf-book:hover .book-cover-sm{transform:translateY(-4px);box-shadow:0 16px 30px -14px #000000e6}.dash-shelf-new{position:absolute;top:-7px;right:-7px;padding:1px 7px;border-radius:999px;background:var(--grad-btn);box-shadow:0 0 0 2px var(--surface);color:#fff;font-size:calc(11px / var(--tz, 1));font-weight:800}.dash-shelf-title{font-size:calc(12.5px / var(--tz, 1));font-weight:700;line-height:1.3;color:var(--fg);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dash-shelf-state{font-size:calc(11.5px / var(--tz, 1));color:var(--fg-3)}.dash-shelf-state.new{color:var(--accent-text);font-weight:700}.dash-pub{list-style:none;margin:0 -8px;padding:0;display:flex;flex-direction:column;gap:2px}.dash-pub-book{display:flex;gap:12px;align-items:center;padding:10px;border-radius:14px;text-decoration:none;transition:background .14s}.dash-pub-book:hover{background:var(--hover)}.dash-pub-book .book-cover-sm{width:44px}.dash-pub-body{min-width:0;display:flex;flex-direction:column;gap:3px}.dash-pub-title{font-family:var(--font-prose);font-size:calc(16px / var(--tz, 1));line-height:1.25;color:var(--fg)}.dash-pub-stats{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:calc(12px / var(--tz, 1));color:var(--fg-3)}.dash-pub-stats strong{color:var(--fg-soft);font-weight:700}.dash-pub-when{font-size:calc(11.5px / var(--tz, 1));color:var(--fg-4)}.dash-comments{list-style:none;margin:0 -8px;padding:0;display:flex;flex-direction:column}.dash-comments li+li{border-top:1px solid var(--border)}.dash-comment{display:flex;gap:10px;padding:11px 8px;border-radius:12px;text-decoration:none;transition:background .14s}.dash-comment:hover{background:var(--hover)}.dash-comment-main{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.dash-comment-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;font-size:calc(12.5px / var(--tz, 1));color:var(--fg-3)}.dash-comment-head strong{color:var(--fg);font-weight:700}.dash-comment-on em{font-style:normal;font-weight:600;color:var(--fg-soft)}.dash-comment-time{margin-left:auto;font-size:calc(11.5px / var(--tz, 1));color:var(--fg-4)}.dash-comment-body{font-size:calc(13.5px / var(--tz, 1));line-height:1.5;color:var(--fg-2);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(prefers-reduced-motion:reduce){.dash-hero,.dash-stat,.dash-card,.dash-feature,.dash-aurora span,.dash-skel span{animation:none}.dash-feature-cover .book-cover,.dash-shelf-cover .book-cover-sm{transition:none}}@media(max-width:1140px){.dash-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.dash{grid-template-columns:minmax(0,1fr);gap:0;padding:14px 16px 48px}.dash-main>.lib-page{padding-top:0}.dash.dash-on-chapter,.lib-app-messages .dash{padding:0}.dash-main>.msg-shell{border:0;border-radius:0}}@media(max-width:640px){.dash-out{padding:20px 16px 48px}.dash-out-hero{padding:36px 20px 28px}.dash-out-actions{flex-direction:column;align-self:stretch}.dash-hero{padding:24px 18px 18px;border-radius:22px}.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px}.dash-stat{padding:12px}.dash-stat-value{font-size:calc(24px / var(--tz, 1))}.dash-feature{padding:18px}.dash-feature-main,.dash-feature-empty{gap:16px;align-items:flex-start}.dash-feature-cover .book-cover-md{width:88px}.dash-feature-cover .book-cover-md .book-cover-title{font-size:calc(calc(11.5px * var(--cover-title-k, 1)) / var(--tz, 1))}.dash-feature-cover .book-cover-md .book-cover-author{font-size:calc(6px / var(--tz, 1))}.dash-feature-title{font-size:calc(22px / var(--tz, 1))}.dash-feature-ink{width:60px;height:60px;border-radius:18px}.dash-feature-ink .dash-icon{width:26px;height:26px}.dash-card{padding:16px 14px 18px}}.dash-settings{display:flex;flex-direction:column;gap:14px}.dash-settings>.lib-h1{margin-bottom:4px}.dash-settings .auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.dash-settings .settings-tabs{margin:0;max-width:100%}.dash-settings .settings-page{padding:0}@media(max-width:560px){.dash-settings .settings-tabs{width:auto}}.text-btn{color:var(--fg-2);font-size:calc(12px / var(--tz, 1));padding:2px 6px;border-radius:4px;transition:background .12s,color .12s}.text-btn:hover{background:var(--btn-bg);color:var(--fg)}.text-btn.danger:hover{color:var(--danger)}.api-key-hint{margin:0;font-size:calc(12px / var(--tz, 1));color:var(--fg-2);line-height:1.5}.api-key-hint a{color:var(--accent-2)}.settings-section{display:flex;flex-direction:column;gap:10px;padding:20px 22px 22px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:inset 0 1px 0 var(--hairline),var(--shadow-card)}.settings-section-title{margin:0 0 2px;font-size:calc(12px / var(--tz, 1));font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}.settings-section .text-btn{align-self:flex-start}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-label{font-size:calc(12px / var(--tz, 1));color:var(--fg-2)}.auth-input{width:100%;padding:10px 12px;background:var(--bg-deep);border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:calc(14px / var(--tz, 1));transition:border-color .12s}.auth-input:focus{outline:none;border-color:var(--accent)}.auth-input.is-ok,.auth-input.is-ok:focus{border-color:var(--ok);box-shadow:0 0 0 3px var(--ok-glow)}.auth-input.is-bad,.auth-input.is-bad:focus{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.pw-checks{list-style:none;margin:-2px 0 0;padding:10px 12px;display:flex;flex-direction:column;gap:7px;background:var(--bg-deep);border:1px solid var(--border);border-radius:8px}.pw-check{display:flex;align-items:center;gap:9px;font-size:calc(12.5px / var(--tz, 1));color:var(--fg-3);transition:color .18s}.pw-check.ok{color:var(--fg)}.pw-check.miss{color:var(--danger)}.pw-tick{flex:none;overflow:visible}.pw-tick-ring{fill:transparent;stroke:var(--fg-dim);stroke-width:1.5;transition:fill .18s,stroke .18s}.pw-tick-mark{fill:none;stroke:#1c1c1e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:12;stroke-dashoffset:12;transition:stroke-dashoffset .22s ease-out .08s}.pw-check.ok .pw-tick{animation:pw-pop .34s cubic-bezier(.34,1.56,.64,1)}.pw-check.ok .pw-tick-ring{fill:var(--ok);stroke:var(--ok)}.pw-check.ok .pw-tick-mark{stroke-dashoffset:0}.pw-check.miss .pw-tick-ring{stroke:var(--danger)}.pw-checks.tried .pw-check.miss{animation:pw-nudge .36s ease-in-out}.pw-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.confirm-code{position:relative;display:block;cursor:text}.confirm-code input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;opacity:0;border:0;background:transparent;font-size:calc(16px / var(--tz, 1));cursor:text}.confirm-boxes{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.confirm-box{height:54px;display:grid;place-items:center;border-radius:10px;background:var(--bg-deep);border:1px solid var(--border-strong);color:var(--fg);font-size:calc(24px / var(--tz, 1));font-weight:700;font-variant-numeric:tabular-nums;transition:border-color .15s,box-shadow .15s,background .2s,color .2s}.confirm-slot{display:block;animation:confirm-box-in .42s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(.5s + var(--i) * 55ms)}.confirm-box.filled{border-color:var(--accent-border);background:var(--accent-soft-solid)}.confirm-box.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.confirm-box.active:after{content:"";width:2px;height:24px;border-radius:1px;background:var(--accent);animation:confirm-caret 1s steps(1) infinite}.confirm-digit{display:inline-block;animation:confirm-digit-pop .24s cubic-bezier(.34,1.56,.64,1)}.confirm-boxes.busy .confirm-box{animation:confirm-wave .9s ease-in-out infinite;animation-delay:calc(var(--i) * 90ms)}.confirm-boxes.shake{animation:confirm-shake .42s ease-in-out}.confirm-boxes.shake .confirm-box{border-color:var(--danger-border)}.confirm-boxes.ok .confirm-box{border-color:var(--ok-border);background:var(--ok-soft);color:var(--ok);animation:confirm-ok .4s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--i) * 45ms)}@keyframes pw-pop{0%{transform:scale(.6)}to{transform:scale(1)}}@keyframes pw-nudge{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes confirm-box-in{0%{opacity:0;transform:translateY(10px) scale(.85)}to{opacity:1;transform:none}}@keyframes confirm-caret{50%{opacity:0}}@keyframes confirm-digit-pop{0%{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}@keyframes confirm-wave{0%,to{transform:none}40%{transform:translateY(-4px)}}@keyframes confirm-shake{0%,to{transform:none}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(2px)}}@keyframes confirm-ok{40%{transform:scale(1.1)}to{transform:none}}@media(prefers-reduced-motion:reduce){.pw-check.ok .pw-tick,.pw-checks.tried .pw-check.miss,.confirm-slot,.confirm-digit,.confirm-boxes.busy .confirm-box,.confirm-boxes.shake,.confirm-boxes.ok .confirm-box{animation:none}.pw-tick-mark{transition:none}}.switch{flex:none;position:relative;width:42px;height:24px;box-sizing:border-box;border-radius:999px;border:1px solid var(--border-strong);background:var(--btn-bg);transition:background .25s,border-color .25s,box-shadow .25s}.switch-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--fg-2);box-shadow:0 1px 3px #0006;transition:transform .3s cubic-bezier(.3,1.5,.5,1),background .2s,width .2s}.mcp-url{display:block;font-size:calc(11px / var(--tz, 1));line-height:1.5;color:var(--fg);background:var(--bg-deep);border:1px solid var(--border);border-radius:6px;padding:8px;word-break:break-all;-webkit-user-select:all;user-select:all}.mcp-warn{margin:0;font-size:calc(11px / var(--tz, 1));line-height:1.45;color:var(--accent-2)}.onboard-steps-list{margin:0;padding-left:20px;font-size:calc(14px / var(--tz, 1));color:var(--fg-soft);line-height:1.9;text-align:left}.onboard-steps-list strong{color:var(--fg)}.onboard-steps-list em{color:var(--accent-2);font-style:normal}@media(prefers-reduced-motion:reduce){.switch,.switch-knob{transition:none}}
