:root{--bg-canvas:#FFF8EC;--bg-surface:#FFFFFF;--bg-muted:#F3EBDD;--bg-sunken:#EFE4D2;--ink-900:#2B2D42;--ink-600:#5A5D73;--ink-400:#8A8DA0;--brand-100:#FFEBDC;--brand-500:#FF8A3D;--brand-600:#CA5000;--brand-700:#D9651A;--on-brand-500:var(--ink-900);--on-brand-600:var(--bg-surface);--math-100:#E3F0FF;--math-500:#2E86DE;--math-600:#2178D0;--math-700:#1B5FA8;--on-math-500:var(--ink-900);--on-math-600:var(--bg-surface);--on-math-700:var(--bg-surface);--vi-100:#FFE6E3;--vi-500:#EE5A3A;--vi-600:#DE3713;--vi-700:#B93E22;--on-vi-500:var(--ink-900);--on-vi-600:var(--bg-surface);--on-vi-700:var(--bg-surface);--en-100:#E0F7F1;--en-500:#1B998B;--en-600:#178478;--en-700:#136E63;--on-en-500:var(--ink-900);--on-en-600:var(--bg-surface);--on-en-700:var(--bg-surface);--bi-100:#EFE9FB;--bi-500:#7C5CBF;--bi-600:#6B49B0;--bi-700:#5B3FA0;--on-bi-500:var(--bg-surface);--on-bi-600:var(--bg-surface);--on-bi-700:var(--bg-surface);--success-100:#DBF5E8;--success-500:#2FB673;--success-600:#228554;--on-success-500:var(--ink-900);--on-success-600:var(--bg-surface);--highlight-400:#FFD93D;--highlight-700:#C97A00;--on-highlight-400:var(--ink-900);--error-500:#E5484D;--error-600:#E12F35;--on-error-600:var(--bg-surface);--focus:#1D4ED8;--focus-contrast:var(--bg-surface);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:48px;--space-9:64px;--space-10:80px;--space-11:96px;--space-12:128px;--font-display:"Baloo 2","Segoe UI",system-ui,sans-serif;--font-body:"Nunito","Segoe UI",system-ui,sans-serif;--font-reading:"Andika","Segoe UI",system-ui,sans-serif;--font-parent:"Be Vietnam Pro","Segoe UI",system-ui,sans-serif;--font-dyslexia:"Lexend","Segoe UI",system-ui,sans-serif;--weight-regular:400;--weight-medium:500;--weight-bold:700;--weight-heavy:800;--leading-glyph:1;--leading-tight:1.25;--leading-normal:1.5;--leading-loose:1.7;--measure-prose:68ch;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-pill:999px;--border-hairline:1px;--border-thin:2px;--border-thick:3px;--border-ring:6px;--scrim:rgba(43,45,66,0.7);--scrim-strong:rgba(43,45,66,0.85);--shadow-card:0 2px 8px rgba(43,45,66,0.08);--shadow-raised:0 8px 24px rgba(43,45,66,0.12);--btn-shadow:0 6px 0 rgba(43,45,66,0.14);--btn-shadow-pressed:0 2px 0 rgba(43,45,66,0.14);--btn-press-travel:4px;--dur-instant:80ms;--dur-fast:140ms;--dur-base:220ms;--dur-slow:360ms;--dur-celebrate:640ms;--dur-scene:300ms;--dur-talk:320ms;--dur-fly:480ms;--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--ease-bounce:cubic-bezier(0.34,1.56,0.64,1);--z-base:0;--z-raised:10;--z-mascot:20;--z-shell:30;--z-hand:35;--z-scrim:40;--z-modal:50;--z-nudge:60;--z-dev:1000;--text-dev:12px;--trace-corridor:rgba(90,93,115,0.15);--trace-center:rgba(90,93,115,0.4);--trace-ink:rgba(255,138,61,0.85);--edge-size:6px;--edge-size-pressed:2px;--edge-surface:#E1D6BE;--edge-muted:#D3C6AA;--edge-brand:var(--brand-700);--edge-math:var(--math-700);--edge-vi:var(--vi-700);--edge-en:var(--en-700);--edge-bi:var(--bi-700);--edge-success:var(--success-600);--edge-highlight:var(--highlight-700);--gloss:rgba(255,255,255,0.45);--halo:rgba(255,217,61,0.55);--sky-home:#CDEBFF;--sky-math:#CFE6FF;--sky-vi:#FFE3D4;--sky-en:#D2F3E9;--sky-bi:#E9E2FA;--sky-bottom:var(--bg-canvas);--hill-far:#DDEFC8;--hill-near:#C3E4A5;--hill-edge:#A9D38A;--road-fill:#FBEFD2;--road-edge:#E7CFA0;--road-dash:#FFFFFF;--cloud:#FFFFFF;--sun:var(--highlight-400);--tree-leaf:#8ECB74;--tree-leaf-dark:#6DB25A;--tree-trunk:#B8865A;--pond:#BFE4F7;--road-width:28px;--road-dash-length:14px;--map-amplitude:96px;--map-step:150px;--map-step-text:196px;--mascot-on-node:88px;--content-red:#E03131;--content-blue:#1C7ED6;--content-yellow:#FCC419;--content-green:#2F9E44;--content-orange:#F76707;--content-purple:#7048E8;--content-dark:var(--ink-900);--content-shade:#5A5D73;--content-light:#E3F0FF;--content-brown:#B8865A;--content-brown-dark:#8A6240;--content-pink:#F06595;--content-sky:#BFE4F7;--content-cream:#FFF3BF;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:20px;--text-2xl:32px;--width-dashboard:1000px;--col-card-min:280px;--border-w:2px;--h-topbar:calc(var(--size-tap) + var(--space-4) + env(safe-area-inset-top, 0px));--px-per-mm:6.2992126;--mm:6.2992126px;--size-tap-parent:calc(7.62 * var(--mm));--radius-mam:var(--radius-xl);--radius-lon:var(--radius-lg);--radius-cao:var(--radius-md)}:root,[data-mode=mam]{--size-tap:calc(14 * var(--mm));--gap-target:var(--space-4);--radius-mode:var(--radius-xl);--size-glyph:128px;--size-title:40px;--size-body:20px;--size-label:18px;--font-ui:var(--font-display);--node-size:104px;--mascot-size:120px;--touch-action-mode:pan-x pan-y;--overflow-y-mode:hidden}[data-mode=lon]{--size-tap:calc(10 * var(--mm));--gap-target:var(--space-3);--radius-mode:var(--radius-lg);--size-glyph:96px;--size-title:36px;--size-body:20px;--size-label:16px;--font-ui:var(--font-body);--node-size:88px;--mascot-size:104px;--touch-action-mode:pan-x pan-y;--overflow-y-mode:auto}[data-mode=cao]{--size-tap:calc(9 * var(--mm));--gap-target:var(--space-2);--radius-mode:var(--radius-md);--size-glyph:64px;--size-title:28px;--size-body:17px;--size-label:15px;--font-ui:var(--font-body);--node-size:72px;--mascot-size:88px;--touch-action-mode:auto;--overflow-y-mode:auto}[data-mode]{--h-topbar:calc(var(--size-tap) + var(--space-4) + env(safe-area-inset-top, 0px))}[data-zone=parent]{--size-tap:calc(9 * var(--mm));--gap-target:var(--space-2);--radius-mode:var(--radius-lg);--size-title:24px;--size-body:16px;--size-label:14px;--font-ui:var(--font-parent);--bg-canvas:#F7F5F2;--touch-action-mode:auto;--overflow-y-mode:auto}[data-reading-aid=on]{--font-reading:var(--font-dyslexia);--font-body:var(--font-dyslexia);--leading-normal:var(--leading-loose);font-family:var(--font-dyslexia)}html{background-color:var(--bg-canvas);color:var(--ink-900);font-family:var(--font-body);text-size-adjust:100%}body,html{min-height:100dvh}body{margin:0;padding:0;background-color:inherit}.child-shell,.parent-shell{min-height:100dvh}.child-shell{box-sizing:border-box}body,html{overflow-x:hidden;overscroll-behavior:none}*,:after,:before{box-sizing:border-box}img,svg{max-width:100%}:focus-visible{outline:var(--border-thick) solid var(--focus);outline-offset:var(--space-1);border-radius:inherit}:focus:not(:focus-visible){outline:none}[role=button]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{position:relative;z-index:var(--z-raised)}:root{--selected-ring:var(--brand-600);--bp-phone:480px;--bp-tablet:768px;--bp-wide:1024px;--bp-short:500px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}[data-feedback=correct],[data-feedback=correct]:focus{outline:var(--border-ring) solid var(--success-600);outline-offset:var(--space-1)}[data-feedback=retry],[data-feedback=retry]:focus{outline:var(--border-ring) solid var(--highlight-700);outline-offset:var(--space-1);transform:none!important;animation:tk-hold var(--dur-slow) linear!important;animation-duration:var(--dur-slow)!important}@keyframes tk-hold{0%,to{opacity:1}}}@media (forced-colors:active){.answer-card,[role=button],button{border:var(--border-thin) solid ButtonBorder;forced-color-adjust:none;background-color:ButtonFace;color:ButtonText}:focus-visible{outline:var(--border-thick) solid Highlight}[aria-pressed=true],[data-feedback=correct],[data-feedback=retry]{border-width:var(--border-ring);border-style:double}}@media (prefers-contrast:more){:root{--ink-600:var(--ink-900);--btn-shadow:0 0 0 var(--border-thin) var(--ink-900)}}.child-shell{touch-action:var(--touch-action-mode,manipulation);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.tk-scene{touch-action:pan-x pan-y}.child-shell,.child-shell img,.child-shell svg,.tk-scene,.tk-scene img,.tk-scene svg{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.child-shell img,.child-shell svg,.tk-scene img,.tk-scene svg{-webkit-user-drag:none}.child-shell input,.child-shell textarea,.parent-shell,.tk-scene input,.tk-scene textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}.parent-shell{touch-action:auto}@keyframes fadeIn{0%{opacity:0;transform:translateY(var(--space-2))}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes celebrate{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes wobble{0%,to{transform:translateX(0)}20%{transform:translateX(calc(-1 * var(--space-2)))}40%{transform:translateX(var(--space-2))}60%{transform:translateX(calc(-1 * var(--space-1)))}80%{transform:translateX(var(--space-1))}}