@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1e219c03c996efbd-s.2qo5md4hn_gum.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.1d9rlgtqyj_-l.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/03bda585a99c6450-s.p.32sris142tqlb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_c39892db-module__yBTrmG__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_c39892db-module__yBTrmG__variable{--font-serif:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.p.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_ae5a9e55-module__U9bneG__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_ae5a9e55-module__U9bneG__variable{--font-sans:"Manrope", "Manrope Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#faf6f0;--reading:#f7f1e5;--ink:#1c1917;--muted:#57534e;--faint:#a8a29e;--line:#e7e5e4;--white:#fff;--amber:#d97706;--amber-soft:#fef3c7;--on-ink:#fff;--nav:#fffdfb;--danger:#b91c1c;--highlight:#fde047;--shadow:0 8px 10px #1c191708;--shadow-cover:0 12px 24px #1c19170d;--shadow-float:0 16px 16px #1c19170f;--serif:var(--font-serif), "Iowan Old Style", Georgia, serif;--sans:var(--font-sans), "Avenir Next", "Segoe UI", sans-serif;--nav-h:78px;--side:232px}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#141210;--reading:#1c1917;--ink:#faf6f0;--muted:#d6d3d1;--faint:#a8a29e;--line:#44403c;--white:#292524;--amber:#f59e0b;--amber-soft:#3f2e1a;--on-ink:#1c1917;--nav:#1a1714;--danger:#fca5a5;--highlight:#facc1561;--shadow:0 8px 16px #00000059;--shadow-cover:0 12px 28px #00000073;--shadow-float:0 16px 24px #0006}*{box-sizing:border-box}html,body{background:var(--paper);margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);min-height:100dvh}a{color:inherit;text-decoration:none}button,input,textarea{font-family:inherit}button{cursor:pointer}img{max-width:100%;display:block}.shell{min-height:100dvh}.main{padding-bottom:calc(var(--nav-h) + 16px)}.shell.reading .main{padding-bottom:0}.side-nav{display:none}.bottom-nav{z-index:20;background:var(--white);border-top:1px solid var(--line);justify-content:space-between;padding:12px 16px 18px;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-width:0;color:var(--faint);background:0 0;border:0;flex-direction:column;flex:0 64px;align-items:center;gap:4px;font-size:11px;font-weight:500;display:flex}.tab svg{width:22px;height:22px}.tab.active{color:var(--amber);font-weight:700}.pad{padding-left:24px;padding-right:24px}.kicker{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:13px;font-weight:600}.display{font-family:var(--serif);letter-spacing:-.02em;margin:4px 0 0;font-size:32px;font-weight:700;line-height:1.15}.section-label{color:var(--faint);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:14px;font-weight:700}.row-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.serif{font-family:var(--serif);margin:0;font-size:22px;font-weight:700}.link-amber{color:var(--amber);font-size:14px;font-weight:600}.muted{color:var(--muted)}.faint{color:var(--faint)}.header-block{padding:16px 24px 24px}.card{background:var(--white);box-shadow:var(--shadow);border-radius:20px}.progress-card{gap:16px;margin-top:12px;padding:16px;display:flex}.progress-copy{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.book-title{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:18px;font-weight:700;overflow:hidden}.author{color:var(--muted);margin:2px 0 0;font-size:13px}.track{background:var(--paper);border-radius:3px;height:6px;overflow:hidden}.track>span{background:var(--amber);height:100%;display:block}.meta-line{justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.empty-card{border:1px dashed var(--line);background:var(--white);border-radius:20px;margin-top:12px;padding:20px}.empty-card p{color:var(--muted);margin:0 0 12px}.carousel{scroll-snap-type:x mandatory;scrollbar-width:none;gap:16px;padding:16px 24px 8px;scroll-padding-inline:24px;display:flex;overflow-x:auto}.carousel::-webkit-scrollbar{display:none}.book-card{scroll-snap-align:start;flex-direction:column;flex:none;gap:12px;width:150px;display:flex}button.book-card{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}button.book-card:disabled{cursor:wait}.book-card .book-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;display:-webkit-box}.book-card .author{font-size:12px}.book-card .track{background:var(--line)}.book-card-note{color:var(--amber);margin:4px 0 0;font-size:12px;font-weight:600}.cover{box-shadow:var(--shadow-cover);border-radius:12px;flex-direction:column;justify-content:flex-end;padding:12px;display:flex;position:relative;overflow:hidden}.cover:after{content:"";background:#ffffff47;width:3px;position:absolute;inset:8px auto 8px 0}.cover-sm{border-radius:8px;flex:none;width:68px;height:96px;padding:8px}.cover-md{width:150px;height:210px}.cover-lg{border-radius:16px;width:180px;height:260px;padding:16px;box-shadow:0 16px 32px #1c191714}.cover-kicker{letter-spacing:.04em;text-transform:uppercase;opacity:.85;font-size:10px}.cover-title{font-family:var(--serif);margin-top:4px;font-size:14px;font-weight:700;line-height:1.2}.cover-sm .cover-kicker,.cover-sm .cover-title{display:none}.cover-lg .cover-title{font-size:22px}.cover.cover-photo{background:var(--paper);padding:0}.cover.cover-photo:after{display:none}.cover.cover-photo img{object-fit:cover;width:100%;height:100%;transition:opacity .2s ease-out}.cover.cover-photo.is-loading img{opacity:0}.cover-loader{place-items:center;display:grid;position:absolute;inset:0}.cover-loader-media{aspect-ratio:1;width:min(60%,120px);position:relative}.cover-loader-video{object-fit:cover;background:var(--paper);border-radius:50%;width:81%;height:81%;position:absolute;inset:9.5%}.icon-btn{border:1px solid var(--line);background:var(--white);width:40px;height:40px;color:var(--ink);border-radius:20px;justify-content:center;align-items:center;display:inline-flex}.icon-btn.active{color:var(--amber);background:var(--amber-soft);border-color:#0000}.icon-btn svg{width:20px;height:20px}.detail-top{justify-content:space-between;padding:12px 24px;display:flex}.hero{justify-content:center;padding:16px 24px;display:flex}.center{text-align:center;padding:0 24px 24px}.center h1{font-family:var(--serif);margin:0;font-size:26px;line-height:1.2}.center .by{color:var(--muted);margin:6px 0 0;font-size:16px}.rating-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:10px;display:flex}.stars{color:var(--line);gap:2px;display:inline-flex}.stars .on{color:var(--amber);fill:var(--amber)}.stars svg{width:14px;height:14px}.like-btn{color:var(--muted);background:0 0;border:0;align-items:center;gap:4px;font-size:14px;font-weight:600;display:inline-flex}.like-btn.on{color:var(--amber)}.metrics{gap:12px;padding:0 24px 28px;display:flex}.metric{background:var(--white);border:1px solid var(--line);text-align:center;border-radius:12px;flex:1;padding:12px 8px}.metric span{color:var(--faint);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:600;display:block}.metric strong{margin-top:4px;font-size:14px;display:block}.synopsis{padding:0 24px 24px}.synopsis h2,.block-title{font-family:var(--serif);margin:0 0 12px;font-size:20px}.synopsis p{color:var(--muted);margin:0;font-size:15px;line-height:1.6}.sticky-bar{bottom:calc(var(--nav-h) - 8px);background:var(--white);border-top:1px solid var(--line);z-index:5;gap:12px;padding:16px 24px 20px;display:flex;position:sticky}.shell.reading .sticky-bar{bottom:0}.btn{border:0;border-radius:28px;justify-content:center;align-items:center;gap:8px;font-size:16px;font-weight:700;display:inline-flex}.btn-dark{background:var(--ink);color:var(--on-ink);flex:1;min-height:54px;padding:16px}.btn-ghost{border:1px solid var(--line);background:var(--white);width:52px;height:52px;color:var(--ink);border-radius:28px}.btn-ghost.active{color:var(--amber);background:var(--amber-soft)}.btn-wide{width:100%}.reader{flex-direction:column;min-height:100dvh;display:flex}.reader-top{justify-content:space-between;align-items:center;padding:12px 24px 24px;display:flex}.reader-top p{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;text-align:center;margin:0;padding:0 12px;font-size:13px;font-weight:600}.ghost-icon{color:var(--ink);background:0 0;border:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.reader-body{width:100%;max-width:720px;margin:0 auto;padding:8px 28px 180px}.lead{font-family:var(--serif);margin:0 0 20px;font-weight:700;line-height:1.4}.reader-body p{font-family:var(--serif);margin:0 0 20px;line-height:1.8}.controls{background:var(--white);box-shadow:var(--shadow-float);border-radius:24px;flex-direction:column;gap:16px;padding:20px;display:flex;position:fixed;bottom:24px;left:24px;right:24px}.controls-row{justify-content:space-between;align-items:center;display:flex}.font-btns,.theme-dots{align-items:center;gap:8px;display:flex}.chip{background:var(--paper);color:var(--ink);border:0;border-radius:8px;padding:6px 12px;font-weight:600}.chip.on{background:var(--ink);color:var(--on-ink)}.dot{border:2px solid #0000;border-radius:50%;width:24px;height:24px;padding:0}.dot.on{border-color:var(--ink)}.slider{appearance:none;background:var(--paper);border-radius:2px;outline:none;width:100%;height:4px}.slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--amber);cursor:pointer;border-radius:50%;width:12px;height:12px}.page-line{color:var(--faint);justify-content:space-between;font-size:12px;display:flex}.profile-head{align-items:center;gap:16px;padding:16px 24px 24px;display:flex}.avatar{object-fit:cover;background:var(--amber-soft);width:64px;height:64px;color:var(--ink);font-family:var(--serif);border-radius:32px;flex:none;place-items:center;font-size:22px;font-weight:700;display:grid}.profile-head h1{font-family:var(--serif);margin:0;font-size:22px}.avatar-edit{align-items:center;gap:16px;display:flex}.avatar-edit-actions{flex-direction:column;gap:6px;min-width:0;display:flex}.avatar-edit-actions p{margin:0;font-size:12px}.avatar-edit-buttons{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.avatar-upload-btn{gap:8px;width:auto;height:auto;min-height:40px;padding:8px 16px;font-size:14px}.avatar-upload-btn svg{width:16px;height:16px}.rank-next{color:var(--muted);margin:6px 0 0;font-size:13px}.profile-username{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rank-badge{background:var(--tier-soft);color:var(--tier-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;font-weight:700;line-height:18px;display:inline-flex}.rank-dot{background:var(--tier);border-radius:50%;width:7px;height:7px}.comment h3{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.streak{margin:0 24px 24px;padding:20px}.streak-top{justify-content:space-between;align-items:center;display:flex}.streak-top p{color:var(--muted);margin:0;font-weight:600}.streak-top strong{font-family:var(--serif);color:var(--ink);margin-top:2px;font-size:28px;font-weight:700;display:block}.award{background:var(--amber-soft);width:44px;height:44px;color:var(--amber);border-radius:22px;place-items:center;display:grid}.week{justify-content:space-between;margin-top:16px;display:flex}.day{color:var(--faint);flex-direction:column;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.mark{border:1px solid var(--line);color:#fff;border-radius:14px;place-items:center;width:28px;height:28px;display:grid}.mark.done{background:var(--amber);border-color:#0000}.mark.today{box-shadow:0 0 0 2px var(--amber-soft)}.day{outline:none;position:relative}.day[tabindex]{cursor:default}.day:focus-visible .mark{box-shadow:0 0 0 2px var(--amber)}.day-tip{z-index:10;background:var(--ink);color:var(--on-ink);box-shadow:var(--shadow-float);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;font-size:12px;font-weight:500;transition:opacity .12s,transform .12s,visibility .12s;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.day-tip strong{font-size:13px;font-weight:700}.day:first-child .day-tip{left:0;transform:translateY(4px)}.day:last-child .day-tip{left:auto;right:0;transform:translateY(4px)}.day:hover .day-tip,.day:focus .day-tip{opacity:1;visibility:visible;transform:translate(-50%)}.day:first-child:hover .day-tip,.day:first-child:focus .day-tip,.day:last-child:hover .day-tip,.day:last-child:focus .day-tip{transform:translate(0)}.achievements{padding:0 24px 32px}.grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.achieve{background:var(--white);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:12px;padding:16px;display:flex}.achieve h3{font-family:var(--serif);margin:0;font-size:15px}.achieve p{color:var(--muted);margin:2px 0 0;font-size:12px}.achieve .achieve-tier{color:var(--tier-ink,var(--muted));letter-spacing:.05em;text-transform:uppercase;margin:0 0 2px;font-size:11px;font-weight:700}.tier-common{--tier:#8a817c;--tier-soft:#f0eeec;--tier-ink:#57534e}html[data-theme=dark] .tier-common{--tier:#a8a29e;--tier-soft:#3a3633;--tier-ink:#d6d3d1}.tier-uncommon{--tier:#4d9a5b;--tier-soft:#dcfce7;--tier-ink:#2f6b3a}html[data-theme=dark] .tier-uncommon{--tier:#5fb870;--tier-soft:#14532d;--tier-ink:#86efac}.tier-rare{--tier:#3b82f6;--tier-soft:#dbeafe;--tier-ink:#1d4ed8}html[data-theme=dark] .tier-rare{--tier:#60a5fa;--tier-soft:#1e3a5f;--tier-ink:#93c5fd}.tier-epic{--tier:#9333ea;--tier-soft:#f3e8ff;--tier-ink:#7e22ce}html[data-theme=dark] .tier-epic{--tier:#b06cf5;--tier-soft:#3b1d5c;--tier-ink:#d8b4fe}.tier-mythic{--tier:#dc2626;--tier-soft:#fee2e2;--tier-ink:#b91c1c}html[data-theme=dark] .tier-mythic{--tier:#f05252;--tier-soft:#4c1d24;--tier-ink:#fca5a5}.tier-legendary{--tier:#d4a017;--tier-soft:#fef3c7;--tier-ink:#7a5a06}html[data-theme=dark] .tier-legendary{--tier:#e8c14a;--tier-soft:#4a3a0f;--tier-ink:#fde68a}.tier-champion{--tier:#ea7a1a;--tier-soft:#ffedd5;--tier-ink:#9a4a0a}html[data-theme=dark] .tier-champion{--tier:#f59e4a;--tier-soft:#4a2a12;--tier-ink:#fdba74}.achievement-badge{object-fit:cover;box-shadow:0 0 0 1px color-mix(in srgb, var(--tier,var(--line)) 45%, transparent);border-radius:22%;flex:none}.achievement-badge.fallback{background:var(--tier-soft,var(--amber-soft));color:var(--tier-ink,var(--amber));place-items:center;display:grid}.achievement-badge.muted{filter:grayscale();opacity:.55}.achievements-summary{margin:8px 0 0}.achievement-grid{gap:12px;padding:0 24px 32px;display:grid}.achievement-card{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--tier,var(--line));border-radius:16px;align-items:flex-start;gap:16px;padding:16px;display:flex}.achievement-body{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.achievement-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.achievement-head h2{font-family:var(--serif);margin:0;font-size:18px;line-height:1.25}.tier-chip{background:var(--tier-soft,var(--paper));color:var(--tier-ink,var(--muted));letter-spacing:.05em;text-transform:uppercase;border-radius:999px;flex:none;padding:3px 10px;font-size:11px;font-weight:700}.achievement-description{color:var(--muted);margin:0;font-size:14px}.achievement-card .track>span{background:var(--tier,var(--amber))}.achievement-progress p{margin:6px 0 0;font-size:12px;font-weight:600}.achievement-status{color:var(--tier-ink,var(--amber));margin:0;font-size:13px;font-weight:700}.tier-ladder{flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12px;font-weight:600;display:flex}.tier-ladder span{white-space:nowrap}.tier-ladder ol{gap:4px;margin:0;padding:0;list-style:none;display:flex}.tier-ladder li{background:var(--line);border-radius:3px;width:18px;height:6px}.tier-ladder li.on{background:var(--tier)}.achievement-toasts{z-index:60;pointer-events:none;justify-content:center;display:flex;position:fixed;top:12px;left:16px;right:16px}.achievement-toast{pointer-events:auto;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--tier,var(--amber));width:min(420px,100%);box-shadow:var(--shadow-float);border-radius:16px;align-items:center;gap:12px;padding:12px 10px 12px 14px;animation:.22s ease-out toast-in;display:flex}.achievement-toast-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.achievement-toast-kicker{color:var(--tier-ink,var(--amber));letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:700}.achievement-toast-body strong{font-family:var(--serif);font-size:16px}.achievement-toast-body .muted{font-size:13px}.achievement-toast-close{width:28px;height:28px;color:var(--faint);background:0 0;border:0;border-radius:14px;flex:none;align-self:flex-start;place-items:center;display:grid}.achievement-toast-close:hover{color:var(--ink);background:var(--paper)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}.search{color:var(--faint);background:var(--white);border:1px solid var(--line);border-radius:16px;align-items:center;gap:8px;margin:8px 24px 16px;padding:6px 6px 6px 14px;display:flex}.search-btn{background:var(--ink);color:var(--on-ink);border:0;border-radius:12px;flex:none;padding:8px 14px;font-size:13px;font-weight:700}.search input{width:100%;color:var(--ink);background:0 0;border:0;outline:none;font-size:15px}.chips{scrollbar-width:none;gap:8px;margin:0 24px;padding-bottom:8px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips-wrap{margin:0 24px;position:relative}.chips-wrap .chips{margin:0}.chips-wrap.more-start .chips,.chips-wrap.more-end .chips{--fade-start:0px;--fade-end:0px;-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--fade-start), #000 calc(100% - var(--fade-end)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--fade-start), #000 calc(100% - var(--fade-end)), transparent 100%)}.chips-wrap.more-start .chips{--fade-start:56px}.chips-wrap.more-end .chips{--fade-end:56px}.chips-arrow{z-index:1;border:1px solid var(--line);background:var(--white);width:36px;height:36px;color:var(--ink);box-shadow:var(--shadow);cursor:pointer;border-radius:50%;place-items:center;display:none;position:absolute;top:0}.chips-arrow.start{left:0}.chips-arrow.end{right:0}.chips-arrow svg{width:18px;height:18px}@media (hover:hover) and (pointer:fine){.chips-arrow{display:grid}}.pill{border:1px solid var(--line);background:var(--white);color:var(--muted);white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600}.pill.on{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.genre-chip{flex:none;position:relative}.subgenre-menu{z-index:40;padding-top:8px;position:fixed}.subgenre-list{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow-float);border-radius:14px;padding:6px;overflow-y:auto}.subgenre-item{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:10px;padding:8px 10px;font-size:13px;font-weight:600;line-height:1.35;display:block}.subgenre-item:hover{background:var(--paper)}.subgenre-item.on{background:var(--ink);color:var(--on-ink)}.shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;padding:16px 24px 32px;display:grid}.shelf .book-card{width:auto}.shelf .cover-md{aspect-ratio:5/7;width:100%;height:auto}.parsed-book{gap:24px;padding:8px 24px 40px;display:grid;container-type:inline-size}.parsed-hero{grid-template-columns:minmax(0,1fr);gap:24px;display:grid}.parsed-cover{width:min(220px,60%);box-shadow:var(--shadow-cover);border-radius:16px;justify-self:center;position:relative;overflow:hidden}.parsed-cover img{width:100%;height:auto;transition:opacity .2s ease-out;display:block}.parsed-cover.is-loading{aspect-ratio:2/3;background:var(--white)}.parsed-cover.is-loading img{opacity:0;height:100%;position:absolute;inset:0}.cover.parsed-cover-drawn{aspect-ratio:2/3;background:var(--white);border-radius:16px;padding:20px}.parsed-cover-drawn .cover-title{font-size:22px}.parsed-head{flex-direction:column;gap:12px;min-width:0;display:flex}.parsed-title{overflow-wrap:anywhere;font-size:28px;line-height:1.15}.parsed-author{width:fit-content;color:var(--amber);margin:0;font-size:17px;font-weight:600}a.parsed-author:hover,a.parsed-author:focus-visible{text-decoration:underline}.parsed-chips{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.parsed-chips .pill{white-space:normal;line-height:18px}.btn.parsed-chip{width:auto;height:36px;padding:0 14px;font-size:14px}.btn.parsed-chip svg{width:16px;height:16px}.parsed-facts{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px 20px;margin:8px 0 0;display:grid}.parsed-facts div{grid-template-columns:20px minmax(0,1fr);gap:2px 10px;display:grid}.parsed-facts svg{width:20px;height:20px;color:var(--faint);grid-row:span 2;margin-top:2px}.parsed-facts dt{color:var(--faint);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:700}.parsed-facts dd{overflow-wrap:anywhere;margin:0;font-size:15px}.parsed-about{align-self:start;padding:20px}.parsed-about h2{margin-bottom:4px;font-size:20px}.parsed-about dl{margin:0}.parsed-about dl div{border-top:1px solid var(--line);grid-template-columns:88px minmax(0,1fr);gap:12px;padding:12px 0;font-size:14px;display:grid}.parsed-about dl div:first-child{border-top:0}.parsed-about dt{color:var(--faint)}.parsed-about dd{overflow-wrap:anywhere;margin:0}.parsed-about-genres{flex-wrap:wrap;gap:6px;display:flex}.parsed-about-genres .pill{background:var(--paper);white-space:normal;padding:6px 10px;font-size:12px}.parsed-actions{flex-wrap:wrap;gap:12px;display:flex}.parsed-actions .btn{flex:200px;min-height:52px;padding:14px 24px;font-size:15px}.parsed-actions .btn svg{width:20px;height:20px}.parsed-secondary{border:1px solid var(--line);background:var(--white);color:var(--ink)}.parsed-wrong{border:1px solid var(--amber);background:var(--amber-soft);color:var(--amber)}.parsed-wrong:disabled{opacity:.6}.parsed-panel{padding:24px}.parsed-panel-title{font-family:var(--serif);align-items:center;gap:10px;margin:0 0 16px;font-size:22px;display:flex}.parsed-panel-title svg{width:24px;height:24px}.parsed-paragraph{max-width:96ch;color:var(--muted);white-space:pre-wrap;margin:0 0 14px;font-size:15px;line-height:1.7}.parsed-panel>:last-child{margin-bottom:0}.parsed-links{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.parsed-links h3{margin:0 0 12px;font-size:15px}.parsed-links ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.parsed-links li{color:var(--muted);align-items:center;gap:10px;font-size:14px;display:flex}.parsed-links li svg{width:18px;height:18px;color:var(--faint);flex:none}.parsed-links a{color:var(--amber);font-weight:600}.parsed-links a:hover,.parsed-links a:focus-visible{text-decoration:underline}.parsed-comments .comments{margin-top:8px;padding:0}.parsed-comments .comments>h2{margin-bottom:16px;font-size:24px}.parsed-comments form{background:var(--white);box-shadow:var(--shadow);border-radius:20px;margin-bottom:8px;padding:16px}.parsed-comments .field textarea{background:var(--paper)}@container (min-width:640px){.parsed-hero{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:32px}.parsed-cover{justify-self:start;width:100%}.parsed-title{font-size:34px}.parsed-about{grid-column:1/-1}.parsed-actions .btn{flex:none;min-width:220px}}@container (min-width:1000px){.parsed-hero{grid-template-columns:220px minmax(0,1fr) 300px}.parsed-about{grid-column:auto}}.author-page{gap:32px;padding:8px 24px 40px;display:grid;container-type:inline-size}.author-hero{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.author-photo{aspect-ratio:3/4;object-fit:cover;object-position:center top;background:var(--white);width:128px;box-shadow:var(--shadow-cover);border-radius:16px}.author-photo-empty{border:1px solid var(--line);color:var(--faint);place-items:center;display:grid}.author-photo-empty svg{width:48px;height:48px}.author-head{flex-direction:column;gap:10px;min-width:0;display:flex}.author-name{overflow-wrap:anywhere;font-size:30px;line-height:1.15}.author-count{color:var(--muted);margin:0;font-size:14px;font-weight:600}.author-bio{max-width:80ch;color:var(--muted);white-space:pre-wrap;margin:4px 0 0;font-size:15px;line-height:1.7}.author-bio-link{align-items:center;gap:6px;width:fit-content;display:inline-flex}.author-bio-link svg{width:14px;height:14px}.author-bio-link:hover,.author-bio-link:focus-visible{text-decoration:underline}.author-series{gap:16px;display:grid}.author-series-title{font-family:var(--serif);overflow-wrap:anywhere;align-items:baseline;gap:10px;margin:0;font-size:22px;display:flex}.author-series-title .faint{font-family:var(--sans);font-size:14px;font-weight:600}.author-books{grid-template-columns:minmax(0,1fr);gap:16px;margin:0;padding:0;list-style:none;display:grid}.author-book{grid-template-columns:96px minmax(0,1fr);gap:16px;padding:16px;display:grid}.author-book-cover{align-self:start}.author-book .cover-md{aspect-ratio:5/7;width:100%;height:auto}.author-book-body{flex-direction:column;gap:8px;min-width:0;display:flex}.author-book-number{color:var(--amber);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.author-book-title{font-family:var(--serif);overflow-wrap:anywhere;margin:0;font-size:18px;line-height:1.25}.author-book-title a:hover,.author-book-title a:focus-visible{color:var(--amber)}.author-book-text{color:var(--muted);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.author-book-actions{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px;display:flex}.author-book-actions .btn{flex:none;min-height:40px;padding:0 16px;font-size:14px}.author-book-actions .btn svg{width:16px;height:16px}.author-book-error{color:var(--danger);margin:0;font-size:13px}.author-error{justify-items:start;gap:12px;display:grid}.author-error p{margin:0}.author-error .btn{min-height:44px;padding:0 20px}@container (min-width:640px){.author-hero{grid-template-columns:160px minmax(0,1fr);align-items:start;gap:32px}.author-photo{width:160px}.author-name{font-size:36px}.author-book{grid-template-columns:120px minmax(0,1fr);gap:20px;padding:20px}}@container (min-width:1000px){.author-books{grid-template-columns:repeat(2,minmax(0,1fr))}}.bookmark-btn{gap:8px;height:auto}.bookmark-btn svg{width:18px;height:18px}.read-book-error{padding:12px 0 0}.book-read{padding:8px 24px 48px}.book-read-head{margin-bottom:24px}.book-read-page{margin:8px 0 0}.font-size{align-items:center;gap:8px;margin:0 0 20px;display:flex}.font-size-btn{border:1px solid var(--line);background:var(--white);width:36px;height:36px;color:var(--ink);border-radius:10px;font-size:18px;font-weight:600;line-height:1}.font-size-btn:disabled{opacity:.4}.font-size-value{text-align:center;min-width:48px;font-size:14px;font-weight:600}.book-html{color:var(--ink);font-family:var(--serif);overflow-wrap:anywhere;overflow-clip-margin:8px;line-height:1.75;overflow-x:clip}.book-html>table,.book-html>table>tbody,.book-html>table>tbody>tr,.book-html>table>tbody>tr>td{display:block;width:auto!important}.book-html table{border-collapse:collapse;table-layout:fixed;width:100%!important}.book-html td,.book-html th{width:auto!important}.book-html,.book-html *{color:var(--ink)!important;font-family:var(--serif)!important;background:0 0!important}.book-html *{box-sizing:border-box;font-size:inherit!important;min-width:0!important;max-width:100%!important}.book-html pre{white-space:pre-wrap!important}.book-html [style*=nowrap]{white-space:normal!important}.book-html a{color:var(--amber)!important}.book-html img,.book-html svg,.book-html video{height:auto}.book-html p{margin:0 0 1em}.book-html mark.highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;background:var(--highlight)!important}.book-html mark.highlight.flash{animation:1.8s ease-out highlight-flash}@keyframes highlight-flash{0%{box-shadow:0 0 0 4px var(--amber)}to{box-shadow:0 0 0 4px #0000}}.highlight-tip{z-index:60;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;transform:translate(-50%,-100%)}.highlight-tip.below{transform:translate(-50%)}.highlight-tip-btn{background:var(--ink);min-height:40px;color:var(--on-ink);box-shadow:var(--shadow-float);white-space:nowrap;-webkit-tap-highlight-color:#0000;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:700;display:inline-flex}.highlight-tip-btn svg{width:16px;height:16px;color:var(--highlight)}html[data-theme=dark] .highlight-tip-btn svg{color:var(--amber)}.highlight-tip-btn:disabled{cursor:wait;opacity:.85}.highlight-tip-error{background:var(--white);max-width:240px;color:var(--danger);box-shadow:var(--shadow-float);text-align:center;border-radius:10px;margin:0;padding:6px 10px;font-size:12px;font-weight:600}.highlights-back{padding-top:16px}.highlights-back a{align-items:center;gap:6px;display:inline-flex}.highlights-head{align-items:flex-start;gap:16px;padding:16px 24px 8px;display:flex}.highlights-head h1{overflow-wrap:anywhere;margin:6px 0 0}.highlights-count{margin:8px 0 0;font-size:13px}.highlight-list{flex-direction:column;gap:12px;margin:0;padding:16px 24px 24px;list-style:none;display:flex}.highlight-card{background:var(--white);box-shadow:var(--shadow);border-radius:20px;padding:16px 18px}.highlight-card blockquote{border-left:4px solid var(--highlight);font-family:var(--serif);white-space:pre-line;overflow-wrap:anywhere;margin:0;padding-left:14px;font-size:17px;line-height:1.6}.highlight-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:12px;font-size:13px;display:flex}.highlight-actions{align-items:center;gap:16px;display:flex}.page-list{flex-wrap:wrap;align-items:center;gap:8px;margin-top:28px;display:flex}.page-link,.page-gap{border:1px solid var(--line);background:var(--white);min-width:36px;height:36px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.page-link.on{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}button.page-link{cursor:pointer;font-family:inherit}.page-link:disabled{cursor:default}.finish-card{border:1px solid var(--line);background:var(--white);border-radius:20px;margin-top:32px;padding:20px}.finish-card h2{font-family:var(--serif);margin:0 0 6px;font-size:22px}.finish-card p{color:var(--muted);margin:0 0 16px}.finish-card .btn-dark{width:100%}.finish-card .finish-note{color:var(--ink)}.finish-card.done{background:var(--amber-soft);border-color:#0000;align-items:flex-start;gap:14px;display:flex}.finish-card.done p{margin:0}.finish-icon{width:28px;height:28px;color:var(--amber);flex:none;margin-top:2px}.finish-card .reread{width:auto;height:auto;margin-top:12px;padding:10px 16px;font-size:14px}.track.track-dual{position:relative}.track.track-dual>span{position:absolute;inset:0 auto 0 0}.track.track-dual>.track-seen{background:color-mix(in srgb, var(--amber) 35%, transparent)}.meta-line .counted{color:var(--amber);font-weight:600}.meta-line.tight{margin-top:2px}.shelf-hint{max-width:760px;color:var(--muted);align-items:flex-start;gap:8px;margin:0 0 20px;font-size:13px;line-height:1.5;display:flex}.shelf-hint svg{color:var(--amber);flex:none;margin-top:3px}.shelf-finish-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:12px;margin-top:16px;display:grid}.shelf-finish{align-items:flex-start;gap:16px;padding:16px;display:flex}.shelf-finish-cover{flex:none}.shelf-finish-copy{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.shelf-finish .book-title{white-space:normal;font-size:16px}.shelf-finish .track{background:var(--line)}.shelf-finish-note{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.btn.shelf-finish-action{flex:none;align-self:flex-start;min-height:0;padding:10px 18px;font-size:14px}.metrics-note{margin:-16px 24px 24px;font-size:13px;line-height:1.5}.still-reading{left:16px;right:16px;bottom:calc(var(--nav-h) + 12px);z-index:20;border:1px solid var(--line);background:var(--white);max-width:560px;box-shadow:var(--shadow-float);border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:16px 20px;display:flex;position:fixed}.still-reading p{margin:0;font-size:14px}.still-reading .still-reading-title{font-family:var(--serif);color:var(--ink);font-size:18px;font-weight:700}.still-reading .btn-dark{flex:none;min-height:44px;padding:10px 20px;font-size:15px}@media (min-width:960px){.still-reading{bottom:24px;left:calc(var(--side) + 24px)}}.shelf-pages{margin-top:4px;padding:4px 24px 40px}.shelf-page{width:100%;margin:0 0 4px;font-size:13px;font-weight:700}.page-gap{background:0 0;border:0}.read-links{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.field input,.field textarea{border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:15px}.auth-card,.panel{background:var(--white);box-shadow:var(--shadow);border-radius:20px;margin:0 24px 24px;padding:20px}.tabs{gap:8px;margin-bottom:16px;display:flex}.error{color:var(--danger);margin:0;font-size:13px}.theme-toggle{color:var(--muted);background:0 0;border:0;align-items:center;font-weight:600;display:flex}.theme-toggle .when-dark,html[data-theme=dark] .theme-toggle .when-light{display:none}html[data-theme=dark] .theme-toggle .when-dark{display:inline-flex}.brand-dark,html[data-theme=dark] .brand-light{display:none}html[data-theme=dark] .brand-dark{display:block}.theme-toggle-side{border-radius:14px;gap:10px;margin-top:auto;padding:12px 14px;font-size:14px}.theme-toggle-side:hover{background:var(--white);color:var(--ink)}.theme-toggle-tab{min-width:0;color:var(--faint);flex-direction:column;flex:0 64px;gap:4px;padding:0;font-size:11px;font-weight:500}.theme-toggle-tab svg{width:22px;height:22px}.theme-toggle-icon{border:1px solid var(--line);background:var(--paper);width:36px;height:36px;color:var(--ink);border-radius:18px;justify-content:center}.theme-toggle-icon svg{width:18px;height:18px}.comment{border-top:1px solid var(--line);align-items:flex-start;gap:12px;padding:14px 0;display:flex}.comment-main{flex:1;min-width:0}.comment-avatar{border-radius:50%;flex:none}.comment-author:hover,.comment-author:focus-visible{color:var(--amber);text-decoration:underline}.profile-username{margin:2px 0 0;font-size:13px}.profile-bio{max-width:720px;margin:-8px 24px 20px;line-height:1.5}.avatar.avatar-sm{border-radius:18px;width:36px;height:36px;font-size:13px}.comment header{justify-content:space-between;align-items:center;gap:8px;display:flex}.comment h3{flex-wrap:nowrap;flex:auto;min-width:0;margin:0;font-size:14px}.comment-author{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.comment h3 .rank-badge{flex:none}.comment-time{text-align:right;flex:0 auto;max-width:40%;font-size:12px;line-height:1.3}.comment p{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0;font-size:14px;line-height:1.5}.comments{margin-top:32px}.comment-actions{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.comment-footer{align-items:center;gap:16px;margin-top:8px;display:flex}.comment-like{color:var(--faint);font:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:600;display:inline-flex}button.comment-like:hover,.comment-like.active{color:var(--amber)}.comment-like svg{width:15px;height:15px}.like-btn{gap:8px;height:auto}.like-btn svg{width:18px;height:18px}.comment-actions .btn{flex:none;width:auto;padding-inline:24px}.text-btn{color:var(--faint);background:0 0;border:0;padding:0;font-size:12px;font-weight:600}.genre-row{border-top:1px solid var(--line);justify-content:space-between;padding:10px 0;font-size:14px;display:flex}.status{color:var(--muted);padding:24px}@media (min-width:960px){.shell{grid-template-columns:var(--side) minmax(0, 1fr);display:grid}.shell.reading{display:block}.side-nav{border-right:1px solid var(--line);background:var(--nav);flex-direction:column;gap:6px;height:100dvh;padding:28px 18px;display:flex;position:sticky;top:0}.shell.reading .side-nav{display:none}.brand{width:calc(100% - 16px);height:auto;margin:0 8px 18px}.side-link{color:var(--muted);border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-weight:600;display:flex}.side-link.active{background:var(--white);color:var(--amber);box-shadow:var(--shadow)}.bottom-nav{display:none}.chips{scrollbar-width:thin;scrollbar-color:var(--faint) #0000}.chips::-webkit-scrollbar{height:8px;display:block}.chips::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.main{justify-self:center;width:min(1120px,100%);max-width:1120px;margin-inline:auto;padding-bottom:48px}.carousel{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));padding-right:24px;display:grid;overflow:visible}.book-card{width:auto}.cover-md{aspect-ratio:5/7;width:100%;height:auto}.detail{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:12px 36px;padding-top:12px;display:grid}.detail .hero{padding-top:8px}.detail .center{text-align:left;padding-top:28px}.detail .rating-row{justify-content:flex-start}.detail .sticky-bar{background:0 0;border:0;max-width:460px;padding-left:24px;position:static}.shelf{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.grid-2{grid-template-columns:repeat(4,minmax(0,1fr))}.achievement-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.achievement-toasts{width:420px;top:24px;left:auto;right:24px}.controls{width:min(640px,100% - 48px);left:50%;right:auto;transform:translate(-50%)}.auth-card,.panel,.streak{max-width:720px}}.loading-modal{z-index:100;background:color-mix(in srgb, var(--paper) 72%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:16px;animation:.18s ease-out loading-fade;display:grid;position:fixed;inset:0}.loading-modal-panel{background:var(--white);box-shadow:var(--shadow-float);border-radius:28px;flex-direction:column;align-items:center;gap:18px;padding:28px 32px 24px;display:flex}.loading-modal-media{place-items:center;width:168px;height:168px;display:grid;position:relative}.loading-modal-ring{border:4px solid var(--line);border-top-color:var(--amber);border-right-color:var(--amber);border-radius:50%;animation:.9s linear infinite loading-spin;position:absolute;inset:0}.loading-modal-video{object-fit:cover;background:var(--paper);border-radius:50%;width:136px;height:136px}.loading-modal-label{font-family:var(--serif);color:var(--muted);margin:0;font-size:16px}@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes loading-fade{0%{opacity:0}}.pwa-notices{left:16px;right:16px;bottom:calc(var(--nav-h) + 12px);z-index:25;pointer-events:none;justify-content:center;display:flex;position:fixed}.shell.reading .pwa-notices{bottom:16px}.pwa-notice{pointer-events:auto;background:var(--white);border:1px solid var(--line);width:min(560px,100%);box-shadow:var(--shadow-float);border-radius:16px;align-items:center;gap:12px;padding:12px 10px 12px 14px;animation:.2s ease-out notice-in;display:flex}.pwa-notice-icon{color:var(--muted);flex:none;place-items:center;display:grid}.pwa-notice-icon svg{width:20px;height:20px}.pwa-notice-icon.spin svg{animation:1.2s linear infinite loading-spin}.pwa-notice.tone-warn .pwa-notice-icon,.pwa-notice.tone-ok .pwa-notice-icon{color:var(--amber)}.pwa-notice-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pwa-notice-body strong{font-size:14px}.pwa-notice-body .muted{font-size:13px;line-height:1.4}.pwa-notice-action{background:var(--ink);color:var(--on-ink);border:0;border-radius:20px;flex:none;padding:8px 14px;font-size:13px;font-weight:700}.pwa-notice-close{width:28px;height:28px;color:var(--faint);background:0 0;border:0;border-radius:14px;flex:none;place-items:center;display:grid}.pwa-notice-close:hover{color:var(--ink);background:var(--paper)}@keyframes notice-in{0%{opacity:0;transform:translateY(8px)}}.side-install{color:var(--muted);text-align:left;background:0 0;border:0;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.side-install:hover{background:var(--white);color:var(--ink)}.side-install svg{flex:none;width:18px;height:18px}.install-card p{margin:0 0 16px;font-size:14px;line-height:1.5}.btn.install-btn{width:auto;height:auto;min-height:44px;padding:10px 18px;font-size:15px}.btn.install-btn svg{width:18px;height:18px}.install-sheet-backdrop{z-index:70;background:#14121073;justify-content:center;align-items:flex-end;animation:.16s ease-out loading-fade;display:flex;position:fixed;inset:0}.install-sheet{width:min(520px,100%);max-height:calc(100dvh - 24px);padding:22px 22px calc(22px + env(safe-area-inset-bottom));background:var(--white);box-shadow:var(--shadow-float);border-radius:24px 24px 0 0;animation:.22s ease-out sheet-in;overflow-y:auto}.install-sheet-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.install-sheet-head h2{font-family:var(--serif);margin:4px 0 0;font-size:24px}.install-sheet-close{background:var(--paper);width:36px;height:36px;color:var(--muted);border:0;border-radius:18px;flex:none;place-items:center;display:grid}.install-sheet-close svg{width:18px;height:18px}.install-sheet-lead{margin:12px 0 18px;font-size:14px;line-height:1.5}.install-steps{counter-reset:step;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.install-step{align-items:flex-start;gap:14px;display:flex}.install-step>div{flex-direction:column;gap:3px;min-width:0;display:flex}.install-step strong{font-size:15px}.install-step .muted{font-size:13px;line-height:1.45}.install-step-icon{background:var(--amber-soft);width:44px;height:44px;color:var(--amber);counter-increment:step;border-radius:14px;flex:none;place-items:center;display:grid;position:relative}.install-step-icon svg{width:22px;height:22px}.install-step-icon:after{content:counter(step);background:var(--ink);width:20px;height:20px;color:var(--on-ink);border-radius:10px;place-items:center;font-size:11px;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.install-sheet-link{margin-top:18px}.install-sheet-link p{margin:0 0 8px;font-size:13px}.install-sheet-copy{align-items:center;gap:10px;display:flex}.install-sheet-copy code{overflow-wrap:anywhere;border:1px solid var(--line);-webkit-user-select:all;user-select:all;border-radius:12px;flex:1;min-width:0;padding:10px 12px;font-size:14px}.install-sheet-copy .btn-dark{flex:none;min-height:44px;padding:10px 16px;font-size:14px}.install-sheet-copy .btn-dark svg{width:16px;height:16px}.btn.install-sheet-done{width:100%;height:auto;min-height:48px;margin-top:20px;font-size:15px}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@media (min-width:600px){.install-sheet-backdrop{align-items:center;padding:24px}.install-sheet{border-radius:24px;padding-bottom:22px}}.offline-head p.muted{max-width:560px;margin:12px 0 20px;font-size:15px;line-height:1.6}.btn.offline-retry{flex:none;min-width:180px}@media (max-width:599px){.pwa-notice-body .wide-only{display:none}}@media (min-width:960px){.pwa-notices{bottom:24px;left:calc(var(--side) + 24px);right:24px}.shell.reading .pwa-notices{left:24px}.install-card{display:none}}@media (prefers-reduced-motion:reduce){.loading-modal-ring{animation-duration:2.4s}.loading-modal,.achievement-toast,.pwa-notice,.pwa-notice-icon.spin svg,.install-sheet,.install-sheet-backdrop{animation:none}}.visibility-choice{flex-wrap:wrap;gap:8px;display:flex}.visibility-choice .pill{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.visibility-choice .pill svg{flex:none;width:14px;height:14px}.visibility-choice .pill:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.visibility-choice .pill:disabled{cursor:wait;opacity:.7}.visibility-hint{margin:8px 0 0;font-size:12px;line-height:1.45}.visibility-badge{border:1px solid var(--line);background:var(--paper);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;margin-top:6px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.visibility-badge svg{width:12px;height:12px}.visibility-badge.visibility-public{background:var(--amber-soft);color:var(--amber);border-color:#0000}.currently-reading{margin:0 0 28px}.reading-card .meta-line{margin-top:6px}.reading-time{margin:0;font-size:12px}.reading-unavailable{color:var(--danger);margin:0;font-size:12px;font-weight:600}.reading-hidden .book-title{color:var(--muted);align-items:center;gap:6px;display:flex}.reading-hidden-lock{flex:none;width:14px;height:14px}.cover.cover-hidden{border:1px dashed var(--line);background:var(--paper);box-shadow:none;color:var(--faint);place-items:center;display:grid}.cover.cover-hidden:after{display:none}.cover.cover-hidden svg{width:32px;height:32px}.hidden-books-line{color:var(--muted);align-items:center;gap:8px;margin:8px 0 0;font-size:14px;font-weight:600;display:flex}.hidden-books-line svg{width:16px;height:16px}.text-link-btn{cursor:pointer;background:0 0;border:0;padding:8px 0}.visibility-intro{background:var(--amber-soft);border-radius:16px;gap:12px;max-width:720px;margin:12px 24px 4px;padding:14px 16px;display:flex}.visibility-intro>svg{width:18px;height:18px;color:var(--amber);flex:none;margin-top:2px}.visibility-intro strong{font-size:14px}.visibility-intro p{margin:4px 0 10px;font-size:13px;line-height:1.5}.visibility-intro-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.visibility-prompts{z-index:58;pointer-events:none;justify-content:center;display:flex;position:fixed;top:12px;left:16px;right:16px}.visibility-prompt{pointer-events:auto;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--amber);width:min(440px,100%);box-shadow:var(--shadow-float);border-radius:16px;flex-direction:column;gap:10px;padding:14px 12px 14px 16px;animation:.22s ease-out toast-in;display:flex}.visibility-prompt-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.visibility-prompt-kicker{color:var(--amber);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.visibility-prompt h2{font-family:var(--serif);margin:2px 0 0;font-size:17px}.visibility-prompt-book{overflow-wrap:anywhere;margin:2px 0 0;font-size:13px}.visibility-prompt-note{margin:0;font-size:12px}.visibility-prompt-saved{color:var(--amber);align-items:center;gap:6px;margin:0;font-size:13px;font-weight:700;display:inline-flex}.visibility-prompt-saved svg{width:15px;height:15px}.book-card-slot{scroll-snap-align:start;flex:none;width:150px;position:relative}.book-card-slot .book-card{width:auto}.entry-menu-btn{border:1px solid var(--line);background:var(--white);height:32px;color:var(--ink);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:4px;padding:0 9px;display:inline-flex}.entry-menu-btn svg{width:16px;height:16px}.entry-menu-btn .entry-menu-visibility{width:14px;height:14px;color:var(--muted)}.entry-menu-btn[aria-expanded=true],.entry-menu-btn:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.book-card-slot .entry-menu-btn{position:absolute;top:8px;right:8px}.entry-menu-error{margin-top:6px}.shelf-finish-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.shelf-finish-head>div{min-width:0}.shelf-finish-head .entry-menu-btn{box-shadow:none;flex:none}.shelf-note{max-width:760px;margin:6px 0 0;font-size:13px;line-height:1.5}.entry-menu{z-index:65;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow-float);border-radius:16px;flex-direction:column;padding:6px;animation:.16s ease-out toast-in;display:flex;position:fixed}.entry-menu-label{color:var(--faint);letter-spacing:.05em;text-transform:uppercase;margin:6px 10px 4px;font-size:11px;font-weight:700}.entry-menu-item{color:var(--ink);text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:18px minmax(0,1fr) 16px;align-items:start;gap:10px;padding:10px;display:grid}.entry-menu-item>svg{width:18px;height:18px;color:var(--muted);margin-top:1px}.entry-menu-item strong{font-size:14px;display:block}.entry-menu-item small{color:var(--muted);margin-top:2px;font-size:12px;line-height:1.4;display:block}.entry-menu-item:hover,.entry-menu-item:focus-visible{background:var(--paper);outline:none}.entry-menu-item.on strong,.entry-menu-item.on>svg,.entry-menu-check{color:var(--amber)}.entry-menu-item.danger,.entry-menu-item.danger>svg{color:var(--danger)}.entry-menu-sep{background:var(--line);height:1px;margin:4px 6px}.confirm-title{font-family:var(--serif);margin:0;font-size:22px}.confirm-body{margin:10px 0 20px;font-size:14px;line-height:1.5}.confirm-actions{gap:12px;display:flex}.confirm-actions .btn{flex:1;width:auto;height:auto;min-height:48px;padding:12px 16px;font-size:15px}.book-entry{gap:16px;padding:18px 20px;display:grid}.book-entry-line{margin:6px 0 10px;font-weight:600}.book-entry .track{background:var(--line)}.book-entry-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:600}.settings-back{align-items:center;gap:6px;margin-bottom:8px;display:inline-flex}.settings-lead{margin:0 0 8px;font-size:14px;line-height:1.5}.settings-field{border:0;border-top:1px solid var(--line);min-width:0;margin:0;padding:16px 0}.settings-field legend{float:left;width:100%;padding:0;font-size:15px;font-weight:700}.settings-field>p.faint{clear:both;margin:0;padding:4px 0 12px;font-size:13px}.settings-field .visibility-prompt-saved{margin-top:10px}.settings-note{margin:12px 0 0;font-size:12px;line-height:1.5}.btn-ghost.settings-link{min-height:52px}@media (min-width:720px){.book-entry{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start}}@media (min-width:960px){.book-card-slot{width:auto}.visibility-prompts{width:440px;top:24px;left:auto;right:24px}}@media (prefers-reduced-motion:reduce){.visibility-prompt,.entry-menu{animation:none}}
