.stf__parent{position:relative;display:block;transform:translateZ(0);padding:14px;box-sizing:border-box;-ms-touch-action:pan-y;touch-action:pan-y}.sft__wrapper{position:relative;width:100%;box-sizing:border-box}.stf__parent canvas{position:absolute;width:100%;height:100%;left:0;top:0}.stf__block{position:absolute;width:100%;height:100%;box-sizing:border-box;perspective:2000px}.stf__item{display:none;position:absolute;transform-style:preserve-3d}.stf__hardInnerShadow,.stf__hardShadow,.stf__innerShadow,.stf__outerShadow{position:absolute;left:0;top:0}body{margin:0;background:#f6f7fb;font-family:system-ui}#book{flex:1;width:100%;height:auto;display:flex;align-items:center;justify-content:center;background:#f6f7fb;padding:0;box-sizing:border-box}.wrap{height:calc(var(--vh) * 100);display:flex;align-items:center;justify-content:center}.page{background:#fff}.cover-inner{padding:0;position:relative;overflow:hidden;--coverShadeStrong:0.62;--coverShadeMid:0.22}.cover-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.02)}.cover-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.02)}.cover-titlebar{position:absolute;left:0;right:0;top:22px;padding:18px 18px 22px;text-align:center;color:#fff;z-index:2;background:linear-gradient(to bottom,rgba(0,0,0,var(--coverShadeStrong)),rgba(0,0,0,var(--coverShadeMid)) 70%,rgba(0,0,0,0));border-radius:14px;margin:0 14px}.cover-title{margin:0;font-weight:950;letter-spacing:.3px;font-size:28px;line-height:1.08;text-shadow:0 10px 22px rgba(0,0,0,.35)}.cover-author{margin:8px 0 0;font-size:13px;font-weight:750;opacity:.96;text-shadow:0 10px 22px rgba(0,0,0,.35)}.cover-hint{position:absolute;left:0;right:0;bottom:0;padding:12px 16px;text-align:center;font-size:12px;color:rgba(255,255,255,.92);z-index:2;background:linear-gradient(to top,rgba(0,0,0,.45),rgba(0,0,0,0));text-shadow:0 10px 22px rgba(0,0,0,.35)}.page-inner{padding:18px;display:flex;flex-direction:column;box-sizing:border-box;gap:12px;height:100%;min-height:0;pointer-events:auto}.page-meta{font-size:12px;color:rgba(0,0,0,.55);display:flex;justify-content:space-between}.content-body{flex:1;min-height:0;display:grid;gap:12px}.content-body.body-top{grid-template-rows:minmax(220px,0.44fr) minmax(0,0.56fr)}.content-body.body-full{grid-template-rows:1fr}.prepage{height:100%;display:flex;align-items:center;justify-content:center;padding:18px}.prepage-card{width:min(520px,92%);border-radius:22px;background:linear-gradient(180deg,rgba(99,102,241,.1),rgba(34,197,94,.06));border:1px solid rgba(15,23,42,.12);box-shadow:0 18px 40px rgba(2,6,23,.1);padding:18px 18px 16px;position:relative;overflow:hidden}.prepage-card:before{content:"";position:absolute;inset:-40px;background:radial-gradient(circle at 20% 25%,rgba(99,102,241,.18),transparent 42%),radial-gradient(circle at 80% 15%,rgba(34,197,94,.14),transparent 45%),radial-gradient(circle at 70% 80%,rgba(14,165,233,.1),transparent 45%);filter:blur(2px);pointer-events:none}.prepage-top{position:relative;z-index:1}.prepage-chip{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.82rem;padding:8px 12px;border-radius:999px;background:rgba(15,23,42,.9);color:#fff}.prepage-title{margin-top:12px;font-size:1.55rem;font-weight:900;color:#0f172a;letter-spacing:.01em}.prepage-sub{margin-top:6px;color:rgba(15,23,42,.65);font-weight:600;font-size:.95rem}.prepage-body{margin-top:14px;padding:14px 14px 12px;border-radius:18px;background:rgba(255,255,255,.75);border:1px solid rgba(15,23,42,.1);position:relative;z-index:1}.prepage-summary{font-size:1rem;line-height:1.55;color:rgba(15,23,42,.86);font-weight:600}.prepage-footer{margin-top:12px;position:relative;z-index:1;display:flex;justify-content:center}.prepage-hint{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:999px;background:rgba(15,23,42,.06);border:1px solid rgba(15,23,42,.1);color:rgba(15,23,42,.8);font-weight:700;font-size:.9rem}.prepage-hint .dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(90deg,#7c3aed,#22c55e);box-shadow:0 0 0 4px rgba(124,58,237,.1)}.hidden,.readerContainer.hidden{display:none!important}#loading_overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999}#loading_overlay img{width:80vw;max-width:192px;height:auto;max-height:80vh;object-fit:contain;border:none}#loading_label{color:#6c24ea;font-weight:700;font-family:Poppins,sans-serif;text-align:center;animation:1.5s ease-in-out infinite pulse;pointer-events:none;white-space:nowrap;margin-top:8px;font-size:14px}#loading_bar_bg{width:60%;max-width:400px;height:12px;background:rgba(255,255,255,.15);border-radius:6px;overflow:hidden;margin-top:12px}#loading_bar{width:0%;height:100%;background:#6d5ef6;transition:width .2s}.loading_overlay.hidden{display:none!important}.reader-shell{width:min(1040px,96vw);height:auto;border-radius:18px;overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 18px 50px rgba(0,0,0,.08);display:flex;flex-direction:column}.reader-topbar{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(to right,#f3f8ff,#f6fff4);border-bottom:1px solid rgba(0,0,0,.06)}.reader-progress{display:flex;align-items:center;gap:10px;width:min(420px,52%)}.reader-title{font-weight:900;font-size:16px;letter-spacing:.2px;color:rgba(0,0,0,.84);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}.reader-progress-text{font-weight:800;font-size:13px;color:rgba(0,0,0,.64);white-space:nowrap}.reader-progress-track{flex:1;height:10px;border-radius:999px;background:rgba(0,0,0,.08);overflow:hidden;position:relative}.reader-progress-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,#7c3aed,#22c55e);transition:width 180ms}.reader-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-top:1px solid rgba(0,0,0,.06);background:linear-gradient(to right,#f7fbff,#f7fff6)}.footer-btn{width:46px;height:40px;border-radius:14px;border:1px solid rgba(0,0,0,.1);background:rgba(255,255,255,.95);box-shadow:0 8px 18px rgba(0,0,0,.06);cursor:pointer;font-weight:900;font-size:16px;display:flex;align-items:center;justify-content:center;user-select:none}.footer-btn:disabled{opacity:.35;cursor:not-allowed}.footer-play{width:64px;height:48px;border-radius:999px;border:1px solid rgba(0,0,0,.1);background:linear-gradient(90deg,#7c3aed,#22c55e);color:#fff;box-shadow:0 14px 30px rgba(0,0,0,.14);cursor:pointer;font-weight:1000;font-size:18px;display:flex;align-items:center;justify-content:center;user-select:none}.footer-play.is-playing{filter:brightness(.95)}.playbtn{border:1px solid rgba(0,0,0,.12);background:#fff;border-radius:999px;padding:10px 12px;font-weight:800;cursor:pointer}.playbtn:active{transform:scale(.98)}.footer-nav{display:flex;align-items:center;gap:10px;min-width:110px;width:42px}.footer-btn:active,.footer-play:active{transform:scale(.98)}.reader-pagenumbar{height:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 14px;background:#fff}.reader-pagenum{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:rgba(15,23,42,.45);background:rgba(255,255,255,.72);border:1px solid rgba(15,23,42,.1);border-radius:50%;backdrop-filter:blur(6px);pointer-events:none;user-select:none;margin-bottom:3px}.reader-pagenum.left{margin-right:auto}.reader-pagenum.right{margin-left:auto}.media-full::after,.media-half::after{content:"";position:absolute;left:0;right:0;height:56px;pointer-events:none;opacity:.95}.media-top::after{bottom:0;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff)}.media-bottom::after{top:0;background:linear-gradient(to top,rgba(255,255,255,0),#fff)}.content-body .media-full,.content-body .media-half{height:100%;min-height:0;border-radius:14px;overflow:hidden;position:relative;width:100%;justify-self:stretch;box-shadow:0 10px 26px rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.06)}.content-body .media-half img,.content-body .media-half video{object-fit:cover;object-position:center}.content-body .media-full img,.content-body .media-full video{object-fit:contain;background:#fff}.content-body .media-half{height:100%;max-height:100%;aspect-ratio:3/2}.media-img,.media-video{width:100%;height:100%;object-fit:cover;display:block}.img-full{flex:1;border-radius:14px;background-size:cover;background-position:center}.img-half{height:45%;min-height:180px;border-radius:14px;background-size:cover;background-position:center}.content-body.body-text{grid-template-rows:1fr}.content-body .text{min-height:0;overflow:hidden}.page-text{height:100%;display:flex;flex-direction:column;justify-content:flex-start;--topOffset:24px;padding:var(--topOffset) 2px 6px;font-size:var(--readerFontSize, 22px);line-height:var(--readerLineHeight, 1.5);color:var(--readerFontColor,#111)}.ptx-p{margin:0 0 .75em;font-weight:var(--readerFontWeight,400)}.ptx-p:last-child{margin-bottom:0}.ptx-p[data-indent]{text-indent:calc(attr(data-indent number) * .9em)}.ptx-p[data-indent="1"]{text-indent:.9em}.ptx-p[data-indent="2"]{text-indent:1.8em}.ptx-p[data-indent="3"]{text-indent:2.7em}.page-text,.page-text *{user-select:text;-webkit-user-select:text}.page-text .text-run{display:block}.page-text .w{display:inline;cursor:pointer}.page-text .w.hl{border-radius:6px;box-shadow:inset 0 -1.1em 0 rgba(255,230,120,.7)}.page-text .w.tap-hl{background:rgba(120,200,255,.35);border-radius:6px}.page-text ::selection,.page-text::selection{background:rgba(120,200,255,.35)}.dict-popover.hidden{display:none}.dict-popover{position:fixed;inset:0;z-index:9999;pointer-events:none}.dict-popover::before{content:"";position:absolute;inset:0;background:rgba(2,6,23,.32);opacity:0;transition:opacity 220ms}.dict-card{pointer-events:auto;width:min(340px,calc(100vw - 24px));background:rgba(255,255,255,.94);border:1px solid rgba(15,23,42,.12);border-radius:18px;box-shadow:0 22px 52px rgba(2,6,23,.22);backdrop-filter:blur(12px);overflow:hidden;opacity:0;transform:translate3d(0,14px,0) scale(.97);transition:opacity 240ms,transform 240ms cubic-bezier(.2, .9, .2, 1);will-change:opacity,transform}.dict-popover.is-open{pointer-events:auto}.dict-popover.is-open::before{opacity:1}.dict-popover.is-open .dict-card{opacity:1;transform:translate3d(0,0,0) scale(1)}.dict-popover.is-anchored .dict-card{position:absolute}.dict-arrow{position:absolute;width:12px;height:12px;background:rgba(255,255,255,.94);border-left:1px solid rgba(15,23,42,.12);border-top:1px solid rgba(15,23,42,.12);transform:rotate(45deg);pointer-events:none}.dict-popover.is-anchored .dict-arrow{display:block}.dict-popover.is-sheet .dict-arrow{display:none}.dict-popover.is-sheet{display:grid;place-items:center;padding:12px}.dict-popover.is-sheet .dict-card{position:relative;width:min(560px,calc(100vw - 24px));border-radius:20px;transform:translate3d(0,18px,0) scale(.98)}.dict-popover.is-sheet .dict-head::before{content:"";display:block;width:46px;height:5px;border-radius:999px;background:rgba(15,23,42,.18);margin:0 auto 8px}.dict-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:linear-gradient(90deg,rgba(124,58,237,.14),rgba(34,197,94,.12));border-bottom:1px solid rgba(15,23,42,.08)}.dict-word{font-weight:900;font-size:16px;color:rgba(15,23,42,.92);letter-spacing:.2px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dict-close{border:0;background:rgba(15,23,42,.08);color:rgba(15,23,42,.75);width:28px;height:28px;border-radius:999px;cursor:pointer;font-weight:900;line-height:1}.dict-body{padding:10px 12px 12px}.dict-label{font-size:12px;font-weight:800;color:rgba(15,23,42,.55);margin-bottom:6px}.dict-meanings{margin:0;padding-left:18px;color:rgba(15,23,42,.88);font-size:14px;line-height:1.35;font-weight:650}.dict-meanings li{margin:6px 0}@media (prefers-reduced-motion:reduce){.dict-card,.dict-popover::before{transition:none!important}.dict-card{transform:none!important}}