:root{--mb-bg: #f5f3ee;--mb-bg-2: #eeebe4;--mb-surface: #fbfaf7;--mb-surface-2: #f2efe8;--mb-surface-3: #e7e3da;--mb-text: #18181c;--mb-text-2: #55555e;--mb-text-3: #85858d;--mb-line: rgba(24, 24, 28, .09);--mb-line-strong: rgba(24, 24, 28, .16);--mb-gold: #b8955a;--mb-gold-strong: #8a6c3c;--mb-good: #1f8a52;--mb-good-soft: rgba(31, 138, 82, .1);--mb-fuzzy: #b86e07;--mb-fuzzy-soft: rgba(208, 128, 10, .12);--mb-bad: #c93d3d;--mb-bad-soft: rgba(201, 61, 61, .1);--mb-star: #d99a0b;--mb-r-sm: 8px;--mb-r: 12px;--mb-r-lg: 20px;--mb-shadow: 0 1px 2px rgba(24, 24, 28, .04), 0 8px 24px -12px rgba(24, 24, 28, .12);--mb-shadow-lg: 0 24px 64px -24px rgba(24, 24, 28, .28);--mb-font: "Inter Variable", -apple-system, "Segoe UI Variable Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--mb-font-serif-zh: "MOBEI Serif SC", "Noto Serif SC", "Songti SC", "STSong", serif;--mb-font-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--mb-ease: cubic-bezier(.16, 1, .3, 1);--mb-ease-in: cubic-bezier(.7, 0, .84, 0);--mb-ease-std: cubic-bezier(.2, 0, 0, 1);--mb-t-press: .12s;--mb-t-fast: .18s;--mb-t-base: .26s;--mb-t-slow: .42s;--mb-t-page: .52s;--mb-lift: 10px;color-scheme:light}:root[data-theme=dark]{--mb-bg: #0b0b0c;--mb-bg-2: #101012;--mb-surface: #151517;--mb-surface-2: #1b1b1e;--mb-surface-3: #242428;--mb-text: #f2ede4;--mb-text-2: #b5afa5;--mb-text-3: #7d786f;--mb-line: rgba(242, 237, 228, .08);--mb-line-strong: rgba(242, 237, 228, .15);--mb-gold: #d4b273;--mb-gold-strong: #e6cb94;--mb-good: #4fc985;--mb-good-soft: rgba(79, 201, 133, .13);--mb-fuzzy: #eda545;--mb-fuzzy-soft: rgba(237, 165, 69, .14);--mb-bad: #ef6b6b;--mb-bad-soft: rgba(239, 107, 107, .14);--mb-star: #f2c14e;--mb-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 28px -12px rgba(0, 0, 0, .6);--mb-shadow-lg: 0 28px 72px -24px rgba(0, 0, 0, .8);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--mb-bg: #0b0b0c;--mb-bg-2: #101012;--mb-surface: #151517;--mb-surface-2: #1b1b1e;--mb-surface-3: #242428;--mb-text: #f2ede4;--mb-text-2: #b5afa5;--mb-text-3: #7d786f;--mb-line: rgba(242, 237, 228, .08);--mb-line-strong: rgba(242, 237, 228, .15);--mb-gold: #d4b273;--mb-gold-strong: #e6cb94;--mb-good: #4fc985;--mb-good-soft: rgba(79, 201, 133, .13);--mb-fuzzy: #eda545;--mb-fuzzy-soft: rgba(237, 165, 69, .14);--mb-bad: #ef6b6b;--mb-bad-soft: rgba(239, 107, 107, .14);--mb-star: #f2c14e;--mb-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 28px -12px rgba(0, 0, 0, .6);--mb-shadow-lg: 0 28px 72px -24px rgba(0, 0, 0, .8);color-scheme:dark}}[data-product=words]{--mb-accent: #1769aa;--mb-accent-hover: #115a94;--mb-accent-text: #135e99;--mb-accent-soft: rgba(23, 105, 170, .1);--mb-on-accent: #ffffff}[data-product=learn]{--mb-accent: #2c6650;--mb-accent-hover: #234f3f;--mb-accent-text: #275c48;--mb-accent-soft: rgba(44, 102, 80, .1);--mb-on-accent: #ffffff}[data-product=echo]{--mb-accent: #5b55d6;--mb-accent-hover: #4c46c6;--mb-accent-text: #4a43c4;--mb-accent-soft: rgba(91, 85, 214, .1);--mb-on-accent: #ffffff}:root[data-theme=dark][data-product=words],:root[data-theme=dark] [data-product=words]{--mb-accent: #6cb8f0;--mb-accent-hover: #8ac8f4;--mb-accent-text: #8ac8f4;--mb-accent-soft: rgba(108, 184, 240, .14);--mb-on-accent: #0b0b0c}:root[data-theme=dark][data-product=learn],:root[data-theme=dark] [data-product=learn]{--mb-accent: #8cc3a2;--mb-accent-hover: #a5d3b7;--mb-accent-text: #a5d3b7;--mb-accent-soft: rgba(140, 195, 162, .14);--mb-on-accent: #0b0b0c}:root[data-theme=dark][data-product=echo],:root[data-theme=dark] [data-product=echo]{--mb-accent: #8a86f0;--mb-accent-hover: #a29ff4;--mb-accent-text: #aaa7ff;--mb-accent-soft: rgba(138, 134, 240, .16);--mb-on-accent: #0b0b0c}@media(prefers-color-scheme:dark){:root:not([data-theme=light])[data-product=words]{--mb-accent: #6cb8f0;--mb-accent-hover: #8ac8f4;--mb-accent-text: #8ac8f4;--mb-accent-soft: rgba(108, 184, 240, .14);--mb-on-accent: #0b0b0c}:root:not([data-theme=light])[data-product=learn]{--mb-accent: #8cc3a2;--mb-accent-hover: #a5d3b7;--mb-accent-text: #a5d3b7;--mb-accent-soft: rgba(140, 195, 162, .14);--mb-on-accent: #0b0b0c}:root:not([data-theme=light])[data-product=echo]{--mb-accent: #8a86f0;--mb-accent-hover: #a29ff4;--mb-accent-text: #aaa7ff;--mb-accent-soft: rgba(138, 134, 240, .16);--mb-on-accent: #0b0b0c}}@keyframes mb-enter{0%{opacity:0;transform:translateY(var(--mb-lift))}to{opacity:1;transform:none}}@keyframes mb-fade{0%{opacity:0}to{opacity:1}}@keyframes mb-sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes mb-pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@font-face{font-family:"MOBEI Serif SC";src:url(/assets/mobei-serif-sc-DDMNWCqD.woff2) format("woff2");font-weight:500 700;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:var(--mb-font);color:var(--mb-text);background:var(--mb-bg);font-synthesis:none;-webkit-font-smoothing:antialiased;overflow-x:hidden}button,input{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer;padding:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--mb-accent);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.boot{display:grid;place-items:center;min-height:100dvh;color:var(--mb-text-3);font-size:14px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;height:44px;padding:0 10px;border-radius:var(--mb-r);color:var(--mb-text-2);transition:background var(--mb-t-fast) var(--mb-ease-std),color var(--mb-t-fast) var(--mb-ease-std)}.icon-btn:hover:not(:disabled){background:var(--mb-surface-2);color:var(--mb-text)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn[aria-expanded=true]{background:var(--mb-accent-soft);color:var(--mb-accent-text)}.icon-btn.labelled span{font-size:14px}.primary-btn{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 20px;border-radius:var(--mb-r);background:var(--mb-accent);color:var(--mb-on-accent);font-size:15px;font-weight:500;transition:background var(--mb-t-fast) var(--mb-ease-std),transform var(--mb-t-press) var(--mb-ease-std)}.primary-btn:hover{background:var(--mb-accent-hover)}.primary-btn:active,.icon-btn:active:not(:disabled){transform:scale(.97)}.bar{display:block;height:3px;border-radius:3px;background:var(--mb-line-strong);overflow:hidden}.bar>i{display:block;height:100%;background:var(--mb-accent);border-radius:inherit}.segmented{display:inline-flex;padding:3px;gap:2px;border-radius:var(--mb-r);background:var(--mb-surface-2);max-width:100%}.segmented button{min-height:38px;padding:0 14px;border-radius:9px;font-size:14px;color:var(--mb-text-2);white-space:nowrap}.segmented button[aria-checked=true]{background:var(--mb-accent-soft);color:var(--mb-accent-text);font-weight:500}.switch{position:relative;flex:none;width:48px;height:28px;border-radius:14px;background:var(--mb-surface-3);transition:background var(--mb-t-fast) var(--mb-ease-std)}.switch i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform var(--mb-t-fast) var(--mb-ease)}.switch[aria-checked=true]{background:var(--mb-accent)}.switch[aria-checked=true] i{transform:translate(20px)}.setting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--mb-line);flex-wrap:wrap}.setting>span{font-size:15px}.setting small{display:block;margin-top:3px;font-size:12px;color:var(--mb-text-3)}.banner{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:10px 12px 10px 16px;border-radius:var(--mb-r);background:var(--mb-text);color:var(--mb-bg);font-size:14px;white-space:nowrap;box-shadow:var(--mb-shadow-lg)}.banner button{padding:6px 12px;border-radius:var(--mb-r-sm);background:var(--mb-accent);color:var(--mb-on-accent)}.banner-error{background:var(--mb-bad);color:#fff;top:12px;bottom:auto}.shelf{max-width:880px;margin:0 auto;padding:0 32px;padding-left:max(32px,env(safe-area-inset-left));padding-right:max(32px,env(safe-area-inset-right))}.shelf-top{display:flex;align-items:center;justify-content:space-between;gap:12px;height:72px;padding-top:env(safe-area-inset-top)}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand strong{display:block;font-family:var(--mb-font-serif-zh);font-weight:600;font-size:17px;letter-spacing:.04em}.brand small{display:block;font-size:11px;letter-spacing:.08em;color:var(--mb-text-3)}.shelf-actions{display:flex;gap:4px}.shelf-main{padding-bottom:32px}.notice{margin:8px 0 0;padding:12px 16px;border-radius:var(--mb-r);background:var(--mb-fuzzy-soft);color:var(--mb-text);font-size:14px;line-height:1.6;overflow-wrap:anywhere}.eyebrow{margin:0 0 10px;font-size:13px;letter-spacing:.12em;color:var(--mb-accent-text)}.resume{padding:40px 0 36px;border-bottom:1px solid var(--mb-line)}.resume h1{margin:0 0 14px;font-family:var(--mb-font-serif-zh);font-weight:600;font-size:clamp(28px,5vw,40px);line-height:1.25;letter-spacing:.02em;overflow-wrap:anywhere}.resume-label{display:block;margin-bottom:6px;font-family:var(--mb-font);font-size:15px;font-weight:400;letter-spacing:0;color:var(--mb-text-2)}.resume-meta{display:grid;gap:10px;max-width:420px;margin-bottom:24px;font-size:14px;color:var(--mb-text-2)}.section-title,.collection-head h2{margin:0;font-size:13px;font-weight:500;letter-spacing:.12em;color:var(--mb-text-3)}.recent{padding:28px 0 8px}.recent ul{list-style:none;margin:12px 0 0;padding:0}.recent a{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--mb-line)}.recent li:last-child a{border-bottom:0}.recent-label{font-size:13px;color:var(--mb-text-3)}.recent-title{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-meta{font-size:13px;color:var(--mb-text-3);white-space:nowrap}.recent a:hover .recent-title,.chapter-list a:hover .title{color:var(--mb-accent-text)}.collection{padding-top:36px}.collection-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}.collection-head h2{font-family:var(--mb-font-serif-zh);font-size:24px;font-weight:600;letter-spacing:.04em;color:var(--mb-text)}.collection-head p{margin:8px 0 0;max-width:460px;font-size:14px;line-height:1.7;color:var(--mb-text-2)}.collection-count{display:block;color:var(--mb-text-3);font-size:13px}.search{position:relative;display:flex;align-items:center;width:260px;max-width:100%;height:44px;padding:0 8px 0 14px;gap:8px;border:1px solid var(--mb-line-strong);border-radius:var(--mb-r);background:var(--mb-surface);color:var(--mb-text-3)}.search:focus-within{border-color:var(--mb-accent)}.search input{flex:1;min-width:0;height:100%;border:0;outline:0;background:none;font-size:16px;color:var(--mb-text)}.search input::-webkit-search-cancel-button{display:none}.search-clear{display:grid;place-items:center;width:32px;height:32px;border-radius:8px}.tabs{display:flex;gap:6px;margin:20px 0 6px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border-radius:19px;font-size:14px;color:var(--mb-text-2);border:1px solid transparent}.tabs button small{font-size:12px;color:var(--mb-text-3)}.tabs button[aria-selected=true]{background:var(--mb-accent-soft);color:var(--mb-accent-text)}.tabs button[aria-selected=true] small{color:inherit}.chapter-list{list-style:none;margin:8px 0 0;padding:0}.chapter-list a{display:grid;grid-template-columns:52px minmax(0,1fr) auto 72px;align-items:center;gap:14px;min-height:56px;padding:8px 4px;border-bottom:1px solid var(--mb-line)}.chapter-list .num{font-variant-numeric:tabular-nums;font-size:14px;color:var(--mb-text-3);white-space:nowrap}.chapter-list .title{font-size:16px;line-height:1.45;overflow-wrap:anywhere}.chapter-list .state{font-size:13px;color:var(--mb-text-3);white-space:nowrap}.chapter-list .started .state{color:var(--mb-accent-text)}.chapter-list .done .state{color:var(--mb-good)}.chapter-list .done .bar>i{background:var(--mb-good)}.empty{padding:32px 0;color:var(--mb-text-3);font-size:14px;text-align:center}.shelf-foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:24px 0 calc(32px + env(safe-area-inset-bottom));border-top:1px solid var(--mb-line);font-size:13px;color:var(--mb-text-3)}.shelf-foot p{margin:0}.shelf-foot nav{display:flex;gap:16px}.shelf-foot a:hover{color:var(--mb-text)}.sheet{width:440px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--mb-line);border-radius:var(--mb-r-lg);background:var(--mb-surface);color:var(--mb-text);box-shadow:var(--mb-shadow-lg)}.sheet[open]{animation:mb-enter var(--mb-t-base) var(--mb-ease) both}.sheet::backdrop{background:#0b0b0c66}.sheet-body{padding:12px 24px 24px}.sheet-body>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.sheet-body h2{margin:0;font-size:18px;font-weight:600}.sheet-note{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--mb-line);font-size:13px;line-height:1.7;color:var(--mb-text-3)}.install-button{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border:1px solid var(--mb-line-strong);border-radius:var(--mb-r);color:var(--mb-accent-text);font-size:14px;white-space:nowrap}.install-button:disabled{color:var(--mb-text-3)}.install-dialog{padding:0;border:1px solid var(--mb-line);border-radius:var(--mb-r-lg);width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);color:var(--mb-text);background:var(--mb-surface);box-shadow:var(--mb-shadow-lg)}.install-dialog::backdrop{background:#0b0b0c66}.install-dialog-body{position:relative;padding:28px}.install-close{position:absolute;right:10px;top:10px}.install-mark{width:60px;height:60px;background:#0b0b0c;color:#d4b273;display:grid;place-items:center;border-radius:16px;margin-bottom:20px}.install-dialog .eyebrow{font-size:11px}.install-dialog h2{font-family:var(--mb-font-serif-zh);font-weight:600;font-size:22px;line-height:1.5;margin:8px 0}.install-intro,.install-platform ol,.install-footnote{font-size:13px;line-height:1.9;color:var(--mb-text-2)}.install-platform{border-top:1px solid var(--mb-line);padding:16px 0 2px;margin-top:16px}.install-platform h3{font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;margin:0}.install-platform ol{padding-left:19px;margin:8px 0}.install-platform.recommended h3{color:var(--mb-accent-text)}.native-install{margin-top:16px;width:100%;justify-content:center}.install-message{font-size:13px;line-height:1.8;padding:12px;background:var(--mb-accent-soft);border-radius:var(--mb-r);margin-top:14px}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--mb-r);color:var(--mb-text-2)}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:var(--mb-r);background:var(--mb-accent);color:var(--mb-on-accent)}@media(max-width:599px){.shelf{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.shelf-top{height:60px}.icon-btn.labelled span{display:none}.resume{padding:24px 0 28px}.primary-btn{width:100%;justify-content:center}.recent a{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}.recent-label{grid-column:1 / -1}.collection{padding-top:28px}.search{width:100%}.tabs{margin-left:-16px;margin-right:-16px;padding:0 16px}.chapter-list a{grid-template-columns:40px minmax(0,1fr);grid-template-areas:"num title" "num state";gap:2px 10px;padding:10px 0}.chapter-list .num{grid-area:num;align-self:start;padding-top:2px}.chapter-list .title{grid-area:title}.chapter-list .state{grid-area:state;white-space:normal}.chapter-list .bar{display:none}.sheet{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:var(--mb-r-lg) var(--mb-r-lg) 0 0;padding-bottom:env(safe-area-inset-bottom)}.sheet[open]{animation:mb-sheet-up var(--mb-t-base) var(--mb-ease) both}.sheet-body{padding:8px 16px 20px}.setting .segmented{width:100%}.setting .segmented button{flex:1;padding:0 8px}.install-dialog-body{padding:24px 20px}}
