:root{--bg:#ffffff;--ink:#1c1c1e;--muted:#8e8e93;--panel:#f9f9fb;--line:#e5e5ea;--blue:#a80810;--blue-soft:#f8ebeb;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}#root,body,html{min-height:100%;margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button.link-blue{background:transparent;padding:0;margin:0;color:var(--blue);white-space:nowrap}button.ghost-link,button.link-blue{border:0;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}button.ghost-link{color:inherit}.brand{margin:0;font-size:1.1rem;font-weight:700}.brand-logo{width:28px;height:28px;border-radius:7px;object-fit:cover;flex-shrink:0}.brand-logo-lg{width:40px;height:40px;border-radius:10px}.me-brand{display:flex;align-items:center;gap:.75rem}.me-brand .me-name{margin:0}.me-brand .muted{margin:.15rem 0 0}.muted{color:var(--muted)}.form-error{color:#ff3b30}.link-blue{color:var(--blue);white-space:nowrap}.app-shell{min-height:100vh;display:flex;flex-direction:column;max-width:720px;margin:0 auto;background:var(--bg)}.app-top{position:-webkit-sticky;position:sticky;top:0;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;border-bottom:1px solid transparent}.app-top-inner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem .55rem}.brand-link{flex-shrink:0}.desktop-nav{display:none}.app-top-actions{display:flex;align-items:center;gap:.65rem;margin-left:auto}.lang-switch{display:inline-flex;align-items:center;gap:.3rem}.lang-btn,.lang-switch{font-size:.8rem;color:var(--muted)}.lang-btn{border:0;background:transparent;cursor:pointer;padding:.1rem .15rem}.lang-btn:hover{color:var(--ink)}.lang-btn.active{color:var(--ink);font-weight:700}.lang-sep{opacity:.45;-webkit-user-select:none;-moz-user-select:none;user-select:none}.desktop-only{display:none!important}.header-user{font-size:.88rem;color:var(--muted);max-width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-user:hover{color:var(--ink)}.header-logout{border:0;background:transparent;color:var(--muted);font-size:.85rem;cursor:pointer;padding:.25rem 0}.header-logout:hover{color:var(--ink)}.topbar-login{font-size:.9rem;font-weight:600;color:var(--blue)}.app-main{flex:1 1;padding-bottom:4.5rem}.app-notice-wrap{max-width:min(720px,100%);margin:0 auto;padding:.5rem .75rem 0}.notice-strip{display:flex;flex-direction:column;gap:.5rem}.notice-card{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.65rem 1rem;padding:.65rem .85rem;border-radius:12px;border:1px solid var(--line);background:#fff}.notice-card.celebrate{border-color:#f0d6d2;background:#fff7f5}.notice-title{display:block;font-size:.92rem;font-weight:650;color:var(--ink)}.notice-body{margin:.25rem 0 0;font-size:.82rem;color:var(--muted);line-height:1.45}.notice-actions{display:flex;gap:.5rem;align-items:center}.notice-btn{border:none;background:transparent;font-size:.82rem;padding:.35rem .75rem;border-radius:999px;cursor:pointer}.notice-btn.primary{background:var(--blue);color:#fff;font-weight:600}.notice-btn.ghost{color:var(--muted)}.nav-dot,.tab-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--blue);margin-left:4px;vertical-align:middle}.tab-icon-wrap{position:relative;display:inline-flex}.tab-dot{position:absolute;top:-2px;right:-6px;margin:0}.app-tabbar{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(720px,100%);display:grid;grid-template-columns:repeat(4,1fr);background:#fafafa;border-top:1px solid var(--line);padding:.35rem 0 calc(.35rem + env(safe-area-inset-bottom));z-index:20}.app-tabbar-5{grid-template-columns:repeat(5,1fr)}.app-tabbar-5 .tab-item{font-size:.62rem;padding:.35rem .1rem;gap:.1rem}.tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;font-size:.7rem;color:var(--muted);padding:.4rem .25rem;min-height:48px}.tab-item.active{color:var(--blue);font-weight:600}.tab-page{padding:.5rem 1rem 1.5rem}.search-row{display:flex;align-items:center;gap:.5rem;background:#f2f2f7;border-radius:999px;padding:.45rem .85rem;margin-bottom:.75rem}.search-row input{border:0;background:transparent;outline:none;flex:1 1;min-width:0;font-size:16px}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.page-head h1{margin:0;font-size:1.75rem}.page-sub{margin:.25rem 0 .75rem;color:var(--muted);font-size:.85rem}.page-pitch{margin:-.35rem 0 .85rem;color:#57534e;font-size:.82rem;line-height:1.45}.free-tag{display:inline-block;margin:.35rem 0 .5rem;padding:.15rem .5rem;font-size:.75rem;font-weight:600;color:#ae0e14;background:rgba(174,14,20,.08);border-radius:4px}.chapter-hint{margin:0 0 .75rem;font-size:.85rem}.preview-banner{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;background:#1c1917;color:#fafaf9;font-size:.9rem}.preview-banner p{margin:0;flex:1 1;min-width:12rem}.preview-banner .primary-link{color:#fff;background:#ae0e14;padding:.45rem .9rem;border-radius:8px;text-decoration:none;white-space:nowrap}.login-perks{margin:0 0 1.15rem;padding-left:1.15rem;color:#57534e;font-size:.88rem;line-height:1.55}.login-foot{margin:1rem 0 0;text-align:center;font-size:.85rem}.login-auto-note{margin:.75rem 0 0;text-align:center;font-size:.82rem}.login-foot a{color:#ae0e14}.chip-row{display:flex;gap:.75rem;overflow-x:auto;padding:.25rem 0 .75rem;scrollbar-width:none}.chip-row.wrap{flex-wrap:wrap}.chip{border:0;background:transparent;color:var(--muted);padding:.45rem .15rem;min-height:40px;cursor:pointer;white-space:nowrap}.chip.on{color:var(--blue);font-weight:600}.badge-blue{font-size:.75rem;color:var(--blue);background:var(--blue-soft);padding:.2rem .5rem;border-radius:4px}.daily-card{display:block;background:var(--blue-soft);border-radius:12px}.continue-card,.daily-card{padding:.9rem 1rem;margin-bottom:.75rem}.continue-card{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;text-align:left}.continue-top{display:flex;justify-content:space-between;align-items:center;color:#c2410c;font-size:.85rem;font-weight:600;margin-bottom:.35rem}.continue-title{margin:0;font-size:1.05rem;font-weight:650}.continue-author{margin:.2rem 0 .7rem;font-size:.85rem}.continue-actions{display:flex;flex-wrap:wrap;gap:.5rem}.continue-actions .ghost-link,.continue-actions .primary-link{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .85rem;border-radius:999px;font-size:.88rem;margin-top:0}.continue-actions button.primary-link{background:var(--blue);color:#fff}.continue-actions .ghost-link{border:1px solid #fdba74;background:#fff;color:#9a3412}.daily-card.mild{background:var(--panel)}.daily-card.mild,.daily-top{display:flex;justify-content:space-between}.daily-top{color:var(--blue);font-size:.85rem;font-weight:600;margin-bottom:.4rem}.daily-en{margin:0;font-family:Georgia,Iowan Old Style,Palatino,serif;line-height:1.55}.daily-by,.daily-zh{margin:.35rem 0 0;color:var(--muted);font-size:.85rem}.cover-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem .75rem;gap:1rem .75rem}.cover-item h2{margin:.4rem 0 .15rem;font-size:.85rem;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cover-item .title-zh,.shelf-meta .title-zh{margin:0 0 .15rem;font-size:.78rem;color:#57534e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-title-zh{margin:.15rem 0 .35rem!important;font-size:1rem!important;color:#57534e!important;white-space:normal!important}.cover-item p{margin:0;font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cover-author{margin:0!important}.cover-summary{margin:.25rem 0 0!important;font-size:.72rem!important;line-height:1.35!important;color:#78716c!important;white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cover-progress-label{margin:.2rem 0 0!important;font-size:.7rem!important;color:var(--blue)!important}.cover-progress{position:absolute;left:0;bottom:0;height:3px;background:var(--blue);max-width:100%}.cover{aspect-ratio:3/4.2;border-radius:6px;background:#e5e5ea;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;box-shadow:0 2px 8px rgba(0,0,0,.08)}.cover img{width:100%;height:100%;object-fit:cover}.cover.sm{width:56px;height:78px;flex-shrink:0;aspect-ratio:auto}.play-badge{left:8px;top:8px;background:rgba(0,0,0,.55);font-size:.7rem;padding:.15rem .4rem}.audio-badge,.play-badge{position:absolute;color:#fff;border-radius:999px}.audio-badge{right:6px;bottom:6px;background:rgba(174,14,20,.92);font-size:.68rem;line-height:1;padding:.28rem .4rem}.shelf-list{display:flex;flex-direction:column;gap:.75rem}.shelf-row{display:flex;gap:.85rem;align-items:center;background:var(--panel);border-radius:12px;padding:.85rem}.shelf-meta{flex:1 1;min-width:0}.shelf-meta h2{margin:0 0 .25rem;font-size:1rem}.shelf-meta p{margin:.15rem 0 0;font-size:.8rem}.continue{color:#fff;background:var(--blue);border-radius:8px;padding:.35rem .7rem;font-size:.85rem}.empty{text-align:center;padding:2.5rem 1rem}.shelf-picks{display:flex;flex-direction:column;gap:.55rem;margin:1rem auto;max-width:22rem;text-align:left}.shelf-pick{display:flex;gap:.75rem;align-items:center;padding:.65rem .75rem;border-radius:12px;background:var(--panel)}.shelf-pick strong{display:block;font-size:.92rem;font-weight:600}.shelf-pick .muted{margin:.15rem 0 0;font-size:.8rem}.primary-link{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;margin-top:.75rem;background:var(--blue);color:#fff;padding:.55rem 1rem;border-radius:8px}button.primary-link{border:0;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;font:inherit}.ghost-link{display:inline-flex;align-items:center;justify-content:center;margin-left:.5rem;padding:.55rem .85rem;background:#f2f2f7;border-radius:8px}.hero-actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:.6rem;margin:0 0 1.25rem;width:100%}.hero-actions .ghost-link,.hero-actions .primary-link{flex:1 1;margin:0;min-width:0;white-space:nowrap;font-size:.9rem;padding:.65rem .75rem}.hero-actions .ghost-link{background:transparent;border:1.5px solid var(--blue);color:var(--blue)}.hero-secondary{margin:-.65rem 0 1.1rem;font-size:.9rem}.hero-secondary a{color:var(--blue);font-weight:560}.page-loading{padding:1rem 0 2rem}.page-skeleton{border-radius:8px;background:linear-gradient(90deg,#f2f2f7,#e8e8ed,#f2f2f7);background-size:200% 100%;animation:reader-shimmer 1.2s ease-in-out infinite;margin-bottom:.75rem}.page-skeleton.cover{width:96px;height:132px}.page-skeleton.line{height:.9rem;width:70%}.page-skeleton.line.short{width:42%}.feedback-mask{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;padding:1rem;background:rgba(0,0,0,.4)}.feedback-sheet{width:min(420px,100%);max-height:90dvh;overflow:auto;background:#fff;border-radius:16px;padding:1.15rem 1.2rem calc(1.2rem + env(safe-area-inset-bottom));box-shadow:0 -8px 32px rgba(0,0,0,.18)}.feedback-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem}.feedback-head h2{margin:0;font-size:1.15rem}.feedback-head .muted{margin:.35rem 0 0;font-size:.85rem}.feedback-close{border:0;background:#f2f2f7;width:32px;height:32px;border-radius:999px;cursor:pointer;color:#8e8e93}.feedback-types{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.75rem}.feedback-type{border:0;border-radius:999px;padding:.4rem .75rem;font-size:.8rem;font-weight:600;background:#f2f2f7;color:#57534e;cursor:pointer}.feedback-type.on{background:var(--blue);color:#fff}.feedback-form input,.feedback-form textarea{display:block;width:100%;margin-bottom:.65rem;border:1px solid var(--line);border-radius:10px;padding:.7rem .85rem;resize:vertical}.feedback-submit{width:100%;border:0;border-radius:10px;padding:.7rem 1rem;background:var(--blue);color:#fff;font-weight:650;cursor:pointer}.feedback-submit:disabled{opacity:.6;cursor:not-allowed}.feedback-done{text-align:center;padding:1.5rem 0 .5rem}.feedback-done p{margin:0 0 1rem;font-weight:650}.install-hint{position:fixed;left:50%;bottom:max(5.75rem,calc(env(safe-area-inset-bottom, 0px) + 5rem));transform:translateX(-50%);z-index:55;width:min(28rem,calc(100vw - 1.5rem));display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;border-radius:14px;background:#1c1c1e;color:#fff;box-shadow:0 10px 28px rgba(0,0,0,.28)}.install-hint-body{display:flex;align-items:flex-start;gap:.55rem;min-width:0}.install-hint-title{margin:0;font-size:.9rem;font-weight:650}.install-hint-sub{margin:.15rem 0 0;font-size:.75rem;color:#aeaeb2;line-height:1.35}.install-hint-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.install-hint-go{border:0;border-radius:999px;padding:.4rem .85rem;background:var(--blue);color:#fff;font-size:.82rem;font-weight:600;cursor:pointer}.install-hint-close{border:0;background:transparent;color:#aeaeb2;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}@media (min-width:860px){.install-hint{bottom:max(1.5rem,env(safe-area-inset-bottom,0px))}}.feedback-fab{position:fixed;right:max(1rem,env(safe-area-inset-right,0px));bottom:max(2rem,env(safe-area-inset-bottom,0px));z-index:50;display:inline-flex;align-items:center;gap:.35rem;padding:.65rem 1rem;border:0;border-radius:999px;background:var(--blue);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 8px 24px rgba(168,8,16,.28);transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.feedback-fab-tab{bottom:max(5.5rem,calc(env(safe-area-inset-bottom, 0px) + 4.75rem))}.feedback-fab:hover{background:#8f060d;box-shadow:0 10px 28px rgba(168,8,16,.35)}.feedback-fab:active{transform:scale(.98)}@media (min-width:860px){.feedback-fab,.feedback-fab-tab{bottom:max(2rem,env(safe-area-inset-bottom,0px))}}.side-dock{position:fixed;right:max(.75rem,env(safe-area-inset-right,0px));bottom:max(1.25rem,env(safe-area-inset-bottom,0px));z-index:50;display:flex;align-items:flex-end;gap:.55rem}.side-dock--tab{bottom:max(5.5rem,calc(env(safe-area-inset-bottom, 0px) + 4.75rem))}.side-dock-rail{overflow:hidden;border-radius:12px;background:#fff;border:1px solid rgba(28,25,23,.08);box-shadow:0 8px 28px rgba(28,25,23,.12)}.side-dock-btn,.side-dock-rail{display:flex;flex-direction:column}.side-dock-btn{align-items:center;justify-content:center;gap:.15rem;width:3.25rem;min-height:3.35rem;padding:.45rem .2rem;border:0;border-bottom:1px solid rgba(28,25,23,.06);background:transparent;color:#57534e;font-size:.68rem;font-weight:650;letter-spacing:.02em;cursor:pointer;transition:background .15s ease,color .15s ease}.side-dock-btn:last-child{border-bottom:0}.side-dock-btn.on,.side-dock-btn:hover{color:var(--blue);background:rgba(168,8,16,.08)}.side-dock-panel{width:min(16.5rem,calc(100vw - 5.5rem));padding:.85rem .9rem 1rem;border-radius:12px;background:#fff;border:1px solid rgba(28,25,23,.08);box-shadow:0 12px 36px rgba(28,25,23,.14)}.side-dock-panel-title{font-size:.82rem;font-weight:700;color:var(--ink);margin-bottom:.65rem;text-align:center}.side-dock-qrs{display:flex;gap:.75rem;justify-content:center}.side-dock-qr{display:flex;flex-direction:column;align-items:center;gap:.35rem}.side-dock-qr img{width:108px;height:108px;object-fit:contain;background:#fff;border-radius:8px;border:1px solid rgba(28,25,23,.06);display:block}.side-dock-qr span{font-size:.72rem;color:var(--muted);font-weight:600;text-align:center}@media (min-width:860px){.side-dock,.side-dock--tab{bottom:max(1.25rem,env(safe-area-inset-bottom,0px))}}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (min-width:640px){.feedback-mask{align-items:center}}.me-card{background:var(--panel);border-radius:12px;padding:1.1rem;margin-bottom:.75rem}.me-stats-title{margin:0 0 .85rem;font-size:1rem;font-weight:600}.me-streak{display:flex;align-items:center;gap:.85rem;margin:0 0 1rem;padding:.75rem .85rem;border-radius:10px;background:rgba(180,83,9,.08)}.me-streak-value{margin:0;min-width:2.4rem;font-size:1.85rem;font-weight:700;letter-spacing:-.03em;line-height:1;color:#b45309;text-align:center}.me-streak-label{margin:0;font-size:.92rem;font-weight:600;color:var(--ink)}.me-streak-hint{margin:.15rem 0 0;font-size:.75rem}.me-goal{margin:0 0 1rem;padding:.75rem .85rem;border-radius:10px;background:rgba(168,8,16,.06)}.me-goal.met{background:rgba(21,128,61,.08)}.me-goal-top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.45rem}.me-goal-paths{list-style:none;margin:.55rem 0 0;padding:0;display:grid;grid-gap:.28rem;gap:.28rem}.me-goal-paths li{display:flex;justify-content:space-between;gap:.75rem;font-size:.78rem;color:var(--muted)}.me-goal-paths li.done{color:#15803d;font-weight:600}.me-badges{margin-top:1rem;padding-top:.85rem;border-top:1px solid rgba(0,0,0,.06)}.me-badges-title{margin:0}.me-new-badge{margin:0 0 .75rem;font-size:.82rem;font-weight:600;color:#a80810}.me-series-list{display:grid;grid-gap:.85rem;gap:.85rem}.me-series-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.me-series-label{font-size:.82rem;font-weight:650}.me-series-next{margin:.15rem 0 .4rem;font-size:.75rem;color:var(--muted)}.me-badge-row{display:flex;flex-wrap:wrap;gap:.35rem}.me-badge{display:inline-block;padding:.2rem .5rem;border-radius:999px;font-size:.72rem;color:var(--muted);background:rgba(0,0,0,.04)}.me-badge.on{color:#a80810;background:rgba(168,8,16,.1);font-weight:600}.me-badge.new{box-shadow:0 0 0 1px #a80810}.me-badge:disabled{cursor:default}button.me-badge{border:none;font:inherit;cursor:pointer}.me-new-badge-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.me-new-badge-row .me-new-badge{margin:0}.me-share-link{border:none;background:none;padding:0;font-size:.78rem;font-weight:600;color:#a80810;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.me-streak-body{flex:1 1;min-width:0}.me-repair{margin:0 0 1rem;padding:.75rem .85rem;border-radius:10px;background:rgba(180,83,9,.08);display:flex;flex-direction:column;gap:.55rem}.me-repair-text{margin:0;font-size:.82rem;color:var(--ink)}.me-repair-btn{margin:0;width:100%}.me-repair-msg{margin:-.5rem 0 .85rem;font-size:.78rem}.me-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.75rem .5rem;gap:.75rem .5rem}.me-quote-progress{display:block;margin-top:1rem;padding-top:.85rem;border-top:1px solid rgba(0,0,0,.06);text-decoration:none;color:inherit}.me-quote-progress-top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.45rem;font-size:.85rem}.me-quote-bar{height:4px;border-radius:999px;background:rgba(0,0,0,.06);overflow:hidden}.me-quote-bar-fill{height:100%;width:0;border-radius:inherit;background:#b45309;transition:width .25s ease}.me-stat{text-align:center}.me-stat-value{margin:0;font-size:1.05rem;font-weight:650;letter-spacing:-.02em;color:var(--ink);line-height:1.25}.me-stat-label{margin:.2rem 0 0;font-size:.75rem;color:var(--muted)}.me-recent{display:flex;flex-direction:column;gap:.15rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid rgba(0,0,0,.06);text-decoration:none;color:inherit}.me-recent-kicker{font-size:.75rem;color:var(--muted)}.me-recent-title{font-weight:600;font-size:.95rem}.me-recent-empty{margin:1rem 0 0;padding-top:.85rem;border-top:1px solid rgba(0,0,0,.06);font-size:.85rem}.me-recent-empty .primary-link{margin-top:.65rem;font-size:.88rem;padding:.45rem .9rem}.me-card.tips p{margin:.35rem 0;font-size:.9rem;color:#3a3a3c}.me-name{margin:0 0 .25rem;font-size:1.15rem;font-weight:600}.me-btn{display:block;width:100%;border:0;border-radius:10px;height:48px;font-size:1rem;margin-bottom:.65rem;cursor:pointer;text-align:center;line-height:48px}.me-btn.blue{background:var(--blue-soft);color:var(--blue)}.me-btn.dark{background:var(--ink);color:#fff}.center{text-align:center}.pad{padding:1rem 0}.pad.center{text-align:center}.load-more{display:block;width:100%;margin:.75rem 0 1.25rem;border:0;height:44px;border-radius:8px;background:var(--blue-soft);color:var(--blue);cursor:pointer;font-weight:600}.load-more:disabled{opacity:.55;cursor:not-allowed}.shell{max-width:720px;margin:0 auto;padding:1rem 1rem 2rem}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.btn-with-icon{display:inline-flex;align-items:center;gap:.35rem}.book-hero{display:flex;gap:1rem;margin-bottom:1.25rem}.book-cover.large{width:96px;height:132px;border-radius:8px;background:#e5e5ea;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.book-cover.large img{width:100%;height:100%;object-fit:cover}.summary{color:var(--muted);font-size:.9rem}.section-title{font-size:1.05rem;margin:1.35rem 0 .75rem;font-weight:650}.book-quotes,.chapter-list{list-style:none;padding:0;margin:0 0 1rem}.chapter-list li a{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.95rem 1rem;margin-bottom:.55rem}.book-quotes li a,.chapter-list li a{background:var(--panel);border-radius:10px}.book-quotes li a{display:block;padding:1rem 1.05rem;margin-bottom:.65rem}.book-quotes .quote-en{margin:0;font-family:Georgia,Palatino,serif;font-size:.95rem;line-height:1.55}.book-quotes .quote-zh{margin:.45rem 0 0;color:var(--muted);font-size:.85rem;line-height:1.5}.book-quotes-more{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem 1.25rem;margin:-.25rem 0 1rem;font-size:.9rem}.book-quotes-toggle{border:0;background:none;padding:0;cursor:pointer;font:inherit}.chip-icon{font-style:normal;color:var(--blue);background:var(--blue-soft);border-radius:4px;padding:.1rem .45rem;font-size:.75rem;margin-left:.45rem}.listen-page,.quotes-page{max-width:720px;margin:0 auto;padding:1rem 1rem 2rem;min-height:100vh}.back-link{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.75rem}.quote-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.25rem}.quote-title-row h1{margin:0}.quote-vocab-link{flex-shrink:0;font-size:.88rem;color:var(--blue,#2563eb);text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}.quote-vocab-due{font-size:.75rem;color:#a80810;background:rgba(168,8,16,.08);padding:.1rem .45rem;border-radius:999px}.quote-tap-hint{margin:0 0 .85rem;font-size:.75rem;letter-spacing:.01em}.quote-tag-row{display:flex;flex-wrap:nowrap;gap:.4rem;margin:.5rem 0 .35rem;padding-bottom:.15rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.quote-tag-row::-webkit-scrollbar{display:none}.quote-tag-row button{border:0;border-radius:999px;padding:.28rem .7rem;background:#f2f2f7;font-size:.8rem;cursor:pointer;color:#57534e;flex-shrink:0}.quote-tag-row button.on{background:rgba(168,8,16,.1);color:#a80810}.quote-focus-word-btn{display:block;width:100%;text-align:left;border:0;background:transparent;padding:0;cursor:pointer;font:inherit;color:inherit}.quote-focus-word-btn.saved strong{color:#a80810;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.quote-en .word-unit{display:inline}.quote-en .word-space{white-space:pre-wrap}.quote-en .word-token{display:inline;margin:0;padding:.08em .02em;border:0;background:transparent;color:inherit;font:inherit;font-family:Georgia,Palatino,Times New Roman,serif;letter-spacing:inherit;line-height:inherit;cursor:pointer;border-radius:2px;box-shadow:none;-moz-appearance:none;appearance:none;-webkit-appearance:none}.quote-en .word-token.on,.quote-en .word-token:hover{background:rgba(168,8,16,.1);box-decoration-break:clone;-webkit-box-decoration-break:clone}.quote-en .word-token.saved{box-shadow:inset 0 -2px 0 rgba(168,8,16,.5);background:rgba(168,8,16,.06);box-decoration-break:clone;-webkit-box-decoration-break:clone}.back-link.light{color:#aeaeB2}.mode-row{display:flex;gap:.5rem;margin:.75rem 0}.mode-row button{border:0;border-radius:8px;padding:.4rem .85rem;background:#f2f2f7;cursor:pointer}.mode-row button.on{background:var(--blue);color:#fff}.quote-view-stats{margin:.25rem 0 .65rem;font-size:.85rem}.quote-hint{margin-top:.15rem}.quote-card{background:#fafaf9;border-radius:16px;padding:1.35rem 1.25rem 1.25rem;margin-top:.75rem}.quote-top{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.35rem;color:var(--muted);font-size:.85rem}.quote-en{font-family:Georgia,Palatino,Times New Roman,serif;font-size:1.22rem;line-height:1.75;margin:0;color:#1c1917}.quote-en-row{display:flex;align-items:flex-start;gap:.65rem}.quote-en-row .quote-en{flex:1 1;min-width:0}.quote-voice-row{display:inline-flex;gap:.35rem;margin-top:.55rem}.quote-voice-row button{border:1px solid rgba(168,8,16,.18);background:transparent;color:#78716c;font-size:.78rem;padding:.2rem .55rem;border-radius:999px;cursor:pointer}.quote-voice-row button.on{background:rgba(168,8,16,.08);color:#a80810;border-color:rgba(168,8,16,.35)}.quote-audio-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-top:.1rem;border:0;border-radius:999px;background:rgba(168,8,16,.08);color:#a80810;cursor:pointer}.quote-audio-btn:hover{filter:brightness(.97)}.quote-audio-btn.on{background:#a80810;color:#fff}.quote-zh{color:#78716c;margin:.75rem 0 0}.quote-focus-words{list-style:none;margin:.85rem 0 0;padding:.65rem .75rem;border-radius:10px;background:rgba(168,8,16,.05);border:1px solid rgba(168,8,16,.08);display:flex;flex-direction:column;gap:.35rem}.quote-focus-words li{font-size:.88rem;line-height:1.45;color:var(--ink,#1c1917)}.quote-focus-words strong{font-weight:650;letter-spacing:.01em}.quote-by{text-align:right;color:var(--muted);margin:1rem 0}.quote-by-zh{display:block;margin-top:.35rem;color:#a8a29e;font-size:.92em}.quote-nav{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}.quote-nav button{border:0;height:44px;border-radius:8px;background:#f2f2f7;cursor:pointer}.quote-nav button.primary{background:var(--blue);color:#fff}.related{display:block;margin-top:.85rem;text-align:center;color:#a80810;background:transparent;border-radius:8px;padding:.55rem;font-size:.92rem}.quote-top-actions{display:flex;align-items:center;gap:.75rem}.poster-modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(28,25,23,.55);display:flex;align-items:flex-end;justify-content:center;padding:0}.poster-modal{width:min(420px,100%);max-height:92vh;overflow:auto;background:#fafaf9;border-radius:16px 16px 0 0;padding:1rem 1rem 1.25rem}.poster-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.poster-modal-head h2{margin:0;font-size:1.1rem}.poster-close{border:0;background:transparent;padding:.35rem;cursor:pointer;color:#78716c;display:inline-flex}.poster-preview-wrap{min-height:200px;display:flex;align-items:center;justify-content:center;background:#e7e5e4;border-radius:12px;overflow:hidden}.poster-preview{display:block;width:100%;height:auto}.poster-canvas-hidden{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.poster-hint{margin:.75rem 0 0;font-size:.85rem;color:#78716c;text-align:center;color:var(--blue)}.poster-error{color:#b91c1c;margin:.5rem}.poster-actions{display:grid;grid-template-columns:1fr;grid-gap:.6rem;gap:.6rem;margin-top:1rem}.poster-actions:has(button:nth-child(2)){grid-template-columns:1fr 1fr}.poster-actions button{border:0;height:44px;border-radius:8px;background:#f2f2f7;cursor:pointer}.poster-actions button.primary{background:var(--blue);color:#fff}.poster-actions button:disabled{opacity:.5;cursor:not-allowed}@media (min-width:640px){.poster-modal-backdrop{align-items:center;padding:1.5rem}.poster-modal{border-radius:16px;max-height:90vh}}.listen-page{background:#1c1c1e;color:#fff;text-align:center}.listen-page .muted{color:#aeaeB2}.listen-page .link-blue{color:#8eb8ff}.listen-cover{width:220px;height:300px;margin:1.5rem auto;border-radius:12px;background:#3a3a3c;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 32px rgba(0,0,0,.4)}.listen-cover img{width:100%;height:100%;object-fit:cover}.listen-progress{max-width:28rem;margin:1.25rem auto .35rem;padding:0 .5rem}.listen-scrub{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:999px;background:#3a3a3c;outline:none;cursor:pointer}.listen-scrub::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:0;box-shadow:0 1px 4px rgba(0,0,0,.35)}.listen-scrub::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:0}.listen-scrub:disabled{opacity:.4;cursor:not-allowed}.listen-time{display:flex;justify-content:space-between;margin-top:.45rem;font-size:.78rem;color:#8e8e93;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.listen-controls{display:flex;gap:.85rem;margin:1.25rem 0 .75rem}.listen-controls,.listen-controls button{justify-content:center;align-items:center}.listen-controls button{width:52px;height:52px;border:0;border-radius:50%;background:#3a3a3c;color:#fff;cursor:pointer;display:inline-flex;font-size:.78rem;font-weight:600}.listen-controls button:disabled{opacity:.35;cursor:not-allowed}.listen-controls .skip{width:44px;height:44px;background:transparent;border:1px solid #48484a;color:#d1d1d6}.listen-controls .play{width:72px;height:72px;background:var(--blue)}.listen-tools{display:flex;justify-content:center;gap:.75rem;margin:.25rem 0 .75rem;z-index:2}.listen-tool,.listen-tools{position:relative}.listen-tool-btn{display:inline-flex;align-items:center;gap:.35rem;border:0;border-radius:999px;padding:.4rem .85rem;background:#2c2c2e;color:#d1d1d6;cursor:pointer;font-size:.85rem}.listen-tool-btn.on{color:#fff;background:#3a3a3c}.listen-pop{position:absolute;left:50%;bottom:calc(100% + .45rem);transform:translateX(-50%);display:flex;flex-direction:column;gap:.25rem;padding:.4rem;background:#2c2c2e;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.45);min-width:5.5rem}.listen-pop button{border:0;background:transparent;color:#d1d1d6;padding:.45rem .7rem;border-radius:8px;cursor:pointer;white-space:nowrap}.listen-pop button.on,.listen-pop button:hover{background:#48484a;color:#fff}.listen-status{margin:.35rem 0 .15rem;min-height:1.35em}.listen-hint{font-size:.78rem;margin:0 0 1rem;opacity:.75}.reader-page{--reader-col:42rem;--reader-rail-gap:3.75rem;min-height:100vh;position:relative}.reader-page,.reader-page.theme-white{color:#1f2937;background:#fafafa}.reader-page.theme-paper{background:#f3eee6;color:#292524}.reader-page.theme-green{background:#e8f3ea;color:#292524}.reader-page.theme-night{background:#1a1b1e;color:#d4d4d8}.reader-top{position:-webkit-sticky;position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(0,0,0,.06);background:rgba(250,250,250,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .22s ease,opacity .22s ease}.reader-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:30;pointer-events:none;background:transparent}.reader-progress-fill{height:100%;width:0;background:#b45309;transition:width .08s linear}.theme-night .reader-progress-fill{background:#fbbf24}.reader-page.chrome-hidden .reader-top{transform:translateY(-100%);opacity:0;pointer-events:none}.reader-page.chrome-hidden .reader-rail{transform:translateY(-50%) translateX(.75rem);opacity:0;pointer-events:none}.theme-paper .reader-top{background:rgba(243,238,230,.94)}.theme-green .reader-top{background:rgba(232,243,234,.94)}.theme-night .reader-top{background:rgba(26,27,30,.92);border-bottom-color:rgba(255,255,255,.08)}.reader-top-inner{max-width:calc(var(--reader-col) + 8rem);margin:0 auto;padding:.65rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.reader-top-left{display:flex;align-items:center;gap:.55rem;min-width:0;flex:1 1}.reader-top-book{display:inline-flex;align-items:center;gap:.4rem;min-width:0;color:inherit;opacity:.85;text-decoration:none}.reader-top-book:hover{opacity:1}.reader-top-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(42vw,18rem);font-size:.9rem;font-weight:500}.reader-top-icon{width:30px;height:30px;border:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:inherit;cursor:pointer;opacity:.7;flex-shrink:0}.reader-top-icon.on,.reader-top-icon:hover{opacity:1;background:rgba(0,0,0,.05)}.theme-night .reader-top-icon.on,.theme-night .reader-top-icon:hover{background:rgba(255,255,255,.08)}.reader-top-meta{font-size:.78rem;white-space:nowrap;flex-shrink:0}.reader-top-right{display:flex;align-items:center;gap:.55rem;font-size:.88rem;color:var(--muted);flex-shrink:0}.reader-top-right a{color:inherit;text-decoration:none}.reader-top-right a:hover{color:inherit;opacity:.9}.reader-top-sep{opacity:.35}.reader-rail{position:fixed;z-index:25;right:max(.55rem,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.7rem;padding:0;background:transparent;box-shadow:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;transition:opacity .22s ease,transform .22s ease}@media (min-width:960px){.reader-rail{right:max(1rem,calc((100vw - var(--reader-col)) / 2 - var(--reader-rail-gap)))}}.reader-rail-btn{width:44px;height:44px;border:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#ffffff;color:#4b5563;cursor:pointer;text-decoration:none;box-shadow:0 2px 10px rgba(15,23,42,.08);transition:background .15s ease,color .15s ease,box-shadow .15s ease}.reader-rail-btn.on,.reader-rail-btn:hover{background:#fff;color:var(--blue);box-shadow:0 4px 14px rgba(15,23,42,.12)}.theme-green .reader-rail-btn,.theme-paper .reader-rail-btn{background:rgba(255,255,255,.95)}.theme-night .reader-rail-btn{background:#2a2b30;color:#d4d4d8;box-shadow:0 2px 12px rgba(0,0,0,.35)}.theme-night .reader-rail-btn.on,.theme-night .reader-rail-btn:hover{color:#f8ebeb;background:#32333a}.reader-column{max-width:var(--reader-col);margin:0 auto;min-height:calc(100vh - 1px)}.reader-body{flex:1 1;padding:1.25rem calc(var(--reader-rail-gap) + .25rem) 3rem 1.35rem;font-family:Georgia,Iowan Old Style,Songti SC,Palatino,serif;letter-spacing:.01em;cursor:pointer;word-break:normal;overflow-wrap:break-word}@media (min-width:960px){.reader-body{padding:2rem 1.5rem 4rem}}.reader-body.has-preview{padding-bottom:8.5rem}.reader-body p{margin:0 0 1.35em;text-align:left}.reader-body .word-hint{font-size:.78em;margin-bottom:1.15rem;letter-spacing:0}.reader-body .word-hint,.reader-lang-bar{font-family:system-ui,-apple-system,sans-serif}.reader-lang-bar{display:flex;gap:.5rem;margin:-.35rem 0 1rem}.reader-lang-bar button,.settings-row button.on{border:0;background:#f2f2f7;border-radius:8px;padding:.35rem .7rem;cursor:pointer;font-size:.82em}.reader-lang-bar button.on{outline:2px solid var(--blue)}.bilingual-note{font-size:.78em;margin:0 0 1.1rem;font-family:system-ui,-apple-system,sans-serif;letter-spacing:0}.reader-para{margin:0 0 1.5em}.reader-sent{margin:0 0 .85em}.reader-sent:last-child{margin-bottom:0}.reader-body .reader-sent-en{margin:0}.reader-body .reader-sent-zh{margin:.35em 0 0;font-size:.92em;line-height:1.7;opacity:.88;font-family:Songti SC,"Source Han Serif SC",Georgia,serif}.theme-night .reader-body .reader-sent-zh{opacity:.78}.reader-body .word-unit{display:inline}.reader-body .word-space{white-space:pre-wrap}.reader-body .word-token{display:inline;margin:0;padding:.12em .04em;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;cursor:pointer;border-radius:2px}.reader-loading{padding:.5rem 0 2rem}.reader-skeleton{height:.95em;margin:0 0 .85em;border-radius:4px;background:linear-gradient(90deg,rgba(0,0,0,.06),rgba(0,0,0,.12),rgba(0,0,0,.06));background-size:200% 100%;animation:reader-shimmer 1.2s ease-in-out infinite}.reader-skeleton.short{width:62%}.reader-skeleton.mid{width:84%}.theme-night .reader-skeleton{background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.14),rgba(255,255,255,.06));background-size:200% 100%}@keyframes reader-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.reader-body .word-token.on,.reader-body .word-token:hover{background:rgba(168,8,16,.12);box-decoration-break:clone;-webkit-box-decoration-break:clone}.theme-night .reader-body .word-token.on,.theme-night .reader-body .word-token:hover{background:rgba(248,235,235,.18)}.reader-body .word-token.saved{box-shadow:inset 0 -2px 0 rgba(168,8,16,.55);background:rgba(168,8,16,.08);box-decoration-break:clone;-webkit-box-decoration-break:clone}.theme-night .reader-body .word-token.saved{box-shadow:inset 0 -2px 0 rgba(255,170,170,.7);background:rgba(255,180,180,.14)}.reader-body .word-token.focus-from-vocab{background:rgba(202,138,4,.22);box-shadow:inset 0 -2px 0 rgba(180,120,0,.55);box-decoration-break:clone;-webkit-box-decoration-break:clone}.theme-night .reader-body .word-token.focus-from-vocab{background:rgba(250,204,21,.22);box-shadow:inset 0 -2px 0 rgba(250,204,21,.65)}.word-pop-scrim{position:fixed;inset:0;z-index:39;border:0;padding:0;margin:0;background:transparent;cursor:default}.word-pop{position:fixed;z-index:40;width:min(300px,calc(100vw - 24px));max-height:min(42vh,280px);overflow:auto;background:#fff;color:#1c1c1e;border-radius:12px;padding:.75rem .85rem .85rem;box-shadow:0 8px 28px rgba(0,0,0,.16),0 0 0 1px rgba(0,0,0,.06);transform:translateX(-50%)}.word-pop.place-above{transform:translate(-50%,-100%)}.theme-night .word-pop{background:#292524;color:#e7e5e4;box-shadow:0 8px 28px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.08)}.word-pop-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:.35rem}.word-pop-term{display:block;font-size:1.15rem;font-weight:700;color:var(--blue);line-height:1.25}.word-pop .word-phonetic{display:inline-block;margin:.15rem 0 0 .35rem;font-size:.82rem;opacity:.65;font-family:Georgia,serif;font-weight:400;vertical-align:middle}.word-pop-body{margin:.35rem 0 0}.word-pop-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;align-items:center}.word-pop-speak{border:none;background:var(--blue);color:#fff;border-radius:8px;padding:.4rem .75rem;font-size:.85rem;cursor:pointer}.word-pop-speak.on{background:#0b6bcb}.word-pop-speak.loading{opacity:.85;animation:word-pop-speak-pulse .9s ease-in-out infinite}@keyframes word-pop-speak-pulse{0%,to{opacity:.85}50%{opacity:.55}}.word-pop-save{border:1px solid rgba(0,0,0,.12);background:#fff;color:var(--blue);border-radius:8px;padding:.4rem .75rem;font-size:.85rem;cursor:pointer}.theme-night .word-pop-save{border-color:rgba(255,255,255,.14);background:transparent}.word-pop-save:disabled{opacity:.7;cursor:default}.word-pop-lesson{font-size:.85rem;color:var(--blue)}.vocab-tabs{display:flex;gap:.35rem;margin:.75rem 0 1rem}.vocab-tabs button{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:.35rem .85rem;cursor:pointer}.vocab-tabs button.on{background:var(--blue-soft);border-color:var(--blue);color:var(--blue);font-weight:650}.vocab-list{list-style:none;margin:0;padding:0}.vocab-card{padding:1rem 0;border-bottom:1px solid var(--line)}.vocab-card-head{display:flex;flex-wrap:wrap;gap:.4rem;align-items:baseline}.vocab-status{font-size:.75rem;padding:.1rem .45rem;border-radius:999px;background:var(--panel);color:var(--muted)}.vocab-status.st-learning{background:var(--blue-soft);color:var(--blue)}.vocab-def{margin:.45rem 0;line-height:1.55}.vocab-ctx{margin:.5rem 0;padding:.55rem .75rem;border-left:3px solid var(--blue);background:var(--blue-soft);font-size:.92rem;line-height:1.55}.vocab-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem;align-items:center}.vocab-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.3rem .65rem;font-size:.82rem;cursor:pointer}.vocab-actions button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.vocab-actions button.danger{color:#c62828}.lesson-shell{max-width:40rem;margin:0 auto;padding:1.25rem 1rem 3rem}.lesson-header h1{margin:.35rem 0;font-size:1.4rem}.lesson-section{margin:1.35rem 0}.lesson-section h2{margin:0 0 .55rem;font-size:1.05rem}.lesson-words{margin:0;padding-left:1.1rem;line-height:1.7}.lesson-quote{margin:0;padding:.85rem 1rem;border-left:3px solid var(--blue);background:var(--blue-soft);line-height:1.65;font-style:italic}.lesson-prompt{margin:0 0 .75rem;font-weight:600}.lesson-options{display:flex;flex-direction:column;gap:.45rem}.lesson-options button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:.7rem .85rem;cursor:pointer}.lesson-options button.correct{border-color:#2e7d32;background:#e8f5e9}.lesson-options button.wrong{border-color:#c62828;background:#ffebee}.lesson-ok{color:#2e7d32;margin:.6rem 0 0}.lesson-footer{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line)}.listen-links{display:flex;flex-wrap:wrap;gap:1rem;margin:.5rem 0 1rem}.listen-transcript{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12);max-height:42vh;overflow:auto;text-align:left}.listen-transcript-hint{font-size:.8rem;margin:0 0 .65rem}.listen-para{display:block;width:100%;text-align:left;border:none;background:transparent;color:inherit;opacity:.55;padding:.55rem .4rem;margin:0;border-radius:8px;line-height:1.55;font-size:.92rem;cursor:pointer}.listen-para.on{opacity:1;background:rgba(255,255,255,.1);font-weight:550}.listen-para-active{cursor:default}.listen-para .word-unit{display:inline}.listen-para .word-space{white-space:pre-wrap}.listen-para .word-token{display:inline;margin:0;padding:.08em .03em;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;cursor:pointer;border-radius:2px;font-weight:inherit}.listen-para .word-token.on,.listen-para .word-token:hover{background:rgba(255,255,255,.18)}.listen-para .word-token.saved{box-shadow:inset 0 -2px 0 rgba(255,170,170,.7);background:rgba(255,180,180,.12)}.word-sheet-close{border:0;background:#f2f2f7;border-radius:999px;width:28px;height:28px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:inherit}.theme-night .word-sheet-close{background:#44403c}.word-translation{margin:0;white-space:pre-wrap;line-height:1.55;font-size:.92rem}.word-matched{margin:.45rem 0 0;font-size:.75rem}.reader-chapter-end{margin:2.5rem 0 1rem;padding:1.5rem 0 .25rem;border-top:1px solid rgba(0,0,0,.08);cursor:default;text-align:center}.theme-night .reader-chapter-end{border-top-color:rgba(255,255,255,.12)}.reader-chapter-end-cue{margin:0 0 1rem;font-size:.95rem;font-weight:500;letter-spacing:.02em;color:inherit;opacity:.72}.reader-chapter-end-actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center;align-items:stretch}.reader-chapter-end-primary,.reader-chapter-end-secondary-btn{min-height:44px;padding:0 1.1rem;border:0;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font:inherit;font-size:.92rem;text-decoration:none;box-sizing:border-box}.reader-chapter-end-primary{background:#a80810;color:#fff;flex:1 1 9rem;max-width:16rem}.reader-chapter-end-primary:disabled{opacity:.4;cursor:not-allowed}.reader-chapter-end-secondary-btn{background:#e7e5e4;color:#1c1917;flex:1 1 7rem;max-width:12rem}.theme-green .reader-chapter-end-secondary-btn,.theme-paper .reader-chapter-end-secondary-btn{background:rgba(0,0,0,.07)}.theme-night .reader-chapter-end-secondary-btn{background:#44403c;color:#e7e5e4}.reader-chapter-end-secondary-btn:hover{filter:brightness(.97)}.theme-night .reader-chapter-end-secondary-btn:hover{filter:brightness(1.08)}.reader-chapter-end-primary:hover:not(:disabled){filter:brightness(1.06)}.reader-chapter-end-prev{margin-top:.85rem}.reader-chapter-end-prev button{border:0;background:transparent;color:inherit;opacity:.55;cursor:pointer;font:inherit;font-size:.82rem;display:inline-flex;align-items:center;gap:.2rem;padding:.35rem .5rem}.reader-chapter-end-prev button:hover{opacity:.85}.settings-mask{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:flex-end;z-index:30}.settings-panel{padding:1.25rem 1.25rem 2rem}.settings-panel,.toc-panel{width:100%;max-width:720px;margin:0 auto;background:#fff;border-radius:16px 16px 0 0;color:#1c1c1e}.toc-panel{max-height:min(78vh,640px);display:flex;flex-direction:column;padding:1rem 0 .5rem}.theme-night .toc-panel{background:#2c2c2e;color:#f2f2f7}.toc-panel-head{display:flex;align-items:center;justify-content:space-between;padding:0 1.15rem .35rem}.toc-panel-head h3{margin:0;font-size:1.05rem}.toc-book-title{margin:0 1.15rem .65rem;font-size:.85rem}.toc-list{list-style:none;margin:0;padding:0 .65rem 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.toc-list li{margin:0}.toc-list button{display:flex;align-items:center;gap:.65rem;width:100%;border:0;background:transparent;text-align:left;padding:.7rem .55rem;border-radius:10px;cursor:pointer;color:inherit;font:inherit}.toc-list button:hover{background:rgba(0,0,0,.05)}.theme-night .toc-list button:hover{background:rgba(255,255,255,.08)}.toc-list button.on{background:rgba(174,14,20,.1);color:#ae0e14;font-weight:600}.theme-night .toc-list button.on{background:rgba(255,120,120,.15);color:#ffb4b4}.toc-idx{flex:0 0 2rem;color:var(--muted,#8e8e93);font-size:.85rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.toc-list button.on .toc-idx{color:inherit}.toc-title{flex:1 1;min-width:0;font-size:.95rem;line-height:1.35}.settings-panel h3{margin:0 0 1rem}.settings-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.settings-row button,.theme-chip{border:0;background:#f2f2f7;border-radius:8px;padding:.45rem .75rem;cursor:pointer}.theme-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:.75rem}.theme-chip.on{outline:2px solid var(--blue)}.theme-chip.white{background:#ffffff;color:#111111;box-shadow:inset 0 0 0 1px #d4d4d8}.theme-chip.paper{background:#f7f1e8}.theme-chip.green{background:#c7edcc}.theme-chip.night{background:#1c1917;color:#fff}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#f5f5f4}.login-panel{width:min(420px,100%);background:#fafaf9;border-radius:16px;padding:1.5rem}.login-panel h1{margin:.75rem 0 1.25rem;font-size:1.35rem}.login-panel .sub{color:var(--muted);margin:0 0 1.25rem;font-size:.9rem}.login-panel label{display:block;margin-bottom:.85rem;font-size:.85rem;color:#78716c}.login-panel input{width:100%;margin-top:.35rem;height:44px;border:1px solid var(--line);border-radius:8px;padding:0 .75rem;font-size:16px}.login-panel button[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:100%;height:48px;border:0;border-radius:10px;background:#1c1917;color:#fff;margin-top:.5rem;font-size:1rem;font-weight:600;letter-spacing:.02em;cursor:pointer}.login-panel button[type=submit]:disabled{opacity:.7;cursor:not-allowed}.login-panel button[type=submit]:not(:disabled):hover{background:#292524}.brand-row{display:inline-flex;align-items:center;gap:.4rem}.input-wrap{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:8px;padding:0 .75rem;background:#fff}.input-wrap input{border:0!important;margin:0!important;height:44px;font-size:16px}@media (min-width:860px){.cover-grid{grid-template-columns:repeat(4,1fr)}.app-shell,.listen-page,.quotes-page,.settings-panel,.shell{max-width:960px}.app-top{border-bottom-color:var(--line)}.app-top-inner{padding:.85rem 1.5rem}.desktop-nav{display:flex;align-items:center;justify-content:center;gap:.15rem;flex:1 1}.desktop-nav-link{padding:.4rem .95rem;border-radius:999px;color:var(--muted);font-size:.95rem;font-weight:500}.desktop-nav-link:hover{color:var(--ink);background:#f2f2f7}.desktop-nav-link.active{color:var(--blue);background:var(--blue-soft);font-weight:650}.desktop-only{display:inline-flex!important}.app-tabbar{display:none}.app-main{padding-bottom:2rem}.tab-page{padding:.75rem 1.5rem 2rem}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.daily-shell{max-width:40rem;margin:0 auto;padding:1.25rem 1rem 3rem}.daily-header{margin-bottom:1.25rem}.daily-date{margin:.75rem 0 .35rem;font-size:.85rem}.daily-title{margin:0;font-size:1.45rem;line-height:1.35;font-weight:700}.daily-digest{margin:.6rem 0 0;color:var(--muted);font-size:.95rem;line-height:1.6}.daily-body{margin:1rem 0}.daily-body a{color:var(--blue)}.daily-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line)}.daily-list{list-style:none;margin:0;padding:0}.daily-list li{border-bottom:1px solid var(--line)}.daily-list a{display:flex;flex-direction:column;gap:.25rem;padding:.9rem 0}.daily-list-date{font-size:.8rem;color:var(--muted)}.daily-list-title{font-weight:650;line-height:1.4}.daily-list-digest{font-size:.9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}:root{--home-bg:#fafafa;--home-ink:#1c1c1e;--home-accent:#A80810;--home-soft:#F8EBEB}.home-page{padding-bottom:1rem}.home-page .primary-link{background:#A80810;min-height:44px;margin-top:0;border-radius:8px;font-weight:600;font-size:.95rem;padding:.65rem 1rem}.home-continue .ghost-link.brand-outline,.home-page .ghost-link.brand-outline{background:#fff;border:1.5px solid #a80810;color:#A80810;min-height:44px;margin-left:0;border-radius:8px;font-weight:600;padding:.65rem 1rem}.home-page .continue-actions .ghost-link,.home-page .continue-actions .primary-link{border-radius:8px;padding:.65rem 1rem;min-height:44px}.home-page .continue-top,.link-brand{color:#A80810}.link-brand{font-weight:500;white-space:nowrap}.home-hero{padding:.5rem 0 .15rem}.home-kicker{display:none}.home-greeting{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.25rem;font-weight:600;line-height:1.35;color:var(--home-ink)}.home-greeting-sep{font-weight:400;color:var(--muted)}.home-welcome-inline{font-family:system-ui,-apple-system,sans-serif;font-size:.95rem;font-weight:500;color:var(--muted)}.home-welcome{margin:.4rem 0 0;font-size:.95rem}.home-continue{margin-top:.85rem;background:var(--home-soft);border:1px solid #f0d4d4;border-radius:12px}.home-continue-sync{margin:.75rem 0 0;font-size:.88rem}.home-section{margin-top:1.15rem;padding-top:.85rem;border-top:1px solid transparent}.home-section+.home-section{border-top-color:var(--line)}.home-section-title{margin:0;font-size:1.05rem;font-weight:650}.home-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.home-section-head .home-section-title{margin:0}.home-goal-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.home-goal-main{flex:1 1;min-width:0}.home-goal-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.45rem}.home-goal-label strong{font-size:.95rem}.home-goal-bar{height:8px;border-radius:999px;background:#efe4e4;overflow:hidden}.home-goal-bar-fill{height:100%;border-radius:999px;background:#A80810;transition:width .25s ease}.home-goal-done{margin:.4rem 0 0;font-size:.82rem}.home-goal-toggle{flex-shrink:0;background:none;border:0;padding:.25rem 0;cursor:pointer;font-size:.85rem}.home-goal-sub{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.55rem}.home-goal-sub li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.9rem}.home-quote-card{padding-top:.25rem;background:#fff;border:1px solid var(--line)}.home-page .daily-top{color:#A80810}.home-quote-en{font-family:Georgia,Times New Roman,serif;font-size:1.1rem;line-height:1.5}.home-quote-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.85rem}.home-quote-error{margin:.45rem 0 0;font-size:.85rem}.home-recommend-scroll{display:flex;overflow-x:auto;gap:.85rem;padding-bottom:.35rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.home-recommend-chip{flex:0 0 108px;width:108px;display:flex;flex-direction:column;gap:.35rem;text-decoration:none;color:inherit}.home-recommend-cover{width:108px;height:144px;border-radius:8px;overflow:hidden;background:#eee;display:flex;align-items:center;justify-content:center;color:var(--muted)}.home-recommend-cover img{width:100%;height:100%;object-fit:cover}.home-recommend-title{font-size:.85rem;font-weight:600;-webkit-line-clamp:2}.home-recommend-title,.home-recommend-title-zh{line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.home-recommend-title-zh{font-size:.75rem;-webkit-line-clamp:1}.home-path-link{margin:.75rem 0 0;font-size:.9rem}.library-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.library-shelf-link{flex-shrink:0;margin-top:.25rem;white-space:nowrap}.learn-page .learn-lead{margin:0 0 1rem}.learn-link-list{list-style:none;margin:1rem 0 0;padding:0}.learn-link-row{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 0;border-bottom:1px solid var(--line)}.learn-link-row strong{display:block}.learn-link-row p{margin:.15rem 0 0;font-size:.85rem}.book-info-block,.book-learn-block,.book-learn-what,.book-progress-block{margin-top:1.25rem}.book-info-list,.book-progress-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;grid-gap:.55rem 1rem;gap:.55rem 1rem}.book-info-list li,.book-progress-list li{display:flex;flex-direction:column;gap:.15rem}.book-learn-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.65rem;gap:.65rem}.book-learn-card{display:flex;flex-direction:column;gap:.25rem;padding:.8rem .7rem;border:1px solid var(--line);border-radius:10px;background:#fff}.book-learn-card strong{font-size:.92rem}.book-learn-card span{font-size:.78rem;line-height:1.35}.book-learn-points{margin:0;padding-left:1.1rem}.book-learn-points li{margin:.35rem 0;font-size:.92rem}@media (min-width:860px){.home-page,.learn-page{max-width:960px}.home-greeting{font-size:1.35rem}.app-tabbar-5 .tab-item{font-size:.7rem}}.reader-page.learn-dock-on{--reader-learn-w:min(22rem,34vw)}.reader-learn-dock{position:fixed;top:3.25rem;right:0;bottom:0;width:var(--reader-learn-w,22rem);z-index:40;overflow:auto;padding:1rem 1.1rem 2rem;background:color-mix(in srgb,var(--bg,#f7f3ea) 92%,#fff);border-left:1px solid color-mix(in srgb,var(--ink,#1a1a1a) 12%,transparent);box-shadow:-8px 0 24px rgba(0,0,0,.04)}.theme-night .reader-learn-dock{background:#1c1f24;border-left-color:rgba(255,255,255,.08)}.learn-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.learn-panel-head h3{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-size:1.05rem}.learn-panel-word{margin-bottom:.75rem}.learn-panel-pos{margin-left:.4rem;font-style:normal;font-size:.85rem;opacity:.7}.learn-panel-zh{margin:.35rem 0 0;line-height:1.5}.learn-panel-sentence{margin:0 0 .85rem;padding:.65rem .75rem;border-left:3px solid color-mix(in srgb,var(--accent,#8b5a2b) 70%,#999);background:color-mix(in srgb,var(--ink,#111) 4%,transparent);font-size:.95rem;line-height:1.55}.learn-panel-modes{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.learn-panel-modes button{border:1px solid color-mix(in srgb,var(--ink,#111) 16%,transparent);background:transparent;border-radius:999px;padding:.28rem .7rem;font-size:.82rem;cursor:pointer}.learn-panel-modes button.on{background:color-mix(in srgb,var(--accent,#8b5a2b) 18%,transparent);border-color:color-mix(in srgb,var(--accent,#8b5a2b) 45%,transparent)}.learn-panel-ask{display:flex;gap:.45rem;margin-bottom:.75rem}.learn-panel-ask input{flex:1 1;min-width:0;border:1px solid color-mix(in srgb,var(--ink,#111) 16%,transparent);border-radius:.5rem;padding:.45rem .65rem;background:transparent}.learn-panel-result section{margin-bottom:.7rem}.learn-panel-result h4{margin:0 0 .25rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;opacity:.65}.learn-panel-result li,.learn-panel-result p{margin:0;line-height:1.55;font-size:.95rem}.learn-panel-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;font-size:.9rem}.word-pop-context{margin:.35rem 0 0;font-size:.82rem;line-height:1.45}.shadow-prompt{margin:0 0 .65rem;line-height:1.5}.shadow-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.shadow-btn{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--ink,#111) 18%,transparent);background:transparent;padding:.35rem .75rem;cursor:pointer}.shadow-btn.on{background:color-mix(in srgb,#b33 12%,transparent);border-color:color-mix(in srgb,#b33 40%,transparent)}.shadow-btn.ghost{opacity:.85}.shadow-audio{width:min(100%,16rem);height:2rem}.shadow-hint{margin:.45rem 0 0;font-size:.82rem}.learn-week-grid span{display:block;font-size:.82rem}.onboarding-card{position:relative;width:min(26rem,calc(100vw - 2rem));margin:12vh auto 0;padding:1.35rem 1.25rem 1.25rem;border-radius:1rem;background:var(--bg,#fff);box-shadow:0 18px 50px rgba(0,0,0,.2)}.onboarding-card h2{margin:0 0 .4rem;font-size:1.25rem}.onboarding-steps{margin:.85rem 0 1rem;padding-left:1.15rem;line-height:1.55}.onboarding-actions{display:flex;flex-wrap:wrap;gap:.65rem}.sentence-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-gap:.85rem;gap:.85rem}.sentence-card{padding:.9rem 1rem;border-radius:.75rem;background:color-mix(in srgb,var(--ink,#111) 4%,transparent)}.sentence-en{margin:0;line-height:1.55;font-size:1.02rem}.sentence-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.55rem;align-items:center}.sentence-actions .link-blue{font-size:.9rem}.practice-steps{margin:.85rem 0 1.1rem;padding-left:1.2rem;line-height:1.6}@media (max-width:1099px){.reader-learn-dock{display:none}}@media (max-width:720px){.learn-week-grid{grid-template-columns:1fr}}.reader-page.with-learn-dock .reader-column{margin-right:min(22rem,34vw)}@media (min-width:1100px){.reader-page.with-learn-dock{--reader-learn-w:min(22rem,34vw)}.reader-learn-dock{position:fixed;top:3.25rem;right:0;bottom:0;width:var(--reader-learn-w,22rem);z-index:40;overflow:auto;padding:1rem 1.1rem 2rem;background:color-mix(in srgb,var(--bg,#f7f3ea) 92%,#fff);border-left:1px solid color-mix(in srgb,var(--ink,#1a1a1a) 12%,transparent)}}.learn-panel-mask .learn-panel-sheet{position:fixed;left:0;right:0;bottom:0;max-height:min(78vh,640px);overflow:auto;padding:1rem 1.15rem 1.5rem;border-radius:1rem 1rem 0 0;background:var(--bg,#fff);box-shadow:0 -12px 40px rgba(0,0,0,.18);z-index:60}.shadow-box{margin:1rem 0;padding:.9rem 1rem;border:1px dashed color-mix(in srgb,var(--ink,#111) 18%,transparent);border-radius:.75rem}.shadow-label{margin:0 0 .35rem;font-weight:600}.learn-week-card{margin:0 0 1.1rem;padding:.95rem 1rem;border-radius:.85rem;background:color-mix(in srgb,var(--ink,#111) 4%,transparent)}.learn-week-top{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.learn-week-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.6rem;gap:.6rem}.learn-week-grid em{display:block;font-style:normal;font-weight:600;margin-bottom:.15rem}.learn-goal-bar{margin-top:.75rem;height:.35rem;border-radius:999px;background:color-mix(in srgb,var(--ink,#111) 10%,transparent);overflow:hidden}.learn-goal-fill{height:100%;background:color-mix(in srgb,var(--accent,#8b5a2b) 80%,#444)}.onboarding-mask .onboarding-card{position:relative;width:min(26rem,calc(100vw - 2rem));margin:12vh auto 0;padding:1.35rem 1.25rem 1.25rem;border-radius:1rem;background:var(--bg,#fff);box-shadow:0 18px 50px rgba(0,0,0,.2)}.learn-panel-primary{width:100%;margin:0 0 .75rem;border-radius:.55rem;padding:.55rem .85rem}.shadow-flow{margin:0 0 .75rem;padding-left:1.1rem;font-size:.85rem;line-height:1.45}.shadow-countdown{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;border-radius:999px;font-weight:700;font-size:1.1rem;background:color-mix(in srgb,var(--accent,#8b5a2b) 18%,transparent)}.learn-due-card{margin:0 0 1.1rem;padding:.95rem 1rem;border-radius:.85rem;background:color-mix(in srgb,var(--ink,#111) 4%,transparent)}.learn-due-list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;grid-gap:.55rem;gap:.55rem}.learn-due-list li{display:grid;grid-gap:.15rem;gap:.15rem}.learn-due-list strong{font-size:1rem}.sentence-toolbar{display:flex;align-items:center;gap:.75rem;margin:.75rem 0 1rem}.sentence-toolbar input{flex:1 1;min-width:0;border:1px solid color-mix(in srgb,var(--ink,#111) 16%,transparent);border-radius:.5rem;padding:.5rem .7rem;background:transparent}.sentence-zh{margin:.35rem 0 0;line-height:1.45}.sentence-focus{display:flex;flex-wrap:wrap;gap:.35rem;margin:.45rem 0 0}.sentence-focus-chip{font-size:.78rem;padding:.15rem .45rem;border-radius:999px;background:color-mix(in srgb,var(--ink,#111) 8%,transparent)}.sentence-actions .danger{color:#a33}.practice-checklist,.practice-pick,.practice-warmup{margin:1.1rem 0}.practice-checklist h2,.practice-pick h2,.practice-warmup h2{margin:0 0 .4rem;font-size:1.05rem}.practice-book-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;grid-gap:.55rem;gap:.55rem}.practice-book-row{display:grid;grid-template-columns:2.75rem 1fr auto;grid-gap:.75rem;gap:.75rem;align-items:center;padding:.65rem .75rem;border-radius:.7rem;background:color-mix(in srgb,var(--ink,#111) 4%,transparent);text-decoration:none;color:inherit}.practice-book-cover{width:2.75rem;height:3.5rem;object-fit:cover;border-radius:.25rem}.practice-book-cover.empty{display:grid;place-items:center;background:color-mix(in srgb,var(--ink,#111) 8%,transparent)}.practice-book-cta{font-size:.82rem;opacity:.8;white-space:nowrap}.onboarding-step-meta{margin:0 0 .35rem;font-size:.82rem}.onboarding-step-body{margin:.65rem 0 1rem;line-height:1.55;font-size:1.05rem}.onboarding-dots{display:flex;gap:.35rem;margin-bottom:1rem}.onboarding-dots span{width:.45rem;height:.45rem;border-radius:999px;background:color-mix(in srgb,var(--ink,#111) 18%,transparent)}.onboarding-dots span.on{background:color-mix(in srgb,var(--accent,#8b5a2b) 80%,#444);width:1rem}