@import"https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;700;800&family=Noto+Sans+TC:wght@400;500;700&family=Noto+Serif+TC:wght@400;700&display=swap";.bomo-island[data-v-223be110]{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:4px;background:#ffffffdb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1.5px solid rgba(61,43,31,.1);border-radius:40px;padding:6px;box-shadow:0 8px #3d2b1f14,0 18px 36px -12px #3d2b1f80;transition:transform .4s var(--ease-jelly),opacity .3s ease;touch-action:none;user-select:none;-webkit-user-select:none}@media (min-width: 768px){.bomo-island[data-v-223be110]{display:none}}.island-tab[data-v-223be110]{width:56px;height:56px;border-radius:50%;border:none;background:none;display:grid;place-items:center;cursor:pointer;position:relative;color:var(--bark-muted);transition:color .25s,transform .35s var(--ease-jelly);min-height:unset;min-width:unset;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.island-tab[data-v-223be110]:active{transform:scale(.93)}.island-tab--active[data-v-223be110]{color:#fff;transform:translateY(-2px)}.island-tab--active[data-v-223be110]:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:50%;z-index:0;background:var(--hub, var(--accueil));box-shadow:0 5px #00000024;animation:nt-pop-223be110 .4s var(--ease-jelly)}@keyframes nt-pop-223be110{0%{transform:scale(.4)}70%{transform:scale(1.12)}to{transform:scale(1)}}.tab-icon-wrap[data-v-223be110]{position:relative;z-index:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tab-icon[data-v-223be110]{width:100%;height:100%}.app-nav-desktop[data-v-223be110]{display:none}@media (min-width: 768px){.app-nav-desktop[data-v-223be110]{display:flex;position:fixed;top:var(--header-total-height, 0px);bottom:0;left:0;width:100px;flex-direction:column;align-items:stretch;background:#fff8eef0;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-right:1px solid rgba(61,43,31,.08);padding:var(--space-3) var(--space-2);z-index:100}.nav-item[data-v-223be110]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--bark-muted);padding:var(--space-3) 0;border-radius:var(--radius-md);transition:color .15s var(--ease-smooth),background .15s var(--ease-smooth);position:relative}.nav-item[data-v-223be110]:before{content:"";position:absolute;top:4px;right:8px;bottom:4px;left:8px;border-radius:var(--radius-md);background:var(--jade-light);opacity:0;transition:opacity .15s var(--ease-smooth)}.nav-item.active[data-v-223be110]:before{opacity:1}.nav-item.active[data-v-223be110]{color:var(--jade-dark)}.nav-icon[data-v-223be110]{position:relative;width:28px;height:28px}.nav-icon svg[data-v-223be110]{width:100%;height:100%}.nav-label[data-v-223be110]{position:relative;font-size:11px;font-weight:600}.nav-spacer[data-v-223be110]{flex:1}.nav-item--profile[data-v-223be110]{border-top:1px solid rgba(61,43,31,.08)}}.bp-btn[data-v-7a60db41]{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:800;border:none;border-radius:var(--r-pill);min-height:var(--touch-min);cursor:pointer;transition:transform var(--dur-tap) var(--ease-jelly),box-shadow var(--dur-tap) var(--ease-soft),opacity var(--dur-tap) var(--ease-soft);white-space:nowrap}.bp-btn--primary[data-v-7a60db41]{background:var(--accent, var(--jade));color:#fff;box-shadow:0 6px 0 var(--accent-d, var(--jade-d))}.bp-btn--primary[data-v-7a60db41]:active:not(:disabled){transform:translateY(4px)!important;box-shadow:0 2px 0 var(--accent-d, var(--jade-d))}.bp-btn--secondary[data-v-7a60db41]{background:var(--mist);color:var(--bark);box-shadow:var(--shadow-sm)}.bp-btn--secondary[data-v-7a60db41]:hover:not(:disabled){background:var(--cloud)}.bp-btn--ghost[data-v-7a60db41]{background:transparent;color:var(--bark-muted)}.bp-btn--ghost[data-v-7a60db41]:hover:not(:disabled){background:var(--mist)}.bp-btn--danger[data-v-7a60db41]{background:var(--error);color:#fff}.bp-btn--jade[data-v-7a60db41]{background:var(--jade);color:#fff;box-shadow:var(--shadow-jade);border-radius:var(--radius-full)}.bp-btn--pill[data-v-7a60db41]{background:#fff;color:var(--accent, var(--coral));box-shadow:var(--shadow-jelly);border-radius:var(--r-pill);white-space:nowrap}.bp-btn--pill[data-v-7a60db41]:active:not(:disabled){transform:translateY(4px);box-shadow:var(--shadow-press)}.bp-btn--sm[data-v-7a60db41]{font-size:var(--text-sm);padding:var(--space-2) var(--space-4);min-height:44px}.bp-btn--md[data-v-7a60db41]{font-size:var(--text-base);padding:var(--space-3) var(--space-6)}.bp-btn--lg[data-v-7a60db41]{font-size:var(--text-lg);padding:var(--space-4) var(--space-8);border-radius:var(--radius-lg)}.bp-btn[data-v-7a60db41]:active:not(:disabled){transform:translateY(4px)}.bp-btn[data-v-7a60db41]:disabled{opacity:.45;cursor:not-allowed}.bp-btn--retro[data-v-7a60db41]{border:2px solid var(--bark)!important;box-shadow:0 4px 0 var(--bark)!important;transform:translateY(0) scale(1)!important;transition:transform .1s var(--ease-spring),box-shadow .1s var(--ease-spring),background-color .15s ease!important}.bp-btn--retro[data-v-7a60db41]:hover:not(:disabled){transform:translateY(-1.5px) scale(1)!important;box-shadow:0 5.5px 0 var(--bark)!important}.bp-btn--retro[data-v-7a60db41]:active:not(:disabled){transform:translateY(2.5px) scale(1)!important;box-shadow:0 1px 0 var(--bark)!important}.bp-mascot[data-v-4a61b23f]{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);position:relative}.mascot-body[data-v-4a61b23f]{position:relative;width:100px;height:110px;display:flex;align-items:flex-end;justify-content:center}.bear[data-v-4a61b23f]{position:relative;width:204px;height:224px;cursor:pointer;-webkit-user-select:none;user-select:none;transform:scale(.5);transform-origin:center bottom;flex-shrink:0}.bear .b-form[data-v-4a61b23f]{position:absolute;width:196px;height:188px;left:4px;top:30px;z-index:2;border-radius:50%;background:radial-gradient(125% 125% at 50% 28%,var(--bear-hi),var(--bear) 56%,var(--bear-lo));box-shadow:inset 0 -22px 42px #00000052,inset 0 16px 26px #966e462e;animation:b-breathe-4a61b23f 7s var(--ease-soft) infinite;transition:transform .55s var(--ease-jelly)}.b-form .b-ear[data-v-4a61b23f]{position:absolute;top:-26px;z-index:-1;width:64px;height:60px;border-radius:54% 54% 46% 46%;background:linear-gradient(160deg,var(--bear-hi),var(--bear))}.b-form .b-ear.l[data-v-4a61b23f]{left:18px;animation:b-ear-l-4a61b23f 4.4s var(--ease-soft) infinite;transform-origin:bottom center}.b-form .b-ear.r[data-v-4a61b23f]{right:18px;animation:b-ear-r-4a61b23f 4.4s var(--ease-soft) infinite;transform-origin:bottom center}.b-skin[data-v-4a61b23f]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;z-index:3;pointer-events:none}.b-skin .muzzle[data-v-4a61b23f]{fill:var(--muzzle)}.b-skin .nose[data-v-4a61b23f]{fill:var(--nose)}.b-skin .crescent[data-v-4a61b23f]{fill:var(--crescent);filter:drop-shadow(0 2px 1px rgba(0,0,0,.18))}.b-skin .cheek[data-v-4a61b23f]{fill:var(--cheek);opacity:.82}.b-skin .eyes path[data-v-4a61b23f],.b-skin .eyes line[data-v-4a61b23f]{stroke:var(--nose);stroke-width:7;stroke-linecap:round;fill:none}.b-skin .eyes .pupil[data-v-4a61b23f]{fill:var(--nose);stroke:none}.b-skin .eyes .hi[data-v-4a61b23f]{fill:#fff;stroke:none;opacity:.92}.b-skin .mouth path[data-v-4a61b23f]{stroke:var(--nose);stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round;fill:none}.b-skin .mouth .fillm[data-v-4a61b23f]{fill:#7a2b22;stroke:none}.b-skin .mouth .tongue[data-v-4a61b23f]{fill:var(--cheek);stroke:none}.b-skin .eyes[data-v-4a61b23f],.b-skin .mouth[data-v-4a61b23f],.b-skin .acc[data-v-4a61b23f]{display:none}.bear[data-expr=repos] .e-open[data-v-4a61b23f],.bear[data-expr=repos] .m-smile[data-v-4a61b23f],.bear[data-expr=hello] .e-open[data-v-4a61b23f],.bear[data-expr=hello] .m-grin[data-v-4a61b23f],.bear[data-expr=joie] .e-happy[data-v-4a61b23f],.bear[data-expr=joie] .m-grin[data-v-4a61b23f],.bear[data-expr=bravo] .e-star[data-v-4a61b23f],.bear[data-expr=bravo] .m-open[data-v-4a61b23f],.bear[data-expr=encour] .e-open[data-v-4a61b23f],.bear[data-expr=encour] .m-smile[data-v-4a61b23f],.bear[data-expr=pense] .e-think[data-v-4a61b23f],.bear[data-expr=pense] .m-o[data-v-4a61b23f],.bear[data-expr=pense] .a-think[data-v-4a61b23f],.bear[data-expr=oups] .e-worry[data-v-4a61b23f],.bear[data-expr=oups] .m-wavy[data-v-4a61b23f],.bear[data-expr=dodo] .e-sleep[data-v-4a61b23f],.bear[data-expr=dodo] .m-o[data-v-4a61b23f],.bear[data-expr=dodo] .a-zzz[data-v-4a61b23f]{display:block}.bear[data-expr=repos] .e-open[data-v-4a61b23f],.bear[data-expr=hello] .e-open[data-v-4a61b23f],.bear[data-expr=encour] .e-open[data-v-4a61b23f]{animation:b-blink-4a61b23f 4.6s var(--ease-soft) infinite;transform-box:fill-box;transform-origin:center}.bear[data-expr=hello][data-v-4a61b23f]{animation:b-wave-4a61b23f 2.4s var(--ease-soft) infinite}.bear[data-expr=joie] .b-form[data-v-4a61b23f]{animation:b-breathe-4a61b23f 7s var(--ease-soft) infinite,b-hop-4a61b23f 1.1s var(--ease-jelly) infinite}.bear[data-expr=bravo] .b-form[data-v-4a61b23f]{animation:b-hop-4a61b23f .7s var(--ease-jelly) infinite}.bear[data-expr=encour][data-v-4a61b23f]{animation:b-lean-4a61b23f 2.2s var(--ease-soft) infinite}.bear[data-expr=oups] .b-form[data-v-4a61b23f]{animation:b-shrink-4a61b23f 1.4s var(--ease-soft)}.bear[data-expr=dodo][data-v-4a61b23f]{animation:b-snore-4a61b23f 4.5s var(--ease-soft) infinite}.a-think .td[data-v-4a61b23f]{fill:var(--bark-muted);animation:b-think-4a61b23f 1.6s var(--ease-soft) infinite;transform-box:fill-box;transform-origin:center}.a-think .td[data-v-4a61b23f]:nth-child(2){animation-delay:.25s}.a-think .td[data-v-4a61b23f]:nth-child(3){animation-delay:.5s}.zzz-text[data-v-4a61b23f]{fill:var(--bark-muted);font-family:var(--font-sans);font-weight:800;animation:b-zzz-4a61b23f 3s var(--ease-soft) infinite}@keyframes b-breathe-4a61b23f{0%,to{transform:scale(1)}50%{transform:scale(1.015,.985)}}@keyframes b-ear-l-4a61b23f{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(-5deg) scale(1.04,.96)}}@keyframes b-ear-r-4a61b23f{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(5deg) scale(1.04,.96)}}@keyframes b-blink-4a61b23f{0%,45%,53%,to{transform:scaleY(1)}49%{transform:scaleY(.12)}}@keyframes b-hop-4a61b23f{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-16px) scale(.94,1.08)}55%{transform:translateY(0) scale(1.08,.92)}75%{transform:translateY(-4px) scale(1)}}@keyframes b-wave-4a61b23f{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes b-lean-4a61b23f{0%,to{transform:rotate(0) translate(0)}50%{transform:rotate(3deg) translate(4px)}}@keyframes b-shrink-4a61b23f{0%{transform:scale(1)}30%{transform:scale(.9,.94) translateY(6px)}to{transform:scale(1)}}@keyframes b-snore-4a61b23f{0%,to{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-3deg) translateY(4px)}}@keyframes b-think-4a61b23f{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-2px);opacity:1}}@keyframes b-zzz-4a61b23f{0%{opacity:0;transform:translateY(4px)}40%{opacity:1}to{opacity:0;transform:translate(6px,-10px)}}.bear.squash .b-form[data-v-4a61b23f]{transform:scale(1.1,.84) translateY(12px)!important}.bear.stretch .b-form[data-v-4a61b23f]{transform:scale(.92,1.1) translateY(-8px)!important}.bp-mascot--sm .bear[data-v-4a61b23f]{transform:scale(.32)}.bp-mascot--lg .bear[data-v-4a61b23f]{transform:scale(.64)}.bp-mascot--sm .mascot-body[data-v-4a61b23f]{width:64px;height:70px}.bp-mascot--lg .mascot-body[data-v-4a61b23f]{width:128px;height:140px}.mascot-bubble[data-v-4a61b23f]{background:#fff;border:2.5px solid var(--bark);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--bark);max-width:260px;text-align:center;position:relative;box-shadow:0 4px 0 var(--bark);line-height:var(--leading-normal);font-weight:700}.mascot-bubble[data-v-4a61b23f]:before{content:"";position:absolute;top:-11px;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:var(--bark)}.mascot-bubble[data-v-4a61b23f]:after{content:"";position:absolute;top:-7px;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#fff}.mascot-hanzi-bubble[data-v-4a61b23f]{position:absolute;top:-8px;background:#fff;color:var(--coral);padding:10px 16px;border-radius:18px;font-family:var(--font-serif);font-size:20px;font-weight:700;box-shadow:0 6px #3d2b1f14,0 12px 24px -12px #3d2b1f66;border:2.5px solid var(--bark);white-space:nowrap;pointer-events:none}.mascot-hanzi-bubble--right[data-v-4a61b23f]{right:-16px;transform:translate(85%)}.mascot-hanzi-bubble--left[data-v-4a61b23f]{left:-16px;transform:translate(-85%)}.mascot-hanzi-bubble__tail[data-v-4a61b23f]{position:absolute;bottom:-8px;width:12px;height:12px;background:#fff;transform:rotate(45deg);border-radius:2px;border-right:2.5px solid var(--bark);border-bottom:2.5px solid var(--bark)}.mascot-hanzi-bubble--right .mascot-hanzi-bubble__tail[data-v-4a61b23f]{left:20px}.mascot-hanzi-bubble--left .mascot-hanzi-bubble__tail[data-v-4a61b23f]{right:20px}.onboarding[data-v-6c519bda]{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:70px var(--space-4) var(--space-4);background:var(--rice)}.onboarding-topbar[data-v-6c519bda]{position:fixed;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);pointer-events:none}.topbar-link[data-v-6c519bda],.language-switch[data-v-6c519bda]{pointer-events:auto;min-height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(61,43,31,.1);border-radius:var(--radius-full);background:#ffffffd1;color:var(--bark);box-shadow:var(--shadow-sm);text-decoration:none;font-size:var(--text-sm);font-weight:var(--weight-bold)}.topbar-link[data-v-6c519bda]{padding:0 var(--space-4)}.language-switch[data-v-6c519bda]{gap:var(--space-2);padding:0 var(--space-3);color:var(--bark-muted)}.language-switch span[data-v-6c519bda]{color:var(--bark)}.language-switch a[data-v-6c519bda]{color:var(--bark-muted);text-decoration:none}.step[data-v-6c519bda]{display:flex;flex-direction:column;gap:16px;width:100%;max-width:400px}.zone-child[data-v-6c519bda]{display:flex;flex-direction:column;gap:12px}.child-header[data-v-6c519bda]{display:flex;align-items:center;gap:14px}.child-header h1[data-v-6c519bda]{font-size:20px;font-weight:900;color:var(--bark);margin:0 0 2px;line-height:1.1}.subtitle[data-v-6c519bda]{font-size:14px;color:var(--bark-muted);margin:0}.zone-parent[data-v-6c519bda]{display:flex;flex-direction:column;gap:10px;background:#3d2b1f0a;border:1.5px solid rgba(61,43,31,.08);border-radius:var(--radius-xl);padding:14px}.zone-parent-label[data-v-6c519bda]{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--bark-muted)}.email-stakes[data-v-6c519bda]{display:flex;flex-direction:column;gap:6px}.stake[data-v-6c519bda]{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.4;color:var(--bark-muted)}.stake-icon[data-v-6c519bda]{flex-shrink:0;font-size:13px}.stake--ok[data-v-6c519bda]{color:var(--jade-dark, #3D7250)}.stake--warn[data-v-6c519bda]{color:var(--bark-muted)}.step-footer[data-v-6c519bda]{display:flex;align-items:center;justify-content:space-between;padding-top:4px}.name-input[data-v-6c519bda]{width:100%;font-family:var(--font-sans);font-size:var(--text-lg);font-weight:var(--weight-medium);text-align:center;color:var(--bark);background:#fff;border:2px solid rgba(61,43,31,.12);border-radius:var(--radius-lg);padding:12px var(--space-4);outline:none;transition:border-color var(--duration-normal) var(--ease-smooth)}.name-input[data-v-6c519bda]:focus{border-color:var(--jade)}.email-input[data-v-6c519bda]{width:100%;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--bark);background:#fff;border:2px solid rgba(61,43,31,.12);border-radius:var(--radius-lg);padding:10px var(--space-4);outline:none;transition:border-color var(--duration-normal) var(--ease-smooth)}.email-input[data-v-6c519bda]:focus{border-color:var(--jade)}.color-picker[data-v-6c519bda]{display:flex;gap:10px;justify-content:flex-start}.color-swatch[data-v-6c519bda]{width:36px;height:36px;border-radius:var(--radius-full);border:3px solid transparent;box-shadow:0 2px 4px #0000001f;transition:transform var(--duration-fast) var(--ease-spring);outline:none;cursor:pointer;flex-shrink:0}.color-swatch[data-v-6c519bda]:active{transform:scale(.9)}.color-swatch.selected[data-v-6c519bda]{border-color:var(--bark);transform:scale(1.18)}.link-btn[data-v-6c519bda]{background:none;border:none;font-size:13px;color:var(--sky-dark);text-decoration:underline;padding:8px 0;cursor:pointer;min-height:unset}.feedback-msg[data-v-6c519bda]{font-size:var(--text-sm);color:var(--error);text-align:center}.feedback-msg--ok[data-v-6c519bda]{color:var(--jade-dark)}.name-input--code[data-v-6c519bda]{letter-spacing:.3em;font-size:var(--text-xl);text-align:center}.email-error[data-v-6c519bda]{font-size:var(--text-xs);color:var(--error);text-align:left;margin-top:-2px}.privacy-link[data-v-6c519bda]{font-size:12px;color:var(--bark-muted);text-decoration:underline;opacity:.6;padding:8px 0}.freemium-transparency-note[data-v-6c519bda]{font-size:11px;color:var(--bark-muted);text-align:center;margin-top:4px;margin-bottom:4px;opacity:.8;line-height:1.3}.step-enter-active[data-v-6c519bda]{transition:all var(--duration-slow) var(--ease-spring)}.step-leave-active[data-v-6c519bda]{transition:all var(--duration-normal) var(--ease-smooth)}.step-enter-from[data-v-6c519bda]{opacity:0;transform:translate(40px)}.step-leave-to[data-v-6c519bda]{opacity:0;transform:translate(-40px)}.survey-root[data-v-5c283dfa]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;overflow-y:auto}.survey-screen[data-v-5c283dfa]{min-height:100dvh;display:flex;flex-direction:column;padding:24px 20px calc(24px + env(safe-area-inset-bottom));gap:var(--space-4)}.survey-header[data-v-5c283dfa]{display:flex;flex-direction:column;gap:var(--space-3)}.survey-mascot-row[data-v-5c283dfa]{display:flex;align-items:flex-start;gap:12px}.survey-speech-bubble[data-v-5c283dfa]{flex:1;min-width:0;margin-top:2px;background:#fff;border:1px solid var(--hairline);border-radius:4px 18px 18px;padding:10px 14px;font-size:13.5px;line-height:1.45;font-weight:600;color:var(--bark);box-shadow:var(--shadow-sm)}.survey-title[data-v-5c283dfa]{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--bark);margin:0;text-align:left}.survey-content[data-v-5c283dfa]{flex:1;display:flex;flex-direction:column;gap:var(--space-5);justify-content:center}.survey-question-box[data-v-5c283dfa]{display:flex;flex-direction:column;gap:var(--space-2)}.question-label[data-v-5c283dfa]{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--bark);text-align:left;margin:0}.choice-row[data-v-5c283dfa]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.choice-chip[data-v-5c283dfa]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);border-radius:var(--radius-lg);background:#fff;border:3px solid var(--cloud);box-shadow:var(--shadow-sm);cursor:pointer;outline:none;transition:all var(--duration-fast) var(--ease-smooth);min-height:80px}.choice-chip[data-v-5c283dfa]:active{transform:scale(.95)}.choice-chip.selected[data-v-5c283dfa]{background:var(--bg);border-color:var(--accent);transform:scale(1.05)}.chip-glyph[data-v-5c283dfa]{font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:1}.chip-glyph.hanzi[data-v-5c283dfa]{font-family:var(--font-serif)}.chip-glyph.bopomofo[data-v-5c283dfa]{font-family:var(--font-sans);color:var(--sky)}.choice-chip.selected .chip-glyph.bopomofo[data-v-5c283dfa]{color:var(--accent-dark)}.chip-label[data-v-5c283dfa]{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--bark)}.choice-chip.selected .chip-label[data-v-5c283dfa]{color:var(--accent-dark)}.survey-footer[data-v-5c283dfa]{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.parent-note[data-v-5c283dfa]{padding:8px 12px;background:var(--gold-light);border:1px solid var(--cloud);border-radius:var(--radius-md);display:flex;align-items:center;gap:8px;font-size:var(--text-2xs);color:var(--bark-muted);font-weight:600;line-height:1.35;text-align:left}.result-screen[data-v-5c283dfa]{padding:24px;overflow:hidden;position:relative}.result-back-btn[data-v-5c283dfa]{display:inline-flex;align-items:center;gap:4px;background:#ffffffb3;border:1px solid var(--cloud);border-radius:var(--radius-full);padding:6px 12px;font-size:var(--text-xs);font-weight:700;color:var(--bark-muted);min-height:unset;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:relative;z-index:1;cursor:pointer}.result-halo[data-v-5c283dfa]{position:absolute;top:-60px;left:50%;transform:translate(-50%);width:360px;height:360px;pointer-events:none}.result-body[data-v-5c283dfa]{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center;position:relative}.result-title[data-v-5c283dfa]{margin:8px 0 6px;font-size:var(--text-xl);font-weight:800;line-height:1.15;color:var(--bark)}.result-pill[data-v-5c283dfa]{margin:10px auto 14px;display:inline-flex;align-self:center;align-items:center;gap:10px;background:#fff;border:2px solid;padding:8px 16px 8px 10px;border-radius:var(--radius-full);box-shadow:var(--shadow-sm)}.result-line[data-v-5c283dfa]{margin:4px auto 0;max-width:320px;font-size:var(--text-sm);line-height:1.5;color:var(--bark-muted)}.result-note[data-v-5c283dfa]{margin:18px auto 0;max-width:320px;padding:10px 12px;background:#ffffffbf;border:1px solid var(--cloud);border-radius:var(--radius-md);font-size:var(--text-2xs);font-weight:600;color:var(--bark-muted);line-height:1.45}.fade-enter-active[data-v-5c283dfa],.fade-leave-active[data-v-5c283dfa]{transition:opacity var(--duration-normal) ease}.fade-enter-from[data-v-5c283dfa],.fade-leave-to[data-v-5c283dfa]{opacity:0}.welcome-root[data-v-f1201c36]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;overflow-y:auto}.welcome-screen[data-v-f1201c36]{min-height:100dvh;display:flex;flex-direction:column;padding:24px 20px calc(24px + env(safe-area-inset-bottom));gap:var(--space-4);justify-content:space-between}.welcome-header[data-v-f1201c36]{text-align:center;display:flex;flex-direction:column;gap:var(--space-2)}.welcome-title[data-v-f1201c36]{font-size:var(--text-xl);font-weight:900;line-height:1.15;color:var(--bark);margin:0;margin-top:var(--space-1)}.welcome-text[data-v-f1201c36]{margin:0 auto;max-width:320px;font-size:var(--text-sm);line-height:1.45;color:var(--bark-muted)}.interactive-area[data-v-f1201c36]{flex:1;display:flex;flex-direction:column;justify-content:center}.bopo-card[data-v-f1201c36]{background:#fff;border-radius:var(--radius-xl);border:1px solid var(--cloud);padding:var(--space-4) var(--space-3) var(--space-3);box-shadow:var(--shadow-sm);text-align:center;position:relative;display:flex;flex-direction:column;gap:var(--space-2)}.eyebrow[data-v-f1201c36]{font-size:var(--text-2xs);font-weight:800;letter-spacing:.1em}.bopo-circle[data-v-f1201c36]{position:relative;margin:var(--space-2) auto;display:grid;place-items:center;width:140px;height:140px;border-radius:50%;background:var(--sky-light);border:3px solid var(--sky);cursor:pointer;transition:transform .12s var(--ease-spring);outline:none}.bopo-circle[data-v-f1201c36]:active{transform:scale(.95)}.bopo-audio-btn[data-v-f1201c36]{position:absolute;bottom:8px;right:8px;width:30px;height:30px;background:var(--sky);color:#fff;border-radius:var(--radius-full);display:grid;place-items:center;box-shadow:var(--shadow-sm)}.bopo-pulse[data-v-f1201c36]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid var(--sky);animation:audioPulse-f1201c36 .9s ease-out forwards;pointer-events:none}@keyframes audioPulse-f1201c36{0%{transform:scale(1);opacity:.7}to{transform:scale(1.25);opacity:0}}.bopo-hint[data-v-f1201c36]{font-size:var(--text-xs);color:var(--bark-muted);font-weight:600;min-height:20px}.reveal-content[data-v-f1201c36]{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-1)}.reveal-box[data-v-f1201c36]{padding:var(--space-3);background:var(--coral-light);border-radius:var(--radius-lg);animation:bounceIn-f1201c36 .5s var(--ease-spring);border:1px dashed rgba(255,107,74,.3)}@keyframes bounceIn-f1201c36{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.sprout-card[data-v-f1201c36]{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--jade-light);border:1px solid var(--jade-light);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);animation:bounceIn-f1201c36 .6s var(--ease-spring) .2s both}.sprout-emoji[data-v-f1201c36]{font-size:var(--text-lg);animation:sproutGrow-f1201c36 1.2s ease-out infinite alternate}@keyframes sproutGrow-f1201c36{0%{transform:scale(.9) rotate(-5deg)}to{transform:scale(1.1) rotate(5deg)}}.sprout-text[data-v-f1201c36]{font-size:var(--text-xs);font-weight:700;color:var(--jade-dark)}.welcome-footer[data-v-f1201c36]{margin-top:var(--space-2)}.slide-up-enter-active[data-v-f1201c36]{transition:all var(--duration-normal) var(--ease-spring)}.slide-up-enter-from[data-v-f1201c36]{opacity:0;transform:translateY(20px)}.levelup-overlay[data-v-beb7b719]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:500}.levelup-card[data-v-beb7b719]{background:#fff;border-radius:var(--r-card);padding:var(--space-10) var(--space-8);display:flex;flex-direction:column;align-items:center;gap:var(--space-4);max-width:320px;text-align:center;box-shadow:var(--shadow-jelly-lg)}.levelup-confetti[data-v-beb7b719]{font-size:2rem;letter-spacing:.2em;animation:float 2s ease-in-out infinite}.levelup-title[data-v-beb7b719]{font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--jade)}.levelup-sub[data-v-beb7b719]{font-size:var(--text-base);color:var(--bark-muted)}.levelup-hint[data-v-beb7b719]{font-size:var(--text-xs);color:var(--bark-muted);opacity:.6}.levelup-enter-active[data-v-beb7b719]{transition:all .5s var(--ease-jelly)}.levelup-enter-from[data-v-beb7b719]{opacity:0;transform:scale(.7)}.levelup-leave-active[data-v-beb7b719]{transition:all .3s var(--ease-soft)}.levelup-leave-to[data-v-beb7b719]{opacity:0;transform:scale(1.05)}.install-prompt[data-v-5139a7e2]{position:fixed;bottom:calc(var(--nav-height, 64px) + var(--space-3));left:var(--space-4);right:var(--space-4);background:var(--bark);color:#fff;border-radius:var(--radius-xl);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-lg);z-index:150;display:flex;align-items:flex-start;gap:var(--space-3)}@media (min-width: 768px){.install-prompt[data-v-5139a7e2]{bottom:var(--space-4);left:calc(100px + var(--space-4))}}.close-btn[data-v-5139a7e2]{position:absolute;top:var(--space-3);right:var(--space-3);background:transparent;color:#fff9;font-size:var(--text-sm);min-height:unset;padding:var(--space-1)}.install-body[data-v-5139a7e2]{display:flex;align-items:center;gap:var(--space-3);flex:1}.install-icon[data-v-5139a7e2]{font-size:1.8rem;flex-shrink:0}.install-title[data-v-5139a7e2]{font-weight:var(--weight-bold);font-size:var(--text-sm);margin-bottom:2px}.install-hint[data-v-5139a7e2]{font-size:var(--text-xs);opacity:.8;line-height:1.5}.slide-up-enter-active[data-v-5139a7e2]{transition:all .4s var(--ease-spring)}.slide-up-leave-active[data-v-5139a7e2]{transition:all .25s var(--ease-smooth)}.slide-up-enter-from[data-v-5139a7e2],.slide-up-leave-to[data-v-5139a7e2]{opacity:0;transform:translateY(20px)}.resume-overlay[data-v-bb8d41a6]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000075;z-index:600;display:flex;align-items:flex-end;justify-content:center;padding:0 var(--space-3) var(--space-4);padding-bottom:max(var(--space-4),env(safe-area-inset-bottom))}.resume-card[data-v-bb8d41a6]{background:var(--rice);border-radius:28px;padding:var(--space-5) var(--space-5) var(--space-4);max-width:400px;width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);box-shadow:0 -6px 40px #0003}.resume-mascot[data-v-bb8d41a6]{margin-bottom:calc(-1 * var(--space-1))}.resume-hi[data-v-bb8d41a6]{font-size:1.15rem;font-weight:800;color:var(--bark);margin:0;text-align:center}.resume-label[data-v-bb8d41a6]{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);color:var(--ink);text-align:center;line-height:1.4}.resume-icon[data-v-bb8d41a6]{font-size:1.35em;flex-shrink:0}.resume-btn-primary[data-v-bb8d41a6]{width:100%;background:var(--coral);color:#fff;border-radius:var(--radius-full);font-size:1rem;font-weight:700;padding:var(--space-3) var(--space-5);border:none;cursor:pointer;min-height:50px;margin-top:var(--space-1);transition:opacity .15s}.resume-btn-primary[data-v-bb8d41a6]:active{opacity:.85}.resume-btn-ghost[data-v-bb8d41a6]{background:none;border:none;color:var(--ink-muted);font-size:var(--text-sm);cursor:pointer;min-height:unset;padding:var(--space-1) 0;text-decoration:underline;text-underline-offset:3px}.resume-fade-enter-active[data-v-bb8d41a6]{transition:all .35s var(--ease-spring)}.resume-fade-leave-active[data-v-bb8d41a6]{transition:all .22s var(--ease-smooth)}.resume-fade-enter-from[data-v-bb8d41a6],.resume-fade-leave-to[data-v-bb8d41a6]{opacity:0}.resume-fade-enter-from .resume-card[data-v-bb8d41a6]{transform:translateY(32px)}.resume-fade-leave-to .resume-card[data-v-bb8d41a6]{transform:translateY(16px)}.smm-overlay[data-v-505e40ae]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#3d2b1f8c;display:flex;align-items:center;justify-content:center;padding:24px}.smm-card[data-v-505e40ae]{position:relative;background:var(--rice, #FFF8EF);border:3px solid var(--bark, #3D2B1F);border-radius:var(--radius-xl, 24px);box-shadow:0 6px 0 var(--bark, #3D2B1F),0 12px 40px #3d2b1f40;padding:28px 24px 24px;max-width:320px;width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.smm-icon[data-v-505e40ae]{display:flex;align-items:center;justify-content:center}.smm-title[data-v-505e40ae]{font-size:20px;font-weight:900;color:var(--bark);margin:0}.smm-body[data-v-505e40ae]{font-size:14px;font-weight:600;color:var(--bark-muted);margin:0;line-height:1.5}.smm-parent-btn[data-v-505e40ae]{display:flex;align-items:center;gap:8px;background:var(--bark);color:#fff;border:none;border-radius:var(--radius-full, 999px);padding:12px 20px;font-size:14px;font-weight:800;cursor:pointer;min-height:unset;width:100%;justify-content:center;transition:transform .1s var(--ease-spring)}.smm-parent-btn[data-v-505e40ae]:active{transform:scale(.96)}.smm-x[data-v-505e40ae]{position:absolute;top:14px;right:14px;width:32px;height:32px;padding:0;border-radius:50%;background:var(--mist, #F0EBE3);border:2px solid var(--bark, #3D2B1F);color:var(--bark);cursor:pointer;display:grid;place-items:center;min-height:unset;min-width:unset;transition:background .12s}.smm-x[data-v-505e40ae]:active{background:var(--bark);color:#fff}.smm-close[data-v-505e40ae]{background:none;border:2px solid var(--bark-muted);border-radius:var(--radius-full, 999px);color:var(--bark-muted);font-size:13px;font-weight:700;padding:10px 24px;cursor:pointer;min-height:unset;width:100%;transition:border-color .12s,color .12s}.smm-close[data-v-505e40ae]:active{border-color:var(--bark);color:var(--bark)}.smm-fade-enter-active[data-v-505e40ae]{animation:smmIn-505e40ae .28s var(--ease-spring) both}.smm-fade-leave-active[data-v-505e40ae]{animation:smmIn-505e40ae .18s var(--ease-spring) reverse both}@keyframes smmIn-505e40ae{0%{opacity:0;transform:scale(.88) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (min-width: 768px){.app-main{margin-left:max(100px,calc((100vw - var(--max-content)) / 2 + 50px));margin-right:0;padding-bottom:var(--space-6)}.update-banner{bottom:var(--space-4);left:calc(100px + var(--space-4));transform:none}}@media (min-width: 1024px){.app-main{max-width:800px;margin-left:max(100px,calc((100vw - 800px)/2 + 50px))}}.update-banner{position:fixed;bottom:calc(var(--nav-total-height) + var(--space-3));left:50%;transform:translate(-50%);background:var(--bark);color:#fff;border-radius:var(--radius-full);padding:var(--space-3) var(--space-5);display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm);box-shadow:var(--shadow-lg);z-index:300;white-space:nowrap}.update-banner button{background:var(--jade);color:#fff;border-radius:var(--radius-full);padding:var(--space-1) var(--space-4);font-size:var(--text-sm);min-height:unset}.kid-exit-btn{position:fixed;top:env(safe-area-inset-top,12px);right:var(--space-3);z-index:400;display:flex;align-items:center;gap:5px;padding:8px 12px;border-radius:var(--radius-full);background:#0000001f;color:#00000073;font-size:.72rem;font-weight:700;min-height:unset;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s,color .2s,transform .15s;-webkit-user-select:none;user-select:none}.silent-mode-badge{position:fixed;top:calc(var(--safe-top) + 12px);right:14px;z-index:260;width:34px;height:34px;min-height:unset;min-width:unset;padding:0;display:grid;place-items:center;border:1.5px solid rgba(61,43,31,.1);border-radius:50%;background:var(--rice, #FFF8EF);color:var(--bark);box-shadow:0 4px 12px #3d2b1f14;cursor:pointer;transition:transform .2s var(--ease-jelly),box-shadow .2s var(--ease-jelly)}.silent-mode-badge:active{transform:scale(.94);box-shadow:0 2px 6px #3d2b1f0d}.audio-blocked-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:560;display:flex;align-items:flex-end;justify-content:center;padding:18px 16px calc(20px + env(safe-area-inset-bottom));background:#3d2b1f73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.audio-blocked-card{position:relative;width:min(100%,360px);display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px;border:3px solid var(--bark);border-radius:16px;background:var(--rice, #FFF8EF);box-shadow:0 8px 0 var(--bark),0 18px 42px #3d2b1f38;text-align:center}.audio-blocked-close{position:absolute;top:10px;right:10px;width:34px;height:34px;min-height:unset;display:grid;place-items:center;border:2px solid var(--bark);border-radius:50%;background:#fff;color:var(--bark);padding:0}.audio-blocked-icon{width:58px;height:58px;display:grid;place-items:center;border:3px solid var(--bark);border-radius:50%;background:#fff;color:var(--bark);box-shadow:inset 0 -4px #3d2b1f14}.audio-blocked-card h2{margin:0;color:var(--bark);font-size:20px;font-weight:900}.audio-blocked-card p{margin:0;color:var(--bark-muted);font-size:13px;line-height:1.5}.audio-blocked-primary{width:100%;min-height:46px;border:2px solid var(--bark);border-radius:var(--radius-pill);background:var(--jade);color:#fff;box-shadow:0 3px 0 var(--bark);font-weight:900}.audio-blocked-fade-enter-active,.audio-blocked-fade-leave-active{transition:opacity .18s ease}.audio-blocked-fade-enter-from,.audio-blocked-fade-leave-to{opacity:0}.kid-exit-btn--pressing{background:#e85d4a2e;color:var(--error);transform:scale(1.08)}.kid-exit-enter-active{transition:all .3s var(--ease-spring)}.kid-exit-leave-active{transition:all .2s var(--ease-smooth)}.kid-exit-enter-from{opacity:0;transform:translateY(-6px)}.kid-exit-leave-to{opacity:0}.slide-up-enter-active{transition:all .4s var(--ease-spring)}.slide-up-leave-active{transition:all .25s var(--ease-smooth)}.slide-up-enter-from{opacity:0;transform:translate(-50%) translateY(20px)}.slide-up-leave-to{opacity:0;transform:translate(-50%) translateY(10px)}@media (max-width: 480px){.update-banner{width:calc(100% - var(--space-6));justify-content:space-between;white-space:normal}}.app-main-full{flex:1;width:100%;margin:0;padding:0}.circle-reveal-enter-active{animation:circle-reveal-in .55s var(--ease-soft) both}.circle-reveal-leave-active{animation:circle-reveal-out .28s ease both}@keyframes circle-reveal-in{0%{clip-path:circle(0% at var(--tap-x, 50%) var(--tap-y, 80%));opacity:.6}to{clip-path:circle(150% at var(--tap-x, 50%) var(--tap-y, 80%));opacity:1}}@keyframes circle-reveal-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.97)}}.hub-fade-enter-active{transition:opacity .34s var(--ease-soft),transform .42s var(--ease-jelly)}.hub-fade-leave-active{transition:opacity .2s var(--ease-soft)}.hub-fade-enter-from{opacity:0;transform:scale(.97)}.hub-fade-leave-to{opacity:0}:root{--jade: #5B9E6B;--jade-light: #E8F5EC;--jade-dark: #3D7250;--coral: #FF6B4A;--coral-light: #FFF0EC;--coral-dark: #D94F32;--sky: #4A90D9;--sky-light: #EAF3FB;--sky-dark: #2F6FAF;--gold: #FFB930;--gold-light: #FFF8E1;--gold-dark: #E09800;--purple: #7C3AED;--purple-light: #F0EAFF;--purple-dark: #5B21B6;--brick: #C85A2A;--brick-light: #FAEAE2;--brick-dark: #A0421C;--bamboo: #8FB84A;--bamboo-light:#F2F7E6;--pearl-tea: #6B4226;--pearl-light: #F5EDE6;--lantern: #B32020;--lantern-light:#FAEAEA;--rice: #FFF8EF;--mist: #F0EDE8;--cloud: #E4DDD5;--bark: #3D2B1F;--bark-muted: #7A6355;--success: #43A854;--error: #E85D4A;--warning: #F5A623;--font-sans: "Noto Sans TC", system-ui, sans-serif;--font-serif: "Noto Serif TC", "BiauKai", "DFKai-SB", serif;--font-display: "Noto Serif TC", "BiauKai", "DFKai-SB", serif;--text-micro: 10px;--text-2xs: 11px;--text-label: 12px;--text-xs: 14px;--text-sm: 16px;--text-base: 18px;--text-lg: 22px;--text-xl: 28px;--text-display: 40px;--text-2xl: 36px;--text-3xl: 48px;--text-4xl: 64px;--text-5xl: 96px;--text-bopo: 32px;--text-bopo-lg: 48px;--leading-tight: 1.1;--leading-normal: 1.5;--leading-loose: 1.8;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--weight-black: 900;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--radius-card: 20px;--radius-btn: 16px;--radius-pill: 9999px;--radius-sheet: 28px;--radius-input: 14px;--bark-border: rgba(61, 43, 31, .08);--shadow-sm: 0 2px 8px rgba(61, 43, 31, .08);--shadow-md: 0 4px 16px rgba(61, 43, 31, .1);--shadow-lg: 0 8px 32px rgba(61, 43, 31, .12);--shadow-warm: 0 4px 16px rgba(61, 43, 31, .14);--shadow-jade: 0 4px 12px rgba(91, 158, 107, .3);--shadow-coral: 0 4px 12px rgba(255, 107, 74, .3);--shadow-brick: 0 4px 12px rgba(200, 90, 42, .28);--spirit-violet-1: #BFA6FF;--spirit-violet-2: #8C5BF0;--glow-jade: 0 0 20px rgba(91, 158, 107, .3);--glow-gold: 0 0 14px rgba(255, 185, 48, .45);--night: #1A1F2B;--forest-deep: #073B2C;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.25, .46, .45, .94);--ease-out: cubic-bezier(0, 0, .2, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--max-content: 600px;--header-height: 0px;--nav-height: 80px;--safe-top: env(safe-area-inset-top);--safe-bottom: env(safe-area-inset-bottom);--nav-total-height: calc(var(--nav-height) + var(--safe-bottom));--header-total-height: calc(var(--header-height) + var(--safe-top));--touch-min: 60px;--bear: #2A2017;--bear-hi: #3A2C1E;--bear-lo: #1B130C;--muzzle: #4E3B2C;--nose: #0C0907;--crescent: #FBE8C8;--cheek: #FF5A46;--accueil: #FF6B4A;--accueil-d: #D94F32;--accueil-l: #FFE6DC;--jouer: #4A90D9;--jouer-d: #2F6FAF;--jouer-l: #E2EFFB;--histoires: #F0A92E;--histoires-d: #CE851A;--histoires-l: #FFF1D8;--jardin: #5B9E6B;--jardin-d: #3D7250;--jardin-l: #E6F4EA;--marche: #7C3AED;--marche-d: #5B21B6;--marche-l: #EFE7FC;--ease-jelly: cubic-bezier(.34, 1.56, .5, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1)}:root{--coral: #FF6B4A;--coral-d: #D94F32;--coral-l: #FFE6DC;--jade: #5B9E6B;--jade-d: #3D7250;--jade-l: #E6F4EA;--sky: #4A90D9;--sky-d: #2F6FAF;--sky-l: #E2EFFB;--gold: #F0A92E;--gold-d: #CE851A;--gold-l: #FFF1D8;--purple: #7C3AED;--purple-d: #5B21B6;--purple-l: #EFE7FC;--hub-accueil: var(--coral);--hub-accueil-d: var(--coral-d);--hub-accueil-l: var(--coral-l);--hub-lire: var(--gold);--hub-lire-d: var(--gold-d);--hub-lire-l: var(--gold-l);--hub-jouer: var(--sky);--hub-jouer-d: var(--sky-d);--hub-jouer-l: var(--sky-l);--hub-jardin: var(--jade);--hub-jardin-d: var(--jade-d);--hub-jardin-l: var(--jade-l);--hub-histoires: var(--purple);--hub-histoires-d: var(--purple-d);--hub-histoires-l: var(--purple-l);--bear: #2A2017;--bear-hi: #3A2C1E;--bear-lo: #1B130C;--muzzle: #4E3B2C;--nose: #0C0907;--crescent: #FBE8C8;--cheek: #FF5A46;--spirit-1: #BFA6FF;--spirit-2: #8C5BF0;--rice: #FFF8EF;--cream: #FFF1E2;--mist: #F2ECE3;--cloud: #E4DBCE;--bark: #3D2B1F;--bark-muted: #8A7565;--ink: #15100B;--font-sans: "Baloo 2", "Noto Sans TC", system-ui, -apple-system, sans-serif;--font-zh: "Noto Serif TC", serif;--t-display: 30px;--t-h1: 24px;--t-h2: 20px;--t-body: 15px;--t-sm: 13px;--t-xs: 11px;--hanzi-xl: 76px;--r-card: 28px;--r-tile: 22px;--r-row: 18px;--r-pill: 999px;--shadow-jelly: 0 6px 0 rgba(61,43,31,.1), 0 12px 24px -12px rgba(61,43,31,.4);--shadow-jelly-lg: 0 10px 0 rgba(61,43,31,.14), 0 24px 40px -18px rgba(61,43,31,.5);--shadow-press: 0 2px 0 rgba(61,43,31,.1);--shadow-soft: 0 8px 0 rgba(61,43,31,.08), 0 14px 26px -14px rgba(61,43,31,.5);--ease-jelly: cubic-bezier(.34, 1.56, .5, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1);--dur-tap: .18s;--dur-move: .42s;--dur-reveal: .6s}[data-pearl=coral]{--accent: var(--coral);--accent-d: var(--coral-d);--accent-l: var(--coral-l)}[data-pearl=jade]{--accent: var(--jade);--accent-d: var(--jade-d);--accent-l: var(--jade-l)}[data-pearl=sky]{--accent: var(--sky);--accent-d: var(--sky-d);--accent-l: var(--sky-l)}[data-pearl=gold]{--accent: var(--gold);--accent-d: var(--gold-d);--accent-l: var(--gold-l)}[data-pearl=purple]{--accent: var(--purple);--accent-d: var(--purple-d);--accent-l: var(--purple-l)}:root{--accent: var(--coral);--accent-d: var(--coral-d);--accent-l: var(--coral-l)}.g-card{border-radius:var(--r-card);box-shadow:var(--shadow-jelly-lg);transition:transform var(--dur-tap) var(--ease-jelly),box-shadow var(--dur-tap) var(--ease-soft)}.g-card:active{transform:translateY(4px);box-shadow:var(--shadow-press)}.g-btn{border:none;cursor:pointer;border-radius:var(--r-pill);font:800 var(--t-body)/1 var(--font-sans);padding:13px 22px;background:var(--accent);color:#fff;box-shadow:0 6px 0 var(--accent-d);transition:transform var(--dur-tap) var(--ease-jelly),box-shadow var(--dur-tap) var(--ease-soft)}.g-btn:active{transform:translateY(4px);box-shadow:0 2px 0 var(--accent-d)}.g-btn.ghost{background:#fff;color:var(--accent-d);box-shadow:var(--shadow-jelly)}.bear{position:relative;width:204px;height:224px;cursor:pointer;-webkit-user-select:none;user-select:none}.bear .b-form{position:absolute;transition:transform .55s var(--ease-jelly)}.b-form{width:196px;height:188px;left:4px;top:30px;z-index:2;border-radius:50%;background:radial-gradient(125% 125% at 50% 28%,var(--bear-hi),var(--bear) 56%,var(--bear-lo));box-shadow:inset 0 -22px 42px #00000052,inset 0 16px 26px #966e462e;animation:b-breathe 7s var(--ease-soft) infinite}.b-form .b-ear{position:absolute;top:-26px;z-index:-1;width:64px;height:60px;border-radius:54% 54% 46% 46%;background:linear-gradient(160deg,var(--bear-hi),var(--bear))}.b-form .b-ear.l{left:18px;animation:b-ear-l 4.4s var(--ease-soft) infinite;transform-origin:bottom center}.b-form .b-ear.r{right:18px;animation:b-ear-r 4.4s var(--ease-soft) infinite;transform-origin:bottom center}.b-skin{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;z-index:3;pointer-events:none}.b-skin .muzzle{fill:var(--muzzle)}.b-skin .nose{fill:var(--nose)}.b-skin .crescent{fill:var(--crescent);filter:drop-shadow(0 2px 1px rgba(0,0,0,.18))}.b-skin .cheek{fill:var(--cheek);opacity:.82}.b-skin .eyes path,.b-skin .eyes line{stroke:var(--nose);stroke-width:7;stroke-linecap:round;fill:none}.b-skin .eyes .pupil{fill:var(--nose);stroke:none}.b-skin .eyes .hi{fill:#fff;stroke:none;opacity:.92}.b-skin .mouth path{stroke:var(--nose);stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round;fill:none}.b-skin .mouth .fillm{fill:#7a2b22;stroke:none}.b-skin .mouth .tongue{fill:var(--cheek);stroke:none}.b-skin .eyes,.b-skin .mouth,.b-skin .acc{display:none}.bear.sm{transform:scale(.46);transform-origin:center bottom}.bear.md{transform:scale(.56);transform-origin:center bottom}.bear[data-expr=repos] .e-open,.bear[data-expr=repos] .m-smile,.bear[data-expr=hello] .e-open,.bear[data-expr=hello] .m-grin,.bear[data-expr=joie] .e-happy,.bear[data-expr=joie] .m-grin,.bear[data-expr=bravo] .e-star,.bear[data-expr=bravo] .m-open,.bear[data-expr=encour] .e-open,.bear[data-expr=encour] .m-smile,.bear[data-expr=pense] .e-think,.bear[data-expr=pense] .m-o,.bear[data-expr=pense] .a-think,.bear[data-expr=oups] .e-worry,.bear[data-expr=oups] .m-wavy,.bear[data-expr=dodo] .e-sleep,.bear[data-expr=dodo] .m-o,.bear[data-expr=dodo] .a-zzz{display:block}.bear[data-expr=repos] .e-open,.bear[data-expr=hello] .e-open,.bear[data-expr=encour] .e-open{animation:b-blink 4.6s var(--ease-soft) infinite;transform-box:fill-box;transform-origin:center}.bear[data-expr=hello]{animation:b-wave 2.4s var(--ease-soft) infinite}.bear[data-expr=joie] .b-form{animation:b-breathe 7s var(--ease-soft) infinite,b-hop 1.1s var(--ease-jelly) infinite}.bear[data-expr=bravo] .b-form{animation:b-hop .7s var(--ease-jelly) infinite}.bear[data-expr=encour]{animation:b-lean 2.2s var(--ease-soft) infinite}.bear[data-expr=oups] .b-form{animation:b-shrink 1.4s var(--ease-soft)}.bear[data-expr=dodo]{animation:b-snore 4.5s var(--ease-soft) infinite}.a-think .td{fill:var(--bark-muted);animation:b-think 1.6s var(--ease-soft) infinite;transform-box:fill-box;transform-origin:center}.a-think .td:nth-child(2){animation-delay:.25s}.a-think .td:nth-child(3){animation-delay:.5s}.a-zzz text{fill:var(--bark-muted);font:800 22px var(--font-sans);animation:b-zzz 3s var(--ease-soft) infinite}.bear.squash .b-form{transform:scale(1.1,.84) translateY(12px)}.bear.stretch .b-form{transform:scale(.92,1.1) translateY(-8px)}@keyframes b-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.015,.985)}}@keyframes b-ear-l{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(-5deg) scale(1.04,.96)}}@keyframes b-ear-r{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(5deg) scale(1.04,.96)}}@keyframes b-blink{0%,45%,53%,to{transform:scaleY(1)}49%{transform:scaleY(.12)}}@keyframes b-hop{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-16px) scale(.94,1.08)}55%{transform:translateY(0) scale(1.08,.92)}75%{transform:translateY(-4px) scale(1)}}@keyframes b-wave{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes b-lean{0%,to{transform:rotate(0) translate(0)}50%{transform:rotate(3deg) translate(4px)}}@keyframes b-shrink{0%{transform:scale(1)}30%{transform:scale(.9,.94) translateY(6px)}to{transform:scale(1)}}@keyframes b-snore{0%,to{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-3deg) translateY(4px)}}@keyframes b-think{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-2px);opacity:1}}@keyframes b-zzz{0%{opacity:0;transform:translateY(4px)}40%{opacity:1}to{opacity:0;transform:translate(6px,-10px)}}.spirit{position:relative;width:64px;height:64px;cursor:pointer;-webkit-user-select:none;user-select:none}.spirit .s-body{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 38% 32%,var(--spirit-1),var(--spirit-2) 70%);border-radius:52% 48% 46% 54%/56% 52% 48% 44%;box-shadow:0 8px 18px #7c3aed66,inset 0 -6px 12px #461e8c66,inset 0 5px 10px #ffffff80;animation:sp-morph 5s var(--ease-soft) infinite,sp-float 3.4s var(--ease-soft) infinite}.spirit .s-eye{position:absolute;top:28px;width:8px;height:11px;border-radius:50%;background:#2a1860;z-index:2;animation:sp-blink 4s var(--ease-soft) infinite}.spirit .s-eye.l{left:21px}.spirit .s-eye.r{right:21px}.spirit .s-eye:after{content:"";position:absolute;top:2px;left:2px;width:3px;height:3px;border-radius:50%;background:#fff}.spirit .s-blush{position:absolute;top:36px;width:10px;height:6px;border-radius:50%;background:#ff789699;z-index:2}.spirit .s-blush.l{left:12px}.spirit .s-blush.r{right:12px}.spirit .s-spark{position:absolute;top:-6px;right:-4px;font-size:14px;animation:sp-twinkle 2.6s var(--ease-soft) infinite}.spirit.glee .s-body{animation:sp-morph 5s var(--ease-soft) infinite,sp-bounce .6s var(--ease-jelly) 2}.spirit.sm{transform:scale(.7);transform-origin:center}@keyframes sp-morph{0%,to{border-radius:52% 48% 46% 54%/56% 52% 48% 44%}50%{border-radius:46% 54% 52% 48%/48% 56% 44% 52%}}@keyframes sp-float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes sp-bounce{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-14px) scale(.92,1.1)}70%{transform:translateY(0) scale(1.08,.92)}}@keyframes sp-blink{0%,46%,54%,to{transform:scaleY(1)}50%{transform:scaleY(.1)}}@keyframes sp-twinkle{0%,to{opacity:.5;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.2) rotate(20deg)}}.narrator{position:relative;width:120px;height:120px}.narrator .ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid currentColor;opacity:0}.narrator.on .ring{animation:nar-ring 2.4s var(--ease-soft) infinite}.narrator.on .ring.r2{animation-delay:.8s}.narrator.on .ring.r3{animation-delay:1.6s}.narrator .spirit{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1.5)}.narrator.on .spirit .s-body{animation:sp-morph 2.2s var(--ease-soft) infinite,nar-breathe 1.1s var(--ease-soft) infinite}@keyframes nar-ring{0%{transform:scale(.6);opacity:.55}to{transform:scale(1.7);opacity:0}}@keyframes nar-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.08,.94)}}.spot{position:relative;border-radius:var(--r-tile);display:grid;place-items:center;cursor:pointer;aspect-ratio:1;background:#fff;box-shadow:var(--shadow-jelly);transition:transform .25s var(--ease-jelly)}.spot:hover,.spot:active{transform:translateY(-4px)}.spot svg{width:58%;height:58%;overflow:visible}.spot .blob-fill{fill:var(--accent)}.spot .blob-stroke{stroke:var(--accent)}.spot svg [class^=ic-]{transform-box:fill-box;transform-origin:50% 60%;animation:spotFloat 4s var(--ease-soft) infinite}@keyframes spotFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}.nav{display:flex;align-items:center;gap:4px;background:#ffffffdb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1.5px solid rgba(61,43,31,.1);border-radius:var(--r-pill);padding:6px;box-shadow:var(--shadow-jelly);transition:transform var(--dur-move) var(--ease-jelly),opacity .3s ease}.nav.hidden{transform:translateY(90px);opacity:0;pointer-events:none}.nav .nt{width:56px;height:56px;border-radius:50%;border:none;background:none;display:grid;place-items:center;cursor:pointer;position:relative;color:var(--bark-muted);transition:color .25s,transform .35s var(--ease-jelly)}.nav .nt svg{width:28px;height:28px;fill:currentColor;position:relative;z-index:1}.nav .nt.on{color:#fff;transform:translateY(-2px)}.nav .nt.on:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:50%;z-index:0;background:var(--hub, var(--accent));box-shadow:0 5px #00000024;animation:nt-pop .4s var(--ease-jelly)}@keyframes nt-pop{0%{transform:scale(.4)}70%{transform:scale(1.12)}to{transform:scale(1)}}.view{opacity:0;visibility:hidden;transform:scale(.97);transition:opacity .34s var(--ease-soft),transform var(--dur-move) var(--ease-jelly),visibility .34s}.view.active{opacity:1;visibility:visible;transform:scale(1)}.view.immersive{clip-path:circle(0% at var(--ox,50%) var(--oy,90%));transition:clip-path var(--dur-reveal) var(--ease-soft),opacity .3s ease,transform var(--dur-move) var(--ease-jelly),visibility .3s}.view.immersive.active{clip-path:circle(150% at var(--ox,50%) var(--oy,90%))}@media (prefers-reduced-motion: reduce){*,.b-form,.b-ear,.spirit .s-body,.spot svg [class^=ic-]{animation:none!important}.view,.view.immersive{transition:opacity .2s linear!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{font-size:var(--text-base);touch-action:manipulation;min-height:100%}body{font-family:var(--font-sans);font-weight:var(--weight-normal);line-height:var(--leading-normal);background:var(--rice);color:var(--bark);min-height:100dvh;scroll-behavior:smooth;overscroll-behavior:none;overflow-x:clip}body,#app{min-height:100%}.hanzi{font-family:var(--font-serif);font-size:var(--text-3xl);line-height:var(--leading-tight);color:var(--bark)}.bopomofo{font-family:var(--font-sans);font-size:var(--text-bopo);color:var(--sky);line-height:var(--leading-tight)}.translation{font-size:var(--text-base);color:var(--bark-muted)}.zh-deco{font-family:var(--font-serif);font-size:.58em;color:var(--sky);opacity:.6;margin-left:.28em;vertical-align:.08em;font-weight:400}#bopolearn{display:flex;flex-direction:column;min-height:100dvh;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.app-main{flex:1;width:100%;max-width:var(--max-content);margin:0 auto;padding:0;padding-bottom:calc(var(--nav-total-height) + var(--space-3));overscroll-behavior:none;overflow-x:clip}.app-main--no-nav{padding-bottom:var(--space-3)}button{cursor:pointer;font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-medium);border:none;border-radius:var(--radius-md);min-height:var(--touch-min);min-width:var(--touch-min);padding:var(--space-3) var(--space-6);transition:transform var(--duration-fast) var(--ease-spring),opacity var(--duration-fast) var(--ease-smooth)}button:active:not(:disabled){transform:scale(.94)}button:disabled{opacity:.5;cursor:not-allowed}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes bounce-in{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.1)}80%{transform:scale(.95)}to{transform:scale(1);opacity:1}}@keyframes wobble{0%,to{transform:rotate(0)}20%{transform:rotate(-6deg)}40%{transform:rotate(6deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(4deg)}}@keyframes star-pop{0%{transform:scale(0) rotate(-30deg);opacity:0}70%{transform:scale(1.3) rotate(10deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.6}}@keyframes audioPulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.65)}}@keyframes feedbackPop{0%{opacity:0;transform:translateY(40px) scale(.94)}60%{opacity:1;transform:translateY(-4px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:.5}}@keyframes stroke-pulse{0%,to{opacity:.25}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (min-width: 768px){.app-main{padding:var(--space-8) var(--space-6);padding-bottom:var(--space-8)}}.hub-glow{position:absolute;top:-120px;left:50%;transform:translate(-50%);width:460px;height:320px;border-radius:50%;filter:blur(40px);opacity:.36;pointer-events:none;z-index:0}
