.bs-root{--bs-green:#1fb85a;--bs-green-700:#149247;--bs-green-50:#eaf8f0;--bs-green-100:#d6f1e0;--bs-amber:#f2a93b;--bs-amber-50:#fdf4e5;--bs-amber-100:#f8e6c4;--bs-ink:#0f1b14;--bs-ink-2:#3c4a41;--bs-muted:#7e8b83;--bs-line:#e7ece8;--bs-bg:#eef2ef;--bs-card:#fff;--bs-radius:22px;--bs-radius-sm:14px;--bs-shadow:0 1px 2px #0f1b140a, 0 8px 24px #0f1b140f;--bs-ui:"Nunito",system-ui,sans-serif;font-family:var(--bs-ui);color:var(--bs-ink);-webkit-font-smoothing:antialiased;max-width:480px;margin:0 auto;padding:8px 12px 28px;line-height:1.5}.bs-root *{box-sizing:border-box}.bs-topbar{align-items:center;gap:10px;padding:6px 4px 14px;display:flex}.bs-iconbtn{border:1px solid var(--bs-line);background:var(--bs-card);cursor:pointer;width:40px;height:40px;box-shadow:var(--bs-shadow);color:var(--bs-ink-2);border-radius:13px;flex:none;place-items:center;font-size:17px;transition:transform .15s;display:grid}.bs-iconbtn:active{transform:scale(.94)}.bs-ttl{flex:1;min-width:0}.bs-ttl h1{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:700;overflow:hidden}.bs-ttl p{color:var(--bs-muted);font-size:12px;font-family:var(--bs-zh);margin:0}.bs-progress{background:var(--bs-line);border-radius:99px;height:4px;margin:0 4px 18px;overflow:hidden}.bs-progress>span{background:linear-gradient(90deg,var(--bs-green),#46d07c);border-radius:99px;height:100%;transition:width .35s;display:block}.bs-card{background:var(--bs-card);border-radius:var(--bs-radius);box-shadow:var(--bs-shadow);margin:0 4px 16px;padding:20px;animation:.45s cubic-bezier(.2,.7,.2,1) both bs-fadeUp}.bs-label{letter-spacing:.09em;text-transform:uppercase;color:var(--bs-green-700);align-items:center;gap:7px;margin-bottom:12px;font-size:11px;font-weight:700;display:flex}.bs-label .bs-dot{background:var(--bs-green);border-radius:99px;width:6px;height:6px}@keyframes bs-fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.bs-hero h2{color:var(--bs-muted);letter-spacing:.02em;margin:0;font-size:13px;font-weight:600}.bs-hero .bs-zh-title{font-family:var(--bs-zh);letter-spacing:.02em;margin:2px 0;font-size:34px;font-weight:900}.bs-hero .bs-mn-title{letter-spacing:-.01em;font-size:19px;font-weight:700}.bs-hero .bs-py{color:var(--bs-green-700);margin-top:3px;font-size:14px;font-weight:600}.bs-teacher{background:var(--bs-amber-50);border:1px solid var(--bs-amber-100);border-radius:18px;align-items:flex-start;gap:12px;margin-top:18px;padding:14px;display:flex}.bs-mascot-icon{background:radial-gradient(circle at 35% 30%, #ffd389, var(--bs-amber));border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font-size:22px;display:grid;box-shadow:0 4px 12px #f2a93b4d}.bs-teacher .bs-who{color:#b9791b;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;font-size:11px;font-weight:700}.bs-teacher p{color:var(--bs-ink-2);margin:0;font-size:13.5px;line-height:1.55}.bs-learn-title{margin:20px 0 10px;font-size:13px;font-weight:700}.bs-chips{flex-wrap:wrap;gap:8px;display:flex}.bs-chip{background:var(--bs-green-50);border:1px solid var(--bs-green-100);color:var(--bs-green-700);border-radius:99px;align-items:center;gap:7px;padding:7px 12px;font-size:12.5px;font-weight:600;display:flex}.bs-chip .bs-n{font-weight:800}.bs-steps{flex-direction:column;gap:2px;margin-top:22px;display:flex}.bs-step{align-items:center;gap:14px;padding:12px 4px;display:flex;position:relative}.bs-step:not(:last-child):after{content:"";background:var(--bs-line);width:2px;position:absolute;top:40px;bottom:-2px;left:21px}.bs-step .bs-s-ic{background:var(--bs-green-50);width:42px;height:42px;color:var(--bs-green-700);border:1px solid var(--bs-green-100);z-index:1;border-radius:13px;flex:none;place-items:center;font-size:18px;display:grid}.bs-step .bs-s-tx{flex:1}.bs-step .bs-s-tx b{font-size:14.5px;font-weight:700;display:block}.bs-step .bs-s-tx span{color:var(--bs-muted);font-size:12px}.bs-step .bs-s-go{color:var(--bs-muted);font-size:18px}.bs-step-btn{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;font-family:inherit;transition:transform .12s,background .15s}.bs-step-btn:hover{background:var(--bs-green-50)}.bs-step-btn:active{transform:scale(.99)}.bs-cta{cursor:pointer;background:var(--bs-green);color:#fff;width:calc(100% - 8px);font-family:var(--bs-ui);border:none;border-radius:17px;margin:6px 4px 0;padding:16px;font-size:15.5px;font-weight:700;transition:transform .15s,box-shadow .15s;display:block;box-shadow:0 8px 20px #1fb85a47}.bs-cta:active{transform:scale(.985)}.bs-cta:disabled{opacity:.4;cursor:default;box-shadow:none}.bs-cta-secondary{background:var(--bs-card);color:var(--bs-green);box-shadow:inset 0 0 0 2px var(--bs-green);margin-bottom:8px}.bs-vtop{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.bs-counter{color:var(--bs-green-700);background:var(--bs-green-50);border-radius:99px;padding:4px 10px;font-size:12px;font-weight:700}.bs-vcard{text-align:center;border:1px solid var(--bs-line);background:var(--bs-card);border-radius:18px;margin-top:12px;padding:26px 18px 22px}.bs-vcard .bs-hanzi{font-family:var(--bs-zh);letter-spacing:.04em;font-size:52px;font-weight:900;line-height:1}.bs-vcard .bs-vpy{color:var(--bs-green-700);margin-top:10px;font-size:18px;font-weight:600}.bs-vcard .bs-vmn{color:var(--bs-ink-2);margin-top:6px;font-size:16px;font-weight:500}.bs-vcard .bs-vmn-pending{color:#94a3b8}.bs-vcard .bs-vmn-badge{letter-spacing:.02em;color:#94a3b8;margin-top:6px;font-size:10px;font-weight:600;display:block}.bs-vcard .bs-pos{color:var(--bs-muted);border:1px solid var(--bs-line);border-radius:99px;margin-top:10px;padding:3px 10px;font-size:11px;display:inline-block}.bs-vcard .bs-beyond{color:#b9791b;background:var(--bs-amber-50);border:1px solid var(--bs-amber-100);border-radius:99px;margin-top:10px;margin-left:6px;padding:3px 10px;font-size:11px;display:inline-block}.bs-vcard .bs-vmeta{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:12px;display:flex}.bs-vcard .bs-vbadge-hsk{letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--bs-green);border-radius:99px;padding:4px 9px;font-size:10px;font-weight:800}.bs-vcard .bs-vchip-pos{color:var(--bs-green-700);background:var(--bs-green-50);border:1px solid var(--bs-green-100);border-radius:99px;padding:3px 9px;font-size:10.5px;font-weight:600}.bs-vcard .bs-vlabel{color:var(--bs-muted);padding:2px 4px;font-size:10.5px}.bs-vcard .bs-vlabel b{color:var(--bs-ink-2);font-weight:700}.bs-vcard .bs-vlabel-zh{font-family:var(--bs-zh);font-weight:600}.bs-vcard .bs-vfreq{color:var(--bs-green-700);background:var(--bs-green-50);border:1px dashed var(--bs-green-100);border-radius:99px;padding:3px 9px;font-size:10px;font-weight:700}.bs-vcard .bs-vclassifiers{flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;width:100%;margin-top:2px;display:flex}.bs-vcard .bs-vclassifiers-title{color:var(--bs-muted);letter-spacing:.02em;margin-right:2px;font-size:10px;font-weight:700}.bs-vcard .bs-vchip-cls{color:var(--bs-ink-2);border:1px solid var(--bs-line);background:var(--bs-card);border-radius:99px;padding:3px 8px;font-size:10.5px;font-weight:600}.bs-example{background:var(--bs-green-50);text-align:left;border-radius:14px;align-items:flex-start;gap:11px;margin-top:16px;padding:14px;display:flex}.bs-example .bs-ex-zh{font-family:var(--bs-zh);font-size:16px;font-weight:500;line-height:1.4}.bs-example .bs-ex-py{color:var(--bs-green-700);margin-top:4px;font-size:11.5px;font-weight:600}.bs-example .bs-ex-mn{color:var(--bs-ink-2);margin-top:4px;font-size:12.5px}.bs-speak{background:var(--bs-card);border:1px solid var(--bs-green-100);width:38px;height:38px;color:var(--bs-green-700);cursor:pointer;border-radius:11px;flex:none;place-items:center;font-size:17px;transition:transform .15s;display:grid}.bs-speak:active{transform:scale(.9)}.bs-speak.bs-lg{border-radius:16px;width:54px;height:54px;margin:16px auto 0;font-size:22px}.bs-vbtns{gap:9px;margin-top:16px;display:flex}.bs-vbtn{border:1px solid var(--bs-line);background:var(--bs-card);font-family:var(--bs-ui);cursor:pointer;color:var(--bs-ink);border-radius:14px;flex:1;padding:13px;font-size:14px;font-weight:700;transition:transform .15s,background .15s,border-color .15s}.bs-vbtn:active{transform:scale(.97)}.bs-vbtn.bs-know{background:var(--bs-green);color:#fff;border-color:var(--bs-green)}.bs-vbtn.bs-again{color:#b9791b;background:var(--bs-amber-50);border-color:var(--bs-amber-100)}.bs-navrow{gap:9px;margin:6px 4px 0;display:flex}.bs-navbtn{border:1px solid var(--bs-line);background:var(--bs-card);font-family:var(--bs-ui);cursor:pointer;color:var(--bs-ink-2);border-radius:14px;flex:1;padding:13px;font-size:14px;font-weight:700;transition:transform .15s}.bs-navbtn:active{transform:scale(.98)}.bs-navbtn:disabled{opacity:.4;cursor:default}.bs-soon{text-align:center;color:var(--bs-muted);padding:30px 18px}.bs-soon .bs-soon-ic{font-size:34px}.bs-soon p{margin-top:8px;font-size:13px}.bs-char-writer{margin-top:8px}.bs-char-step{color:var(--bs-muted);margin:0 0 12px;font-size:12px;font-weight:600}.bs-char-head{text-align:center;margin-bottom:14px}.bs-char-glyph{font-family:var(--bs-zh);font-size:42px;font-weight:900;line-height:1.1;display:block}.bs-char-pinyin{color:var(--bs-green-700);margin-top:4px;font-size:14px;font-weight:600;display:block}.bs-char-meaning{color:var(--bs-ink-2);margin-top:2px;font-size:13px;display:block}.bs-mizige{background:var(--bs-card);color:#d1d5db;border:2px solid #c5cfc8;border-radius:12px;width:280px;height:280px;margin:0 auto;position:relative;overflow:hidden}.bs-mizige-lines{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.bs-mizige-canvas{z-index:1;width:100%;height:100%;position:relative}.bs-mizige-loading{color:var(--bs-muted);z-index:1;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.bs-stroke-progress{text-align:center;color:var(--bs-green-700);margin:10px 0 0;font-size:14px;font-weight:700}.bs-stroke-success{text-align:center;color:var(--bs-green-700);margin:8px 0 0;font-size:15px;font-weight:700}.bs-char-meta{grid-template-columns:auto 1fr;gap:4px 12px;margin:16px 0 0;font-size:13px;display:grid}.bs-char-meta dt{color:var(--bs-muted);font-weight:700}.bs-char-meta dd{color:var(--bs-ink-2);margin:0}.bs-char-decomp{font-family:var(--bs-zh);font-size:15px;font-weight:600}.bs-decomp-hint-stack{text-align:left;flex-direction:column;gap:8px;margin-top:10px;display:flex}.bs-decomp-hint{background:var(--bs-green-50);border:1px solid var(--bs-green-100);text-align:left;border-radius:12px;margin-top:10px;padding:10px 12px}.bs-char-head .bs-decomp-hint{margin-top:8px;margin-bottom:2px}.bs-decomp-hint-label{letter-spacing:.04em;text-transform:uppercase;color:var(--bs-green-700);margin:0 0 6px;font-size:10px;font-weight:800}.bs-decomp-hint-char{font-family:var(--bs-zh);color:var(--bs-ink);text-transform:none;letter-spacing:0;font-size:12px;font-weight:900}.bs-decomp-hint-row{flex-wrap:wrap;gap:6px;display:flex}.bs-decomp-chip{background:var(--bs-card);border:1px solid var(--bs-line);border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;line-height:1.2;display:inline-flex}.bs-decomp-chip-icon{font-size:14px;line-height:1}.bs-decomp-chip-glyph{font-family:var(--bs-zh);color:var(--bs-ink);font-size:13px;font-weight:800}.bs-decomp-chip-name{color:var(--bs-muted);font-weight:600}.bs-decomp-etym{color:var(--bs-ink-2);margin:8px 0 0;font-size:11px;line-height:1.45}.bs-cta-muted{background:var(--bs-card);color:var(--bs-ink-2);border:1px solid var(--bs-line);box-shadow:none;margin-top:8px}.bs-lp-grid{display:contents}.bs-lp-nav,.bs-lp-vocab{display:none}@media (min-width:920px){.bs-lp-grid{box-sizing:border-box;grid-template-columns:260px minmax(0,1fr) 320px;align-items:start;gap:20px;width:100%;max-width:1320px;margin:0 auto;padding:20px 24px 40px;display:grid}.bs-lp-grid>.bs-root{width:100%;max-width:none;margin:0;padding:0 4px 28px}.bs-lp-nav,.bs-lp-vocab{background:var(--bs-card);border-radius:var(--bs-radius);max-height:calc(100vh - 104px);box-shadow:var(--bs-shadow);scrollbar-width:thin;flex-direction:column;gap:4px;padding:14px 10px;display:flex;position:sticky;top:80px;overflow-y:auto}.bs-lp-nav-head{border-bottom:1px solid var(--bs-line);margin-bottom:6px;padding:4px 8px 12px}.bs-lp-nav-kicker{letter-spacing:.06em;color:var(--bs-green-700);text-transform:uppercase;margin:0;font-size:11px;font-weight:800}.bs-lp-nav-title{margin:2px 0 0;font-size:16px;font-weight:800;line-height:1.25}.bs-lp-nav-zh{font-family:var(--bs-zh);color:var(--bs-ink-2);margin:0;font-size:14px}.bs-lp-nav-meta{color:var(--bs-muted);margin:6px 0 0;font-size:11px;font-weight:600}.bs-lp-nav-item{color:var(--bs-ink);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;padding:8px 10px;display:flex}.bs-lp-nav-item:hover{background:var(--bs-bg)}.bs-lp-nav-item--on{background:var(--bs-green-50)}.bs-lp-nav-dot{border:2px solid var(--bs-line);width:28px;height:28px;color:var(--bs-muted);border-radius:999px;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.bs-lp-nav-item--done .bs-lp-nav-dot{background:var(--bs-green);border-color:var(--bs-green);color:#fff}.bs-lp-nav-item--on .bs-lp-nav-dot{background:var(--bs-ink);border-color:var(--bs-ink);color:#fff}.bs-lp-nav-label{flex-direction:column;font-size:13px;font-weight:800;line-height:1.2;display:flex}.bs-lp-nav-label small{color:var(--bs-muted);margin-top:2px;font-size:11px;font-weight:600}.bs-lp-vocab-head{letter-spacing:.06em;color:var(--bs-muted);text-transform:uppercase;justify-content:space-between;align-items:center;padding:4px 8px 10px;font-size:11px;font-weight:800;display:flex}.bs-lp-vocab-count{background:var(--bs-bg);border-radius:999px;padding:2px 8px}.bs-lp-vocab-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.bs-lp-vocab-row{border-radius:10px;align-items:center;gap:10px;padding:6px 8px;display:flex}.bs-lp-vocab-row:hover{background:var(--bs-bg)}.bs-lp-vocab-zh{min-width:56px;font-family:var(--bs-zh);flex:none;font-size:18px;font-weight:700}.bs-lp-vocab-body{flex-direction:column;flex:auto;min-width:0;display:flex}.bs-lp-vocab-py{color:var(--bs-muted);font-size:11px}.bs-lp-vocab-mn{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}}.bs-vcard .bs-hanzi--tone{font-size:inherit;letter-spacing:0;justify-content:center;line-height:1;display:flex}.bs-vcard .bs-hanzi--tone .bs-tone-zh{letter-spacing:.04em;font-size:60px}.bs-vcard .bs-tone-legend-row{margin-top:10px}.bs-vcard .bs-word-writer{margin-top:12px}.bs-vflip-scene{perspective:1000px;-webkit-tap-highlight-color:transparent}.bs-vflip{cursor:pointer;width:100%;min-height:150px;font:inherit;color:inherit;text-align:center;background:0 0;border:none;margin:0;padding:0;display:block;position:relative}.bs-vflip-inner{width:100%;min-height:150px;transform-style:preserve-3d;transition:transform .35s cubic-bezier(.4,.2,.2,1);position:relative}.bs-vflip--flipped .bs-vflip-inner{transform:rotateY(180deg)}.bs-vflip-face{backface-visibility:hidden;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:8px 6px;display:flex;position:absolute;inset:0}.bs-vflip-front{background:var(--bs-green-50)}.bs-vflip-back{background:var(--bs-card);border:1px dashed var(--bs-green-100);transform:rotateY(180deg)}.bs-vflip-hint{color:var(--bs-muted);margin:0;font-size:11px;font-weight:700}.bs-vflip-hint:before{content:"👆 "}.bs-vcard .bs-vflip-back .bs-vmn{color:var(--bs-ink);margin-top:4px;font-size:20px;font-weight:800}.bs-vcard .bs-vflip-back .bs-hanzi--tone .bs-tone-zh{font-size:40px}.bs-vcard .bs-vflip-back .bs-hanzi--tone .bs-tone-py{font-size:15px}@media (prefers-reduced-motion:reduce){.bs-vflip-inner{transition:none;transform:none!important}.bs-vflip-face{transition:opacity .25s;transform:none}.bs-vflip-front{opacity:1}.bs-vflip-back,.bs-vflip--flipped .bs-vflip-front{opacity:0}.bs-vflip--flipped .bs-vflip-back{opacity:1}}
