.night-entry,.night-new-hint{z-index:35;overflow-wrap:anywhere;max-width:min(360px,100vw - 32px);position:fixed;top:76px;right:16px}.night-entry{background:var(--surface);box-shadow:var(--shadow-float);border-radius:16px;align-items:center;gap:8px;padding:4px 8px;font-size:14px;display:flex}.night-new-hint{max-height:calc(100dvh - 108px);padding:18px;overflow:auto}.night-new-list ul{gap:10px;padding:0;list-style:none;display:grid}.night-new-list a{white-space:normal;min-height:44px;padding:12px;text-decoration:none;display:flex}.dialog:has(.night-new-list){max-height:calc(100dvh - 32px);overflow:auto}:is(body:has([role=dialog]) .night-entry,body:has([role=dialog]) .night-new-hint,body:has(.new-learning-reminder) .night-entry,body:has(.new-learning-reminder) .night-new-hint){visibility:hidden}@media (prefers-reduced-motion:reduce){.night-new-hint{animation:none}}.night-entry,.night-new-hint{right:max(var(--s4),env(safe-area-inset-right))}:is(html[data-layout=side]:has(.dock:not(.today-compact)) .night-entry,html[data-layout=side]:has(.dock:not(.today-compact)) .night-new-hint){right:calc(var(--panel-used) + var(--s4) + env(safe-area-inset-right));max-width:min(360px,calc(100vw - var(--panel-used) - 3 * var(--s4) - env(safe-area-inset-right)))}html[data-layout=side]:has(.dock:not(.today-compact)) .night-entry{top:calc(var(--s2) + env(safe-area-inset-top))}.placement-preview{background:var(--surface-2);border-radius:var(--r-small);width:min(100%,44dvh);margin-inline:auto;position:relative;overflow:hidden}.dialog:has(.placement-preview){max-height:calc(100dvh - 2 * var(--s4) - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-y:auto}.placement-room{object-fit:contain;width:100%;height:100%;display:block}.placement-item{pointer-events:none;height:auto;position:absolute;transform:translate(-50%,-100%)}.placement-item.selected{filter:drop-shadow(0 0 3px var(--accent))}.placement-item.landing{animation:.65s ease-out both decor-land}.placement-options{gap:var(--s2);margin-block:var(--s3);border:0;padding:0;display:grid}.placement-options label{align-items:center;gap:var(--s2);min-height:var(--tap);padding:var(--s2);border:1px solid var(--line);border-radius:var(--r-small);cursor:pointer;display:flex}.placement-options input{accent-color:var(--accent);flex-shrink:0}.placement-options label:has(:disabled){color:var(--t3);cursor:default}.decor-manager-row{gap:var(--s3);flex-wrap:wrap;align-items:center;display:flex}.decor-manager-row>img{object-fit:contain;width:48px;height:48px}.decor-manager-row>span{flex:1;min-width:100px}@keyframes decor-land{0%{opacity:.1;transform:translate(-50%,calc(-100% - 60px))}to{opacity:1;transform:translate(-50%,-100%)}}@media (prefers-reduced-motion:reduce){.placement-item.landing{animation:none}}.follow-practice{text-align:left;min-width:0}.follow-practice .dialog-title{text-align:left}.follow-modes{gap:var(--s2);flex-wrap:wrap;display:flex}.follow-modes>button{white-space:normal;flex:130px}.follow-status{padding:var(--s3) var(--s4);background:var(--accent-soft);border-radius:var(--r-small)}.follow-status p{margin:0}.follow-clock{align-items:center;gap:var(--s2);font-variant-numeric:tabular-nums;display:flex}.follow-dot{width:var(--s2);height:var(--s2);background:var(--err);border-radius:50%}.follow-playback{gap:var(--s2);flex-wrap:wrap;display:flex}.follow-playback:empty{display:none}.follow-playback>button{white-space:normal;flex:150px}.follow-practice .say-sentence,.follow-practice .say-zh{overflow-wrap:anywhere}.dlg-entry{align-items:center;gap:var(--s3);width:100%;min-height:var(--s7);padding:var(--s3);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--t1);font:inherit;text-align:left;cursor:pointer;border:0;display:flex}.dlg-entry:hover{background:var(--line)}.dlg-entry:focus-visible{box-shadow:var(--focus);outline:none}.dlg-entry>.icon-chev{color:var(--accent)}.dlg-entry-text{gap:var(--s1);flex:1;min-width:0;display:grid}.dlg-entry-top{align-items:center;gap:var(--s1) var(--s2);flex-wrap:wrap;display:flex}.dlg-entry-sub{color:var(--t2);font-size:var(--fs-meta)}.len-tag{padding:0 var(--s2);border-radius:var(--r-pill);background:var(--surface);color:var(--t2);font-size:var(--fs-meta);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;display:inline-flex}.dialogue-who .len-tag{background:var(--surface-2)}.dialogue-view{gap:var(--s3);flex-direction:column;display:flex}.explore-compact .dialogue-head{z-index:1;min-height:var(--tap);padding:var(--s1) 0 0;background:var(--surface);align-items:center;margin:0;display:flex;position:sticky;top:0}.dialogue-head .btn-text{padding-inline:var(--s1)}.dialogue-intro{gap:var(--s2);display:grid}.dialogue-title{font-size:var(--fs-title);margin:0;font-weight:600;line-height:1.3}.dialogue-title:focus{outline:none}.dialogue-who{align-items:center;gap:var(--s2);color:var(--t2);font-size:var(--fs-meta);flex-wrap:wrap;margin:0;display:flex}.dialogue-lines{gap:var(--s3);margin:0;padding:0;list-style:none;display:grid}.dialogue-line{gap:var(--s1);max-width:86%;padding:var(--s3);border-radius:var(--r-card);background:var(--surface-2);display:grid}.dialogue-line.is-you{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);justify-self:end}.dialogue-line.is-current{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.dialogue-line .hl{box-shadow:3px 0 var(--accent-soft), -3px 0 var(--accent-soft);padding-inline:0}.dialogue-line.is-current .hl{background:var(--surface);box-shadow:3px 0 var(--surface), -3px 0 var(--surface)}.dialogue-line-top{align-items:center;gap:var(--s2);color:var(--t2);font-size:var(--fs-meta);flex-wrap:wrap;display:flex}.dialogue-line-top .who{color:var(--t1);font-weight:600}.learned-tag{padding:0 var(--s2);border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);font-weight:600}.dialogue-line .say-line{width:100%;min-height:var(--tap);padding:calc((var(--tap) - 1.4em) / 2) 0;border-radius:var(--r-small);color:var(--t1);font:inherit;font-size:var(--fs-title);text-align:left;cursor:pointer;background:0 0;border:0;margin:0;line-height:1.4;display:block}.dialogue-line .say-line:hover{color:var(--accent)}.dialogue-line .say-line:focus-visible{box-shadow:var(--focus);outline:none}.dialogue-line-translation{color:var(--t2);margin:0}.dialogue-line-failed{color:var(--warn);font-size:var(--fs-meta);margin:0}.dialogue-controls{bottom:calc(-1 * (var(--s4) + env(safe-area-inset-bottom)));z-index:1;gap:var(--s2);margin:0 0 calc(-1 * (var(--s4) + env(safe-area-inset-bottom)));padding:var(--s3) 0 calc(var(--s4) + env(safe-area-inset-bottom));background:var(--surface);box-shadow:0 -1px 0 var(--line);display:grid;position:sticky}.dialogue-status{color:var(--t2);font-size:var(--fs-meta);margin:0}.dialogue-done{padding:var(--s3);border-radius:var(--r-ctl);background:var(--accent-soft);color:var(--accent);margin:0}.dialog:has(.decor-word-card){max-height:calc(100dvh - 2 * var(--s4) - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-y:auto}.decor-word-picture{object-fit:contain;align-self:center;width:80px;height:80px}.decor-word-card .word{margin:0}.new-learning-reminder{z-index:45;top:calc(var(--topbar-h) + var(--s3));right:var(--s4);width:min(360px,100% - 32px);max-height:calc(100dvh - var(--topbar-h) - 100px);box-shadow:var(--shadow-float);position:fixed;overflow:auto}body:has([role=dialog]) .new-learning-reminder{visibility:hidden}.room-clock{pointer-events:none;position:absolute}.room-clock svg{display:block;overflow:visible}.room-clock-check{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.situation-layer{pointer-events:none;position:absolute;inset:0}.situation-artwork{pointer-events:none;transform-origin:50%;background-repeat:no-repeat;position:absolute}.situation-image{pointer-events:none;width:100%;height:100%;display:block}.situation-sheet-check{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.scene-world>img.backdrop-surround-detail{z-index:-1;bottom:auto;right:auto}.scene-world>img.backdrop-surround-detail.is-loading{opacity:0}.scene-world>img.backdrop-surround-detail{-webkit-mask-composite:source-in;-webkit-mask-image:linear-gradient(90deg,#0000,#000 1% 99%,#0000),linear-gradient(#0000,#000 1% 99%,#0000);mask-image:linear-gradient(90deg,#0000,#000 1% 99%,#0000),linear-gradient(#0000,#000 1% 99%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.backdrop-surround.uses-artwork-region[data-water-source*=stockholm-c2-surround-day-v2],.scene-world>img.backdrop-surround-detail[src*=stockholm-c2-surround-day-v2]{filter:saturate(.8)brightness()}.backdrop-surround.uses-artwork-region[data-water-source*=stockholm-c2-surround-night-v2],.scene-world>img.backdrop-surround-detail[src*=stockholm-c2-surround-night-v2]{filter:saturate(.85)brightness(.94)}.surround-water-texture{pointer-events:none;display:block;position:absolute;inset:0}.share-head{justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.share-head h2{font-size:var(--fs-page);margin:0}.share-preview{width:min(100%,360px);height:auto;margin:var(--s4) auto;border-radius:var(--r-ctl);display:block}.share-save{margin-block:var(--s4);justify-content:center;text-decoration:none;display:flex}:is(.dialog:has(.share-preview),.dialog:has(.share-head)){max-height:calc(100dvh - var(--s6));overscroll-behavior:contain;overflow-y:auto}:root{--bg:#f3eee4;--surface:#fffcf6;--surface-2:#ece5d7;--map-sky:#6b8d9b;--map-sea:#6b8d9b;--map-sky-night:#1b3553;--map-sea-night:#1b3553;--room-night-bg:#1f262c;--t1:#2b3a31;--t2:#556158;--t3:#646b62;--line:#e2dacb;--scroll-thumb:#899685;--scroll-thumb-hover:#647a68;--accent:#3c6b52;--accent-press:#2f5641;--accent-soft:#dce8de;--on-accent:#fffcf6;--warn:#8a5a12;--warn-soft:#f5e6c8;--err:#a3452b;--err-soft:#f6e1d9;--err-press:#87381f;--spark:#fffbef;--spark-edge:#f0b648;--spark-glow:#fff6dcf2;--glow:#ffce66b8;--scrim:#2b3a3166;--focus:0 0 0 3px var(--accent-soft), 0 0 0 5px var(--accent);--shadow-float:0 6px 20px #2b3a3124, 0 1px 3px #2b3a311a;--font:system-ui, -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--fs-meta:14px;--fs-body:16px;--fs-title:18px;--fs-page:22px;--fs-big:28px;--lh:1.55;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--r-sheet:24px;--r-card:18px;--r-ctl:12px;--r-small:8px;--r-pill:999px;--tap:44px;--sheet-max:560px;--panel-w:400px;--panel-share:40vw;--dock-max:62%;--page-max:720px;--page-wide:1104px;--rail-w:320px;--dialog-max:440px;--dur:.14s;--dur-move:.3s;--topbar-h:68px;--cone:30px;--gap-hair:2px;--gap-icon:6px;--fx-drip-cycle:2.6s;--fx-water-glint:#fffffff2;--fx-water-warm:#ffecce99;--fx-water-body:#f0ece414;--fx-water-edge:#60564c8c;--fx-water-ring:#fff8ec80}@media (prefers-reduced-motion:reduce){:root{--dur:0s;--dur-move:0s}}*{box-sizing:border-box}@media (forced-colors:none){*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}}html,body{background:var(--bg);color:var(--t1);font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-wrap:pretty;margin:0}button,input{font:inherit;color:inherit}button{touch-action:manipulation}p{margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[hidden]{display:none!important}.app-page{background:var(--bg);width:100%;min-height:100dvh;position:relative;overflow:hidden}.app-page.is-full{height:100dvh}main:focus,[tabindex="-1"]:focus{outline:none}.icon{width:22px;height:22px;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor;flex:none;display:inline-block}.icon-s{width:18px;height:18px}.icon-chev{width:10px}.card{background:var(--surface);border-radius:var(--r-card);padding:var(--s4)}.card-title{font-size:var(--fs-title);margin:0;font-weight:600;line-height:1.3}.meta{color:var(--t3);font-size:var(--fs-meta)}.note-readable{color:var(--t2);font-size:var(--fs-body);margin:0}.num{font-variant-numeric:tabular-nums}.center{align-self:center}.divider{height:1px;margin:var(--s1) 0;background:var(--line)}.stack{gap:var(--s3);flex-direction:column;display:flex}.title-row{align-items:center;gap:var(--s2);display:flex}.ui-language-picker{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.ui-language-picker label{font-size:14px}.ui-language-picker select{max-width:100%;min-height:44px;font:inherit;color:inherit;background:var(--bg);border:1px solid;border-radius:10px;padding:6px 10px}.intro-nav{flex-wrap:wrap;gap:8px}:lang(en) .intro-headline{text-wrap:balance}:lang(en) .stat{overflow-wrap:anywhere;min-width:0}.btn,.btn-soft,.btn-text{justify-content:center;align-items:center;gap:var(--s2);min-height:var(--tap);border-radius:var(--r-pill);cursor:pointer;border:0;font-weight:600;text-decoration:none;display:inline-flex}.btn{padding:0 var(--s5);background:var(--accent);color:var(--on-accent);transition:background var(--dur) ease, transform var(--dur) ease}.btn:hover{background:var(--accent-press)}.btn:active{transform:scale(.98)}.btn:disabled{background:var(--surface-2);color:var(--t3);cursor:default}.btn-soft{padding:0 var(--s4);background:var(--surface-2);color:var(--t1);transition:background var(--dur) ease}.btn-soft:hover{background:var(--line)}.btn-soft:disabled,.btn-soft[aria-disabled=true]{cursor:default}.btn-soft[aria-disabled=true]:hover{background:var(--surface-2)}.btn-text{gap:var(--s1);padding:0 var(--s3);color:var(--accent);background:0 0}.btn-text:hover{background:var(--surface-2)}.btn-text:disabled{color:var(--t3);cursor:default}.btn-text.is-danger{color:var(--err)}.btn-danger{background:var(--err)}.btn-danger:hover{background:var(--err-press)}.btn-block{width:100%}.btn-row{gap:var(--s2);display:flex}.btn-row>*{flex:1}.btn-split{justify-content:space-between;align-items:center;display:flex}.btn-split>:first-child{padding-left:0}.btn-split>:last-child{padding-right:0}.float-btn{align-items:center;gap:var(--gap-icon);min-height:var(--tap);padding:0 var(--s4) 0 var(--s3);border-radius:var(--r-pill);background:var(--surface);color:var(--t1);box-shadow:var(--shadow-float);font-size:var(--fs-meta);cursor:pointer;transition:transform var(--dur) ease;border:0;font-weight:600;text-decoration:none;display:inline-flex}.float-btn:active{transform:scale(.97)}.icon-btn-plain{width:var(--tap);height:var(--tap);border-radius:var(--r-pill);color:var(--t2);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.icon-btn-plain:hover{background:var(--surface-2)}.icon-btn-plain.is-soft{background:var(--surface-2);color:var(--t1)}.icon-btn-plain.is-speaking{gap:var(--s1);width:auto;padding-inline:var(--s3)}.is-speaking,.is-speaking:hover,.icon-btn-plain.is-soft.is-speaking{background:var(--accent-soft);color:var(--accent-press);white-space:nowrap}.speech-feedback{font-size:var(--fs-meta);font-weight:600}.icon-btn-plain:disabled{color:var(--t3);cursor:default}.btn:focus-visible,.btn-soft:focus-visible,.btn-text:focus-visible,.float-btn:focus-visible,.icon-btn-plain:focus-visible{box-shadow:var(--focus);outline:none}.dock{z-index:5;max-height:min(calc(100% - var(--topbar-h) - env(safe-area-inset-top)), var(--dock-max));overscroll-behavior:contain;scroll-padding-block:var(--s2);padding:0 var(--s4) calc(var(--s4) + env(safe-area-inset-bottom));padding-left:max(var(--s4), env(safe-area-inset-left));padding-right:max(var(--s4), env(safe-area-inset-right));position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.sheet{background:var(--surface);border-radius:var(--r-sheet) var(--r-sheet) 0 0;box-shadow:var(--shadow-float)}.grabber{width:40px;height:4px;margin:var(--s2) auto var(--s3);border-radius:var(--r-pill);background:var(--line)}.dock.no-grab{padding-top:var(--s4)}.dock-head{justify-content:space-between;align-items:center;gap:var(--s2);display:flex}.dock-body{gap:var(--s3);flex-direction:column;display:flex}.dock-body p{text-wrap:pretty}.explore-compact.no-grab{padding-top:0}.explore-compact .room-progress{padding-top:var(--s3)}.meta.room-progress{color:var(--t2)}.explore-compact{overflow-anchor:none}.explore-compact .dock-head{z-index:1;padding:var(--s2) 0;background:var(--surface);margin:0;position:sticky;top:0}.explore-compact .title-row{gap:var(--s1);flex-wrap:wrap;flex:1;min-width:0}.explore-compact .word{overflow-wrap:break-word}.explore-compact .dock-head>button{flex-shrink:0}.explore-compact .dock-head>.btn-text{padding-inline:var(--s1);min-width:var(--tap)}.explore-compact .dock-head{gap:var(--s1)}.explore-compact .title-row{grid-template-columns:minmax(0, 1fr) var(--tap);display:grid}@media (width<=359px),(width<=599px) and (height<=720px){.explore-compact .word{font-size:var(--fs-page)}}@media (width<=359px){.explore-compact .dock-head{padding-block:var(--s1);flex-wrap:wrap;row-gap:0}.explore-compact .dock-head>.title-row{flex-basis:100%}.explore-compact .dock-head>.title-row+*{margin-left:auto}}.compact-learning-actions{gap:var(--s2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.compact-learning-actions>button{min-width:0;padding-inline:var(--s2);white-space:normal;overflow-wrap:anywhere}.compact-learning-actions>button.is-speaking{white-space:nowrap}.explore-compact .explore-explanation[open]{display:block}.explore-compact .explore-explanation[open]>:not(summary){margin-bottom:var(--s2)}.collapsed-sentence{color:var(--t2);overflow-wrap:anywhere;margin:0}.scrim{z-index:10;background:var(--scrim);position:fixed;inset:0}.dock.is-modal{z-index:11;max-height:calc(100dvh - var(--topbar-h));position:fixed}.dialog{left:calc((100% + env(safe-area-inset-left) - env(safe-area-inset-right)) / 2);top:calc((100dvh + env(safe-area-inset-top) - env(safe-area-inset-bottom)) / 2);z-index:11;width:min(calc(100% - env(safe-area-inset-left) - env(safe-area-inset-right) - 2 * var(--s4)), var(--dialog-max));max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 2 * var(--s3));overscroll-behavior:contain;scroll-padding-block:var(--s4);gap:var(--s3);padding:var(--s5);border-radius:var(--r-sheet);background:var(--surface);box-shadow:var(--shadow-float);flex-direction:column;display:flex;position:fixed;overflow-y:auto;transform:translate(-50%,-50%)}.dialog>*{flex-shrink:0}@media (height<=480px){.dialog .reward-pic{height:88px}.dialog .reward-pic>img{height:72px}}.dock.is-modal:focus,.dialog:focus{outline:none}.dialog-title{font-size:var(--fs-page);margin:0;font-weight:600;line-height:1.3}[data-layout=bottom-center] .dock{width:min(100%, var(--sheet-max));left:50%;right:auto;transform:translate(-50%)}[data-layout=side]{--panel-used:calc(min(var(--panel-w), var(--panel-share)) + 2 * var(--s4))}[data-layout=side] .dock{top:calc(var(--topbar-h) + env(safe-area-inset-top));right:max(var(--s4), env(safe-area-inset-right));bottom:calc(var(--s4) + env(safe-area-inset-bottom));width:min(var(--panel-w), var(--panel-share));max-height:none;padding:var(--s4);border-radius:var(--r-sheet);left:auto}[data-layout=side] .dock .grabber{display:none}[data-layout=side] .dock.explore-compact{padding-top:0}.topbar{z-index:6;justify-content:space-between;align-items:center;gap:var(--s2);padding:calc(var(--s3) + env(safe-area-inset-top)) var(--s4) 0;padding-left:max(var(--s4), env(safe-area-inset-left));padding-right:max(var(--s4), env(safe-area-inset-right));pointer-events:none;display:flex;position:absolute;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.topbar-group{gap:var(--s2);display:flex}.topbar .pill,.topbar .float-btn{white-space:nowrap;flex-shrink:0}@media (width<=359px){.topbar{gap:var(--s1);padding-left:var(--s3);padding-right:var(--s3)}.topbar-group{gap:var(--s1)}.topbar .float-btn{gap:var(--s1);padding:0 var(--s3) 0 var(--s2)}.topbar .pill{padding:0 var(--s2)}}.over-dock{z-index:5;position:absolute}.toast-region{top:calc(var(--topbar-h) + env(safe-area-inset-top));z-index:20;width:calc(100% - 2 * var(--s4));pointer-events:none;justify-content:center;display:flex;position:fixed;left:50%;transform:translate(-50%)}[data-layout=side]:has(.app-page.is-full.has-dock) .toast-region{left:calc((100% - var(--panel-used)) / 2);width:calc(100% - var(--panel-used) - 2 * var(--s4))}[data-layout=side] .app-page.has-dock .stage-note{right:var(--panel-used)}.toast{align-items:center;gap:var(--s2);max-width:100%;padding:var(--s3) var(--s4);border-radius:var(--r-ctl);background:var(--t1);color:var(--surface);font-size:var(--fs-meta);box-shadow:var(--shadow-float);display:flex}.pill{align-items:center;gap:var(--s1);min-height:32px;padding:0 var(--s3);border-radius:var(--r-pill);background:var(--surface);color:var(--t1);font-size:var(--fs-meta);font-weight:600;display:inline-flex}.pill-float{box-shadow:var(--shadow-float)}.badge-warn,.badge-ok,.badge-err{align-items:center;gap:var(--s1);padding:var(--gap-hair) var(--s2);border-radius:var(--r-pill);background:var(--warn-soft);color:var(--warn);font-size:var(--fs-meta);white-space:nowrap;font-weight:600;display:inline-flex}.badge-ok{background:var(--accent-soft);color:var(--accent-press)}.badge-err{background:var(--err-soft);color:var(--err)}.progress{border-radius:var(--r-pill);background:var(--surface-2);height:6px;overflow:hidden}.progress>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.empty{align-items:center;gap:var(--s3);padding:var(--s6) var(--s4);text-align:center;flex-direction:column;display:flex}.empty h2{font-size:var(--fs-title);text-wrap:balance;margin:0;font-weight:600}.empty p{color:var(--t2);text-wrap:balance}.empty-icon{border-radius:var(--r-pill);background:var(--surface-2);width:64px;height:64px;color:var(--t2);justify-content:center;align-items:center;display:inline-flex}.empty-icon .icon{width:28px;height:28px}.stage-note{left:var(--s4);right:var(--s4);max-width:var(--sheet-max);top:calc(var(--topbar-h) + var(--s1) + env(safe-area-inset-top));z-index:4;gap:var(--s3);max-height:calc(100% - var(--topbar-h) - var(--s1) - var(--s4) - env(safe-area-inset-top));flex-direction:column;margin-inline:auto;display:flex;position:absolute;overflow-y:auto}.stage-note h2{font-size:var(--fs-title);margin:0;font-weight:600}.ok-line{align-items:center;gap:var(--s1);color:var(--accent);font-size:var(--fs-meta);display:inline-flex}.warn-line{color:var(--err);font-size:var(--fs-meta)}.collection-progress,.learning-level{align-items:center;gap:var(--s2);font-size:var(--fs-meta);color:var(--t2);flex-wrap:wrap;display:flex}.learning-level{margin-top:var(--s2)}.learning-notice{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.noun-gender{padding:0 var(--s2);border-radius:var(--r-small);font-size:inherit;line-height:inherit;vertical-align:baseline;display:inline-block}.noun-gender.is-en{color:var(--accent-press);background:var(--accent-soft)}.noun-gender.is-ett{color:var(--warn);background:var(--warn-soft)}.word-definition{margin-top:var(--s2)}.word-forms{color:var(--t2);font-size:var(--fs-meta)}.word-forms summary{cursor:pointer;min-height:var(--tap);padding:var(--s2) 0}.word-forms summary:focus-visible{box-shadow:var(--focus);border-radius:var(--r-small);outline:none}.word-forms dl{gap:var(--s2);margin:0 0 var(--s2);display:grid}.word-forms dt{color:var(--t1);font-size:var(--fs-body);overflow-wrap:anywhere;font-weight:600}.word-forms dd{color:var(--t2);font-size:var(--fs-body);overflow-wrap:anywhere;margin:0}.sentence-words{gap:var(--s4);margin-top:var(--s2);display:grid}.words-group{gap:var(--s2);display:grid}.words-group h3{color:var(--t1);font-size:var(--fs-body);margin:0;font-weight:600}.forms-table{border-collapse:collapse;width:100%;font-size:var(--fs-meta)}.forms-table th,.forms-table td{padding:var(--s2) 0;text-align:left;vertical-align:top;border-top:1px solid var(--line)}.forms-table tr:first-child th,.forms-table tr:first-child td{border-top:0}.forms-table th{width:38%;padding-right:var(--s3);color:var(--t2);overflow-wrap:anywhere;font-weight:400}.forms-sv{color:var(--t1);font-size:var(--fs-body);overflow-wrap:anywhere;font-weight:600}.forms-table tr.is-used .forms-sv{padding:0 var(--s1);border-radius:var(--r-small);background:var(--accent-soft)}.used-tag{margin-left:var(--s2);color:var(--accent);font-weight:600}.forms-why{color:var(--t2);font-size:var(--fs-body);overflow-wrap:anywhere;display:block}.words-peek,.explore-explanation .words-peek[lang],.collection-words .words-peek[lang]{color:var(--t2);font-size:var(--fs-meta);font-weight:400}.say-sv{font-size:var(--fs-title);margin:0;font-weight:600;line-height:1.3}.say-zh{color:var(--t2);margin:0}.say-note{color:var(--t3);font-size:var(--fs-meta);margin:0}.ph{display:inline-block}.hl{border-radius:var(--r-small);background:var(--accent-soft);padding:0 4px}.word{font-size:var(--fs-big);margin:0;font-weight:600;line-height:1.2}.label{color:var(--t3);font-size:var(--fs-meta);margin:0;font-weight:600}.say-row{align-items:center;gap:var(--s3);padding:var(--s3) 0;grid-template-columns:minmax(0,1fr) auto;display:grid}.say-row+.say-row{border-top:1px solid var(--line)}.say-row>div:first-child{overflow-wrap:anywhere;min-width:0}.say-row .say-sv{font-size:var(--fs-body)}.say-row .say-zh{font-size:var(--fs-meta)}.say-side{align-items:center;gap:var(--s1);display:flex}.say-row.has-below{align-items:start}.say-below{grid-column:1/-1;min-width:0}.word-forms.collection-words>summary{padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);color:var(--t1);font-weight:600}@media (width<=599px){.say-row{gap:var(--s2);grid-template-columns:minmax(0,1fr)}.say-side{justify-content:flex-end;gap:var(--s2)}}.chips{gap:var(--s2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--s1);min-height:var(--tap);padding:0 var(--s4);border-radius:var(--r-pill);background:var(--surface-2);color:var(--t1);cursor:pointer;border:0;display:inline-flex}.chip[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-press);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:600}.chip:focus-visible{box-shadow:var(--focus);outline:none}@media (width<=359px),(width<=599px) and (height<=720px){.explore-compact .situation-choices .chips{scroll-snap-type:x proximity;scroll-padding-inline:var(--s2);margin:calc(var(--s2) * -1);padding:var(--s2);flex-wrap:nowrap;overflow-x:auto}.explore-compact .situation-choices .chip{scroll-snap-align:start;white-space:nowrap;flex:none}}.situation-head{justify-content:space-between;align-items:center;gap:var(--s1) var(--s2);flex-wrap:wrap;display:flex}.auto-read-switch{align-items:center;gap:var(--s2);min-height:var(--tap);padding:0 var(--s3);border-radius:var(--r-pill);color:var(--t2);font:inherit;font-size:var(--fs-meta);cursor:pointer;background:0 0;border:0;display:inline-flex}.auto-read-switch:hover{background:var(--surface-2)}.auto-read-switch:focus-visible{outline-offset:2px;box-shadow:var(--focus);outline:2px solid #0000}.auto-read-track{border-radius:var(--r-pill);background:var(--surface-2);width:36px;height:22px;box-shadow:inset 0 0 0 1px var(--scroll-thumb);transition:background var(--dur) ease;flex:none;position:relative}.auto-read-track:after{content:"";background:var(--surface);width:16px;height:16px;box-shadow:inset 0 0 0 1px var(--scroll-thumb);transition:transform var(--dur) ease;border-radius:50%;position:absolute;top:3px;left:3px}.auto-read-switch[aria-checked=true] .auto-read-track{background:var(--accent);box-shadow:none}.auto-read-switch[aria-checked=true] .auto-read-track:after{transform:translate(14px)}.auto-read-state{min-width:1.5em;color:var(--t1);font-weight:600}@media (forced-colors:active){.auto-read-track{border:1px solid canvastext}.auto-read-track:after{background:canvastext}.auto-read-switch[aria-checked=true] .auto-read-track{background:highlight}.auto-read-switch[aria-checked=true] .auto-read-track:after{background:canvas}}.list-btn{align-items:center;gap:var(--s3);width:100%;min-height:56px;padding:var(--s2) 0;color:var(--t1);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1fr auto;display:grid}.list-btn+.list-btn{border-top:1px solid var(--line)}.list-btn .icon{color:var(--t3)}.list-btn:focus-visible{box-shadow:var(--focus);border-radius:var(--r-ctl);outline:none}.field{width:100%;min-height:48px;padding:0 var(--s4);border:1.5px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);color:var(--t1);font:inherit}.field::placeholder{color:var(--t3)}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field.is-error{border-color:var(--err)}.field-code{font-size:var(--fs-title);font-variant-numeric:tabular-nums;letter-spacing:.4em;text-align:center}.field-code::placeholder{letter-spacing:normal}.field-error{color:var(--err);font-size:var(--fs-meta);margin:0}.or{align-items:center;gap:var(--s3);color:var(--t3);font-size:var(--fs-meta);display:flex}.human-check{min-width:0}.human-check:empty{display:none}.login>.human-check:not(.is-shown),.login>.check-note-area:empty{margin-bottom:calc(-1 * var(--s3))}.check-note{justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.object-fact{font-size:var(--fs-body);overflow-wrap:anywhere}.object-fact>p{color:var(--t1);line-height:1.6}.object-fact a{min-height:var(--tap);align-items:center;display:inline-flex}.achievement-row{justify-content:space-between;align-items:start;gap:var(--s3);padding-block:var(--s2);display:flex}.achievement-row>div:first-child{overflow-wrap:anywhere;min-width:0}.achievement-row>div:last-child{text-align:end;flex-shrink:0}.learning-level-help>summary{min-height:var(--tap);padding-block:var(--s2);cursor:pointer;color:var(--accent)}.learning-level-help>p{margin-top:var(--s2)}.say-sv .hl{box-shadow:3px 0 var(--accent-soft), -3px 0 var(--accent-soft);padding-inline:0}.field-label{font-size:var(--fs-meta);color:var(--t1);font-weight:600}.room-tools{margin-bottom:var(--s2);align-items:center;gap:8px;display:flex}.room-tools select{min-width:0;min-height:44px;font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--t1);border-radius:12px;flex:1;padding:8px;font-size:16px}.room-tools button{flex:0 0 44px;padding:8px;font-size:20px}.room-top-actions{align-items:center;gap:8px;min-width:0;display:flex}.room-top-actions select{max-width:112px;min-height:44px;font:inherit;background:var(--surface);color:var(--t1);border:0;border-radius:22px;padding:8px;font-size:14px}.room-top-actions .float-btn{padding-inline:12px}.practice-feedback{padding:var(--s3);background:var(--accent-soft);color:var(--t1);border-radius:12px}.page:has(.rail-layout.is-wide){max-width:var(--page-wide)}.app-page:has(.rail-layout.is-wide){overflow:clip}.rail-layout{gap:var(--s4);flex-direction:column;min-width:0;display:flex}.rail-layout>*{min-width:0}.rail-layout.is-wide{grid-template-columns:minmax(0, 1fr) var(--rail-w);gap:var(--s6);align-items:start;display:grid}.rail-layout.is-wide>:not(.page-rail){grid-area:1/1}.page-rail{gap:var(--s4);align-content:start;display:grid}.rail-layout.is-wide>.page-rail{top:var(--s4);grid-area:1/2;position:sticky}.page-rail .btn-text{white-space:normal;text-align:left}.rail-main [id][tabindex="-1"]{scroll-margin-top:var(--s4)}.rail-list{margin:0;padding:0;list-style:none;display:grid}.rail-list :is(button,a){justify-content:space-between;align-items:center;gap:var(--s3);width:100%;min-height:var(--tap);padding:var(--s2) var(--s3);border-radius:var(--r-ctl);color:var(--t1);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;text-decoration:none;display:flex}.rail-list :is(button,a):hover{background:var(--surface-2)}.rail-list :is(button,a):focus-visible{outline-offset:-2px;box-shadow:inset 0 0 0 2px var(--accent);outline:2px solid #0000}.rail-list [aria-current=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.rail-list .num{color:var(--t2);font-size:var(--fs-meta);flex:none;font-weight:400}.sheet-head{justify-content:space-between;align-items:baseline;gap:var(--s2);margin-bottom:var(--s1);display:flex}.grabber-btn{width:calc(var(--tap) * 2);height:var(--tap);border-radius:var(--r-ctl);cursor:pointer;background:0 0;border:0;padding:0;position:absolute;top:0;left:50%;transform:translate(-50%)}.grabber-btn:focus-visible{box-shadow:var(--focus);outline:none}.tasks{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tasks>li+li{border-top:1px solid var(--line)}.task{align-items:center;gap:var(--s3);min-height:64px;padding:var(--s2) 0;border-radius:var(--r-ctl);color:var(--t1);text-align:left;background:0 0;border:0;grid-template-columns:40px 1fr auto;text-decoration:none;display:grid}a.task{cursor:pointer}.task:focus-visible{box-shadow:var(--focus);outline:none}.task-icon{border-radius:var(--r-pill);background:var(--surface-2);width:40px;height:40px;color:var(--t2);justify-content:center;align-items:center;display:inline-flex}.task.is-done .task-icon{background:var(--accent-soft);color:var(--accent)}.task-text{flex-direction:column;min-width:0;display:flex}.task-sub{color:var(--t3);font-size:var(--fs-meta);overflow-wrap:anywhere}.task-go{align-items:center;gap:var(--gap-hair);color:var(--accent);font-size:var(--fs-meta);white-space:nowrap;font-weight:600;display:inline-flex}.task.is-done .task-go{color:var(--t3)}.reward-top{align-items:center;gap:var(--s3);padding:var(--s3);border-radius:var(--r-ctl);background:var(--surface-2);grid-template-columns:56px minmax(0,1fr);display:grid}.reward-top>img,.reward-icon{object-fit:contain;width:56px;height:56px}.reward-icon{color:var(--accent);justify-content:center;align-items:center;display:flex}.reward-body{gap:var(--s1);min-width:0;display:grid}button.reward-top{width:100%;min-height:var(--tap);color:var(--t1);font:inherit;text-align:left;cursor:pointer;border:0;grid-template-columns:56px minmax(0,1fr) auto}button.reward-top:focus-visible{box-shadow:var(--focus);outline:2px solid #0000}.island-compact .dock.today-compact{top:auto;left:50%;right:auto;bottom:var(--s4);width:min(480px, calc(100% - 2 * var(--s4)));max-height:none;padding:var(--s2) var(--s2) calc(var(--s2) + env(safe-area-inset-bottom));border-radius:var(--r-card);overflow:visible;transform:translate(-50%)}.island-compact .island-map-edge{right:max(var(--s5), env(safe-area-inset-right));bottom:max(var(--s5), env(safe-area-inset-bottom))}.island-learning-actions{gap:var(--s2);grid-template-columns:1.1fr 1fr 1fr;display:grid}.island-learning-actions>a,.island-learning-actions>button{justify-content:center;align-items:center;gap:var(--s1);min-width:0;min-height:48px;padding:var(--s2) var(--s1);font-size:var(--fs-body);text-align:center;overflow-wrap:anywhere;text-decoration:none;display:flex}.goal-btn .num{color:var(--t2);font-size:var(--fs-meta);font-weight:400}.goal-btn[aria-expanded=true]{background:var(--accent-soft);color:var(--accent)}.compact-goals{bottom:calc(100% + var(--s2));max-height:min(62dvh, calc(100dvh - var(--topbar-h) - 100px));overscroll-behavior:contain;padding:var(--s4);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-float);scroll-padding-block:var(--s4);gap:var(--s3);align-content:start;display:grid;position:absolute;left:0;right:0;overflow-y:auto}.compact-goals-head{justify-content:space-between;align-items:center;gap:var(--s2);display:flex}.compact-goals-head .sheet-head{flex-wrap:wrap;flex:1;min-width:0}.compact-goals-close{min-width:var(--tap);min-height:var(--tap);padding:var(--s2);border-radius:var(--r-ctl);color:var(--t1);cursor:pointer;background:0 0;border:0;flex:none}.compact-goals-close:focus-visible{box-shadow:var(--focus);outline:none}.compact-goals>.btn-soft{justify-self:start}.checkin-line{align-items:baseline;gap:var(--s1) var(--s2);flex-wrap:wrap;display:flex}.checkin-line strong{color:var(--t1);font-weight:600}.island-compact:has(.compact-goals) .over-dock{visibility:hidden}body:has([role=dialog]) .today-compact{visibility:hidden}.reward-pic{height:168px;padding-bottom:var(--s3);border-radius:var(--r-card);background:var(--bg);justify-content:center;align-items:flex-end;display:flex}.reward-pic>img{object-fit:contain;max-width:100%;height:136px}.stats{gap:var(--s2);grid-template-columns:repeat(3,1fr);display:grid}.stat{gap:var(--gap-hair);padding:var(--s3);border-radius:var(--r-card);background:var(--surface);color:var(--t3);font-size:var(--fs-meta);flex-direction:column;display:flex}.stat b{color:var(--t1);font-size:var(--fs-big);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.2}.daily-reward-progress{width:100%;accent-color:var(--accent);height:10px}.page{gap:var(--s4);width:100%;max-width:var(--page-max);min-height:100dvh;padding:calc(var(--s3) + env(safe-area-inset-top)) var(--s4) var(--s6);padding-left:max(var(--s4), env(safe-area-inset-left));padding-right:max(var(--s4), env(safe-area-inset-right));flex-direction:column;margin:0 auto;display:flex}.page-head{align-items:center;gap:var(--s1);min-height:var(--tap);margin-left:calc(var(--s2) * -1);display:flex}.page-head h1{font-size:var(--fs-page);margin:0;font-weight:600;line-height:1.3}.head-end{margin-left:auto}.section-title{margin:var(--s2) 0 0;font-size:var(--fs-title);font-weight:600;line-height:1.3}.list-card{padding-top:var(--s1);padding-bottom:var(--s1)}.card.title-row{gap:var(--s3)}.group-head{align-items:center;gap:var(--s3);padding-bottom:var(--s1);grid-template-columns:minmax(0,1fr) auto;display:grid}.group-head>div{overflow-wrap:anywhere;min-width:0}.thumb{border-radius:var(--r-ctl);background-color:#0000;background-repeat:no-repeat;flex:none;width:48px;height:48px}.account-page{max-width:1120px}.account-layout{gap:var(--s5);min-width:0;display:grid}.account-layout>div{min-width:0}@media (width>=1100px){.account-layout{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:start}.account-learning{grid-area:1/1/span 2}.account-preferences{grid-area:1/2}.account-management{grid-area:2/2}}.avatar{border-radius:var(--r-pill);background:var(--accent-soft);width:48px;height:48px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:inline-flex}.task-name{overflow-wrap:anywhere;font-weight:600;line-height:1.35}.rooms{gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.room{border-radius:var(--r-card);background:var(--bg);text-align:left;color:var(--t1);cursor:pointer;border:0;flex-direction:column;padding:0;text-decoration:none;display:flex;overflow:hidden}.room:focus-visible{box-shadow:var(--focus);outline:none}.room-pic{aspect-ratio:16/10;background:var(--surface-2);color:var(--warn);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.room-pic>img{width:170%;position:absolute;top:-34%;left:-30%}.room-text{gap:var(--gap-hair);padding:var(--s2) var(--s3) var(--s3);font-size:var(--fs-meta);flex-direction:column;display:flex}.room-text b{min-width:0;font-size:var(--fs-body);overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.room-name{align-items:center;gap:var(--s1);flex-wrap:wrap;display:flex}.room.is-locked .room-text{color:var(--t3)}.language-chips{gap:var(--s2);flex-wrap:wrap;display:flex}.episode-entry{color:var(--text);align-items:center;gap:10px;min-height:44px;padding:12px 0;text-decoration:none;display:flex}.episode-entry span:last-child{margin-left:auto}.episode-page{max-width:700px;margin:70px auto 32px}.episode-history{gap:16px;padding:0;list-style:none;display:grid}.episode-history li{border-bottom:1px solid var(--line);overflow-wrap:anywhere;grid-template-columns:auto 1fr;gap:10px;padding-bottom:16px;display:grid}.episode-history a{justify-self:start}.episode-history span{min-width:0}@media (width<=380px){.episode-history li{grid-template-columns:1fr}}@font-face{font-family:Homepage Noto Sans SC;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/noto-sans-sc-DkxuX_5r.woff2)format("woff2");unicode-range:U+20-7E,U+C4-C5,U+D6,U+E4-E5,U+F6,U+2013-2014,U+2018-2019,U+201C-201D,U+2026,U+3001-3002,U+4E00,U+4E09-4E0B,U+4E0D-4E0E,U+4E1C,U+4E22,U+4E24,U+4E2A,U+4E2D,U+4E3A-4E3B,U+4E45,U+4E48-4E49,U+4E4B,U+4E5F-4E60,U+4E86,U+4E8B-4E8C,U+4E8E,U+4E91,U+4E9B,U+4EA7,U+4EAE,U+4EBA,U+4EC0,U+4EC5,U+4ECA-4ECB,U+4ECE,U+4EE5,U+4EEC,U+4EF6,U+4EFB,U+4F1A,U+4F20,U+4F24,U+4F46,U+4F4D,U+4F4F,U+4F53,U+4F55,U+4F5C,U+4F60,U+4F8B,U+4FDD,U+504F,U+505A,U+50CF,U+513F,U+5148-5149,U+5165,U+5168,U+5171,U+5173,U+5177-5178,U+5185,U+518C-518D,U+5192,U+51B0,U+51B2,U+51B5,U+51B7,U+51BB,U+51C6,U+51E0,U+51ED,U+51FA,U+5206-5207,U+521A,U+5220,U+5224,U+522B,U+5230,U+524A,U+524D,U+529B,U+529F-52A1,U+52A8,U+5316,U+5355,U+5385,U+539F,U+53A8,U+53BB,U+53CD,U+53D1,U+53D6,U+53D8,U+53E3,U+53E5,U+53EA-53EB,U+53EF-53F0,U+53F6-53F7,U+5408,U+540D-540E,U+542B-542C,U+5468,U+548C,U+5496,U+54C1,U+54E5,U+5561,U+5668,U+56DE,U+56E0,U+56E2,U+56FA,U+56FE,U+571F,U+5728,U+5730,U+573A,U+573E,U+5757,U+575B,U+5782-5783,U+578B,U+586B,U+58F0,U+5904,U+5907,U+590D,U+5916,U+591A,U+591C,U+5927,U+5929-592A,U+5931,U+5934,U+5976,U+597D,U+5982,U+59CB,U+5B50,U+5B58,U+5B66,U+5B83,U+5B89,U+5B8C,U+5B9A,U+5BA1-5BA2,U+5BB6,U+5BB9,U+5BBE,U+5BC6,U+5BF9,U+5C06,U+5C0F,U+5C11,U+5C14,U+5C18,U+5C31,U+5C3E,U+5C42,U+5C4B,U+5C55,U+5C9B,U+5DE5,U+5DEE,U+5DF1-5DF2,U+5E02,U+5E26,U+5E2E,U+5E38,U+5E72,U+5EA7,U+5EFA,U+5F00,U+5F04,U+5F0F,U+5F20,U+5F3A,U+5F53,U+5F55,U+5F62,U+5F80,U+5F85,U+5F88,U+5F97,U+5FAE,U+5FB7,U+5FC3,U+5FC5,U+5FD8,U+6001,U+600E,U+601D,U+6027,U+603B,U+6062,U+60C5,U+60F3,U+610F,U+6162,U+6210-6211,U+6216,U+6237,U+623F-6240,U+624B,U+624D,U+6253,U+626B,U+6279,U+627E,U+628A,U+62BD,U+62C9,U+62D6,U+6307,U+6309,U+6328,U+634F,U+6362,U+636E,U+6388-6389,U+6392,U+63A2,U+63A5,U+63CF,U+6446,U+6458,U+6469,U+649E,U+64C0,U+64CD,U+6536,U+6539,U+653E,U+6548,U+655E,U+6563,U+656C,U+6570,U+6574,U+6587,U+6599,U+65AD,U+65AF-65B0,U+65B9,U+65E0,U+65E5,U+65E9,U+65F6,U+660E,U+6628,U+662F,U+663E,U+665A,U+666F,U+6682,U+66F4,U+6700,U+6708-6709,U+6717,U+671F,U+672C,U+673A,U+6743,U+6761,U+6765,U+677F,U+6784,U+679C,U+67AF,U+67B6,U+67E0,U+67E5,U+6807,U+6821,U+682A,U+6837-6839,U+683C,U+6848,U+68C0,U+690D,U+69A8,U+6A21,U+6AAC,U+6B21,U+6B63,U+6B7B,U+6BB5,U+6BCF,U+6BD4,U+6C34,U+6C38,U+6C41,U+6C61,U+6C99,U+6CA1,U+6CD5,U+6CE1,U+6CE5,U+6CE8,U+6D0B,U+6D12,U+6D17,U+6D3B,U+6D47,U+6D78,U+6D88,U+6DF7,U+6DFB,U+6E05,U+6EA2,U+6EDA,U+6EE1,U+6EF4,U+706B,U+706D,U+706F-7070,U+7076,U+70B9,U+70C2,U+70DB,U+70E4,U+70E7,U+7167,U+716E,U+7184,U+719F,U+7247,U+725B,U+7262,U+7269,U+7279,U+72B6,U+73A9,U+73B0,U+745E,U+751F,U+7528,U+7531,U+7535,U+753B,U+7559,U+7565,U+75D5,U+767B,U+767D,U+7684,U+76AE,U+76C6,U+76D8,U+76F4,U+76F8,U+7701,U+770B,U+7740,U+77ED,U+77F3,U+7801-7802,U+783E,U+786E,U+788E,U+78B0,U+78D5,U+793A,U+79CD,U+79D2,U+79EF-79F0,U+7A0B,U+7A0D,U+7A3F,U+7A7A,U+7A97,U+7AD9,U+7AEF,U+7B2C,U+7B49,U+7B54,U+7B7E,U+7B97,U+7BA1,U+7BB1,U+7BC7,U+7C89,U+7D22,U+7E41,U+7EA6,U+7EC3-7EC4,U+7ECF,U+7ED3,U+7ED9,U+7EDC,U+7EED,U+7EFF,U+7F1D,U+7F3A,U+7F50-7F51,U+7F6E,U+8005,U+8037,U+8054,U+8089,U+80FD,U+810F,U+8150,U+81EA,U+8272,U+82F9,U+8349,U+843D,U+8471,U+852B,U+85CF,U+86CB,U+8721,U+884C,U+8865,U+8868,U+88AB,U+88C5,U+8910,U+897F,U+8981,U+89C1,U+89C8,U+89E6,U+8A00,U+8BA4,U+8BB0,U+8BBA,U+8BBE,U+8BC1,U+8BCD,U+8BD5,U+8BDD,U+8BE5,U+8BED,U+8BF4,U+8BF7,U+8BFB,U+8C03,U+8C46,U+8D25-8D26,U+8D70,U+8D77,U+8D85,U+8D8A,U+8DDF,U+8DEF,U+8EAB,U+8F6E,U+8F7D,U+8F93,U+8FBE,U+8FC7,U+8FD0,U+8FD4,U+8FD8-8FD9,U+8FDB,U+8FDE,U+8FF0,U+9000-9001,U+9009,U+901A-901B,U+9020,U+904D,U+90A3,U+90AE,U+90E8,U+90FD,U+914D,U+9175,U+91CC-91CD,U+9274,U+94FA,U+9519,U+952E,U+95E8,U+95EA,U+95ED-95EE,U+95F4,U+95FB,U+9635,U+9646,U+9650,U+9664,U+968F,U+9694,U+96F6,U+9700,U+9759,U+975E,U+9762,U+97F3,U+9875,U+9879,U+9884,U+9891,U+9898,U+9910,U+9970,U+9A8C,U+9C9C,U+9E21,U+9EC4,U+9ED1,U+9F20,U+9F99,U+FF01,U+FF08-FF09,U+FF0C,U+FF1A-FF1B,U+FF1F}@font-face{font-family:Homepage Nunito Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/assets/nunito-sans-D0KgPzkk.woff2)format("woff2");unicode-range:U+20-7E,U+A1-AC,U+AE-17F,U+2013-2014,U+2018-2019,U+201C-201D,U+2026}.intro,.intro-dialog{font-family:"Homepage Noto Sans SC",var(--font)}:is(.intro,.intro-dialog) [lang]{font-family:"Homepage Nunito Sans","Homepage Noto Sans SC",var(--font);font-weight:600}.intro{width:100%;max-width:1440px;padding:32px max(48px, env(safe-area-inset-right)) 32px max(48px, env(safe-area-inset-left));margin:auto}.intro-nav{z-index:4;justify-content:space-between;align-items:center;gap:16px;display:flex;position:relative}.intro-nav-actions{justify-content:flex-end;align-items:center;gap:var(--s4);flex-wrap:wrap;min-width:0;max-width:100%;margin-left:auto;display:flex}.intro-nav-actions>.btn-text{flex-shrink:0}.intro-nav .ui-language-picker{flex-wrap:nowrap}.intro-nav .ui-language-picker label{color:var(--t3)}.intro-nav .ui-language-picker select{width:auto;font-size:var(--fs-meta);color:var(--accent);min-height:var(--tap);box-shadow:none;cursor:pointer;border-radius:var(--r-small);background:0 0;border-color:#0000;padding:6px 8px;font-weight:600}.intro-nav .ui-language-picker select:hover{background:var(--accent-soft)}.intro-nav .ui-language-picker select:focus-visible{box-shadow:var(--focus);outline:none}@media (width<=599px){.intro-nav>.intro-mark{flex-basis:100%}}.intro-mark{flex-wrap:wrap;align-items:baseline;gap:12px;margin:0;font-size:26px;font-weight:600;display:flex}h1.intro-mark{font-size:22px}.intro-lang{color:var(--t2);font-size:14px;font-weight:400}.intro-hero{grid-template-columns:minmax(340px,.95fr) minmax(0,1.45fr);align-items:center;gap:16px;padding:16px 0 24px;display:grid}.intro-hero.without-demo{grid-template-columns:minmax(0,560px);justify-content:center}.intro-head{flex-direction:column;align-items:flex-start;gap:16px;min-width:0;padding-bottom:0;display:flex}.intro-eyebrow{color:var(--t2);margin:0;font-size:14px}.intro-headline{letter-spacing:-.02em;margin:0;font-size:40px;font-weight:600;line-height:1.35}.intro-pitch{color:var(--t2);margin:8px 0;font-size:18px;line-height:1.85}.intro-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.intro-actions>.btn{min-height:48px}.intro-highlights{color:var(--t2);margin-top:16px;font-size:14px}.intro-stage{min-width:0;margin:0;padding-bottom:16px;position:relative;container-type:inline-size}.intro-room{aspect-ratio:1;width:100%;margin:-8% auto -12%;position:relative}.intro-room>img{width:100%;height:auto;display:block}.intro-sprite,.intro-overlay{aspect-ratio:1;pointer-events:none;position:absolute}.intro-sprite{background-repeat:no-repeat}.intro-overlay{height:auto}.intro-ring{aspect-ratio:1;border:2px solid var(--accent);border-radius:var(--r-pill);pointer-events:none;position:absolute}.intro-demo-start{z-index:2;cursor:pointer;border-radius:var(--r-card);background:0 0;border:0;width:100%;position:absolute;inset:0}.intro-demo-start:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.intro-say{z-index:3;background:var(--surface);border-radius:var(--r-card);width:340px;max-width:100%;box-shadow:var(--shadow-float);flex-direction:column;gap:8px;padding:20px 24px;display:flex;position:absolute;bottom:64px;left:12%}.intro-say p{margin:0}.intro-say-head,.intro-say-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.intro-say-actions .btn-text{padding:8px 0;font-size:14px}.intro-demo-caption{text-align:center;color:var(--t3);margin:16px 0 0;font-size:14px;position:relative}.intro-try{justify-items:center;gap:16px;padding:24px;display:grid}.intro-more{border-top:1px solid var(--line);padding:32px 0}.intro-more h2{margin:8px 0 12px;font-size:28px;font-weight:600;line-height:1.4}.intro-more-description{color:var(--t2);margin:0 0 32px}.intro-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;display:grid}.intro-features h3{margin:0 0 12px;font-size:18px;font-weight:600}.intro-features p{color:var(--t2);margin:0;font-size:16px;line-height:1.85}.login{gap:var(--s3);flex-direction:column;display:flex}.login .card-title{margin-bottom:var(--s1)}.login-password-note{font-size:var(--fs-body);line-height:var(--lh);color:var(--t2);margin:0}.intro-dialog .check-note>.btn-text{white-space:nowrap;flex-shrink:0}.login-foot{gap:var(--s1);margin-top:var(--s1);flex-direction:column;display:flex}.login-note,.privacy-line{color:var(--t3);font-size:var(--fs-meta)}.intro-dialog{z-index:11;background:var(--surface);border-radius:var(--r-sheet);width:min(440px,100% - 32px);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-float);padding:24px;scroll-padding:16px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.intro-dialog:focus{outline:none}.intro-dialog-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.intro-dialog-head h2{margin:0;font-size:22px;font-weight:600}.intro-dialog .login.card{padding:0}.intro-dialog.is-trial{background:var(--bg);grid-template-columns:minmax(0,1fr) 380px;gap:16px;width:min(1440px,100% - 48px);display:grid}.intro-dialog.is-trial>.intro-dialog-head{grid-column:1/-1;margin:0}.intro-trial-picture{isolation:isolate;min-width:0;height:min(70dvh,720px);position:relative;overflow:hidden}.intro-dialog .intro-trial-picture .stage.is-room{background:0 0}.intro-trial-overview{z-index:2;position:absolute;bottom:16px;right:16px}.intro-trial-panel{background:var(--surface);border-radius:var(--r-card);flex-direction:column;gap:12px;min-width:0;max-height:min(70dvh,720px);padding:16px;scroll-padding:16px;display:flex;overflow:auto}.intro-trial-panel .word{overflow-wrap:anywhere}.intro-trial-panel.explore-compact{padding-top:0}.intro-trial-list summary{cursor:pointer;min-height:44px;color:var(--t2);padding:12px 0}.intro-trial-list .chips{flex-wrap:wrap}:is([data-layout=bottom],[data-layout=bottom-center]) .intro-dialog.is-trial{height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);padding:var(--s3);gap:var(--s3);flex-direction:column;display:flex;overflow:hidden}:is([data-layout=bottom],[data-layout=bottom-center]) .intro-dialog.is-trial>.intro-dialog-head{flex-shrink:0}:is([data-layout=bottom],[data-layout=bottom-center]) .intro-dialog.is-trial .intro-trial-picture{flex:1;height:auto;min-height:0}:is([data-layout=bottom],[data-layout=bottom-center]) .intro-dialog.is-trial .intro-trial-panel{max-height:var(--dock-max);overscroll-behavior:contain;min-height:0;padding:0 var(--s3) var(--s3);flex:0 auto;overflow-y:auto}[data-layout=bottom] .intro-trial-panel.explore-compact .dock-head{gap:var(--s1)}[data-layout=side] .intro-dialog.is-trial{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) min(380px,40vw);height:min(90dvh,840px);max-height:calc(100dvh - 24px);overflow:hidden}[data-layout=side] .intro-dialog.is-trial :is(.intro-trial-picture,.intro-trial-panel){height:100%;min-height:0;max-height:none}.gate-wait{padding:var(--s7) var(--s4);text-align:center;animation:1ms .4s both gate-wait-show}@keyframes gate-wait-show{0%{visibility:hidden}to{visibility:visible}}@media (width<=1100px) and (width>=900px){.intro{padding:24px max(32px, env(safe-area-inset-right)) 24px max(32px, env(safe-area-inset-left))}.intro-hero{grid-template-columns:minmax(300px,1fr) minmax(0,1.2fr)}.intro-headline{font-size:28px}.intro-say{width:300px;left:0}}@media (width<=899px){.intro{padding:24px max(24px, env(safe-area-inset-right)) 24px max(24px, env(safe-area-inset-left))}.intro-hero{flex-direction:column;min-height:auto;padding:32px 0 16px;display:flex}.intro-head{text-align:center;align-items:center;width:100%;padding:0 0 16px}.intro-headline{font-size:28px}.intro-pitch{font-size:16px}.intro-actions{justify-content:center}.intro-stage{width:min(100%,720px)}.intro-say{width:320px;bottom:64px;left:5%}.intro-highlights{margin-top:8px}.intro-features{grid-template-columns:1fr;gap:24px}.intro-more{padding:32px 0}.intro-dialog.is-trial{grid-template-columns:minmax(0,1fr);gap:12px;width:calc(100% - 24px);padding:16px}.intro-trial-picture{height:min(48dvh,480px)}.intro-trial-panel{max-height:none}}@media (width<=599px){.intro-mark{gap:8px;font-size:22px}.intro-head{text-align:left;align-items:flex-start}.intro-hero{padding-top:24px}.intro-stage{padding-bottom:24px}.intro-room{margin:-6% auto -8%}.intro-say{width:100%;padding:16px;position:relative;bottom:auto;left:auto}.intro-actions{justify-content:flex-start}.intro-highlights{display:none}.intro-demo-caption{text-align:left;margin:16px 0 0}.intro-dialog{padding:16px}.intro-dialog.is-trial{top:12px;transform:translate(-50%)}.intro{padding:var(--s4) max(var(--s4), env(safe-area-inset-right)) var(--s4) max(var(--s4), env(safe-area-inset-left))}.intro-hero{padding-top:var(--s3);gap:var(--s2)}.intro-head{gap:var(--s2);padding-bottom:0}.intro-head .intro-eyebrow{display:none}.intro-pitch{margin:0;line-height:1.5}.intro-actions{margin-top:0}.intro-say{padding:var(--s3) var(--s4);gap:var(--s1)}.intro-room{margin-top:0}}.intro-access-note{padding:var(--s3) var(--s4);background:var(--accent-soft);border-radius:var(--r-ctl)}.intro-trial-panel>.section-title{margin-top:var(--s3)}@media (width<=599px){.intro-nav{gap:var(--s2)}.intro-nav>.intro-mark{flex-basis:auto;min-width:0;font-size:19px}.intro-lang{display:none}.intro-nav-actions{gap:var(--s1);flex-wrap:nowrap;flex-shrink:0}.intro-nav-actions>.btn-text{padding-inline:var(--s1)}.intro-nav .ui-language-picker label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}.intro-demo-play{max-width:70%;font-size:var(--fs-meta)}.intro-sticky-spacer{height:calc(48px + 2 * var(--s3) + env(safe-area-inset-bottom))}.intro-sticky{z-index:5;align-items:center;gap:var(--s2);padding:var(--s3) max(var(--s4), env(safe-area-inset-right)) calc(var(--s3) + env(safe-area-inset-bottom)) max(var(--s4), env(safe-area-inset-left));border-radius:var(--r-sheet) var(--r-sheet) 0 0;background:var(--surface);box-shadow:var(--shadow-float);visibility:hidden;transition:transform var(--dur-move) ease-out, visibility 0s linear var(--dur-move);display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.intro-sticky.is-shown{visibility:visible;transition:transform var(--dur-move) ease-out, visibility 0s;transform:none}.intro-sticky.is-blocked{opacity:0;pointer-events:none}.intro-sticky>.btn{flex:1;min-height:48px}.intro-sticky>.btn-text{min-height:var(--tap);flex:none}.icon-btn{width:var(--tap);height:var(--tap);border-radius:var(--r-pill);background:var(--surface);color:var(--t1);box-shadow:var(--shadow-float);cursor:pointer;transition:transform var(--dur) ease;border:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:active{transform:scale(.96)}.icon-btn:focus-visible,.option:focus-visible,.sound-big:focus-visible{box-shadow:var(--focus);outline:none}.quiz-topbar{grid-template-columns:1fr auto 1fr;display:grid}.quiz-topbar>:first-child{justify-self:start}.quiz-topbar>:last-child{justify-self:end}.topbar .auto-read-switch.is-compact{gap:var(--s2);background:var(--surface);box-shadow:var(--shadow-float);color:var(--t1);flex:none}.topbar .auto-read-switch.is-compact:hover{background:var(--surface-2)}.quiz-progress{align-items:center;gap:var(--s3);min-height:var(--tap);padding:0 var(--s4);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-float);font-size:var(--fs-meta);font-variant-numeric:tabular-nums;font-weight:600;display:inline-flex}.quiz-progress .progress{width:96px}.quiz-progress>span[aria-hidden]{white-space:nowrap}@media (width<=359px){.quiz-progress{gap:var(--s2);padding:0 var(--s3)}.quiz-progress .progress{width:48px}}.quiz-ask{align-items:center;gap:var(--s4);display:flex}.sound-big{border-radius:var(--r-pill);background:var(--accent);width:64px;height:64px;color:var(--on-accent);cursor:pointer;transition:transform var(--dur) ease;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.sound-big:active{transform:scale(.96)}.sound-big .icon{width:28px;height:28px}.align-start{align-self:flex-start}.dock-body [tabindex="-1"]:focus{outline:none}.options{gap:var(--s2);flex-direction:column;display:flex}.option{justify-content:space-between;align-items:center;gap:var(--s3);min-height:52px;padding:var(--s3) var(--s4);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--t1);font-size:var(--fs-body);text-align:left;cursor:pointer;transition:background var(--dur) ease;border:0;font-weight:600;display:flex}.option:hover{background:var(--line)}.option.is-right{background:var(--accent-soft);color:var(--accent-press)}.option.is-wrong{background:var(--err-soft);color:var(--err)}.option.is-dim{color:var(--t3)}.option[aria-disabled=true]{cursor:default}.playing{align-items:center;gap:var(--s1);min-height:var(--tap);color:var(--accent);font-size:var(--fs-meta);font-weight:600;display:inline-flex}.btn-text.is-left{align-self:flex-start;padding-left:0}.prompt-zh{font-size:var(--fs-page);margin:0;font-weight:600;line-height:1.3}.stats.is-two{grid-template-columns:1fr 1fr}.title-row>.task-icon{flex:none}.title-row>.task-icon.is-done{background:var(--accent-soft);color:var(--accent)}.title-row>.task-text{flex:1}.title-row>.task-go{color:var(--t3)}.due{color:var(--t3);font-size:var(--fs-meta);white-space:nowrap}.due.is-today{color:var(--accent);font-weight:600}.study-topics{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));display:grid}.study-topic{gap:var(--s3);text-align:left;cursor:pointer;min-height:var(--tap);color:var(--t1);font:inherit;border:0;flex-direction:column;display:flex}.study-topic:hover{background:var(--accent-soft)}.study-topic:focus-visible{box-shadow:var(--focus);outline:none}.study-field{gap:var(--s2);font-size:var(--fs-meta);color:var(--t2);flex-direction:column;display:flex}.study-field select{width:100%;max-width:100%;min-height:var(--tap);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);color:var(--t1);font:inherit;font-size:var(--fs-body)}.study-picture{align-items:center;gap:var(--s4);margin:0;display:flex}.study-picture svg{border-radius:var(--r-ctl);flex:none;width:112px;height:112px;overflow:hidden}.study-picture figcaption{overflow-wrap:anywhere}.recall-practice h2:focus{outline:none}.recall-practice{overflow-wrap:anywhere}.learning-focus{gap:var(--s1);padding:var(--s3);margin-top:var(--s3);background:var(--accent-soft);border-radius:var(--r-ctl);flex-direction:column;display:flex}.learning-focus p{margin:0}.study-entries{gap:var(--s1);padding:var(--s1);background:var(--surface-2);border-radius:var(--r-ctl);display:flex}.study-entries a{min-width:0;min-height:var(--tap);text-align:center;padding:var(--s2);border-radius:var(--r-ctl);color:var(--t2);overflow-wrap:anywhere;flex:1;justify-content:center;align-items:center;text-decoration:none;display:flex}.study-entries [aria-current=page]{background:var(--surface);color:var(--accent);font-weight:600}.study-topic{padding:0;overflow:hidden}.study-topic-cover{aspect-ratio:16/9;background:var(--surface-2);width:100%;display:block;overflow:hidden}.study-topic-cover img{object-fit:cover;width:100%;height:100%;display:block}.study-topic-copy{gap:var(--s2);padding:var(--s4);min-width:0;display:grid}.study-topic-entry{color:var(--accent);font-size:var(--fs-meta)}.study-chips{gap:var(--s2);flex-wrap:wrap;display:flex}.study-chips button{white-space:normal;overflow-wrap:anywhere;max-width:100%}.study-chips [aria-pressed=true]{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);font-weight:600}.study-word-row{gap:var(--s4);align-items:center;display:flex}.study-word-row .word{overflow-wrap:anywhere;min-width:0}.study-word-row .study-picture{flex:none}.study-word-row .study-picture svg{width:96px;height:96px}.study-word-row>.meta{max-width:40%}.study-actions{gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.study-actions button{white-space:normal;overflow-wrap:anywhere;min-width:0;padding-inline:var(--s2)}.study-actions button.is-speaking{white-space:nowrap}.study-content{min-width:0}.study-lesson{overflow-wrap:anywhere}@media (width<=480px){.study-topic{grid-template-columns:104px minmax(0,1fr);gap:0;display:grid}.study-topic-cover{aspect-ratio:auto;height:100%;min-height:140px}}@media (width<=359px){.study-word-row{gap:var(--s3)}.study-word-row .study-picture svg{width:80px;height:80px}}.study-word-row .study-picture{gap:var(--s1);text-align:center;flex-direction:column;max-width:112px}.learning-optional{margin-top:var(--s4)}.learning-optional>summary,.study-selector>summary,.study-extra-practice>summary{min-height:var(--tap);cursor:pointer;color:var(--accent);padding-block:var(--s2)}.learning-optional[open],.study-selector[open],.study-extra-practice[open]{display:block}.learning-optional>:not(summary),.study-selector>:not(summary),.study-extra-practice>:not(summary){margin-top:var(--s3)}.study-lesson-position{color:var(--t1);font-weight:600}.compact-practice-actions{gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.compact-practice-actions>button{white-space:normal;overflow-wrap:anywhere}.learning-focus-word{align-items:center;gap:var(--s2) var(--s3);flex-wrap:wrap;display:flex}.study-topic-head{align-items:center;gap:var(--s2);grid-template-columns:1fr auto 1fr;display:grid}.study-topic-head>button{white-space:normal;justify-self:start}.study-topic-head h2{text-align:center;margin:0}.study-selector>summary,.study-extra-practice>summary,.explore-explanation>summary{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);padding:var(--s3);font-weight:600}.study-layout.is-wide .study-rail-objects .rail-list{max-height:min(40vh,440px);overflow-y:auto}.stage{background:linear-gradient(var(--map-sky) 50%, var(--map-sea) 50%);touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.stage.is-room{background:var(--bg)}.stage.is-night{background:linear-gradient(var(--map-sky-night) 50%, var(--map-sea-night) 50%)}.stage.is-room.is-night{background:var(--room-night-bg)}.scene-world{transform-origin:0 0;transition:transform var(--dur-move) ease;position:absolute;top:0;left:0}.scene-world>img{pointer-events:none;-webkit-user-drag:none;width:100%;height:100%;position:absolute;inset:0}.scene-world>img.backdrop-preview{z-index:-1}.scene-world>img.backdrop.is-loading{opacity:0}.scene-world>.backdrop-surround{z-index:-2;bottom:auto;right:auto}.scene-world>.backdrop-surround.is-loading{opacity:0}.scene-world>img.backdrop.is-feathered{--map-feather-x:5%;--map-feather-top:2%;--map-feather-bottom:8%;-webkit-mask-image:linear-gradient(to right, transparent 0, black var(--map-feather-x), black calc(100% - var(--map-feather-x)), transparent 100%), linear-gradient(to bottom, transparent 0, black var(--map-feather-top), black calc(100% - var(--map-feather-bottom)), transparent 100%);-webkit-mask-composite:source-in;-webkit-mask-image:linear-gradient(to right, transparent 0, black var(--map-feather-x), black calc(100% - var(--map-feather-x)), transparent 100%), linear-gradient(to bottom, transparent 0, black var(--map-feather-top), black calc(100% - var(--map-feather-bottom)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, black var(--map-feather-x), black calc(100% - var(--map-feather-x)), transparent 100%), linear-gradient(to bottom, transparent 0, black var(--map-feather-top), black calc(100% - var(--map-feather-bottom)), transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.scene-world>img.backdrop.is-feathered.has-surround-detail{--map-feather-x:1%;--map-feather-top:3%;--map-feather-bottom:3%}.stage.is-following .scene-world,.stage.is-following .marker{transition:none}.spot{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;position:absolute}.spot:focus-visible{outline:calc(3px * var(--inv)) solid var(--accent);outline-offset:calc(2px * var(--inv));box-shadow:0 0 0 calc(2px * var(--inv)) var(--accent-soft)}.place-hit{cursor:pointer;border-radius:50%;position:absolute}.spot-mark{left:calc(50% + var(--object-size) * .35);top:calc(50% - var(--object-size) * .35);width:calc(24px * var(--inv));height:calc(24px * var(--inv));transform:translate(calc(-20% + var(--mark-dx,0px) * var(--inv)), calc(-80% + var(--mark-dy,0px) * var(--inv)));border-radius:var(--r-pill);background:var(--accent);color:var(--on-accent);justify-content:center;align-items:center;display:inline-flex;position:absolute}.spot.is-wrong .spot-mark{background:var(--err)}.spot-mark.spot-progress{width:calc(56px * var(--inv));background:var(--surface);color:var(--t1);font-size:calc(var(--fs-meta) * var(--inv));font-variant-numeric:tabular-nums;font-weight:600}.spot-mark{pointer-events:none}.spot-mark .icon{width:calc(16px * var(--inv));height:calc(16px * var(--inv))}.sprite{pointer-events:none;background-repeat:no-repeat;position:absolute}.overlay{pointer-events:none;-webkit-user-drag:none;position:absolute}.marker-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.marker{z-index:1;pointer-events:auto;transition:transform var(--dur-move) ease;position:absolute;top:0;left:0}.place{min-width:var(--tap);min-height:var(--tap);padding:var(--s1) var(--s3);border-radius:var(--r-ctl);background:var(--surface);box-shadow:var(--shadow-float);cursor:pointer;white-space:nowrap;border:0;flex-direction:column;align-items:center;line-height:1.25;display:inline-flex}.place-sv-row{align-items:center;gap:var(--s1);display:inline-flex}.place-sv{font-size:var(--fs-meta);color:var(--t1);font-weight:700}.place-zh{font-size:var(--fs-meta);color:var(--t2)}.place-tag{color:var(--warn);font-weight:600}.place.is-locked{background:var(--surface-2)}.place.is-locked .place-sv,.place.is-locked .place-zh{color:var(--t3)}.place.is-home{padding:var(--s1) var(--s4);background:var(--accent)}.place.is-home .place-sv,.place.is-home .place-zh{color:var(--on-accent)}.place:focus-visible{box-shadow:var(--focus);outline:none}.plot{width:var(--tap);height:var(--tap);border-radius:var(--r-pill);color:var(--warn);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.plot>span{width:var(--cone);height:var(--cone);border-radius:var(--r-pill);background:var(--warn-soft);box-shadow:var(--shadow-float);justify-content:center;align-items:center;display:inline-flex}.plot:focus-visible{outline:none}.plot:focus-visible>span{box-shadow:var(--focus)}.coach{z-index:3;padding:var(--s2) var(--s3);border-radius:var(--r-ctl);background:var(--t1);color:var(--surface);font-size:var(--fs-meta);white-space:nowrap;box-shadow:var(--shadow-float);pointer-events:none;font-weight:600}.coach:after{content:"";left:calc(50% - var(--nudge,0px));background:inherit;border-radius:2px;width:12px;height:12px;position:absolute;bottom:-5px;transform:translate(-50%)rotate(45deg)}.coach.is-below:after{top:-5px;bottom:auto}.scene-world>.backdrop-surround.is-tiled{pointer-events:none;background-repeat:repeat;position:absolute}.surround-texture-check{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.spark{--spark-period:2s;left:calc(50% + max(var(--object-size) * .12, var(--spark-min-shift,0px) * var(--inv)));top:calc(50% - max(var(--object-size) * .12, var(--spark-min-shift,0px) * var(--inv)));width:calc(24px * var(--inv));height:calc(24px * var(--inv));pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.spark svg{width:100%;height:100%;filter:drop-shadow(0 0 calc(1.5px * var(--inv)) var(--spark-glow)) drop-shadow(0 0 calc(4px * var(--inv)) var(--glow)) drop-shadow(0 0 calc(8px * var(--inv)) var(--glow));display:block;overflow:visible}.spark path{fill:var(--spark);stroke:var(--spark-edge);stroke-width:1.2px;stroke-linejoin:round;paint-order:stroke;transform-box:fill-box;transform-origin:50%;animation:spark-twinkle var(--spark-period) ease-in-out infinite;animation-delay:calc(var(--spark-phase,0) * var(--spark-period) * -1)}.spark .spark-small{animation-delay:calc((var(--spark-phase,0) + .5) * var(--spark-period) * -1)}.spark.is-still path{animation:none}.spot .spark{--spark-min-shift:7px}@keyframes spark-twinkle{0%,to{opacity:.65;transform:scale(.66)rotate(-12deg)}50%{opacity:1;transform:scale(1)rotate(0)}}.fx{pointer-events:none;position:absolute}.fx-part{position:absolute}.fx-drip .fx-part:first-child{animation:fx-drip-fall var(--fx-drip-cycle) linear infinite;inset:0}.fx-drip .fx-part:first-child:before{content:"";background:radial-gradient(circle at 36% 34%, var(--fx-water-glint) 0 12%, transparent 30%), radial-gradient(ellipse 42% 30% at 58% 80%, var(--fx-water-warm), transparent), radial-gradient(closest-side, var(--fx-water-body) 50%, var(--fx-water-edge) 90%, transparent);transform-origin:50% 0;opacity:.95;width:4.5%;height:5.5%;animation:fx-drip-drop var(--fx-drip-cycle) linear infinite;border-radius:50%/60% 60% 40% 40%;position:absolute;top:0;left:47.75%}.fx-drip .fx-part:nth-child(n+2){background:radial-gradient(closest-side, transparent 70%, var(--fx-water-ring) 86%, transparent);opacity:0;width:15%;height:6%;animation:fx-drip-ring var(--fx-drip-cycle) ease-out infinite;border-radius:50%;margin:-3% 0 0 -7.5%;top:81%;left:50%}.fx-drip .fx-part:nth-child(3){width:11%;height:5.5%;margin:-2.75% 0 0 -5.5%;animation-name:fx-drip-ring-late}@keyframes fx-drip-fall{0%,55%{animation-timing-function:cubic-bezier(.5,0,1,.6);transform:translateY(0)}69%,to{transform:translateY(77.5%)}}@keyframes fx-drip-drop{0%{opacity:0;transform:scale(.2)}6%{opacity:.95;transform:scale(.35)}48%{transform:scaleX(.95)}55%{transform:scale(.72,1.4)}60%{transform:scale(.88,1.12)}68.5%{opacity:.95;transform:scaleX(.92)}69%,to{opacity:0;transform:scale(.78,1.45)}}@keyframes fx-drip-ring{0%,68.5%{opacity:0;transform:scale(.15)}70%{opacity:.8;transform:scale(.3)}94%,to{opacity:0;transform:scale(1)}}@keyframes fx-drip-ring-late{0%,72%{opacity:0;transform:scale(.2)}74%{opacity:.6;transform:scale(.35)}96%,to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.fx-drip .fx-part:first-child,.fx-drip .fx-part:first-child:before{animation:none}.fx-drip .fx-part:nth-child(n+2){display:none}}.scene-world>img.decor{pointer-events:none;-webkit-user-drag:none;height:auto;inset:auto;transform:translate(-50%,-100%)}.landmark-hit{border-radius:var(--r-ctl);cursor:pointer;pointer-events:auto;background:0 0;border:0;padding:0;position:absolute;top:0;left:0}.landmark-hit:focus-visible{box-shadow:var(--focus);outline:none}.lm-spark{--inv:1;--object-size:0px;pointer-events:none;width:0;height:0;transition:transform var(--dur-move) ease;position:absolute;top:0;left:0}.stage.is-following .lm-spark{transition:none}.lm-bubble{z-index:4;padding:var(--s3) 0 var(--s2);border-radius:var(--r-ctl);background:var(--surface);color:var(--t1);box-shadow:var(--shadow-float);line-height:var(--lh);text-align:left;pointer-events:auto;-webkit-user-select:text;user-select:text;position:absolute;top:0;left:0}.lm-body{max-height:calc(var(--lm-max-height) - var(--s3) - var(--s2));padding:0 var(--s3) 0 var(--s4);overscroll-behavior:contain;scrollbar-width:thin;overflow-y:auto}.lm-body:focus-visible{outline:2px solid var(--t2);outline-offset:-2px}.lm-bubble:after{content:"";left:var(--arrow-x,50%);background:inherit;border-radius:2px;width:12px;height:12px;position:absolute;bottom:-5px;transform:translate(-50%)rotate(45deg)}.lm-bubble:before{content:"";height:10px;position:absolute;top:100%;left:0;right:0}.lm-bubble.is-below:before{top:auto;bottom:100%}.lm-bubble.no-arrow:before{display:none}.lm-bubble.is-below:after{top:-5px;bottom:auto}.lm-bubble.no-arrow:after{display:none}.lm-body>.icon-btn-plain{top:var(--s1);right:var(--s3);z-index:1;background:var(--surface);position:absolute}.lm-body>.icon-btn-plain:hover{background:var(--surface-2)}.lm-name{align-items:baseline;gap:0 var(--s1);min-height:calc(var(--tap) + var(--s1) - var(--s3));padding-right:var(--tap);font-size:var(--fs-body);flex-wrap:wrap;margin:0;font-weight:700;display:flex}.lm-label{font-size:var(--fs-meta);color:var(--t2);font-weight:400}.lm-name .badge-warn{align-self:center}.lm-fact{margin:var(--s1) 0 0;font-size:var(--fs-meta);color:var(--t2)}.lm-say{align-items:center;gap:var(--s3);margin-top:var(--s2);padding-top:var(--s2);border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;display:grid}.lm-sv{font-size:var(--fs-body);margin:0;font-weight:600;line-height:1.3}.lm-zh{font-size:var(--fs-meta);color:var(--t2);margin:0}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/source-sans-3-upright-BsWL4Kly.woff2)format("woff2")}html[lang=en]{--font:"Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-body:17px;--lh:1.5;--page-max:780px}html[lang=en] :is(.intro,.intro-dialog),html[lang=en] :is(.intro,.intro-dialog) [lang]{font-family:var(--font)}html[lang=en] :is(.btn,.btn-soft,.btn-text){white-space:normal;word-break:normal;overflow-wrap:normal;max-inline-size:100%;padding-block:10px;line-height:1.25}html[lang=en] :is(.btn,.btn-soft,.btn-text).is-speaking{white-space:nowrap}html[lang=en] :is(.card-title,.page-head h1,.study-topic-copy strong){font-weight:700}html[lang=en] :is(.study-lesson,.recall-practice,.study-actions button,.study-chips button,.ai-learning){overflow-wrap:break-word;word-break:normal}html[lang=en] .study-entries a{overflow-wrap:normal;padding-inline:12px;line-height:1.3}html[lang=en] .study-actions{gap:10px}html[lang=en] .btn-row{flex-wrap:wrap}html[lang=en] .btn-row>*{flex:180px;min-width:0}html[lang=en] .btn-row:has(>h2){align-items:center}html[lang=en] .btn-row:has(>h2)>button{flex:0 auto}html[lang=en] .btn-row:has(>h2)>h2{text-align:right;flex:auto}html[lang=en] .chips>.chip{text-align:left;overflow-wrap:break-word;max-width:100%;padding-block:10px}html[lang=en] .title-row{flex-wrap:wrap;justify-content:space-between}html[lang=en] .stats{grid-template-columns:repeat(3,minmax(0,1fr))}html[lang=en] .stat{overflow-wrap:normal;padding:12px 8px}html[lang=en] .ai-learning{max-width:var(--page-max)}html[lang=en] .ai-actions>button{flex:180px}html[lang=en] .intro-mark{flex-direction:column;align-items:flex-start;gap:4px;font-size:24px;line-height:1.15;display:flex}html[lang=en] .intro-name{letter-spacing:-.015em;font-weight:700}html[lang=en] .intro-lang{font-size:14px}html[lang=en] .intro-headline{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(32px,3.4vw,48px);font-weight:700;line-height:1.12}html[lang=en] .intro .ph{display:inline}html[lang=en] .intro .ph+.ph:before{content:" "}html[lang=en] .intro-pitch{max-width:38ch;margin:0;font-size:19px;line-height:1.55}html[lang=en] .intro-eyebrow{max-width:42ch;line-height:1.45}html[lang=en] .intro-features p{line-height:1.6}html[lang=en] .intro-say-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}html[lang=en] .intro-say-actions>.btn-text{min-width:0}@media (width<=899px){html[lang=en] .intro{padding:24px max(24px, env(safe-area-inset-right)) 24px max(24px, env(safe-area-inset-left))}html[lang=en] .intro-headline{max-width:18ch}}@media (width<=599px){html[lang=en] .intro{padding:20px max(20px, env(safe-area-inset-right)) 20px max(20px, env(safe-area-inset-left))}html[lang=en] .intro-mark{font-size:22px}html[lang=en] .intro-nav-actions>.btn-text{white-space:normal;padding-inline:8px}html[lang=en] .intro-hero{padding-top:var(--s3)}html[lang=en] .intro-head{gap:var(--s2)}html[lang=en] .intro-pitch{font-size:17px}html[lang=en] .intro-actions{gap:var(--s2);flex-wrap:wrap;max-width:100%;display:flex}html[lang=en] .intro-actions>.btn-text{justify-content:flex-start;padding-inline:0}html[lang=en] .intro-more h2{font-size:28px;line-height:1.2}html[lang=en] .page-head{flex-wrap:wrap}html[lang=en] .page-head h1{flex:1;min-width:0}}@media (width<=359px){html[lang=en] .intro{padding:16px max(16px, env(safe-area-inset-right)) 16px max(16px, env(safe-area-inset-left))}html[lang=en] .intro-mark{font-size:21px}}@media (width<=480px){html[lang=en] .study-actions{grid-template-columns:minmax(0,1fr)}}html[lang=en] .topbar{flex-wrap:wrap}html[lang=en] .topbar-group{flex-wrap:wrap;min-width:0;max-width:100%}@media (width<=359px){html[lang=en] .topbar .float-btn{padding-inline:var(--s2)}}
