@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-italic-BHALq22K.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-italic-B8-t4Nou.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-italic-D2JnYqd-.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=charcoal]{--bg: #0c0c0d;--surface: #151516;--surface-2: #1c1c1e;--ink: #f4f2ed;--muted: #8c8b87;--faint: #55544f;--hairline: rgba(244, 242, 237, .09);--hairline-strong: rgba(244, 242, 237, .16);--danger: #e5584f;--shadow: 0 18px 50px rgba(0, 0, 0, .55);color-scheme:dark}[data-theme=oled]{--bg: #000000;--surface: #0b0b0b;--surface-2: #141414;--ink: #f5f3ee;--muted: #8e8d89;--faint: #4d4c49;--hairline: rgba(245, 243, 238, .09);--hairline-strong: rgba(245, 243, 238, .16);--shadow: 0 18px 50px rgba(0, 0, 0, .8);color-scheme:dark}[data-theme=paper]{--bg: #f4f1ea;--surface: #fcfaf4;--surface-2: #ece8df;--ink: #1a1813;--muted: #6c685e;--faint: #a8a397;--hairline: rgba(26, 24, 19, .1);--hairline-strong: rgba(26, 24, 19, .18);--danger: #b3332b;--shadow: 0 18px 50px rgba(60, 50, 30, .18);color-scheme:light}:root{--serif: "Fraunces Variable", "Iowan Old Style", Georgia, serif;--sans: "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--radius: 14px;--radius-sm: 8px;--sidebar: 232px;--bar: 84px;--tabbar: 0px;--gutter: 40px;--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01";overflow:hidden}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}input,select,textarea{font:inherit;color:inherit}img{display:block}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}::selection{background:var(--ink);color:var(--bg)}.num{font-variant-numeric:tabular-nums}.serif{font-family:var(--serif)}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.shell{display:grid;grid-template-columns:var(--sidebar) 1fr;grid-template-rows:1fr auto;height:100%}.sidebar{grid-row:1;border-right:1px solid var(--hairline);display:flex;flex-direction:column;padding:28px 16px 16px;gap:4px;overflow-y:auto}.wordmark{font-family:var(--serif);font-size:26px;font-weight:500;letter-spacing:-.02em;padding:0 12px 22px;font-variation-settings:"opsz" 72,"SOFT" 50}.nav-link{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--muted);font-weight:500;transition:color .15s,background .15s}.nav-link:hover{color:var(--ink)}.nav-link.active{color:var(--ink);background:var(--surface-2)}.nav-link svg{width:19px;height:19px}.sidebar-foot{margin-top:auto;padding:12px;font-size:12px;color:var(--muted);border-top:1px solid var(--hairline)}.sidebar-foot select{width:100%;margin-top:6px}.main{grid-row:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;position:relative}.page{padding:36px var(--gutter) calc(var(--bar) + 48px);max-width:1500px;margin:0 auto;animation:fade-in .25s var(--ease)}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}}.page-title{font-family:var(--serif);font-weight:450;font-size:clamp(30px,4vw,44px);letter-spacing:-.025em;line-height:1.05;margin:0 0 6px;font-variation-settings:"opsz" 144}.page-sub{color:var(--muted);margin:0 0 28px}.section-label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;display:flex;justify-content:space-between;align-items:baseline}.section-label a{letter-spacing:.04em;text-transform:none;font-weight:500;font-size:13px}.section-label a:hover{color:var(--ink)}.section{margin-bottom:44px}.hairline{height:1px;background:var(--hairline);border:0;margin:0}.cover{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hairline);flex-shrink:0}.cover img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s}.cover img.loaded{opacity:1}.cover .cover-fallback{position:absolute;inset:0;display:flex;align-items:flex-end;padding:10%;font-family:var(--serif);font-size:clamp(11px,1.2vw,16px);line-height:1.15;color:var(--muted)}.cover .bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:#00000073}.cover .bar>span{display:block;height:100%;background:#f4f2ed}.cover .done{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:#0c0c0dcc;color:#f4f2ed;display:grid;place-items:center}.cover .done svg{width:13px;height:13px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:28px 22px}.card{display:flex;flex-direction:column;gap:10px;min-width:0}.card .cover{transition:transform .25s var(--ease),box-shadow .25s}.card:hover .cover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--hairline),var(--shadow)}.card-play{position:absolute;right:8px;bottom:10px;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;opacity:0;transform:translateY(4px);transition:opacity .18s,transform .18s var(--ease)}.card-play svg{width:16px;height:16px}.card:hover .card-play,.card-play:focus-visible{opacity:1;transform:none}.card-title{font-weight:550;font-size:14px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-sub{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:-6px}.shelf{display:grid;grid-auto-flow:column;grid-auto-columns:160px;gap:22px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:6px;margin:0 calc(var(--gutter) * -1);padding-left:var(--gutter);padding-right:var(--gutter);scroll-padding:0 var(--gutter);scrollbar-width:none}.shelf::-webkit-scrollbar{display:none}.shelf>*{scroll-snap-align:start}.continue{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.continue-card{display:grid;grid-template-columns:76px 1fr auto;gap:16px;align-items:center;padding:12px;border-radius:var(--radius);background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);transition:background .15s;min-width:0}.continue-card:hover{background:var(--surface-2)}.continue-card .meta{min-width:0}.continue-card .t{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-card .a{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-card .p{margin-top:8px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.meter{flex:1;height:3px;border-radius:2px;background:var(--hairline-strong);overflow:hidden}.meter>span{display:block;height:100%;background:var(--ink);border-radius:2px}.round-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--bg);transition:transform .12s;flex-shrink:0}.round-btn:active{transform:scale(.94)}.round-btn svg{width:17px;height:17px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 20px;border-radius:999px;font-weight:600;font-size:14px;background:var(--ink);color:var(--bg);transition:opacity .15s,transform .12s;white-space:nowrap}.btn:hover{opacity:.9}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:default}.btn svg{width:16px;height:16px}.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--hairline-strong)}.btn.ghost:hover{background:var(--surface-2);opacity:1}.btn.danger{background:transparent;color:var(--danger);box-shadow:inset 0 0 0 1px var(--hairline-strong)}.btn.small{height:34px;padding:0 14px;font-size:13px}.icon-btn{width:38px;height:38px;display:inline-grid;place-items:center;border-radius:50%;color:var(--ink);transition:background .15s,color .15s;position:relative}.icon-btn:hover{background:var(--surface-2)}.icon-btn svg{width:20px;height:20px}.icon-btn.muted{color:var(--muted)}.icon-btn.muted:hover,.icon-btn.on{color:var(--ink)}.icon-btn .badge{position:absolute;bottom:0;left:50%;transform:translate(-50%);font-size:9.5px;font-weight:700;white-space:nowrap}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{height:32px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:500;color:var(--muted);box-shadow:inset 0 0 0 1px var(--hairline-strong);transition:all .15s;display:inline-flex;align-items:center;gap:6px}.chip:hover{color:var(--ink)}.chip.on{background:var(--ink);color:var(--bg);box-shadow:none}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.input,.select{height:46px;padding:0 14px;border-radius:10px;border:0;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hairline);outline:none;width:100%;transition:box-shadow .15s}.input:focus,.select:focus{box-shadow:inset 0 0 0 1.5px var(--ink)}.select{appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}.select.compact{height:34px;border-radius:999px;font-size:13px;padding:0 32px 0 14px}.segmented{display:inline-flex;padding:3px;border-radius:999px;background:var(--surface-2);gap:2px}.segmented button{height:30px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:500;color:var(--muted)}.segmented button.on{background:var(--ink);color:var(--bg)}.notice{padding:14px 16px;border-radius:var(--radius);background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);color:var(--muted);display:flex;gap:12px;align-items:center;justify-content:space-between}.notice.error{color:var(--danger)}.empty{padding:60px 0;text-align:center;color:var(--muted)}.empty .serif{font-size:22px;color:var(--ink);margin-bottom:6px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--hairline-strong);border-top-color:var(--ink);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{to{background-position:-200% 0}}.rows{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--hairline);min-width:0}.row:last-child{border-bottom:0}.row.link:hover{background:var(--surface)}.row .grow{flex:1;min-width:0}.row .t{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .s{color:var(--muted);font-size:13px}.row.current .t{font-weight:650}.detail{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:48px;align-items:start}.detail-cover{position:sticky;top:36px}.detail-cover .cover{border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--hairline),var(--shadow)}.detail h1{font-family:var(--serif);font-weight:450;font-size:clamp(30px,3.6vw,48px);letter-spacing:-.025em;line-height:1.05;margin:0 0 8px;font-variation-settings:"opsz" 144}.detail .subtitle{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:18px;margin:0 0 14px}.byline{color:var(--muted);margin-bottom:4px}.byline a{color:var(--ink)}.byline a:hover{text-decoration:underline;text-underline-offset:3px}.facts{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--muted);font-size:13px;margin:16px 0 22px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:30px}.progress-line{display:flex;align-items:center;gap:12px;margin:-12px 0 28px;font-size:13px;color:var(--muted);max-width:460px}.description{color:var(--ink);opacity:.88;line-height:1.65;max-width:70ch;white-space:pre-line}.description.clamped{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.link-btn{color:var(--muted);font-size:13px;font-weight:600;margin-top:8px}.link-btn:hover{color:var(--ink)}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--hairline);margin:36px 0 8px}.tabs button{padding:10px 0;font-weight:550;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.on{color:var(--ink);border-color:var(--ink)}.playerbar{grid-column:1 / -1;grid-row:2;height:var(--bar);border-top:1px solid var(--hairline);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(20px) saturate(1.4);display:grid;grid-template-columns:minmax(200px,1fr) minmax(360px,2fr) minmax(200px,1fr);align-items:center;gap:24px;padding:0 20px;z-index:20}.pb-now{display:flex;align-items:center;gap:14px;min-width:0;text-align:left}.pb-now .cover{width:54px;border-radius:6px}.pb-now .t{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pb-now .a{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pb-center{display:flex;flex-direction:column;align-items:center;gap:4px}.pb-controls{display:flex;align-items:center;gap:10px}.pb-controls .round-btn{width:40px;height:40px}.pb-scrub{display:flex;align-items:center;gap:10px;width:100%;font-size:11.5px;color:var(--muted)}.pb-scrub .num{min-width:52px}.pb-scrub .num:first-child{text-align:right}.pb-right{display:flex;justify-content:flex-end;align-items:center;gap:4px}.rate-btn{height:30px;min-width:48px;padding:0 8px;border-radius:999px;font-size:12.5px;font-weight:650;box-shadow:inset 0 0 0 1px var(--hairline-strong)}.rate-btn:hover{background:var(--surface-2)}.scrubber{position:relative;flex:1;height:16px;display:flex;align-items:center;cursor:pointer;touch-action:none}.scrubber .track{position:relative;width:100%;height:4px;border-radius:2px;background:var(--hairline-strong);overflow:hidden}.scrubber .fill{position:absolute;inset:0 auto 0 0;background:var(--ink);border-radius:2px}.scrubber .ticks span{position:absolute;top:0;bottom:0;width:2px;background:var(--bg);opacity:.85}.scrubber .thumb{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--ink);transform:translate(-50%) scale(0);transition:transform .12s}.scrubber:hover .thumb,.scrubber.dragging .thumb,.scrubber:focus-visible .thumb{transform:translate(-50%) scale(1)}.scrubber .hover-tip{position:absolute;bottom:20px;transform:translate(-50%);background:var(--ink);color:var(--bg);font-size:11px;font-weight:600;padding:3px 7px;border-radius:6px;white-space:nowrap;pointer-events:none;max-width:240px;overflow:hidden;text-overflow:ellipsis}.fullplayer{position:fixed;inset:0;z-index:50;background:var(--bg);display:grid;grid-template-columns:1fr minmax(320px,420px);animation:rise .32s var(--ease)}@keyframes rise{0%{transform:translateY(24px);opacity:0}}.fp-backdrop{position:absolute;inset:0;overflow:hidden;pointer-events:none}.fp-backdrop img{width:100%;height:100%;object-fit:cover;filter:blur(80px) saturate(.6);opacity:.14;transform:scale(1.3)}.fp-main{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:26px;min-height:0}.fp-top{position:absolute;top:18px;left:18px;right:18px;display:flex;justify-content:space-between}.fp-cover{width:min(44vh,440px,80vw)}.fp-cover .cover{border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--hairline),var(--shadow)}.fp-titles{text-align:center;max-width:640px}.fp-titles .chapter{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.fp-titles h2{font-family:var(--serif);font-weight:450;font-size:clamp(24px,3vw,34px);letter-spacing:-.02em;margin:0;line-height:1.1}.fp-titles .a{color:var(--muted);margin-top:6px}.fp-scrub{width:min(640px,100%)}.fp-times{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:4px}.fp-controls{display:flex;align-items:center;gap:18px}.fp-controls .icon-btn{width:52px;height:52px}.fp-controls .icon-btn svg{width:26px;height:26px}.fp-controls .round-btn{width:72px;height:72px}.fp-controls .round-btn svg{width:28px;height:28px}.fp-extras{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.fp-side{position:relative;border-left:1px solid var(--hairline);display:flex;flex-direction:column;min-height:0;background:color-mix(in srgb,var(--surface) 70%,transparent)}.fp-side .tabs{margin:0;padding:18px 22px 0}.fp-side .list{overflow-y:auto;padding:4px 22px 22px;flex:1}.chapter-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:11px 8px;border-bottom:1px solid var(--hairline);text-align:left;width:100%;border-radius:6px;font-size:14px}.chapter-row:hover{background:var(--surface-2)}.chapter-row .ct{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chapter-row.past .ct{color:var(--muted)}.chapter-row.current{font-weight:650}.chapter-row.current .ct:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ink);margin-right:8px;vertical-align:middle}.popover-wrap{position:relative}.popover{position:absolute;bottom:calc(100% + 10px);right:0;min-width:200px;background:var(--surface);border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--hairline-strong),var(--shadow);padding:6px;z-index:60;animation:pop .16s var(--ease)}.popover.down{bottom:auto;top:calc(100% + 8px)}.popover.center{right:auto;left:50%;transform:translate(-50%)}@keyframes pop{0%{opacity:0;translate:0 4px}}.popover .label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 10px 6px}.menu-item{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:9px 10px;border-radius:8px;font-size:14px;text-align:left}.menu-item:hover{background:var(--surface-2)}.menu-item.on{font-weight:650}.menu-item svg{width:15px;height:15px}.rate-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px}.rate-grid button{height:34px;border-radius:8px;font-size:13px;font-weight:600}.rate-grid button:hover{background:var(--surface-2)}.rate-grid button.on{background:var(--ink);color:var(--bg)}.rate-fine{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 4px 4px}.login{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr;overflow-y:auto}.login-art{position:relative;border-right:1px solid var(--hairline);display:flex;flex-direction:column;justify-content:space-between;padding:48px;overflow:hidden}.login-art h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,6vw,84px);line-height:.98;letter-spacing:-.035em;margin:0;font-variation-settings:"opsz" 144,"SOFT" 30}.login-art h1 em{font-style:italic;color:var(--muted)}.spines{display:flex;align-items:flex-end;gap:6px;height:180px}.spines span{display:block;width:22px;border-radius:3px 3px 1px 1px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hairline)}.login-form{display:flex;flex-direction:column;justify-content:center;padding:48px clamp(24px,6vw,96px);gap:18px;max-width:560px}.login-form h2{font-family:var(--serif);font-weight:450;font-size:30px;margin:0 0 4px;letter-spacing:-.02em}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:40px}.stat{padding:18px 20px;border-radius:var(--radius);background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline)}.stat .v{font-family:var(--serif);font-size:34px;font-weight:450;letter-spacing:-.02em;line-height:1.1}.stat .l{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-top:4px}.bars{display:flex;align-items:flex-end;gap:3px;height:160px;padding-top:20px}.bars .b{flex:1;background:var(--ink);border-radius:2px 2px 0 0;min-height:1px;opacity:.85;position:relative}.bars .b.zero{background:var(--hairline-strong)}.bars .b:hover{opacity:1}.bars-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:8px}.settings{max-width:720px}.setting{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:16px 0;border-bottom:1px solid var(--hairline)}.setting .d{font-size:13px;color:var(--muted)}.switch{width:44px;height:26px;border-radius:999px;background:var(--hairline-strong);position:relative;transition:background .18s;flex-shrink:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--bg);transition:transform .2s var(--ease)}.switch.on{background:var(--ink)}.switch.on:after{transform:translate(18px)}.theme-swatches{display:flex;gap:10px}.swatch{width:78px;border-radius:10px;padding:8px;font-size:11px;font-weight:600;text-align:left;box-shadow:inset 0 0 0 1px var(--hairline-strong)}.swatch.on{box-shadow:inset 0 0 0 2px var(--ink)}.swatch i{display:block;height:30px;border-radius:6px;margin-bottom:6px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:26px}.search-box{position:relative;flex:1;max-width:560px}.search-box svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted)}.search-box .input{padding-left:42px;border-radius:999px}.author-card .cover{border-radius:50%}.author-card{text-align:center}kbd{font-family:var(--sans);font-size:11px;font-weight:600;padding:2px 6px;border-radius:5px;box-shadow:inset 0 0 0 1px var(--hairline-strong);color:var(--muted)}.tabbar,.mini,.mobile-head{display:none}@media(max-width:860px){:root{--gutter: 18px;--tabbar: 62px;--bar: 64px}.shell{grid-template-columns:1fr;grid-template-rows:1fr}.sidebar,.playerbar{display:none}.main{padding-bottom:env(safe-area-inset-bottom)}.page{padding-top:18px;padding-bottom:calc(var(--tabbar) + var(--bar) + 40px + env(safe-area-inset-bottom))}.mobile-head{display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) var(--gutter) 0}.mobile-head .wordmark{padding:0;font-size:22px}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(20px);border-top:1px solid var(--hairline);z-index:30}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;font-weight:600;color:var(--muted)}.tabbar a.active{color:var(--ink)}.tabbar svg{width:22px;height:22px}.mini{display:grid;grid-template-columns:44px 1fr auto auto;gap:12px;align-items:center;position:fixed;left:8px;right:8px;bottom:calc(var(--tabbar) + env(safe-area-inset-bottom) + 8px);height:var(--bar);padding:0 8px 0 10px;border-radius:var(--radius);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hairline),var(--shadow);z-index:31;overflow:hidden}.mini .cover{width:44px;border-radius:6px}.mini .t{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini .a{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini .mini-bar{position:absolute;left:0;right:0;bottom:0;height:2px}.mini .mini-bar span{display:block;height:100%;background:var(--ink)}.grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:22px 14px}.shelf{grid-auto-columns:136px;gap:14px}.continue{grid-template-columns:1fr}.detail{grid-template-columns:1fr;gap:24px}.detail-cover{position:static;width:min(260px,70vw);margin:0 auto}.fullplayer{display:block;overflow-y:auto}.fp-backdrop{position:fixed}.fp-main{padding:calc(64px + env(safe-area-inset-top)) 22px 28px;justify-content:center;min-height:100svh;gap:22px}.fp-cover{width:min(78vw,46vh)}.fp-side{border-left:0;border-top:1px solid var(--hairline);max-height:none}.fp-side .list{overflow:visible}.login{grid-template-columns:1fr}.login-art{border-right:0;padding:32px 24px 8px;min-height:auto}.login-art .spines{display:none}.login-form{padding:16px 24px 48px;justify-content:flex-start}.popover{position:fixed;left:8px!important;right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;top:auto!important;transform:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
