@font-face{font-family:ZCOOL KuaiLe;src:url(/fonts/zcool-kuaile.woff2) format("woff2");font-display:swap}@font-face{font-family:ZCOOL KuaiLe Title;src:url(/fonts/zcool-title.woff2) format("woff2");font-display:swap}@font-face{font-family:Fredoka;src:url(/fonts/fredoka.woff2) format("woff2");font-weight:300 700;font-stretch:75% 125%;font-display:swap}@font-face{font-family:Noto Sans Pinyin;src:url(/fonts/noto-sans-pinyin.woff2) format("woff2");font-weight:400 700;font-stretch:62.5% 100%;font-display:swap}:root{--sky: #eaf3ff;--ti-line: var(--ink);--ti-wash: var(--sky-deep);--ti-deep: var(--blue);--ti-accent: var(--gold);--sky-deep: #d8e9ff;--ease-spring: cubic-bezier(.2, 1.4, .4, 1);--paper: #ffffff;--ink: #28303f;--ink-soft: #5b6577;--red: #e0393e;--red-deep: #b8262b;--gold: #f5b940;--bronze: #c98b4f;--silver: #a9b3c4;--jade: #2fa36b;--jade-ink: #1f7d4f;--gold-ink: #8a5a00;--jade-soft: #e2f5eb;--rose-soft: #fdeaea;--grid: #9fb4d3;--blue: #3d6bff;--line: #4d586e;--shadow-ink: #a9b6d0;--font-display: "Fredoka", "Segoe UI", "Noto Sans", "ZCOOL KuaiLe", "KaiTi", sans-serif;--font-body: "Fredoka", "Segoe UI", "Noto Sans", "ZCOOL KuaiLe", "KaiTi", sans-serif;--font-hanzi: "ZCOOL KuaiLe", "KaiTi", "DFKai-SB", "SimSun", serif;--font-dict: "LXGW WenKai Screen", "KaiTi", "Kaiti SC", "STKaiti", "BiauKai", serif;--font-native: system-ui, -apple-system, "Segoe UI", "Noto Sans", "Hiragino Sans", "Yu Gothic UI", "Meiryo", "Noto Sans JP", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", "PingFang SC", "Microsoft YaHei", sans-serif;--font-ja: "Hiragino Sans", "Yu Gothic UI", "Meiryo", "Noto Sans JP", var(--font-native);--font-hant: "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", var(--font-native);--font-ko: "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", var(--font-native);--font-pinyin: "Noto Sans Pinyin", system-ui, "Segoe UI", Arial, sans-serif}:root[data-ui=helper]{--font-hanzi: var(--font-rail-face), "ZCOOL KuaiLe", "KaiTi", "DFKai-SB", "SimSun", serif;--font-display: var(--font-rail-face), "ZCOOL KuaiLe", "KaiTi", "DFKai-SB", serif}:root{--t-2xs: 11px;--t-xs: 12px;--t-sm: 13px;--t-md: 14px;--t-base: 15px;--t-lg: 17px;--t-xl: 19px;--t-2xl: 22px;--t-3xl: 26px;--shadow-soft: 0 1px 4px rgba(40, 48, 63, .08);--shadow: 0 3px 12px rgba(40, 48, 63, .12);--shadow-lift: 0 6px 20px rgba(40, 48, 63, .16);--shadow-inset: inset 0 1px 3px rgba(40, 48, 63, .12);--ring: 0 0 0 2.5px;--ring-in: inset 0 0 0 2px;--r-2xs: 3px;--r-xs: 8px;--r-sm: 12px;--r-md: 14px;--r-lg: 18px;--r-xl: 24px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-7: 32px}:root[data-font=book]{--font-hanzi: "LXGW WenKai Lite", "KaiTi", "Kaiti SC", "STKaiti", "BiauKai", serif;--font-display: "Fredoka", "LXGW WenKai Lite", "KaiTi", "Kaiti SC", "STKaiti", sans-serif;--font-body: "Fredoka", "LXGW WenKai Lite", "KaiTi", "Kaiti SC", "STKaiti", sans-serif}:root[data-ui=zh-Hant]{--font-hanzi: var(--font-hant);--font-display: "Fredoka", var(--font-hant), sans-serif;--font-body: "Fredoka", var(--font-hant), sans-serif}:root[data-ui=zh-Hant][data-font=book]{--font-hanzi: "BiauKai", "DFKai-SB", "Kaiti TC", var(--font-hant);--font-display: "Fredoka", "BiauKai", "DFKai-SB", "Kaiti TC", var(--font-hant), sans-serif;--font-body: "Fredoka", "BiauKai", "DFKai-SB", "Kaiti TC", var(--font-hant), sans-serif}[lang=zh-Hant]{--font-hanzi: var(--font-hant)}:root[data-font=book] [lang=zh-Hant]{--font-hanzi: "BiauKai", "DFKai-SB", "Kaiti TC", var(--font-hant)}:root[data-paper=warm]{--sky: #fbf5e6;--sky-deep: #efe3c9;--grid: #bfae86}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--sky);color:var(--ink);font-family:var(--font-body);font-synthesis:none;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.ic{vertical-align:-.18em;flex:none}.page{position:relative;max-width:640px;margin:0 auto;padding:var(--s-5) var(--s-4) 48px;min-height:100vh;min-height:100dvh}.page.home,.page.book,.page.profile,.page.exams-page,.page.rd-page,.page.cz-page,.page.hz-page{padding-bottom:calc(132px + env(safe-area-inset-bottom,0px))}.exam-flag-btn{position:relative;flex:none;gap:var(--s-1);height:34px;padding:0 var(--s-3);background:transparent;color:var(--ink-soft);box-shadow:var(--ring-in) var(--grid);font-family:var(--font-body);font-size:var(--t-sm);font-weight:700;cursor:pointer}.exam-flag-btn:after,.exam-sheet-btn:after,.exam-example-tab:after{content:"";position:absolute;inset:min(0px,calc((100% - 44px)/2))}.exam-sheet-btn,.exam-example-tab{position:relative}.exam-flag-btn.on{color:var(--red);box-shadow:var(--ring) var(--red)}.exam-status{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin:0 0 var(--s-2)}.exam-status+.round-bar{margin-top:0}button.score-pill{border:none;font:inherit;cursor:pointer}.exam-sheet{max-height:80vh;max-height:80dvh;overflow-y:auto}.exam-sheet-count{display:flex;flex-wrap:wrap;gap:2px 0;margin:0 0 var(--s-3);font-size:var(--t-sm);color:var(--ink-soft)}.exam-sheet-count>span{white-space:nowrap}.exam-sheet-count small.rail{display:inline;margin-left:4px}.exam-sheet-section+.exam-sheet-section{margin-top:var(--s-3)}.exam-sheet-head{margin:0 0 var(--s-2);font-family:var(--font-hanzi);font-size:var(--t-md);font-weight:700}.exam-sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:var(--s-2);margin:0;padding:0;list-style:none}.exam-qchip{position:relative;width:100%;aspect-ratio:1;border:2px solid var(--sky-deep);border-radius:var(--r-sm);background:var(--paper);color:var(--ink-soft);font-family:var(--font-display);font-weight:700;font-size:var(--t-sm);cursor:pointer}.exam-qchip.done{background:var(--sky-deep);color:var(--ink)}.exam-qchip.current{box-shadow:var(--ring) var(--blue)}.exam-qchip.flagged:after{content:"";position:absolute;top:3px;right:3px;width:8px;height:8px;border-radius:var(--r-pill);background:var(--gold)}.bottom-nav{position:fixed;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);width:min(430px,calc(100% - 20px));display:flex;gap:var(--s-1);background:var(--paper);border-radius:var(--r-xl);box-shadow:var(--shadow-lift);padding:var(--s-2);z-index:50}.ui-switch{--nav-h: 71px;position:fixed;left:max(10px,calc(50% - 215px));bottom:calc(12px + env(safe-area-inset-bottom,0px) + var(--nav-h) + 8px);z-index:50;display:inline-flex;gap:2px;padding:3px;border:none;border-radius:999px;background:var(--paper);box-shadow:var(--shadow-lift);cursor:pointer;font-family:var(--font-body);font-weight:800;font-size:var(--t-sm)}.ui-switch-side{display:grid;place-items:center;min-width:38px;height:38px;padding:0 var(--s-3);border-radius:999px;color:var(--ink-soft)}.ui-switch-side.on{background:var(--jade-ink);color:#fff}body:has(.owl-moment) .ui-switch{display:none}@media(min-width:900px){.bottom-nav{left:16px;top:50%;bottom:auto;transform:translateY(-50%);width:76px;flex-direction:column;gap:var(--s-1);padding:var(--s-2);border-radius:var(--r-lg)}.nav-tab{flex:none;padding:var(--s-3) var(--s-1) var(--s-2)}.ui-switch{left:16px;bottom:16px}.page.home,.page.book,.page.profile,.page.exams-page,.page.rd-page,.page.cz-page,.dx-page{padding-bottom:48px}.page.exam{max-width:1100px}.page.exam .exam-essay:has(>.exam-story){display:grid;grid-template-columns:minmax(0,min(50%,calc(100dvh - 260px))) minmax(0,1fr);grid-template-rows:repeat(4,auto) 1fr;column-gap:28px;align-content:start;align-items:start}.page.exam .exam-essay:has(>.exam-story)>.exam-story{grid-column:1;grid-row:1 / -1}.page.exam .exam-essay:has(>.exam-story)>:not(.exam-story){grid-column:2}.page.exam .exam-question>.exam-image,.page.exam .exam-question>.exam-passage,.page.exam .exam-question>.game-ask,.page.exam .exam-question>.placement-pinyin{grid-column:1}.page.exam .exam-question>.options,.page.exam .exam-question>.exam-pics,.page.exam .exam-question>.exam-tf{grid-column:2;grid-row:1 / span 8;margin-top:0}.page.exam .exam-question>.exam-verdict,.page.exam .exam-question>.exam-check-btn{grid-column:2}.page.exam .exam-question>.exam-write~.exam-verdict,.page.exam .exam-question>.exam-order~.exam-verdict,.page.exam .exam-question>.exam-write~.exam-check-btn,.page.exam .exam-question>.exam-order~.exam-check-btn{grid-column:1 / -1}.page.exam .exam-question>.exam-passage{position:sticky;top:16px}.page.exam .exam-question>.exam-image{width:min(100%,360px);margin-left:0}.page.exam .exam-pics{grid-template-columns:repeat(3,1fr)}.page.exam .exam-group.with-text{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px;align-items:start}.page.exam .exam-group-text{position:sticky;top:16px}.page.exam .exam-group .exam-question{display:block}.page.exam .exam-question>.exam-write,.page.exam .exam-question>.exam-order{grid-column:1 / -1}}.nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;background:none;border:none;border-radius:var(--r-md);padding:var(--s-2) 2px;font-family:var(--font-hanzi);font-size:var(--t-sm);color:var(--ink-soft);transition:background .15s ease}.nav-tab.active{background:#fff3d6;color:var(--ink)}.nav-icon{line-height:1;height:28px;display:grid;place-items:center}.nav-tab:not(.active) .nav-icon{opacity:.55;filter:grayscale(.4)}.nav-avatar .avatar{display:block}:root[data-world] .bottom-nav{background:var(--w-paper);border-top:3px solid var(--w-deep);outline:1.5px dashed var(--w-deep);outline-offset:-6px}:root[data-world] .nav-tab{color:var(--w-ink)}:root[data-world] body{background:var(--w-paper)}:root[data-world] .home-header{background:var(--w-paper);border-bottom-color:var(--w-deep)}:root[data-world] .sky-bg,:root[data-world] .desk-bg,:root[data-world] .world-bg{background:radial-gradient(140% 50% at 50% 112%,color-mix(in srgb,var(--w-deep) 12%,transparent) 0%,transparent 62%),var(--w-paper)}:root[data-world] .seg{background:color-mix(in srgb,var(--w-deep) 13%,var(--w-paper))}:root[data-world] .nav-tab.active{background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .nav-icon{--ti-line: var(--w-ink);--ti-wash: color-mix(in srgb, var(--w-deep) 14%, var(--w-paper));--ti-deep: var(--w-deep);--ti-accent: var(--w-accent)}:root[data-world=agency] .nav-icon{--ti-line: var(--w-accent)}:root[data-world] .nav-tab.active .nav-icon{--ti-line: var(--w-on-accent);--ti-wash: color-mix(in srgb, var(--w-paper) 34%, transparent);--ti-deep: color-mix(in srgb, var(--w-on-accent) 72%, var(--w-accent));--ti-accent: var(--w-paper)}:root[data-world] .nav-tab:not(.active) .nav-icon:has(.world-tab-icon){opacity:.85;filter:none}.ti-l{fill:none;stroke:var(--ti-line);stroke-linecap:round;stroke-linejoin:round}.ti-sacc{stroke:var(--ti-accent)}.ti-sdeep{stroke:var(--ti-deep)}.ti-wash{fill:var(--ti-wash)}.ti-deep{fill:var(--ti-deep)}.ti-acc{fill:var(--ti-accent)}.ti-riso{--ti-line: var(--ti-accent)}.world-face{flex:none;display:block;line-height:0}:root[data-world] .home-header{border-bottom:3px solid var(--w-deep)}:root[data-world] .sw-page>.home-header{margin-bottom:0}:root[data-world] .home-header .app-title{color:var(--w-ink)}:root[data-world] .home-header .app-subtitle{color:var(--w-deep)}:root[data-world] .home-header .gear-btn,:root[data-world] .home-header .book-btn{color:var(--w-ink);filter:none}:root[data-world] .home-header .book-btn svg path{stroke:var(--w-ink)}:root[data-world] .home-header .book-btn svg path:first-child{fill:var(--w-accent)}:root[data-world] .home-header .book-btn-badge,:root[data-world] .home-header .mascot-level{background:var(--w-accent);color:var(--w-on-accent);border:2px solid var(--w-ink);border-radius:var(--r-2xs);box-shadow:none}:root[data-world] .home-header .mascot-level{right:-8px}:root[data-world] .ob-over,:root[data-world] .tour-mask{background:color-mix(in srgb,var(--w-deep) 60%,transparent)}:root[data-world] .ob-sheet,:root[data-world] .tour-card,:root[data-world] .welcome-sheet{background:var(--w-paper);color:var(--w-ink);border:3px solid var(--w-deep);outline:1.5px dashed var(--w-deep);outline-offset:-8px;box-shadow:none}:root[data-world] .welcome-sheet{border-bottom:0}:root[data-world] .ob-id-name,:root[data-world] .ob-label,:root[data-world] .ob-lang-name,:root[data-world] .ob-level,:root[data-world] .ob-sheet .font-sample{color:var(--w-ink)}:root[data-world] .ob-id-name .rail,:root[data-world] .ob-sheet .font-en{color:var(--w-deep)}:root[data-world] .ob-lang,:root[data-world] .ob-level,:root[data-world] .ob-sheet .font-card{background:color-mix(in srgb,#fff 55%,var(--w-paper));border:2px solid color-mix(in srgb,var(--w-deep) 35%,transparent);box-shadow:none}:root[data-world] .ob-lang.on,:root[data-world] .ob-level.on,:root[data-world] .ob-sheet .font-card.selected{background:color-mix(in srgb,var(--w-accent) 22%,var(--w-paper));border-color:var(--w-deep);outline:2px solid var(--w-accent);outline-offset:1px;box-shadow:none}:root[data-world] .ob-nav .exam-next,:root[data-world] .tour-next,:root[data-world] .owl-moment-action,:root[data-world] .welcome-actions .big-btn:not(.ghost){background:var(--w-accent);color:var(--w-on-accent);border:2px solid var(--w-deep);box-shadow:none}:root[data-world] .welcome-actions .big-btn.ghost{background:transparent;color:var(--w-ink);border:2px solid var(--w-deep);box-shadow:none}:root[data-world] .ob-nav .exam-next:disabled{background:transparent;color:color-mix(in srgb,var(--w-ink) 45%,transparent);border:2px dashed color-mix(in srgb,var(--w-deep) 45%,transparent);box-shadow:none}:root[data-world] :is(.ob-sheet,.tour-card,.owl-moment) .owl-says{background:color-mix(in srgb,#fff 55%,var(--w-paper));border:2px solid var(--w-deep);box-shadow:none}:root[data-world] :is(.ob-sheet,.tour-card,.owl-moment) .owl-says:before{border-right-color:var(--w-deep)}:root[data-world] :is(.ob-sheet,.tour-card,.owl-moment) .owl-says-line{color:var(--w-ink)}:root[data-world] :is(.ob-sheet,.tour-card,.owl-moment) .owl-says-speaker{background:color-mix(in srgb,var(--w-deep) 13%,var(--w-paper));color:var(--w-ink)}:root[data-world] .tour-dots i{background:color-mix(in srgb,var(--w-deep) 30%,transparent)}:root[data-world] .tour-dots i.on{background:var(--w-deep)}:root[data-world] .tour-ring{box-shadow:none;outline:3px solid var(--w-accent)}:root[data-world][data-world] .levelup-backdrop .levelup-box{background:var(--w-paper);outline:1.5px dashed var(--w-deep);outline-offset:-8px}:root[data-world] .levelup-cheer{color:var(--w-deep)}:root[data-world] .sc-page .rd-bar{border:1.5px solid var(--w-deep);box-shadow:none}:root[data-world] .sc-page .rd-play:not(.on){background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .sc-page .rd-toggle{color:var(--w-ink)}:root[data-world] .sc-page .rd-toggle.on,:root[data-world] :is(.rd-page,.page.oral-page) .rd-toggle.on{background:color-mix(in srgb,var(--w-deep) 22%,var(--w-paper));color:var(--w-ink);outline:2px solid var(--w-deep);outline-offset:-2px}:root[data-world] .sc-page .rd-en{background:color-mix(in srgb,var(--w-deep) 7%,var(--w-paper));color:var(--w-ink)}:root[data-world] .lesson-words>summary{list-style:none}:root[data-world] .lesson-words>summary::-webkit-details-marker{display:none}:root[data-world] .lesson-words>summary:before{content:"";display:inline-block;width:8px;height:8px;margin-right:var(--s-3);border-right:2.5px solid var(--w-deep);border-bottom:2.5px solid var(--w-deep);transform:translateY(-2px) rotate(-45deg);transition:transform .1s ease}:root[data-world] .lesson-words[open]>summary:before{transform:translateY(-4px) rotate(45deg)}:root[data-world] .write-box svg>g>g:first-child path[clip-path]{stroke:color-mix(in srgb,var(--w-ink) 18%,transparent)}.home-header{position:sticky;top:0;z-index:25;display:flex;align-items:center;gap:var(--s-3);background:var(--head-bg, var(--sky));border-bottom:1px solid rgba(77,88,110,.12);margin:-20px -16px var(--s-4);padding:var(--s-4) var(--s-4) var(--s-3);flex-wrap:nowrap}.mascot{display:grid;place-items:center}.avatar{overflow:visible}.mascot .avatar{filter:drop-shadow(0 3px 6px rgba(40,48,63,.18))}.gear-btn{flex:none;margin-left:auto;z-index:30;width:44px;height:44px;border-radius:50%;border:none;background:none;color:var(--ink-soft);display:grid;place-items:center;transition:transform .15s ease,color .15s ease;filter:drop-shadow(0 2px 3px rgba(40,48,63,.15))}.gear-btn:hover{color:var(--ink)}.gear-btn:hover{transform:rotate(30deg)}.gear-btn:active{transform:translateY(2px)}.level-strip{display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-1)}.level-text{flex:1;min-width:0}.level-bar{height:12px;border-radius:var(--r-pill);background:var(--paper);box-shadow:var(--shadow-inset);overflow:hidden}.level-fill{height:100%;background:linear-gradient(90deg,var(--gold),#ffd873);border-radius:var(--r-pill);transition:width .6s ease}.level-xp{flex:none;font-family:var(--font-display);font-weight:800;font-size:var(--t-md);color:var(--ink-soft)}:root:not([data-font=book]) .app-title:lang(zh-Hans){font-family:"ZCOOL KuaiLe Title",var(--font-hanzi)}.app-title{font-family:var(--font-hanzi);font-weight:400;font-size:40px;margin:0;line-height:1.1;letter-spacing:2px}.app-subtitle{font-family:var(--font-rail);font-weight:700;color:var(--ink-soft);margin:2px 0 0}.pill{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);border:none;border-radius:var(--r-pill);background:var(--paper);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:var(--t-base);box-shadow:var(--shadow);transition:transform .1s ease}.pill.zh{font-family:var(--font-hanzi);font-weight:400}.pill:active{transform:scale(.96)}.path-testout{display:flex;justify-content:center;margin:0 var(--s-4) var(--s-2)}.path-testout-btn{display:inline-flex;align-items:baseline;gap:var(--s-1);padding:var(--s-2) var(--s-4);border:none;border-radius:var(--r-pill);background:var(--jade-soft);color:var(--jade-ink);font-family:var(--font-hanzi);font-size:var(--t-sm);font-weight:700}.path-testout-btn .rail{font-family:var(--font-rail);font-size:var(--t-2xs)}.lesson-words{margin:0 0 var(--s-4)}.lesson-words>summary{padding:var(--s-2) var(--s-5);min-height:44px;font-family:var(--font-hanzi);font-size:var(--t-base);color:var(--ink-soft);cursor:pointer}.wc{flex:none;width:286px;max-width:calc(100vw - 2 * var(--s-6));display:flex;flex-direction:column;border:2.5px solid var(--paper);border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--shadow-lift);overflow:hidden;text-align:left}.wc-done{border-color:var(--gold)}.wc-top{position:relative;display:flex;justify-content:center;padding:var(--s-7) var(--s-3) var(--s-3);background:var(--sky)}.wc-done .wc-top{background:#fdf1d6}.wc-level{position:absolute;left:var(--s-3);top:var(--s-2);font-family:var(--font-rail);font-size:var(--t-xs);font-weight:700;color:var(--ink-soft)}.wc-marks{position:absolute;right:var(--s-3);top:var(--s-2);display:flex;align-items:center;gap:var(--s-2)}.wc-dictated{display:inline-flex;align-items:center;gap:2px;padding:2px var(--s-2);border-radius:var(--r-pill);background:#fdf1d6;color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-xs);line-height:1.4}.wc-complete{padding:2px var(--s-2);border-radius:var(--r-pill);background:var(--gold);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-sm)}.wc-complete:not(:lang(zh)){font-family:var(--font-rail);font-weight:700;font-size:var(--t-xs)}.wc-body{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3) var(--s-4) var(--s-2)}.wc-sentence-row{position:relative;padding-right:40px}.wc-sentence-row .wc-listen{position:absolute;right:-8px;top:-9px}.wc-meaning{margin:0;font-family:var(--font-rail);font-size:var(--t-lg);font-weight:700;color:var(--ink)}.wc-listen{flex:none;display:grid;place-items:center;width:44px;height:44px;border:none;border-radius:50%;background:none;color:var(--jade-ink)}.wc-listen-word{position:absolute;right:var(--s-1);bottom:var(--s-2)}.wc-listen:active{transform:scale(.92)}.wc-sentence{flex:1;margin:0;text-wrap:pretty;font-family:var(--font-hanzi);font-size:var(--t-lg);line-height:1.5;color:var(--ink)}.wc-translation{margin:0;font-family:var(--font-rail);font-size:var(--t-md);line-height:1.4;color:var(--ink-soft)}.wc-seals{list-style:none;margin:auto 0 0;padding:var(--s-3) var(--s-3) var(--s-4);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));justify-items:center;border-top:1px dashed var(--sky-deep)}.wc-seal{display:grid;place-items:center;width:38px;height:38px;border:1px dashed #c6d0e2;border-radius:var(--r-xs);color:#8b97af;font-family:var(--font-hanzi);font-size:var(--t-lg);line-height:1}.wc-seal.on{border:1.5px solid #e2918e;background:var(--rose-soft);color:var(--red-deep);font-size:var(--t-xl)}.wc-seals li:nth-child(odd) .wc-seal.on{transform:rotate(-6deg)}.wc-seals li:nth-child(2n) .wc-seal.on{transform:rotate(5deg)}.wc-seal.fresh{outline:4px solid rgba(226,145,142,.32);animation:wc-press .5s var(--ease-spring) both}@keyframes wc-press{0%{scale:1.9;opacity:0}to{scale:1.15;opacity:1}}@media(prefers-reduced-motion:reduce){.wc-seal.fresh{animation:none;scale:1.15}}.wcar-row{display:flex;gap:var(--s-3);padding:var(--s-2) calc(50% - 143px) var(--s-4);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.wcar-row::-webkit-scrollbar{display:none}.wcar-row>.wc{scroll-snap-align:center;transition:opacity .2s ease,scale .2s ease}.wcar-aside{opacity:.55;scale:.95}.wcar{position:relative}.wcar-arrow{display:none}@media(hover:hover)and (pointer:fine){.wcar-arrow{position:absolute;top:190px;z-index:2;display:grid;place-items:center;width:44px;height:44px;border:none;border-radius:50%;background:var(--paper);color:var(--ink);box-shadow:var(--shadow);font-size:var(--t-xl);line-height:1}.wcar-arrow.prev{left:calc(50% - 203px)}.wcar-arrow.next{right:calc(50% - 203px)}.wcar-arrow:disabled{opacity:.35}.wcar-arrow:not(:disabled):hover{background:var(--jade-soft);color:var(--jade-ink)}}.wcar-chips{list-style:none;margin:0;padding:0 var(--s-4);display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2)}.wcar-chip{min-width:44px;min-height:44px;padding:0 var(--s-4);border:1.5px solid var(--sky-deep);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-xl);line-height:1}.wcar-chip.sealed{border-color:#e2918e}.wcar-chip.on{border-color:var(--jade-ink);background:var(--jade-ink);color:#fff}.wcar-chip.on.sealed{border-color:#e2918e}.card-door{flex:none;display:grid;place-items:center;width:44px;height:44px;border:none;border-radius:var(--r-sm);background:var(--paper);color:var(--jade-ink);box-shadow:var(--shadow-soft)}.card-door:active{transform:scale(.94)}.card-door.hint{animation:door-hint .7s ease-out 1 both}@keyframes door-hint{0%{outline:2.5px solid rgba(31,125,79,.45);outline-offset:0;scale:1.12}to{outline:2.5px solid rgba(31,125,79,0);outline-offset:12px;scale:1}}@media(prefers-reduced-motion:reduce){.card-door.hint{animation:none;box-shadow:var(--ring) var(--jade-ink)}}.card-over.leaving{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;transition:background .3s ease,backdrop-filter .3s ease}.card-over.leaving .card-over-btn,.card-over.leaving .card-verdict{opacity:0;transition:opacity .15s ease}.card-over{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);padding:var(--s-4);background:#28303f9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);overflow-y:auto}.card-over .wc{animation:card-up .22s ease both}@keyframes card-up{0%{translate:0 24px;opacity:0}to{translate:0 0;opacity:1}}@media(prefers-reduced-motion:reduce){.card-over .wc{animation:none}}.card-verdict{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:var(--s-2);color:#fff;font-family:var(--font-pinyin);font-size:var(--t-lg);font-weight:600}.card-verdict .was{padding:var(--s-1) var(--s-3);border-radius:var(--r-pill);background:var(--rose-soft);color:var(--red-deep);text-decoration:line-through}.card-verdict .is{padding:var(--s-1) var(--s-3);border-radius:var(--r-pill);background:var(--jade-soft);color:var(--jade-ink)}.card-over-btn{width:min(286px,100%);min-height:52px;justify-content:center}.card-over-btn.go{background:var(--jade-ink);color:#fff}.card-over-btn:lang(zh){font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-lg)}.path{display:flex;flex-direction:column;gap:var(--s-5)}.path-row{display:flex;align-items:center;gap:var(--s-4);max-width:520px}.path-right{margin-left:auto;flex-direction:row-reverse;text-align:right}.path-right .stage-title{justify-content:flex-end}.stage-node{position:relative;flex:none;width:88px;height:88px;border:none;background:none;display:grid;place-items:center;transition:transform .12s ease;filter:drop-shadow(0 3px 6px rgba(40,48,63,.18))}.stage-node .ic{overflow:visible}.stage-node:hover{transform:scale(1.1) rotate(-4deg)}.stage-node:active{transform:scale(.94)}.stage-node.done{border-radius:50%;background:linear-gradient(160deg,#ffe9a8,#f5b940)}.stage-parts{position:absolute;top:-4px;right:-6px;display:flex;gap:3px;padding:3px 5px;border-radius:999px;background:var(--paper);border:2px solid var(--line)}.stage-parts i{width:8px;height:8px;border-radius:50%;border:2px solid var(--line)}.stage-parts i.on{background:var(--gold);border-color:var(--gold-ink)}.stage-node.partial{border-radius:50%;background:conic-gradient(#ffe9a8 var(--part, 50%),transparent 0)}.stage-part-count{margin-left:6px;padding:1px 7px;border-radius:999px;border:1.5px solid var(--line);font-family:var(--font-display);font-size:var(--t-xs);font-variant-numeric:tabular-nums}.story-lesson .lesson-title{display:flex;flex-direction:column;line-height:1.2}.story-lesson .lesson-title-en{font-family:var(--font-body);font-size:var(--t-sm);color:var(--ink-soft)}.stage-num{position:absolute;top:-8px;left:-8px;width:30px;height:30px;border-radius:50%;background:var(--gold);border:none;box-shadow:var(--ring) var(--paper);font-family:var(--font-display);font-weight:800;font-size:var(--t-base);display:grid;place-items:center}.stage-node .stars{position:absolute;bottom:-8px;left:50%;transform:translate(-50%);pointer-events:none;filter:drop-shadow(0 1px 2px rgba(40,48,63,.22))}.stage-title{display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap}.stage-zh{font-family:var(--font-hanzi);font-size:var(--t-3xl)}.stars{display:inline-flex;align-items:center;gap:2px}.cloud{position:absolute;width:130px;opacity:.75;pointer-events:none;z-index:-1;overflow:visible}.connector{display:block;width:min(420px,82%);height:46px;margin:-4px auto;overflow:visible}.connector-flip{transform:scaleX(-1)}.trophy{width:84px;height:84px;flex:none;filter:grayscale(1) opacity(.5)}.trophy-lit{filter:none;animation:bounce 1s ease}.game-top{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.quit-btn{width:44px;height:44px;flex:none;border:none;background:none;color:var(--ink-soft);font-size:var(--t-3xl);font-weight:800;transition:color .15s ease,transform .1s ease}.quit-btn:hover{color:var(--ink);transform:translate(-2px)}.quit-btn:active{transform:translate(-4px)}.dot{width:12px;height:12px;border-radius:50%;background:var(--paper);box-shadow:var(--ring-in) var(--grid)}.dot.done{background:var(--jade);box-shadow:none}.dot.now{background:var(--gold);box-shadow:none;transform:scale(1.25)}.game-mode{display:inline-flex;align-items:center;gap:var(--s-2);font-family:var(--font-hanzi);font-size:var(--t-2xl);white-space:nowrap;min-width:0;overflow:hidden}.game-mode:has(>.rail){display:inline-grid;grid-template-columns:auto minmax(0,auto);align-items:center;column-gap:var(--s-2);line-height:1.05}.game-mode:has(>.rail)>svg{grid-row:span 2}.game-mode .rail{grid-column:2;min-width:0;white-space:normal;line-height:1.1;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}.top-flex{flex:1}.combo-chip{display:inline-flex;align-items:center;gap:3px;color:var(--red);font-family:var(--font-display);font-weight:800;font-size:var(--t-base);animation:pop .3s ease}.combo-chip .ic{animation:flicker 1.4s ease-in-out infinite}.score-pill{font-family:var(--font-display);font-weight:800;font-size:var(--t-base);white-space:nowrap;animation:pop .35s ease}.praise-pop{position:fixed;top:76px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--s-2);background:var(--paper);border:none;border-radius:var(--r-pill);box-shadow:var(--shadow);padding:var(--s-2) var(--s-4) var(--s-2) var(--s-2);z-index:30;pointer-events:none;animation:praise 1.4s ease forwards}.praise-text{font-family:var(--font-hanzi);font-size:var(--t-xl)}.praise-points{font-family:var(--font-display);font-weight:800;color:var(--jade);font-size:var(--t-lg)}.collect-wrap{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:40;pointer-events:none}.collect-toast{display:flex;align-items:center;gap:var(--s-2);background:#fffbee;border-radius:var(--r-lg);box-shadow:var(--shadow-lift);padding:var(--s-3) var(--s-4);font-size:var(--t-md);font-weight:700;animation:toast-in 2.4s ease forwards;max-width:88vw}.collect-star{font-size:var(--t-2xl)}.collect-hanzi{font-family:var(--font-hanzi);font-size:var(--t-xl);font-weight:400}.game-ask{font-family:var(--font-display);font-weight:700;font-size:var(--t-lg);text-align:center;margin:var(--s-4) 0 var(--s-3)}.combo{text-align:center;font-family:var(--font-display);font-weight:800;color:var(--red);font-size:var(--t-lg);animation:pop .3s ease}.stem-card{position:relative;contain:paint;background:var(--paper);border:none;border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-6) var(--s-5);text-align:center}.tian-row{display:flex;justify-content:center;gap:var(--s-2);flex-wrap:wrap}.tian-cell{position:relative;width:86px;height:86px;border:2px solid #ef8d90;border-radius:var(--r-xs);display:grid;place-items:center;font-family:var(--font-hanzi);font-size:56px;line-height:1;background:linear-gradient(to right,transparent calc(50% - 1px),var(--grid) calc(50% - 1px),var(--grid) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(to bottom,transparent calc(50% - 1px),var(--grid) calc(50% - 1px),var(--grid) calc(50% + 1px),transparent calc(50% + 1px))}.tian-small .tian-cell{width:54px;height:54px;font-size:34px}.tian-l5{gap:var(--s-1)}.tian-l5 .tian-cell{width:74px;height:74px;font-size:46px}.tian-small.tian-l4{gap:var(--s-1)}.tian-small.tian-l4 .tian-cell{width:46px;height:46px;font-size:30px}.tian-small.tian-l5{gap:var(--s-1)}.tian-small.tian-l5 .tian-cell{width:40px;height:40px;font-size:25px}.tian-plain{gap:0}.tian-plain .tian-cell{width:auto;min-width:1em;border-color:transparent;background:none}.sentence-stem{font-family:var(--font-hanzi);font-size:28px;line-height:1.7;margin:0}.sub-stem{font-family:var(--font-body);font-weight:700;font-size:var(--t-lg);color:var(--ink-soft);margin:var(--s-3) 0 0;padding-top:12px;border-top:2px dashed var(--grid)}.sub-stem .blank{min-width:64px;border-bottom-width:3px}.hl,.blank-tie{white-space:nowrap}.hl{background:#ffe9a8;border-radius:var(--r-xs);padding:0 var(--s-1);border-bottom:3px solid var(--gold)}.blank{display:inline-block;min-width:84px;border-bottom:3px solid var(--line);background:var(--sky);border-radius:var(--r-xs) var(--r-xs) 0 0}.seal{position:absolute;top:20px;right:14px;pointer-events:none;min-width:76px;min-height:76px;box-sizing:border-box;padding:0 var(--s-3);white-space:nowrap;border-radius:var(--r-md);border:4px solid var(--red-deep);color:var(--red);background:#ffffffeb;font-family:var(--font-hanzi);font-size:34px;display:grid;place-items:center;transform:rotate(12deg);box-shadow:var(--ring-in) #e0393e40;animation:stamp .35s cubic-bezier(.2,2.2,.4,1);z-index:2}.burst{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;animation:burst .6s ease forwards;z-index:1}.listen-stem{width:96px;height:96px;display:grid;place-items:center;margin:var(--s-2) auto;border:none;border-radius:var(--r-pill);background:var(--sky);color:var(--ink)}.listen-stem:active{transform:scale(.96)}.guess-row{min-height:44px;margin:var(--s-2) 0 0;display:flex;justify-content:center;align-items:center}.guess-btn{min-height:44px;padding:0 var(--s-3);border:none;background:none;color:var(--ink-soft);font-family:var(--font-rail);font-size:var(--t-sm);font-weight:700;text-decoration:underline}.guess-note{color:var(--ink-soft);font-family:var(--font-rail);font-size:var(--t-sm)}.speak-btn{position:absolute;bottom:8px;right:10px;width:40px;height:40px;border:none;background:none;color:var(--ink-soft);z-index:2;transition:color .15s ease,transform .1s ease}.speak-btn:hover{color:var(--ink);transform:scale(1.1)}.speak-btn:active{transform:scale(.92)}.options{display:grid;gap:var(--s-3)}.option{display:flex;align-items:center;gap:var(--s-3);width:100%;text-align:left;background:var(--paper);border:none;border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-4);font-size:var(--t-lg);font-weight:700;font-family:var(--font-body);transition:transform .08s ease}.option-pinyin .option-text{font-family:var(--font-pinyin);font-weight:700}.option-zh .option-text{font-family:var(--font-hanzi);font-size:var(--t-2xl);font-weight:400}.option:not(:disabled):hover{transform:translateY(-2px)}.option:not(:disabled):active{transform:translateY(2px);box-shadow:none}.option-letter{flex:none;width:32px;height:32px;border-radius:50%;border:none;background:var(--sky);font-family:var(--font-display);font-weight:800;font-size:var(--t-base);display:grid;place-items:center}.option.right{background:var(--jade-soft);box-shadow:var(--ring) var(--jade);animation:pop .3s ease}.option.right .option-letter{background:var(--jade);color:#fff}.option.redeemed{position:relative;overflow:hidden}.option.redeemed:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.75) 50%,transparent 60%);transform:translate(-100%);animation:glint-sweep .7s .15s ease-out both;pointer-events:none}@keyframes glint-sweep{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.option.redeemed:after{animation:none;display:none}}.option.picked-wrong{background:var(--rose-soft);box-shadow:var(--ring) var(--red);animation:shake .35s ease}.option.faded{opacity:1;background:var(--sky);color:var(--ink-soft);box-shadow:none}.feedback{margin-top:var(--s-4);background:#fff8e8;border:none;box-shadow:var(--shadow);border-radius:var(--r-lg);padding:var(--s-4)}.feedback-title{font-family:var(--font-display);font-weight:800;margin:0 0 var(--s-2)}.feedback-why{color:var(--ink-soft);margin:0 0 var(--s-1);font-size:var(--t-base)}.feedback-why-en{font-family:var(--font-rail);font-size:var(--t-sm);margin-bottom:var(--s-2)}.feedback-answer{margin:0 0 var(--s-3);font-size:var(--t-lg)}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}.match-col{display:grid;grid-auto-rows:1fr;gap:var(--s-3)}.match-card{border:none;border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--shadow);padding:var(--s-3);min-height:clamp(74px,calc((100dvh - 340px) / var(--rows, 4)),120px);display:flex;align-items:center;justify-content:center;transition:transform .08s ease}.match-hanzi{flex-direction:column;gap:0}.match-word{font-family:var(--font-hanzi);font-size:25px;line-height:1.15}.match-english{font-family:var(--font-body);font-weight:700;font-size:var(--t-base)}.match-card:not(:disabled):active{transform:translateY(2px);box-shadow:none}.match-card.selected{background:#eef3ff;box-shadow:var(--ring) var(--blue);transform:scale(1.03)}.match-card.matched{background:var(--jade-soft);color:var(--jade);box-shadow:none;animation:pop .3s ease}.match-card.wrong{background:var(--rose-soft);box-shadow:var(--ring) var(--red);animation:shake .35s ease}.results{display:grid;place-items:center}.results-card{padding:var(--s-7) var(--s-6);text-align:center;max-width:420px;width:100%}.results-card .avatar{filter:drop-shadow(0 5px 10px rgba(40,48,63,.2))}.results-stage{font-family:var(--font-display);font-weight:700;color:var(--ink-soft);margin:0}.results-face{font-size:64px;margin:var(--s-3) 0;animation:bounce .8s ease}.results-msg-zh{font-family:var(--font-hanzi);font-weight:400;font-size:34px;margin:0}.results-score{font-family:var(--font-display);font-weight:800;font-size:var(--t-xl)}.results-chips{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2);margin:var(--s-4) 0 0;padding:0}.results-chip{min-height:44px;display:inline-flex;align-items:center;gap:var(--s-2);padding:0 var(--s-3);border:1.5px solid var(--sky-deep);border-radius:var(--r-sm);background:var(--sky);color:var(--ink)}.results-chip.done{border-color:var(--jade)}.results-chip-hz{font-family:var(--font-hanzi);font-size:var(--t-xl);line-height:1}.results-chip-n{font-family:var(--font-rail);font-size:var(--t-sm);font-weight:700;color:var(--ink-soft)}.results-chip.done .results-chip-n{color:var(--jade-ink)}.xp-gain{color:var(--jade)}.results-buttons{display:grid;gap:var(--s-2);margin-top:var(--s-2)}.big-btn{font-family:var(--font-display);font-weight:800;font-size:var(--t-lg);background:var(--gold);border:none;border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-3) var(--s-5)}.big-btn.wide{display:block;width:100%}.big-btn:active{transform:translateY(2px);box-shadow:none}.big-btn.ghost{background:var(--paper)}.celebration{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:5}.fw{position:absolute;transform:translate(-50%,-50%);opacity:0;animation:fw-pop 3s ease-out infinite;animation-delay:var(--d)}.fw-dots{transform-origin:center;animation:fw-dots 3s ease-out infinite;animation-delay:var(--d)}.cf{position:absolute;top:-7vh;animation:cf-fall linear infinite}.cf-sway{animation:cf-sway ease-in-out infinite alternate}.cf-spin{animation:cf-spin linear infinite}@media(prefers-reduced-motion:reduce){.celebration{display:none}}.book-title{font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-2xl);margin:0;flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;line-height:1.15}.book-count{font-family:var(--font-display);font-weight:800;font-size:var(--t-base);white-space:nowrap}.book-progress{height:10px;border-radius:var(--r-pill);background:var(--paper);box-shadow:var(--shadow-inset);overflow:hidden;margin:var(--s-1) 0 var(--s-3)}.book-progress-fill{height:100%;background:linear-gradient(90deg,var(--gold),#ffd873);border-radius:var(--r-pill);transition:width .5s ease}.book-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:2px 2px var(--s-3)}.book-shown-label{font-family:var(--font-display);font-weight:700;font-size:var(--t-md);color:var(--ink-soft)}.filter-row{display:flex;gap:var(--s-2);overflow-x:auto;scrollbar-width:none;padding:2px 2px var(--s-3);-webkit-overflow-scrolling:touch}.filter-row::-webkit-scrollbar{display:none}.filter-chip{flex:none;display:inline-flex;align-items:center;gap:var(--s-1);border:none;background:var(--paper);border-radius:var(--r-pill);padding:var(--s-2) var(--s-3);font-family:var(--font-hanzi);font-weight:700;font-size:var(--t-sm);color:var(--ink-soft);box-shadow:var(--shadow);transition:background .15s ease,color .15s ease}.filter-chip .rail{font-family:var(--font-rail);font-size:var(--t-2xs);font-weight:600}.filter-n{font-family:var(--font-display);font-weight:800;font-size:var(--t-xs);padding:0 var(--s-2);border-radius:var(--r-pill);background:#4d586e1a}.filter-chip.on{background:#fff3d6;color:var(--ink);box-shadow:var(--ring) var(--gold)}.filter-chip.on .filter-n{background:var(--gold);color:#fff}.book-empty{text-align:center;font-family:var(--font-hanzi);font-size:var(--t-xl);color:var(--ink-soft);margin-top:60px;line-height:1.8}.book-empty span{font-family:var(--font-body);font-size:var(--t-md)}.tile-dots{display:flex;justify-content:center;gap:3px;margin-top:3px}.tile-dot{width:5px;height:5px;border-radius:50%;background:var(--grid)}.tile-dot.f{background:var(--gold)}.sheet-backdrop{position:fixed;inset:0;background:#28303f59;z-index:60;display:flex;align-items:flex-end;justify-content:center;animation:sheet-fade .2s ease}.sheet{position:relative;width:min(560px,100%);background:var(--paper);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:var(--s-5) var(--s-5) calc(26px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 30px #28303f40;animation:sheet-up .25s cubic-bezier(.2,1.2,.4,1)}.sheet-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:none;border-radius:50%;background:var(--sky);color:var(--ink-soft);font-size:var(--t-base);font-weight:800}.sheet-english{font-weight:800;font-size:var(--t-lg);margin:0}.sheet-def{font-family:var(--font-hanzi);font-size:var(--t-xl);color:var(--ink-soft);margin:0 0 var(--s-3)}.sheet-sentence-speak{border:none;background:none;padding:2px var(--s-1);vertical-align:middle}.sheet-card{padding-left:var(--s-3);padding-right:var(--s-3)}.sheet-card .wc{margin:0 auto}.sheet-card .sheet-def,.sheet-card .sheet-does{width:min(286px,100%);margin-left:auto;margin-right:auto}.sheet-does{display:flex;gap:var(--s-2);margin-top:var(--s-4)}.sheet-does:empty{display:none}.sheet-write,.sheet-practise{flex:1;min-height:48px;justify-content:center}.sheet-practise{background:var(--jade-ink);color:#fff}.sheet-write:lang(zh),.sheet-practise:lang(zh){font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-lg)}.profile-hero{text-align:center}.profile-avatar{display:inline-grid;place-items:center;margin-bottom:var(--s-2)}.profile-avatar .avatar{filter:drop-shadow(0 5px 10px rgba(40,48,63,.2))}.profile-title{font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-3xl);margin:0 0 var(--s-2)}.profile-stats{display:flex;justify-content:center;gap:var(--s-2);flex-wrap:wrap}.picker-section{margin-bottom:var(--s-6)}.page.profile>:is(header,section):not(.home-header){margin-top:0;margin-bottom:0}.page.profile>:is(header,section):not(.home-header)+:is(header,section){margin-top:var(--s-6)}.page.profile>.profile-account{margin-top:var(--s-4)}.page.profile>.profile-premium{margin-top:var(--s-3);background:#fff3d6;border:2px solid var(--ink);box-shadow:0 2px 0 var(--ink)}.profile-premium .stg-note+.stg-actions{margin-top:var(--s-3)}.profile-premium .stg-block{background:none;border-top:none}.profile-account .stg-btn{min-height:44px}.profile-account{position:relative}.account-reason{display:flex;align-items:center;gap:var(--s-3);padding-right:44px;margin-bottom:var(--s-3)}.benefit-icon{width:32px;height:32px;filter:none;color:var(--ink);background:#fff3d6}.benefit-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:var(--s-2) var(--s-5);border:none;border-radius:var(--r-pill);background:var(--jade-ink);color:#fff;font-family:var(--font-display);font-weight:700;font-size:var(--t-base);cursor:pointer}.account-reason{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3)}.account-reason-icon{background:var(--jade-soft);color:var(--jade-ink);filter:none}.account-reason-text{margin:0;font-family:var(--font-display);font-weight:700;font-size:var(--t-md);line-height:1.25;color:var(--ink)}.account-reason-note{margin:var(--s-1) 0 0;font-size:var(--t-sm);line-height:1.4;color:var(--ink-soft)}.g-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:48px;padding:var(--s-2) var(--s-4);border:2px solid var(--ink);border-radius:var(--r-md);background:#fff;color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:var(--t-base);box-shadow:0 2px 0 var(--ink);cursor:pointer;line-height:1.2}.g-btn:active{transform:translateY(1px)}.g-btn:disabled{opacity:.6;cursor:default}.g-btn-logo{flex:0 0 auto}.benefit-list{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.benefit-list li{display:flex;align-items:center;gap:var(--s-3)}.profile-premium .benefit-icon{width:32px;height:32px;filter:none;color:var(--ink);background:var(--paper)}.profile-premium .stg-head{flex-direction:row;align-items:center;gap:var(--s-2)}.benefit-crown{flex:none;color:var(--gold)}.benefit-price{margin-top:var(--s-3)}.benefit-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:var(--s-2) var(--s-5);border:2px solid var(--ink);border-radius:var(--r-pill);background:var(--jade-ink);color:#fff;font-family:var(--font-display);font-weight:700;font-size:var(--t-base);cursor:pointer;box-shadow:0 2px 0 var(--ink)}.benefit-cta .stg-zh{color:inherit}.benefit-cta:active{transform:translateY(2px);box-shadow:none}.picker-title{margin:0 0 var(--s-2);display:flex;flex-direction:column;gap:1px;font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-xl);color:var(--ink);line-height:1.25}.picker-title>small,.picker-title>span:not([lang]){font-family:var(--font-rail);font-weight:600;font-size:var(--t-sm);color:var(--ink-soft)}.picker-hint{color:var(--ink-soft);font-size:var(--t-sm);margin:0 0 var(--s-3)}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--s-2)}.picker-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-1);background:var(--paper);border:none;border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--s-3) var(--s-2);font-family:var(--font-body)}.picker-card:not(:disabled):active{transform:translateY(2px)}.picker-card.selected{background:#fffbee;box-shadow:var(--ring) var(--gold)}.picker-card.locked{background:var(--sky);color:var(--ink-soft);cursor:not-allowed}.picker-card.locked .avatar{filter:grayscale(1)}.picker-item{display:flex;flex-direction:column;align-items:stretch;gap:var(--s-1)}.picker-word{align-self:center;padding:var(--s-1) var(--s-3)}.picker-name{font-family:var(--font-hanzi);font-size:var(--t-lg)}.picker-lock{font-family:var(--font-display);font-weight:700;font-size:var(--t-2xs);color:var(--ink-soft)}.picker-check{position:absolute;top:-8px;right:-6px;width:26px;height:26px;border-radius:50%;background:var(--jade);color:#fff;border:2px solid var(--paper);font-weight:900;display:grid;place-items:center;font-size:var(--t-md)}.page.crash{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-3);padding-top:64px;background:var(--sky);min-height:100vh;min-height:100dvh}.crash-title{font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-3xl);margin:0}.crash-line{font-family:var(--font-hanzi);font-size:var(--t-base);line-height:1.8;color:var(--ink-soft);max-width:22em;margin:0}.crash-retry{border:none;background:var(--gold);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-lg);border-radius:var(--r-pill);padding:var(--s-3) var(--s-7);box-shadow:var(--shadow)}.crash-more{margin-top:var(--s-4);max-width:26em;font-family:var(--font-hanzi);font-size:var(--t-sm);color:var(--ink-soft)}.crash-more summary{cursor:pointer;padding:var(--s-2)}.crash-detail{font-family:var(--font-pinyin);font-size:var(--t-2xs);color:var(--ink-soft);background:var(--paper);border-radius:var(--r-sm);padding:var(--s-2) var(--s-3);overflow-wrap:anywhere;text-align:left}.crash-warn{line-height:1.7;color:var(--red-deep)}.crash-wipe{border:none;background:var(--rose-soft);color:var(--red-deep);font-family:var(--font-hanzi);font-size:var(--t-md);border-radius:var(--r-pill);padding:var(--s-3) var(--s-5)}@keyframes pop{0%{transform:scale(.92)}55%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-4px)}}@keyframes stamp{0%{transform:rotate(12deg) scale(2.4);opacity:0}70%{transform:rotate(12deg) scale(.95);opacity:1}to{transform:rotate(12deg) scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-14px)}70%{transform:translateY(-5px)}}@keyframes fw-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}7%{opacity:1}32%{opacity:1}58%,to{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}@keyframes fw-dots{0%,8%{transform:scale(.35);opacity:0}22%{opacity:1}58%,to{transform:scale(1.3);opacity:0}}@keyframes cf-fall{to{transform:translateY(115vh)}}@keyframes cf-sway{0%{transform:translate(-9px)}to{transform:translate(9px)}}@keyframes sheet-up{0%{transform:translateY(60px);opacity:.4}to{transform:translateY(0);opacity:1}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes cf-spin{to{transform:rotate3d(1,1,0,360deg)}}@keyframes praise{0%{opacity:0;transform:translate(-50%) translateY(14px) scale(.7)}18%{opacity:1;transform:translate(-50%) translateY(0) scale(1.05)}30%{transform:translate(-50%) translateY(0) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-16px) scale(.95)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-24px)}12%{opacity:1;transform:translateY(0)}86%{opacity:1}to{opacity:0;transform:translateY(-14px)}}@keyframes burst{0%{opacity:0;transform:scale(.4)}35%{opacity:1}to{opacity:0;transform:scale(1.25)}}@keyframes drift{0%{transform:translate(0)}to{transform:translate(26px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:480px){.tian-cell{width:66px;height:66px;font-size:42px}.tian-l4 .tian-cell{width:60px;height:60px;font-size:38px}.tian-l5{gap:var(--s-1)}.tian-l5 .tian-cell{width:50px;height:50px;font-size:30px}.sentence-stem{font-size:var(--t-2xl)}.app-title{font-size:32px}.path-row{max-width:100%}.stage-node{width:74px;height:74px;font-size:32px}.match-card{min-height:clamp(64px,calc((100dvh - 340px) / var(--rows, 4)),112px);padding:var(--s-2)}.match-word{font-size:var(--t-2xl)}.match-pinyin{font-size:var(--t-2xs)}.match-english{font-size:var(--t-md)}.match-grid,.match-col{gap:var(--s-2)}.option{padding:var(--s-3);font-size:var(--t-base)}.level-strip{flex-wrap:wrap}}.path>div{animation:rise .45s ease backwards}.path>div:nth-child(1){animation-delay:.03s}.path>div:nth-child(2){animation-delay:.09s}.path>div:nth-child(3){animation-delay:.15s}.path>div:nth-child(4){animation-delay:.21s}.path>div:nth-child(5){animation-delay:.27s}.path>div:nth-child(6){animation-delay:.33s}.stage-node.next{animation:invite 2.2s ease-in-out infinite}@keyframes invite{0%,to{filter:drop-shadow(0 3px 6px rgba(40,48,63,.18))}50%{filter:drop-shadow(0 3px 6px rgba(40,48,63,.12)) drop-shadow(0 0 12px rgba(245,185,64,.85));transform:scale(1.05)}}.mascot .avatar,.profile-avatar .avatar{animation:breathe 3.2s ease-in-out infinite}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.connector path{animation:dash-flow 10s linear infinite}@keyframes dash-flow{to{stroke-dashoffset:-66}}.level-fill{position:relative;overflow:hidden}.level-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translate(-100%);animation:sheen 4.5s ease-in-out infinite}@keyframes sheen{0%,55%{transform:translate(-100%)}75%,to{transform:translate(100%)}}@keyframes tile-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.results-stars .stars svg{animation:star-land .5s cubic-bezier(.2,1.6,.4,1) backwards}.results-stars .stars svg:nth-child(1){animation-delay:.15s}.results-stars .stars svg:nth-child(2){animation-delay:.4s}.results-stars .stars svg:nth-child(3){animation-delay:.65s}@keyframes star-land{0%{opacity:0;transform:scale(2.2) rotate(-24deg)}to{opacity:1;transform:scale(1) rotate(0)}}.nav-tab.active{animation:pop .25s ease}@keyframes flicker{0%,to{transform:rotate(-4deg) scale(1)}50%{transform:rotate(5deg) scale(1.08)}}.combo .ic{animation:flicker 1.4s ease-in-out infinite}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.confirm-backdrop{align-items:center}.confirm-box{background:var(--paper);border-radius:var(--r-xl);box-shadow:var(--shadow-lift);padding:var(--s-6);text-align:center;max-width:330px;width:calc(100% - 40px);animation:pop .25s ease}.confirm-title{font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-2xl);margin:var(--s-2) 0 2px}.confirm-text{color:var(--ink-soft);font-size:var(--t-md);margin:0 0 var(--s-4)}.confirm-buttons{display:grid;gap:var(--s-2)}.retry-hint{text-align:center;font-family:var(--font-display);font-weight:700;color:var(--red);font-size:var(--t-base);min-height:1.4em;margin:-4px 0 var(--s-2)}.retry-hint-text{animation:rise .3s ease}.big-btn.review-btn{background:var(--rose-soft);color:var(--red-deep)}.mascot{position:relative;border:none;background:none;padding:0;cursor:pointer;transition:transform .12s ease}.mascot-level{position:absolute;bottom:-4px;right:-12px;background:var(--red);color:#fff;border-radius:var(--r-sm);box-shadow:var(--ring) var(--paper);font-family:var(--font-display);font-weight:800;font-size:var(--t-xs);padding:2px var(--s-2);pointer-events:none}.mascot:hover{transform:scale(1.06)}.mascot:active{transform:scale(.94)}.world{display:flex;flex-direction:column;gap:var(--s-6);padding-top:34px}.wm-row{display:flex;align-items:center;gap:var(--s-3);max-width:480px;border:none;text-align:left;background:#ffffff80;border-radius:var(--r-pill);padding:var(--s-2) var(--s-5) var(--s-2) var(--s-2);transition:background .15s ease,transform .12s ease}.wm-row.wm-right{margin-left:auto;flex-direction:row-reverse;text-align:right;padding:var(--s-2) var(--s-2) var(--s-2) var(--s-5)}.wm-row:not(.locked):hover{background:#ffffffd1}.wm-row:not(.locked):active{transform:scale(.985);background:#ffffffe6}.wm-row.locked{background:#ffffff6b;cursor:not-allowed}.wm-row.locked .wm-title{color:var(--ink-soft)}.wm-node{position:relative;flex:none;width:84px;height:84px;border:none;border-radius:50%;background:var(--paper);box-shadow:var(--shadow-lift);display:grid;place-items:center;transition:transform .12s ease}.wm-row:not(.locked):hover .wm-node{transform:scale(1.06)}.wm-row:not(.locked):active .wm-node{transform:scale(.95)}.wm-node.done{background:#fff3d6}.wm-node.locked{background:#dae1ec;box-shadow:var(--ring-in) #4d586e3d;cursor:not-allowed;opacity:1}.wm-lock{position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;border-radius:50%;background:var(--paper);box-shadow:var(--shadow);color:var(--ink-soft);display:grid;place-items:center}.wm-node.current{animation:invite 2.2s ease-in-out infinite}.wm-ring{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);pointer-events:none}.wm-badge{position:absolute;top:-6px;left:-6px;min-width:26px;height:26px;border-radius:50%;background:var(--gold);box-shadow:var(--ring) var(--paper);font-family:var(--font-display);font-weight:800;font-size:var(--t-sm);display:grid;place-items:center;padding:0 var(--s-1)}.wm-done-badge{position:absolute;bottom:-4px;right:-4px;filter:drop-shadow(0 1px 2px rgba(40,48,63,.25))}.wm-avatar{position:absolute;top:-32px;left:68%;transform:translate(-50%);filter:drop-shadow(0 3px 5px rgba(40,48,63,.22));animation:breathe 3.2s ease-in-out infinite;pointer-events:none}.wm-info{display:flex;flex-direction:column;gap:2px}.wm-title{font-family:var(--font-hanzi);font-size:var(--t-xl)}.wm-more{text-align:center;font-family:var(--font-hanzi);color:var(--ink-soft);margin:var(--s-2) 0 0}.lesson-title{flex:1;text-align:center;font-family:var(--font-hanzi);font-size:var(--t-2xl);margin:0;font-weight:400}.teacher-block{display:flex;align-items:center;gap:var(--s-3);text-align:left;background:#fff3d6;border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-4);margin-bottom:var(--s-4);animation:pop .4s ease}.teacher-block .owl{flex:none;overflow:visible}.teacher-bubble{font-size:var(--t-md);line-height:1.55}.teacher-bubble strong{font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-lg)}.wm-block{position:relative;content-visibility:auto;contain-intrinsic-size:auto 150px;overflow-clip-margin:40px}.wm-block:last-child{contain-intrinsic-size:auto 108px}.wm-decor{position:absolute;top:34px;z-index:0;opacity:.75;pointer-events:none}.wm-row,.wm-road{position:relative;z-index:1}.wm-decor .ic{overflow:visible;filter:drop-shadow(0 2px 3px rgba(40,48,63,.12))}.wm-node.locked .wm-face .ic{filter:grayscale(1);opacity:.55}.wm-node.locked .wm-badge{background:var(--grid);color:var(--ink-soft)}.page.home{--head-bg: #dff2ff}.page.rd-page{--head-bg: #dff1ff}.page.dx-page{--head-bg: #fdf4e2}.world-page{position:relative}.wm-bands{margin:0 0 var(--s-2)}.wm-bands .seg-btn{padding:var(--s-2) 2px}.wm-band-n{font-variant-numeric:tabular-nums}.paper-sheet-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-2);padding-right:40px}.paper-sheet-title{margin:0;font-family:var(--font-hanzi);font-size:var(--t-xl);font-weight:400}.paper-sheet-meta,.paper-sheet-caption{margin:0;font-size:var(--t-sm);color:var(--ink-soft)}.paper-sheet-meta{margin-top:2px}.paper-sheet-caption{margin-top:var(--s-2)}.paper-sheet-practice{display:flex;align-items:center;justify-content:space-between;width:100%;margin:var(--s-3) 0 0;padding:0;border:none;background:none;color:var(--ink);font-family:var(--font-body);font-size:var(--t-base);font-weight:700;text-align:left}.paper-sheet-practice.on .stg-switch{background:var(--jade)}.paper-sheet-practice.on .stg-knob{transform:translate(18px)}.paper-sheet .exam-drills{margin-top:var(--s-3);padding-top:12px;border-top:1px solid rgba(77,88,110,.1);gap:var(--s-2)}.paper-sheet .exam-drills-label{flex-basis:100%;font-size:var(--t-xs);margin:0 0 2px}.paper-sheet .exam-drill{display:inline-flex;flex-direction:column;align-items:center;gap:1px;padding:var(--s-2) var(--s-4);background:transparent;box-shadow:var(--ring-in) var(--sky-deep);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-base)}.exam-drill-n{font-family:var(--font-body);font-size:var(--t-2xs);font-weight:700;color:var(--ink-soft)}.paper-sheet-status{display:inline-flex;flex-direction:column;margin:0;padding:3px var(--s-3);border-radius:var(--r-pill);background:var(--sky-deep);font-size:var(--t-xs);font-weight:700;color:var(--ink-soft)}.paper-sheet-status.done{background:var(--jade-soft);color:var(--jade-ink)}.paper-sheet-redo{display:inline-flex;flex-direction:column;align-items:center;margin-top:var(--s-3);padding:var(--s-2) var(--s-4);border:1.5px solid var(--red-deep);border-radius:var(--r-pill);background:transparent;color:var(--red-deep);font-family:var(--font-hanzi);font-size:var(--t-sm);font-weight:700}.paper-sheet-redo .rail{color:var(--red-deep)}.paper-sheet-log{margin:var(--s-3) 0 0;padding:0;list-style:none;font-size:var(--t-xs);color:var(--ink-soft)}.paper-sheet-log-row{display:flex;justify-content:space-between;padding:var(--s-1) 0;border-top:1px solid rgba(77,88,110,.1);font-variant-numeric:tabular-nums}.exams-page .wm-bands{position:sticky;top:92px;z-index:20}.hsk-row{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;row-gap:4px}.hsk-row-line{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;align-items:center}.road{display:block;width:min(420px,82%);height:46px;margin:-2px auto;overflow:visible}.road-flip{transform:scaleX(-1)}.wm-node{width:92px;height:92px}.wm-node.current{transform:scale(1.1)}.wm-node.current:hover{transform:scale(1.16)}.wm-node.done{background:linear-gradient(160deg,#ffe9a8,#f5b940)}.wm-node.done .wm-face .ic{filter:drop-shadow(0 1px 2px rgba(184,138,18,.5))}.wm-decor{padding:var(--s-1)}.wm-decor .ic{overflow:visible}.stage-node.launching,.wm-node.launching{animation:launch .36s cubic-bezier(.2,1.4,.4,1);z-index:3}@keyframes launch{0%{transform:scale(1)}45%{transform:scale(1.24) rotate(7deg)}to{transform:scale(1.08) rotate(0)}}@media(hover:none){.stage-node:not(.locked):active{transform:scale(1.1) rotate(-4deg)}.wm-node:not(.locked):active{transform:scale(1.1)}.gear-btn:active{transform:rotate(30deg)}.mascot:active{transform:scale(1.08)}.picker-card:not(:disabled):active{transform:scale(1.04)}.option:not(:disabled):active{transform:translateY(-2px)}}.ach-wrap{--nav-h: 71px;position:fixed;bottom:calc(12px + env(safe-area-inset-bottom,0px) + var(--nav-h) + 8px);right:14px;z-index:70;pointer-events:none}.ach-toast{display:flex;align-items:center;gap:var(--s-3);background:#2f2a3a;border:2px solid #6f6486;border-radius:var(--r-sm);padding:var(--s-3) var(--s-4) var(--s-3) var(--s-3);box-shadow:0 6px 18px #14101e59;animation:ach-in 3.4s ease forwards;max-width:320px}.ach-icon{display:grid;place-items:center;width:44px;height:44px;background:#443c58;border-radius:var(--r-sm);flex:none}.ach-text{display:flex;flex-direction:column;line-height:1.25}.ach-heading{color:#f5b940;font-family:var(--font-display);font-weight:800;font-size:var(--t-sm)}.ach-name{color:#fff;font-family:var(--font-hanzi);font-size:var(--t-lg)}.ach-sub{color:#b9aed4;font-size:var(--t-2xs);font-weight:700}@keyframes ach-in{0%{opacity:0;transform:translateY(24px)}8%,88%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(24px)}}.ach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2)}.ach-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-1);background:var(--paper);border:none;border-radius:var(--r-sm);box-shadow:var(--shadow);padding:var(--s-3) var(--s-2);cursor:pointer}.ach-card:not(.got){background:var(--sky);box-shadow:var(--shadow-soft)}.ach-card:not(.got) .ic{filter:grayscale(1)}.ach-card-icon{flex:none;display:grid;place-items:center}.ach-badge{display:inline-grid;place-items:center;padding:var(--s-1);border-radius:50%;border:2.5px solid transparent}.ach-tier-1{border-color:var(--bronze)}.ach-tier-2{border-color:var(--silver)}.ach-tier-3{border-color:var(--gold)}.ach-card:not(.got) .ach-badge,.ach-sheet-icon:not(.got) .ach-badge{filter:grayscale(1)}.ach-card.fresh{animation:badge-flip .9s .2s ease-in-out both}@keyframes badge-flip{0%{transform:perspective(600px) rotateY(0);filter:grayscale(1)}49%{transform:perspective(600px) rotateY(90deg);filter:grayscale(1)}51%{transform:perspective(600px) rotateY(-90deg);filter:none}to{transform:perspective(600px) rotateY(0);filter:none}}.feedback-actions{display:flex;gap:var(--s-2);align-items:center}.feedback-actions .big-btn{flex:1;position:relative;overflow:hidden}.feedback-actions .big-btn.autoing:after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:#ffffff8c;transform-origin:left;animation:drain var(--auto-ms, 2.2s) linear both}@keyframes drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.feedback-stay{flex:none;padding:var(--s-3) var(--s-4);border:none;border-radius:var(--r-lg);background:transparent;color:var(--ink-soft);font-family:var(--font-body);font-size:var(--t-sm);font-weight:700;cursor:pointer}@media(prefers-reduced-motion:reduce){.feedback-actions .big-btn.autoing:after{animation:none}}.exam-to-pass{margin:var(--s-2) 0 0;font-size:var(--t-base);font-weight:700;color:var(--ink)}.buddy-name{display:block;width:min(260px,80%);margin:var(--s-1) auto 0;padding:var(--s-2) var(--s-3);border:none;border-radius:var(--r-sm);background:transparent;text-align:center;font-family:var(--font-body);font-size:var(--t-lg);color:var(--ink)}.buddy-name:placeholder-shown,.buddy-name:focus{outline:none;background:var(--paper);box-shadow:var(--ring) var(--gold)}.buddy-name::placeholder{color:var(--ink-soft)}.hsk-cert-btn{grid-column:2 / -1;justify-self:end;margin:var(--s-1) 0 2px;padding:var(--s-1) var(--s-3);border:none;border-radius:var(--r-pill);background:var(--sky);color:var(--ink);font-family:var(--font-body);font-size:var(--t-sm);font-weight:700;cursor:pointer}.cert-page{background:#fbf8f1;border:4px solid #e0c98a;border-radius:var(--r-md);padding:var(--s-5) var(--s-4) var(--s-4);text-align:center}.cert-avatar{display:flex;justify-content:center}.cert-name{margin:var(--s-1) 0 0;font-size:var(--t-xl);font-weight:800;color:var(--ink)}.cert-title{margin:var(--s-2) 0 var(--s-3);font-size:var(--t-xl);color:var(--ink)}.cert-line{margin:var(--s-1) 0;font-size:var(--t-base);color:var(--ink)}.cert-actions{display:flex;gap:var(--s-2);margin-top:var(--s-3)}.cert-actions .big-btn{flex:1}.postcard-frame{width:min(100%,300px);aspect-ratio:4 / 5;margin:var(--s-6) auto 0}.postcard-img{display:block;width:100%;height:100%;box-shadow:var(--shadow)}.postcard-actions{display:flex;gap:var(--s-2);margin-top:var(--s-4)}.postcard-actions .big-btn{flex:1}.streak-card-postcard,.exam-postcard-btn,.hsk-postcard-btn{align-self:center;margin-top:var(--s-2)}.word-ribbon{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1);margin:var(--s-2) 0 0;padding:var(--s-3);background:var(--paper);border-radius:var(--r-md);box-shadow:var(--shadow-soft)}.word-ribbon-n{flex:none;padding:1px var(--s-2);border-radius:var(--r-pill);background:var(--sky);color:var(--ink);font-size:var(--t-xs);font-weight:800}.word-ribbon-hz{font-family:var(--font-hanzi);font-size:var(--t-base);color:var(--ink)}@media(prefers-reduced-motion:reduce){.ach-card.fresh{animation:none}}.ach-card-zh{font-family:var(--font-hanzi);font-size:var(--t-sm);line-height:1.25}.ach-card-en{font-size:var(--t-2xs);color:var(--ink-soft);font-weight:700}.ach-sheet{text-align:center}.ach-sheet-icon{display:inline-grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--sky-deep);margin-bottom:var(--s-2)}.ach-sheet-icon:not(.got) .ic{filter:grayscale(1)}.ach-sheet-title{margin:0 0 var(--s-2);font-family:var(--font-hanzi);font-size:var(--t-xl)}.ach-sheet-how{margin:0;font-family:var(--font-hanzi);font-size:var(--t-sm);color:var(--ink-soft)}.ach-sheet-crit{margin:2px 0 var(--s-3);font-size:var(--t-base);font-weight:700}.ach-sheet-when{margin:0;font-family:var(--font-hanzi);font-size:var(--t-sm);color:var(--ink-soft)}.stage-node.mastery .stage-emoji{filter:drop-shadow(0 0 8px rgba(155,120,255,.55))}.stage-num-mastery{background:#b79bff}.crown-earned{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);filter:drop-shadow(0 2px 3px rgba(40,48,63,.3));pointer-events:none}.mastery-tag{font-family:var(--font-display);font-weight:800;font-size:var(--t-2xs);color:#6d4ac4;background:#efe7ff;border-radius:var(--r-pill);padding:3px var(--s-3);align-self:center}.results-crown{display:flex;flex-direction:column;align-items:center;gap:var(--s-1);margin:var(--s-1) 0}.results-crown .ic{overflow:visible;filter:drop-shadow(0 3px 6px rgba(184,138,18,.45));animation:bounce .9s ease}.crown-msg{font-family:var(--font-hanzi);font-size:var(--t-xl);color:#b8860b;margin:0}.crown-hint{font-family:var(--font-hanzi);font-size:var(--t-lg);color:var(--ink-soft);margin:var(--s-1) 0}.levelup-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#ffe9a8eb,#fff9ebf0 60%);animation:sheet-fade .25s ease}.levelup-box{text-align:center;animation:pop .45s cubic-bezier(.2,1.5,.4,1)}.levelup-avatar{display:inline-block;filter:drop-shadow(0 8px 16px rgba(40,48,63,.25));animation:bounce 1s ease infinite}.levelup-title{font-family:var(--font-hanzi);font-size:40px;margin:var(--s-2) 0 2px}.levelup-level{font-family:var(--font-display);font-weight:800;font-size:var(--t-2xl);color:var(--red);margin:0 0 var(--s-1)}.levelup-cheer{font-family:var(--font-hanzi);font-size:var(--t-lg);color:var(--ink-soft);margin:0}.clue-mark{background:#ffe9a8;border-radius:var(--r-xs);padding:0 3px;border-bottom:3px solid var(--gold);animation:clue-glow 1.5s ease-in-out 2}@keyframes clue-glow{0%,to{box-shadow:0 0 0 0 var(--glow-off, rgba(245, 185, 64, 0))}50%{box-shadow:0 0 0 5px var(--glow-on, rgba(245, 185, 64, .45))}}.word-list{display:grid;grid-template-columns:max-content 1fr auto auto;gap:var(--s-3)}.word-row{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;align-items:center;width:100%;border:none;background:var(--paper);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:var(--s-3) var(--s-4);text-align:left;animation:tile-in .25s ease backwards;animation-delay:min(var(--i, 0) * 10ms,.4s);transition:transform .08s ease}.word-row:active{transform:scale(.985)}.word-row.r-tricky{background:var(--rose-soft)}.word-row.r-got{background:#fff3d6}.row-hanzi{font-family:var(--font-hanzi);font-size:var(--t-xl)}.row-english{flex:1;min-width:0;font-size:var(--t-xs);font-weight:700;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-dots{margin:0;flex:none}.row-star{flex:none;display:grid;place-items:center}.en-btn{position:absolute;bottom:8px;left:12px;border:none;background:none;font-family:var(--font-display);font-weight:800;font-size:var(--t-md);letter-spacing:1px;color:var(--ink-soft);z-index:2;transition:color .15s ease}.en-btn:hover,.en-btn[aria-pressed=true]{color:var(--blue)}.decor-art{display:inline-block}.decor-art .ic{overflow:visible}.decor-art.sway{animation-name:wind;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;transform-origin:50% 100%}@keyframes wind{0%{transform:rotate(-2.5deg)}to{transform:rotate(3.2deg)}}.decor-art.flutter{animation-name:flutter-bob;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}@keyframes flutter-bob{0%{transform:translateY(0) rotate(-5deg)}to{transform:translateY(-8px) rotate(6deg)}}.rotor{animation:rotor-spin 7s linear infinite;transform-origin:12px 10px}@keyframes rotor-spin{to{transform:rotate(360deg)}}.update-banner{position:fixed;bottom:144px;left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:var(--s-2);width:max-content;max-width:calc(100vw - 2 * var(--s-4));border:none;background:var(--ink);color:#fff;font-family:var(--font-body);font-weight:700;font-size:var(--t-md);border-radius:var(--r-pill);padding:var(--s-3) var(--s-4);box-shadow:0 6px 20px #14101e59;animation:rise .4s ease}.update-banner:disabled{cursor:progress}.version-line{text-align:center;color:var(--ink-soft);-webkit-user-select:text;user-select:text;font-size:var(--t-xs);font-weight:700;margin-top:var(--s-6)}.option-speak{margin-left:auto;flex:none;display:grid;place-items:center;padding:var(--s-2);color:var(--ink-soft);border-radius:50%;transition:color .15s ease,transform .1s ease}.option-speak:hover{color:var(--ink);transform:scale(1.12)}.top-spacer{width:44px;flex:none}.round-bar{height:10px;margin:-6px 2px var(--s-4);border-radius:var(--r-pill);background:var(--paper);box-shadow:var(--ring-in) var(--grid);overflow:hidden}.round-fill{height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--jade),#5cc790);transition:width .35s ease}.world{position:relative}.traveler{position:absolute;left:0;top:0;width:50px;height:50px;margin:-25px 0 0 -25px;z-index:6;pointer-events:none;filter:drop-shadow(0 5px 7px rgba(40,48,63,.28));animation:travel 2s cubic-bezier(.45,0,.25,1) forwards}@keyframes travel{0%{transform:translate(var(--x0),var(--y0))}to{transform:translate(var(--x1),var(--y1))}}@keyframes walk-bob{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-8px) rotate(5deg)}}@media(prefers-reduced-motion:reduce){.traveler{animation-duration:.01s}}.write-overlay{position:fixed;inset:0;z-index:70;overflow:hidden;overscroll-behavior:contain;background:var(--sky);padding:var(--s-5) var(--s-4);display:flex;flex-direction:column;max-width:640px;margin:0 auto}.write-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-2)}.write-stage .write-pinyin{margin-top:2px}.write-grid{position:relative;width:300px;height:300px;background:var(--paper);border:2.5px solid #ef8d90;border-radius:var(--r-md);box-shadow:var(--shadow-lift);display:grid;place-items:center}.mi-grid{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);pointer-events:none;z-index:0}.mi-grid line{stroke:#e3ecf8;stroke-width:.6;stroke-dasharray:3 3}.write-box{position:relative;z-index:1;width:272px;height:272px;touch-action:none}.write-error{position:absolute;inset:0;display:grid;place-items:center;background:#ffffffe6;font-family:var(--font-hanzi);font-size:var(--t-xl);color:var(--ink-soft);border-radius:var(--r-md);margin:0;text-align:center;padding:var(--s-5)}.write-done{position:absolute;bottom:-26px;right:-22px;z-index:2;filter:drop-shadow(0 4px 8px rgba(40,48,63,.25));animation:pop .4s cubic-bezier(.2,1.5,.4,1);pointer-events:none}.write-pinyin{font-family:var(--font-pinyin);font-weight:700;font-size:var(--t-2xl);color:var(--ink-soft);margin:0}.write-controls{display:flex;gap:var(--s-4)}.write-ctl{width:56px;height:56px;border:none;border-radius:50%;background:var(--paper);box-shadow:var(--shadow);display:grid;place-items:center;transition:transform .1s ease}.write-ctl:active{transform:scale(.92)}.write-char-dots{display:flex;gap:var(--s-2);align-items:center}.char-dot{width:16px;height:16px;padding:0;border:none;border-radius:50%;background:var(--grid);transition:transform .12s ease,background .15s ease}.char-dot.f{background:var(--gold)}.char-dot.now{background:var(--red);transform:scale(1.25)}.char-dot:hover{transform:scale(1.2)}.write-grid.shiver{animation:shiver .3s ease}@keyframes shiver{0%,to{transform:translate(0)}30%{transform:translate(-4px)}65%{transform:translate(4px)}}.write-seal{position:absolute;top:2px;right:2px;z-index:3;pointer-events:none}.write-seal .seal{position:static;width:62px;height:62px;font-size:36px}.trace-tag{font-family:var(--font-display);font-weight:800;font-size:var(--t-2xs);color:#b8262b;background:var(--rose-soft);border-radius:var(--r-pill);padding:3px var(--s-3);margin-left:8px;vertical-align:4px}.dict-slots{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--s-1);max-width:340px;margin-bottom:var(--s-1)}.dict-slot{width:32px;height:32px;display:grid;place-items:center;background:var(--paper);border:2px solid var(--grid);border-radius:var(--r-xs);font-family:var(--font-display);font-size:var(--t-xl);line-height:1;color:var(--ink)}.dict-slot.now{border-color:var(--gold);animation:dict-now 1.2s ease-in-out infinite}@keyframes dict-now{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.dict-slot.skip{color:#c56a74;border-color:var(--rose-soft);background:var(--rose-soft)}.dict-slots.long{gap:var(--s-1)}.dict-slots.long .dict-slot{width:27px;height:27px;font-size:var(--t-lg);border-radius:var(--r-xs)}.dict-tie{display:inline-flex;align-items:center;gap:var(--s-1)}.dict-punct{font-family:var(--font-display);font-size:var(--t-xl);color:var(--ink-soft)}.oral-page{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}.oral-head{display:flex;align-items:center;gap:var(--s-2);font-family:var(--font-display);font-size:var(--t-3xl);margin:var(--s-1) 0 var(--s-4)}.oral-setup{background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}.oral-setup-title{font-family:var(--font-display);font-size:var(--t-xl);margin:0}.oral-setup-text{font-size:var(--t-md);color:var(--ink-soft);line-height:1.7;margin:0}.oral-key-input{border:2px solid var(--grid);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4);font-size:var(--t-lg);font-family:inherit}.oral-key-input:focus{outline:none;border-color:var(--blue, #3d6bff)}.oral-key-link{border:none;background:none;color:var(--ink-soft);font-size:var(--t-xs);text-decoration:underline;margin:var(--s-4) auto 0;display:block}.oral-list{display:flex;flex-direction:column;gap:var(--s-2)}.oral-item{display:flex;align-items:center;gap:var(--s-3);background:var(--paper);border:none;border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--s-3) var(--s-4);text-align:left;transition:transform .1s ease}.oral-item:active{transform:scale(.98)}.oral-item-icon{flex:none;display:grid;place-items:center}.oral-item-title{flex:1;font-family:var(--font-display);font-size:var(--t-lg)}.oral-best{display:inline-flex;align-items:center;gap:var(--s-1);font-family:var(--font-display);font-size:var(--t-md);color:var(--ink-soft)}.oral-best.gold{color:#b8860b}.oral-best.new{font-size:var(--t-xs);opacity:.6}.oral-stage{display:flex;flex-direction:column;align-items:center;gap:var(--s-4);margin-top:var(--s-5)}.oral-hint{font-family:var(--font-display);font-size:var(--t-base);color:var(--ink-soft);text-align:center;margin:0;max-width:300px}.oral-rec{position:relative;width:96px;height:96px;border:none;border-radius:50%;background:#ff8a80;box-shadow:0 6px 18px #ff8a808c;display:grid;place-items:center;color:#fff;transition:transform .12s ease}.oral-rec:active{transform:scale(.94)}.oral-rec.live{animation:oral-pulse 1.3s ease-in-out infinite}@keyframes oral-pulse{0%,to{box-shadow:0 6px 18px #ff8a808c}50%{box-shadow:0 6px 18px #ff8a808c,0 0 0 16px #ff8a802e}}.oral-stop{position:relative;width:30px;height:30px;border-radius:var(--r-xs);background:#fff}.oral-level{position:absolute;inset:-8px;border-radius:50%;border:3px solid rgba(255,138,128,.5);transition:transform 90ms linear;pointer-events:none}.oral-timer{font-family:var(--font-display);font-size:30px;margin:0}.oral-audio{width:100%;max-width:340px}.oral-review-btns{display:flex;gap:var(--s-2);width:100%;max-width:380px;margin:var(--s-2) auto 0}.oral-review-btns .big-btn{flex:1}.oral-error{text-align:center;color:#b8262b;font-family:var(--font-display);font-size:var(--t-base);margin:var(--s-3) 0 0}.oral-wait{margin-top:40px}.oral-dots{display:flex;gap:var(--s-2)}.oral-dots i{width:10px;height:10px;border-radius:50%;background:var(--gold);animation:oral-bounce 1.1s ease-in-out infinite}.oral-dots i:nth-child(2){animation-delay:.18s}.oral-dots i:nth-child(3){animation-delay:.36s}@keyframes oral-bounce{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-7px);opacity:1}}.oral-report{display:flex;flex-direction:column;gap:var(--s-4);margin-top:var(--s-3)}.oral-score-row{display:flex;align-items:center;justify-content:center;gap:var(--s-5)}.oral-dial{position:relative;width:128px;height:128px}.oral-dial svg{width:100%;height:100%}.oral-dial-arc{transition:stroke-dasharray .9s cubic-bezier(.2,.8,.3,1)}.oral-dial-num{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-size:40px}.oral-score-side{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-1)}.oral-newbest{font-family:var(--font-display);font-size:var(--t-lg);color:#b8860b;animation:oral-pop .4s cubic-bezier(.2,1.4,.4,1)}@keyframes oral-pop{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.oral-subs{display:flex;flex-direction:column;gap:var(--s-2);max-width:380px;width:100%;margin:0 auto}.oral-sub{display:flex;align-items:center;gap:var(--s-2)}.oral-sub-label{font-family:var(--font-display);font-size:var(--t-base);width:40px;flex:none}.oral-sub-bar{flex:1;height:10px;border-radius:var(--r-pill);background:#eef2fa;overflow:hidden}.oral-sub-fill{display:block;height:100%;border-radius:var(--r-pill);background:var(--gold);transition:width .8s cubic-bezier(.2,.8,.3,1)}.oral-sub-num{font-family:var(--font-display);font-size:var(--t-md);width:30px;text-align:right;color:var(--ink-soft)}.oral-block-title{font-family:var(--font-display);font-size:var(--t-lg);margin:0 0 var(--s-2)}.oral-strengths{display:flex;flex-wrap:wrap;gap:var(--s-2)}.oral-chip{background:var(--gold-soft, #fdf1d3);color:#8a6410;border-radius:var(--r-pill);padding:var(--s-2) var(--s-4);font-family:var(--font-display);font-size:var(--t-md)}.oral-issues{display:flex;flex-direction:column;gap:var(--s-2)}.oral-issue{display:flex;align-items:flex-start;gap:var(--s-2);background:var(--paper);border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--s-3)}.oral-kind{flex:none;font-family:var(--font-display);font-size:var(--t-xs);border-radius:var(--r-pill);padding:var(--s-1) var(--s-3);margin-top:3px}.k-tone{background:#ffe3ea;color:#b8262b}.k-sound{background:#e7ecff;color:#2b4bcc}.k-missed,.k-extra{background:#fff1d6;color:#9a6b1f}.k-hesit,.k-pace{background:#e2f5eb;color:#1f7a4d}.k-other{background:#efe7ff;color:#6b46c1}.oral-issue-char{flex:none;display:inline-flex;align-items:center;gap:var(--s-1);border:none;background:none;font-family:var(--font-hanzi);font-size:var(--t-2xl);padding:0;color:var(--ink)}.oral-issue-text{font-size:var(--t-md);line-height:1.6;color:var(--ink)}.oral-issue-text em{display:block;font-style:normal;color:var(--ink-soft);font-size:var(--t-sm)}.oral-summary{margin:var(--s-1) 0 0}.tx-title-block{margin:var(--s-1) 0 var(--s-4)}.tx-title{margin:0;font-family:var(--font-hanzi);font-size:var(--t-xl);font-weight:400;color:var(--ink)}.tx-launcher{display:flex;gap:var(--s-2);margin:0 0 var(--s-4)}.tx-mode{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-3);border:1.5px solid rgba(77,88,110,.14);border-radius:var(--r-md);background:var(--paper);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-base)}.tx-mode-primary{border-color:var(--jade-ink);background:var(--jade-ink);color:#fff;box-shadow:var(--shadow)}.tx-mode-body{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}.tx-mode-primary .rail{color:#fff}.tx-ledger{background:var(--paper);border-radius:var(--r-md);box-shadow:var(--shadow);overflow:hidden}.tx-ledger-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:var(--s-3)}.tx-ledger-title{display:flex;flex-direction:column;font-family:var(--font-hanzi);font-size:var(--t-base)}.tx-ledger-list{display:grid;grid-template-columns:auto max-content 1fr auto;margin:0;padding:0;list-style:none}.tx-wordrow{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;align-items:center;column-gap:10px;padding:var(--s-3);border-top:1px solid rgba(77,88,110,.1)}.tx-wordrow-n{font-family:var(--font-display);font-size:var(--t-xs);color:var(--ink-soft);text-align:right}.tx-wordrow-word{display:flex;flex-direction:column;min-width:0}.tx-wordrow-hz{font-family:var(--font-hanzi);font-size:var(--t-lg);line-height:1.2}.tx-traced{display:block;color:var(--ink);overflow:visible}.tx-traced-rt{font-family:var(--font-pinyin);font-size:var(--t-2xs);font-weight:400;color:var(--ink-soft);letter-spacing:0}.tx-traced-wrap{display:flex;flex-direction:column}.tx-traced-rt{display:flex}.tx-traced-rt>span{width:24px;text-align:center}.tx-wordrow-en{font-size:var(--t-sm);color:var(--ink);min-width:0}.tx-wordrow-tries{font-size:var(--t-2xs);color:var(--ink-soft)}.tx-say{display:grid;place-items:center;width:32px;height:32px;border:none;border-radius:50%;background:var(--sky-deep)}.tx-fix-btn{display:flex;align-items:center;gap:var(--s-3);width:100%;max-width:380px;margin:0 auto var(--s-4);border:none;border-radius:var(--r-lg);background:var(--rose-soft);color:#b8262b;box-shadow:var(--shadow);padding:var(--s-4);text-align:left;transition:transform .1s ease}.tx-fix-btn:active{transform:scale(.97)}.tx-fix-text{display:flex;flex-direction:column;gap:2px}.tx-fix-zh{font-family:var(--font-display);font-size:var(--t-2xl)}.tx-fix-sub{font-size:var(--t-sm)}.tx-hsk-note{margin:0 var(--s-4) var(--s-2);font-size:var(--t-sm);color:var(--ink);text-align:center}.tx-done{margin:var(--s-4) 0}.tx-marks{display:flex;flex-direction:column;align-items:center;gap:var(--s-1);margin:0 0 var(--s-4)}.tx-marks-score{font-family:var(--font-display);font-size:30px}.tx-marks-date{font-size:var(--t-xs);color:var(--ink-soft)}.tx-log{max-width:380px;margin:0 auto var(--s-5)}.tx-log-row{display:flex;align-items:center;gap:var(--s-3);background:var(--paper);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-1)}.tx-log-date{font-family:var(--font-display);font-size:var(--t-md);color:var(--ink-soft);width:74px;flex:none}.tx-log-score{flex:1;font-family:var(--font-display);font-size:var(--t-base)}.tx-chip{border:none;font-family:var(--font-hanzi);transition:transform .1s ease}.tx-chip:active{transform:scale(.94)}.passage-card{text-align:left}.passage-text{font-family:var(--font-display);font-size:var(--t-xl);line-height:1.9;color:var(--ink);margin:0;padding-right:34px;white-space:pre-line}.rq-question{display:inline-flex;align-items:center;gap:var(--s-2)}.rq-speak{border:none;background:none;padding:var(--s-1);display:grid;place-items:center;opacity:.75}.row-pencil{flex:none;display:grid;place-items:center;opacity:.5}.row-pencil .ic{filter:grayscale(1)}.row-pencil.gold{opacity:1}.row-pencil.gold .ic{filter:none}.rd-head-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rd-next{margin-left:auto;flex:none;gap:var(--s-1);font-size:var(--t-md);padding:var(--s-3) var(--s-4);min-height:42px;box-sizing:border-box}.path-map{padding-top:10px;gap:var(--s-5)}.rd-bar{position:sticky;top:8px;z-index:20;display:flex;gap:var(--s-1);background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow-lift);padding:var(--s-2);margin-bottom:var(--s-3)}.rd-play,.rd-toggle{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;border:none;background:none;border-radius:var(--r-md);padding:var(--s-2) 2px;font-family:var(--font-hanzi);font-size:var(--t-sm);color:var(--ink-soft);transition:background .15s ease}.rd-play{background:var(--gold);color:var(--ink)}.rd-play.on{background:var(--red);color:#fff}.rd-toggle.on{background:#fff3d6;color:var(--ink)}.rd-toggle-art{line-height:1;height:28px;display:grid;place-items:center}.rd-toggle:not(.on) .rd-toggle-art{opacity:.6;filter:grayscale(.35)}.rd-toggle-label{font-size:var(--t-xs);font-stretch:88%;line-height:1.2;white-space:nowrap}.rd-stop-sq{width:14px;height:14px;border-radius:var(--r-2xs);background:currentColor}.rd-note{font-family:var(--font-hanzi);font-size:var(--t-md);line-height:1.6;color:var(--red-deep);background:var(--rose-soft);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);margin:0 0 var(--s-3)}.rd-para{background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-4) var(--s-3);margin-bottom:var(--s-3)}.rd-lines{display:flex;flex-direction:column;gap:var(--s-1)}.rd-sent{display:block;width:100%;text-align:left;background:none;border:none;border-radius:var(--r-sm);padding:var(--s-2);white-space:normal;transition:background .18s ease}.rd-sent:active{background:#f2f6fd}.rd-sent.on{background:#e3ecff;box-shadow:inset 4px 0 0 var(--blue)}.rd-tok,.rd-box{display:inline-flex;align-items:flex-end}button.rd-box.good{border:none;font:inherit;color:inherit;cursor:pointer}.rd-box.good{background:#fff3d6;border-radius:var(--r-xs);padding:0 2px;transition:background .15s ease,box-shadow .15s ease}.rd-box.good:active{background:#ffe6a8}.rd-box.good.open{background:#ffe6a8;box-shadow:var(--ring) #f0c98a}@media(hover:hover){.rd-box.good:hover{background:#ffe6a8}}.rd-gloss{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-1) var(--s-2);margin:var(--s-2) 2px 2px;background:#fff8e8;border-radius:var(--r-sm);padding:var(--s-3)}.rd-gloss-hz{display:inline-flex;align-items:center;gap:var(--s-1);font-family:var(--font-hanzi);font-size:var(--t-lg);color:var(--ink)}.rd-gloss-hz .ic{opacity:.5}.rd-gloss-mean{flex:1 1 100%;font-family:var(--font-hanzi);font-size:var(--t-md);line-height:1.55;color:var(--ink-soft)}.rd-cell{display:inline-flex;flex-direction:column;align-items:center;padding:0 1px}.rd-py{font-family:var(--font-pinyin);font-size:var(--t-xs);font-stretch:75%;line-height:1.4;min-height:1.4em;padding:0 2px;letter-spacing:0;color:#8b94a8;white-space:nowrap}.rd-hz{font-family:var(--font-hanzi);font-size:25px;line-height:1.35;color:var(--ink)}.rd-sent.tight .rd-hz{line-height:1.75}.rd-sent.on .rd-py{color:var(--blue)}.rd-en{display:flex;gap:var(--s-2);align-items:flex-start;margin:var(--s-3) 2px 0;background:var(--sky);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);font-size:var(--t-md);line-height:1.65;color:#46506a}.rd-en-tag{flex:none;font-family:var(--font-display);font-weight:800;font-size:var(--t-2xs);color:var(--blue);background:var(--paper);border-radius:var(--r-xs);padding:3px var(--s-2)}@media(max-width:360px){.rd-hz{font-size:var(--t-2xl)}.rd-toggle{padding:var(--s-2) var(--s-3)}}.font-picker{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}.font-card{display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--paper);border:none;border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--s-4) var(--s-3) var(--s-3);transition:transform .1s ease}.font-card.selected{background:#fffbee;box-shadow:var(--ring) var(--gold)}.font-card:active{transform:scale(.98)}.font-sample{font-size:30px;line-height:1.25;color:var(--ink)}.font-sample.font-cute{font-family:ZCOOL KuaiLe,KaiTi,serif}.font-sample.font-book{font-family:KaiTi,Kaiti SC,STKaiti,BiauKai,LXGW WenKai Lite,serif}.font-en{font-family:var(--font-body);font-weight:700;font-size:var(--t-xs);color:var(--ink-soft)}.dx-toggle{max-width:300px;margin:0 auto var(--s-4)}.mx-watch{display:flex;flex-direction:column;align-items:center;gap:var(--s-3)}.mx-film{width:auto;max-width:100%;max-height:min(58vh,460px);border-radius:var(--r-lg);background:#000;box-shadow:var(--shadow-lift)}.mx-film-line{font-family:var(--font-hanzi);font-size:var(--t-xl);line-height:2.2;text-align:center;margin:0}.mx-film-chunk{display:inline-block;white-space:nowrap}.mx-film-btn{border:none;background:var(--gold);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-lg);border-radius:var(--r-pill);padding:var(--s-3) var(--s-7);box-shadow:var(--shadow)}.mx-film-ok{font-family:var(--font-hanzi);font-size:var(--t-base);color:var(--jade);margin:0}.mx-item{align-items:flex-start}.mx-steps{display:flex;gap:3px;background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-2);margin-bottom:var(--s-3);overflow-x:auto}.mx-steps .rd-toggle{flex:1 0 auto;min-width:56px;font-size:var(--t-2xs)}.mx-panel{display:flex;flex-direction:column;gap:var(--s-3)}.mx-bar{display:flex;gap:var(--s-1);background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-2)}.mx-hint{display:flex;align-items:center;gap:var(--s-2);margin:0 var(--s-1);font-family:var(--font-hanzi);font-size:var(--t-md);line-height:1.55;color:var(--ink-soft)}.mx-hint .ic{flex:none}.mx-count{margin-left:auto;font-family:var(--font-pinyin);font-size:var(--t-xs);color:#9aa3b5;white-space:nowrap}.mx-text{background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-4) var(--s-3)}.mx-chunk{display:inline-flex;align-items:flex-end;border:none;background:none;border-radius:var(--r-sm);padding:2px 1px;transition:background .15s ease}.mx-chunk.on{background:#e3ecff;box-shadow:inset 0 -3px 0 var(--blue)}.mx-chunk.on .rd-py{color:var(--blue)}.mx-chunk:active{background:#f2f6fd}.mx-full{font-family:var(--font-hanzi);font-size:var(--t-base);line-height:1.9;color:var(--ink-soft);background:var(--sky);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);margin:0}.mx-full.done{color:var(--ink);background:var(--jade-soft)}.mx-built{min-height:58px;font-family:var(--font-hanzi);font-size:var(--t-xl);line-height:1.75;background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-4);margin:0}.mx-built.done{background:var(--jade-soft)}.mx-caret{display:inline-block;width:2px;height:20px;vertical-align:-3px;background:var(--blue);animation:blink 1.1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.mx-tiles{display:flex;flex-wrap:wrap;gap:var(--s-2)}.mx-tile{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-2);min-height:89px;font-family:var(--font-hanzi);font-size:var(--t-lg);color:var(--ink);background:var(--paper);border:none;border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--s-3) var(--s-4);transition:transform .1s ease,opacity .15s ease}.mx-plate{width:46px;height:46px;border-radius:var(--r-sm);display:grid;place-items:center}.mx-plate .ic{overflow:visible}.mx-tile:active{transform:scale(.96)}.mx-tile.used{opacity:.25;box-shadow:none}.mx-tile.wrong{animation:shake .35s;background:var(--rose-soft)}@keyframes shake{25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}.mx-plain{font-family:var(--font-hanzi);font-size:var(--t-xl);line-height:2.1}.mx-plain.filled{background:var(--jade-soft);border-radius:var(--r-xs)}.mx-blank{display:inline-flex;flex-direction:column;align-items:center;vertical-align:bottom;margin:0 3px}.mx-blank-py{font-family:var(--font-pinyin);font-size:var(--t-xs);color:#8b94a8;padding:0 var(--s-1);white-space:nowrap}.mx-blank.now .mx-blank-py{color:var(--blue)}.mx-blank-line{display:block;width:100%;min-width:42px;height:3px;border-radius:var(--r-2xs);background:var(--grid);margin-top:var(--s-5)}.mx-blank.now .mx-blank-line{background:var(--gold)}.mx-listen{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--s-2);font-family:var(--font-hanzi);font-size:var(--t-md);color:var(--ink);background:var(--paper);border:none;border-radius:var(--r-pill);box-shadow:var(--shadow);padding:var(--s-3) var(--s-4)}.mx-opts{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}.mx-opt{font-family:var(--font-hanzi);font-size:var(--t-lg);color:var(--ink);background:var(--paper);border:none;border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--s-4) var(--s-3);transition:transform .1s ease}.mx-opt:active{transform:scale(.97)}.mx-opt.wrong{background:var(--rose-soft);animation:shake .35s}.mx-panel .write-grid,.mx-panel .write-controls{align-self:center}.mx-write-prompt{display:flex;flex-direction:column;align-items:center;gap:var(--s-1);min-height:62px;background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-3)}.mx-write-chunk{display:flex;gap:var(--s-1)}.mx-write-slot{display:grid;place-items:center;min-width:30px;height:32px;font-family:var(--font-hanzi);font-size:var(--t-2xl);color:var(--ink);border-bottom:2px solid var(--grid)}.mx-write-slot.done{border-bottom-color:var(--jade)}.mx-memory-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s-2)}.mx-done{align-items:center;text-align:center}.mx-done .big-btn{margin-top:var(--s-2)}.page-gear{top:16px;right:12px}.book-btn-icon{position:relative;display:inline-flex}.book-btn-badge{position:absolute;bottom:calc(100% - 6px);left:calc(100% - 6px);min-width:20px;height:20px;padding:0 4px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--red);color:#fff;font-family:var(--font-display);font-weight:800;font-size:var(--t-2xs);font-variant-numeric:tabular-nums}.book-btn{position:relative;margin-left:auto;margin-right:0;flex:none;display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-2);border:none;border-radius:var(--r-pill);background:none;color:var(--ink);transition:transform .1s ease}.book-btn:active{transform:translateY(2px)}.desk-bg{position:fixed;inset:0;z-index:-1;background:radial-gradient(circle 120px at 100% -4%,#ffe9c4 0%,#ffe9c4 38%,transparent 66%),radial-gradient(150% 55% at 15% 106%,#cfc7ee 0%,transparent 62%),radial-gradient(140% 50% at 88% 110%,#bfb9e6 0%,transparent 60%),linear-gradient(180deg,#fdf4e2,#f6eede 44%,#e6e2f4)}.dx-page{padding-bottom:calc(132px + env(safe-area-inset-bottom,0px))}.path-map{gap:var(--s-6);padding-top:34px}.path-map.tingxie .path-node{background:#ffeec9}.path-map.moxie .path-node{background:#ffdfdc}.path-node{width:92px;height:92px}.path-title{font-size:var(--t-xl);line-height:1.35}.path-sub{font-family:var(--font-hanzi);font-size:var(--t-sm);color:var(--ink-soft);line-height:1.5}.path-meta{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-top:3px}.path-badge{font-family:"Fredoka",var(--font-hanzi),system-ui,"Segoe UI",Arial,sans-serif;font-size:var(--t-2xs);font-weight:700;color:#7a6a4c;background:#ffffffbf;border-radius:var(--r-pill);padding:3px var(--s-3)}.path-map.moxie .path-badge{color:#8a5a58}.path-flag{position:absolute;top:-6px;right:-10px;font-family:var(--font-hanzi);font-size:var(--t-2xs);color:#fff;background:var(--red);border-radius:var(--r-pill);padding:3px var(--s-3);box-shadow:var(--shadow);white-space:nowrap}.sky-bg{position:fixed;inset:0;z-index:-1;background:radial-gradient(circle 130px at 4% -2%,#ffd9a8 0%,#ffd9a8 34%,transparent 64%),radial-gradient(150% 60% at 80% 104%,#b8ecdc 0%,transparent 62%),radial-gradient(130% 45% at 12% 108%,#a9e4d6 0%,transparent 58%),linear-gradient(180deg,#dff1ff,#e6f7f4 46%,#d6f0e6)}.path-badge .ic{vertical-align:-.14em;margin-right:1px}.home-header>div{min-width:0}.home-header>.book-btn{margin-left:auto}.home-header>.book-btn+.gear-btn{margin-left:0}.app-title{white-space:nowrap;font-size:clamp(24px,7.6vw,32px)}.app-title:not(:lang(zh)){font-size:clamp(20px,6.4vw,28px);letter-spacing:normal;overflow:hidden;text-overflow:ellipsis}@media(max-width:359px){.home-header{padding-left:10px;padding-right:10px;gap:var(--s-1)}.app-title{font-size:var(--t-2xl)}.app-subtitle{font-size:var(--t-sm)}}.app-subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:480px){.home-header{gap:var(--s-2)}.mascot{margin-right:6px}}.owl-cheer{animation:owl-arrive .56s cubic-bezier(.2,1.35,.45,1) both}.owl-cheer .owl-body{animation:owl-settle 2.8s .6s ease-in-out infinite}@keyframes owl-arrive{0%{opacity:0;transform:scale(.62) translateY(18px) rotate(-6deg)}to{opacity:1;transform:none}}@keyframes owl-settle{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.owl-cheer .owl-wing{transform-box:fill-box;animation:owl-flap .34s .34s ease-in-out 2 both}.owl-cheer .owl-wing-l{transform-origin:100% 0%}.owl-cheer .owl-wing-r{transform-origin:0% 0%}@keyframes owl-flap{0%,to{transform:rotate(0)}50%{transform:rotate(var(--flap, 26deg))}}.owl-cheer .owl-wing-l{--flap: 26deg}.owl-cheer .owl-wing-r{--flap: -26deg}.owl-cheer .owl-tassel{transform-box:fill-box;transform-origin:50% 0%;animation:owl-tassel .9s .2s ease-in-out 2 both}@keyframes owl-tassel{0%,to{transform:rotate(0)}30%{transform:rotate(11deg)}65%{transform:rotate(-7deg)}}@media(prefers-reduced-motion:reduce){.owl-cheer,.owl-cheer .owl-body,.owl-cheer .owl-wing,.owl-cheer .owl-tassel{animation:none}}.owl .owl-lid{transform-box:fill-box;transform-origin:center;transform:scaleY(0);animation:owl-blink 6.4s ease-in-out infinite}@keyframes owl-blink{0%,38%,42%,71%,74%,to{transform:scaleY(0)}40%,72.5%{transform:scaleY(1)}}.owl-says{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-3) var(--s-4);text-align:left;max-width:420px;flex:1}.owl-says:before{content:"";position:absolute;left:-8px;top:22px;border:8px solid transparent;border-right-color:var(--paper);border-left:0}.owl-says-line{grid-column:2;margin:0;font-size:var(--t-lg);color:var(--ink);line-height:1.4}.owl-says-speaker{position:relative;grid-row:1 / span 2;width:36px;height:36px;border:none;border-radius:50%;background:var(--sky);display:grid;place-items:center;cursor:pointer}.owl-says-speaker.saying:after{content:"";position:absolute;inset:-4px;border-radius:50%;box-shadow:var(--ring) var(--blue);animation:owl-pulse .9s ease-out 2}@keyframes owl-pulse{0%{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(1.35)}}@media(prefers-reduced-motion:reduce){.owl .owl-lid,.owl-says-speaker.saying:after{animation:none}}.ob{max-width:480px;padding:var(--s-6) var(--s-4)}.ob-over{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;background:#141c2c80;padding:var(--s-3)}@media(min-height:620px){.ob-over{align-items:center}}.ob-sheet{width:100%;max-width:460px;max-height:100%;overflow-y:auto;padding:var(--s-4);border-radius:var(--r-lg);background:var(--sky);box-shadow:var(--shadow-lift)}html.ob-lock{overflow:hidden;overscroll-behavior:none}.ob-over,.tour{touch-action:none;overscroll-behavior:contain}.ob-sheet{touch-action:pan-y;overscroll-behavior:contain}.ob-label-gap{margin-top:var(--s-3)}.ob-levels{display:grid;gap:var(--s-2)}.ob-level{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:46px;padding:var(--s-2) var(--s-4);border:none;border-radius:var(--r-sm);background:var(--paper);box-shadow:var(--shadow-soft);text-align:left;font-family:var(--font-body);font-size:var(--t-base);color:var(--ink);cursor:pointer}.ob-face-title{margin:0 0 var(--s-3);font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-2xl);text-align:center}.ob-face-title:not(:lang(zh)){font-family:var(--font-display);font-weight:800}.ob-faces{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-2);margin:0;padding:0}.ob-face-btn{display:flex;flex-direction:column;align-items:center;gap:var(--s-1);width:100%;padding:var(--s-2) var(--s-1);border:none;border-radius:var(--r-sm);background:var(--paper);box-shadow:var(--shadow-soft);cursor:pointer}.ob-face-name{font-family:var(--font-hanzi);font-size:var(--t-md);line-height:1.2;color:var(--ink)}.ob-face-later{display:block;margin:var(--s-4) auto 0;min-height:44px;padding:0 var(--s-4);border:none;background:none;color:var(--ink-soft);font-family:var(--font-body);font-size:var(--t-base);font-weight:700;cursor:pointer}.tour{position:fixed;inset:0;z-index:90}.tour-mask{position:fixed;background:#141c2c9e}.tour-mask-all{inset:0}.tour-ring{position:fixed;border-radius:var(--r-sm);box-shadow:var(--ring) var(--gold);pointer-events:none}.tour-card{position:fixed;left:50%;transform:translate(-50%);width:min(460px,calc(100% - 24px));padding:var(--s-4) var(--s-4) var(--s-3);border-radius:var(--r-lg);background:var(--sky);box-shadow:var(--shadow-lift)}.tour-card-top{top:16px}.tour-card-bottom{bottom:16px}.tour-card-mid{top:50%;transform:translate(-50%,-50%)}.tour-owl{display:flex;align-items:flex-start;gap:var(--s-2)}.tour-body{flex:1;min-width:0;display:flex;flex-direction:column}.tour-body .owl-says{max-width:none}.tour-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-2)}.tour-dots{display:flex;gap:var(--s-1)}.tour-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}.tour-dots i.on{background:var(--jade)}.tour-next{padding:var(--s-3) var(--s-4);border:none;border-radius:999px;min-height:44px;background:var(--jade-ink);color:#fff;font-family:var(--font-body);font-weight:700;font-size:var(--t-base);cursor:pointer}.ob-id{margin:0 0 var(--s-2)}.ob-id-name{margin:0;font-family:var(--font-display);font-size:var(--t-xl);line-height:1.15;color:var(--ink)}.ob-owl-row{display:flex;align-items:flex-start;gap:var(--s-2);margin:2px 0 var(--s-3)}.ob-owl-row .owl{flex:none;overflow:visible}.ob-label{margin:0 0 var(--s-2);font-size:var(--t-base);color:var(--ink)}.ob-langs{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-1)}.ob-lang{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:48px;padding:var(--s-2) var(--s-3);border:none;border-radius:var(--r-sm);background:var(--paper);box-shadow:var(--shadow-soft);text-align:left;font-family:var(--font-body);cursor:pointer}.ob-lang.on,.ob-level.on{box-shadow:var(--ring) var(--gold)}.ob-nav .exam-next:disabled{background:var(--line);color:var(--ink-soft);box-shadow:none;cursor:default}.ob-lang-name{font-size:var(--t-base);color:var(--ink);line-height:1.25;font-family:var(--font-native)}.ob-lang[lang=ja] .ob-lang-name,.sel-opt[lang=ja],.sel-value[lang=ja]{font-family:var(--font-ja)}.ob-lang[lang=zh-Hant] .ob-lang-name,.sel-opt[lang=zh-Hant],.sel-value[lang=zh-Hant]{font-family:var(--font-hant)}.ob-lang[lang=ko] .ob-lang-name,.sel-opt[lang=ko],.sel-value[lang=ko]{font-family:var(--font-ko)}.ob-nav{flex-direction:column;gap:var(--s-2);margin:var(--s-3) 0 0}.game-top .owl{flex:none;overflow:visible}.owl-moment{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:40;display:flex;align-items:flex-end;gap:var(--s-2);width:min(92vw,440px)}.owl-moment .owl{flex:none;overflow:visible;filter:drop-shadow(0 3px 5px rgba(40,48,63,.22))}.owl-moment-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-1)}.owl-moment-action{padding:var(--s-2) var(--s-4);border:none;border-radius:var(--r-pill);background:var(--jade-ink);color:#fff;font-family:var(--font-body);font-size:var(--t-sm);font-weight:800;box-shadow:var(--shadow);cursor:pointer}.owl-moment-action .rail{color:#ffffffd1}.owl-reactive{cursor:pointer}.owl[data-react=blink] .owl-lid{animation:owl-blink-once .24s ease-in-out both}@keyframes owl-blink-once{0%,to{transform:scaleY(0)}50%{transform:scaleY(1)}}.owl[data-react=glasses]{animation:owl-nudge .38s ease-in-out both}@keyframes owl-nudge{0%,to{transform:none}35%{transform:rotate(-6deg) translateY(-2px)}70%{transform:rotate(4deg)}}.owl[data-react=hoot]{animation:owl-hoot .42s ease-out both}@keyframes owl-hoot{0%,to{transform:none}30%{transform:scale(1.06) translateY(-4px)}60%{transform:scale(.98)}}.owl .owl-glint{opacity:0;animation:owl-glint .9s .5s ease-out both}@keyframes owl-glint{0%{opacity:0;transform:rotate(-25deg) translate(-6px)}35%{opacity:.95}to{opacity:0;transform:rotate(-25deg) translate(10px)}}@media(prefers-reduced-motion:reduce){.owl[data-react],.owl[data-react] .owl-lid,.owl .owl-glint{animation:none}}@keyframes star-fly{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.8)}to{opacity:1;transform:translate(calc(var(--dx) - 50%),calc(var(--dy) - 50%)) scale(.7)}}.path-badge.landed{animation:pop .45s ease}@media(prefers-reduced-motion:reduce){.wm-star-fly,.path-badge.landed{animation:none}}.wm-block.arrived .decor-art{animation:decor-greet .9s ease-out both}@keyframes decor-greet{0%{transform:none}35%{transform:translateY(-10px) scale(1.12)}to{transform:none}}.wm-avatar.asleep{animation:breathe 4.6s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.wm-block.arrived .decor-art,.wm-avatar.asleep{animation:none}}.paywall{text-align:center;padding-bottom:22px}.paywall-title{font-family:var(--font-hanzi);font-size:var(--t-xl);margin:var(--s-1) 0 0}.paywall-line{font-family:var(--font-hanzi);font-size:var(--t-md);margin:var(--s-1) var(--s-3);display:flex;align-items:center;justify-content:center;gap:var(--s-1)}.paywall-plans{display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:center;margin:var(--s-4) var(--s-2) var(--s-2)}.paywall-waiver{flex:1 1 100%;display:flex;align-items:flex-start;gap:var(--s-2);min-height:44px;font-size:var(--t-sm);line-height:1.5;text-align:left;cursor:pointer}.paywall-refund{flex:1 1 100%;margin:0;font-size:var(--t-sm);text-align:center}.paywall-restore{flex:1 1 100%;min-height:44px;border:none;background:none;color:var(--ink);font-family:var(--font-body);font-size:var(--t-sm);text-decoration:underline;cursor:pointer}.paywall-waiver input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:currentColor}.paywall-plan{flex:1;max-width:170px;border:2px solid var(--ink);border-radius:var(--r-md);background:#fff;padding:var(--s-3) var(--s-2);display:flex;flex-direction:column;gap:var(--s-1);font:inherit;cursor:pointer;box-shadow:0 2px 0 var(--ink)}.paywall-plan.best{background:#fff3d6}.paywall-plan:disabled{opacity:.55;cursor:default;box-shadow:none}.paywall-plan-zh{font-family:var(--font-hanzi);font-size:var(--t-md)}.paywall-plan-price{font-weight:800;font-size:var(--t-md)}.paywall-note{color:var(--ink-soft);font-size:var(--t-sm);display:flex;align-items:center;justify-content:center;gap:var(--s-1);margin:var(--s-2) 0 0}.signin-actions{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);margin-top:var(--s-3)}.signin-actions .paywall-plan{flex:none;width:min(100%,280px);max-width:none;align-items:center;text-align:center}.signin-actions .paywall-plan-zh{font-family:var(--font-display)}.signin-email{display:flex;align-items:stretch;gap:var(--s-2);width:min(100%,280px)}.signin-email .hz-search-input{flex:1;min-width:0;min-height:48px;padding:0 var(--s-3);border:1.5px solid var(--grid);border-radius:var(--r-sm);background:#fff;box-shadow:var(--shadow-inset);text-align:left}.signin-go{flex:none;width:48px;min-height:48px;border:none;border-radius:var(--r-sm);background:var(--jade-ink);color:#fff;font-size:var(--t-xl);font-weight:700;line-height:1}.signin-go:disabled{opacity:.6}.signin-go:active{transform:scale(.96)}.signin-row{display:flex;align-items:center;gap:var(--s-2);width:100%;min-height:48px;margin-top:var(--s-3);padding:var(--s-2) var(--s-3);border:2px dashed var(--ink);border-radius:var(--r-md);background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--t-base);text-align:left;cursor:pointer}.signin-row-text{flex:1;min-width:0;line-height:1.3}.signin-row-go{flex:none;font-weight:700}.signin-row:active{transform:translateY(1px)}.signin-sheet-title{margin:0 var(--s-6) var(--s-1) 0;font-family:var(--font-display);font-size:var(--t-lg);line-height:1.25}.signin-sheet-line{margin:0 0 var(--s-2);color:var(--ink-soft);line-height:1.4}.signin-sheet-google{width:min(100%,280px)}.signin-or{display:flex;align-items:center;gap:var(--s-2);width:min(100%,280px);margin:var(--s-1) 0 0;color:var(--ink-soft);font-size:var(--t-sm)}.signin-or:before,.signin-or:after{content:"";flex:1;height:1px;background:var(--grid)}.legal-page{min-height:100vh;min-height:100dvh;background:#fbf7ef;color:#28303f;font-family:var(--font-body)}.legal-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);padding:var(--s-4);border-bottom:2px solid rgba(40,48,63,.12)}.legal-back{font-family:var(--font-hanzi);font-size:var(--t-md);color:inherit;text-decoration:none;font-weight:700}.legal-nav{display:flex;gap:var(--s-3);margin-left:auto;flex-wrap:nowrap;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-right:26px;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 22px),transparent)}.legal-nav::-webkit-scrollbar{display:none}.legal-nav a{white-space:nowrap}.legal-nav a{color:inherit;opacity:.85;text-decoration:none;font-size:var(--t-sm);font-weight:700}.legal-nav a.current{opacity:1;text-decoration:underline;text-underline-offset:4px}.legal-body{max-width:620px;margin:0 auto;padding:var(--s-6) var(--s-4) 40px;line-height:1.65;font-size:var(--t-md)}.legal-body h1{font-size:var(--t-xl);margin:0 0 var(--s-3)}.legal-body h2{font-size:var(--t-md);margin:var(--s-5) 0 var(--s-1)}.legal-body a{color:inherit;font-weight:700}.legal-body ul{padding-left:20px;margin:var(--s-2) 0}.legal-updated{margin-top:var(--s-6);font-size:var(--t-sm);color:var(--ink-soft)}.grecaptcha-badge{visibility:hidden}.legal-recaptcha{margin-top:var(--s-6);font-size:var(--t-xs);color:var(--ink-soft)}.sheet.paywall .legal-recaptcha,.page.settings .legal-recaptcha{margin-top:var(--s-2)}.legal-business{margin-top:var(--s-2);padding-top:12px;border-top:1px solid rgba(40,48,63,.15);font-size:var(--t-sm);opacity:.75}.legal-business p{margin:2px 0}.set-legal{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-3);justify-content:center;margin:var(--s-4) 0 var(--s-1)}.set-legal :is(a,button){color:inherit;opacity:.85;font-size:var(--t-sm);font-weight:700;text-decoration:none}.set-legal button{background:none;border:0;padding:0;font-family:inherit;cursor:pointer}.book-controls{position:sticky;top:0;z-index:2;display:flex;flex-direction:column;gap:var(--s-2);margin:0 0 var(--s-3);padding-block:var(--s-2);background:var(--sky)}.book-controls .filter-row{padding-bottom:2px;align-items:center}.filter-group{display:flex;gap:var(--s-2)}.filter-chip.cta{--glow-off: rgba(47, 163, 107, 0);--glow-on: rgba(47, 163, 107, .45);background:var(--jade-ink);color:#fff;animation:clue-glow 2.4s ease-in-out infinite}.filter-chip.cta .filter-n{background:#ffffff38;color:#fff}.filter-chip.act{background:var(--jade-soft);color:var(--jade-ink);box-shadow:none}.filter-chip.act .filter-n{background:#2fa36b29;color:var(--jade-ink)}@media(prefers-reduced-motion:reduce){.filter-chip.cta{animation:none}}.set-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--s-2)}.set-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-1);border:none;text-align:left;background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-3);cursor:pointer;animation:tile-in .25s ease backwards}.set-card:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.set-icon{display:block;margin-bottom:2px}.set-zh{font-family:var(--font-hanzi);font-size:var(--t-base);font-weight:700;color:var(--ink);line-height:1.25}.set-n{margin-top:2px;font-size:var(--t-xs);font-weight:800;color:var(--ink-soft);font-variant-numeric:tabular-nums}.set-ring{width:100%;height:5px;border-radius:var(--r-pill);background:var(--sky-deep);overflow:hidden}.set-ring>i{display:block;height:100%;border-radius:var(--r-pill);background:var(--gold)}.set-ring>i[style*="100%"]{background:var(--jade)}.book-search-input{width:100%;border:1.5px solid var(--grid);border-radius:var(--r-sm);background:var(--paper);padding:var(--s-3);font-family:var(--font-body);font-size:var(--t-lg);color:var(--ink)}.book-search-input::placeholder{color:var(--ink-soft)}.book-search-input:focus-visible{outline:3px solid var(--ink);outline-offset:1px;border-color:var(--ink)}.crash-build{margin:var(--s-1) 0 0;font-size:var(--t-xs);color:var(--ink-soft);font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text}.hsk-progress{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4);background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow-soft)}.hsk-rows{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:4.5rem 1fr auto;column-gap:10px;row-gap:8px}.hsk-row.now .hsk-lvl{color:var(--jade-ink);font-weight:700}.hsk-lvl{font-size:var(--t-md);font-weight:600;color:var(--ink)}.hsk-bar{height:10px;border-radius:var(--r-pill);background:var(--jade-soft);overflow:hidden}.hsk-bar-fill{display:block;height:100%;border-radius:var(--r-pill);background:var(--jade);transition:width .6s ease}.hsk-n{font-size:var(--t-sm);font-variant-numeric:tabular-nums;color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){.hsk-bar-fill{transition:none}}.listen-card{display:flex;flex-direction:column;gap:var(--s-3);align-items:stretch}.listen-hidden{margin:0;padding:var(--s-4) var(--s-2);text-align:center;font-size:var(--t-base);color:var(--ink-soft)}.listen-play{display:flex;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);border:none;border-radius:var(--r-md);background:var(--jade-ink);color:#fff;font-size:var(--t-base);font-weight:600;cursor:pointer}.listen-play:disabled{background:var(--jade-soft);color:var(--jade-ink);cursor:default}.radical-hint{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow)}.radical-glyph{width:46px;height:46px;flex:none}.radical-rest{fill:var(--shadow-ink)}.radical-key{fill:var(--jade-ink)}.radical-text{margin:0;font-size:var(--t-sm);color:var(--ink-soft)}.exam-empty{margin:var(--s-7) var(--s-5);text-align:center;color:var(--ink-soft);font-size:var(--t-base)}.exam-clock{display:inline-flex;align-items:center;gap:var(--s-1);padding:3px var(--s-3);border-radius:var(--r-pill);background:var(--paper);color:var(--ink-soft);font-size:var(--t-xs);font-variant-numeric:tabular-nums;box-shadow:var(--shadow)}.exam-practice-tag{display:inline-flex;align-items:center;margin-left:8px;padding:3px var(--s-3);border-radius:var(--r-pill);background:var(--jade-soft);color:var(--jade-ink);font-size:var(--t-xs);font-weight:700}.exam-clock.low{color:var(--red-deep);font-weight:700}.exam-instruction{margin:var(--s-2) var(--s-4) var(--s-3);color:var(--ink);font-size:var(--t-base);line-height:1.5}.exam-example{margin:0 var(--s-4) var(--s-2);border-radius:var(--r-md);background:var(--sky-deep)}.exam-example-tab{display:flex;align-items:center;gap:var(--s-1);width:100%;padding:var(--s-2) var(--s-3);border:none;background:none;color:var(--ink-soft);font-family:var(--font-display);font-size:var(--t-xs);font-weight:700}.exam-example-body{display:flex;flex-direction:column;gap:var(--s-2);padding:0 var(--s-3) var(--s-3)}.exam-example-text{margin:0;color:var(--ink);font-size:var(--t-sm);line-height:1.6}.exam-example-answer{display:flex;align-items:center;gap:var(--s-2);color:var(--jade-ink)}.exam-example-answer .exam-thumb{width:72px;border-radius:var(--r-sm);background:var(--paper)}.exam-question{margin:0 var(--s-4)}.exam-image{display:block;width:min(100%,260px);margin:var(--s-1) auto var(--s-2);border-radius:var(--r-lg);background:var(--paper)}.page.exam .exam-question>.game-ask{white-space:pre-line}.exam-passage{margin:0 0 var(--s-2);padding:var(--s-3) var(--s-4);background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);font-size:var(--t-base);line-height:1.75}.exam-passage-pic{float:right;width:38%;max-width:220px;aspect-ratio:3 / 2;object-fit:cover;margin:.25em 0 var(--s-2) var(--s-3);border-radius:var(--r-md);shape-margin:var(--s-2)}@media(max-width:380px){.exam-passage-pic{float:none;display:block;width:100%;max-width:none;margin:0 0 var(--s-2)}}.exam-tf{display:flex;gap:var(--s-3);justify-content:center;margin:var(--s-3) 0}.exam-tf .option{width:96px;height:64px;display:flex;align-items:center;justify-content:center}.exam-yes{color:var(--jade-ink)}.exam-no{color:var(--red-deep)}.option.picked{outline:3px solid var(--blue);outline-offset:-3px;box-shadow:var(--ring) var(--blue)}.exam-pics{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2);margin:var(--s-3) 0}.exam-pics .option{position:relative;flex-direction:column;padding:var(--s-1)}.exam-pics .option-letter{position:absolute;top:var(--s-1);left:var(--s-1);z-index:1;width:26px;height:26px;font-size:var(--t-sm)}@media(max-width:899px)and (min-height:740px){.exam-pics:has(>.option:nth-child(3)){grid-template-columns:repeat(2,1fr);max-width:calc((100dvh - 424px) * 2 / 3);margin-inline:auto}.exam-pics:has(>.option:nth-child(3))>.option:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - var(--s-1))}}.exam-thumb{width:100%;aspect-ratio:1;object-fit:contain}.exam-build{display:flex;flex-direction:column;gap:var(--s-3)}.exam-build-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1);min-height:56px;padding:var(--s-3);border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow-lift)}.exam-build-empty{color:var(--ink-soft);font-size:var(--t-sm)}.exam-build-pool{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2)}.exam-chip{padding:var(--s-3) var(--s-4);border:none;border-radius:var(--r-sm);background:var(--sky-deep);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-lg)}.exam-chip.picked{background:var(--jade-soft);box-shadow:var(--ring) var(--jade-ink)}.exam-chip:disabled{opacity:.35}.exam-order{display:flex;flex-direction:column;gap:var(--s-3)}.exam-order-line,.exam-order-pool{display:flex;flex-direction:column;gap:var(--s-2);margin:0;padding:0;list-style:none}.exam-order-line{min-height:56px;padding:var(--s-3);border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow-lift)}.exam-order-chip{display:flex;gap:var(--s-2);align-items:baseline;width:100%;padding:var(--s-3);border:none;border-radius:var(--r-sm);background:var(--sky-deep);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-base);text-align:left}.exam-order-chip.picked{background:var(--jade-soft);box-shadow:var(--ring) var(--jade-ink)}.exam-order-chip:disabled{opacity:.35}.exam-essay{display:flex;flex-direction:column;gap:var(--s-3)}.exam-essay-prompt{margin:0;padding:var(--s-3);border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow-lift);font-family:var(--font-hanzi);font-size:var(--t-base);line-height:1.9;white-space:pre-wrap}.exam-essay-box{width:100%;padding:var(--s-3);border:none;border-radius:var(--r-md);background:var(--paper);box-shadow:var(--ring-in) var(--sky-deep);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-lg);line-height:1.9;resize:vertical}.exam-write{display:flex;flex-direction:column;align-items:center;gap:var(--s-2)}.exam-write-cue{margin:0;font-family:var(--font-hanzi);font-size:var(--t-lg);line-height:1.7;text-align:center}.exam-write-blank{display:inline-block;min-width:40px;margin:0 var(--s-1);padding:0 var(--s-2);border-bottom:2.5px solid var(--line);color:var(--jade-ink)}.exam-write-cue.over-all{display:flex;flex-wrap:wrap;justify-content:center;row-gap:8px;line-height:1.3}.exam-write-cue.over-all rt{font-size:var(--t-xs)}.exam-write-cue.over-all .exam-write-blank{margin:0}.exam-write-pinyin{margin:0;color:var(--ink-soft);font-family:var(--font-pinyin);font-size:var(--t-md)}.exam-write-input{width:84px;padding:var(--s-3);border:2.5px solid var(--grid);border-radius:var(--r-md);background:var(--paper);font-family:var(--font-hanzi);font-size:34px;text-align:center}.exam-write-again{padding:var(--s-2) var(--s-4);border:none;border-radius:var(--r-sm);background:var(--sky-deep);color:var(--ink);font-family:var(--font-display);font-size:var(--t-sm);font-weight:700}.exam-component{display:flex;flex-direction:column;gap:var(--s-3)}.exam-component-cell{display:flex;flex-direction:column;align-items:center;gap:var(--s-1)}.exam-component-py{color:var(--ink-soft);font-family:var(--font-pinyin);font-size:var(--t-sm)}.exam-partial{overflow:hidden}.exam-partial-shown{position:absolute;inset:0;display:grid;place-items:center}.exam-partial-shown.h{transform:scaleX(.5)}.exam-partial-shown.v{transform:scaleY(.5)}.exam-partial-shown.h.a{right:50%}.exam-partial-shown.h.b{left:50%}.exam-partial-shown.v.a{bottom:50%}.exam-partial-shown.v.b{top:50%}.exam-partial-gap{position:absolute;border:2px dashed var(--line);border-radius:var(--r-xs)}.exam-partial-gap.h.a{inset:12% 56% 12% 8%}.exam-partial-gap.h.b{inset:12% 8% 12% 56%}.exam-partial-gap.v.a{inset:8% 14% 56%}.exam-partial-gap.v.b{inset:56% 14% 8%}.exam-partial-gap.in-tr{inset:12% 10% 40% 40%}.exam-partial-gap.in-b{inset:38% 28% 10%}.exam-partial-gap.in-br{inset:40% 10% 10% 40%}.exam-partial-gap.in-bl{inset:40% 40% 10% 10%}.exam-partial-gap.in-t{inset:10% 28% 38%}.exam-partial-gap.in-r{inset:28% 10% 28% 38%}.exam-partial-gap.in-c{inset:30%}.exam-group{display:flex;flex-direction:column;gap:var(--s-3)}.exam-group-text{display:flex;flex-direction:column;gap:var(--s-2);margin:0 var(--s-4)}.exam-group-text>.exam-passage{margin:0;white-space:pre-line}.exam-group-item .game-ask{margin-top:var(--s-1);text-align:left}.exam-group-bank li{display:flex;gap:var(--s-2);align-items:flex-start}.exam-group-bank{display:flex;flex-direction:column;gap:var(--s-1);margin:0;padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--paper);font-family:var(--font-hanzi);font-size:var(--t-base);line-height:1.6;list-style:none}.exam-group-items{display:flex;flex-direction:column;gap:var(--s-4)}.exam-group-item{display:flex;gap:var(--s-2);align-items:flex-start;margin-left:var(--s-4)}.exam-group-item>.exam-question{flex:1;min-width:0;margin-left:0}.exam-group-n{flex:none;min-width:2em;padding-top:var(--s-2);color:var(--ink-soft);font-weight:700}.exam-gap{display:inline-block;min-width:3em;margin:0 2px;padding:0 var(--s-1);border-bottom:2px solid var(--line)}.exam-gap>b{color:var(--ink-soft);font-size:var(--t-sm)}.exam-gap.filled{color:var(--jade-ink)}.exam-letters{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:var(--s-2) 0}.exam-letters .option{flex:1 1 0;width:auto;min-width:0;padding:var(--s-2);justify-content:center}.exam-group-item .options{gap:var(--s-2)}.exam-group-item .options .option{padding:var(--s-3);font-size:var(--t-base)}.exam-story{display:grid;grid-template-columns:1fr;gap:var(--s-2)}.exam-story-pic{width:100%;aspect-ratio:1;object-fit:contain;border-radius:var(--r-md);background:var(--paper)}.exam-essay-count{margin:0;color:var(--ink-soft);font-size:var(--t-sm);text-align:right}.exam-essay-count.met{color:var(--jade-ink)}.exam-drills{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1);margin:var(--s-2) 0 0}.exam-drill{padding:var(--s-2) var(--s-3);border:none;border-radius:var(--r-pill);background:var(--sky-deep);color:var(--ink-soft);font-family:var(--font-display);font-size:var(--t-xs);font-weight:700}.loading-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:60vh}.loading-note{color:var(--ink-soft);font-family:var(--font-display);font-size:var(--t-lg)}.exam-drills-label{align-self:center;display:inline-flex;flex-direction:column;font-size:var(--t-2xs);font-weight:700;color:var(--ink-soft);margin-right:2px}.exam-pick{display:flex;flex-direction:column;align-items:center;gap:1px;width:100%;margin:var(--s-3) 0 var(--s-1);padding:var(--s-3) var(--s-4);border:none;border-radius:var(--r-pill);background:var(--jade-ink);color:#fff;font-family:var(--font-hanzi);font-size:var(--t-base);font-weight:700;text-align:center}.exam-pick .rail{color:#fff}.exam-nav{display:flex;gap:var(--s-3);margin:var(--s-4) var(--s-4) var(--s-1)}.page.exam.exam-room:has(.exam-pics)>.exam-nav{position:sticky;bottom:0;z-index:2;margin:var(--s-4) 0 0;padding:var(--s-3) var(--s-4) calc(var(--s-3) + env(safe-area-inset-bottom));background:inherit;border-top:1px solid var(--line)}.exam-prev,.exam-next{flex:1;padding:var(--s-4) var(--s-3);border:none;border-radius:var(--r-lg);background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--t-lg);font-weight:700;box-shadow:var(--shadow);cursor:pointer}.exam-next{background:var(--jade-ink);color:#fff}.exam-prev:disabled{color:var(--shadow-ink);cursor:default;background:transparent;box-shadow:var(--ring-in) var(--grid)}.exam-count{margin:0;color:var(--ink-soft);font-size:var(--t-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.exam-count-mark{vertical-align:-2px;margin-right:2px}.page.exam.exam-room{background:#fbf8f1}body:has(.exam-room){background:#fbf8f1}.exam-score .exam-section-score,.exam-score .exam-unmarked,.exam-score .exam-fig-foot{animation:score-follow .4s .9s ease-out both}@keyframes score-follow{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.exam-score .exam-section-score,.exam-score .exam-unmarked,.exam-score .exam-fig-foot{animation:none}}.exam-score{margin:var(--s-3) var(--s-4);padding:var(--s-4);background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow);text-align:center}.exam-total{margin:0;font-family:var(--font-display);font-size:44px;line-height:1;color:var(--ink)}.exam-outof{font-size:var(--t-xl);color:var(--ink-soft)}.exam-sections{list-style:none;margin:var(--s-4) 0 0;padding:0;text-align:left}.exam-section-score{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:var(--s-1) var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--line);color:var(--ink)}.exam-sec-name{font-family:var(--font-hanzi);font-size:var(--t-lg)}.exam-sec-name:not(:lang(zh)){font-family:var(--font-display);font-weight:700;font-size:var(--t-base)}.exam-sec-marks{font-family:var(--font-display);font-weight:700;font-size:var(--t-lg);font-variant-numeric:tabular-nums}.exam-sec-bar{grid-column:1 / -1;height:6px;border-radius:var(--r-pill);background:var(--line);overflow:hidden}.exam-sec-bar i{display:block;height:100%;background:var(--jade)}.exam-sec-correct{color:var(--ink-soft);font-size:var(--t-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.exam-part-chip+.exam-part-chip:before{content:" · "}.exam-unmarked{margin:2px 0 0;color:var(--ink-soft);font-size:var(--t-sm)}.exam-part-scores,.exam-last-time{margin:2px 0 0;color:var(--ink-soft);font-size:var(--t-sm);font-variant-numeric:tabular-nums}.exam-last-time{margin-top:var(--s-2)}.exam-benchmark{margin:var(--s-3) 0 0;font-size:var(--t-sm);color:var(--ink-soft)}.exam-review{list-style:none;margin:0 var(--s-4) 40px;padding:0}.exam-row{display:flex;gap:var(--s-3);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-2);background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--shadow)}.exam-row.right{border-left:4px solid var(--jade-ink)}.exam-row.wrong{border-left:4px solid var(--red-deep)}.exam-row.unmarked{border-left:4px solid var(--line)}.exam-row-written{margin:var(--s-1) 0 0;font-size:var(--t-sm);line-height:1.6;color:var(--ink);white-space:pre-wrap}.exam-row-n{flex:none;width:2ch;color:var(--ink-soft);font-size:var(--t-sm);font-variant-numeric:tabular-nums}.exam-row-body{flex:1;min-width:0}.exam-row-verdict{display:flex;align-items:center;gap:var(--s-1);margin:0;font-size:var(--t-sm);color:var(--ink)}.exam-row-why{margin:var(--s-1) 0 0;font-size:var(--t-sm);line-height:1.6;color:var(--ink-soft)}.exam-verdict{margin:var(--s-3) 0 0;padding:var(--s-3);border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow)}.exam-verdict.right{border-left:4px solid var(--jade-ink)}.exam-verdict.wrong{border-left:4px solid var(--red-deep)}.exam-check-btn,.exam-redo-btn{display:block;margin:var(--s-3) auto 0;padding:var(--s-2) var(--s-4);border:none;border-radius:var(--r-pill);background:var(--blue);color:#fff;font-family:var(--font-display);font-size:var(--t-sm);font-weight:700}:root{--font-rail-face: "Fredoka", "Segoe UI", "Noto Sans", Roboto;--font-rail: var(--font-rail-face), sans-serif}:root[data-rail=ru]{--font-rail-face: "Fredoka", "Segoe UI", "Noto Sans", Roboto}:root[data-rail=th]{--font-rail-face: "Noto Sans Thai", "Leelawadee UI", "Sarabun", Tahoma}:root[data-rail=ko]{--font-rail-face: "Noto Sans KR", "Malgun Gothic", "Apple SD Gothic Neo"}:root[data-rail=ja]{--font-rail-face: "Noto Sans JP", "Yu Gothic UI", "Hiragino Sans", "Meiryo"}:root[data-rail=zh-Hant]{--font-rail-face: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC"}:root[data-rail=vi]{--font-rail-face: "Fredoka", "Segoe UI", Roboto}.crash-retry small,.crash-wipe small,.crash-more summary small{display:block;font-family:var(--font-rail);font-size:var(--t-2xs);margin-top:1px}small{font-family:var(--font-rail)}small.rail{display:block;font-family:var(--font-rail);font-size:var(--t-2xs);line-height:1.35;color:var(--ink-soft);margin-top:1px}button small.rail,.set-card small.rail,.ach-toast small.rail,.ach-heading small.rail{color:inherit}.stg-head{margin:0 0 var(--s-1);display:flex;flex-direction:column;gap:1px;font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-xl);color:var(--ink);line-height:1.25}.stg-group{background:#fffffff5;border:1px solid rgba(77,88,110,.14);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);overflow:hidden}.stg-row,.stg-block{border-top:1px solid rgba(77,88,110,.1)}.stg-group>:first-child{border-top:none}.stg-block{padding:var(--s-3) var(--s-4) var(--s-4)}.stg-row{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:60px;padding:var(--s-3) var(--s-4);background:none;border-left:none;border-right:none;border-bottom:none;text-align:left;color:inherit}.stg-icon{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--sky);color:var(--ink-soft);filter:grayscale(.6);transition:background .2s ease,filter .2s ease,color .2s ease}.stg-row.on .stg-icon{background:#fff3d6;color:var(--ink);filter:none}.stg-icon.plain{filter:none}.stg-icon.danger{filter:none;background:var(--rose-soft);color:var(--red-deep)}.stg-danger-title{margin-right:auto}.stg-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.stg-zh{font-family:var(--font-hanzi);font-size:var(--t-lg);line-height:1.3;color:var(--ink)}.stg-switch-wrap{flex:none;display:inline-flex;align-items:center;gap:var(--s-2)}.stg-switch-word{font-family:var(--font-hanzi);font-size:var(--t-xs);color:var(--ink-soft);min-width:1.2em;text-align:right}.stg-switch{position:relative;width:46px;height:28px;border-radius:var(--r-pill);background:#8390a5;transition:background .2s ease}.stg-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px #28303f59;transition:transform .32s var(--ease-spring)}.stg-row.on .stg-switch{background:var(--jade)}.stg-row.on .stg-knob{transform:translate(18px)}.seg{position:relative;display:grid;grid-template-columns:repeat(var(--n, 3),1fr);padding:3px;border-radius:var(--r-md);background:var(--sky-deep)}.seg-pill{position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px) / var(--n, 3));border-radius:var(--r-sm);background:var(--paper);box-shadow:0 1px 4px #28303f29;transition:transform .36s var(--ease-spring);pointer-events:none}.seg-btn{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:var(--s-2) var(--s-1);border:none;background:none;border-radius:var(--r-sm);color:var(--ink-soft);text-align:center}.seg-zh{font-family:var(--font-hanzi);font-size:var(--t-md);line-height:1.2}.seg-latin{font-family:var(--font-display);font-size:var(--t-md);line-height:1.2}.seg-en{font-family:var(--font-rail);font-weight:600;font-size:var(--t-2xs)}.seg-btn.on .seg-zh{color:var(--ink)}.stg-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:var(--s-3) var(--s-2)}.stg-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:2px var(--s-2);text-align:center}.stg-stat+.stg-stat{border-left:1px solid rgba(77,88,110,.12)}.stg-stat b{font-family:var(--font-display);font-weight:800;font-size:var(--t-2xl);line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}.stg-stat-label{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:3px;font-family:var(--font-hanzi);font-size:var(--t-xs);color:var(--ink-soft)}.stg-stat-label>small.rail{flex-basis:100%;margin-top:0}.stg-stat-label .stg-zh{font-size:var(--t-xs);color:var(--ink-soft)}.stg-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.stg-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-height:40px;padding:var(--s-2) var(--s-4);border:none;border-radius:var(--r-sm);background:var(--sky-deep);color:var(--ink);cursor:pointer;line-height:1.2}.stg-btn .stg-zh{font-size:var(--t-md)}.stg-btn:disabled{cursor:default;color:var(--ink-soft)}.stg-note{margin:var(--s-2) 0 0;font-family:var(--font-hanzi);font-size:var(--t-sm);line-height:1.6;color:var(--ink-soft)}.stg-note .rail{font-family:var(--font-rail)}.stg-confirm{background:var(--rose-soft);border:1px solid rgba(224,57,62,.35);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4);animation:pop .18s ease}.stg-confirm-q{font-family:var(--font-hanzi);font-size:var(--t-base);line-height:1.7;color:var(--red-deep);margin:0 0 var(--s-3)}.stg-confirm-q .rail{font-family:var(--font-rail);display:block;font-size:var(--t-sm)}.stg-confirm-row{display:flex;gap:var(--s-2)}.stg-keep{flex:2;border:none;background:var(--jade);color:#fff;border-radius:var(--r-pill);padding:var(--s-3) var(--s-4);display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow)}.stg-keep .stg-zh,.stg-keep .stg-en{color:#fff}.stg-wipe{position:relative;overflow:hidden;flex:1;border:1px solid rgba(224,57,62,.35);background:var(--paper);color:var(--red-deep);border-radius:var(--r-pill);padding:var(--s-2) var(--s-3);display:flex;flex-direction:column;align-items:center;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.stg-wipe>:not(.stg-hold-fill){position:relative;z-index:1}.stg-wipe .stg-zh,.stg-wipe .stg-en,.stg-hold-hint .stg-zh,.stg-hold-hint .stg-en{color:var(--red-deep)}.stg-hold-hint{display:flex;flex-direction:column;align-items:center;margin-top:2px}.stg-hold-hint .stg-zh{font-size:var(--t-2xs)}.stg-hold-fill{position:absolute;inset:0;width:0;background:#e0393e38;transition:width 0s}.stg-wipe.holding .stg-hold-fill{width:100%;transition:width var(--hold, 1.2s) linear}@keyframes stg-wave{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}.stg-field{display:grid;gap:var(--s-2)}.stg-select-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.sel{position:relative;flex:0 1 auto;min-width:0;max-width:58%}.sel-btn{display:flex;align-items:center;gap:var(--s-2);width:100%;padding:var(--s-2) var(--s-3);border:1.5px solid rgba(77,88,110,.3);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font:inherit;font-size:var(--t-sm);text-align:left;cursor:pointer}.sel.open .sel-btn,.sel-btn:focus-visible{box-shadow:var(--ring) var(--gold);outline:none}.sel-value{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;line-height:1.2}.sel.names .sel-value,.sel-list.names .sel-opt{font-family:var(--font-native)}.sel-sub{color:var(--ink-soft);font-size:var(--t-xs);font-weight:600;font-family:var(--font-body)}.sel-chev{flex:none;color:var(--ink-soft);transition:transform .16s ease}.sel.open .sel-chev{transform:rotate(180deg)}.sel-list{position:fixed;z-index:60;max-height:44vh;overflow-y:auto;overscroll-behavior:contain;padding:var(--s-2);border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow-lift)}.sel-opt{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3);border-radius:var(--r-sm);color:var(--ink);font-size:var(--t-sm);cursor:pointer}.sel-opt.active{background:var(--sky)}.sel-opt.on{font-weight:800}.sel-opt-label{flex:1 1 auto;display:flex;flex-direction:column;line-height:1.2}.sel-tick{flex:none;color:var(--jade)}a.stg-btn{text-decoration:none}.stg-btn-outline{flex-direction:row;gap:var(--s-2);border:1.5px solid rgba(77,88,110,.3);background:var(--paper)}.stg-danger-zone{margin:var(--s-3) 0 0;padding:var(--s-3) var(--s-4);border:1px dashed rgba(224,57,62,.45);border-radius:var(--r-md);display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.stg-danger-title{margin:0;display:flex;flex-direction:column}.stg-danger-title .stg-zh,.stg-danger-title .stg-en,.stg-danger-btn .stg-zh,.stg-danger-btn .stg-en{color:var(--red-deep)}.stg-danger-btn{flex:none;display:flex;flex-direction:column;align-items:center;padding:var(--s-2) var(--s-4);border:1.5px solid var(--red-deep);border-radius:var(--r-pill);background:transparent}.stg-danger-btn .stg-zh{font-size:var(--t-sm)}.sheet.stg-confirm{background:var(--rose-soft);animation:sheet-up .25s cubic-bezier(.2,1.2,.4,1)}.profile-data .stg-stats{padding:var(--s-1) 0 0}.stg-tap{transition:transform .28s var(--ease-spring)}.stg-tap:active{transform:scale(.96);transition-duration:.08s;transition-timing-function:ease-out}@media(prefers-reduced-motion:reduce){.stg-tap,.stg-knob,.stg-seg-pill,.stg-switch,.stg-icon{transition:none}.stg-tap:active{transform:none}}:root[data-world] :is(.exams-page,.dx-page,.rd-page,.hz-page,.page.exam,.page.oral-page,.page.game:has(.dict-slots)){--sky: color-mix(in srgb, var(--w-deep) 7%, var(--w-paper));--sky-deep: color-mix(in srgb, var(--w-deep) 16%, var(--w-paper));--blue: var(--w-deep);--grid: color-mix(in srgb, var(--w-deep) 35%, var(--w-paper))}:root[data-world] :is(.exams-page,.dx-page) .wm-bands{gap:var(--s-1);margin:0 calc(-1 * var(--s-4)) var(--s-3);padding:var(--s-2) var(--s-4) 0;border-radius:0;background:var(--w-deep)}:root[data-world] :is(.exams-page,.dx-page) .wm-bands .seg-pill{display:none}:root[data-world] .exams-page .wm-bands{top:84px}:root[data-world] :is(.exams-page,.dx-page) .wm-band{min-width:0;padding:var(--s-2) var(--s-1);border-top-left-radius:var(--r-md);border-top-right-radius:var(--r-md);border-bottom-left-radius:0;border-bottom-right-radius:0;background:#ffffff24;color:#fff;line-height:1.1}:root[data-world] :is(.exams-page,.dx-page) .wm-band.on{background:var(--w-paper);color:var(--w-ink)}:root[data-world] :is(.exams-page,.dx-page) .wm-band .seg-latin{width:min-content;font-size:var(--t-2xl);font-weight:700;line-height:1.1;text-align:center}:root[data-world] :is(.exams-page,.dx-page) .wm-band .seg-latin:first-line{font-size:var(--t-2xs);font-weight:400;letter-spacing:.08em}:root[data-world] :is(.exams-page,.dx-page) .wm-band-n{color:inherit}:root[data-world] .dx-toggle .seg{background:var(--paper);border:1.5px solid var(--w-deep)}:root[data-world] .dx-toggle .seg-pill{background:var(--w-deep);box-shadow:none}:root[data-world] .dx-toggle .seg-btn{color:var(--w-ink)}:root[data-world] .dx-toggle .seg-btn.on,:root[data-world] .dx-toggle .seg-btn.on .seg-zh{color:var(--w-paper)}:root[data-world] .path-map .wm-decor,:root[data-world] .path-map .wm-face,:root[data-world] .path-map .wm-done-badge{display:none}:root[data-world] .path-map .road path:first-child{stroke:color-mix(in srgb,var(--w-deep) 12%,transparent)}:root[data-world] .path-map .road path:last-child{stroke:var(--w-deep)}:root[data-world] .path-map .wm-row,:root[data-world] .path-map .wm-row.wm-right,:root[data-world] .path-map .wm-row:not(.locked):hover,:root[data-world] .path-map .wm-row:not(.locked):active{padding:0;background:none}:root[data-world] .path-map .path-node{width:64px;height:64px;border:3px solid var(--w-deep);background:var(--w-paper);box-shadow:none}:root[data-world] .path-map .path-node:has(>.wm-done-badge){background:var(--w-accent)}:root[data-world] .path-map .wm-badge{inset:0;width:100%;height:100%;min-width:0;padding:0;background:none;box-shadow:none;color:var(--w-ink);font-size:var(--t-xl)}:root[data-world] .path-map .path-node:has(>.wm-done-badge) .wm-badge{color:var(--w-on-accent)}:root[data-world] .path-map .wm-ring circle:first-child{stroke:color-mix(in srgb,var(--w-deep) 18%,transparent)}:root[data-world] .path-map .wm-ring circle+circle{stroke:var(--w-accent)}:root[data-world] .path-map .wm-lock{border:1.5px solid var(--w-deep);background:var(--w-paper);box-shadow:none;color:var(--w-ink)}:root[data-world] .path-map .path-flag{box-shadow:none}:root[data-world] .path-map .wm-info{min-width:0;padding:var(--s-1) var(--s-3);border:1.5px solid var(--w-deep);border-radius:var(--r-sm);background:var(--paper);color:var(--w-ink)}:root[data-world] .path-map .path-sub{color:var(--ink-soft)}:root[data-world] .path-map .path-badge{background:var(--w-deep);color:var(--w-paper)}:root[data-world=agency] .path-map .wm-info{border-color:var(--w-accent);background:var(--w-deep);color:var(--w-paper)}:root[data-world=agency] .path-map .path-sub{color:var(--w-paper)}:root[data-world=agency] .path-map .path-badge{background:var(--w-accent);color:var(--w-on-accent)}:root[data-world=campus] .path-map .wm-info{background:var(--w-paper);filter:drop-shadow(3px 3px 0 var(--w-accent))}.path-here{flex:none;align-self:flex-end;margin-left:auto;pointer-events:none}.wm-right .path-here{margin-left:0;margin-right:auto}:root[data-world] :where(.exams-page,.dx-page,.rd-page,.hz-page,.page.exam,.page.oral-page,.page.game:has(.dict-slots)) :is(.big-btn,.exam-next,.hz-btn.primary,.tx-mode-primary,.listen-play:not(:disabled)){border:2px solid var(--w-deep);background:var(--w-accent);color:var(--w-on-accent);box-shadow:none}:root[data-world] :where(.exams-page,.dx-page,.rd-page,.hz-page,.page.exam,.page.oral-page,.page.game:has(.dict-slots)) :is(.big-btn.ghost,.exam-prev,.hz-btn:not(.primary),.tx-mode:not(.tx-mode-primary)){border:2px solid var(--w-deep);background:var(--paper);color:var(--w-ink);box-shadow:none}:root[data-world] :where(.exams-page,.dx-page,.rd-page,.hz-page,.page.exam,.page.oral-page,.page.game:has(.dict-slots)) :is(.tx-mode-primary,.hz-btn.primary) .rail{color:var(--w-on-accent)}:root[data-world] .page.exam .exam-prev:disabled{border:2px dashed var(--grid);background:transparent;color:var(--ink-soft);box-shadow:none}:root[data-world] .page.exam .listen-play:disabled{background:var(--sky-deep);color:var(--w-ink)}:root[data-world] :where(.exams-page,.dx-page,.rd-page,.hz-page,.page.exam,.page.oral-page,.page.game:has(.dict-slots)) :is(.tx-ledger,.rd-para,.rd-bar,.mx-steps,.mx-bar,.mx-text,.mx-built,.mx-tile,.mx-opt,.mx-listen,.exam-score,.exam-passage,.exam-build-line,.exam-order-line,.exam-essay-prompt,.exam-clock,.exam-flag-btn,.write-ctl,.hz-search-input,.teacher-block,.confirm-box,.tx-marks,.rd-next,.pill){border:1.5px solid var(--w-deep);box-shadow:none}:root[data-world] .page.oral-page .teacher-block{background:var(--paper)}:root[data-world] .page.oral-page .oral-chip{background:var(--sky-deep);color:var(--w-ink)}:root[data-world] .hz-page .hz-trace.on,:root[data-world] .page.oral-page .mx-film-btn{background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .page.exam .option{border:1.5px solid var(--w-deep)}:root[data-world] .page.exam .option:not(.right,.picked-wrong,.picked){box-shadow:none}:root[data-world] .page.exam .option.picked{background:var(--sky)}:root[data-world] .page.exam .option-letter{background:var(--sky-deep);color:var(--w-ink)}:root[data-world] .page.exam .exam-flag-btn{background:transparent;box-shadow:none}:root[data-world] .page.exam .exam-flag-btn.on{border-color:var(--w-accent);color:var(--w-accent-text)}:root[data-world] .page.exam button.score-pill{padding:0 var(--s-2);border-radius:var(--r-xs);background:var(--sky-deep);color:var(--w-ink)}:root[data-world] .page.exam :is(.exam-row,.exam-verdict){border-top:1.5px solid var(--w-deep);border-right:1.5px solid var(--w-deep);border-bottom:1.5px solid var(--w-deep);box-shadow:none}:root[data-world] .page.exam .exam-sec-bar{background:var(--sky-deep)}:root[data-world] .page.exam :is(.exam-chip,.exam-order-chip).picked{background:var(--sky-deep);box-shadow:var(--ring) var(--blue)}:root[data-world] .page.exam .exam-fig-fill,:root[data-world] .page.exam .exam-sec-bar i{background:var(--w-accent)}:root[data-world] .page.exam .exam-section-score{border-top-color:var(--w-deep)}:root[data-world] .page.exam .exam-practice-tag{background:var(--sky-deep);color:var(--w-ink)}:root[data-world] .page.exam.exam-room,:root[data-world] body:has(.exam-room){background:var(--w-paper)}:root[data-world] :is(.paper-sheet,.page.exam .exam-sheet,.hz-page .hz-radsheet){border-top:3px solid var(--w-deep);background:var(--w-paper);outline:1.5px dashed var(--w-deep);outline-offset:-6px}:root[data-world] :is(.paper-sheet,.page.exam .exam-sheet,.hz-page .hz-radsheet) .sheet-close{border:1.5px solid var(--w-deep);background:var(--paper);color:var(--w-ink)}:root[data-world] .paper-sheet-status{background:var(--sky-deep);color:var(--w-ink)}:root[data-world] .paper-sheet-status.done{background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .paper-sheet-practice.on .stg-switch{background:var(--w-accent)}:root[data-world] .paper-sheet .exam-start{border:2px solid var(--w-deep);background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .paper-sheet .exam-drills{border-top-color:var(--grid)}:root[data-world] .paper-sheet .exam-drill{border:1.5px dashed var(--w-deep);background:var(--paper);box-shadow:none;color:var(--w-ink)}:root[data-world] .page.exam .exam-qchip{border-color:var(--grid);color:var(--w-ink)}:root[data-world] :is(.dx-page,.hz-page,.page.oral-page,.page.game:has(.dict-slots)) .write-grid{border-color:var(--w-accent);box-shadow:none}:root[data-world] :is(.dx-page,.hz-page,.page.oral-page,.page.game:has(.dict-slots)) .mi-grid line{stroke:var(--grid)}:root[data-world] .page.game:has(.dict-slots) .dict-slot.now{border-color:var(--w-accent)}:root[data-world] .page.oral-page .tx-wordrow{border-top-color:var(--sky-deep)}:root[data-world] .page.oral-page .tx-say{border:1.5px solid var(--w-deep);background:var(--paper);color:var(--w-ink)}:root[data-world] .page.oral-page .tx-fix-btn{box-shadow:none}.confirm-box>.world-face{margin:0 auto}:root[data-world] .write-overlay{--sky: color-mix(in srgb, var(--w-deep) 7%, var(--w-paper));--sky-deep: color-mix(in srgb, var(--w-deep) 16%, var(--w-paper));--grid: color-mix(in srgb, var(--w-deep) 35%, var(--w-paper));background:var(--w-paper);color:var(--w-ink)}:root[data-world] .write-overlay :is(.game-mode,.write-pinyin){color:var(--w-ink)}:root[data-world] .write-overlay .quit-btn{display:grid;place-items:center;border:2px solid var(--w-deep);border-radius:50%;background:#fff;color:var(--w-ink);font-size:var(--t-xl)}:root[data-world] .write-overlay .write-grid{border:2px solid var(--w-deep);box-shadow:none}:root[data-world] .write-overlay :is(.write-ctl,.radical-hint){border:1.5px solid var(--w-deep);box-shadow:none}:root[data-world] .write-overlay .char-dot.now{background:var(--w-deep)}:root[data-world] .write-overlay .char-dot.f{background:var(--w-accent)}.seal:not(:lang(zh),:lang(ja),:lang(ko)){min-width:0;min-height:0;padding:var(--s-1) var(--s-2);font-family:var(--font-display);font-weight:800;font-size:var(--t-xl);letter-spacing:.04em}.write-seal .seal:not(:lang(zh),:lang(ja),:lang(ko)){width:auto;height:auto;font-size:var(--t-lg)}.wc-foot{padding:0 var(--s-4) var(--s-4)}.sheet-card .wc-foot :is(.sheet-def,.sheet-does){width:auto}.wc-foot .sheet-does{margin-top:0}:root[data-world] .wc-foot .pill{border:1.5px solid var(--w-deep);box-shadow:none}:root[data-world] .paper-list-sheet{background:color-mix(in srgb,#fff 60%,var(--w-paper));border:2px solid var(--w-deep);border-radius:var(--r-lg);box-shadow:none;padding:var(--s-2) var(--s-4);color:var(--w-ink)}:root[data-world] .paper-list{margin:0;padding:0;list-style:none}:root[data-world] .paper-row{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3) 0;border:0;border-top:1.5px solid color-mix(in srgb,var(--w-deep) 22%,transparent);background:none;color:var(--w-ink);text-align:left}:root[data-world] .paper-list li:first-child .paper-row{border-top:0}:root[data-world] .paper-row-n{min-width:1.8em;font-size:var(--t-sm);font-weight:700;color:var(--w-accent-text)}:root[data-world] .paper-row-title{flex:1;min-width:0;font-size:var(--t-lg)}:root[data-world] .paper-row-best,:root[data-world] .paper-row-meta{flex-shrink:0;font-size:var(--t-xs);text-align:right;color:var(--w-ink)}:root[data-world] .paper-row-best{font-weight:700;color:var(--w-accent-text)}:root[data-world] .paper-row-n{display:grid;place-items:center;width:2em;height:2em;min-width:2em;border-radius:50%}:root[data-world=teahouse] .paper-list-sheet{background:color-mix(in srgb,#fff 70%,transparent);border-color:color-mix(in srgb,var(--w-deep) 35%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-soft)}:root[data-world=teahouse] .paper-row-n{border:2px solid var(--w-deep);color:var(--w-deep)}:root[data-world=campus] .paper-list-sheet{border-color:var(--w-ink);border-radius:var(--r-sm);filter:drop-shadow(3px 3px 0 var(--w-accent))}:root[data-world=campus] .paper-row{border-top-style:dashed}:root[data-world=campus] .paper-row-n{background:var(--w-accent);color:var(--w-paper)}:root[data-world=park] .paper-list-sheet{position:relative;border-color:transparent;background:var(--w-paper);box-shadow:var(--shadow-soft)}:root[data-world=park] .paper-list-sheet:before{content:"";position:absolute;top:-7px;left:50%;width:64px;height:14px;translate:-50% 0;rotate:-3deg;border-radius:var(--r-2xs);background:#dc96388c}:root[data-world=park] .paper-row-n{background:#c84832;color:var(--w-paper)}:root[data-world=agency] .paper-list-sheet{background:var(--w-deep);border-color:var(--w-accent);color:var(--w-paper)}:root[data-world=agency] .paper-row{border-top-color:color-mix(in srgb,var(--w-accent) 45%,transparent);color:var(--w-paper)}:root[data-world=agency] :is(.paper-row-meta,.paper-row-title){color:var(--w-paper)}:root[data-world=agency] .paper-row-n{background:var(--w-accent);color:var(--w-deep)}:root[data-world=agency] .paper-row-best{color:var(--w-accent)}:root:is([data-world=incubator],[data-world=biopharma]) .paper-list-sheet{border-color:var(--w-ink);border-radius:var(--r-2xs);box-shadow:0 2px 0 var(--ink)}:root:is([data-world=incubator],[data-world=biopharma]) .paper-row-n{border-radius:var(--r-2xs);clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);background:var(--w-accent);color:var(--w-paper)}:root[data-world=greenhub] .paper-list-sheet{border-color:var(--w-ink);border-radius:var(--r-md);box-shadow:0 2px 0 var(--ink)}:root[data-world=greenhub] .paper-row-n{border-radius:var(--r-sm);background:var(--w-deep);color:var(--w-paper)}:root[data-world] .page.oral-page .teacher-block .owl{display:none}:root[data-world] .hz-page .hz-cell{border:1.5px solid var(--grid);box-shadow:none}:root[data-world] .hz-page .hz-cell.done{border-color:var(--w-deep);background:var(--sky-deep)}:root[data-world] .hz-page .filter-chip{border:1.5px solid var(--w-deep);box-shadow:none;color:var(--w-ink)}:root[data-world] .hz-page .filter-chip.on{background:var(--w-deep);color:var(--w-paper)}:root[data-world] .hz-page .filter-chip.on .filter-n{background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] :is(.rd-page,.page.oral-page) .rd-play:not(.on){background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] :is(.rd-page,.page.oral-page) .rd-box.good{background:color-mix(in srgb,var(--w-accent) 16%,var(--paper))}:root[data-world] :is(.rd-page,.page.oral-page) .rd-box.good.open{background:color-mix(in srgb,var(--w-accent) 30%,var(--paper));box-shadow:none}:root[data-world] :is(.rd-page,.page.oral-page) .rd-gloss{background:var(--sky)}:root[data-world] :is(.rd-page,.page.oral-page) .oral-head{color:var(--w-ink)}:root[data-world] :is(.rd-page,.page.oral-page) :is(.rd-sent.on,.mx-chunk.on){background:var(--sky-deep)}.mx-text .mx-chunk{flex-wrap:wrap;max-width:100%}.rd-head-title{overflow:visible;white-space:normal;text-wrap:balance}.glance{margin:-18px var(--s-1) var(--s-6);color:var(--ink-soft);font-size:var(--t-sm);font-weight:700}.ruby{display:inline-flex;align-items:baseline;gap:3px}.ruby ruby{ruby-position:over}.ruby rt{font-family:var(--font-pinyin);font-size:var(--t-2xs);font-weight:400;color:var(--ink-soft);letter-spacing:0}.ruby-fallback{display:inline-flex;flex-direction:column}.ruby-fallback-py{font-family:var(--font-pinyin);font-size:var(--t-xs);color:var(--ink-soft)}.tx-title-ruby rt{font-size:var(--t-xs)}.tx-title-ruby{flex-wrap:wrap;row-gap:4px}.tian-col{display:flex;flex-direction:column;align-items:center;gap:var(--s-1)}.tian-py{font-family:var(--font-pinyin);font-weight:700;font-size:var(--t-base);color:var(--ink-soft);line-height:1}.tian-small .tian-py{font-size:var(--t-xs)}.match-word.ruby{gap:var(--s-1)}.match-word rt{font-size:var(--t-xs)}.collect-hanzi.ruby{font-weight:700}.placement-ruby rt,.row-hanzi rt{font-size:var(--t-xs)}.rd-gloss-rt{color:#a08247}.write-pinyin>span{margin:0 .18em}.write-pinyin>.now{color:var(--ink)}.mx-write-chunk{display:inline-flex;align-items:flex-end}.mx-write-col{display:inline-flex;flex-direction:column;align-items:center}.mx-write-slot-py{font-family:var(--font-pinyin);font-size:var(--t-2xs);color:var(--ink-soft);line-height:1.2}.paywall-later{width:100%;margin:var(--s-2) 0 var(--s-1);padding:var(--s-3);border:none;border-radius:var(--r-md);background:var(--sky);color:var(--ink);font-family:var(--font-body);font-size:var(--t-base);font-weight:700;cursor:pointer}.hz-search{display:block;margin:0 0 var(--s-3)}.hz-search-input{width:100%;padding:var(--s-3) var(--s-4);border:none;border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow-soft);font-family:var(--font-body);font-size:var(--t-lg);color:var(--ink)}.hz-section{margin:0 0 var(--s-4)}.hz-title{margin:0 0 var(--s-2);font-family:var(--font-hanzi);font-size:var(--t-base);color:var(--ink)}.hz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:var(--s-2)}.hz-cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--s-2) var(--s-1);border:none;border-radius:var(--r-sm);background:var(--paper);box-shadow:var(--shadow-soft);color:var(--ink);cursor:pointer}.hz-cell.done{background:var(--jade-soft)}.hz-cell-char{font-family:var(--font-dict);font-size:var(--t-3xl);line-height:1.1}.hz-cell-sub{font-family:var(--font-pinyin);font-size:var(--t-2xs);color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.hz-cell-done{position:absolute;top:4px;right:4px;color:var(--jade-ink)}.filter-chip.axis-2{border:1px dashed var(--sky-deep)}.filter-chip.axis-2.on{border-color:transparent}.filter-glyph{font-family:var(--font-dict);font-size:var(--t-base);line-height:1}.hz-radsheet{max-height:72vh;overflow-y:auto}.hz-anyrad{padding:var(--s-3) 0}.hz-total{margin:var(--s-1) 0 0;text-align:center;font-size:var(--t-sm);color:var(--ink-soft)}.hz-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 var(--s-1)}.hz-pos{font-family:var(--font-display);font-size:var(--t-sm);color:var(--ink-soft)}.hz-info{text-align:center;margin:0 0 var(--s-2)}.hz-readings{margin:0;font-family:var(--font-pinyin);font-size:var(--t-xl);font-weight:700;color:var(--ink)}.hz-meta{margin:var(--s-1) 0 0;font-size:var(--t-sm);color:var(--ink-soft)}.hz-stage .write-grid{position:relative}.hz-nodata{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:var(--s-4);text-align:center;font-size:var(--t-sm);color:var(--ink-soft)}.hz-trace{width:auto;padding:0 var(--s-3);font-family:var(--font-hanzi);font-size:var(--t-base)}.hz-trace.on{background:var(--jade-ink);color:#fff}.hz-after{display:flex;gap:var(--s-2);justify-content:center;margin:var(--s-2) 0 var(--s-3)}.hz-btn{display:inline-flex;flex-direction:column;align-items:center;padding:var(--s-3) var(--s-4);border:none;border-radius:var(--r-pill);background:var(--paper);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-base);box-shadow:var(--shadow-soft);cursor:pointer}.hz-btn.primary{background:var(--jade-ink);color:#fff}.hz-btn.primary .rail{color:#fff}.hz-words{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-1)}.hz-word{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-2) var(--s-3);border:none;border-radius:var(--r-sm);background:var(--paper);box-shadow:var(--shadow-soft);text-align:left;cursor:pointer}.hz-word-hz{font-family:var(--font-hanzi);font-size:var(--t-xl);color:var(--ink)}.hz-word-en{font-size:var(--t-sm);color:var(--ink-soft)}.hz-char{margin:0;font-family:var(--font-dict);font-size:44px;line-height:1.1;color:var(--ink)}.rv-page{display:flex;flex-direction:column;gap:var(--s-5)}.rv-section{display:flex;flex-direction:column;gap:var(--s-2)}.rv-band{display:flex;align-items:center;gap:var(--s-3);margin:0;padding:0 var(--s-1);font-family:var(--font-hanzi);font-size:var(--t-base);font-weight:400;color:var(--ink-soft)}.rv-band:not(:lang(zh)){font-family:var(--font-display);font-weight:600}.rv-band:after{content:"";flex:1;height:1px;background:var(--sky-deep)}.rv-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-3)}.rv-new-top{display:flex;align-items:center;gap:var(--s-3)}.rv-new-top .rv-band{flex:1;min-width:0}.rv-cards-btn{flex:none;min-height:44px;padding:0 var(--s-3);color:var(--jade-ink);box-shadow:var(--shadow-soft);font-family:var(--font-rail);font-size:var(--t-md)}.rv-cards-btn:has(:lang(zh)){font-family:var(--font-hanzi);font-weight:400}.rv-groups{display:grid;gap:var(--s-3)}@media(min-width:720px){.rv-groups{grid-template-columns:3fr 2fr;align-items:start}}.rv-group{border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--shadow);overflow:hidden}.rv-group-head{min-height:52px;display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4)}.rv-group-name{flex:1;min-width:0;margin:0;font-family:var(--font-hanzi);font-size:var(--t-lg);font-weight:400;color:var(--ink)}.rv-group-name:not(:lang(zh)){font-family:var(--font-rail);font-weight:700;font-size:var(--t-base)}.rv-group-pending .rv-group-head{background:var(--jade-soft)}.rv-group-mastered .rv-group-head{background:var(--sky)}.rv-start.rv-start-btn{min-height:44px;display:inline-flex;align-items:center;gap:var(--s-1);border:none;background:var(--jade-ink);color:#fff}.rv-start-btn :lang(zh){font-family:var(--font-hanzi);font-weight:400}.rv-group .rv-body:empty{display:none}.cg-count{margin-left:auto;font-family:var(--font-rail);font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.cg-grid{list-style:none;margin:0;padding:var(--s-3) 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(286px,1fr));gap:var(--s-4);justify-items:center}.cg-more{display:flex;width:fit-content;min-height:44px;margin:0 auto var(--s-6);padding:0 var(--s-5);color:var(--jade-ink);box-shadow:var(--shadow-soft);font-family:var(--font-rail);font-size:var(--t-md)}.rv-card{border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--shadow);overflow:hidden}.rv-head{width:100%;min-height:52px;display:grid;grid-template-columns:30px auto 1fr auto;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border:none;background:none;color:var(--ink);text-align:left}.rv-head:active{opacity:.85}.rv-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--sky);color:var(--ink)}.rv-wrong{background:var(--rose-soft);color:var(--red-deep)}.rv-write{background:var(--jade-soft);color:var(--jade-ink)}.rv-tingxie{background:#fff3d6;color:var(--gold-ink)}.rv-name{font-family:var(--font-hanzi);font-size:var(--t-lg);min-width:0}.rv-name:not(:lang(zh)){font-family:var(--font-display);font-size:var(--t-base);font-weight:600}.rv-count{font-family:var(--font-rail);font-size:var(--t-sm);color:var(--ink-soft);font-variant-numeric:tabular-nums}.rv-go{color:var(--ink-soft)}.rv-start{padding:var(--s-1) var(--s-3);border-radius:var(--r-pill);background:var(--paper);color:var(--jade-ink);font-family:var(--font-rail);font-size:var(--t-md);font-weight:700;white-space:nowrap}.rv-card.lead .rv-head{background:var(--jade-ink);color:#fff}.rv-card.lead .rv-icon{background:#fff3;color:#fff}.rv-card.lead .rv-count{color:#cfeadd}.rv-body{list-style:none;margin:0;padding:var(--s-1) var(--s-3) var(--s-3);display:flex;flex-wrap:wrap;gap:var(--s-2)}.rv-card.lead .rv-body{padding-top:var(--s-3)}.rv-chip{min-width:44px;min-height:44px;justify-content:center;display:inline-flex;align-items:center;gap:var(--s-2);padding:0 var(--s-3);border:1.5px solid var(--sky-deep);border-radius:var(--r-sm);background:var(--sky);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-xl);line-height:1}.rv-chip:active,.rv-tile:active{transform:scale(.96)}.rv-chip-named{font-family:var(--font-rail);font-size:var(--t-md)}.rv-chip-n{font-variant-numeric:tabular-nums;color:var(--red-deep)}.rv-chip-n.lesson{color:var(--gold-ink)}.rv-more{min-height:44px;display:inline-flex;align-items:center;padding:0 var(--s-1);font-family:var(--font-rail);font-size:var(--t-md);color:var(--ink-soft)}.rv-tile{width:56px;height:56px;padding:0;border:1.5px solid var(--grid);border-radius:var(--r-xs);background:linear-gradient(var(--sky-deep),var(--sky-deep)) center / 1px calc(100% - 8px) no-repeat,linear-gradient(var(--sky-deep),var(--sky-deep)) center / calc(100% - 8px) 1px no-repeat,var(--paper);color:var(--ink);font-family:var(--font-hanzi);font-size:var(--t-3xl);line-height:1}.rv-clear{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-5) var(--s-3)}.rv-clear-line{margin:0;font-family:var(--font-hanzi);font-size:var(--t-md);color:var(--ink);text-align:center}.rv-clear-line:not(:lang(zh)){font-family:var(--font-display);font-weight:600}.rv-clear-next{margin:0;font-family:var(--font-rail);font-size:var(--t-sm);font-weight:600;color:var(--ink-soft);text-align:center}.rv-line{width:100%;min-height:52px;display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--s-3) var(--s-2) var(--s-4);border:none;border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--shadow);color:var(--ink);text-align:left}.rv-line:active{transform:translateY(2px)}.rv-line .rv-go{margin-left:auto}.rv-figures{font-family:var(--font-rail);font-size:var(--t-base);font-variant-numeric:tabular-nums}.rv-week{padding:2px var(--s-2);border-radius:var(--r-pill);background:var(--jade-soft);color:var(--jade-ink);font-family:var(--font-rail);font-size:var(--t-xs);font-weight:700}.rv-see-all{font-family:var(--font-rail);font-size:var(--t-md);font-weight:700;color:var(--jade-ink)}.rv-figures~.rv-see-all{margin-left:auto}.rv-see-all:after{content:" →"}.pm-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:var(--s-4);background:var(--sky);animation:sheet-fade .25s ease}.pm-box{width:min(100%,420px);display:grid;justify-items:center;gap:var(--s-3);padding:var(--s-5) var(--s-4);border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow);text-align:center}.pm-stars{display:flex;align-items:flex-end;gap:var(--s-2);color:var(--gold);animation:pm-pop .6s var(--ease-spring) both}.pm-title{margin:0;font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-xl);color:var(--ink)}.pm-facts{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-1);font-family:var(--font-rail);font-size:var(--t-md);color:var(--ink)}.pm-go{margin-top:var(--s-2)}@keyframes pm-pop{0%{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}.cz-head{margin:var(--s-3) var(--s-4) var(--s-2)}.cz-step,.cz-qkind,.cz-hint{margin:0 0 var(--s-2);color:var(--ink-soft);font-size:var(--t-sm)}.cz-title{margin:0 0 var(--s-2);font-size:var(--t-lg)}.cz-prompt,.cz-passage,.cz-question,.cz-angles,.cz-order,.cz-words,.cz-build,.cz-final{margin:var(--s-3) var(--s-4)}.cz-prompt summary{color:var(--ink-soft);font-size:var(--t-sm);cursor:pointer}.cz-passage p,.cz-essay p{margin:0 0 var(--s-3);font-family:var(--font-hanzi);font-size:var(--t-base);line-height:1.9;text-indent:2em}.cz-q{font-family:var(--font-hanzi);font-size:var(--t-base)}.cz-why{margin:var(--s-3) 0;padding:var(--s-3);border-radius:var(--r-sm);background:var(--paper);font-size:var(--t-sm);line-height:1.6}.cz-why.right{background:var(--jade-soft)}.cz-next{display:block;margin:var(--s-4) auto}.cz-card{display:flex;flex-direction:column;gap:var(--s-1);width:100%;margin:0 0 var(--s-2);padding:var(--s-3);border:2px solid transparent;border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow-soft);color:var(--ink);font-family:var(--font-hanzi);text-align:left}.cz-card.on{border-color:var(--jade)}.cz-ideas{margin:0 0 var(--s-3);padding:0;list-style:none}.cz-attached{display:flex;flex-wrap:wrap;gap:var(--s-2)}.cz-word small{color:var(--ink-soft);font-family:var(--font-pinyin)}.cz-shake{animation:shake .4s}.cz-essay-so-far{margin:0 0 var(--s-3);font-family:var(--font-hanzi);line-height:1.9}.cz-tools{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;margin:0 0 var(--s-3)}.cz-essay h3{margin:0 0 var(--s-3);text-align:center}.cz-sent{cursor:pointer}.cz-sent.reading{background:var(--jade-soft)}.cz-key{padding:0;border:none;border-bottom:2px solid var(--jade);background:none;color:inherit;font:inherit}.cz-blank{color:var(--ink-soft)}.cz-blank.next{color:var(--jade-ink)}.cz-gloss{margin:var(--s-3) 0;padding:var(--s-3);border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow-soft)}.cz-gloss p{margin:var(--s-1) 0}.cz-locked{margin:var(--s-5) var(--s-4);text-align:center}.cz-angles .cz-card b{font-size:var(--t-md)}.cz-angles .cz-card span{color:var(--ink-soft);font-size:var(--t-sm)}@media(max-width:899px){body:has(.ui-switch) .bottom-nav{padding-left:calc(var(--s-2) + 40px + var(--s-1))}.ui-switch,body:has(.owl-moment) .ui-switch{display:flex}.ui-switch{left:calc(50% - min(430px,100% - 20px) / 2 + var(--s-2));bottom:calc(12px + env(safe-area-inset-bottom,0px) + var(--s-2));flex-direction:column;width:40px;gap:2px;padding:3px;border:1.5px solid var(--sky-deep);border-radius:var(--r-md);box-shadow:none;font-size:var(--t-xs)}.ui-switch-side{width:100%;min-width:0;height:25px;padding:0;border-radius:var(--r-xs)}}:root[data-world] .ui-switch{border:1.5px solid var(--w-deep);background:color-mix(in srgb,var(--w-deep) 8%,var(--w-paper));box-shadow:none}:root[data-world] .ui-switch-side{color:var(--w-ink)}:root[data-world] .ui-switch-side.on{background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .ach-wrap .ach-toast{background:var(--w-paper);border:2px solid var(--w-deep);outline:1.5px dashed var(--w-deep);outline-offset:-6px;box-shadow:var(--shadow-lift)}:root[data-world] .ach-wrap .ach-icon{background:color-mix(in srgb,var(--w-deep) 10%,#fff)}:root[data-world] .ach-wrap .ach-heading{color:var(--w-accent-text)}:root[data-world] .ach-wrap .ach-name{color:var(--w-ink)}:root[data-world] .ach-wrap .ach-sub{color:var(--ink-soft)}:root[data-world] .page.profile .stg-group,:root[data-world] .page.settings .stg-group,:root[data-world] .hsk-progress,:root[data-world] .word-ribbon,:root[data-world] .rv-group,:root[data-world] .rv-card,:root[data-world] .rv-line,:root[data-world] .set-card,:root[data-world] .pm-box{background:color-mix(in srgb,#fff 60%,var(--w-paper));border:2px solid var(--w-deep);border-radius:var(--r-lg);box-shadow:none;color:var(--w-ink)}:root[data-world] .page.profile .stg-row,:root[data-world] .page.profile .stg-block,:root[data-world] .page.settings .stg-row,:root[data-world] .page.settings .stg-block{border-top-color:color-mix(in srgb,var(--w-deep) 22%,transparent)}:root[data-world] .page.profile .stg-group>:first-child,:root[data-world] .page.settings .stg-group>:first-child{border-top-color:transparent}:root[data-world] :is(.page.profile,.page.settings) :is(.stg-text .stg-zh,.benefit-list .stg-zh,.stg-head,.picker-title){color:var(--w-ink)}:root[data-world] :is(.page.profile,.page.settings) .stg-icon{background:transparent;border:1.5px solid color-mix(in srgb,var(--w-deep) 40%,transparent);color:var(--w-ink)}:root[data-world] .page.settings .stg-row.on .stg-icon{background:color-mix(in srgb,var(--w-accent) 18%,#fff);border-color:var(--w-deep)}:root[data-world] .page.settings .stg-icon.danger{border-color:var(--red-deep);color:var(--red-deep)}:root[data-world] .benefit-cta,:root[data-world] .rv-start.rv-start-btn,:root[data-world] .signin-go,:root[data-world] .pm-go,:root[data-world] .stg-keep{background:var(--w-accent);color:var(--w-on-accent);border:2px solid var(--w-deep)}:root[data-world] :is(.page.profile,.page.settings) .stg-btn,:root[data-world] .rv-cards-btn,:root[data-world] .cg-more,:root[data-world] .hsk-cert-btn{background:color-mix(in srgb,#fff 60%,var(--w-paper));border:1.5px solid var(--w-deep);box-shadow:none;color:var(--w-ink)}:root[data-world] :is(.page.profile,.page.settings) .stg-btn .stg-zh,:root[data-world] .rv-cards-btn :lang(zh){color:var(--w-ink)}:root[data-world] .page.profile>.profile-premium{background:color-mix(in srgb,#fff 60%,var(--w-paper));border:2px solid var(--w-deep);border-top:6px solid var(--w-accent);box-shadow:none}:root[data-world] .benefit-crown{color:var(--w-accent-text)}:root[data-world] .profile-premium .benefit-icon{background:transparent;color:var(--w-ink)}:root[data-world] .profile-avatar{padding:var(--s-3);border:3px solid var(--w-deep);border-radius:50%;outline:1.5px dashed var(--w-deep);outline-offset:4px;background:color-mix(in srgb,#fff 60%,var(--w-paper))}:root[data-world] .profile-avatar:has(.world-face){border-radius:var(--r-lg)}:root[data-world] .profile-avatar .avatar{filter:none}:root[data-world] .profile-title{color:var(--w-ink)}:root[data-world] .buddy-name{border-bottom:1.5px dashed var(--w-deep);color:var(--w-ink)}:root[data-world] .buddy-name:placeholder-shown,:root[data-world] .buddy-name:focus{border:1.5px dashed var(--w-deep);background:color-mix(in srgb,#fff 60%,var(--w-paper));box-shadow:none}:root[data-world] .buddy-name:focus{outline:2px solid var(--w-accent);outline-offset:2px}:root[data-world] .level-bar,:root[data-world] .hsk-bar,:root[data-world] .book-progress,:root[data-world] .set-ring{background:color-mix(in srgb,#fff 60%,var(--w-paper));border:1.5px solid var(--w-deep);box-shadow:none}:root[data-world] .level-fill,:root[data-world] .hsk-bar-fill,:root[data-world] .book-progress-fill,:root[data-world] .set-ring>i{background:var(--w-accent)}:root[data-world] .set-ring>i[style*="100%"]{background:var(--w-deep)}:root[data-world] :is(.level-xp,.hsk-lvl){color:var(--w-ink)}:root[data-world] .hsk-row.now .hsk-lvl{color:var(--w-accent-text)}:root[data-world] .profile-data .stg-stats{gap:var(--s-2)}:root[data-world] .profile-data .stg-stat,:root[data-world] .profile-data .stg-stat+.stg-stat{padding:var(--s-2);border:1.5px dashed color-mix(in srgb,var(--w-deep) 45%,transparent);border-radius:var(--r-sm)}:root[data-world] .profile-data .stg-stat b,:root[data-world] .word-ribbon-hz{color:var(--w-ink)}:root[data-world] .word-ribbon-n{background:var(--w-deep);color:#fff}:root[data-world] .page.profile>.me-sheet{padding:var(--s-4);background:color-mix(in srgb,#fff 60%,var(--w-paper));border:2px solid var(--w-deep);border-radius:var(--r-lg);color:var(--w-ink)}:root[data-world] .page.profile>.me-card{padding-top:var(--s-3)}:root[data-world] .me-id{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--s-2) var(--s-4);padding:var(--s-5) var(--s-4) var(--s-4);text-align:left}:root[data-world] .me-id-crew{grid-column:1 / -1;padding-bottom:var(--s-2);border-bottom:1.5px dashed currentColor;font-family:var(--font-hanzi);font-size:var(--t-lg);text-align:center}:root[data-world] .me-id-face{margin-bottom:0;padding:var(--s-1);border:2px solid currentColor;border-radius:var(--r-sm);background:color-mix(in srgb,#fff 60%,var(--w-paper));line-height:0}:root[data-world] .me-id-fields{display:flex;flex-direction:column;gap:var(--s-2);min-width:0}:root[data-world] .me-id .buddy-name{width:100%;margin:0;padding:var(--s-1) var(--s-2);border:none;border-bottom:1.5px dashed currentColor;border-radius:var(--r-2xs);text-align:left;font-family:var(--font-hanzi);font-size:var(--t-xl);color:inherit}:root[data-world] .me-id .buddy-name:is(:placeholder-shown,:focus){color:var(--w-ink)}:root[data-world] .me-id-level{font-family:var(--font-hanzi);font-size:var(--t-lg)}:root[data-world] .me-id :is(.level-bar,.level-fill){display:block}:root[data-world] .me-id .level-xp{font-size:var(--t-sm);color:inherit}:root[data-world] .me-numbers{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2);margin:0}:root[data-world] .me-numbers>div{padding:var(--s-2) var(--s-3);border:1.5px dashed color-mix(in srgb,var(--w-deep) 45%,transparent);border-radius:var(--r-sm)}:root[data-world] .me-numbers dt{display:flex;align-items:center;gap:var(--s-1);font-family:var(--font-hanzi);font-size:var(--t-sm);color:var(--w-ink)}:root[data-world] .me-numbers dd{margin:var(--s-1) 0 0;font-family:var(--font-display);font-size:var(--t-2xl);font-weight:700;font-variant-numeric:tabular-nums;color:var(--w-ink)}@media(min-width:720px){:root[data-world] .me-numbers{grid-template-columns:repeat(3,1fr)}}:root[data-world] .me-numbers.five{grid-template-columns:repeat(5,1fr);margin-top:var(--s-2)}:root[data-world] .me-stamp{text-align:center}:root[data-world] .me-stamp dt{justify-content:center}:root[data-world] .me-seal{display:inline-grid;place-items:center;width:1.7em;height:1.7em;border:2px solid currentColor;border-radius:var(--r-2xs);font-family:var(--font-hanzi);font-size:var(--t-xl);color:var(--w-accent-text)}:root[data-world] .me-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}:root[data-world] .me-cast-hint{margin:0 0 var(--s-3);font-size:var(--t-sm);color:var(--w-ink)}:root[data-world] .me-cast-world+.me-cast-world{margin-top:var(--s-4)}:root[data-world] .me-cast-world{content-visibility:auto;contain-intrinsic-size:auto 230px}:root[data-world] .me-cast-name{margin:0 0 var(--s-2);font-family:var(--font-hanzi);font-weight:400;font-size:var(--t-base);color:var(--w-ink)}:root[data-world] .me-cast-name small{font-family:var(--font-display);font-size:var(--t-xs);color:var(--w-deep)}:root[data-world] .me-faces{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-2);margin:0;padding:0}:root[data-world] .me-face{border:2px solid var(--w-deep);border-radius:var(--r-sm);background:var(--w-paper)}:root[data-world] .me-face-btn{display:flex;flex-direction:column;align-items:center;gap:var(--s-1);width:100%;padding:var(--s-2) var(--s-1);border:none;background:none;font:inherit;text-align:center;cursor:pointer}:root[data-world] .me-face-btn:disabled{cursor:default}:root[data-world] .me-face.on{border-color:var(--w-accent)}:root[data-world] .me-face.locked{border:1.5px dashed color-mix(in srgb,var(--w-deep) 55%,transparent);background:transparent}:root[data-world] .me-face-art{line-height:0}:root[data-world] .me-face.locked .me-face-art{filter:grayscale(1);opacity:.5}:root[data-world] .me-face-name{font-family:var(--font-hanzi);font-size:var(--t-md);line-height:1.2;color:var(--w-ink)}:root[data-world] .hsk-certs{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}:root[data-world] .hsk-certs .hsk-cert-btn{margin:0}:root[data-world] .hsk-cert-lv{font-variant-numeric:tabular-nums;font-weight:800}:root[data-world] .font-card,:root[data-world] .picker-card,:root[data-world] .ach-card.got{background:color-mix(in srgb,#fff 60%,var(--w-paper));border:2px solid var(--w-deep);box-shadow:none;color:var(--w-ink)}:root[data-world] .font-card.selected,:root[data-world] .picker-card.selected{background:color-mix(in srgb,var(--w-accent) 14%,#fff);outline:3px solid var(--w-accent);outline-offset:2px;box-shadow:none}:root[data-world] .picker-card.locked,:root[data-world] .ach-card:not(.got){background:transparent;border:1.5px dashed color-mix(in srgb,var(--w-deep) 55%,transparent);box-shadow:none}:root[data-world] :is(.font-sample,.picker-name,.ach-card-zh){color:var(--w-ink)}:root[data-world] .picker-check{background:var(--w-accent);color:var(--w-on-accent);border-color:var(--w-deep)}:root[data-world] .picker-word{background:var(--w-deep);color:#fff;box-shadow:none}:root[data-world] .sheet.paywall,:root[data-world] .sheet.ach-sheet,:root[data-world] .sheet.stg-confirm{background:var(--w-paper);border-top:3px solid var(--w-deep);outline:1.5px dashed var(--w-deep);outline-offset:-6px;color:var(--w-ink)}:root[data-world] :is(.sheet.paywall,.sheet.ach-sheet) .sheet-close{background:transparent;border:1.5px solid var(--w-deep);color:var(--w-ink)}:root[data-world] .ach-sheet-icon{background:color-mix(in srgb,#fff 60%,var(--w-paper));border:2px solid var(--w-deep)}:root[data-world] :is(.paywall-title,.paywall-line,.ach-sheet-title,.ach-sheet-crit,.stg-confirm-q){color:var(--w-ink)}:root[data-world] .paywall-plan{background:color-mix(in srgb,#fff 60%,var(--w-paper));border-color:var(--w-deep);color:var(--w-ink)}:root[data-world] .paywall-plan.best{background:color-mix(in srgb,var(--w-accent) 18%,#fff)}:root[data-world] .paywall-later{background:transparent;border:1.5px dashed var(--w-deep);color:var(--w-ink)}:root[data-world] .pm-backdrop{background:var(--w-paper)}:root[data-world] .pm-stars{color:var(--w-accent)}:root[data-world] .page.settings .stg-switch{background:color-mix(in srgb,var(--w-deep) 60%,#fff)}:root[data-world] .page.settings .stg-row.on .stg-switch{background:var(--w-accent)}:root[data-world] .page.settings .stg-knob{border:1.5px solid var(--w-deep);box-shadow:none}:root[data-world] .page.settings .sel-btn{border-color:var(--w-deep);background:color-mix(in srgb,#fff 60%,var(--w-paper));color:var(--w-ink)}:root[data-world] .page.settings .sel-list{border:2px solid var(--w-deep);box-shadow:none}:root[data-world] .page.settings .sel-opt.active{background:color-mix(in srgb,var(--w-deep) 10%,#fff)}:root[data-world] :is(.page.settings,.rv-page,.page.book) .game-top :is(.quit-btn,.book-title),:root[data-world] .page.settings :is(.version-line,.set-legal a,.set-legal button){color:var(--w-ink)}:root[data-world] .rv-band{color:var(--w-ink)}:root[data-world] .rv-band:after{background:color-mix(in srgb,var(--w-deep) 35%,transparent)}:root[data-world] .rv-group-name,:root[data-world] .rv-head,:root[data-world] .rv-clear-line{color:var(--w-ink)}:root[data-world] .rv-group-head{border-bottom:1.5px dashed color-mix(in srgb,var(--w-deep) 45%,transparent)}:root[data-world] .rv-group-pending .rv-group-head{background:color-mix(in srgb,var(--w-accent) 16%,#fff)}:root[data-world] .rv-group-mastered .rv-group-head{background:color-mix(in srgb,var(--w-deep) 8%,#fff)}:root[data-world] .rv-card.lead .rv-head{background:var(--w-deep);color:#fff}:root[data-world] .rv-card.lead .rv-count{color:color-mix(in srgb,#fff 80%,var(--w-deep))}:root[data-world] .rv-card.lead .rv-start{background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .rv-icon,:root[data-world] .rv-icon:is(.rv-word,.rv-wrong,.rv-write,.rv-tingxie){background:color-mix(in srgb,var(--w-deep) 10%,#fff);color:var(--w-ink)}:root[data-world] .rv-start{color:var(--w-accent-text)}:root[data-world] .rv-chip{border-color:color-mix(in srgb,var(--w-deep) 35%,transparent);background:color-mix(in srgb,#fff 60%,var(--w-paper));color:var(--w-ink)}:root[data-world] .rv-tile{border-color:color-mix(in srgb,var(--w-deep) 45%,transparent);background:linear-gradient(color-mix(in srgb,var(--w-deep) 18%,transparent),color-mix(in srgb,var(--w-deep) 18%,transparent)) center / 1px calc(100% - 8px) no-repeat,linear-gradient(color-mix(in srgb,var(--w-deep) 18%,transparent),color-mix(in srgb,var(--w-deep) 18%,transparent)) center / calc(100% - 8px) 1px no-repeat,color-mix(in srgb,#fff 60%,var(--w-paper));color:var(--w-ink)}:root[data-world] .rv-see-all{color:var(--w-accent-text)}:root[data-world] .rv-week{background:color-mix(in srgb,var(--w-accent) 14%,#fff);color:var(--w-accent-text)}:root[data-world] .cg-count{padding:0 var(--s-2);border-radius:var(--r-pill);background:var(--w-deep);color:#fff}:root[data-world] .page.book .book-controls{background:var(--w-paper)}:root[data-world] .page.book .book-search-input{border-color:var(--w-deep);background:color-mix(in srgb,#fff 60%,var(--w-paper))}:root[data-world] .page.book .filter-chip{background:color-mix(in srgb,#fff 60%,var(--w-paper));box-shadow:none;outline:1.5px solid color-mix(in srgb,var(--w-deep) 40%,transparent);outline-offset:-1.5px;color:var(--w-ink)}:root[data-world] .page.book .filter-chip.on{background:var(--w-deep);outline-color:var(--w-deep);color:#fff}:root[data-world] .page.book .filter-chip.on .filter-n{background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .page.book .filter-chip.cta{background:var(--w-accent);outline-color:var(--w-deep);color:var(--w-on-accent)}:root[data-world] .page.book .filter-chip.act{background:color-mix(in srgb,var(--w-deep) 10%,#fff);color:var(--w-ink)}:root[data-world] .page.book .filter-chip:is(.cta,.act) .filter-n{background:color-mix(in srgb,var(--w-deep) 14%,transparent);color:inherit}:root[data-world] .page.book .word-row{background:color-mix(in srgb,#fff 60%,var(--w-paper));outline:1.5px solid color-mix(in srgb,var(--w-deep) 35%,transparent);outline-offset:-1.5px;box-shadow:none;color:var(--w-ink)}:root[data-world] .page.book .word-row.r-got{background:color-mix(in srgb,var(--w-accent) 14%,#fff);outline-color:var(--w-deep)}:root[data-world] .page.book .word-row.r-tricky{background:var(--rose-soft)}:root[data-world] .page.book :is(.set-zh,.book-count){color:var(--w-ink)}:root[data-world=teahouse] .page.profile>:is(.profile-account,.profile-premium,.me-sheet,.hsk-progress){background:color-mix(in srgb,#fff 70%,transparent);border-color:color-mix(in srgb,var(--w-deep) 35%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-soft)}:root[data-world=campus] .page.profile>:is(.profile-account,.profile-premium,.me-sheet,.hsk-progress){border-color:var(--w-ink);border-radius:var(--r-sm);filter:drop-shadow(3px 3px 0 var(--w-accent))}:root[data-world=park] .page.profile>:is(.profile-account,.profile-premium,.me-sheet,.hsk-progress){position:relative;border-color:transparent;background:var(--w-paper);box-shadow:var(--shadow-soft)}:root[data-world=park] .page.profile>.stg-group{overflow:visible}:root[data-world=park] .page.profile>:is(.profile-account,.profile-premium,.me-sheet,.hsk-progress):before{content:"";position:absolute;top:-7px;left:50%;width:64px;height:14px;translate:-50% 0;rotate:-3deg;border-radius:var(--r-2xs);background:#dc96388c}:root[data-world=agency] .page.profile>:is(.profile-account,.profile-premium,.me-sheet,.hsk-progress){border-color:var(--w-accent)}:root[data-world=agency] .page.profile>.profile-premium{background:var(--w-deep);color:var(--w-paper)}:root[data-world=agency] .page.profile>.profile-premium :is(.stg-head,.benefit-list .stg-zh,.stg-note){color:var(--w-paper)}:root[data-world=agency] .page.profile>.profile-premium .benefit-crown{color:var(--w-accent)}:root[data-world=agency] .page.profile>.profile-premium .benefit-icon{border-color:var(--w-accent);background:var(--w-paper);color:var(--w-ink)}:root:is([data-world=incubator],[data-world=biopharma]) .page.profile>:is(.profile-account,.profile-premium,.me-sheet,.hsk-progress){border-color:var(--w-ink);border-radius:var(--r-2xs);box-shadow:0 2px 0 var(--ink)}:root[data-world=greenhub] .page.profile>:is(.profile-account,.profile-premium,.me-sheet,.hsk-progress){border-color:var(--w-ink);border-radius:var(--r-md);box-shadow:0 2px 0 var(--ink)}:root[data-world] .page.profile>.profile-premium{border-top-color:var(--w-accent)}:root[data-world] .page.oral-page .wm-bands{position:sticky;top:84px;z-index:20;gap:var(--s-1);margin:0 calc(-1 * var(--s-4)) var(--s-3);padding:var(--s-2) var(--s-4) 0;border-radius:0;background:var(--w-deep)}:root[data-world] .page.oral-page .wm-bands .seg-pill{display:none}:root[data-world] .page.oral-page .wm-band{min-width:0;padding:var(--s-2) var(--s-1);border-top-left-radius:var(--r-md);border-top-right-radius:var(--r-md);border-bottom-left-radius:0;border-bottom-right-radius:0;background:color-mix(in srgb,var(--w-paper) 14%,transparent);color:var(--w-paper);line-height:1.1}:root[data-world] .page.oral-page .wm-band.on{background:var(--w-paper);color:var(--w-ink)}:root[data-world] .page.oral-page .wm-band .seg-latin{width:min-content;font-size:var(--t-2xl);font-weight:700;line-height:1.1;text-align:center}:root[data-world] .page.oral-page .wm-band .seg-latin:first-line{font-size:var(--t-2xs);font-weight:400;letter-spacing:.08em}:root[data-world] .page.oral-page .wm-band-n{color:inherit}:root[data-world] .page.oral-page .rd-row-lock{display:inline-flex}:root[data-world] .page.book .book-worlds{margin:0 calc(-1 * var(--s-4)) var(--s-3)}:root[data-world] .page.book .entry-list{margin:0;padding:0 var(--s-3);list-style:none;background:color-mix(in srgb,#fff 60%,var(--w-paper));border:1.5px solid var(--w-deep);border-radius:var(--r-md)}:root[data-world] .page.book .entry-list>li+li{border-top:1px solid color-mix(in srgb,var(--w-deep) 25%,transparent)}:root[data-world] .page.book .entry-row{width:100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-1) var(--s-3);padding:var(--s-2) 2px;border:0;background:none;color:var(--w-ink);font-family:var(--font-body);text-align:left}:root[data-world] .page.book .entry-row:active{background:color-mix(in srgb,var(--w-deep) 8%,#fff)}:root[data-world] .page.book .entry-row:focus-visible{outline:2px solid var(--w-accent);outline-offset:2px}:root[data-world] .page.book .entry-head{min-width:0;font-family:var(--font-hanzi);font-size:var(--t-xl);color:var(--w-ink)}:root[data-world] .page.book .entry-en{flex:1 1 9em;min-width:0;font-size:var(--t-sm);color:var(--w-ink)}:root[data-world] .page.book .entry-at{margin-left:auto;font-family:var(--font-display);font-size:var(--t-xs);font-weight:700;color:var(--w-accent-text);white-space:nowrap}:root[data-world] .page.book .entry-star{display:inline-flex;align-self:center;color:var(--w-accent)}:root[data-world] .page.book .entry-more{height:1px}.scene-stage{position:relative;height:230px;margin:0 calc(-1 * var(--s-4)) var(--s-3);overflow:hidden;border-top:2px solid var(--w-deep);border-bottom:2px solid var(--w-deep)}.scene-room{position:absolute;inset:0;display:block}.scene-place{position:absolute;top:var(--s-2);left:var(--s-3);padding:2px var(--s-2);border-radius:var(--r-xs);background:var(--w-paper);color:var(--w-ink);font-family:var(--font-hanzi);font-size:var(--t-sm);font-weight:700;box-shadow:var(--shadow-soft)}.scene-cast{position:absolute;left:0;right:0;bottom:22px;display:flex;justify-content:center;align-items:flex-end;gap:var(--s-2)}.scene-actor{display:flex;transition:translate .25s ease,opacity .25s ease,filter .25s ease}.scene-stage.talking .scene-actor{opacity:.55}.scene-stage.talking .scene-actor.speaking{opacity:1;translate:0 -8px;filter:drop-shadow(0 6px 4px rgba(0,0,0,.25))}.sc-talk{list-style:none;margin:var(--s-3) 0;padding:0;display:flex;flex-direction:column;gap:var(--s-4)}.sc-turn{display:flex;align-items:flex-start;gap:var(--s-2)}.sc-turn.right{flex-direction:row-reverse}.sc-talk.typing .sc-turn{animation:sc-rise .3s ease var(--d) both,sc-wait 1ms var(--d) backwards}@keyframes sc-wait{0%,to{display:none}}.sc-talk.typing .rd-type{animation:sc-type 1ms var(--d) backwards}@keyframes sc-rise{0%{opacity:0;translate:0 8px}}@keyframes sc-type{0%,to{visibility:hidden}}.sc-turn-who{display:flex;flex-direction:column;align-items:center;gap:2px;flex:none;width:52px;font-family:var(--font-hanzi);font-size:var(--t-2xs);font-weight:700;color:var(--w-ink);text-align:center}.sc-balloon{position:relative;flex:1;min-width:0;padding:var(--s-2) var(--s-3);border:2px solid var(--w-deep);border-radius:var(--r-lg);border-top-left-radius:var(--r-2xs);background:#fff;box-shadow:var(--shadow)}.sc-turn.right .sc-balloon{border-radius:var(--r-lg);border-top-right-radius:var(--r-2xs);background:var(--w-paper)}.sc-turn.playing .sc-balloon{border-color:var(--w-accent);box-shadow:var(--shadow-lift)}.sc-en{margin:var(--s-1) 0 0}.sc-foot{display:flex;justify-content:center;padding:var(--s-4) 0 var(--s-6)}.sc-finish{min-width:60%;padding:var(--s-3) var(--s-6);border:none;border-radius:var(--r-pill);background:var(--w-deep);box-shadow:var(--shadow-lift);color:#fff;font-family:var(--font-display);font-size:var(--t-lg);font-weight:700}.sc-seal-wrap{position:fixed;inset:0;z-index:60;display:grid;place-items:center;pointer-events:none}.sc-seal{display:flex;flex-direction:column;align-items:center;justify-content:center;width:132px;height:132px;border:5px solid var(--w-accent);border-radius:50%;background:#ffffffdb;color:var(--w-accent-text);font-family:var(--font-display);rotate:-12deg;animation:sc-slam .14s ease-in both}.sc-seal small{font-size:var(--t-xs);font-weight:700;letter-spacing:.06em}@keyframes sc-slam{0%{scale:2.2;opacity:0}}.sc-speck{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--w-accent);animation:sc-fly .5s ease-out .12s both}@keyframes sc-fly{0%{transform:rotate(var(--a)) translate(40px);opacity:1}to{transform:rotate(var(--a)) translate(110px);opacity:0}}.sc-jolt{animation:sc-jolt .18s ease-out .12s 1}@keyframes sc-jolt{30%{translate:3px 2px}60%{translate:-2px -1px}}@media(prefers-reduced-motion:reduce){.scene-actor,.sc-turn{transition:none}.sc-seal,.sc-speck,.sc-jolt{animation:none}.sc-speck{display:none}}.welcome-sheet{text-align:center}.welcome-faces{display:flex;justify-content:center;margin-bottom:var(--s-3)}.welcome-faces>svg+svg{margin-left:-10px}.welcome-title{margin:0 0 var(--s-3);font-size:var(--t-xl)}.welcome-lines{margin:0 0 var(--s-4);padding:0;list-style:none;display:grid;gap:var(--s-2);text-align:left;line-height:1.45}.welcome-actions{display:grid;gap:var(--s-2)}.sw-teahouse,:root[data-world=teahouse]{--w-on-accent: #ffffff;--w-accent-text: #a8392f;--w-deep: #22438a;--w-ink: #14295e;--w-paper: #f2f5f8;--w-accent: #a8392f}.sw-campus,:root[data-world=campus]{--w-on-accent: #2f4858;--w-accent-text: #8a5f12;--w-deep: #2f4858;--w-ink: #2f4858;--w-paper: #f4f1ea;--w-accent: #e5a93c}.sw-park,:root[data-world=park]{--w-on-accent: #ffffff;--w-accent-text: #b03e2a;--w-deep: #32363a;--w-ink: #32363a;--w-paper: #ede9de;--w-accent: #c84832}.sw-agency,:root[data-world=agency]{--w-on-accent: #1e2d4a;--w-accent-text: #6e5620;--w-deep: #1e2d4a;--w-ink: #1e2d4a;--w-paper: #e2dfd8;--w-accent: #c49a3c}.sw-incubator,:root[data-world=incubator]{--w-on-accent: #1e222a;--w-accent-text: #8f4600;--w-deep: #1b365d;--w-ink: #1e222a;--w-paper: #dce1e7;--w-accent: #d97706}.sw-biopharma,:root[data-world=biopharma]{--w-on-accent: #ffffff;--w-accent-text: #0f766e;--w-deep: #0f172a;--w-ink: #0f172a;--w-paper: #e6eef2;--w-accent: #0f766e}.sw-greenhub,:root[data-world=greenhub]{--w-on-accent: #ffffff;--w-accent-text: #1d4ed8;--w-deep: #1e293b;--w-ink: #1e293b;--w-paper: #e2e8f0;--w-accent: #2563eb}.page.sw-page{background:var(--w-paper);padding-bottom:calc(132px + env(safe-area-inset-bottom,0px))}@media(min-width:900px){.page.sw-page{padding-bottom:var(--s-4)}}.sw-head{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) 0 var(--s-3)}.sw-head .quit-btn{color:var(--w-ink)}.sw-head-text h2{margin:0;font-family:var(--font-hanzi);font-size:var(--t-3xl);line-height:1.15;color:var(--w-ink)}.sw-head-text p{margin:0;font-family:var(--font-display);font-size:var(--t-sm);color:var(--w-deep)}.sw-tabs{display:flex;gap:var(--s-1);margin:0 calc(-1 * var(--s-4));padding:var(--s-2) var(--s-4) 0;background:var(--w-deep)}.sw-tab{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;padding:var(--s-2) var(--s-1);border:none;border-top-left-radius:var(--r-md);border-top-right-radius:var(--r-md);background:#ffffff24;color:#fff;font-family:var(--font-display);line-height:1.1}.sw-tab.on{background:var(--w-paper);color:var(--w-ink)}.sw-tab-hsk{font-size:var(--t-2xs);letter-spacing:.08em}.sw-tab-lv{font-size:var(--t-2xl);font-weight:700}.sw-tab-count{font-size:var(--t-2xs);font-variant-numeric:tabular-nums}.sw-crew{display:flex;align-items:center;gap:var(--s-3);width:100%;margin:var(--s-3) 0;padding:var(--s-2) var(--s-3);border:2px solid var(--w-deep);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow);color:var(--w-ink);text-align:left}.sw-crew-faces{display:flex}.sw-crew-faces>svg+svg{margin-left:-14px}.sw-crew-text{display:flex;flex-direction:column;flex:1;min-width:0}.sw-crew-name{font-family:var(--font-display);font-size:var(--t-lg);font-weight:700}.sw-crew-sub{font-size:var(--t-xs);color:var(--ink-soft)}.sw-crew-go{font-size:var(--t-3xl);line-height:1}.sw-map{position:relative;margin:0 calc(-1 * var(--s-4));container-type:inline-size}.sw-art{display:block;pointer-events:none}.sw-stop{position:absolute;transform:translate(-50%,-24px);display:flex;flex-direction:column;align-items:center;border:none;background:none;padding:0}.sw-n{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;font-family:var(--font-display);font-size:var(--t-lg);font-weight:700}.sw-stop.is-current .sw-n{outline:3px solid var(--w-accent);outline-offset:4px;animation:sw-pulse 1.4s ease-out 3}.sw-n{position:relative}.sw-learnt{position:absolute;inset:-7px;border-radius:50%;background:conic-gradient(var(--w-accent) calc(var(--learnt) * 360deg),color-mix(in srgb,var(--w-deep) 18%,transparent) 0);-webkit-mask:radial-gradient(circle,transparent 62%,#000 64%);mask:radial-gradient(circle,transparent 62%,#000 64%);pointer-events:none}.sw-stop.is-started:not(.is-current) .sw-n{outline:3px dashed var(--w-accent);outline-offset:4px}.sw-lock{position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--w-paper);border:2px solid var(--w-deep);color:var(--w-ink)}@keyframes sw-pulse{60%{outline-offset:14px;outline-color:transparent}}.sw-here{position:absolute;z-index:2;translate:28px calc(-100% + 26px);filter:drop-shadow(0 3px 3px rgba(0,0,0,.18));pointer-events:none;transition:left .9s ease-in-out,top .9s ease-in-out}.sw-here.to-left{translate:calc(-100% - 28px) calc(-100% + 26px)}.sw-here.arrived>svg{transform-origin:50% 100%;animation:sw-bob .5s ease-in-out .9s 3,sw-idle 7s ease-in-out 3s infinite}@keyframes sw-idle{0%,80%,to{rotate:0deg}86%{rotate:-2.5deg}93%{rotate:1.5deg}}@keyframes sw-bob{50%{translate:0 -6px}}.sw-art{position:relative}.sw-art:after{content:"";position:absolute;inset:0;pointer-events:none}.sw-morning .sw-art:after{background:#fff4c91f}.sw-evening .sw-art:after{background:#ff9e4021}.sw-night .sw-art:after{background:#121c4e38}.sw-here.asleep>svg{transform-origin:50% 100%;animation:sw-doze 3.2s ease-in-out infinite}@keyframes sw-doze{50%{scale:1 .975}}.sw-z{position:absolute;left:64%;top:-4px;color:var(--w-accent)}.sw-here.to-left .sw-z{left:8%}.sw-z svg{position:absolute;left:0;bottom:0;overflow:visible;opacity:0;animation:sw-z 3s ease-out infinite;animation-delay:calc(var(--k) * 1s)}@keyframes sw-z{25%{opacity:.9}to{opacity:0;translate:14px -28px}}.sw-stop.is-new .sw-n{animation:sw-stamp .3s ease-in both}@keyframes sw-stamp{0%{scale:1.9;opacity:0}}.sw-stop:active .sw-n{outline:3px solid var(--w-accent);outline-offset:2px;scale:.94}@media(prefers-reduced-motion:reduce){.sw-stop.is-current .sw-n,.sw-here.arrived>svg,.sw-here.asleep>svg,.sw-stop.is-new .sw-n{animation:none}.sw-z svg{animation:none;opacity:.85;translate:calc(var(--k) * 6px) calc(var(--k) * -10px)}.sw-here{transition:none}}.sw-title{display:flex;flex-direction:column;align-items:center;width:max-content;margin-top:var(--s-2);padding:var(--s-1) var(--s-3);border:1.5px solid var(--w-deep);border-radius:var(--r-sm);background:#fff;box-shadow:var(--shadow-lift);color:var(--w-ink);font-family:var(--font-hanzi);font-size:var(--t-md);font-weight:700;line-height:1.25;text-align:center;text-wrap:balance}.sw-title-en{font-family:var(--font-display);font-size:var(--t-2xs);font-weight:400;color:var(--ink-soft)}.sw-campus .sw-title,.sw-campus .sw-banner{background:var(--w-paper);border-color:var(--w-ink);box-shadow:none;filter:drop-shadow(3px 3px 0 var(--w-accent))}.sw-campus .sw-stop.is-dusk .sw-title{background:var(--w-ink);border-color:var(--w-paper);color:var(--w-paper)}.sw-campus .sw-stop.is-dusk .sw-title-en{color:var(--w-paper)}.sw-park .sw-title,.sw-park .sw-banner{border-color:transparent;background:var(--w-paper);box-shadow:var(--shadow-soft)}.sw-park .sw-title{position:relative}.sw-park .sw-title:before{content:"";position:absolute;top:-7px;left:50%;width:44px;height:13px;translate:-50% 0;rotate:-3deg;border-radius:var(--r-2xs);background:#dc96388c}.sw-park .sw-stop.is-dusk .sw-title{background:#2a4263;color:var(--w-paper)}.sw-park .sw-stop.is-dusk .sw-title-en{color:var(--w-paper)}.sw-teahouse .sw-title,.sw-teahouse .sw-banner{border-color:color-mix(in srgb,var(--w-deep) 35%,transparent);background:color-mix(in srgb,#fff 70%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-soft)}.sw-teahouse .sw-stop.is-dusk .sw-title{border-color:color-mix(in srgb,var(--w-paper) 40%,transparent);background:color-mix(in srgb,var(--w-deep) 62%,transparent);color:var(--w-paper)}.sw-teahouse .sw-stop.is-dusk .sw-title-en{color:color-mix(in srgb,var(--w-paper) 80%,var(--w-deep))}.sw-agency .sw-title,.sw-agency .sw-banner{border-color:var(--w-accent);background:var(--w-deep);color:var(--w-paper)}.sw-agency .sw-title-en{color:var(--w-paper)}.sw-agency .sw-banner-n{color:var(--w-accent)}.sw-incubator .sw-title,.sw-incubator .sw-banner,.sw-biopharma .sw-title,.sw-biopharma .sw-banner{border-color:var(--w-ink);border-radius:var(--r-2xs);box-shadow:0 2px 0 var(--ink)}.sw-biopharma .sw-stop.is-dusk .sw-title{background:var(--w-deep);border-color:var(--w-paper);color:var(--w-paper)}.sw-biopharma .sw-stop.is-dusk .sw-title-en{color:var(--w-paper)}.sw-greenhub .sw-stop.is-dusk .sw-title{background:var(--w-deep);border-color:var(--w-paper);color:var(--w-paper)}.sw-greenhub .sw-stop.is-dusk .sw-title-en{color:var(--w-paper)}.sw-greenhub .sw-title,.sw-greenhub .sw-banner{border-color:var(--w-ink);border-radius:var(--r-md);box-shadow:0 2px 0 var(--ink)}.sw-plaques{list-style:none;margin:var(--s-4) 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6)}.sw-plaque{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--s-5) var(--s-2) var(--s-4);border:2px solid var(--w-deep);border-radius:var(--r-md);background:#fff;box-shadow:var(--shadow-lift);color:var(--w-ink);text-align:center}.sw-plaque-hang{position:absolute;top:-18px;left:50%;width:26px;height:26px;translate:-50% 0;border:3px solid var(--w-accent);border-bottom:none;border-top-left-radius:var(--r-pill);border-top-right-radius:var(--r-pill)}.sw-plaque-hang:after{content:"";position:absolute;left:50%;bottom:-4px;width:7px;height:7px;translate:-50% 0;border-radius:50%;background:var(--w-ink)}.sw-plaque-face{margin-bottom:var(--s-2)}.sw-plaque-name{font-family:var(--font-hanzi);font-size:var(--t-2xl);font-weight:700}.sw-plaque-en{font-family:var(--font-display);font-size:var(--t-md);font-weight:700}.sw-plaque-role{font-size:var(--t-xs);line-height:1.3;color:var(--ink-soft)}.sw-teahouse .sw-plaque{background:var(--w-paper);outline:1px solid var(--w-deep);outline-offset:-7px}.sw-campus .sw-plaque{background:var(--w-paper);box-shadow:none;filter:drop-shadow(5px 5px 0 var(--w-accent))}.sw-park .sw-plaque{border:none;background:var(--w-paper)}.sw-park .sw-plaque-hang{top:-8px;width:64px;height:18px;border:none;border-radius:var(--r-2xs);background:#dc96388c;rotate:-3deg}.sw-park .sw-plaque-hang:after{content:none}.sw-agency .sw-plaque{border:3px solid var(--w-accent);background:var(--w-deep);color:var(--w-paper)}.sw-agency .sw-plaque-role{color:var(--w-paper)}.sw-incubator .sw-plaque{background:var(--w-paper);border-color:var(--w-ink)}.sw-incubator .sw-plaque-hang{top:-14px;width:22px;height:20px;border:3px solid var(--w-ink);border-radius:var(--r-2xs);background:var(--w-accent)}.sw-incubator .sw-plaque-hang:after{content:none}.sw-biopharma .sw-plaque{background:var(--w-paper);border-color:var(--w-ink)}.sw-biopharma .sw-plaque-hang{top:-14px;width:22px;height:20px;border:3px solid var(--w-ink);border-radius:var(--r-2xs);background:var(--w-accent)}.sw-biopharma .sw-plaque-hang:after{content:none}.sw-greenhub .sw-plaque{background:var(--w-paper);border-color:var(--w-ink);border-radius:var(--r-md)}.sw-greenhub .sw-plaque-hang{top:-12px;width:26px;height:14px;border:3px solid var(--w-ink);border-radius:var(--r-sm);background:#d97706}.sw-greenhub .sw-plaque-hang:after{content:none}.sw-heights h3{margin:var(--s-4) 0 var(--s-2);font-family:var(--font-display);font-size:var(--t-xl);color:var(--w-ink)}.sw-heights-scroll{overflow-x:auto;border:2px solid var(--w-deep);border-radius:var(--r-md);background:#fff}.sw-heights-row,.sw-heights-names{display:flex;gap:var(--s-3);width:max-content;padding:0 var(--s-4)}.sw-heights-row{align-items:flex-end;height:280px;border-bottom:2px solid var(--w-deep);background:repeating-linear-gradient(to top,transparent 0 23px,rgba(0,0,0,.1) 23px 24px) bottom / 100% 240px no-repeat}.sw-height{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:64px}.sw-height-name{display:flex;flex-direction:column;align-items:center;width:64px;padding:var(--s-1) 0 var(--s-2);font-size:var(--t-2xs);color:var(--ink-soft);font-variant-numeric:tabular-nums}.sw-height-name [lang]{font-family:var(--font-hanzi);font-size:var(--t-sm);font-weight:700;color:var(--w-ink)}.sw-banner{position:absolute;left:50%;width:84%;translate:-50% -50%;rotate:-1.2deg;display:flex;flex-direction:column;align-items:center;padding:var(--s-2) var(--s-3);border:2px solid var(--w-deep);border-radius:var(--r-xs);background:var(--w-paper);box-shadow:var(--shadow-lift);color:var(--w-ink);text-align:center;pointer-events:none}.sw-banner-n{font-family:var(--font-display);font-size:var(--t-xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--w-accent-text)}.sw-banner [lang]{font-family:var(--font-hanzi);font-size:var(--t-lg);font-weight:700}.sw-banner-en{font-family:var(--font-display);font-size:var(--t-sm);font-weight:700;line-height:1.25}.scene-steam path{animation:scene-steam 2.4s ease-in-out infinite}.scene-steam path+path{animation-delay:1.2s}@keyframes scene-steam{0%{translate:0 6px;opacity:0}40%{opacity:.8}to{translate:0 -8px;opacity:0}}@media(prefers-reduced-motion:reduce){.scene-steam path{animation:none;opacity:.6}}.sw-slice{display:block;width:100%}.scene-actor{position:relative}.scene-tone{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;width:26px;height:26px;border:2px solid var(--w-deep);border-radius:50%;background:#fff;color:var(--w-accent-text);font-family:var(--font-display);font-size:var(--t-lg);font-weight:700;animation:scene-pop .25s ease-out both}@keyframes scene-pop{0%{scale:.3;opacity:0}}.sc-card-veil{position:fixed;inset:0;z-index:55;display:grid;place-items:center;padding:var(--s-4);background:#14182073}.sc-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--s-1);width:min(320px,100%);padding:var(--s-6) var(--s-4) var(--s-4);border:3px solid var(--w-deep);border-radius:var(--r-lg);background:var(--w-paper);box-shadow:var(--shadow-lift);color:var(--w-ink);rotate:-1.5deg;animation:scene-pop .2s ease-out both}.sc-card-close{position:absolute;top:var(--s-2);right:var(--s-2);border:none;background:none;color:var(--w-ink);padding:var(--s-1)}.sc-card-py{font-family:var(--font-display);font-size:var(--t-lg);color:var(--w-deep)}.sc-card-zh{font-family:var(--font-hanzi);font-size:56px;font-weight:700;line-height:1.1}.sc-card-en{font-family:var(--font-display);font-size:var(--t-base);text-align:center}.sc-card-say{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-3);padding:var(--s-2) var(--s-4);border:none;border-radius:var(--r-pill);background:var(--w-deep);color:#fff;font-family:var(--font-display);font-weight:700}@media(prefers-reduced-motion:reduce){.scene-tone,.sc-card{animation:none}}.sw-progress{margin-left:auto;display:flex}@media(max-width:359px){.sw-progress{display:none}}@media(min-width:560px){.sw-map{max-width:480px;margin:var(--s-3) auto 0;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lift)}}:root[data-world] :is(.ex-game .stem-card,.ex-game .option,.ex-game .match-card,.ex-game .feedback,.results .teacher-block,.levelup-box){background:#fff;border:2px solid var(--w-deep);border-radius:var(--r-sm);box-shadow:var(--shadow-soft);color:var(--w-ink)}:root[data-world=campus] :is(.ex-game .stem-card,.ex-game .option,.ex-game .match-card,.ex-game .feedback,.results .teacher-block,.levelup-box){background:var(--w-paper);border-color:var(--w-ink);box-shadow:none;filter:drop-shadow(3px 3px 0 var(--w-accent))}:root:is([data-world=incubator],[data-world=biopharma]) :is(.ex-game .stem-card,.ex-game .option,.ex-game .match-card,.ex-game .feedback,.results .teacher-block,.levelup-box){border-color:var(--w-ink);border-radius:var(--r-2xs);box-shadow:0 2px 0 var(--ink)}:root[data-world=greenhub] :is(.ex-game .stem-card,.ex-game .option,.ex-game .match-card,.ex-game .feedback,.results .teacher-block,.levelup-box){border-color:var(--w-ink);border-radius:var(--r-md);box-shadow:0 2px 0 var(--ink)}:root[data-world] .ex-game .stem-card{border-top:6px solid var(--w-deep)}:root[data-world] .ex-game :is(.game-mode,.score-pill,.game-ask,.speak-btn,.en-btn,.feedback-stay){color:var(--w-ink)}:root[data-world] .ex-game :is(.quit-btn,.card-door){display:grid;place-items:center;border:2px solid var(--w-deep);border-radius:50%;background:#fff;box-shadow:none;color:var(--w-ink);font-size:var(--t-xl)}:root[data-world] .ex-game .round-bar{background:#fff;border:1.5px solid var(--w-deep);box-shadow:none}:root[data-world] .ex-game .round-fill{background:var(--w-accent)}:root[data-world] .ex-game .option-letter{border:1.5px solid var(--w-deep);background:var(--w-paper);color:var(--w-ink)}:root[data-world] .ex-game .option.right{border-color:var(--w-deep);background:var(--w-deep);box-shadow:none;filter:none;color:#fff}:root[data-world] .ex-game .option.right .option-letter{border-color:var(--w-accent);background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .ex-game :is(.option.picked-wrong,.match-card.wrong){border:2px dashed var(--red-deep);background:#fff;box-shadow:none;filter:none;color:var(--red-deep)}:root[data-world] .ex-game .option.picked-wrong .option-text{text-decoration:line-through}:root[data-world] .ex-game :is(.option.faded,.match-card.matched){border-style:dashed;background:transparent;box-shadow:none;filter:none;color:var(--w-ink)}:root[data-world] .ex-game .match-card.selected{outline:3px solid var(--w-accent);outline-offset:2px;background:var(--w-paper);box-shadow:none}:root[data-world] .ex-game .feedback-title{color:var(--w-ink)}:root[data-world] .praise-pop{border:2px solid var(--w-deep);box-shadow:none}:root[data-world] .praise-points{color:var(--w-accent-text)}:root[data-world] :is(.ex-game,.results) .big-btn{border:2px solid var(--w-deep);border-radius:var(--r-pill);background:var(--w-deep);box-shadow:none;color:#fff}:root[data-world] :is(.ex-game,.results) .big-btn.ghost{background:#fff;color:var(--w-ink)}:root[data-world] .results-buttons .big-btn:first-child:not(.ghost,.review-btn){border-color:var(--w-accent);background:var(--w-accent);color:var(--w-on-accent)}:root[data-world] .results .big-btn.review-btn{border:2px dashed var(--red-deep);background:#fff;color:var(--red-deep)}:root[data-world] .ex-game .write-grid{border-color:var(--w-deep);box-shadow:var(--shadow-soft)}:root[data-world] .ex-game .dict-slot{border-color:var(--w-deep);background:#fff}:root[data-world] .ex-game .dict-slot.now{border-color:var(--w-accent)}:root[data-world] .ex-game .write-ctl{border:2px solid var(--w-deep);background:#fff;box-shadow:none;color:var(--w-ink)}:root[data-world] .wc{border:2px solid var(--w-deep);border-radius:var(--r-lg);background:#fff}:root[data-world] .wc.wc-done{border-color:var(--gold)}:root[data-world] .wc-top{border-bottom:2px solid var(--w-deep);background:var(--w-paper)}:root[data-world] :is(.wc-level,.wc-meaning){color:var(--w-ink)}:root[data-world] .wc-listen{color:var(--w-accent-text)}:root[data-world] .wc-seals{border-top-color:var(--w-deep)}:root[data-world] .lesson-words>summary{color:var(--w-ink)}:root[data-world] .wcar-chip{border-color:var(--w-deep);background:#fff;color:var(--w-ink)}:root[data-world] .wcar-chip.on{border-color:var(--w-deep);background:var(--w-deep);color:#fff}:root[data-world=agency] .wcar-chip.on{background:var(--w-accent);color:var(--w-deep)}:root[data-world=agency] .wcar-chip.on:not(.sealed){border-color:var(--w-accent)}:root[data-world] .wcar-chip.sealed{border-color:#e2918e}@media(hover:hover)and (pointer:fine){.wcar-arrow.prev{left:max(0px,calc(50% - 203px))}.wcar-arrow.next{right:max(0px,calc(50% - 203px))}:root[data-world] .wcar-arrow{border:2px solid var(--w-deep);background:#fff;box-shadow:none;color:var(--w-ink)}:root[data-world] .wcar-arrow:not(:disabled):hover{background:var(--w-accent);color:var(--w-on-accent)}}:root[data-world] .card-over .wc-level{display:none}:root[data-world] .card-verdict .is{background:var(--w-deep);color:#fff}:root[data-world] .card-over-btn{border:2px solid var(--w-deep);background:#fff;box-shadow:none;color:var(--w-ink)}:root[data-world] .card-over-btn.go{background:var(--w-deep);color:#fff}.results-seal{display:none}:root[data-world] .results-face{display:none}:root[data-world] .results-seal{display:grid;place-items:center;width:96px;height:96px;margin:var(--s-3) auto 0;border:5px solid var(--w-accent);border-radius:50%;background:#fff;color:var(--w-accent-text);font-family:var(--font-hanzi);font-size:44px;line-height:1;rotate:-12deg;animation:sc-slam .14s ease-in .1s both}@media(prefers-reduced-motion:reduce){:root[data-world] .results-seal{animation:none}}:root[data-world] :is(.results-stage,.results-msg-zh,.results-score){color:var(--w-ink)}.results-stars{margin-top:var(--s-2)}:root[data-world] .xp-gain{color:var(--w-accent-text)}:root[data-world] .results-chip{border-color:var(--w-deep);background:#fff;color:var(--w-ink)}:root[data-world] .results-chip.done{border-color:var(--w-accent)}:root[data-world] .results-chip.done .results-chip-n{color:var(--w-accent-text)}:root[data-world] .teacher-block .owl{display:none}:root:has(.page.results) .ach-wrap{top:calc(var(--s-3) + env(safe-area-inset-top,0px));bottom:auto}:root[data-world] .ach-toast{border:2px solid var(--w-accent);background:var(--w-deep)}:root[data-world] .levelup-backdrop{background:color-mix(in srgb,var(--w-paper) 94%,transparent)}:root[data-world] .levelup-box{margin:0 var(--s-4);padding:var(--s-6) var(--s-5)}:root[data-world] .levelup-title{color:var(--w-ink)}:root[data-world] .levelup-level{color:var(--w-accent-text)}:root[data-world] .ex-game .blank{border-bottom-color:var(--w-deep);background:var(--w-paper)}:root[data-world] .results-stars path[fill="#D9E3F2"]{fill:color-mix(in srgb,var(--w-deep) 16%,transparent)}:root[data-world] .ex-game .option.faded{border-color:color-mix(in srgb,var(--w-deep) 40%,transparent)}:root[data-world] .story-lesson{padding-bottom:calc(132px + env(safe-area-inset-bottom,0px))}@media(min-width:900px){:root[data-world] .story-lesson{padding-bottom:var(--s-4)}}:root[data-world] .story-lesson .quit-btn{display:grid;place-items:center;border:2px solid var(--w-deep);border-radius:50%;background:#fff;color:var(--w-ink);font-size:var(--t-xl)}:root[data-world] .story-lesson :is(.lesson-title,.book-count,.stage-zh){color:var(--w-ink)}:root[data-world] .story-lesson .stage-node{border:3px solid var(--w-deep);border-radius:50%;background:#fff;box-shadow:var(--shadow-soft);filter:none}:root[data-world] .story-lesson .stage-emoji{display:grid;place-items:center}:root[data-world] .story-lesson .stage-emoji svg{width:50px;height:50px}:root[data-world] .story-lesson .stage-node.done{border-color:var(--w-accent);background:color-mix(in srgb,var(--w-accent) 18%,#fff)}:root[data-world] .story-lesson .stage-node.partial{border-color:var(--w-accent);background:conic-gradient(color-mix(in srgb,var(--w-accent) 30%,#fff) var(--part, 50%),#fff 0)}:root[data-world] .story-lesson .stage-part-count{border-color:var(--w-deep);background:#fff;color:var(--w-ink)}:root[data-world] .story-lesson .stage-node.mastery{border-style:dashed}:root[data-world] .story-lesson .stage-node.mastery .stage-emoji{filter:none}:root[data-world] .story-lesson .stage-node.next{outline:3px solid var(--w-accent);outline-offset:4px;animation:sw-pulse 1.4s ease-out 3}@media(prefers-reduced-motion:reduce){:root[data-world] .story-lesson .stage-node.next{animation:none}}:root[data-world] .story-lesson .stage-num{border:2px solid var(--w-deep);background:var(--w-accent);box-shadow:none;color:var(--w-on-accent)}:root[data-world] .story-lesson .stage-num-mastery{background:var(--w-deep)}:root[data-world] .story-lesson .stage-parts{border-color:var(--w-deep);background:#fff}:root[data-world] .story-lesson .stage-parts i{width:10px;height:10px;border-color:var(--w-deep)}:root[data-world] .story-lesson .stage-parts i.on{border-color:var(--w-deep);background:var(--w-accent)}:root[data-world] .story-lesson .mastery-tag{border:1.5px solid var(--w-deep);background:#fff;color:var(--w-ink)}:root[data-world] .story-lesson .connector path{stroke:var(--w-deep);stroke-width:3;stroke-dasharray:8 9;stroke-linecap:butt;vector-effect:non-scaling-stroke}:root[data-world] .story-lesson .path-testout-btn{border:2px solid var(--w-deep);background:#fff;color:var(--w-ink)}:root[data-world] .ex-game .listen-play{background:var(--w-deep);color:#fff}:root[data-world] .ex-game .listen-play:disabled{background:var(--w-paper);color:var(--w-ink)}:root{--w-lesson-ground: none;--w-lesson-floor: var(--paper);--w-lesson-ink: var(--ink);--w-lesson-road: var(--ink-soft)}:root[data-world=teahouse]{--w-lesson-floor: color-mix(in srgb, var(--w-deep) 8%, var(--w-paper));--w-lesson-ground: radial-gradient(circle at 50% 100%, var(--w-lesson-floor) 0 5px, color-mix(in srgb, var(--w-deep) 16%, var(--w-paper)) 5px 6.5px, var(--w-lesson-floor) 6.5px 11px, color-mix(in srgb, var(--w-deep) 16%, var(--w-paper)) 11px 12.5px, var(--w-lesson-floor) 12.5px 17px, color-mix(in srgb, var(--w-deep) 16%, var(--w-paper)) 17px 18.5px, var(--w-lesson-floor) 18.5px 22.5px, color-mix(in srgb, var(--w-deep) 16%, var(--w-paper)) 22.5px 24px, transparent 24px) 24px 12px / 48px 24px, radial-gradient(circle at 50% 100%, var(--w-lesson-floor) 0 5px, color-mix(in srgb, var(--w-deep) 16%, var(--w-paper)) 5px 6.5px, var(--w-lesson-floor) 6.5px 11px, color-mix(in srgb, var(--w-deep) 16%, var(--w-paper)) 11px 12.5px, var(--w-lesson-floor) 12.5px 17px, color-mix(in srgb, var(--w-deep) 16%, var(--w-paper)) 17px 18.5px, var(--w-lesson-floor) 18.5px 22.5px, color-mix(in srgb, var(--w-deep) 16%, var(--w-paper)) 22.5px 24px, transparent 24px) 0 0 / 48px 24px;--w-lesson-ink: var(--w-ink);--w-lesson-road: var(--w-deep)}:root[data-world=campus]{--w-lesson-floor: var(--w-paper);--w-lesson-ground: radial-gradient(circle, color-mix(in srgb, var(--w-deep) 14%, transparent) 0 1px, transparent 1.5px) 0 0 / 7px 7px, radial-gradient(closest-side, transparent 96%, color-mix(in srgb, var(--w-deep) 30%, transparent) 96% 99%, transparent 99.5%) -76px 146px / 230px 170px no-repeat, radial-gradient(closest-side, color-mix(in srgb, #88a89a 40%, transparent) 99%, transparent 100%) -80px 140px / 230px 170px no-repeat, radial-gradient(closest-side, transparent 96%, color-mix(in srgb, var(--w-deep) 30%, transparent) 96% 99%, transparent 99.5%) right -86px top 566px / 250px 180px no-repeat, radial-gradient(closest-side, color-mix(in srgb, #88a89a 40%, transparent) 99%, transparent 100%) right -90px top 560px / 250px 180px no-repeat;--w-lesson-ink: var(--w-ink);--w-lesson-road: var(--w-accent-text)}:root[data-world=park]{--w-lesson-floor: #d9cbb0;--w-lesson-ground: linear-gradient(transparent 364px, rgba(220, 150, 56, .55) 364px 378px, transparent 378px) left 26px top 0 / 46px 620px repeat-y, linear-gradient(transparent 374px, var(--w-paper) 374px 574px, transparent 574px) left 8px top 0 / 150px 620px repeat-y, linear-gradient(transparent 377px, color-mix(in srgb, var(--w-ink) 12%, transparent) 377px 577px, transparent 577px) left 11px top 0 / 150px 620px repeat-y, linear-gradient(transparent 60px, rgba(220, 150, 56, .55) 60px 74px, transparent 74px) right 44px top 0 / 46px 620px repeat-y, linear-gradient(transparent 70px, color-mix(in srgb, var(--w-ink) 10%, var(--w-paper)) 70px 250px, transparent 250px) right 10px top 0 / 136px 620px repeat-y, radial-gradient(circle, color-mix(in srgb, var(--w-accent) 40%, transparent) 0 5px, transparent 5.5px) right 64px top 300px / 12px 620px repeat-y, radial-gradient(circle, rgba(220, 150, 56, .55) 0 4px, transparent 4.5px) left 190px top 120px / 10px 620px repeat-y;--w-lesson-ink: var(--w-ink);--w-lesson-road: var(--w-ink)}:root[data-world=agency]{--w-lesson-floor: var(--w-deep);--w-lesson-ground: radial-gradient(circle at 50% 100%, transparent 3.5px, var(--w-accent) 3.5px 4.8px, transparent 4.8px) 1px 0 / 10px 14px repeat-y, linear-gradient(90deg, color-mix(in srgb, var(--w-paper) 16%, var(--w-deep)) 0 12px, var(--w-accent) 12px 13.5px, transparent 13.5px), linear-gradient(90deg, color-mix(in srgb, var(--w-accent) 32%, transparent) 1px, transparent 1px) 20px 0 / 72px 96px, linear-gradient(color-mix(in srgb, var(--w-accent) 32%, transparent) 1px, transparent 1px) 20px 0 / 72px 96px, conic-gradient(color-mix(in srgb, var(--w-paper) 7%, transparent) 25%, transparent 0 50%, color-mix(in srgb, var(--w-paper) 7%, transparent) 0 75%, transparent 0) 20px 0 / 144px 192px;--w-lesson-ink: var(--w-paper);--w-lesson-road: var(--w-accent)}:root[data-world=incubator]{--w-lesson-floor: #d9e8e8;--w-lesson-ground: linear-gradient(transparent 0 6px, var(--w-accent) 6px 8.5px, transparent 8.5px 17px, color-mix(in srgb, #fff 80%, transparent) 17px 19.5px, transparent 19.5px) right 3px top 0 / 5px 30px repeat-y, linear-gradient(90deg, var(--w-deep) 0 2px, var(--w-ink) 2px) right 0 top 0 / 12px 100% no-repeat, linear-gradient(90deg, color-mix(in srgb, #fff 75%, transparent) 1.4px, transparent 1.4px) 0 0 / 48px 80px, linear-gradient(color-mix(in srgb, #fff 75%, transparent) 1.4px, transparent 1.4px) 0 0 / 48px 80px;--w-lesson-ink: var(--w-ink);--w-lesson-road: var(--w-deep)}:root[data-world=biopharma]{--w-lesson-floor: var(--w-paper);--w-lesson-ground: linear-gradient(#f8fafc 2px, transparent 2px) 0 0 / 10px 34px repeat-y, linear-gradient(90deg, #cfe6ee 0 10px, #f8fafc 10px 12px, transparent 12px), linear-gradient(30deg, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 12%, transparent 12.5% 87%, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 87.5%) 0 0 / 40px 70px, linear-gradient(150deg, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 12%, transparent 12.5% 87%, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 87.5%) 0 0 / 40px 70px, linear-gradient(30deg, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 12%, transparent 12.5% 87%, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 87.5%) 20px 35px / 40px 70px, linear-gradient(150deg, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 12%, transparent 12.5% 87%, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 87.5%) 20px 35px / 40px 70px, linear-gradient(60deg, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 25%, transparent 25.5% 75%, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 75%) 0 0 / 40px 70px, linear-gradient(60deg, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 25%, transparent 25.5% 75%, color-mix(in srgb, var(--w-deep) 5%, var(--w-paper)) 75%) 20px 35px / 40px 70px;--w-lesson-ink: var(--w-ink);--w-lesson-road: var(--w-accent)}:root[data-world=greenhub]{--w-lesson-floor: var(--w-paper);--w-lesson-ground: linear-gradient(var(--w-ink) 0 2px, transparent 2px) right 5px top 0 / 1.5px 8px repeat-y, linear-gradient(90deg, var(--w-ink) 0 2px, #65a30d 2px) right 0 top 0 / 12px 100% no-repeat, linear-gradient(90deg, color-mix(in srgb, var(--w-deep) 10%, transparent) 1px, transparent 1px) 0 0 / 60px 60px, linear-gradient(color-mix(in srgb, var(--w-deep) 10%, transparent) 1px, transparent 1px) 0 0 / 60px 60px, linear-gradient(var(--w-paper) 0 300px, transparent 300px 356px, var(--w-paper) 356px) left 10px top 0 / 96px 640px repeat-y, repeating-linear-gradient(45deg, color-mix(in srgb, #d97706 30%, transparent) 0 5px, transparent 5px 10px) left 10px top 0 / 96px 640px repeat-y;--w-lesson-ink: var(--w-ink);--w-lesson-road: var(--w-ink)}:root[data-world] body:has(.story-lesson,.ex-game,.page.results):not(:has(.dict-slots)){background:var(--w-lesson-ground),var(--w-lesson-floor)}:root[data-world] body:has(.ex-game .dict-slots){background:var(--w-lesson-ground),var(--w-lesson-floor)}:root[data-world] .ex-game .write-stage{flex:none;margin-top:var(--s-3);padding:var(--s-4) var(--s-3);border:2px solid var(--w-deep);border-radius:var(--r-lg);background:var(--w-paper)}:root[data-world] :is(.story-lesson,.ex-game)>.game-top{position:relative;padding:var(--s-2) var(--s-3);border:2px solid var(--w-deep);border-radius:var(--r-lg);background:var(--w-paper);color:var(--w-ink)}:root[data-world] .story-lesson .stage-title{position:relative;width:fit-content;padding:var(--s-1) var(--s-3);border:1.5px solid var(--w-deep);border-radius:var(--r-sm);background:#fff;text-wrap:balance}:root[data-world] .story-lesson .path-right .stage-title{margin-left:auto}:root[data-world] .results .results-card{position:relative;border:2px solid var(--w-deep);border-radius:var(--r-lg);background:var(--w-paper);color:var(--w-ink)}:root[data-world=teahouse] :is(.story-lesson>.game-top,.ex-game>.game-top,.results .results-card){outline:1px solid var(--w-deep);outline-offset:-6px}:root[data-world=campus] :is(.story-lesson>.game-top,.ex-game>.game-top,.results .results-card,.story-lesson .stage-title){border-color:var(--w-ink);background:var(--w-paper);filter:drop-shadow(3px 3px 0 var(--w-accent))}:root[data-world=park] :is(.story-lesson>.game-top,.ex-game>.game-top,.results .results-card,.story-lesson .stage-title){border-color:transparent;background:var(--w-paper);box-shadow:var(--shadow-soft)}:root[data-world=park] :is(.story-lesson>.game-top,.ex-game>.game-top,.results .results-card):before{content:"";position:absolute;top:-8px;left:50%;width:64px;height:16px;translate:-50% 0;rotate:-3deg;border-radius:var(--r-2xs);background:#dc96388c;pointer-events:none}:root[data-world=agency] :is(.story-lesson>.game-top,.ex-game>.game-top,.results .results-card,.story-lesson .stage-title){border-color:var(--w-accent);background:var(--w-deep);color:var(--w-paper)}:root[data-world=agency] :is(.story-lesson>.game-top,.ex-game>.game-top){border-width:3px}:root[data-world=agency] :is(.story-lesson>.game-top,.ex-game>.game-top,.story-lesson .stage-title) :is(.lesson-title,.lesson-title-en,.book-count,.game-mode,.score-pill,.stage-zh,.rail),:root[data-world=agency] .results .results-card :is(.results-stage,.results-msg-zh,.results-msg-en,.results-score){color:var(--w-paper)}:root:is([data-world=incubator],[data-world=biopharma]) :is(.story-lesson>.game-top,.ex-game>.game-top,.results .results-card,.story-lesson .stage-title){border-color:var(--w-ink);border-radius:var(--r-2xs);box-shadow:0 2px 0 var(--ink)}:root[data-world=greenhub] :is(.story-lesson>.game-top,.ex-game>.game-top,.results .results-card,.story-lesson .stage-title){border-color:var(--w-ink);border-radius:var(--r-md);box-shadow:0 2px 0 var(--ink)}:root[data-world] :is(.story-lesson .lesson-words>summary,.story-lesson>.loading-note,.ex-game .game-ask,.ex-game .game-ask .rail,.ex-game .guess-note,.ex-game .guess-btn){color:var(--w-lesson-ink)}:root[data-world=agency] .story-lesson .lesson-words>summary:before{border-color:var(--w-accent)}:root[data-world] .story-lesson .connector path{stroke:var(--w-lesson-road)}:root[data-world] .ex-game .retry-hint-text{display:inline-block;padding:var(--s-1) var(--s-3);border-radius:var(--r-pill);background:var(--w-paper)}:root[data-world=agency] :is(.ex-game,.results) .big-btn{border-color:var(--w-accent)}:root[data-world] .ex-game :is(.option.faded,.match-card.matched){background:var(--w-paper)}:root[data-world=agency] .results-stars path[fill="#D9E3F2"]{fill:color-mix(in srgb,var(--w-paper) 36%,transparent)}:root[data-world=agency] .results .results-card .xp-gain{color:var(--w-accent)}.tally-stroke{fill:none;stroke:var(--ink);stroke-width:4.5;stroke-linecap:round}:root[data-world] .tally-stroke{stroke:var(--w-ink, var(--ink))}.tally-fresh,:root[data-world] .tally-fresh{stroke:var(--red-deep);stroke-width:5.5;animation:tally-write .5s ease-out .25s both}.tally-ahead{fill:none;stroke:var(--grid);stroke-width:3;stroke-linecap:round;stroke-dasharray:1 4}@keyframes tally-write{0%{stroke-dasharray:40;stroke-dashoffset:40}to{stroke-dasharray:40;stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.tally-fresh{animation:none}}.streak-mark{display:inline-flex;flex-direction:column;align-items:center;gap:1px;margin-left:auto;margin-right:var(--s-1);flex:none}.streak-mark-n{font-family:var(--font-body);font-size:var(--t-xs);color:var(--ink-soft);white-space:nowrap;line-height:1.1}.streak-card,.reminder-offer{display:flex;flex-direction:column;align-items:stretch;gap:var(--s-2)}.streak-card-tally{display:flex;justify-content:center;padding:var(--s-2) 0 var(--s-1)}.streak-card-title{margin:0;font-family:var(--font-display);font-size:var(--t-xl);line-height:1.2;text-wrap:balance}.streak-card-line{margin:0;color:var(--ink-soft);line-height:1.45}.streak-card-go{margin-top:var(--s-2)}.reminder-time{display:flex;align-items:center;justify-content:center;gap:var(--s-4);margin:var(--s-2) 0}.reminder-clock{font-family:var(--font-display);font-size:var(--t-2xl);font-variant-numeric:tabular-nums;min-width:6ch;text-align:center}.reminder-step{width:44px;height:44px;border:2px solid var(--ink);border-radius:50%;background:var(--paper);color:var(--ink);font-size:var(--t-lg);line-height:1;cursor:pointer}.longest-run-label{margin:0 0 var(--s-2);color:var(--ink-soft);font-size:var(--t-sm)}.longest-run-tallies{display:flex;flex-wrap:wrap;gap:var(--s-2)}.brk-backdrop{align-items:center;background:#28303f8c}.brk{--brk-paper: #fffdf8;--brk-blue: #1f4fa8;width:min(300px,calc(100% - 32px));display:flex;flex-direction:column;gap:var(--s-6);font-family:var(--font-body)}.brk-stamp{padding:14px;background:radial-gradient(circle at 7px 7px,transparent 6px,var(--brk-paper) 6.5px) -7px -7px / 14px 14px}.brk-face{background:var(--brk-paper);border:2px solid var(--brk-blue);padding:14px;display:flex;flex-direction:column;gap:var(--s-3);color:var(--brk-blue)}.brk-art{height:150px;background:var(--sky-deep) url(/postcards/teahouse.jpg) center 35% / cover no-repeat}:root[data-world=campus] .brk-art{background-image:url(/postcards/campus.jpg)}:root[data-world=park] .brk-art{background-image:url(/postcards/park.jpg)}:root[data-world=agency] .brk-art{background-image:url(/postcards/agency.jpg)}:root[data-world=incubator] .brk-art{background-image:url(/postcards/incubator.jpg)}:root[data-world=biopharma] .brk-art{background-image:url(/postcards/biopharma.jpg)}:root[data-world=greenhub] .brk-art{background-image:url(/postcards/greenhub.jpg)}.brk-line{margin:0;font-size:var(--t-xl);line-height:1.4;font-weight:500;text-align:center;color:#1f3c7a}.brk-count{margin:0;text-align:center;font-weight:600;font-size:var(--t-base);letter-spacing:.08em}.brk-actions{display:flex;flex-direction:column;gap:var(--s-3)}.brk-on,.brk-full{font:600 var(--t-lg) var(--font-body);cursor:pointer}.brk-on{height:52px;border-radius:var(--r-pill);border:2px solid var(--gold);background:var(--gold);color:var(--ink)}.brk-full{height:48px;border-radius:var(--r-pill);border:2px solid var(--brk-paper);background:transparent;color:var(--brk-paper)}.brk-on:focus-visible,.brk-full:focus-visible{outline:3px solid var(--brk-paper);outline-offset:3px}
