PageSourceSearch

https://hevolve.ai/static/js/3277.a04c4e33.chunk.js

js hevolve.ai collected 2026-10-05 12:04:20 UTC 212,782 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkhevolve=self.webpackChunkhevolve||[]).push([[3277],{2769(e,t,o){o.d(t,{ZR:()=>H});var n=o(35163),a=o(69727),s=o(34022);let r=!1;try{var i,c;const e=null===(i=(c=window).matchMedia)||void 0===i?void 0:i.call(c,"(prefers-reduced-motion: reduce)");var l;if(e)r=e.matches,null===(l=e.addEventListener)||void 0===l||l.call(e,"change",e=>{r=e.matches})}catch(Y){}const d=e=>{if(!r)try{"undefined"!==typeof navigator&&"function"===typeof navigator.vibrate&&navigator.vibrate(e)}catch(Y){}},u=30,h=[0,40,50,40],p=80,m=[0,30,40,30,40,30],g=[0,30,30,30,30,50,30,50],y=[0,30,20,30,20,30,20,60,20,60,20,60],b=[0,50,60,50,60,80],f=[0,40,40,40,40,40,40,100,80,100],w="tap",x="correct",k="wrong",v="streak_3",S="streak_5",R="streak_10",q="complete",C="perfect",T="star_earned",P="countdown_tick",I="countdown_end",A="drag_start",F="drag_drop",B="card_flip",M="match_found",_="level_up",W="intro",z=new Map,E=async(e,t,o)=>{const n=new OfflineAudioContext(1,Math.ceil(t*e),t);return o(n),await n.startRendering()},G=function(e,t,o,n,a,s){let r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:.5;t.gain.setValueAtTime(0,o),t.gain.linearRampToValueAtTime(r,o+n),t.gain.setValueAtTime(r,o+n+a),t.gain.linearRampToValueAtTime(0,o+n+a+s)};let j=!1,O=null;const D=()=>j?Promise.resolve():O||(O=(async()=>{if(z.size>0)return;const e=44100;z.set(w,await E(.06,e,e=>{const t=e.createOscillator();t.type="sine",t.frequency.value=800;const o=e.createGain();G(e,o,0,.005,.01,.04,.3),t.connect(o),o.connect(e.destination),t.start(0),t.stop(.06)})),z.set(x,await E(.35,e,e=>{const t=e.createOscillator();t.type="sine",t.frequency.value=523.25;const o=e.createGain();G(e,o,0,.01,.08,.1,.4),t.connect(o),o.connect(e.destination),t.start(0),t.stop(.2);const n=e.createOscillator();n.type="sine",n.frequency.value=659.25;const a=e.createGain();G(e,a,.1,.01,.1,.14,.45),n.connect(a),a.connect(e.destination),n.start(.1),n.stop(.35)})),z.set(k,await E(.3,e,e=>{const t=e.createOscillator();t.type="triangle",t.frequency.setValueAtTime(329.63,0),t.frequency.linearRampToValueAtTime(261.63,.2);const o=e.createGain();G(e,o,0,.01,.15,.13,.35),t.connect(o),o.connect(e.destination),t.start(0),t.stop(.3)})),z.set(v,await E(.45,e,e=>{[523.25,659.25,783.99].forEach((t,o)=>{const n=e.createOscillator();n.type="sine",n.frequency.value=t;const a=e.createGain(),s=.12*o;G(e,a,s,.01,.06,.08,.35),n.connect(a),a.connect(e.destination),n.start(s),n.stop(s+.15)})})),z.set(S,await E(.6,e,e=>{[523.25,659.25,783.99,1046.5].forEach((t,o)=>{const n=e.createOscillator();n.type="sine",n.frequency.value=t;const a=e.createGain(),s=.11*o;G(e,a,s,.01,.08,.1,.4),n.connect(a),a.connect(e.destination),n.start(s),n.stop(s+.2)})})),z.set(R,await E(.8,e,e=>{[523.25,659.25,783.99,1046.5,1318.51].forEach((t,o)=>{const n=e.createOscillator();n.type="sine",n.frequency.value=t;const a=e.createGain(),s=.12*o;G(e,a,s,.01,.08,.12,.4+.02*o),n.connect(a),a.connect(e.destination),n.start(s),n.stop(s+.22)})})),z.set(q,await E(.8,e,e=>{[523.25,659.25,783.99].forEach(t=>{const o=e.createOscillator();o.type="sine",o.frequency.value=t;const n=e.createGain();G(e,n,0,.02,.3,.45,.3),o.connect(n),n.connect(e.destination),o.start(0),o.stop(.8)});const t=e.createOscillator();t.type="sine",t.frequency.value=1046.5;const o=e.createGain();G(e,o,.1,.02,.2,.4,.15),t.connect(o),o.connect(e.destination),t.start(.1),t.stop(.75)})),z.set(C,await E(1.2,e,e=>{[523.25,659.25,783.99,987.77,1046.5].forEach((t,o)=>{const n=e.createOscillator();n.type="sine",n.frequency.value=t;const a=e.createGain(),s=.08*o;G(e,a,s,.01,.06,.08,.3),n.connect(a),a.connect(e.destination),n.start(s),n.stop(s+.16)}),[523.25,659.25,783.99,1046.5].forEach(t=>{const o=e.createOscillator();o.type="sine",o.frequency.value=t;const n=e.createGain();G(e,n,.4,.03,.3,.45,.25),o.connect(n),n.connect(e.destination),o.start(.4),o.stop(1.2)})})),z.set(T,await E(.5,e,e=>{const t=e.createOscillator();t.type="sine",t.frequency.value=1318.51;const o=e.createGain();G(e,o,0,.005,.05,.15,.35),t.connect(o),o.connect(e.destination),t.start(0),t.stop(.22);const n=e.createOscillator();n.type="sine",n.frequency.value=1567.98;const a=e.createGain();G(e,a,.08,.005,.08,.25,.3),n.connect(a),a.connect(e.destination),n.start(.08),n.stop(.42);const s=e.createOscillator();s.type="sine",s.frequency.value=2093;const r=e.createGain();G(e,r,.16,.005,.06,.25,.2),s.connect(r),r.connect(e.destination),s.start(.16),s.stop(.48)}
1)),z.set(P,await E(.05,e,e=>{const t=e.createOscillator();t.type="sine",t.frequency.value=1e3;const o=e.createGain();G(e,o,0,.002,.01,.035,.25),t.connect(o),o.connect(e.destination),t.start(0),t.stop(.05)})),z.set(I,await E(.4,e,e=>{[0,.15].forEach(t=>{const o=e.createOscillator();o.type="square",o.frequency.value=880;const n=e.createGain();G(e,n,t,.005,.06,.06,.2),o.connect(n),n.connect(e.destination),o.start(t),o.stop(t+.13)})})),z.set(A,await E(.08,e,e=>{const t=e.createOscillator();t.type="sine",t.frequency.setValueAtTime(600,0),t.frequency.exponentialRampToValueAtTime(300,.06);const o=e.createGain();G(e,o,0,.005,.02,.05,.25),t.connect(o),o.connect(e.destination),t.start(0),t.stop(.08)})),z.set(F,await E(.12,e,e=>{const t=e.createOscillator();t.type="sine",t.frequency.setValueAtTime(400,0),t.frequency.exponentialRampToValueAtTime(150,.1);const o=e.createGain();G(e,o,0,.005,.03,.08,.35),t.connect(o),o.connect(e.destination),t.start(0),t.stop(.12)})),z.set(B,await E(.15,e,e=>{const t=e.createOscillator();t.type="sawtooth",t.frequency.setValueAtTime(200,0),t.frequency.exponentialRampToValueAtTime(2e3,.08),t.frequency.exponentialRampToValueAtTime(400,.15);const o=e.createGain();G(e,o,0,.01,.04,.1,.12),t.connect(o),o.connect(e.destination),t.start(0),t.stop(.15)})),z.set(M,await E(.4,e,e=>{[[783.99,0],[1046.5,.1]].forEach(t=>{let[o,n]=t;const a=e.createOscillator();a.type="sine",a.frequency.value=o;const s=e.createGain();G(e,s,n,.01,.08,.15,.35),a.connect(s),s.connect(e.destination),a.start(n),a.stop(n+.25)})})),z.set(_,await E(.7,e,e=>{[{freq:523.25,t:0,dur:.15},{freq:659.25,t:.1,dur:.15},{freq:783.99,t:.2,dur:.15},{freq:1046.5,t:.3,dur:.35}].forEach(t=>{let{freq:o,t:n,dur:a}=t;const s=e.createOscillator();s.type="sine",s.frequency.value=o;const r=e.createGain();G(e,r,n,.01,.5*a,.5*a,.35),s.connect(r),r.connect(e.destination),s.start(n),s.stop(n+a+.02)})})),z.set(W,await E(.9,e,e=>{[{freq:392,t:0,dur:.12},{freq:523.25,t:.1,dur:.12},{freq:659.25,t:.2,dur:.12},{freq:783.99,t:.3,dur:.12},{freq:1046.5,t:.45,dur:.4}].forEach(t=>{let{freq:o,t:n,dur:a}=t;const s=e.createOscillator();s.type="sine",s.frequency.value=o;const r=e.createGain();G(e,r,n,.01,.6*a,.4*a,.3),s.connect(r),r.connect(e.destination),s.start(n),s.stop(n+a+.02)})}))})().then(()=>{j=!0}).catch(()=>{j=!0}),O),L=e=>{D().then(()=>{const t=z.get(e);t&&n.A.playSFX(t)})},H={tap:()=>{d(u),L(w)},correct:()=>{d(h),L(x)},wrong:()=>{d(p),L(k)},streak:e=>{e>=10?(d(y),L(R)):e>=5?(d(g),L(S)):e>=3&&(d(m),L(v))},complete:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]?(d(f),L(C)):(d(b),L(q))},perfect:()=>{d(f),L(C)},starEarned:()=>{d(h),L(T)},cardFlip:()=>{d(u),L(B)},matchFound:()=>{d(h),L(M)},dragStart:()=>{d(u),L(A)},dragDrop:()=>{d(u),L(F)},drag:()=>{d(u),L(A)},drop:()=>{d(u),L(F)},flip:()=>{d(u),L(B)},match:()=>{d(h),L(M)},timerTick:()=>{L(P)},timerEnd:()=>{d(p),L(I)},countdownTick:()=>{L(P)},countdownEnd:()=>{d(p),L(I)},levelUp:()=>{d(h),L(_)},intro:()=>{d(h),L(W)},startBackgroundMusic:(e,t)=>{n.A.startBGM(e,t)},stopBackgroundMusic:e=>{n.A.stopBGM(e)},pauseBackgroundMusic:()=>{n.A.pauseBGM()}
1,resumeBackgroundMusic:()=>{n.A.resumeBGM()},speakText:async(e,t)=>a.A.speak(e,t||{}),preCacheTTS:async(e,t)=>a.A.preCache(e,t||{}),stopTTS:()=>{a.A.stop()},playGeneratedMusic:async(e,t,o)=>{const a=await s.A.getAsync(e||"music",t||{});return!!a&&(n.A.startBGM(a,o),!0)},cleanup:()=>{n.A.stopAll()},setMuted:e=>{n.A.setMuted(e)},isMuted:()=>n.A.isMuted(),setMasterVolume:e=>{n.A.setMasterVolume(e)},warmUp:()=>D()}},34022(e,t,o){o.d(t,{A:()=>k});var n=o(89379);const a="blobs",s="meta",r="__cacheIndex__",i="kidsMedia_inline_",c=209715200,l={tts:12096e5,music:2592e6,video:6048e5,sfx:2592e6,image:12096e5},d=(e,t)=>{const o="".concat(e,":").concat(JSON.stringify(t));let n=5381;for(let a=0;a<o.length;a++)n=(n<<5)+n+o.charCodeAt(a)&4294967295;return(n>>>0).toString(16)};let u=null;const h=()=>new Promise((e,t)=>{if(u)return void e(u);const o=indexedDB.open("kidsMediaCache",1);o.onupgradeneeded=e=>{const t=e.target.result;t.objectStoreNames.contains(a)||t.createObjectStore(a),t.objectStoreNames.contains(s)||t.createObjectStore(s)},o.onsuccess=t=>{u=t.target.result,u.onclose=()=>{u=null},e(u)},o.onerror=()=>{t(o.error)}}),p=(e,t)=>new Promise(async(o,n)=>{try{const a=(await h()).transaction(e,"readonly"),s=a.objectStore(e).get(t);s.onsuccess=()=>o(s.result),s.onerror=()=>n(s.error)}catch(a){n(a)}}),m=(e,t,o)=>new Promise(async(n,a)=>{try{const s=(await h()).transaction(e,"readwrite"),r=s.objectStore(e).put(o,t);r.onsuccess=()=>n(),r.onerror=()=>a(r.error)}catch(s){a(s)}}),g=(e,t)=>new Promise(async(o,n)=>{try{const a=(await h()).transaction(e,"readwrite"),s=a.objectStore(e).delete(t);s.onsuccess=()=>o(),s.onerror=()=>n(s.error)}catch(a){n(a)}});let y={},b=!1;const f=new Map,w=(e,t)=>{if(f.has(e))try{URL.revokeObjectURL(f.get(e))}catch(n){}const o=URL.createObjectURL(t);return f.set(e,o),o},x={init:async()=>{if(!b)try{await h();const e=await p(s,r);e&&"object"===typeof e&&(y=e,await x._pruneExpired()),b=!0}catch(e){b=!0}},has:(e,t)=>{const o=d(e,t),n=y[o];if(!n)return!1;const a=l[e]||l.image;return Date.now()-n.createdAt<=a},get:(e,t)=>{const o=d(e,t),n=y[o];if(!n)return null;const a=l[e]||l.image;return Date.now()-n.createdAt>a?(x.evict(e,t).catch(()=>{}),null):(n.lastAccessed=Date.now(),f.has(o)?f.get(o):null)},getAsync:async(e,t)=>{const o=d(e,t),n=y[o];if(!n)return null;const s=l[e]||l.image;if(Date.now()-n.createdAt>s)return await x.evict(e,t).catch(()=>{}),null;if(n.lastAccessed=Date.now(),f.has(o))return f.get(o);try{const e=await p(a,o);return e?w(o,e):(delete y[o],await x._persistIndex(),null)}catch(r){return null}},download:async function(e,t,o){let{onProgress:n}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};b||await x.init();const s=d(e,t);try{const r=await fetch(o);if(!r.ok)throw new Error("Download failed: ".concat(r.status));let i;const c=r.headers.get("Content-Length");if(n&&c&&r.body){const e=parseInt(c,10),t=r.body.getReader(),o=[];let a=0;for(;;){const{done:s,value:r}=await t.read();if(s)break;o.push(r),a+=r.length,n(a/e)}const s=new Uint8Array(a);let l=0;for(const n of o)s.set(n,l),l+=n.length;i=new Blob([s])}else i=await r.blob();return await m(a,s,i),y[s]={mediaType:e,params:t,size:i.size,createdAt:Date.now(),lastAccessed:Date.now()},await x._persistIndex(),await x._maybeEvict(),w(s,i)}catch(r){try{await g(a,s)}catch(i){}throw r}},storeBlob:async(e,t,o)=>{b||await x.init();const n=d(e,t);try{return await m(a,n,o),y[n]={mediaType:e,params:t,size:o.size,createdAt:Date.now(),lastAccessed:Date.now()},await x._persistIndex(),await x._maybeEvict(),w(n,o)}catch(s){try{await g(a,n)}catch(r){}throw s}},storeBase64:async(e,t,o,n)=>{b||await x.init();const a=atob(o),s=new Uint8Array(a.length);for(let l=0;l<a.length;l++)s[l]=a.charCodeAt(l);const r={".mp3":"audio/mpeg",".wav":"audio/wav",".ogg":"audio/ogg",".mp4":"video/mp4",".webm":"video/webm",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp"},i=r[n]||r[".".concat("tts"===e?"mp3":"bin")]||"application/octet-stream",c=new Blob([s],{type:i});return x.storeBlob(e,t,c)},storeInline:async(e,t,o)=>
1{const n=d(e,t),a="".concat(i).concat(n);try{localStorage.setItem(a,JSON.stringify({data:o,mediaType:e,createdAt:Date.now()}))}catch(s){}},getInline:async(e,t)=>{const o=d(e,t),n="".concat(i).concat(o);try{const t=localStorage.getItem(n);if(!t)return null;const o=JSON.parse(t),s=l[e]||l.image;if(Date.now()-o.createdAt>s){try{localStorage.removeItem(n)}catch(a){}return null}return o.data}catch(a){return null}},evict:async(e,t)=>{const o=d(e,t);if(y[o]){try{await g(a,o)}catch(n){}if(f.has(o)){try{URL.revokeObjectURL(f.get(o))}catch(n){}f.delete(o)}delete y[o],await x._persistIndex()}},getCacheSize:()=>{let e=0;for(const t in y)e+=y[t].size||0;return e},getCacheStats:()=>{const e={totalSize:0,ttsCount:0,musicCount:0,videoCount:0,sfxCount:0,imageCount:0};for(const t in y){const o=y[t];e.totalSize+=o.size||0;const n=o.mediaType;"tts"===n?e.ttsCount++:"music"===n?e.musicCount++:"video"===n?e.videoCount++:"sfx"===n?e.sfxCount++:"image"===n&&e.imageCount++}return e},clearAll:async()=>{try{await(e=a,new Promise(async(t,o)=>{try{const n=(await h()).transaction(e,"readwrite").objectStore(e).clear();n.onsuccess=()=>t(),n.onerror=()=>o(n.error)}catch(n){o(n)}}));for(const[,e]of f)try{URL.revokeObjectURL(e)}catch(t){}f.clear(),y={},await m(s,r,y);const o=[];for(let e=0;e<localStorage.length;e++){const t=localStorage.key(e);t&&t.startsWith(i)&&o.push(t)}o.forEach(e=>{try{localStorage.removeItem(e)}catch(t){}})}catch(t){}var e},clearByType:async e=>{const t=[];for(const n in y)y[n].mediaType===e&&t.push(n);for(const n of t){try{await g(a,n)}catch(o){}if(f.has(n)){try{URL.revokeObjectURL(f.get(n))}catch(o){}f.delete(n)}delete y[n]}await x._persistIndex()},_persistIndex:async()=>{try{await m(s,r,y)}catch(e){}},_pruneExpired:async()=>{const e=Date.now();let t=!1;for(const n in y){const s=y[n],r=l[s.mediaType]||l.image;if(e-s.createdAt>r){try{await g(a,n)}catch(o){}if(f.has(n)){try{URL.revokeObjectURL(f.get(n))}catch(o){}f.delete(n)}delete y[n],t=!0}}t&&await x._persistIndex()},_maybeEvict:async()=>{let e=x.getCacheSize();if(e<=c)return;const t=Object.entries(y).map(e=>{let[t,o]=e;return(0,n.A)({key:t},o)}).sort((e,t)=>(e.lastAccessed||0)-(t.lastAccessed||0));for(const n of t){if(e<=c)break;try{await g(a,n.key)}catch(o){}if(f.has(n.key)){try{URL.revokeObjectURL(f.get(n.key))}catch(o){}f.delete(n.key)}e-=n.size||0,delete y[n.key]}await x._persistIndex()},generateCacheKey:d},k=x},35163(e,t,o){o.d(t,{A:()=>g});let n=null;const a=()=>{if(!n){const e=window.AudioContext||window.webkitAudioContext;n=new e}return"suspended"===n.state&&n.resume().catch(()=>{}),n};let s=!1,r=1;const i={source:null,gainNode:null,volume:.3,isPlaying:!1,isPaused:!1,pausedAt:0,startedAt:0,buffer:null,loop:!0,fadeTimeout:null},c={source:null,gainNode:null,volume:.7,isPlaying:!1,bgmWasPaused:!1,_endResolve:null};let l=0;const d=new Map,u=async e=>{const t=a();if(e instanceof AudioBuffer)return e;if(e instanceof Blob){const o=await e.arrayBuffer();return await t.decodeAudioData(o)}if("string"===typeof e){if(d.has(e))return d.get(e);const o=await fetch(e);if(!o.ok)throw new Error("Failed to fetch audio: ".concat(o.status," ").concat(e));const n=await o.arrayBuffer(),a=await t.decodeAudioData(n);if(d.size>=50){const e=d.keys().next().value;d.delete(e)}return d.set(e,a),a}throw new Error("AudioChannelManager: unsupported audio source type")},h=()=>{if(i.source){try{i.source.onended=null,i.source.stop()}catch(e){}i.source.disconnect(),i.source=null}i.gainNode&&(i.gainNode.disconnect(),i.gainNode=null),i.fadeTimeout&&(clearTimeout(i.fadeTimeout),i.fadeTimeout=null)},p=(e,t)=>{const o=a(),n=o.createBufferSource();n.buffer=e,n.loop=t;const s=o.createGain();return s.gain.value=0,n.connect(s),s.connect(o.destination),{source:n,gainNode:s}},m={playSFX:e=>{s||l>=4||(l++,(async()=>{try{const t=a(),o=await u(e);if(s)return void(l=Math.max(0,l-1));const n=t.createBufferSource();n.buffer=o;const i=t.createGain();i.gain.value=r,n.connect(i),i.connect(t.destination),n.onended=()=>{n.disconnect(),i.disconnect(),l=Math.max(0,l-1)},n.start(0)}catch(t){l=Math.max(0,l-1)}})())},playSFXFromPath:e=>{m.playSFX(e)},startBGM:function(e){let{loop:t=!0,volume:o=.3,fadeInMs:n=1e3}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};m.stopBGM({fadeOutMs:0}),(async()=>{try{const c=a(),l=await u(e);i.buffer=l,i.volume=o,i.loop=t,i.isPaused=!1,i.pausedAt=0;const{source:d,gainNode:h}=p(l,t);i.source=d,i.gainNode=h,i.isPlaying=!0,i.startedAt=c.currentTime;const m=s?0:o*r;!s&&n>0?(h.gain.setValueAtTime(0,c.currentTime),h.gain.linearRampToValueAtTime(m,c.currentTime+n/1e3)):h.gain.setValueAtTime(m,c.currentTime),d.onended=()=>{i.source===d&&(i.isPlaying=!1)},d.start(0)}catch(c){i.isPlaying=!1}})()}
1,stopBGM:function(){let{fadeOutMs:e=500}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(i.fadeTimeout&&(clearTimeout(i.fadeTimeout),i.fadeTimeout=null),!i.source||!i.gainNode)return h(),i.isPlaying=!1,i.isPaused=!1,void(i.buffer=null);if(e>0&&i.isPlaying){const t=a(),o=i.gainNode,n=o.gain.value;o.gain.cancelScheduledValues(t.currentTime),o.gain.setValueAtTime(n,t.currentTime),o.gain.linearRampToValueAtTime(0,t.currentTime+e/1e3),i.fadeTimeout=setTimeout(()=>{h(),i.isPlaying=!1,i.isPaused=!1,i.buffer=null,i.fadeTimeout=null},e+50)}else h(),i.isPlaying=!1,i.isPaused=!1,i.buffer=null},pauseBGM:()=>{if(!i.source||!i.isPlaying||i.isPaused)return;const e=a().currentTime-i.startedAt;i.pausedAt=i.buffer?e%i.buffer.duration:0;try{i.source.onended=null,i.source.stop()}catch(t){}i.source.disconnect(),i.source=null,i.gainNode&&(i.gainNode.disconnect(),i.gainNode=null),i.isPaused=!0},resumeBGM:()=>{if(!i.isPaused||!i.buffer)return;const e=a(),{source:t,gainNode:o}=p(i.buffer,i.loop);i.source=t,i.gainNode=o;const n=s?0:i.volume*r;o.gain.setValueAtTime(n,e.currentTime),t.onended=()=>{i.source===t&&(i.isPlaying=!1)},i.startedAt=e.currentTime-i.pausedAt,t.start(0,i.pausedAt),i.isPaused=!1,i.isPlaying=!0},playTTS:function(e){let{onStart:t,onEnd:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(n=>{if(s)return void n(!1);m.stopTTS();const l=i.isPlaying&&!i.isPaused;l&&m.pauseBGM(),c.bgmWasPaused=l,(async()=>{try{const s=a(),i=await u(e),l=s.createBufferSource();l.buffer=i;const d=s.createGain();d.gain.value=c.volume*r,l.connect(d),d.connect(s.destination),c.source=l,c.gainNode=d,c.isPlaying=!0,t&&t(),l.onended=()=>{l.disconnect(),d.disconnect(),c.source=null,c.gainNode=null,c.isPlaying=!1,c.bgmWasPaused&&(m.resumeBGM(),c.bgmWasPaused=!1),o&&o(),n(!0)},l.start(0)}catch(s){c.isPlaying=!1,c.bgmWasPaused&&(m.resumeBGM(),c.bgmWasPaused=!1),n(!1)}})()})},stopTTS:()=>{(()=>{if(c.source){try{c.source.onended=null,c.source.stop()}catch(e){}c.source.disconnect(),c.source=null}c.gainNode&&(c.gainNode.disconnect(),c.gainNode=null),c.isPlaying=!1})(),c.bgmWasPaused&&(m.resumeBGM(),c.bgmWasPaused=!1)},stopAll:()=>{m.stopBGM({fadeOutMs:0}),m.stopTTS()},setMuted:e=>{s=e,i.gainNode&&(i.gainNode.gain.value=e?0:i.volume*r),c.gainNode&&(c.gainNode.gain.value=e?0:c.volume*r)},isMuted:()=>s,setMasterVolume:e=>{r=Math.max(0,Math.min(1,e)),i.gainNode&&!s&&(i.gainNode.gain.value=i.volume*r),c.gainNode&&!s&&(c.gainNode.gain.value=c.volume*r)},getMasterVolume:()=>r,isPlaying:()=>i.isPlaying||c.isPlaying,isBGMPlaying:()=>i.isPlaying,isTTSPlaying:()=>c.isPlaying,getAudioContext:a,preloadBuffer:e=>u(e)},g=m},63091(e,t,o){o.d(t,{Ay:()=>a,Bu:()=>s});const n=[{id:"eng-spell-animals-01",title:"Animal Spelling Bee",category:"english",subcategory:"spelling",template:"word-build",ageRange:[5,8],difficulty:2,icon:"bee",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["spelling","vocabulary"],tags:["animals","nature"],content:{words:[{word:"tiger",hint:"A big striped cat that lives in the jungle",concept:"spell:tiger",extraLetters:3},{word:"elephant",hint:"The largest land animal with a long trunk",concept:"spell:elephant",extraLetters:3},{word:"giraffe",hint:"The tallest animal with a very long neck",concept:"spell:giraffe",extraLetters:3},{word:"dolphin",hint:"A friendly sea creature that loves to jump",concept:"spell:dolphin",extraLetters:3},{word:"penguin",hint:"A black and white bird that cannot fly but can swim",concept:"spell:penguin",extraLetters:3},{word:"monkey",hint:"A playful animal that swings from trees",concept:"spell:monkey",extraLetters:2},{word:"rabbit",hint:"A furry animal with long ears that hops",concept:"spell:rabbit",extraLetters:2},{word:"parrot",hint:"A colorful bird that can talk like a human",concept:"spell:parrot",extraLetters:2}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-phon-cvc-06",title:"CVC Word Rhymes",category:"english",subcategory:"phonics",template:"match-pairs",ageRange:[4,6],difficulty:1,icon:"music-note",color:"#FF6B6B",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["phonics","rhyming","reading"],tags:["cvc","rhyming","beginner"],content:{pairs:[{left:"cat",right:"hat",concept:"phonics:cvc-cat"},{left:"big",right:"pig",concept:"phonics:cvc-big"},{left:"hot",right:"pot",concept:"phonics:cvc-hot"},{left:"run",right:"sun",concept:"phonics:cvc-run"},{left:"bed",right:"red",concept:"phonics:cvc-bed"},{left:"cup",right:"pup",concept:"phonics:cvc-cup"},{left:"sit",right:"fit",concept:"phonics:cvc-sit"},{left:"log",right:"dog",concept:"phonics:cvc-log"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-vocab-home-11",title:"Home Items Quiz",category:"english",subcategory:"vocabulary",template:"multiple-choice",ageRange:[4,6],difficulty:1,icon:"home",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["vocabulary","comprehension"],tags:["home","everyday","objects"],content:{questions:[{question:"What do you use to sweep the floor?",options:["Broom","Spoon","Pillow","Cup"],correctIndex:0,concept:"vocab:broom",hint:"It has a long handle and bristles at the bottom"},{question:"What do you sleep on at night?",options:["Table","Chair","Bed","Shelf"],correctIndex:2,concept:"vocab:bed",hint:"It is soft and has a pillow and blanket"},{question:"What do you use to eat soup?",options:["Fork","Knife","Plate","Spoon"],correctIndex:3,concept:"vocab:spoon",hint:"It is round and can hold liquid"},{question:"Where do you keep your clothes?",options:["Oven","Wardrobe","Bathtub","Sink"],correctIndex:1,concept:"vocab:wardrobe",hint:"It is a tall piece of furniture with hangers inside"},{question:"What do you use to see yourself?",options:["Window","Mirror","Door","Curtain"],correctIndex:1,concept:"vocab:mirror",hint:"It reflects your image back to you"},{question:"What keeps food cold and fresh?",options:["Stove","Microwave","Refrigerator","Toaster"],correctIndex:2,concept:"vocab:refrigerator",hint:"It is a large box in the kitchen that feels cold inside"},{question:"What do you use to dry yourself after a bath?",options:["Blanket","Towel","Curtain","Rug"],correctIndex:1,concept:"vocab:towel",hint:"It is soft and hangs in the bathroom"},{question:"What do you use to light up a dark room?",options:["Fan","Lamp","Clock","Vase"],correctIndex:1,concept:"vocab:lamp",hint:"It has a bulb inside that glows"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-vocab-nature-12",title:"Nature Words Quiz",category:"english",subcategory:"vocabulary",template:"multiple-choice",ageRange:[4,6],difficulty:1,icon:"tree",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["vocabulary","comprehension","nature"],tags:["nature","environment"],content:{questions:[{question:"What is a very tall plant with a trunk and branches?",options:["Flower","Grass","Tree","Bush"],correctIndex:2,concept:"vocab:tree",hint:"Birds build nests in it"},{question:"What is a large body of flowing water?",options:["Pond","Puddle","Lake","River"],correctIndex:3,concept:"vocab:river",hint:"It flows from mountains to the sea"},{question:"What is a very high landform with a peak?",options:["Hill","Mountain","Valley","Plain"],correctIndex:1,concept:"vocab:mountain",hint:"It can have snow on top and takes a long time to climb"},{question:"What falls from the sky when clouds are heavy?",options:["Snow","Rain","Wind","Sunshine"],correctIndex:1,concept:"vocab:rain",hint:"It is made of water drops"},{question:"What is the star that gives us light during the day?",options:["Moon","Star","Sun","Cloud"],correctIndex:2,concept:"vocab:sun",hint:"It is very bright and warm"},{question:"What is a large area of sand with very little water?",options:["Forest","Desert","Ocean","Jungle"],correctIndex:1,concept:"vocab:desert",hint:"Camels live here and it is very hot and dry"},{question:"What is the large body of salt water on Earth?",options:["Lake","Pond","River","Ocean"],correctIndex:3,concept:"vocab:ocean",hint:"Whales and sharks swim in it"},{question:"What animal builds a web to catch insects?",options:["Ant","Bee","Spider","Butterfly"],correctIndex:2,concept:"vocab:spider",hint:"It has eight legs"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-story-morning-16",title:"Morning Routine",category:"english",subcategory:"sequencing",template:"sequence-order",ageRange:[4,7],difficulty:1,icon:"weather-sunny",color:"#FF6B6B",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["sequencing","comprehension","daily-routines"],tags:["routine","daily-l
1ife","ordering"],content:{sequences:[{items:["Wake up","Brush teeth","Take a bath","Get dressed","Eat breakfast","Pack schoolbag","Put on shoes","Go to school"],concept:"sequence:morning-routine"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-gram-nouns-19",title:"Is It a Noun?",category:"english",subcategory:"grammar",template:"true-false",ageRange:[6,8],difficulty:2,icon:"book-open-variant",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["grammar","nouns","parts-of-speech"],tags:["grammar","nouns"],content:{statements:[{text:'"Dog" is a noun.',answer:!0,concept:"grammar:noun-dog",explanation:"Dog is a noun because it names an animal."},{text:'"Running" is a noun.',answer:!1,concept:"grammar:noun-running",explanation:"Running is a verb because it describes an action."},{text:'"School" is a noun.',answer:!0,concept:"grammar:noun-school",explanation:"School is a noun because it names a place."},{text:'"Beautiful" is a noun.',answer:!1,concept:"grammar:noun-beautiful",explanation:"Beautiful is an adjective because it describes something."},{text:'"Teacher" is a noun.',answer:!0,concept:"grammar:noun-teacher",explanation:"Teacher is a noun because it names a person."},{text:'"Quickly" is a noun.',answer:!1,concept:"grammar:noun-quickly",explanation:"Quickly is an adverb because it describes how something is done."},{text:'"Happiness" is a noun.',answer:!0,concept:"grammar:noun-happiness",explanation:"Happiness is a noun because it names a feeling or idea."},{text:'"Jump" is a noun.',answer:!1,concept:"grammar:noun-jump",explanation:"Jump is a verb because it describes an action."},{text:'"Mountain" is a noun.',answer:!0,concept:"grammar:noun-mountain",explanation:"Mountain is a noun because it names a place or thing."},{text:'"Bright" is a noun.',answer:!1,concept:"grammar:noun-bright",explanation:"Bright is an adjective because it describes something."}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-fill-articles-22",title:"Articles: A, An, The",category:"english",subcategory:"grammar",template:"fill-blank",ageRange:[6,8],difficulty:2,icon:"pencil",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["grammar","articles","sentence-structure"],tags:["grammar","articles"],content:{questions:[{text:"I saw ___ elephant at the zoo.",blank:"an",options:["a","an","the"],concept:"grammar:article-an-elephant",hint:'Use "an" before words that start with a vowel sound'},{text:"___ sun is shining brightly today.",blank:"The",options:["A","An","The"],concept:"grammar:article-the-sun",hint:'Use "the" when talking about something specific everyone knows'},{text:"She ate ___ banana for breakfast.",blank:"a",options:["a","an","the"],concept:"grammar:article-a-banana",hint:'Use "a" before words that start with a consonant sound'},{text:"He is ___ honest boy.",blank:"an",options:["a","an","the"],concept:"grammar:article-an-honest",hint:'The "h" in "honest" is silent, so it starts with a vowel sound'},{text:"I need ___ umbrella because it is raining.",blank:"an",options:["a","an","the"],concept:"grammar:article-an-umbrella",hint:'Use "an" before words that start with a vowel sound'},{text:"There is ___ cat sleeping on the couch.",blank:"a",options:["a","an","the"],concept:"grammar:article-a-cat",hint:'Use "a" when mentioning something for the first time'},{text:"Please close ___ door behind you.",blank:"the",options:["a","an","the"],concept:"grammar:article-the-door",hint:'Use "the" when both people know which door you mean'},{text:"I want to be ___ astronaut when I grow up.",blank:"an",options:["a","an","the"],concept:"grammar:article-an-astronaut",hint:'Use "an" before words that start with a vowel sound'}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-syn-easy-25",title:"Easy Synonyms",category:"english",subcategory:"vocabulary",template:"match-pairs",ageRange:[5,7],difficulty:1,icon:"swap-horizontal",color:"#FF6B6B",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["vocabulary","synonyms"],tags:["synonyms","word-meaning"],content:{pairs:[{left:"happy",right:"glad",concept:"synonym:happy-glad"},{left:"big",right:"large",concept:"synonym:big-large"},{left:"fast",right:"quick",concept:"synonym:fast-quick"},{left:"smart",right:"clever",concept:"synonym:smart-clever"},{left:"small",right:"tiny",concept:"synonym:small-tiny"},{left:"pretty",right:"beautiful",concept:"synonym:pretty-beautiful"},{left:"start",right:"begin",concept:"synonym:start-begin"},{left:"end",right:"finish",concept:"synonym:end-finish"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-rush-sight-28",title:"Sight Word Speed",category:"english",subcategory:"reading",template:"timed-rush",ageRange:[5,7],difficulty:2,icon:"timer",color:"#FF6B6B",estimatedMinutes:3,questionsPerSession:15,learningObjectives:["reading","sight-words","speed"],tags:["sight-words","speed","reading"],content:{timeLimit:45,questions:[{question:'What does "happy" mean?',options:["Feeling good and joyful","Feeling tired","Feeling hungry"],correctIndex:0,concept:"sight:happy"},{question:'What does "above" mean?',options:["Below something","Higher than something","Next to something"],correctIndex:1,concept:"sight:above"},{question:'What does "friend" mean?',options:["Someone you do not know","Someone you like and play with","A type of animal"],correctIndex:1,concept:"sight:friend"},{question:'What does "begin" mean?',options:["To stop","To start","To sleep"],correctIndex:1,concept:"sight:begin"},{question:'What does "carry" mean?',options:["To hold and move something","To throw something","To eat something"],correctIndex:0,concept:"sight:carry"},{question:'What does "different" mean?',options:["The same","Not the same","Very big"],
1correctIndex:1,concept:"sight:different"},{question:'What does "enough" mean?',options:["Too little","As much as needed","Way too much"],correctIndex:1,concept:"sight:enough"},{question:'What does "found" mean?',options:["Lost something","Discovered something","Broke something"],correctIndex:1,concept:"sight:found"},{question:'What does "group" mean?',options:["One person alone","Several things together","A type of food"],correctIndex:1,concept:"sight:group"},{question:'What does "important" mean?',options:["Not needed at all","Matters a lot","Very small"],correctIndex:1,concept:"sight:important"},{question:'What does "kind" mean?',options:["Mean and rude","Nice and helpful","Loud and noisy"],correctIndex:1,concept:"sight:kind"},{question:'What does "listen" mean?',options:["To talk loudly","To pay attention with your ears","To close your eyes"],correctIndex:1,concept:"sight:listen"},{question:'What does "mountain" mean?',options:["A flat field","A deep hole","A very high piece of land"],correctIndex:2,concept:"sight:mountain"},{question:'What does "never" mean?',options:["Always","Sometimes","Not at any time"],correctIndex:2,concept:"sight:never"},{question:'What does "only" mean?',options:["Many of something","Just one and no more","All of them"],correctIndex:1,concept:"sight:only"}]},rewards:{starsPerCorrect:1,bonusThreshold:12,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-story-adventure-30",title:"The Lost Puppy",category:"english",subcategory:"story",template:"story-builder",ageRange:[5,8],difficulty:2,icon:"dog",color:"#FF6B6B",estimatedMinutes:6,questionsPerSession:8,learningObjectives:["reading","comprehension","moral-values","decision-making"],tags:["story","adventure","kindness","responsibility"],content:{story:{start:"park-discovery",scenes:{"park-discovery":{text:"You are walking through the park on a sunny afternoon when you hear a soft whimper coming from behind a bush. You peek and see a small, scared puppy with no collar. It looks lost and hungry. What do you do?",icon:"dog",choices:[{text:"Go closer and try to help the puppy",nextScene:"approach-puppy",isGood:!0,concept:"story:kindness-approach"},{text:"Walk away and ignore it",nextScene:"walk-away",isGood:!1,concept:"story:ignore-need"}]},"approach-puppy":{text:"You kneel down slowly and speak softly. The puppy wags its tiny tail and comes to you. It is shivering and looks thirsty. You notice a water fountain nearby and a snack in your bag. What do you do first?",icon:"hand-heart",choices:[{text:"Give the puppy some water",nextScene:"give-water",isGood:!0,concept:"story:caring-water"},{text:"Share your snack with the puppy",nextScene:"give-food",isGood:!0,concept:"story:caring-food"}]},"walk-away":{text:"You walk away, but you cannot stop thinking about the little puppy all alone. Your heart feels heavy. You decide to go back. When you return, the puppy is still there, looking even more scared. You realize it is always better to help when you can.",icon:"heart-broken",choices:[{text:"Go to the puppy and help it now",nextScene:"approach-puppy",isGood:!0,concept:"story:second-chance-kindness"}]},"give-water":{text:"You cup your hands under the fountain and bring water to the puppy. It drinks happily and licks your fingers. The puppy already trusts you! Now you need to figure out what to do next.",icon:"water",choices:[{text:"Take the puppy to the animal shelter nearby",nextScene:"shelter",isGood:!0,concept:"story:responsibility-shelter"},{text:"Ask people in the park if they know the puppy",nextScene:"ask-around",isGood:!0,concept:"story:responsibility-ask"}]},"give-food":{text:"You break off a piece of your sandwich and offer it gently. The puppy eats eagerly and then nuzzles your hand. It seems a little stronger now. But the puppy still needs a safe home. What should you do?",icon:"food",choices:[{text:"Take the puppy to the animal shelter nearby",nextScene:"shelter",isGood:!0,concept:"story:responsibility-shelter"},{text:"Ask people in the park if they know the puppy",nextScene:"ask-around",isGood:!0,concept:"story:responsibility-ask"}]},"ask-around":{text:'You carry the puppy and ask several people in the park. An elderly woman smiles and says, "I think that puppy belongs to the Johnsons on Maple Street. They have been looking everywhere for it!" What do you do?',icon:"account-question",choices:[{text:"Take the puppy to the Johnsons on Maple Street",nextScene:"find-owner",isGood:!0,concept:"story:honesty-return"},{text:"Take the puppy to the shelter just to be safe",nextScene:"shelter",isGood:!0,concept:"story:caution-shelter"}]},shelter:{text:"You bring the puppy to the Happy Paws Animal Shelter. The kind worker there scans the puppy and finds a microchip! They call the owners right away. The Johnson family arrives in minutes, so happy to see their puppy named Biscuit.",icon:"hospital-building",choices:[{text:"Continue the story",nextScene:"happy-ending",isGood:!0,concept:"story:shelter-reunion"}]},"find-owner":{text:'You walk to Maple Street with the puppy in your arms. When you knock on the Johnsons\' door, a little girl opens it and shouts, "Biscuit! You found Biscuit!" She hugs the puppy tightly. Her parents come out with tears of joy.',icon:"home-heart",choices:[{text:"Continue the story",nextScene:"happy-ending",isGood:!0,concept:"story:direct-reunion"}]},"happy-ending":{text:"The Johnson family is so grateful that they invite you over for cookies and lemonade. Little Biscuit curls up at your feet, happy and safe. You learned that being kind and responsible can make a real difference. The End.",icon:"star",choices:[]}}}},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},...[{id:"eng-timed-spelling-11",title:"Spelling Speed Run",category:"english",subcategory:"spelling",template:"timed-rush",ageRange:[6,9],difficulty:2,icon:"timer",color:"#FF6B6B",estimatedMinutes:3,questionsPerSession:12,learningObjectives:["spelling","speed","vocabulary"],tags:["spelling","speed","timed"],content:{timeLimit:60,questions:[{question:"Which is spelled correctly?",options:["becuz","because","becaus"],correctIndex:1,concept:"spell:because"},{question:"Which is spelled correctly?",options:["freind","frend","friend"],correctIndex:2,concept:"spell:friend"},{question:"Which is spelled correctly?",options:["beautiful","beutiful","beautifull"],correctIndex:0,concept:"spell:beautiful"},{question:"Which is spelled correctly?",options:["togeather","together","togather"],correctIndex:1,concept:"spell:together"},{question:"Which is spelled correctly?",options:["diffrent","diferent","different"],correctIndex:2,concept:"spell:different"},{question:"Which is spelled correctly?",options:["remember","rember","remeber"],correctIndex:0,concept:"spell:remember"},{question:"Which is spelled correctly?",options:["importent","important","importint"],correctIndex:1,concept:"spell:important"},{question:"Which is spelled correctly?",options:["libary","liberry","library"],correctIndex:2,concept:"spell:library"},{question:"Which is spelled correctly?",options:["calendar","calender","calander"],correctIndex:0,concept:"spell:calendar"},{question:"Which is spelled correctly?",options:["suprise","surprise","surprize"],correctIndex:1,concept:"spell:surprise"},{question:"Which is spelled correctly?",options:["definatly","definetly","definitely"],correctIndex:2,concept:"spell:definitely"},{question:"Which is spelled correctly?",options:["necessary","necessery","neccessary"],correctIndex:0,concept:"spell:necessary"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-story-adventure-12",title:"Story Time Adventure",category:"english",subcategory:"story",template:"story-builder",ageRange:[5,8],difficulty:2,icon:"book-open-variant",color:"#FF6B6B",estimatedMinutes:6,questionsPerSession:8,learningObjectives:["reading","comprehension","decision-making","vocabulary"],tags:["story","adventure","forest","friendship"],content:{story:{start:"forest-start",scenes:{"forest-start":{text:"You and your best friend Leo discover a glowing path in the forest behind your school. The trees shimmer with golden leaves and you hear a gentle melody. A small owl sits on a signpost with two arrows.",icon:"tree",choices:[{text:'Follow the path to the left marked "Riddle River"',nextScene:"riddle-river",isGood:!0,concept:"story:curiosity-riddle"},{text:'Follow the path to the right marked "Story Mountain"',nextScene:"story-mountain",isGood:!0,concept:"story:curiosity-mountain"}]},"riddle-river":{text:'You reach a sparkling river where a friendly fox sits on a rock. "To cross my bridge, answer my riddle," the fox says. "I have cities but no houses, forests but no trees, and water but no fish. What am I?"',icon:"bridge",choices:[{text:"A map!",nextScene:"riddle-correct",isGood:!0,concept:"story:riddle-map"},{text:"A painting!",nextScene:"riddle-tryagain",isGood:!1,concept:"story:riddle-wrong"}]},"riddle-tryagain":{text:'The fox shakes his head gently. "Not quite! Think about something that shows places but is flat and made of paper." Leo whispers, "I think I know!"',icon:"emoticon-sad",choices:[{text:'Listen to Leo and say "A map!"',nextScene:"riddle-correct",isGood:!0,concept:"story:teamwork-listen"}]},"riddle-correct":{text:'"Wonderful!" the fox cheers. The bridge appears and you cross safely. On the other side you find a meadow with a giant book lying open. Its pages are blank!',icon:"star",choices:[{text:"Write your own story in the book",nextScene:"write-story",isGood:!0,concept:"story:creativity-write"},{text:"Read the tiny words appearing at the bottom",nextScene:"read-magic",isGood:!0,concept:"story:observation-read"}]},"story-mountain":{text:'You climb a gentle hill and find a circle of talking animals. A deer says, "We are trying to put our story in order, but the pages blew away! Can you help us sort them?"',icon:"nature-people",choices:[{text:"Help the animals sort the story pages",nextScene:"sort-pages",isGood:!0,concept:"story:helpfulness-sort"},{text:"Ask the animals to tell you the story first",nextScene:"listen-story",isGood:!0,concept:"story:listening-skill"}]}
1,"sort-pages":{text:'You and Leo arrange the pages: Beginning, Middle, End. The animals cheer! The deer says, "Every good story has a beginning that introduces characters, a middle with a problem, and an end with a solution!"',icon:"book-open-variant",choices:[{text:"Continue to the celebration",nextScene:"happy-ending",isGood:!0,concept:"story:structure-learned"}]},"listen-story":{text:'The rabbit begins: "Once upon a time, a brave mouse wanted to cross a river." The bear continues: "She built a tiny raft from leaves." The deer finishes: "And she made it safely home!" You learn that stories need a beginning, middle, and end.',icon:"book-open-variant",choices:[{text:"Thank them and continue",nextScene:"happy-ending",isGood:!0,concept:"story:listening-comprehension"}]},"write-story":{text:'You pick up a golden quill and write: "Once upon a time, two friends found a magical forest." As you write, the words come alive! Tiny characters dance across the pages. Leo adds: "And they made friends with every creature they met." The book glows warmly.',icon:"pencil",choices:[{text:"Finish the story with a happy ending",nextScene:"happy-ending",isGood:!0,concept:"story:creative-writing"}]},"read-magic":{text:'Tiny golden words appear: "The best stories are the ones where friends work together." Suddenly, the book fills with pictures of all the adventures you and Leo have had today. You realize reading and sharing stories brings people closer.',icon:"star",choices:[{text:"Share this discovery with Leo",nextScene:"happy-ending",isGood:!0,concept:"story:sharing-knowledge"}]},"happy-ending":{text:'The forest fills with warm golden light. The owl from the signpost flies down and says, "You have learned the magic of stories: reading, writing, listening, and sharing. Every word you learn makes the world brighter!" You and Leo head home, excited to read more books. The End.',icon:"star",choices:[]}}}},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-memory-words-13",title:"Word Memory Match",category:"english",subcategory:"vocabulary",template:"memory-flip",ageRange:[5,8],difficulty:2,icon:"grid",color:"#FF6B6B",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["vocabulary","memory","word-meaning"],tags:["memory","vocabulary","definitions"],content:{pairs:[{id:"pair-1",front:"brave",match:"not afraid",concept:"vocab:brave"},{id:"pair-2",front:"gentle",match:"soft and kind",concept:"vocab:gentle"},{id:"pair-3",front:"ancient",match:"very old",concept:"vocab:ancient"},{id:"pair-4",front:"enormous",match:"very big",concept:"vocab:enormous"},{id:"pair-5",front:"joyful",match:"very happy",concept:"vocab:joyful"},{id:"pair-6",front:"curious",match:"wanting to know",concept:"vocab:curious"},{id:"pair-7",front:"fragile",match:"breaks easily",concept:"vocab:fragile"},{id:"pair-8",front:"swift",match:"very fast",concept:"vocab:swift"}],gridColumns:4},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-drag-parts-14",title:"Parts of Speech",category:"english",subcategory:"grammar",template:"drag-to-zone",ageRange:[6,9],difficulty:2,icon:"sort",color:"#FF6B6B",estimatedMinutes:5,questionsPerSession:12,learningObjectives:["grammar","parts-of-speech","classification"],tags:["grammar","nouns","verbs","adjectives"],content:{zones:[{id:"noun",label:"Nouns",color:"#3498DB"},{id:"verb",label:"Verbs",color:"#E74C3C"},{id:"adjective",label:"Adjectives",color:"#2ECC71"}],items:[{id:"cat",label:"cat",zone:"noun",concept:"grammar:noun-cat"},{id:"run",label:"run",zone:"verb",concept:"grammar:verb-run"},{id:"tall",label:"tall",zone:"adjective",concept:"grammar:adj-tall"},{id:"teacher",label:"teacher",zone:"noun",concept:"grammar:noun-teacher"},{id:"jump",label:"jump",zone:"verb",concept:"grammar:verb-jump"},{id:"soft",label:"soft",zone:"adjective",concept:"grammar:adj-soft"},{id:"garden",label:"garden",zone:"noun",concept:"grammar:noun-garden"},{id:"write",label:"write",zone:"verb",concept:"grammar:verb-write"},{id:"bright",label:"bright",zone:"adjective",concept:"grammar:adj-bright"}
1,{id:"mountain",label:"mountain",zone:"noun",concept:"grammar:noun-mountain"},{id:"swim",label:"swim",zone:"verb",concept:"grammar:verb-swim"},{id:"heavy",label:"heavy",zone:"adjective",concept:"grammar:adj-heavy"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-spot-errors-15",title:"Spot the Grammar Error",category:"english",subcategory:"grammar",template:"spot-difference",ageRange:[6,9],difficulty:2,icon:"magnify",color:"#FF6B6B",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["grammar","proofreading","error-detection"],tags:["grammar","errors","proofreading"],content:{rounds:[{title:'"She dont like ice cream."',differences:[{x:20,y:50,label:'"dont" should be "doesn\'t"'}],concept:"grammar:subject-verb-agreement"},{title:'"The dogs is playing outside."',differences:[{x:35,y:50,label:'"is" should be "are" (plural subject)'}],concept:"grammar:plural-verb"},{title:'"Him went to the store."',differences:[{x:10,y:50,label:'"Him" should be "He" (subject pronoun)'}],concept:"grammar:subject-pronoun"},{title:'"I eated all my vegetables."',differences:[{x:25,y:50,label:'"eated" should be "ate" (irregular past tense)'}],concept:"grammar:irregular-past"},{title:'"We was happy to see you."',differences:[{x:22,y:50,label:'"was" should be "were" (we were)'}],concept:"grammar:were-was"},{title:'"Her and me went to school."',differences:[{x:15,y:50,label:'"Her and me" should be "She and I"'}],concept:"grammar:pronoun-case"},{title:'"The childs are singing."',differences:[{x:20,y:50,label:'"childs" should be "children" (irregular plural)'}],concept:"grammar:irregular-plural"},{title:'"I have ran five laps today."',differences:[{x:30,y:50,label:'"have ran" should be "have run"'}],concept:"grammar:past-participle"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-sequence-story-16",title:"Story Sequencing",category:"english",subcategory:"comprehension",template:"sequence-order",ageRange:[5,8],difficulty:2,icon:"format-list-numbered",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["sequencing","comprehension","story-structure"],tags:["story","ordering","comprehension"],content:{sequences:[{items:["The farmer planted seeds in the soil.","He watered the seeds every day.","Small green sprouts appeared.","The plants grew taller and taller.","Bright flowers bloomed in the garden.","Bees and butterflies visited the flowers.","The farmer picked the ripe vegetables.","He shared the harvest with his neighbors."],concept:"sequence:farmer-story"},{items:["Maria found a lost kitten in the rain.","She wrapped it in a warm towel.","She gave it milk and food.",'She made "Found Kitten" posters.',"She hung the posters around the neighborhood.","A family called saying it was their kitten.","Maria returned the kitten to its family.","The family thanked Maria for her kindness."],concept:"sequence:kitten-story"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-counting-syllables-17",title:"Syllable Counting",category:"english",subcategory:"phonics",template:"counting",ageRange:[5,8],difficulty:2,icon:"music-note",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["phonics","syllables","word-structure"],tags:["phonics","syllables","counting"],content:{rounds:[{count:1,icon:"dog",color:"#8B4513",concept:"syllable:dog",label:"dog (1 clap)"},{count:2,icon:"apple",color:"#FF6347",concept:"syllable:apple",label:"ap-ple (2 claps)"},{count:3,icon:"butterfly",color:"#FF69B4",concept:"syllable:butterfly",label:"but-ter-fly (3 claps)"},{count:4,icon:"caterpillar",color:"#2ECC71",concept:"syllable:caterpillar",label:"cat-er-pil-lar (4 claps)"},{count:2,icon:"flower",color:"#FF8C00",concept:"syllable:flower",label:"flow-er (2 claps)"},{count:3,icon:"elephant",color:"#9370DB",concept:"syllable:elephant",label:"el-e-phant (3 claps)"},{count:1,icon:"tree",color:"#228B22",concept:"syllable:tree",label:"tree (1 clap)"},{count:4,icon:"alligator",color:"#2E8B57",concept:"syllable:alligator",label:"al-li-ga-tor (4 claps)"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-synonym-match-18",title:"Synonym Pairs",category:"english",subcategory:"vocabulary",template:"match-pairs",ageRange:[6,9],difficulty:2,icon:"swap-horizontal",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["vocabulary","synonyms","word-relationships"],tags:["synonyms","vocabulary","advanced"],content:{pairs:[{left:"angry",right:"furious",concept:"synonym:angry-furious"},{left:"brave",right:"courageous",concept:"synonym:brave-courageous"},{left:"calm",right:"peaceful",concept:"synonym:calm-peaceful"},{left:"difficult",right:"challenging",concept:"synonym:difficult-challenging"},{left:"enormous",right:"gigantic",concept:"synonym:enormous-gigantic"},{left:"funny",right:"hilarious",concept:"synonym:funny-hilarious"},{left:"gentle",right:"tender",concept:"synonym:gentle-tender"},{left:"hurry",right:"rush",concept:"synonym:hurry-rush"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-word-scramble-19",title:"Word Scramble Challenge",category:"english",subcategory:"spelling",template:"word-build",ageRange:[6,9],difficulty:2,icon:"puzzle",color:"#FF6B6B",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["spelling","vocabulary","word-recognition"],tags:["spelling","scramble","vocabulary"],content:{words:[{word:"planet",hint:"Earth is one of these in our solar system",concept:"spell:planet",extraLetters:2},{word:"garden",hint:"A place where flowers and vegetables grow",concept:"spell:garden",extraLetters:2},{word:"bridge",hint:"You cross this to get over a river",concept:"spell:bridge",extraLetters:2},{word:"castle",hint:"A king or queen lives in this big building",concept:"spell:castle",extraLetters:2},{word:"island",hint:"Land surrounded by water on all sides",concept:"spell:island",extraLetters:3},{word:"forest",hint:"A large area filled with many trees",concept:"spell:forest",extraLetters:2},{word:"blanket",hint:"You put this over you to stay warm in bed",concept:"spell:blanket",extraLetters:3},{word:"trumpet",hint:"A shiny brass musical instrument you blow",concept:"spell:trumpet",extraLetters:3},{word:"kitchen",hint:"The room in your house where food is cooked",concept:"spell:kitchen",extraLetters:3},{word:"rainbow",hint:"A colorful arc that appears after rain",concept:"spell:rainbow",extraLetters:3}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-vocab-quiz-20",title:"Vocabulary Quiz Master",category:"english",subcategory:"vocabulary",template:"multiple-choice",ageRange:[7,10],difficulty:3,icon:"school",color:"#FF6B6B",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["vocabulary","comprehension","context-clues"],tags:["vocabulary","advanced","quiz"],content:{questions:[{question:'What does "brilliant" mean?',options:["Very dark","Very bright or clever","Very slow","Very quiet"],correctIndex:1,concept:"vocab:brilliant",hint:"Think of a shining star or a smart idea"},{question:'What does "cautious" mean?',options:["Very fast","Very careful","Very loud","Very happy"],correctIndex:1,concept:"vocab:cautious",hint:"Someone who looks both ways before crossing"},{question:'What does "generous" mean?',options:["Mean and selfish","Willing to give and share","Very tired","Very angry"],correctIndex:1,concept:"vocab:generous",hint:"Think of someone who shares their lunch"},{question:'What does "enormous" mean?',options:["Very tiny","Very slow","Very large","Very old"],correctIndex:2,concept:"vocab:enormous",hint:"Think of the size of an elephant"},{question:'What does "peculiar" mean?',options:["Normal","Strange or unusual","Beautiful","Dangerous"],correctIndex:1,concept:"vocab:peculiar",hint:'Something that makes you say "that is odd!"'},{question:'What does "exhausted" mean?',options:["Very excited","Very scared","Very tired","Very hungry"],correctIndex:2,concept:"vocab:exhausted",hint:"How you feel after running a long race"},{question:'What does "magnificent" mean?',options:["Very ugly","Very small","Very ordinary","Very impressive and beautiful"],correctIndex:3,concept:"vocab:magnificent",hint:"Think of a grand palace or a stunning sunset"},{question:'What does "anxious" mean?',options:["Worried or nervous","Very happy","Very bored","Very sleepy"],correctIndex:0,concept:"vocab:anxious",hint:"How you might feel before a big test"},{question:'What does "humble" mean?',options:["Rude and proud","Modest and not boastful","Loud and silly","Angry and mean"],correctIndex:1,concept:"vocab:humble",hint:"Someone who does not brag about themselves"},{question:'What does "determined" mean?',options:["Lazy and tired","Having a firm purpose","Very confused","Very silly"],correctIndex:1,concept:"vocab:determined",hint:"Someone who never gives up"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-antonym-match-21",title:"Antonym Match-Up",category:"english",subcategory:"vocabulary",template:"match-pairs",ageRange:[5,8],difficulty:2,icon:"swap-horizontal",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["vocabulary","antonyms","word-relationships"],tags:["antonyms","opposites","vocabulary"],content:{pairs:[{left:"hot",right:"cold",concept:"antonym:hot-cold"},{left:"light",right:"dark",concept:"antonym:light-dark"},{left:"early",right:"late",concept:"antonym:early-late"},{left:"open",right:"close",concept:"antonym:open-close"},{left:"soft",right:"hard",concept:"antonym:soft-hard"},{left:"full",right:"empty",concept:"antonym:full-empty"},{left:"above",right:"below",concept:"antonym:above-below"},{left:"noisy",right:"quiet",concept:"antonym:noisy-quiet"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-compound-words-22",title:"Compound Words",category:"english",subcategory:"vocabulary",template:"word-build",ageRange:[6,9],difficulty:2,icon:"link",color:"#FF6B6B",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["vocabulary","compound-words","word-stru
1cture"],tags:["compound","words","vocabulary"],content:{words:[{word:"sunflower",hint:"A bright yellow flower that faces the sun",concept:"compound:sunflower",extraLetters:2},{word:"rainbow",hint:"Colorful arc in the sky after it rains",concept:"compound:rainbow",extraLetters:2},{word:"butterfly",hint:"A beautiful insect with colorful wings",concept:"compound:butterfly",extraLetters:3},{word:"snowman",hint:"A figure made of snow in winter",concept:"compound:snowman",extraLetters:2},{word:"toothbrush",hint:"You use this to clean your teeth",concept:"compound:toothbrush",extraLetters:3},{word:"starfish",hint:"A sea creature shaped like a star",concept:"compound:starfish",extraLetters:2},{word:"football",hint:"A ball you kick in a popular sport",concept:"compound:football",extraLetters:2},{word:"popcorn",hint:"A snack you eat at the movies",concept:"compound:popcorn",extraLetters:2},{word:"bookshelf",hint:"Furniture where you store books",concept:"compound:bookshelf",extraLetters:3},{word:"waterfall",hint:"Water flowing down from a high place",concept:"compound:waterfall",extraLetters:3}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-verb-tense-23",title:"Verb Tense Quiz",category:"english",subcategory:"grammar",template:"multiple-choice",ageRange:[6,9],difficulty:2,icon:"clock-outline",color:"#FF6B6B",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["grammar","verb-tenses","sentence-structure"],tags:["grammar","verbs","tenses"],content:{questions:[{question:"Yesterday, I ___ to the park. (go)",options:["go","went","going","goes"],correctIndex:1,concept:"grammar:past-go",hint:"This happened yesterday, so use the past tense"},{question:"She ___ a book right now. (read)",options:["read","reads","is reading","readed"],correctIndex:2,concept:"grammar:present-continuous-read",hint:"She is doing it right now"},{question:"Tomorrow we ___ to the beach. (go)",options:["went","go","will go","going"],correctIndex:2,concept:"grammar:future-go",hint:"This will happen tomorrow"},{question:"The cat ___ on the mat every day. (sit)",options:["sat","sits","sitting","will sit"],correctIndex:1,concept:"grammar:present-sit",hint:"It happens every day, so use simple present"},{question:"Last week, they ___ a sandcastle. (build)",options:["build","builds","building","built"],correctIndex:3,concept:"grammar:past-build",hint:"This happened last week"},{question:"I ___ my homework already. (finish)",options:["finish","finished","will finish","finishing"],correctIndex:1,concept:"grammar:past-finish",hint:'"Already" means it is done'},{question:"He ___ soccer every Saturday. (play)",options:["played","plays","playing","will play"],correctIndex:1,concept:"grammar:present-play",hint:"Every Saturday means it is a regular habit"},{question:"Next year I ___ how to swim. (learn)",options:["learned","learn","learning","will learn"],correctIndex:3,concept:"grammar:future-learn",hint:"Next year is in the future"},{question:"The birds ___ south last autumn. (fly)",options:["fly","flies","flew","will fly"],correctIndex:2,concept:"grammar:past-fly",hint:"Last autumn is in the past"},{question:"Look! The baby ___ ! (walk)",options:["walked","walks","is walking","will walk"],correctIndex:2,concept:"grammar:present-continuous-walk",hint:'"Look!" means it is happening right now'}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-prepositions-24",title:"Prepositions Fill-In",category:"english",subcategory:"grammar",template:"fill-blank",ageRange:[5,8],difficulty:2,icon:"pencil",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["grammar","prepositions","sentence-structure"],tags:["grammar","prepositions"],content:{questions:[{text:"The cat is sitting ___ the table.",blank:"on",options:["on","at","to"],concept:"grammar:prep-on",hint:"The cat is resting on top of the table"},{text:"The bird flew ___ the window.",blank:"through",options:["under","through","on"],concept:"grammar:prep-through",hint:"The bird went from one side to the other"},{text:"She is hiding ___ the bed.",blank:"under",options:["over","on","under"],concept:"grammar:prep-under",hint:"She is below the bed"},{text:"The ball rolled ___ the hill.",blank:"down",options:["up","down","at"],concept:"grammar:prep-down",hint:"The ball went from the top toward the bottom"},{text:"He put the book ___ the shelf.",blank:"on",options:["in","on","at"],concept:"grammar:prep-on-shelf",hint:"The book is resting on top of the shelf"},{text:"The fish swam ___ the pond.",blank:"in",options:["on","at","in"],concept:"grammar:prep-in",hint:"The fish is inside the water of the pond"},{text:"We walked ___ the bridge.",blank:"across",options:["under","across","into"],concept:"grammar:prep-across",hint:"We went from one side of the bridge to the other"},{text:"The picture hangs ___ the wall.",blank:"on",options:["on","under","to"],concept:"grammar:prep-on-wall",hint:"The picture is attached to the wall surface"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-sentence-fragment-25",title:"Sentence or Fragment?",category:"english",subcategory:"grammar",template:"true-false",ageRange:[6,9],difficulty:2,icon:"format-text",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["grammar","sentence-structure","completeness"],tags:["grammar","sentences","fragments"],content:{statements:[{text:'"The cat sat on the mat." is a complete sentence.',answer:!0,concept:"grammar:complete-sentence-1",explanation:"It has a subject (the cat) and a verb (sat) and expresses a complete thought."},{text:'"Running very fast." is a complete sentence.',answer:!1,concept:"grammar:fragment-1",explanation:"This is a fragment. It has no subject. Who is running?"},{text:'"We love to read books." is a complete sentence.',answer:!0,concept:"grammar:complete-sentence-2",explanation:"It has a subject (we) and a verb (love) and makes sense on its own."},{text:'"Because it was raining." is a complete sentence.',answer:!1,concept:"grammar:fragment-2",explanation:'This is a fragment. It starts with "because" and does not finish the thought.'},{text:'"The big red." is a complete sentence.',answer:!1,concept:"grammar:fragment-3",explanation:'This is a fragment. "The big red" what? It is missing the main idea.'},{text:'"My dog barks at squirrels." is a complete sentence.',answer:!0,concept:"grammar:complete-sentence-3",explanation:"It has a subject (my dog), a verb (barks), and a complete thought."},{text:'"Jumped over the fence." is a complete sentence.',answer:!1,concept:"grammar:fragment-4",explanation:"This is a fragment. Who jumped over the fence? The subject is missing."},{text:'"The sun shines brightly." is a complete sentence.',answer:!0,concept:"grammar:complete-sentence-4",explanation:"It has a subject (the sun), a verb (shines), and makes complete sense."},{text:'"Under the big tree in the yard." is a complete sentence.',answer:!1,concept:"grammar:fragment-5",explanation:"This is a fragment. It tells us a location but no action happens."},{text:'"She helped her friend carry the bags." is a complete sentence.',answer:!0,concept:"grammar:complete-sentence-5",explanation:"It has a subject (she), a verb (helped), and a complete idea."}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-plurals-build-26",title:"Plural Nouns Builder",category:"english",subcategory:"grammar",template:"word-build",ageRange:[5,8],difficulty:2,icon:"account-group",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["grammar","plurals","spelling"],tags:["grammar","plurals","spelling"],content:{words:[{word:"cats",hint:"More than one cat",concept:"plural:cats",extraLetters:2},{word:"boxes",hint:"More than one box (add -es)",concept:"plural:boxes",extraLetters:2},{word:"babies",hint:"More than one baby (y becomes ies)",concept:"plural:babies",extraLetters:3},{word:"leaves",hint:"More than one leaf (f becomes ves)",concept:"plural:leaves",extraLetters:3},{word:"children",hint:"More than one child (irregular)",concept:"plural:children",extraLetters:3},{word:"mice",hint:"More than one mouse (irregular)",concept:"plural:mice",extraLetters:2},{word:"feet",hint:"More than one foot (irregular)",concept:"plural:feet",extraLetters:2},{word:"teeth",hint:"More than one tooth (irregular)",concept:"plural:teeth",extraLetters:2},{word:"foxes",hint:"More than one fox (add -es)",concept:"plural:foxes",extraLetters:2},{word:"stories",hint:"More than one story (y becomes ies)",concept:"plural:stories",extraLetters:3}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-context-clues-27",title:"Context Clues Detective",category:"english",subcategory:"reading",template:"multiple-choice",ageRange:[7,10],difficulty:3,icon:"magnify",color:"#FF6B6B",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["reading","comprehension","context-clues","vocabulary"],tags:["reading","context-clues","vocabulary"],content:{questions:[{question:'"The desert was arid and dry." What does "arid" mean?',options:["Wet","Very dry","Cold","Green"],correctIndex:1,concept:"context:arid",hint:'The sentence says "arid AND dry" - they mean similar things'},{question:'"She was elated when she won the prize." What does "elated" mean?',options:["Sad","Angry","Very happy","Confused"],correctIndex:2,concept:"context:elated",hint:"Winning a prize would make you feel..."},{question:'"The sloth moved at a sluggish pace." What does "sluggish" mean?',options:["Very fast","Very slow","Very loud","Very quiet"],correctIndex:1,concept:"context:sluggish",hint:"Sloths are known for being very slow"},{question:'"The fierce lion roared loudly." What does "fierce" mean?',options:["Gentle","Wild and powerful","Tiny","Funny"],correctIndex:1,concept:"context:fierce",hint:"A roaring lion is strong and powerful"},{question:'"The transparent glass let all the light through." What does "transparent" mean?',options:["Dar
1k","Heavy","You can see through it","Colorful"],correctIndex:2,concept:"context:transparent",hint:"Light passes through it completely"},{question:'"She was famished after skipping lunch." What does "famished" mean?',options:["Very full","Very tired","Very hungry","Very happy"],correctIndex:2,concept:"context:famished",hint:"Skipping a meal would make you feel..."},{question:'"The fragrance of the roses filled the room." What does "fragrance" mean?',options:["Color","Sound","Smell","Size"],correctIndex:2,concept:"context:fragrance",hint:"Roses are known for how they smell"},{question:'"The frigid wind made us shiver." What does "frigid" mean?',options:["Warm","Very cold","Gentle","Strong"],correctIndex:1,concept:"context:frigid",hint:"If you shiver, the air must be..."}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-letter-sounds-28",title:"Letter Sound Sorting",category:"english",subcategory:"phonics",template:"drag-to-zone",ageRange:[4,6],difficulty:1,icon:"alphabetical-variant",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:12,learningObjectives:["phonics","initial-sounds","letter-recognition"],tags:["phonics","letters","sounds"],content:{zones:[{id:"b-sound",label:"Starts with B",color:"#3498DB"},{id:"s-sound",label:"Starts with S",color:"#E74C3C"},{id:"m-sound",label:"Starts with M",color:"#2ECC71"}],items:[{id:"ball",label:"Ball",zone:"b-sound",concept:"phonics:b-ball"},{id:"sun",label:"Sun",zone:"s-sound",concept:"phonics:s-sun"},{id:"moon",label:"Moon",zone:"m-sound",concept:"phonics:m-moon"},{id:"banana",label:"Banana",zone:"b-sound",concept:"phonics:b-banana"},{id:"star",label:"Star",zone:"s-sound",concept:"phonics:s-star"},{id:"milk",label:"Milk",zone:"m-sound",concept:"phonics:m-milk"},{id:"book",label:"Book",zone:"b-sound",concept:"phonics:b-book"},{id:"snake",label:"Snake",zone:"s-sound",concept:"phonics:s-snake"},{id:"mouse",label:"Mouse",zone:"m-sound",concept:"phonics:m-mouse"},{id:"bear",label:"Bear",zone:"b-sound",concept:"phonics:b-bear"},{id:"sock",label:"Sock",zone:"s-sound",concept:"phonics:s-sock"},{id:"map",label:"Map",zone:"m-sound",concept:"phonics:m-map"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-bookstore-sim-29",title:"Word Bookstore",category:"english",subcategory:"vocabulary",template:"simulation",ageRange:[6,9],difficulty:2,icon:"book-open-variant",color:"#FF6B6B",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["vocabulary","reading","decision-making"],tags:["vocabulary","simulation","reading"],content:{scenario:{title:"Build Your Library",concept:"vocab:book-categories",startingMoney:20,items:[{name:"Dictionary (learn new words)",price:3,icon:"book-open-variant",isGood:!0,feedback:"A dictionary helps you learn the meaning of new words!"},{name:"Comic book with no words",price:2,icon:"book-open-variant",isGood:!1,feedback:"Comics are fun but books with words help you learn more vocabulary."},{name:"Story book with chapters",price:4,icon:"book-open-variant",isGood:!0,feedback:"Chapter books help you practice reading longer stories!"},{name:"Poetry collection",price:3,icon:"book-open-variant",isGood:!0,feedback:"Poetry teaches you about rhyming and beautiful language!"},{name:"Blank notebook for writing stories",price:2,icon:"pencil",isGood:!0,feedback:"Writing your own stories is a great way to practice language!"},{name:"Science encyclopedia",price:5,icon:"book-open-variant",isGood:!0,feedback:"Encyclopedias teach you facts and new vocabulary words!"},{name:"Random stickers",price:3,icon:"star",isGood:!1,feedback:"Stickers are fun but do not help you learn new words."},{name:"Fairy tale collection",price:4,icon:"book-open-variant",isGood:!0,feedback:"Fairy tales are full of wonderful words and life lessons!"}],goal:"Spend your coins wisely to build a library that helps you learn the most words!"}},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"eng-punctuation-30",title:"Punctuation Power",category:"english",subcategory:"grammar",template:"fill-blank",ageRange:[6,9],difficulty:2,icon:"format-text",color:"#FF6B6B",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["grammar","punctuation","sentence-structure"],tags:["grammar","punctuation"],content:{questions:[{text:"What is your name___",blank:"?",options:[".","!","?"],concept:"grammar:question-mark",hint:"This is asking something"},{text:"The dog is sleeping___",blank:".",options:[".","!","?"],concept:"grammar:period",hint:"This is a simple statement"},{text:"Watch out for the car___",blank:"!",options:[".","!","?"],concept:"grammar:exclamation",hint:"This is an urgent warning"},{text:"Where is the library___",blank:"?",options:[".","!","?"],concept:"grammar:question-mark-2",hint:"This is asking for a location"},{text:"I love ice cream___",blank:".",options:[".","!","?"],concept:"grammar:period-2",hint:"This is a calm statement about something you like"},{text:"Hooray, we won the game___",blank:"!",options:[".","!","?"],concept:"grammar:exclamation-2",hint:'"Hooray" shows strong excitement'},{text:"Can you help me___",blank:"?",options:[".","!","?"],concept:"grammar:question-mark-3",hint:"You are asking someone to do something"},{text:"The fire is spreading___",blank:"!",options:[".","!","?"],concept:"grammar:exclamation-3",hint:"This is an emergency situation"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}}],{id:"math-add-10-31",title:"Addition Within 10",category:"math",subcategory:"addition",template:"multiple-choice",ageRange:[4,6],difficulty:1,icon:"plus-circle",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["addition","number-sense"],tags:["numbers","basic-math"],content:{questions:[{question:"3 + 4 = ?",options:["5","6","7","8"],correctIndex:2,concept:"add:3+4",hint:"Start at 3 and count up 4 more"},{question:"2 + 5 = ?",options:["6","7","8","9"],correctIndex:1,concept:"add:2+5",hint:"Start at 2 and count up 5 more"},{question:"1 + 6 = ?",options:["5","6","7","8"],correctIndex:2,concept:"add:1+6",hint:"Start at 1 and count up 6 more"},{question:"4 + 3 = ?",options:["5","6","7","8"],correctIndex:2,concept:"add:4+3",hint:"Start at 4 and count up 3 more"},{question:"5 + 2 = ?",options:["6","7","8","9"],correctIndex:1,concept:"add:5+2",hint:"Start at 5 and count up 2 more"},{question:"6 + 3 = ?",options:["7","8","9","10"],correctIndex:2,concept:"add:6+3",hint:"Start at 6 and count up 3 more"},{question:"2 + 2 = ?",options:["3","4","5","6"],correctIndex:1,concept:"add:2+2",hint:"Two plus two makes a pair of pairs"},{question:"1 + 8 = ?",options:["7","8","9","10"],correctIndex:2,concept:"add:1+8",hint:"Start at 1 and count up 8 more"},{question:"5 + 5 = ?",options:["8","9","10","11"],correctIndex:2,concept:"add:5+5",hint:"Two hands with 5 fingers each"},{question:"3 + 6 = ?",options:["7","8","9","10"],correctIndex:2,concept:"add:3+6",hint:"Start at 3 and count up 6 more"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-sub-10-34",title:"Subtraction Within 10",category:"math",subcategory:"subtraction",template:"multiple-choice",ageRange:[4,6],difficulty:1,icon:"minus-circle",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["subtraction","number-sense"],tags:["numbers","basic-math"],content:{questions:[{question:"7 - 3 = ?",options:["2","3","4","5"],correctIndex:2,concept:"sub:7-3",hint:"Start at 7 and count back 3"},{question:"9 - 5 = ?",options:["2","3","4","5"],correctIndex:2,concept:"sub:9-5",hint:"Start at 9 and count back 5"},{question:"6 - 2 = ?",options:["2","3","4","5"],correctIndex:2,concept:"sub:6-2",hint:"Start at 6 and count back 2"},{question:"8 - 4 = ?",options:["2","3","4","5"],correctIndex:2,concept:"sub:8-4",hint:"Start at 8 and count back 4"},{question:"10 - 7 = ?",options:["1","2","3","4"],correctIndex:2,concept:"sub:10-7",hint:"Start at 10 and count back 7"},{question:"5 - 1 = ?",options:["2","3","4","5"],correctIndex:2,concept:"sub:5-1",hint:"One less than 5"},{question:"8 - 6 = ?",options:["1","2","3","4"],correctIndex:1,concept:"sub:8-6",hint:"Start at 8 and count back 6"},{question:"10 - 4 = ?",options:["4","5","6","7"],correctIndex:2,concept:"sub:10-4",hint:"Start at 10 and count back 4"},{question:"7 - 5 = ?",options:["1","2","3","4"],correctIndex:1,concept:"sub:7-5",hint:"Start at 7 and count back 5"},{question:"9 - 3 = ?",options:["4","5","6","7"],correctIndex:2,concept:"sub:9-3",hint:"Start at 9 and count back 3"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-mul-easy-37",title:"Times Tables 2-5",category:"math",subcategory:"multiplication",template:"timed-rush",ageRange:[6,8],difficulty:1,icon:"close-circle",color:"#4ECDC4",estimatedMinutes:3,questionsPerSession:10,learningObjectives:["multiplication","times-tables"],tags:["numbers","times-tables"],content:{timeLimit:60,questions:[{question:"2 x 3 = ?",options:["4","5","6","7"],correctIndex:2,concept:"mul:2x3"},{question:"3 x 4 = ?",options:["10","11","12","13"],correctIndex:2,concept:"mul:3x4"},{question:"5 x 2 = ?",options:["8","9","10","11"],correctIndex:2,concept:"mul:5x2"},{question:"4 x 5 = ?",options:["18","19","20","21"],correctIndex:2,concept:"mul:4x5"},{question:"3 x 3 = ?",options:["6","7","8","9"],correctIndex:3,concept:"mul:3x3"},{question:"2 x 7 = ?",options:["12","13","14","15"],correctIndex:2,concept:"mul:2x7"},{question:"5 x 5 = ?",options:["20","23","25","27"],correctIndex:2,concept:"mul:5x5"},{question:"4 x 3 = ?",options:["10","11","12","13"],correctIndex:2,concept:"mul:4x3"},{question:"2 x 9 = ?",options:["16","17","18","19"],correctIndex:2,concept:"mul:2x9"},{question:"5 x 4 = ?",options:["18","19","20","21"],correctIndex:2,concept:"mul:5x4"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-div-basic-40",title:"Basic Division",category:"math",subcategory:"division",template:"fill-blank",ageRange:[7,9],difficulty:2,icon:"division",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["division","number-sense"],tags:["numbers","division"],content:{questions:[{text:"12 \xf7 3 = ___",blank:"4",options:["3","4","5","6"],concept:"div:12/3",hint:"How many groups of 3 make 12?"},{text:"15 \xf7 5 = ___",blank:"3",options:["2","3","4","5"],concept:"div:15/5",hint:"How many groups of 5 make 15?"},{text:"20 \xf7 4 = ___",blank:"5",options:["4","5","6","7"],concept:"div:20/4",hint:"How many groups of 4 make 20?"},{text:"18 \xf7 6 = ___",blank:"3",options:["2","3","4","5"],concept:"div:18/6",hint:"How many groups of 6 make 18?"},{text:"24 \xf7 8 = ___",blank:"3",options:["2","3","4","5"],concept:"div:24/8",hint:"How many groups of 8 make 24?"},{text:"16 \xf7 4 = ___",blank:"4",options:["3","4","5","6"],concept:"div:16/4",hint:"How many groups of 4 make 16?"},{text:"21 \xf7 7 = ___",blank:"3",options:["2","3","4","5"],concept:"div:21/7",hint:"How many groups of 7 make 21?"},{text:"30 \xf7 5 = ___",blank:"6",options:["5","6","7","8"],concept:"div:30/5",hint:"How many groups of 5 make 30?"},{text:"36 \xf7 9 = ___",blank:"4",options:["3","4","5","6"],concept:"div:36/9",hint:"How many groups of 9 make 36?"},{text:"28 \xf7 7 = ___",blank:"4",options:["3","4","5","6"],concept:"div:28/7",hint:"How many groups of 7 make 28?"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-count-10-42",title:"Count to 10",category:"math",subcategory:"counting",template:"counting",ageRange:[3,5],difficulty:1,icon:"numeric",color:"#4ECDC4",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["counting","number-recognition"],tags:["numbers","counting","beginner"],content:{rounds:[{count:3,icon:"star",color:"#FFD700",concept:"count:objects-3",label:"stars"},{count:5,icon:"apple",color:"#FF6347",concept:"count:objects-5",label:"apples"},{count:4,icon:"heart",color:"#FF69B4",concept:"count:objects-4",label:"hearts"},{count:7,icon:"flower",color:"#FF8C00",concept:"count:objects-7",label:"flowers"},{count:6,icon:"fish",color:"#4682B4",concept:"count:objects-6",label:"fish"},{count:8,icon:"cat",color:"#8B4513",concept:"count:objects-8",label:"cats"},{count:9,icon:"bird",color:"#20B2AA",concept:"count:objects-9",label:"birds"}
1,{count:10,icon:"circle",color:"#9370DB",concept:"count:objects-10",label:"circles"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-shape-2d-45",title:"2D Shapes Basic",category:"math",subcategory:"shapes",template:"multiple-choice",ageRange:[4,6],difficulty:1,icon:"shape",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["shapes","geometry-basics"],tags:["shapes","geometry"],content:{questions:[{question:"How many sides does a triangle have?",options:["2","3","4","5"],correctIndex:1,concept:"shape:triangle-sides",hint:"Tri means three"},{question:"How many sides does a square have?",options:["3","4","5","6"],correctIndex:1,concept:"shape:square-sides",hint:"A square has equal sides all around"},{question:"What shape is a ball?",options:["Square","Triangle","Circle","Rectangle"],correctIndex:2,concept:"shape:circle",hint:"It is perfectly round"},{question:"How many corners does a rectangle have?",options:["2","3","4","5"],correctIndex:2,concept:"shape:rectangle-corners",hint:"A rectangle is like a stretched square"},{question:"Which shape has no corners?",options:["Triangle","Square","Circle","Rectangle"],correctIndex:2,concept:"shape:circle-corners",hint:"This shape is perfectly round"},{question:"How many sides does a circle have?",options:["0","1","2","3"],correctIndex:0,concept:"shape:circle-sides",hint:"A circle is round with no straight edges"},{question:"What shape has 3 corners?",options:["Circle","Triangle","Square","Rectangle"],correctIndex:1,concept:"shape:triangle-corners",hint:"This shape has 3 sides too"},{question:"Which shape has 4 equal sides?",options:["Triangle","Circle","Square","Rectangle"],correctIndex:2,concept:"shape:square",hint:"All four sides are the same length"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-pattern-num-49",title:"Number Sequences",category:"math",subcategory:"patterns",template:"fill-blank",ageRange:[5,7],difficulty:2,icon:"grid",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["patterns","number-sense","sequences"],tags:["patterns","numbers"],content:{questions:[{text:"2, 4, 6, 8, ___",blank:"10",options:["9","10","11","12"],concept:"pattern:count-by-2",hint:"Each number goes up by 2"},{text:"5, 10, 15, 20, ___",blank:"25",options:["22","24","25","30"],concept:"pattern:count-by-5",hint:"Each number goes up by 5"},{text:"10, 20, 30, 40, ___",blank:"50",options:["45","50","55","60"],concept:"pattern:count-by-10",hint:"Each number goes up by 10"},{text:"1, 3, 5, 7, ___",blank:"9",options:["8","9","10","11"],concept:"pattern:count-by-2-odd",hint:"These are odd numbers going up by 2"},{text:"3, 6, 9, 12, ___",blank:"15",options:["13","14","15","16"],concept:"pattern:count-by-3",hint:"Each number goes up by 3"},{text:"4, 8, 12, 16, ___",blank:"20",options:["18","19","20","22"],concept:"pattern:count-by-4",hint:"Each number goes up by 4"},{text:"10, 9, 8, 7, ___",blank:"6",options:["5","6","7","8"],concept:"pattern:count-down-1",hint:"The numbers go down by 1"},{text:"20, 18, 16, 14, ___",blank:"12",options:["10","11","12","13"],concept:"pattern:count-down-2",hint:"The numbers go down by 2"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-compare-big-51",title:"Bigger / Smaller",category:"math",subcategory:"comparison",template:"sequence-order",ageRange:[4,6],difficulty:1,icon:"scale-balance",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:6,learningObjectives:["comparison","number-sense","ordering"],tags:["numbers","ordering"],content:{sequences:[{items:["1","3","5","7","9"],concept:"compare:order-1-9"},{items:["2","4","6","8","10"],concept:"compare:order-2-10"},{items:["1","2","5","7","9"],concept:"compare:order-mixed-1"},{items:["3","4","6","8","10"],concept:"compare:order-mixed-2"},{items:["1","3","6","8","10"],concept:"compare:order-mixed-3"},{items:["2","5","6","7","9"],concept:"compare:order-mixed-4"}]},rewards:{starsPerCorrect:1,bonusThreshold:5,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-time-hours-56",title:"Tell Time: Hours",category:"math",subcategory:"time",template:"multiple-choice",ageRange:[5,7],difficulty:1,icon:"clock-outline",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["time-telling","hours"],tags:["time","clock"],content:{questions:[{question:"The clock shows 3:00. What time is it?",options:["2 o'clock","3 o'clock","4 o'clock","5 o'clock"],correctIndex:1,concept:"time:hour-3",hint:"The short hand points to the 3"},{question:"The clock shows 7:00. What time is it?",options:["6 o'clock","7 o'clock","8 o'clock","9 o'clock"],correctIndex:1,concept:"time:hour-7",hint:"The short hand points to the 7"},{question:"The clock shows 12:00. What time is it?",options:["11 o'clock","12 o'clock","1 o'clock","10 o'clock"],correctIndex:1,concept:"time:hour-12",hint:"Both hands point to the 12"},{question:"The clock shows 1:00. What time is it?",options:["12 o'clock","1 o'clock","2 o'clock","3 o'clock"],correctIndex:1,concept:"time:hour-1",hint:"The short hand points to the 1"},{question:"The clock shows 9:00. What time is it?",options:["8 o'clock","9 o'clock","10 o'clock","11 o'clock"],correctIndex:1,concept:"time:hour-9",hint:"The short hand points to the 9"},{question:"The clock shows 5:00. What time is it?",options:["4 o'clock","5 o'clock","6 o'clock","7 o'clock"],correctIndex:1,concept:"time:hour-5",hint:"The short hand points to the 5"},{question:"The clock shows 10:00. What time is it?",options:["9 o'clock","10 o'clock","11 o'clock","12 o'clock"],correctIndex:1,concept:"time:hour-10",hint:"The short hand points to the 10"},{question:"The clock shows 6:00. What time is it?",options:["5 o'clock","6 o'clock","7 o'clock","8 o'clock"],correctIndex:1,concept:"time:hour-6",hint:"The short hand points to the 6"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-memory-add-60",title:"Addition Facts Memory",category:"math",subcategory:"addition",template:"memory-flip",ageRange:[5,8],difficulty:2,icon:"grid",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["addition","memory","number-sense"],tags:["numbers","memory","addition"],content:{pairs:[{id:"pair-1",front:"3 + 4",match:"7",concept:"add:3+4"},{id:"pair-2",front:"5 + 3",match:"8",concept:"add:5+3"},{id:"pair-3",front:"6 + 6",match:"12",concept:"add:6+6"},{id:"pair-4",front:"9 + 2",match:"11",concept:"add:9+2"},{id:"pair-5",front:"7 + 5",match:"12",concept:"add:7+5"},{id:"pair-6",front:"8 + 4",match:"12",concept:"add:8+4"},{id:"pair-7",front:"2 + 9",match:"11",concept:"add:2+9"},{id:"pair-8",front:"6 + 7",match:"13",concept:"add:6+7"}],gridColumns:4},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},...[{id:"math-timed-calc-11",title:"Speed Math",category:"math",subcategory:"mixed-operations",template:"timed-rush",ageRange:[6,9],difficulty:2,icon:"timer",color:"#4ECDC4",estimatedMinutes:3,questionsPerSession:15,learningObjectives:["mental-arithmetic","speed","mixed-operations"],tags:["speed","arithmetic","timed"],content:{timeLimit:60,questions:[{question:"8 + 7 = ?",options:["13","14","15","16"],correctIndex:2,concept:"speed:8+7"},{question:"12 - 5 = ?",options:["5","6","7","8"],correctIndex:2,concept:"speed:12-5"},{question:"6 x 3 = ?",options:["15","16","18","21"],correctIndex:2,concept:"speed:6x3"},{question:"20 - 8 = ?",options:["10","11","12","13"],correctIndex:2,concept:"speed:20-8"},{question:"9 + 6 = ?",options:["13","14","15","16"],correctIndex:2,concept:"speed:9+6"},{question:"4 x 7 = ?",options:["24","26","28","30"],correctIndex:2,concept:"speed:4x7"},{question:"15 - 9 = ?",options:["4","5","6","7"],correctIndex:2,concept:"speed:15-9"},{question:"7 + 8 = ?",options:["13","14","15","16"],correctIndex:2,concept:"speed:7+8"},{question:"3 x 9 = ?",options:["24","25","27","29"],correctIndex:2,concept:"speed:3x9"},{question:"25 - 7 = ?",options:["16","17","18","19"],correctIndex:2,concept:"speed:25-7"},{question:"11 + 9 = ?",options:["18","19","20","21"],correctIndex:2,concept:"speed:11+9"},{question:"5 x 6 = ?",options:["25","28","30","35"],correctIndex:2,concept:"speed:5x6"},{question:"14 - 6 = ?",options:["6","7","8","9"],correctIndex:2,concept:"speed:14-6"},{question:"8 x 2 = ?",options:["14","15","16","18"],correctIndex:2,concept:"speed:8x2"},{question:"17 + 3 = ?",options:["18","19","20","21"],correctIndex:2,concept:"speed:17+3"}]},rewards:{starsPerCorrect:1,bonusThreshold:12,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-fraction-match-12",title:"Fraction Matching",category:"math",subcategory:"fractions",template:"match-pairs",ageRange:[7,10],difficulty:2,icon:"chart-pie",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["fractions","equivalence","number-sense"],tags:["fractions","matching","equivalence"],content:{pairs:[{left:"1/2",right:"half of a whole",concept:"fraction:half"},{left:"1/4",right:"one quarter",concept:"fraction:quarter"},{left:"3/4",right:"three quarters",concept:"fraction:three-quarters"},{left:"1/3",right:"one third",concept:"fraction:third"},{left:"2/4",right:"same as 1/2",concept:"fraction:equiv-half"},{left:"2/3",right:"two thirds",concept:"fraction:two-thirds"},{left:"1/5",right:"one fifth",concept:"fraction:fifth"},{left:"3/3",right:"one whole",concept:"fraction:whole"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-story-problems-13",title:"Math Story Builder",category:"math",subcategory:"word-problems",template:"story-builder",ageRange:[6,9],difficulty:2,icon:"book-open-variant",color:"#4ECDC4",estimatedMinutes:6,questionsPerSession:8,learningObjectives:["word-problems","addition","subtraction","logic"],tags:["story","word-problems","logic"],content:{story:{start:"bakery-start",scenes:{"bakery-start":{text:'Welcome to the Number Bakery! You are the junior baker today. The head baker, Chef Numberto, says: "We have 24 cupcakes to sell today. A customer just ordered 8. How many will we have left?"',icon:"chef-hat",choices:[{text:"16 cupcakes left",nextScene:"correct-1",isGood:!0,concept:"math:24-8=16"},{text:"18 cupcakes left",nextScene:"tryagain-1",isGood:!1,concept:"math:wrong-24-8"}]},"tryagain-1":{text:'Chef Numberto smiles and says, "Let us try again! We started with 24 and sold 8. Count back from 24: 23, 22, 21, 20, 19, 18, 17, 16!"',icon:"emoticon-happy",choices:[{text:"Got it! 16 cupcakes!",nextScene:"correct-1",isGood:!0,concept:"math:24-8=16-retry"}]},"correct-1":{text:'"Excellent! 16 cupcakes remain!" says Chef Numberto. "Now, three more customers come in. The first wants 3, the second w
1ants 5, and the third wants 4. How many cupcakes total do they want?"',icon:"star",choices:[{text:"12 cupcakes total",nextScene:"correct-2",isGood:!0,concept:"math:3+5+4=12"},{text:"10 cupcakes total",nextScene:"tryagain-2",isGood:!1,concept:"math:wrong-3+5+4"}]},"tryagain-2":{text:'"Let us add them up step by step," says Chef Numberto. "3 plus 5 is 8, then 8 plus 4 is 12!"',icon:"emoticon-happy",choices:[{text:"Of course! 12 cupcakes!",nextScene:"correct-2",isGood:!0,concept:"math:3+5+4=12-retry"}]},"correct-2":{text:'"Great math! They want 12 cupcakes. We had 16, so how many will we have after selling 12?"',icon:"star",choices:[{text:"4 cupcakes left",nextScene:"correct-3",isGood:!0,concept:"math:16-12=4"},{text:"6 cupcakes left",nextScene:"tryagain-3",isGood:!1,concept:"math:wrong-16-12"}]},"tryagain-3":{text:'"Close! 16 minus 12: think of it as 16 minus 10 is 6, then minus 2 more is 4!"',icon:"emoticon-happy",choices:[{text:"Right, 4 cupcakes!",nextScene:"correct-3",isGood:!0,concept:"math:16-12=4-retry"}]},"correct-3":{text:'"We have 4 cupcakes left! Now I need to bake more. If I bake 3 trays with 6 cupcakes each, how many new cupcakes will we have?"',icon:"chef-hat",choices:[{text:"18 new cupcakes",nextScene:"bakery-end",isGood:!0,concept:"math:3x6=18"},{text:"15 new cupcakes",nextScene:"tryagain-4",isGood:!1,concept:"math:wrong-3x6"}]},"tryagain-4":{text:'"Let us count the trays: 6 + 6 + 6. That is 12 + 6 = 18!"',icon:"emoticon-happy",choices:[{text:"18 cupcakes from the oven!",nextScene:"bakery-end",isGood:!0,concept:"math:3x6=18-retry"}]},"bakery-end":{text:'"Wonderful! 18 new cupcakes plus 4 leftover = 22 cupcakes total. You are a math baking star!" Chef Numberto awards you a golden apron. You learned that math is useful everywhere, even in a bakery!',icon:"star",choices:[]}}}},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-memory-equations-14",title:"Equation Memory",category:"math",subcategory:"multiplication",template:"memory-flip",ageRange:[6,9],difficulty:2,icon:"grid",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["multiplication","memory","number-sense"],tags:["multiplication","memory","equations"],content:{pairs:[{id:"pair-1",front:"6 x 7",match:"42",concept:"mul:6x7"},{id:"pair-2",front:"8 x 3",match:"24",concept:"mul:8x3"},{id:"pair-3",front:"9 x 4",match:"36",concept:"mul:9x4"},{id:"pair-4",front:"7 x 5",match:"35",concept:"mul:7x5"},{id:"pair-5",front:"8 x 8",match:"64",concept:"mul:8x8"},{id:"pair-6",front:"6 x 9",match:"54",concept:"mul:6x9"},{id:"pair-7",front:"7 x 7",match:"49",concept:"mul:7x7"},{id:"pair-8",front:"9 x 9",match:"81",concept:"mul:9x9"}],gridColumns:4},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-drag-sort-15",title:"Number Sorting",category:"math",subcategory:"number-properties",template:"drag-to-zone",ageRange:[6,9],difficulty:2,icon:"sort-numeric-ascending",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:12,learningObjectives:["even-odd","number-properties","classification"],tags:["numbers","sorting","even-odd"],content:{zones:[{id:"even",label:"Even Numbers",color:"#3498DB"},{id:"odd",label:"Odd Numbers",color:"#E74C3C"}],items:[{id:"n2",label:"2",zone:"even",concept:"number:even-2"},{id:"n3",label:"3",zone:"odd",concept:"number:odd-3"},{id:"n8",label:"8",zone:"even",concept:"number:even-8"},{id:"n11",label:"11",zone:"odd",concept:"number:odd-11"},{id:"n14",label:"14",zone:"even",concept:"number:even-14"},{id:"n17",label:"17",zone:"odd",concept:"number:odd-17"},{id:"n20",label:"20",zone:"even",concept:"number:even-20"},{id:"n23",label:"23",zone:"odd",concept:"number:odd-23"},{id:"n36",label:"36",zone:"even",concept:"number:even-36"},{id:"n45",label:"45",zone:"odd",concept:"number:odd-45"},{id:"n50",label:"50",zone:"even",concept:"number:even-50"},{id:"n99",label:"99",zone:"odd",concept:"number:odd-99"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-sequence-patterns-16",title:"Number Patterns",category:"math",subcategory:"patterns",template:"sequence-order",ageRange:[5,8],difficulty:2,icon:"chart-line",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["patterns","
1sequences","number-sense"],tags:["patterns","sequences","ordering"],content:{sequences:[{items:["2","4","6","8","10","12","14","16"],concept:"pattern:count-by-2-extended"},{items:["5","10","15","20","25","30","35","40"],concept:"pattern:count-by-5-extended"},{items:["3","6","9","12","15","18","21","24"],concept:"pattern:count-by-3-extended"},{items:["10","20","30","40","50","60","70","80"],concept:"pattern:count-by-10-extended"},{items:["1","4","9","16","25"],concept:"pattern:perfect-squares"},{items:["1","1","2","3","5","8","13","21"],concept:"pattern:fibonacci-intro"},{items:["100","90","80","70","60","50","40","30"],concept:"pattern:countdown-by-10"},{items:["7","14","21","28","35","42","49","56"],concept:"pattern:count-by-7"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-spot-mistake-17",title:"Spot the Math Mistake",category:"math",subcategory:"error-detection",template:"spot-difference",ageRange:[6,9],difficulty:2,icon:"magnify",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["arithmetic","error-detection","critical-thinking"],tags:["errors","arithmetic","critical-thinking"],content:{rounds:[{title:"5 + 3 = 9",differences:[{x:70,y:50,label:"The answer should be 8, not 9"}],concept:"error:5+3"},{title:"12 - 4 = 7",differences:[{x:70,y:50,label:"The answer should be 8, not 7"}],concept:"error:12-4"},{title:"6 x 4 = 28",differences:[{x:70,y:50,label:"The answer should be 24, not 28"}],concept:"error:6x4"},{title:"15 + 7 = 23",differences:[{x:70,y:50,label:"The answer should be 22, not 23"}],concept:"error:15+7"},{title:"9 x 3 = 24",differences:[{x:70,y:50,label:"The answer should be 27, not 24"}],concept:"error:9x3"},{title:"20 - 13 = 8",differences:[{x:70,y:50,label:"The answer should be 7, not 8"}],concept:"error:20-13"},{title:"8 x 7 = 54",differences:[{x:70,y:50,label:"The answer should be 56, not 54"}],concept:"error:8x7"},{title:"100 - 35 = 75",differences:[{x:70,y:50,label:"The answer should be 65, not 75"}],concept:"error:100-35"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-word-numbers-18",title:"Number Words Builder",category:"math",subcategory:"number-words",template:"word-build",ageRange:[5,8],difficulty:2,icon:"format-text",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["number-words","spelling","number-sense"],tags:["numbers","spelling","words"],content:{words:[{word:"seven",hint:"The number after six (7)",concept:"numword:seven",extraLetters:2},{word:"twelve",hint:"A dozen (12)",concept:"numword:twelve",extraLetters:2},{word:"twenty",hint:"Two tens (20)",concept:"numword:twenty",extraLetters:2},{word:"fifteen",hint:"Five plus ten (15)",concept:"numword:fifteen",extraLetters:3},{word:"thirty",hint:"Three tens (30)",concept:"numword:thirty",extraLetters:2},{word:"eight",hint:"The number before nine (8)",concept:"numword:eight",extraLetters:2},{word:"forty",hint:"Four tens (40)",concept:"numword:forty",extraLetters:2},{word:"hundred",hint:"Ten tens (100)",concept:"numword:hundred",extraLetters:3},{word:"eleven",hint:"One more than ten (11)",concept:"numword:eleven",extraLetters:2},{word:"sixteen",hint:"Six plus ten (16)",concept:"numword:sixteen",extraLetters:3}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-money-sim-19",title:"Shopping Simulator",category:"math",subcategory:"money",template:"simulation",ageRange:[6,9],difficulty:2,icon:"cart",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["money","addition","subtraction","budgeting"],tags:["money","shopping","budgeting"],content:{scenario:{title:"Grocery Store Shopping",concept:"money:shopping-budget",startingMoney:20,items:[{name:"Apple (healthy snack)",price:2,icon:"food-apple",isGood:!0,feedback:"Apples are healthy and affordable!"},{name:"Bread (for sandwiches)",price:3,icon:"bread-slice",isGood:!0,feedback:"Bread is a great staple food!"},{name:"Milk (calcium for bones)",price:4,icon:"cup",isGood:!0,feedback:"Milk helps build strong bones!"},{name:"Eggs (protein power)",price:3,icon:"egg",isGood:!0,feedback:"Eggs are full of protein and affordable!"},{name:"Fancy candy box",price:8,icon:"candy",isGood:!1,feedback:"That is expensive and not nutritious. Better to save your money!"},{name:"Bananas (energy fruit)",price:2,icon:"food",isGood:!0,feedback:"Bananas give you energy and are a great deal!"},{name:"Giant toy display",price:15,icon:"gamepad",isGood:!1,feedback:"That costs almost all your money! This is a grocery trip."},{name:"Cheese (for sandwiches)",price:4,icon:"cheese",isGood:!0,feedback:"Cheese goes perfectly with your bread!"}],goal:"Buy enough healthy food for the week without spending more than $20!"}},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-geometry-quiz-20",title:"Geometry Quiz",category:"math",subcategory:"geometry",template:"multiple-choice",ageRange:[7,10],difficulty:3,icon:"shape",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["geometry","shapes","angles","area"],tags:["geometry","shapes","advanced"],content:{questions:[{question:"How many sides does a hexagon have?",options:["5","6","7","8"],correctIndex:1,concept:"geometry:hexagon-sides",hint:'"Hexa" means 
1six in Greek'},{question:"What is the name of a shape with 5 sides?",options:["Hexagon","Octagon","Pentagon","Heptagon"],correctIndex:2,concept:"geometry:pentagon",hint:'"Penta" means five'},{question:"How many degrees are in a right angle?",options:["45","60","90","180"],correctIndex:2,concept:"geometry:right-angle",hint:"Think of the corner of a square"},{question:"What is the perimeter of a square with sides of 5 cm?",options:["10 cm","15 cm","20 cm","25 cm"],correctIndex:2,concept:"geometry:perimeter-square",hint:"Add all 4 sides: 5 + 5 + 5 + 5"},{question:"How many faces does a cube have?",options:["4","6","8","12"],correctIndex:1,concept:"geometry:cube-faces",hint:"Think of a dice - top, bottom, front, back, left, right"},{question:"What is the area of a rectangle with length 4 and width 3?",options:["7","10","12","14"],correctIndex:2,concept:"geometry:area-rectangle",hint:"Area = length times width"},{question:"A triangle with all sides equal is called...",options:["Right triangle","Equilateral","Isosceles","Scalene"],correctIndex:1,concept:"geometry:equilateral",hint:'"Equi" means equal, "lateral" means sides'},{question:"How many sides does an octagon have?",options:["6","7","8","9"],correctIndex:2,concept:"geometry:octagon",hint:"Think of a stop sign"},{question:"What shape has no straight sides?",options:["Triangle","Square","Circle","Rectangle"],correctIndex:2,concept:"geometry:circle-no-sides",hint:"This shape is perfectly round"},{question:"A line that goes from one side of a circle to the other through the center is called...",options:["Radius","Diameter","Circumference","Chord"],correctIndex:1,concept:"geometry:diameter",hint:"It is twice the radius"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-place-value-21",title:"Place Value Sorting",category:"math",subcategory:"place-value",template:"drag-to-zone",ageRange:[6,8],difficulty:2,icon:"numeric",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:12,learningObjectives:["place-value","number-sense","ones-tens-hundreds"],tags:["place-value","numbers","sorting"],content:{zones:[{id:"ones",label:"Ones (1-9)",color:"#2ECC71"},{id:"tens",label:"Tens (10-99)",color:"#3498DB"},{id:"hundreds",label:"Hundreds (100-999)",color:"#E74C3C"}],items:[{id:"n5",label:"5",zone:"ones",concept:"place:ones-5"},{id:"n23",label:"23",zone:"tens",concept:"place:tens-23"},{id:"n150",label:"150",zone:"hundreds",concept:"place:hundreds-150"},{id:"n8",label:"8",zone:"ones",concept:"place:ones-8"},{id:"n47",label:"47",zone:"tens",concept:"place:tens-47"},{id:"n312",label:"312",zone:"hundreds",concept:"place:hundreds-312"},{id:"n3",label:"3",zone:"ones",concept:"place:ones-3"},{id:"n72",label:"72",zone:"tens",concept:"place:tens-72"},{id:"n500",label:"500",zone:"hundreds",concept:"place:hundreds-500"},{id:"n1",label:"1",zone:"ones",concept:"place:ones-1"},{id:"n95",label:"95",zone:"tens",concept:"place:tens-95"},{id:"n888",label:"888",zone:"hundreds",concept:"place:hundreds-888"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-measurement-match-22",title:"Measurement Match",category:"math",subcategory:"measurement",template:"match-pairs",ageRange:[6,9],difficulty:2,icon:"ruler",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["measurement","units","conversions"],tags:["measurement","units","matching"],content:{pairs:[{left:"1 meter",right:"100 centimeters",concept:"measure:meter-cm"},{left:"1 kilogram",right:"1000 grams",concept:"measure:kg-g"},{left:"1 hour",right:"60 minutes",concept:"measure:hour-min"},{left:"1 minute",right:"60 seconds",concept:"measure:min-sec"},{left:"1 day",right:"24 hours",concept:"measure:day-hours"},{left:"1 week",right:"7 days",concept:"measure:week-days"},{left:"1 year",right:"12 months",concept:"measure:year-months"},{left:"1 liter",right:"1000 milliliters",concept:"measure:liter-ml"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-compare-tf-23",title:"Greater or Less Than",category:"math",subcategory:"comparison",template:"true-false",ageRange:[5,7],difficulty:1,icon:"scale-balance",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["comparison","number-sense","inequalities"],tags:["comparison","greater","less"],content:{statements:[{text:"15 is greater than 12.",answer:!0,concept:"compare:15>12",explanation:"15 comes after 12 when counting, so 15 is greater."},{text:"7 is greater than 9.",answer:!1,concept:"compare:7<9",explanation:"7 comes before 9 when counting, so 7 is less than 9."},{text:"20 is less than 25.",answer:!0,concept:"compare:20<25",explanation:"20 comes before 25, so 20 is less than 25."},{text:"100 is less than 50.",answer:!1,concept:"compare:100>
150",explanation:"100 is much bigger than 50!"},{text:"33 is greater than 31.",answer:!0,concept:"compare:33>31",explanation:"33 is 2 more than 31."},{text:"45 is the same as 54.",answer:!1,concept:"compare:45!=54",explanation:"45 and 54 have the same digits but in different order. 54 is greater."},{text:"0 is less than 1.",answer:!0,concept:"compare:0<1",explanation:"Zero is less than any counting number."},{text:"99 is greater than 100.",answer:!1,concept:"compare:99<100",explanation:"100 is one more than 99, so 100 is greater."},{text:"50 is equal to 50.",answer:!0,concept:"compare:50=50",explanation:"The same number is always equal to itself."},{text:"18 is less than 8.",answer:!1,concept:"compare:18>8",explanation:"18 is ten more than 8, so 18 is greater."}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-add-20-24",title:"Addition Within 20",category:"math",subcategory:"addition",template:"fill-blank",ageRange:[5,7],difficulty:2,icon:"plus-circle",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["addition","number-bonds","mental-math"],tags:["addition","number-bonds"],content:{questions:[{text:"8 + ___ = 15",blank:"7",options:["5","6","7","8"],concept:"add:8+?=15",hint:"What do you add to 8 to get 15?"},{text:"9 + ___ = 17",blank:"8",options:["6","7","8","9"],concept:"add:9+?=17",hint:"Count up from 9 to 17"},{text:"___ + 6 = 13",blank:"7",options:["5","6","7","8"],concept:"add:?+6=13",hint:"What plus 6 equals 13?"},{text:"7 + ___ = 14",blank:"7",options:["5","6","7","8"],concept:"add:7+?=14",hint:"Double 7 is..."},{text:"___ + 5 = 12",blank:"7",options:["5","6","7","8"],concept:"add:?+5=12",hint:"12 minus 5 equals..."},{text:"6 + ___ = 11",blank:"5",options:["4","5","6","7"],concept:"add:6+?=11",hint:"Count up from 6 to 11"},{text:"9 + ___ = 18",blank:"9",options:["7","8","9","10"],concept:"add:9+?=18",hint:"Double 9 is..."},{text:"___ + 8 = 16",blank:"8",options:["6","7","8","9"],concept:"add:?+8=16",hint:"Double 8 is..."},{text:"5 + ___ = 13",blank:"8",options:["6","7","8","9"],concept:"add:5+?=13",hint:"13 minus 5 equals..."},{text:"7 + ___ = 16",blank:"9",options:["7","8","9","10"],concept:"add:7+?=16",hint:"Count up from 7 to 16"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-count-20-25",title:"Count Objects 11-20",category:"math",subcategory:"counting",template:"counting",ageRange:[4,6],difficulty:2,icon:"numeric",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["counting","number-recognition","teens"],tags:["counting","numbers","teens"],content:{rounds:[{count:11,icon:"star",color:"#FFD700",concept:"count:objects-11",label:"stars"},{count:13,icon:"heart",color:"#FF69B4",concept:"count:objects-13",label:"hearts"},{count:12,icon:"apple",color:"#FF6347",concept:"count:objects-12",label:"apples"},{count:15,icon:"flower",color:"#FF8C00",concept:"count:objects-15",label:"flowers"},{count:14,icon:"fish",color:"#4682B4",concept:"count:objects-14",label:"fish"},{count:17,icon:"bird",color:"#20B2AA",concept:"count:objects-17",label:"birds"},{count:16,icon:"butterfly",color:"#9370DB",concept:"count:objects-16",label:"butterflies"},{count:20,icon:"circle",color:"#3498DB",concept:"count:objects-20",label:"circles"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-mul-hard-26",title:"Times Tables 6-9",category:"math",subcategory:"multiplication",template:"timed-rush",ageRange:[7,10],difficulty:3,icon:"timer",color:"#4ECDC4",estimatedMinutes:3,questionsPerSession:12,learningObjectives:["multiplication","times-tables","speed"],tags:["multiplication","timed","advanced"],content:{timeLimit:60,questions:[{question:"6 x 6 = ?",options:["30","34","36","38"],correctIndex:2,concept:"mul:6x6"},{question:"7 x 8 = ?",options:["48","54","56","58"],correctIndex:2,concept:"mul:7x8"},{question:"8 x 9 = ?",options:["63","70","72","74"],correctIndex:2,concept:"mul:8x9"},{question:"9 x 6 = ?",options:["48","52","54","56"],correctIndex:2,concept:"mul:9x6"},{question:"7 x 7 = ?",options:["42","47","49","51"],correctIndex:2,concept:"mul:7x7-rush"},{question:"6 x 8 = ?",options:["42","46","48","52"],correctIndex:2,concept:"mul:6x8"},{question:"9 x 7 = ?",options:["56","61","63","65"],correctIndex:2,concept:"mul:9x7"},{question:"8 x 6 = ?",options:["42","46","48","50"],correctIndex:2,concept:"mul:8x6"},{question:"7 x 9 = ?",options:["56","61","63","67"],correctIndex:2,concept:"mul:7x9"}
1,{question:"9 x 9 = ?",options:["72","79","81","83"],correctIndex:2,concept:"mul:9x9-rush"},{question:"6 x 9 = ?",options:["48","52","54","58"],correctIndex:2,concept:"mul:6x9-rush"},{question:"8 x 8 = ?",options:["56","62","64","66"],correctIndex:2,concept:"mul:8x8-rush"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-money-memory-27",title:"Money Memory",category:"math",subcategory:"money",template:"memory-flip",ageRange:[5,8],difficulty:2,icon:"cash",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["money","value-recognition","memory"],tags:["money","memory","coins"],content:{pairs:[{id:"pair-1",front:"1 penny",match:"1 cent",concept:"money:penny"},{id:"pair-2",front:"1 nickel",match:"5 cents",concept:"money:nickel"},{id:"pair-3",front:"1 dime",match:"10 cents",concept:"money:dime"},{id:"pair-4",front:"1 quarter",match:"25 cents",concept:"money:quarter"},{id:"pair-5",front:"2 quarters",match:"50 cents",concept:"money:2-quarters"},{id:"pair-6",front:"4 quarters",match:"1 dollar",concept:"money:4-quarters"},{id:"pair-7",front:"10 dimes",match:"1 dollar",concept:"money:10-dimes"},{id:"pair-8",front:"5 nickels",match:"25 cents",concept:"money:5-nickels"}],gridColumns:4},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-word-problems-28",title:"Word Problems",category:"math",subcategory:"word-problems",template:"multiple-choice",ageRange:[6,9],difficulty:2,icon:"book-open-variant",color:"#4ECDC4",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["word-problems","addition","subtraction","multiplication"],tags:["word-problems","logic","reading"],content:{questions:[{question:"Tom has 8 apples. He gives 3 to his friend. How many does he have left?",options:["3","4","5","6"],correctIndex:2,concept:"word:8-3=5",hint:"Giving away means subtraction: 8 - 3"},{question:"A classroom has 4 rows of desks with 5 desks in each row. How many desks in total?",options:["9","15","20","25"],correctIndex:2,concept:"word:4x5=20",hint:"4 groups of 5"},{question:"Lily read 12 pages on Monday and 8 pages on Tuesday. How many pages total?",options:["18","19","20","21"],correctIndex:2,concept:"word:12+8=20",hint:"Add the pages from both days"},{question:"A baker made 30 cookies and sold 18. How many are left?",options:["10","11","12","13"],correctIndex:2,concept:"word:30-18=12",hint:"Sold means subtraction: 30 - 18"},{question:"There are 3 bags with 7 marbles in each. How many marbles in all?",options:["10","17","21","24"],correctIndex:2,concept:"word:3x7=21",hint:"3 groups of 7"},{question:"Sam had 15 stickers and got 9 more. How many does he have now?",options:["22","23","24","25"],correctIndex:2,concept:"word:15+9=24",hint:"Getting more means addition"},{question:"A bus has 25 seats and 17 are taken. How many empty seats?",options:["6","7","8","9"],correctIndex:2,concept:"word:25-17=8",hint:"Subtract the taken seats from total"},{question:"If each child gets 2 pencils and there are 9 children, how many pencils are needed?",options:["11","16","18","20"],correctIndex:2,concept:"word:9x2=18",hint:"9 groups of 2"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-time-half-29",title:"Tell Time: Half Hours",category:"math",subcategory:"time",template:"multiple-choice",ageRange:[5,8],difficulty:2,icon:"clock-outline",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["time-telling","half-hours","clock-reading"],tags:["time","clock","half-hours"],content:{questions:[{question:"The short hand is between 3 and 4, and the long hand points to 6. What time is it?",options:["3:00","3:30","4:00","4:30"],correctIndex:1,concept:"time:half-3:30",hint:"When the long hand points to 6, it means half past"},{question:"The short hand is between 7 and 8, and the long hand points to 6. What time is it?",options:["7:00","7:30","8:00","8:30"],correctIndex:1,concept:"time:half-7:30",hint:"The long hand on 6 means 30 minutes"},{question:'What does "half past 5" mean?',options:["5:00","5:15","5:30","5:45"],correctIndex:2,concept:"time:half-past-5",hint:"Half of 60 minutes is 30 minutes"},{question:"The clock shows 10:30. How do we say this?",options:["Ten o'clock","Quarter past ten","Half past ten","Quarter to eleven"],correctIndex:2,concept:"time:say-10:30",hint:"30 minutes past the hour is half past"},{question:"At half past 1, where does the long hand point?",options:["12","3","6","9"],correctIndex:2,concept:"time:long-hand-half",hint:"Half of the clock is at the 
16"},{question:"The short hand is between 9 and 10, and the long hand points to 6. What time is it?",options:["9:00","9:30","10:00","10:30"],correctIndex:1,concept:"time:half-9:30",hint:"The short hand past 9 and long hand on 6"},{question:'How many minutes is "half past"?',options:["15 minutes","20 minutes","30 minutes","45 minutes"],correctIndex:2,concept:"time:half-minutes",hint:"Half of 60 minutes"},{question:"What is 30 minutes after 2:00?",options:["2:15","2:30","2:45","3:00"],correctIndex:1,concept:"time:30-after-2",hint:"Just add 30 minutes to 2:00"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"math-doubles-halves-30",title:"Doubles and Halves",category:"math",subcategory:"number-sense",template:"true-false",ageRange:[5,8],difficulty:2,icon:"content-copy",color:"#4ECDC4",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["doubles","halves","mental-math","number-sense"],tags:["doubles","halves","number-sense"],content:{statements:[{text:"Double of 5 is 10.",answer:!0,concept:"double:5=10",explanation:"5 + 5 = 10. Correct!"},{text:"Half of 12 is 5.",answer:!1,concept:"half:12=6",explanation:"Half of 12 is 6, not 5. Split 12 into two equal groups."},{text:"Double of 8 is 16.",answer:!0,concept:"double:8=16",explanation:"8 + 8 = 16. Correct!"},{text:"Half of 20 is 10.",answer:!0,concept:"half:20=10",explanation:"20 split into two equal groups gives 10 and 10."},{text:"Double of 7 is 15.",answer:!1,concept:"double:7=14",explanation:"Double of 7 is 14, not 15. 7 + 7 = 14."},{text:"Half of 18 is 9.",answer:!0,concept:"half:18=9",explanation:"18 split into two gives 9 and 9."},{text:"Double of 12 is 22.",answer:!1,concept:"double:12=24",explanation:"Double of 12 is 24, not 22. 12 + 12 = 24."},{text:"Half of 14 is 7.",answer:!0,concept:"half:14=7",explanation:"14 split into two groups gives 7 and 7."},{text:"Double of 9 is 18.",answer:!0,concept:"double:9=18",explanation:"9 + 9 = 18. Correct!"},{text:"Half of 30 is 20.",answer:!1,concept:"half:30=15",explanation:"Half of 30 is 15, not 20. 30 split equally is 15 and 15."}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}}],{id:"life-routine-morning-61",title:"Morning Routine",category:"lifeSkills",subcategory:"daily-routine",template:"sequence-order",ageRange:[4,7],difficulty:1,icon:"weather-sunny",color:"#FFE66D",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["daily-routine","time-management"],tags:["routine","morning"],content:{sequences:[{items:["Wake up","Brush teeth","Take a bath","Get dressed","Eat breakfast","Pack bag","Wear shoes","Go to school"],concept:"routine:morning"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-emotion-basic-64",title:"Basic Emotions",category:"lifeSkills",subcategory:"emotion-recognition",template:"multiple-choice",ageRange:[4,6],difficulty:1,icon:"emoticon-happy",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["emotion-recognition","self-awareness"],tags:["emotions","feelings","basic"],content:{questions:[{question:"Your friend shares a toy with you. How do you feel?",options:["Happy","Sad","Angry","Scared"],correctIndex:0,concept:"emotion:happy",hint:"When someone is kind to us, it makes us feel good!"},{question:"You lost your favorite teddy bear. How do you feel?",options:["Excited","Sad","Angry","Surprised"],correctIndex:1,concept:"emotion:sad",hint:"Losing something we love makes us feel down."},{question:"Someone took your snack without asking. How do you feel?",options:["Happy","Sleepy","Angry","Shy"],correctIndex:2,concept:"emotion:angry",hint:"When someone takes our things, it can upset us."},{question:"You hear a loud thunder at night. How do you feel?",options:["Happy","Proud","Bored","Scared"],correctIndex:3,concept:"emotion:scared",hint:"Loud noises can be startling and make us feel afraid."},{question:"You got a gold star on your homework. How do you feel?",options:["Proud","Sad","Angry","Scared"],correctIndex:0,concept:"emotion:proud",hint:"Doing well makes us feel good about ourselves!"},{question:"Your best friend moved to another city. How do you feel?",options:["Excited","Sad","Angry","Silly"],correctIndex:1,concept:"emotion:sad-missing",hint:"Missing someone we care about makes us feel down."},{question:"Your mom gives you a big birthday surprise. How do you feel?",options:["Angry","Bored","Surprised","Scared"],correctIndex:2,concept:"emotion:surprised",hint:"When something unexpected and nice happens, we feel surprised!"},{question:"You are meeting new kids at school for the first time. How might you feel?",options:["Angry","Shy","Proud","Bored"],correctIndex:1,concept:"emotion:shy",hint:"New people can make us feel a little nervous."},{question:"You helped your mom carry the groceries. How do you feel?",options:["Happy","Scared","Sad","Angry"],correctIndex:0,concept:"emotion:happy-helping",hint:"Helping others makes us feel warm inside!"},{question:"Your pet dog licks your face when you come home. How do you feel?",options:["Angry","Scared","Loved","Bored"],correctIndex:2,concept:"emotion:loved",hint:"When someone shows affection, we feel loved."}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-safety-home-67",title:"Home Safety",category:"lifeSkills",subcategory:"safety",template:"true-false",ageRange:[4,7],difficulty:1,icon:"shield-check",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["home-safety","hazard-awareness"],tags:["safety","home"],content:{statements:[{text:"It is safe to touch a hot stove.",answer:!1,concept:"safety:hot-stove",explanation:"Never touch a hot stove! It can burn you badly."},{text:"You should tell an adult if you find medicine on the floor.",answer:!0,concept:"safety:medicine",explanation:"Always tell a grown-up if you find medicine. Never eat it on your own."},{text:"Running with scissors is okay if you are careful.",answer:!1,concept:"safety:scissors",explanation:"Never run with scissors. Walk slowly and hold them pointing down."},{text:"You should never play with electrical outlets.",answer:!0,concept:"safety:electricity",explanation:"Electrical outlets are very dangerous. Never stick anything into them."},{text:"It is safe to climb on tall furniture by yourself.",answer:!1,concept:"safety:climbing",explanation:"Climb
1ing on furniture can cause it to fall on you. Always ask for help."},{text:"You should always wash your hands before eating.",answer:!0,concept:"safety:hygiene",explanation:"Washing hands removes germs and keeps you healthy!"},{text:"It is okay to open the door for strangers when you are home alone.",answer:!1,concept:"safety:strangers-door",explanation:"Never open the door for strangers. Tell a trusted adult instead."},{text:"If there is a fire, you should get out of the house quickly.",answer:!0,concept:"safety:fire-escape",explanation:"In a fire, leave the house immediately and call for help."},{text:"Playing with matches is fun and safe.",answer:!1,concept:"safety:matches",explanation:"Matches can start fires. Only adults should use them."},{text:"You should know your home address in case of emergency.",answer:!0,concept:"safety:address",explanation:"Knowing your address helps emergency helpers find you."}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-health-food-70",title:"Healthy vs Unhealthy Food",category:"lifeSkills",subcategory:"healthy-habits",template:"drag-to-zone",ageRange:[4,7],difficulty:1,icon:"food-apple",color:"#FFE66D",estimatedMinutes:4,questionsPerSession:12,learningObjectives:["healthy-eating","nutrition"],tags:["health","food","nutrition"],content:{zones:[{id:"healthy",label:"Healthy",color:"#27AE60"},{id:"unhealthy",label:"Unhealthy",color:"#E74C3C"}],items:[{id:"apple",label:"Apple",zone:"healthy",concept:"health:fruit"},{id:"candy",label:"Candy",zone:"unhealthy",concept:"health:sweets"},{id:"carrot",label:"Carrot",zone:"healthy",concept:"health:vegetable"},{id:"soda",label:"Soda",zone:"unhealthy",concept:"health:sugary-drink"},{id:"milk",label:"Milk",zone:"healthy",concept:"health:dairy"},{id:"chips",label:"Chips",zone:"unhealthy",concept:"health:junk-food"},{id:"banana",label:"Banana",zone:"healthy",concept:"health:fruit-banana"},{id:"cake",label:"Cake",zone:"unhealthy",concept:"health:sweets-cake"},{id:"broccoli",label:"Broccoli",zone:"healthy",concept:"health:vegetable-broccoli"},{id:"donut",label:"Donut",zone:"unhealthy",concept:"health:sweets-donut"},{id:"eggs",label:"Eggs",zone:"healthy",concept:"health:protein"},{id:"french-fries",label:"French Fries",zone:"unhealthy",concept:"health:fried-food"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-health-hygiene-72",title:"Good Hygiene Habits",category:"lifeSkills",subcategory:"healthy-habits",template:"drag-to-zone",ageRange:[4,7],difficulty:1,icon:"heart-pulse",color:"#FFE66D",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["hygiene","cleanliness"],tags:["health","hygiene","cleanliness"],content:{zones:[{id:"good",label:"Good Hygiene",color:"#2ECC71"},{id:"bad",label:"Bad Habits",color:"#E74C3C"}],items:[{id:"wash-hands",label:"Washing Hands",zone:"good",concept:"hygiene:hand-washing"},{id:"skip-brushing",label:"Skipping Brushing Teeth",zone:"bad",concept:"hygiene:teeth"},{id:"daily-bath",label:"Taking a Daily Bath",zone:"good",concept:"hygiene:bathing"},{id:"dirty-clothes",label:"Wearing Dirty Clothes",zone:"bad",concept:"hygiene:clothing"},{id:"cover-sneeze",label:"Covering Your Sneeze",zone:"good",concept:"hygiene:sneezing"},{id:"bite-nails",label:"Biting Your Nails",zone:"bad",concept:"hygiene:nails"},{id:"comb-hair",label:"Combing Your Hair",zone:"good",concept:"hygiene:grooming"},{id:"share-toothbrush",label:"Sharing a Toothbrush",zone:"bad",concept:"hygiene:sharing-germs"},{id:"clean-nails",label:"Trimming Your Nails",zone:"good",concept:"hygiene:nails-trim"},{id:"skip-bath",label:"Skipping Bath Day",zone:"bad",concept:"hygiene:bathing-skip"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-manners-greet-73",title:"Greeting People",category:"lifeSkills",subcategory:"manners",template:"story-builder",ageRange:[4,7],difficulty:1,icon:"hand-heart",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["greetings","politeness","social-skills"],tags:["manners","greetings","social"],content:{story:{start:"scene1",scenes:{scene1:{text:"It is y
1our first day at a new school. You walk into the classroom and see your new teacher smiling at you.",icon:"school",choices:[{text:'Say "Good morning, Teacher!" with a smile',nextScene:"scene2a",isGood:!0,concept:"manners:polite-greeting"},{text:"Walk past without saying anything",nextScene:"scene2b",isGood:!1,concept:"manners:ignoring"}]},scene2a:{text:'Your teacher says "Welcome! We are so happy to have you." She introduces you to the class. A kid named Sam waves at you.',icon:"emoticon-happy",choices:[{text:'Wave back and say "Hi, I\'m happy to meet you!"',nextScene:"scene3a",isGood:!0,concept:"manners:friendly-intro"},{text:"Look away and ignore Sam",nextScene:"scene3b",isGood:!1,concept:"manners:ignoring-peer"}]},scene2b:{text:'The teacher looks a little sad. She still says "Welcome!" but you didn\'t make a good first impression.',icon:"emoticon-sad",choices:[{text:'Say "Sorry, good morning Teacher!" and smile',nextScene:"scene2a",isGood:!0,concept:"manners:apologize-greet"},{text:"Just sit down without saying anything",nextScene:"scene_end_sad",isGood:!1,concept:"manners:continued-rudeness"}]},scene3a:{text:"Sam is excited to be your friend! At lunch, Sam introduces you to more kids. Everyone is friendly because you were kind first.",icon:"emoticon-happy",choices:[{text:'Say "Thank you for being so nice to me!"',nextScene:"scene4a",isGood:!0,concept:"manners:gratitude"}]},scene3b:{text:"Sam looks disappointed. You sit alone at your desk. It feels a little lonely without any friends.",icon:"emoticon-sad",choices:[{text:'Go to Sam and say "Hi, sorry I was shy. Can we be friends?"',nextScene:"scene4a",isGood:!0,concept:"manners:making-amends"},{text:"Stay alone and don't talk to anyone",nextScene:"scene_end_sad",isGood:!1,concept:"manners:isolation"}]},scene4a:{text:"You made wonderful friends on your first day! Being polite and greeting people kindly helped you feel welcome. Great job!",icon:"emoticon-happy",choices:[]},scene_end_sad:{text:'The day ends and you feel lonely. Tomorrow, try greeting people with a smile. A simple "hello" can make a big difference!',icon:"emoticon-sad",choices:[]}}}},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-env-recycle-75",title:"Recycle Sorting",category:"lifeSkills",subcategory:"environment",template:"drag-to-zone",ageRange:[5,8],difficulty:2,icon:"recycle",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:12,learningObjectives:["recycling","environment-care"],tags:["environment","recycling","sorting"],content:{zones:[{id:"paper",label:"Paper",color:"#3498DB"},{id:"plastic",label:"Plastic",color:"#F39C12"},{id:"glass",label:"Glass",color:"#2ECC71"}],items:[{id:"newspaper",label:"Newspaper",zone:"paper",concept:"environment:paper-recycle"},{id:"water-bottle",label:"Water Bottle",zone:"plastic",concept:"environment:plastic-recycle"},{id:"jam-jar",label:"Jam Jar",zone:"glass",concept:"environment:glass-recycle"},{id:"cardboard-box",label:"Cardboard Box",zone:"paper",concept:"environment:paper-cardboard"},{id:"shampoo-bottle",label:"Shampoo Bottle",zone:"plastic",concept:"environment:plastic-shampoo"},{id:"juice-jar",label:"Juice Jar",zone:"glass",concept:"environment:glass-juice"},{id:"notebook",label:"Old Notebook",zone:"paper",concept:"environment:paper-notebook"},{id:"yogurt-cup",label:"Yogurt Cup",zone:"plastic",concept:"environment:plastic-yogurt"},{id:"sauce-bottle",label:"Sauce Bottle",zone:"glass",concept:"environment:glass-sauce"},{id:"magazine",label:"Magazine",zone:"paper",concept:"environment:paper-magazine"},{id:"milk-jug",label:"Milk Jug",zone:"plastic",concept:"environment:plastic-milk"},{id:"pickle-jar",label:"Pickle Jar",zone:"glass",concept:"environment:glass-pickle"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-firstaid-basic-77",title:"Basic First Aid",category:"lifeSkills",subcategory:"first-aid",template:"simulation",ageRange:[6,9],difficulty:2,icon:"heart-pulse",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["first-aid","wound-care"],tags:["first-aid","health","safety"],content:{scenario:{title:"Help! S
1omeone Fell Down",concept:"firstaid:wound-care",startingMoney:0,items:[{name:"Stay calm and check on them",price:0,icon:"heart-pulse",isGood:!0,feedback:"Great! Staying calm is the first step in any emergency."},{name:"Panic and run away",price:0,icon:"emoticon-sad",isGood:!1,feedback:"Running away does not help. Stay calm and try to help."},{name:"Clean the wound with water",price:0,icon:"water",isGood:!0,feedback:"Rinsing with clean water helps remove dirt from the wound."},{name:"Put dirt on the wound",price:0,icon:"emoticon-sad",isGood:!1,feedback:"Dirt has germs! Never put dirt on a wound."},{name:"Apply a clean bandage",price:0,icon:"heart-pulse",isGood:!0,feedback:"A bandage protects the wound and helps it heal."},{name:"Ignore the wound",price:0,icon:"emoticon-sad",isGood:!1,feedback:"Ignoring a wound can lead to infection. Always clean and cover it."},{name:"Tell an adult what happened",price:0,icon:"hand-heart",isGood:!0,feedback:"An adult can help make sure the wound is properly taken care of."},{name:"Keep it a secret",price:0,icon:"emoticon-sad",isGood:!1,feedback:"Always tell a trusted adult if someone is hurt."}],goal:"Choose all the correct first aid steps to help your friend!"}},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-safety-road-68",title:"Road Safety",category:"lifeSkills",subcategory:"safety",template:"true-false",ageRange:[5,8],difficulty:2,icon:"shield-check",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["road-safety","traffic-rules"],tags:["safety","road","traffic"],content:{statements:[{text:"You should always look both ways before crossing the street.",answer:!0,concept:"safety:look-both-ways",explanation:"Looking left, right, then left again keeps you safe from cars."},{text:"It is okay to run across the road if no cars are coming.",answer:!1,concept:"safety:no-running-road",explanation:"Never run across the road. Always walk carefully even if it looks clear."},{text:"A red traffic light means you should stop.",answer:!0,concept:"safety:traffic-light-red",explanation:"Red means stop! Wait until the light turns green before crossing."},{text:"You can cross the road anywhere you want.",answer:!1,concept:"safety:crosswalk",explanation:"Always use a crosswalk or zebra crossing to cross the road safely."},{text:"Wearing a helmet while riding a bike keeps you safe.",answer:!0,concept:"safety:helmet",explanation:"A helmet protects your head if you fall off your bike."},{text:"It is safe to play on the road if there is not much traffic.",answer:!1,concept:"safety:no-play-road",explanation:"Roads are for vehicles, not playing. Always play in parks or yards."},{text:"You should hold an adult's hand when crossing a busy road.",answer:!0,concept:"safety:hold-hand",explanation:"Holding an adult's hand keeps you safe near traffic."},{text:"A green walking signal means it is safe to cross.",answer:!0,concept:"safety:walk-signal",explanation:"The green walk signal tells pedestrians it is their turn to cross."},{text:"You should wear bright clothes when walking near roads at night.",answer:!0,concept:"safety:visibility",explanation:"Bright or reflective clothes help drivers see you in the dark."},{text:"It is okay to chase a ball into the street without looking.",answer:!1,concept:"safety:chase-ball",explanation:"Always stop and look for cars before going into the street, even to get a ball."}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-cook-recipe-81",title:"Making a Sandwich",category:"lifeSkills",subcategory:"cooking-basics",template:"sequence-order",ageRange:[5,8],difficulty:1,icon:"chef-hat",color:"#FFE66D",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["cooking-basics","following-steps"],tags:["cooking","recipe","sandwich"],content:{sequences:[{items:["Get bread","Add butter","Put lettuce","Add cheese","Put tomato","Close bread","Cut in half","Serve on plate"],concept:"cooking:sandwich-steps"}
1]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},...[{id:"life-story-choices-11",title:"Life Choices Story",category:"lifeSkills",subcategory:"decision-making",template:"story-builder",ageRange:[6,9],difficulty:2,icon:"book-open-variant",color:"#FFE66D",estimatedMinutes:6,questionsPerSession:8,learningObjectives:["decision-making","ethics","empathy","consequences"],tags:["story","ethics","decisions","empathy"],content:{story:{start:"playground-scene",scenes:{"playground-scene":{text:"You are at the playground during recess. You see a new kid sitting alone on a bench looking sad while everyone else is playing. What do you do?",icon:"account-group",choices:[{text:"Walk over and ask if they want to play",nextScene:"invite-play",isGood:!0,concept:"ethics:include-others"},{text:"Keep playing with your friends and ignore them",nextScene:"ignore-kid",isGood:!1,concept:"ethics:ignoring-lonely"}]},"invite-play":{text:'The new kid\'s face lights up! "Really? Thank you!" they say. Their name is Alex. You start playing together when one of your friends comes over and says, "Why are you playing with the new kid? Come play with us instead."',icon:"emoticon-happy",choices:[{text:'Say "Alex can play with all of us!"',nextScene:"include-all",isGood:!0,concept:"ethics:inclusive-play"},{text:"Leave Alex to go with your friend",nextScene:"leave-alex",isGood:!1,concept:"ethics:abandoning-friend"}]},"ignore-kid":{text:"You keep playing, but you keep looking back at the bench. The kid looks even sadder now. You remember how you felt on YOUR first day at a new school.",icon:"emoticon-sad",choices:[{text:"Go back and invite them to play",nextScene:"invite-play",isGood:!0,concept:"ethics:empathy-action"},{text:"Tell a teacher the new kid is alone",nextScene:"tell-teacher",isGood:!0,concept:"ethics:seeking-help"}]},"include-all":{text:'Your friend thinks about it and says, "Sure, the more the merrier!" Now you are all playing tag together. Alex is really fast and everyone is having fun!',icon:"emoticon-happy",choices:[{text:"Continue playing together",nextScene:"lunch-scene",isGood:!0,concept:"ethics:teamwork"}]},"leave-alex":{text:"You start to walk away but see Alex's smile fade. You feel a knot in your stomach. That was not very kind.",icon:"emoticon-sad",choices:[{text:'Go back and say "Sorry, come play with all of us!"',nextScene:"include-all",isGood:!0,concept:"ethics:making-amends"}]},"tell-teacher":{text:"The teacher thanks you for caring and goes to check on the new kid. She brings Alex over to join the group. Sometimes asking for help is the right thing to do!",icon:"school",choices:[{text:"Welcome Alex to the group",nextScene:"include-all",isGood:!0,concept:"ethics:welcoming"}]},"lunch-scene":{text:"At lunch, Alex accidentally drops their tray and food spills everywhere. Some kids start to laugh. What do you do?",icon:"food",choices:[{text:"Help Alex clean up and share some of your food",nextScene:"help-cleanup",isGood:!0,concept:"ethics:helping-embarrassed"},{text:"Just watch and do nothing",nextScene:"watch-nothing",isGood:!1,concept:"ethics:bystander"}]},"help-cleanup":{text:'You help pick up the food and share your sandwich with Alex. Other kids see you helping and come to help too. Alex says, "You are the best friend I could ask for."',icon:"hand-heart",choices:[{text:"Continue the story",nextScene:"happy-ending",isGood:!0,concept:"ethics:leading-by-example"}]},"watch-nothing":{text:"Alex tries to clean up alone, looking embarrassed. You feel bad for not helping. A kind choice could have made a big difference.",icon:"emoticon-sad",choices:[{text:"Go help Alex now - better late than never",nextScene:"help-cleanup",isGood:!0,concept:"ethics:late-kindness"}]},"happy-ending":{text:'At the end of the day, Alex tells you: "This is the best first day I have ever had, and it is because of you." You learned that including others, standing up for them, and being 
1kind can change someone\'s whole day. The End.',icon:"star",choices:[]}}}},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-timed-safety-12",title:"Safety Quiz Rush",category:"lifeSkills",subcategory:"safety",template:"timed-rush",ageRange:[5,8],difficulty:2,icon:"timer",color:"#FFE66D",estimatedMinutes:3,questionsPerSession:12,learningObjectives:["safety","emergency-knowledge","quick-thinking"],tags:["safety","timed","emergency"],content:{timeLimit:60,questions:[{question:"What number do you call in an emergency?",options:["411","911","311"],correctIndex:1,concept:"safety:emergency-number"},{question:"What should you do if your clothes catch fire?",options:["Run fast","Stop, drop, and roll","Fan the flames"],correctIndex:1,concept:"safety:fire-on-clothes"},{question:"Is it safe to swim alone without an adult?",options:["Yes","No","Only in shallow water"],correctIndex:1,concept:"safety:swim-supervision"},{question:"What should you do during an earthquake?",options:["Run outside","Drop, cover, and hold on","Stand near a window"],correctIndex:1,concept:"safety:earthquake"},{question:"Should you tell an adult if a stranger offers you candy?",options:["No, take the candy","Yes, always tell an adult","Only if the candy looks bad"],correctIndex:1,concept:"safety:stranger-danger"},{question:"What do you do if you smell smoke?",options:["Open windows","Get low and get out","Look for the fire"],correctIndex:1,concept:"safety:smoke"},{question:"Where should you go during a tornado warning?",options:["Near windows","An interior room on the lowest floor","Outside to watch"],correctIndex:1,concept:"safety:tornado"},{question:"Should you touch a downed power line?",options:["Yes, to move it","Never touch it","Only with gloves"],correctIndex:1,concept:"safety:power-line"},{question:"What should you wear when riding a bike?",options:["A hat","A helmet","Sunglasses"],correctIndex:1,concept:"safety:bike-helmet"},{question:"Is it safe to play near a busy road?",options:["Yes, if careful","No, never","Only with friends"],correctIndex:1,concept:"safety:road-play"},{question:"What should you do if lost in a store?",options:["Wander around","Find a store worker and ask for help","Leave the store"],correctIndex:1,concept:"safety:lost-store"},{question:"Should you run near a swimming pool?",options:["Yes, to get there faster","No, you could slip and fall","Only if the floor is dry"],correctIndex:1,concept:"safety:pool-safety"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-memory-chores-13",title:"Chore Memory Match",category:"lifeSkills",subcategory:"daily-routine",template:"memory-flip",ageRange:[5,8],difficulty:2,icon:"grid",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["chores","responsibility","tool-matching"],tags:["chores","memory","tools"],content:{pairs:[{id:"pair-1",front:"Sweep the floor",match:"Broom",concept:"chore:sweep-broom"},{id:"pair-2",front:"Wash dishes",match:"Sponge",concept:"chore:wash-sponge"},{id:"pair-3",front:"Water plants",match:"Watering can",concept:"chore:water-can"},{id:"pair-4",front:"Clean windows",match:"Spray bottle",concept:"chore:window-spray"},{id:"pair-5",front:"Dry clothes",match:"Clothesline",concept:"chore:dry-line"},{id:"pair-6",front:"Take out trash",match:"Trash bag",concept:"chore:trash-bag"},{id:"pair-7",front:"Set the table",match:"Plates and forks",concept:"chore:table-setting"},{id:"pair-8",front:"Wipe counter",match:"Cloth",concept:"chore:wipe-cloth"}],gridColumns:4},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-drag-recycle-14",title:"Recycling Sort Advanced",category:"lifeSkills",subcategory:"environment",template:"drag-to-zone",ageRange:[5,9],difficulty:2,icon:"recycle",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:12,learningObjectives:["recycling","waste-management","environment"],tags:["recycling","environment","sorting"],content:{zones:[{id:"paper",label:"Paper",color:"#3498DB"},{id:"plastic",label:"Plastic",color:"#F39C12"},{id:"glass",label:"Glass",color:"#2ECC71"},{id:"organic",label:"Organic / Compost",color:"#8B4513"}],items:[{id:"cereal-box",label:"Cereal Box",zone:"paper",concept:"recycle:paper-cereal"},{id:"soda-bottle",label:"Soda Bottle",zone:"plastic",concept:"recycle:plastic-soda"},{id:"wine-bottle",label:"Glass Bottle",zone:"glass",concept:"recycle:glass-wine"},{id:"banana-peel",label:"Banana Peel",zone:"organic",concept:"recycle:organic-banana"},{id:"envelope",label:"Paper Envelope",zone:"paper",concept:"recycle:paper-envelope"},{id:"detergent",label:"Detergent Bottle",zone:"plastic",concept:"recycle:plastic-detergent"},{id:"mason-jar",label:"Mason Jar",zone:"glass",concept:"recycle:glass-mason"},{id:"apple-core",label:"Apple Core",zone:"organic",concept:"recycle:organic-apple"},{id:"wrapping-paper",label:"Wrapping Paper",zone:"paper",concept:"recycle:paper-wrapping"},{id:"milk-carton",label:"Plastic Milk Carton",zone:"plastic",concept:"recycle:plastic-milk"},{id:"coffee-grounds",label:"Coffee Grounds",zone:"organic",concept:"recycle:organic-coffee"},{id:"pasta-sauce-jar",label:"Pasta Sauce Jar",zone:"glass",concept:"recycle:glass-sauce"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-spot-hazards-15",title:"Spot the Hazard",category:"lifeSkills",subcategory:"safety",template:"spot-difference",ageRange:[5,8],difficulty:2,icon:"alert",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["safety","hazard-awareness","home-safety"],tags:["safety","hazards","home"],content:{rounds:[{title:"Kitchen: Knife left on edge of counter",differences:[{x:60,y:30,label:"A knife on the edge could fall and hurt someone"}],concept:"hazard:knife-edge"},{title:"Bathroom: Water puddle on tile floor",differences:[{x:40,y:70,label:"A wet floor is slippery and can cause falls"}],concept:"hazard:wet-floor"},{title:"Living room: Electrical cord across walkway",differences:[{x:50,y:60,label:"A cord on the floor is a tripping hazard"}],concept:"hazard:trip-cord"},{title:"Bedroom: Candle burning near curtains",differences:[{x:70,y:20,label:"An open flame near fabric can start a fire"}],concept:"hazard:candle-curtain"},{title:"Garage: Cleaning chemicals on low shelf",differences:[{x:30,y:50,label:"Chemicals should be stored high and locked away from children"}],concept:"hazard:chemicals-low"},{title:"Garden: Broken glass on the grass",differences:[{x:55,y:65,label:"Broken glass can cut bare feet"}],concept:"hazard:broken-glass"},{title:"Kitchen: Pot handle sticking out over stove edge",differences:[{x:45,y:25,label:"A pot handle sticking out can be bumped and spill hot liquid"}],concept:"hazard:pot-handle"},{title:"Hallway: Heavy bookshelf not anchored to wall",differences:[{x:35,y:40,label:"An unsecured bookshelf can tip over on children"}],concept:"hazard:bookshelf-tip"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-sequence-routine-16",title:"Daily Routine Order",category:"lifeSkills",subcategory:"daily-routine",template:"sequence-order",ageRange:[4,7],difficulty:1,icon:"calendar-clock",color:"#FFE66D",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["routine","time-management","sequencing"],tags:["routine","daily-l
1ife","evening"],content:{sequences:[{items:["Come home from school","Wash hands","Have a healthy snack","Do homework","Play or read","Help set the dinner table","Eat dinner with family","Brush teeth and go to bed"],concept:"routine:after-school"},{items:["Put away toys","Take a warm bath","Put on pajamas","Brush teeth","Read a bedtime story","Say goodnight to family","Turn off the light","Close eyes and sleep"],concept:"routine:bedtime"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-word-feelings-17",title:"Feelings Word Builder",category:"lifeSkills",subcategory:"emotion-recognition",template:"word-build",ageRange:[5,8],difficulty:2,icon:"emoticon-happy",color:"#FFE66D",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["emotions","vocabulary","self-awareness"],tags:["emotions","feelings","vocabulary"],content:{words:[{word:"happy",hint:"Feeling joyful and pleased",concept:"feeling:happy",extraLetters:2},{word:"angry",hint:"Feeling upset and frustrated",concept:"feeling:angry",extraLetters:2},{word:"scared",hint:"Feeling afraid of something",concept:"feeling:scared",extraLetters:2},{word:"excited",hint:"Feeling thrilled about something coming up",concept:"feeling:excited",extraLetters:3},{word:"lonely",hint:"Feeling alone and wishing for company",concept:"feeling:lonely",extraLetters:2},{word:"grateful",hint:"Feeling thankful for something good",concept:"feeling:grateful",extraLetters:3},{word:"nervous",hint:"Feeling worried about something ahead",concept:"feeling:nervous",extraLetters:3},{word:"proud",hint:"Feeling good about an achievement",concept:"feeling:proud",extraLetters:2},{word:"confused",hint:"Not understanding what is happening",concept:"feeling:confused",extraLetters:3},{word:"brave",hint:"Feeling courage even when afraid",concept:"feeling:brave",extraLetters:2}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-match-countries-18",title:"Countries and Landmarks",category:"lifeSkills",subcategory:"general-knowledge",template:"match-pairs",ageRange:[6,10],difficulty:2,icon:"earth",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["geography","countries","landmarks","culture"],tags:["geography","countries","landmarks"],content:{pairs:[{left:"France",right:"Eiffel Tower",concept:"geography:france-eiffel"},{left:"Egypt",right:"Pyramids",concept:"geography:egypt-pyramids"},{left:"China",right:"Great Wall",concept:"geography:china-wall"},{left:"India",right:"Taj Mahal",concept:"geography:india-taj"},{left:"USA",right:"Statue of Liberty",concept:"geography:usa-liberty"},{left:"Australia",right:"Sydney Opera House",concept:"geography:australia-opera"},{left:"Italy",right:"Colosseum",concept:"geography:italy-colosseum"},{left:"Brazil",right:"Christ the Redeemer",concept:"geography:brazil-christ"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-sim-budget-19",title:"Piggy Bank Simulator",category:"lifeSkills",subcategory:"money-management",template:"simulation",ageRange:[6,9],difficulty:2,icon:"piggy-bank",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["money-management","saving","spending-wisely","budgeting"],tags:["money","saving","budgeting","simulation"],content:{scenario:{title:"Save for a New Bike",concept:"money:saving-goal",startingMoney:15,items:[{name:"Save $3 in piggy bank",price:3,icon:"piggy-bank",isGood:!0,feedback:"Great choice! Saving brings you closer to your bike goal!"},{name:"Buy a small toy car",price:4,icon:"car",isGood:!1,feedback:"Fun now, but it takes money away from your bike savings."},{name:"Help neighbor and earn $2",price:-2,icon:"hand-heart",isGood:!0,feedback:"Earning money by helping others is wonderful!"},{name:"Buy candy at the store",price:2,icon:"candy",isGood:!1,feedback:"Candy is a small treat but does not help your savings."},{name:"Save $5 in piggy bank",price:5,icon:"piggy-bank",isGood:!0,feedback:"A big save! You are getting much closer to your goal!"},{name:"Buy a comic book",price:3,icon:"book-open-variant",isGood:!1,feedback:"You can borrow comics from the library for free!"},{name:"Do extra chores and earn $3",price:-3,icon:"broom",isGood:!0,feedback:"Working hard and earning money shows great responsibility!"},{name:"Buy stickers",price:1,icon:"star",isGood:!1,feedback:"Small purchases add up. Keep saving for the big goal!"}],goal:"Save as much money as you can for a new bicycle that costs $25!"}},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-manners-quiz-20",title:"Good Manners Quiz",category:"lifeSkills",subcategory:"manners",template:"multiple-choice",ageRange:[4,8],difficulty:1,icon:"hand-heart",color:"#FFE66D",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["manners","politeness","social-etiquette"],tags:["manners","etiquette","social"],content:{questions:[{question:"Someone gives you a gift. What do you say?",options:["Nothing","Thank you!","I wanted something else","Give me more"],correctIndex:1,concept:"manners:thank-you",hint:"Being grateful is important"},{question:"You accidentally bump into someone. What do you say?",options:["Watch where you are going!","N
1othing","Excuse me, I am sorry","That was your fault"],correctIndex:2,concept:"manners:sorry",hint:"Taking responsibility is polite"},{question:"You want to ask the teacher a question. What do you do?",options:["Shout the question loudly","Raise your hand and wait","Talk to your friend instead","Get up and walk to the teacher"],correctIndex:1,concept:"manners:raise-hand",hint:"Waiting your turn shows respect"},{question:"You are eating dinner with your family. What is good manners?",options:["Chew with your mouth open","Put elbows on the table","Chew with your mouth closed","Talk with food in your mouth"],correctIndex:2,concept:"manners:table-manners",hint:"Nobody wants to see chewed food"},{question:"Someone is speaking. What should you do?",options:["Interrupt them","Walk away","Listen quietly until they finish","Talk louder than them"],correctIndex:2,concept:"manners:listening",hint:"Everyone deserves to be heard"},{question:"You need to pass in front of someone. What do you say?",options:["Move!","Excuse me, please","Get out of my way","Nothing, just push through"],correctIndex:1,concept:"manners:excuse-me",hint:"Polite words help you get along with others"},{question:"An adult holds the door open for you. What do you do?",options:["Run through quickly",'Say "Thank you" and walk through',"Ignore them","Let the door close behind you"],correctIndex:1,concept:"manners:door-holding",hint:"Show appreciation when someone helps you"},{question:"You want to borrow a friend's toy. What do you say?",options:["Give it to me!","I want that","May I please borrow your toy?","Take it without asking"],correctIndex:2,concept:"manners:ask-permission",hint:'Using "please" and asking shows respect'},{question:"You sneeze in class. What should you do?",options:["Sneeze loudly into the air","Cover your mouth and say excuse me","Sneeze on your hand and touch things","Ignore it"],correctIndex:1,concept:"manners:sneeze-cover",hint:"Covering prevents spreading germs"},{question:"You meet a friend's parent for the first time. What do you say?",options:["Hey","Hello, it is nice to meet you","Who are you?","Say nothing"],correctIndex:1,concept:"manners:greeting-adults",hint:"A warm greeting makes a great first impression"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-healthy-tf-21",title:"Healthy Habits",category:"lifeSkills",subcategory:"healthy-habits",template:"true-false",ageRange:[5,8],difficulty:1,icon:"heart-pulse",color:"#FFE66D",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["healthy-habits","nutrition","exercise","sleep"],tags:["health","habits","nutrition"],content:{statements:[{text:"You should drink plenty of water every day.",answer:!0,concept:"health:drink-water",explanation:"Water keeps your body hydrated and helps it work properly!"},{text:"It is okay to eat candy for every meal.",answer:!1,concept:"health:balanced-diet",explanation:"You need fruits, vegetables, and protein for a balanced diet."},{text:"Getting 8-10 hours of sleep is good for growing kids.",answer:!0,concept:"health:sleep",explanation:"Sleep helps your brain and body grow strong!"},{text:"Exercise is only for adults.",answer:!1,concept:"health:exercise-kids",explanation:"Kids need at least 60 minutes of active play every day!"},{text:"Brushing your teeth twice a day keeps them healthy.",answer:!0,concept:"health:dental",explanation:"Brushing removes germs that can cause cavities."},{text:"You do not need to eat breakfast before school.",answer:!1,concept:"health:breakfast",explanation:"Breakfast gives your brain energy to learn and focus!"},{text:"Fruits and vegetables are important for your health.",answer:!0,concept:"health:fruits-veggies",explanation:"They have vitamins and minerals your body needs."},{text:"Watching TV all day is a healthy activity.",answer:!1,concept:"health:screen-time",explanation:"Too much screen time is not good. Mix in active play and reading!"},{text:"Washing your hands before eating prevents sickness.",answer:!0,concept:"health:handwashing",explanation:"Hand washing removes germs that can make you sick."},{text:"You should eat as many sweets as you want.",answer:!1,concept:"health:limit-sweets",explanation:"Too many sweets can cause tooth decay and are not nutritious."}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-community-helpers-22",title:"Community Helpers",category:"lifeSkills",subcategory:"community",template:"match-pairs",ageRange:[4,7],difficulty:1,icon:"account-group",color:"#FFE66D",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["community-helpers","occupations","roles"],tags:["community","helpers","occupations"],content:{pairs:[{left:"Doctor",right:"Helps you feel better when sick",concept:"community:doctor"},{left:"Firefighter",right:"Puts out fires and rescues people",concept:"community:firefighter"},{left:"Teacher",right:"Helps you learn at school",concept:"community:teacher"},{left:"Police Officer",right:"Keeps the community safe",concept:"community:police"},{left:"Farmer",right:"Grows food for us to eat",concept:"community:farmer"},{left:"Mail Carrier",right:"Delivers letters and packages",concept:"community:mail"},{left:"Dentist",right:"Takes care of your teeth",concept:"community:dentist"},{left:"Librarian",right:"Helps you find books to read",concept:"community:librarian"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-seasons-weather-23",title:"Seasons and Weather",category:"lifeSkills",subcategory:"general-knowledge",template:"drag-to-zone",ageRange:[4,7],difficulty:1,icon:"weather-sunny",color:"#FFE66D",estimatedMinutes:4,questionsPerSession:12,learningObjectives:["seasons","weather","nature-cycles"],tags:["seasons","weather","nature"],content:{zones:[{id:"spring",label:"Spring",color:"#2ECC71"},{id:"summer",label:"Summer",color:"#F1C40F"},{id:"autumn",label:"Autumn",color:"#E67E22"},{id:"winter",label:"Winter",color:"#3498DB"}],items:[{id:"flowers-bloom",label:"Flowers bloom",zone:"spring",concept:"season:spring-flowers"},{id:"swimming",label:"Swimming at the beach",zone:"summer",concept:"season:summer-swim"}
1,{id:"falling-leaves",label:"Leaves fall from trees",zone:"autumn",concept:"season:autumn-leaves"},{id:"snowman",label:"Building a snowman",zone:"winter",concept:"season:winter-snow"},{id:"baby-animals",label:"Baby animals are born",zone:"spring",concept:"season:spring-animals"},{id:"ice-cream",label:"Eating ice cream",zone:"summer",concept:"season:summer-icecream"},{id:"pumpkin",label:"Pumpkin picking",zone:"autumn",concept:"season:autumn-pumpkin"},{id:"warm-coat",label:"Wearing a warm coat",zone:"winter",concept:"season:winter-coat"},{id:"rain-boots",label:"Using rain boots",zone:"spring",concept:"season:spring-rain"},{id:"sun-hat",label:"Wearing a sun hat",zone:"summer",concept:"season:summer-hat"},{id:"harvest",label:"Harvesting crops",zone:"autumn",concept:"season:autumn-harvest"},{id:"hot-cocoa",label:"Drinking hot cocoa",zone:"winter",concept:"season:winter-cocoa"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-friendship-fill-24",title:"How to Be a Good Friend",category:"lifeSkills",subcategory:"social-skills",template:"fill-blank",ageRange:[5,8],difficulty:1,icon:"account-heart",color:"#FFE66D",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["friendship","social-skills","empathy"],tags:["friendship","social","kindness"],content:{questions:[{text:"A good friend ___ when you are feeling sad.",blank:"listens",options:["laughs","listens","ignores"],concept:"friendship:listening",hint:"A good friend pays attention to your feelings"},{text:"Friends should ___ their toys with each other.",blank:"share",options:["hide","share","break"],concept:"friendship:sharing",hint:"Giving others a turn is kind"},{text:"When your friend is hurt, you should show ___.",blank:"kindness",options:["anger","kindness","boredom"],concept:"friendship:kindness",hint:"Caring about how others feel"},{text:"A good friend keeps their ___ and does not tell secrets.",blank:"promise",options:["toys","promise","money"],concept:"friendship:trust",hint:"When you say you will do something"},{text:"Friends ___ each other when things are hard.",blank:"help",options:["trick","help","blame"],concept:"friendship:helping",hint:"Supporting someone through difficult times"},{text:"It is important to say ___ when you hurt a friend's feelings.",blank:"sorry",options:["nothing","sorry","goodbye"],concept:"friendship:apologizing",hint:"Taking responsibility for mistakes"},{text:"Good friends take ___ and do not always go first.",blank:"turns",options:["everything","turns","breaks"],concept:"friendship:fairness",hint:"Being fair means everyone gets a chance"},{text:"Friends should be ___ to each other no matter what.",blank:"respectful",options:["mean","respectful","bossy"],concept:"friendship:respect",hint:"Treating others the way you want to be treated"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"life-counting-deeds-25",title:"Counting Good Deeds",category:"lifeSkills",subcategory:"kindness",template:"counting",ageRange:[4,7],difficulty:1,icon:"hand-heart",color:"#FFE66D",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["kindness","counting","moral-values"],tags:["kindness","counting","good-deeds"],content:{rounds:[{count:3,icon:"hand-heart",color:"#FF69B4",concept:"deeds:help-3",label:"times you helped today"},{count:5,icon:"emoticon-happy",color:"#FFD700",concept:"deeds:smile-5",label:"smiles you shared"},{count:2,icon:"food",color:"#FF6347",concept:"deeds:share-2",label:"snacks you shared"},{count:4,icon:"account-heart",color:"#2ECC71",concept:"deeds:kind-4",label:"kind words you said"},{count:6,icon:"star",color:"#9370DB",concept:"deeds:star-6",label:"good deeds this week"},{count:1,icon:"broom",color:"#4682B4",concept:"deeds:clean-1",label:"time you cleaned up"},{count:7,icon:"heart",color:"#FF1493",concept:"deeds:love-7",label:"people you said I love you to"},{count:3,icon:"book-open-variant",color:"#20B2AA",concept:"deeds:read-3",label:"books you read to someone"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}}],{id:"sci-animal-habitats",title:"Animal Habitats",category:"science",subcategory:"biology",template:"drag-to-zone",ageRange:[4,7],difficulty:1,emoji:"\ud83c\udf33",description:"Sort animals into their correct habitats: Forest, Ocean, Desert, or Arctic.",questionCount:12,hasTimer:!1,icon:"tree",color:"#8BC34A",estimatedMinutes:5,questionsPerSession:12,learningObjectives:["habitats","animal-classification","ecosystems"],tags:["animals","habitats","nature","ecosystems"],content:{zones:[{id:"forest",label:"Forest",color:"#2E7D32"},{id:"ocean",label:"Ocean",color:"#1565C0"},{id:"desert",label:"Desert",color:"#F9A825"}
1,{id:"arctic",label:"Arctic",color:"#B3E5FC"}],items:[{id:"deer",label:"Deer",zone:"forest",concept:"habitat:forest-deer"},{id:"owl",label:"Owl",zone:"forest",concept:"habitat:forest-owl"},{id:"squirrel",label:"Squirrel",zone:"forest",concept:"habitat:forest-squirrel"},{id:"dolphin",label:"Dolphin",zone:"ocean",concept:"habitat:ocean-dolphin"},{id:"shark",label:"Shark",zone:"ocean",concept:"habitat:ocean-shark"},{id:"seahorse",label:"Seahorse",zone:"ocean",concept:"habitat:ocean-seahorse"},{id:"camel",label:"Camel",zone:"desert",concept:"habitat:desert-camel"},{id:"scorpion",label:"Scorpion",zone:"desert",concept:"habitat:desert-scorpion"},{id:"rattlesnake",label:"Rattlesnake",zone:"desert",concept:"habitat:desert-rattlesnake"},{id:"polar-bear",label:"Polar Bear",zone:"arctic",concept:"habitat:arctic-polar-bear"},{id:"penguin",label:"Penguin",zone:"arctic",concept:"habitat:arctic-penguin"},{id:"walrus",label:"Walrus",zone:"arctic",concept:"habitat:arctic-walrus"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-food-chains",title:"Food Chains",category:"science",subcategory:"biology",template:"drag-to-zone",ageRange:[5,8],difficulty:2,emoji:"\ud83e\udd81",description:"Sort animals by what they eat: Herbivore, Carnivore, or Omnivore.",questionCount:12,hasTimer:!1,icon:"food-steak",color:"#8BC34A",estimatedMinutes:5,questionsPerSession:12,learningObjectives:["food-chains","animal-diet","classification"],tags:["animals","food-chain","biology"],content:{zones:[{id:"herbivore",label:"Herbivore",color:"#4CAF50"},{id:"carnivore",label:"Carnivore",color:"#F44336"},{id:"omnivore",label:"Omnivore",color:"#FF9800"}],items:[{id:"cow",label:"Cow",zone:"herbivore",concept:"diet:herbivore-cow"},{id:"rabbit",label:"Rabbit",zone:"herbivore",concept:"diet:herbivore-rabbit"},{id:"giraffe",label:"Giraffe",zone:"herbivore",concept:"diet:herbivore-giraffe"},{id:"horse",label:"Horse",zone:"herbivore",concept:"diet:herbivore-horse"},{id:"lion",label:"Lion",zone:"carnivore",concept:"diet:carnivore-lion"},{id:"eagle",label:"Eagle",zone:"carnivore",concept:"diet:carnivore-eagle"},{id:"shark",label:"Shark",zone:"carnivore",concept:"diet:carnivore-shark"},{id:"wolf",label:"Wolf",zone:"carnivore",concept:"diet:carnivore-wolf"},{id:"bear",label:"Bear",zone:"omnivore",concept:"diet:omnivore-bear"},{id:"pig",label:"Pig",zone:"omnivore",concept:"diet:omnivore-pig"},{id:"chicken",label:"Chicken",zone:"omnivore",concept:"diet:omnivore-chicken"},{id:"raccoon",label:"Raccoon",zone:"omnivore",concept:"diet:omnivore-raccoon"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-animal-classification",title:"Animal Classification",category:"science",subcategory:"biology",template:"drag-to-zone",ageRange:[5,8],difficulty:2,emoji:"\ud83d\udc3e",description:"Sort animals into the correct group: Mammals, Birds, Fish, or Reptiles.",questionCount:12,hasTimer:!1,icon:"paw",color:"#8BC34A",estimatedMinutes:5,questionsPerSession:12,learningObjectives:["animal-groups","classification","vertebrates"],tags:["animals","classification","biology"],content:{zones:[{id:"mammals",label:"Mammals",color:"#8D6E63"},{id:"birds",label:"Birds",color:"#42A5F5"},{id:"fish",label:"Fish",color:"#26C6DA"},{id:"reptiles",label:"Reptiles",color:"#66BB6A"}],items:[{id:"dog",label:"Dog",zone:"mammals",concept:"class:mammal-dog"},{id:"whale",label:"Whale",zone:"mammals",concept:"class:mammal-whale"},{id:"bat",label:"Bat",zone:"mammals",concept:"class:mammal-bat"},{id:"parrot",label:"Parrot",zone:"birds",concept:"class:bird-parrot"},{id:"penguin",label:"Penguin",zone:"birds",concept:"class:bird-penguin"},{id:"eagle",label:"Eagle",zone:"birds",concept:"class:bird-eagle"},{id:"salmon",label:"Salmon",zone:"fish",concept:"class:fish-salmon"},{id:"clownfish",label:"Clownfish",zone:"fish",concept:"class:fish-clownfish"},{id:"swordfish",label:"Swordfish",zone:"fish",concept:"class:fish-swordfish"},{id:"crocodile",label:"Crocodile",zone:"reptiles",concept:"class:reptile-crocodile"},{id:"turtle",label:"Turtle",zone:"reptiles",concept:"class:reptile-turtle"},{id:"lizard",label:"Lizard",zone:"reptiles",concept:"class:reptile-lizard"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-plant-parts",title:"Parts of a Plant",category:"science",subcategory:"botany",template:"sequence-order",ageRange:[4,7],difficulty:1,emoji:"\ud83c\udf31",description:"Order the parts of a plant from the bottom to the top.",questionCount:8,hasTimer:!1,icon:"flower",color:"#8BC34A",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["plant-anatomy","sequencing","botany"],tags:["plants","botany","nature"],content:{sequences:[{items:["Root","Stem","Branch","Leaf","Flower","Fruit","Seed"],concept:"plant:parts-bottom-to-top"},{items:["Roots absorb water","Stem carries water up","Leaves make food from sunlight","Flower attracts bees","Seeds form inside fruit","Fruit falls to ground","New plant grows from seed"],concept:"plant:function-sequence"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-plant-growth",title:"Plant Growth Cycle",category:"science",subcategory:"botany",template:"sequence-order",ageRange:[4,7],difficulty:1,emoji:"\ud83c\udf3b",description:"Put the stages of plant growth in the correct order, from seed to fruit.",questionCount:8,hasTimer:!1,icon:"sprout",color:"#8BC34A",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["plant-lifecycle","sequencing","growth"],tags:["plants","lifecycle","growth"],content:{sequences:[{items:["Plant a seed in soil","Water the seed","Seed sprouts a root","A tiny shoot appears","Stem grows taller","Leaves open up","Flower blooms","Fruit grows"],concept:"plant:growth-cycle"}
1,{items:["Seed","Germination","Seedling","Young plant","Mature plant","Flowering","Pollination","Fruit and seeds"],concept:"plant:lifecycle-stages"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-weather-types",title:"Weather Types",category:"science",subcategory:"earth-science",template:"match-pairs",ageRange:[4,7],difficulty:1,emoji:"\u2600\ufe0f",description:"Match each weather type with what it feels like or looks like.",questionCount:8,hasTimer:!1,icon:"weather-partly-cloudy",color:"#8BC34A",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["weather","observation","earth-science"],tags:["weather","nature","seasons"],content:{pairs:[{left:"Sunny",right:"Hot and bright",concept:"weather:sunny"},{left:"Rainy",right:"Wet and grey",concept:"weather:rainy"},{left:"Snowy",right:"Cold and white",concept:"weather:snowy"},{left:"Windy",right:"Trees sway and blow",concept:"weather:windy"},{left:"Cloudy",right:"Sky is covered",concept:"weather:cloudy"},{left:"Stormy",right:"Thunder and lightning",concept:"weather:stormy"},{left:"Foggy",right:"Hard to see far",concept:"weather:foggy"},{left:"Hail",right:"Ice balls fall",concept:"weather:hail"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-seasons",title:"Seasons",category:"science",subcategory:"earth-science",template:"match-pairs",ageRange:[4,7],difficulty:1,emoji:"\ud83c\udf42",description:"Match each season with something you see or do during that time of year.",questionCount:8,hasTimer:!1,icon:"weather-sunny",color:"#8BC34A",estimatedMinutes:3,questionsPerSession:8,learningObjectives:["seasons","earth-science","observation"],tags:["seasons","nature","weather"],content:{pairs:[{left:"Spring",right:"Flowers bloom",concept:"season:spring"},{left:"Summer",right:"Beach and sunshine",concept:"season:summer"},{left:"Autumn",right:"Leaves change color",concept:"season:autumn"},{left:"Winter",right:"Snow and cold",concept:"season:winter"},{left:"Spring",right:"Baby animals are born",concept:"season:spring-animals"},{left:"Summer",right:"Longest days of the year",concept:"season:summer-daylight"},{left:"Autumn",right:"Harvest time",concept:"season:autumn-harvest"},{left:"Winter",right:"Shortest days of the year",concept:"season:winter-daylight"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-planets",title:"Planets",category:"science",subcategory:"space",template:"multiple-choice",ageRange:[5,9],difficulty:2,emoji:"\ud83e\ude90",description:"Test your knowledge of the solar system and its eight planets.",questionCount:10,hasTimer:!1,icon:"earth",color:"#8BC34A",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["solar-system","planets","space"],tags:["space","planets","solar-system"],content:{questions:[{question:"Which planet is closest to the Sun?",options:["Venus","Mercury","Earth","Mars"],correctIndex:1,concept:"planet:mercury",hint:"It is the smallest planet and very hot on the sunny side"},{question:"Which planet do we live on?",options:["Mars","Jupiter","Earth","Venus"],correctIndex:2,concept:"planet:earth",hint:"It is the only planet known to have life"},{question:"Which planet is known as the Red Planet?",options:["Jupiter","Saturn","Mars","Neptune"],correctIndex:2,concept:"planet:mars",hint:"Its soil is rich in iron oxide, which looks red"},{question:"Which is the largest planet in our solar system?",options:["Saturn","Jupiter","Neptune","Uranus"],correctIndex:1,concept:"planet:jupiter",hint:"It is so big that over 1,000 Earths could fit inside it"},{question:"Which planet is famous for its beautiful rings?",options:["Jupiter","Uranus","Neptune","Saturn"],correctIndex:3,concept:"planet:saturn",hint:"Its rings are made of ice and rock"},{question:"Which planet is the hottest in our solar system?",options:["Mercury","Venus","Mars","Jupiter"],correctIndex:1,concept:"planet:venus-temp",hint:"Its thick atmosphere traps heat like a greenhouse"},{question:"How many planets are in our solar system?",options:["7","8","9","10"],correctIndex:1,concept:"planet:count",hint:"Pluto was reclassified as a dwarf planet"},{question:"Which planet spins on its side?",options:["Neptune","Saturn","Uranus","Jupiter"],correctIndex:2,concept:"planet:uranus",hint:"It is the seventh planet from the Sun"},{question:"Which planet is farthest from the Sun?",options:["Uranus","Saturn","Pluto","Neptune"],correctIndex:3,concept:"planet:neptune",hint:"It is a blue ice giant and the eighth planet"},{question:"What is the name of the star at the center of our solar system?",options:["Moon","Sun","Polaris","Sirius"],correctIndex:1,concept:"planet:sun-star",hint:"It gives us light and warmth every day"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-day-night",title:"Day & Night",category:"science",subcategory:"earth-science",template:"multiple-choice",ageRange:[4,7],difficulty:1,emoji:"\ud83c\udf19",description:"Learn about Earth rotation, shadows, the Sun, and the Moon.",questionCount:8,hasTimer:!1,icon:"weather-night",color:"#8BC34A",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["day-night-cycle","earth-rotation","shadows"],tags:["earth","sun","moon","shadows"],content:{questions:[{question:"Why do we have day and night?",options:["The Sun moves around us","The Earth spins on its axis","The Moon blocks the Sun","Clouds cover the Sun at night"],correctIndex:1,concept:"daynight:earth-rotation",hint:"The Earth takes about 24 hours to make one full spin"},{question:"What do we see in the sky during the day?",options:["Moon","Stars","Sun","Planets"],correctIndex:2,concept:"daynight:sun-day",hint:"It is very bright and gives us warmth"},{question:"What can you see in the night sky?",options:["Rainbows","Stars and Moon","Clouds only","The Sun"],correctIndex:1,concept:"daynight:night-sky",hint:"They twinkle and glow in the dark sky"},{question:"When is your shadow the longest?",options:["At noon","In the morning or evening","At midnight","Shadows are always the same"],correctIndex:1,concept:"daynight:shadow-length",hint:"When the Sun is low in the sky, shadows stretch out"},{question:"How long does it take Earth to spin once?",options:["12 hours","24 hours","7 days","365 days"],correctIndex:1,concept:"daynight:rotation-time",hint:"One full day and night together"},{question:"What causes shadows?",options:["Wind","Rain","An object blocking light","Cold weather"],correctIndex:2,concept:"daynight:shadow-cause",hint:"Light cannot pass through solid objects"},{question:"Which gives off its own light?",options:["Moon","Earth","Sun","Mars"],correctIndex:2,concept:"daynight:light-source",hint:"It is a star that burns very brightly"},{question:"When it is daytime where you live, what is it on the other side of the Earth?",options:["Also daytime","Nighttime","Always dark","Always light"],correctIndex:1,concept:"daynight:opposite-side",hint:"Only one side of Earth faces the Sun at a time"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-body-organs",title:"Body Organs",category:"science",subcategory:"human-body",template:"puzzle-assemble",ageRange:[5,9],difficulty:2,emoji:"\u2764\ufe0f",description:"Assemble the major organs of the human body and learn what each one does.",questionCount:8,hasTimer:!1,icon:"heart-pulse",color:"#8BC34A",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["human-body","organs","anatomy"],tags:["body","organs","anatomy","health"],content:{puzzles:[{title:"Major Body Organs",concept:"body:organs-assembly",pieces:[{id:"brain",label:"Brain - controls thinking and movement"},{id:"heart",label:"Heart - pumps blood through the body"},{id:"lungs",label:"Lungs - help you breathe air"},{id:"stomach",label:"Stomach - breaks down food"},{id:"liver",label:"Liver - cleans your blood"},{id:"kidneys",label:"Kidneys - filter waste from blood"},{id:"intestines",label:"Intestines - absorb nutrients from food"},{id:"skin",label:"Skin - protects your body from germs"}]}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-five-senses",title:"Five Senses",category:"science",subcategory:"human-body",template:"puzzle-assemble",ageRange:[4,7],difficulty:1,emoji:"\ud83d\udc41\ufe0f",description:"Learn about sight, hearing, smell, taste, and touch by assembling the five senses.",questionCount:8,hasTimer:!1,icon:"eye",color:"#8BC34A",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["five-senses","human-body","observation"],tags:["senses","body","observation"],content:{puzzles:[{title:"The Five Senses",concept:"body:five-senses",pieces:[{id:"sight",label:"Sight - Eyes help you see colors and shapes"},{id:"hearing",label:"Hearing - Ears help you hear sounds and music"},{id:"smell",label:"Smell - Nose helps you smell flowers and food"},{id:"taste",label:"Taste - Tongue helps you taste sweet and sour"},{id:"touch",label:"Touch - Skin helps you feel hot and cold"}]},{title:"Match Sense to Example",concept:"body:senses-examples",pieces:[{id:"see-rainbow",label:"Seeing a rainbow - Sight"},{id:"hear-bird",label:"Hearing a bird sing - Hearing"},{id:"smell-cookie",label:"Smelling fresh cookies - Smell"},{id:"taste-lemon",label:"Tasting a sour lemon - Taste"},{id:"touch-ice",label:"Touching cold ice - Touch"}]}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-continents",title:"Continents",category:"science",subcategory:"geography",template:"puzzle-assemble",ageRange:[5,9],difficulty:2,emoji:"\ud83c\udf0d",description:"Assemble the seven continents and learn a fun fact about each one.",questionCount:8,hasTimer:!1,icon:"earth",color:"#8BC34A",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["continents","geography","world-knowledge"],tags:["continents","geography","world"],content:{puzzles:[{title:"The 7 Continents",concept:"geo:continents-assembly",pieces:[{id:"asia",label:"Asia - the largest continent"},{id:"africa",label:"Africa - home to the Sahara Desert"},{id:"north-america",label:"North America - has the Grand Canyon"},{id:"south-america",label:"South America - has the Amazon Rainforest"},{id:"europe",label:"Europe - has the Eiffel Tower"},{id:"australia",label:"Australia - home to kangaroos"},{id:"antarctica",label:"Antarctica - the coldest continent"}]}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-water-cycle",title:"Water Cycle",category:"science",subcategory:"earth-science",template:"sequence-order",ageRange:[5,8],difficulty:2,emoji:"\ud83d\udca7",description:"Put the stages of the water cycle in the correct order.",questionCount:8,hasTimer:!1,icon:"water",color:"#8BC34A",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["water-cycle","evaporation","precipitation"],tags:["water","cycle","earth-science"],content:{sequences:[{items:["Sun heats the water","Water evaporates into the air","Water vapor rises and cools","Clouds form from tiny droplets","Clouds get heavy with water","Rain falls from the clouds","Water flows into rivers","Rivers carry water to the ocean"],concept:"water:cycle-full"},{items:["Evaporation","Condensation","Cloud formation","Precipitation","Collection"],concept:"water:cycle-stages"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-materials",title:"Materials & Properties",category:"science",subcategory:"physics",template:"true-false",ageRange:[5,8],difficulty:2,emoji:"\ud83e\uddea",description:"Decide if statements about everyday materials and their properties are true or false.",questionCount:10,hasTimer:!1,icon:"flask",color:"#8BC34A",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["materials","properties","states-of-matter"],tags:["materials","physics","properties"],content:{statements:[{text:"Wood floats on water.",answer:!0,concept:"material:wood-floats",explanation:"Most wood is less dense than water, so it floats on the surface."},{text:"A metal spoon will sink in water.",answer:!0,concept:"material:metal-sinks",explanation:"Metal is denser than water, so it sinks to the bottom."},{text:"Glass is a flexible material that bends easily.",answer:!1,concept:"material:glass-rigid",explanation:"Glass is hard and brittle. It breaks rather than bends."},{text:"Rubber can stretch and bounce back to its shape.",answer:!0,concept:"material:rubber-elastic",explanation:"Rubber is elastic, which means it can stretch and return to its original shape."},{text:"Ice is a solid form of water.",answer:!0,concept:"material:ice-solid",explanation:"When water freezes at 0 degrees Celsius, it becomes solid ice."},{text:"A rock will melt if you put it in warm water.",answer:!1,concept:"material:rock-melt",explanation:"Rocks need extremely high temperatures to melt, much hotter than warm water."},{text:"Paper is waterproof and does not get wet.",answer:!1,concept:"material:paper-absorbs",explanation:"Paper absorbs water and becomes soggy when wet."},{text:"Magnets can attract iron and steel objects.",answer:!0,concept:"material:magnet-attract",explanation:"Magnets have a special force that pulls iron and steel toward them."},{text:"Plastic is made from natural materials found in the ground.",answer:!0,concept:"material:plastic-origin",explanation:"Most plastic is made from oil, which comes from deep underground."},{text:"Cotton fabric is heavier than a steel chain of the same size.",answer:!1,concept:"material:cotton-light",explanation:"Cotton is much lighter than steel because it is less dense."}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"sci-simple-machines",title:"Simple Machines",category:"science",subcategory:"physics",template:"memory-flip",ageRange:[5,9],difficulty:2,emoji:"\u2699\ufe0f",description:"Match each simple machine with a real-world example of how it is used.",questionCount:8,hasTimer:!1,icon:"cog",color:"#8BC34A",estimatedMinutes:5,questionsPerSession:8,learningObjectives:["simple-machines","physics","engineering"],tags:["machines","physics","engineering"],content:{pairs:[{id:"lever",front:"Lever",match:"Seesaw",concept:"machine:lever"},{id:"wheel",front:"Wheel & Axle",match:"Bicycle",concept:"machine:wheel-axle"},{id:"pulley",front:"Pulley",match:"Flagpole rope",concept:"machine:pulley"},{id:"inclined-plane",front:"Inclined Plane",match:"Ramp",concept:"machine:inclined-plane"},{id:"wedge",front:"Wedge",match:"Axe blade",concept:"machine:wedge"},{id:"screw",front:"Screw",match:"Jar lid",concept:"machine:screw"},{id:"lever2",front:"Lever example",match:"Bottle opener",concept:"machine:lever-opener"},{id:"wheel2",front:"Wheel example",match:"Doorknob",concept:"machine:wheel-doorknob"}],gridColumns:4},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},...[{id:"create-color-mixing-01",title:"Color Mixing Lab",category:"creativity",subcategory:"color-theory",template:"simulation",ageRange:[4,7],difficulty:1,icon:"palette",color:"#E056A0",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["color-theory","primary-colors","secondary-colors"],tags:["colors","art","mixing"],content:{scenario:{title:"Mix Colors Like an Artist",concept:"creativity:color-mixing",startingMoney:0,items:[{name:"Mix Red + Yellow to make Orange",price:0,icon:"palette",isGood:!0,feedback:"Yes! Red and yellow combine to create a warm orange."},{name:"Mix Red + Green to make Orange",price:0,icon:"palette",isGood:!1,feedback:"Red and green actually make a brownish color, not orange."},{name:"Mix Blue + Yellow to make Green",price:0,icon:"palette",isGood:!0,feedback:"Correct! Blue and yellow make green, like grass and leaves."},{name:"Mix Blue + Red to make Green",price:0,icon:"palette"
1,isGood:!1,feedback:"Blue and red make purple, not green."},{name:"Mix Red + Blue to make Purple",price:0,icon:"palette",isGood:!0,feedback:"Great job! Red and blue mix together to create purple."},{name:"Mix Yellow + Blue to make Purple",price:0,icon:"palette",isGood:!1,feedback:"Yellow and blue make green, not purple."},{name:"Mix Red + White to make Pink",price:0,icon:"palette",isGood:!0,feedback:"Adding white to red lightens it into a lovely pink."},{name:"Mix Blue + White to make Light Blue",price:0,icon:"palette",isGood:!0,feedback:"Adding white to blue creates a soft light blue, like the sky."},{name:"Mix Yellow + Green to make Blue",price:0,icon:"palette",isGood:!1,feedback:"Yellow and green do not make blue. Blue is a primary color."},{name:"Mix Black + White to make Gray",price:0,icon:"palette",isGood:!0,feedback:"Correct! Mixing black and white gives you gray."}],goal:"Choose the correct color mixes to learn how new colors are made!"}},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"create-pattern-rush-02",title:"Pattern Rush",category:"creativity",subcategory:"patterns",template:"timed-rush",ageRange:[4,7],difficulty:1,icon:"shape-plus",color:"#E056A0",estimatedMinutes:3,questionsPerSession:12,learningObjectives:["pattern-recognition","visual-thinking","creativity"],tags:["patterns","shapes","colors"],content:{timeLimit:60,questions:[{question:"Red, Blue, Red, Blue, ___?",options:["Green","Red","Yellow","Blue"],correctIndex:1,concept:"pattern:color-ab"},{question:"Circle, Square, Circle, Square, ___?",options:["Triangle","Circle","Star","Square"],correctIndex:1,concept:"pattern:shape-ab"},{question:"Big, Small, Big, Small, ___?",options:["Medium","Small","Big","Tiny"],correctIndex:2,concept:"pattern:size-ab"},{question:"Star, Star, Heart, Star, Star, ___?",options:["Star","Heart","Circle","Square"],correctIndex:1,concept:"pattern:aab"},{question:"Red, Yellow, Blue, Red, Yellow, ___?",options:["Red","Green","Blue","Yellow"],correctIndex:2,concept:"pattern:color-abc"},{question:"Up, Down, Up, Down, ___?",options:["Left","Down","Up","Right"],correctIndex:2,concept:"pattern:direction-ab"},{question:"Happy, Sad, Happy, Sad, ___?",options:["Angry","Happy","Sleepy","Sad"],correctIndex:1,concept:"pattern:emotion-ab"},{question:"Triangle, Triangle, Circle, Triangle, Triangle, ___?",options:["Square","Triangle","Circle","Star"],correctIndex:2,concept:"pattern:shape-aab"},{question:"Clap, Clap, Stomp, Clap, Clap, ___?",options:["Clap","Jump","Stomp","Snap"],correctIndex:2,concept:"pattern:rhythm-aab"},{question:"Sun, Moon, Star, Sun, Moon, ___?",options:["Moon","Sun","Star","Cloud"],correctIndex:2,concept:"pattern:sky-abc"},{question:"1, 2, 1, 2, 1, ___?",options:["1","3","2","0"],correctIndex:2,concept:"pattern:number-ab"},{question:"Cat, Dog, Bird, Cat, Dog, ___?",options:["Cat","Fish","Bird","Dog"],correctIndex:2,concept:"pattern:animal-abc"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"create-music-match-03",title:"Musical Instruments Match",category:"creativity",subcategory:"music",template:"match-pairs",ageRange:[4,7],difficulty:1,icon:"music",color:"#E056A0",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["music-awareness","instrument-families","matching"],tags:["music","instruments","sounds"],content:{pairs:[{left:"Guitar",right:"Strings",concept:"music:guitar-family"},{left:"Drum",right:"Percussion",concept:"music:drum-family"},{left:"Flute",right:"Woodwind",concept:"music:flute-family"},{left:"Trumpet",right:"Brass",concept:"music:trumpet-family"},{left:"Piano",right:"Keyboard",concept:"music:piano-family"},{left:"Violin",right:"Strings",concept:"music:violin-family"},{left:"Tambourine",right:"Percussion",concept:"music:tambourine-family"},{left:"Harmonica",right:"Woodwind",concept:"music:harmonica-family"},{left:"Xylophone",right:"Percussion",concept:"music:xylophone-family"},{left:"Harp",right:"Strings",concept:"music:harp-family"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"create-story-adventure-04",title:"The Magical Art Show",category:"creativity",subcategory:"storytelling",template:"story-builder",ageRange:[5,8],difficulty:2,icon:"book-open-page-variant",color:"#E056A0",estimatedMinutes:6,questionsPerSession:8,learningObjectives:["storytelling","imagination","decision-making","creative-thinking"],tags:["story","art","imagination","creativity"],content:{story:{start:"studio-door",scenes:{"studio-door":{text:'You find a mysterious door in the school hallway with a sign that reads "Art Studio of Wonders." You hear soft music playing inside and see sparkles of light under the door. What do you do?',icon:"door",choices:[{text:"Open the door and step inside",nextScene:"inside-studio",isGood:!0,concept:"creativity:curiosity-explore"},{text:"Walk away because it looks strange",nextScene:"walk-away",isGood:!1,concept:"creativity:missed-opportunity"}]},"walk-away":{text:'You start to walk away, but you hear a gentle voice say "Every artist was first an explorer." Your curiosity grows stronger. Maybe you should go back and see what is inside.',icon:"lightbulb",choices:[{text:"Go back and open the door",nextScene:"inside-studio",isGood:!0,concept:"creativity:courage-return"}]},"inside-studio":{text:'Inside is a magical art studio! Paintings float in the air, sculptures change shape, and paintbrushes dance by themselves. A friendly owl wearing a beret says "Welcome, young artist! Pick a creative tool to begin your adventure."',icon:"palette",choices:[{text:"Pick up the glowing paintbrush",nextScene:"paintbrush-path",isGood:!0,concept:"creativity:painting-choice"},{text:"Pick up the singing clay",nextScene:"sculpture-path",isGood:!0,concept:"creativity:sculpture-choice"}]},"paintbrush-path":{text:'The paintbrush glows brighter in your hand! When you wave it through the air, it leaves trails of rainbow light. The owl says "Paint something from your imagination, and it will come to life!" What will you paint?',icon:"brush",choices:[{text:"Paint a friendly dragon",nextScene:"dragon-scene",isGood:!0,concept:"creativity:imagination-dragon"},{text:"Paint a beautiful garden",nextScene:"garden-scene",isGood:!0,concept:"creativity:imagination-garden"}]},"sculpture-path":{text:'The clay hums a lovely tune as you hold it. When you shape it with your hands, it wiggles and giggles. The owl says "Whatever you sculpt will dance and play!" What will you create?',icon:"creation",choices:[{text:"Sculpt a playful kitten",nextScene:"dragon-scene",isGood:!0,concept:"creativity:imagination-kitten"},{text:"Sculpt a tiny castle",nextScene:"garden-scene",isGood:!0,concept:"creativity:imagination-castle"}]},"dragon-scene":{text:"Your creation comes alive! It is small and friendly, and it wants to help you decorate the studio for the big Art Show tonight. You need to choose colors for the banner. What colors will you pick?",icon:"star",choices:[{text:"Bright rainbow colors to make everyone smile",nextScene:"art-show",isGood:!0,concept:"creativity:color-bold"},{text:"Soft pastel colors for a calm feeling",nextScene:"art-show",isGood:!0,concept:"creativity:color-gentle"}]},"garden-scene":{text:'Your creation blooms with life! Flowers open, butterflies appear, and a little fountain plays music. The owl claps and says "Wonderful! Now help me design an invitation for the Art Show tonight."',icon:"flower",choices:[{text:"Draw colorful flowers on the invitation",nextScene:"art-show",isGood:!0,concept:"creativity:design-floral"},{text:"Write a poem for the invitation",nextScene:"art-show",isGood:!0,concept:"creativity:design-poetry"}]},"art-show":{text:'The Art Show is a huge success! Everyone loves your creations. The owl gives you a Golden Brush award and says "Remember, creativity lives inside everyone. All you need to do is imagine, and your ideas can become real." You feel proud and inspired. The End!',icon:"trophy",choices:[]}}}},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"create-art-memory-05",title:"Art & Colors Memory",category:"creativity",subcategory:"art-vocabulary",template:"memory-flip",ageRange:[4,7],difficulty:1,icon:"grid",color:"#E056A0",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["art-vocabulary","memory","color-knowledge"],tags:["art","colors","memory","vocabulary"],content:{pairs:[{id:"art-1",front:"Brush",match:"Painting",concept:"art:brush-painting"},{id:"art-2",front:"Red + Blue",match:"Purple",concept:"art:mix-purple"},{id:"art-3",front:"Pencil",match:"Drawing",concept:"art:pencil-drawing"},{id:"art-4",front:"Red + Yellow",match:"Orange",concept:"art:mix-orange"},{id:"art-5",front:"Clay",match:"Sculpture",concept:"art:clay-sculpture"},{id:"art-6",front:"Blue + Yellow",match:"Green",concept:"art:mix-green"},{id:"art-7",front:"Camera",match:"Photography",concept:"art:camera-photo"},{id:"art-8",front:"Stage",match:"Theater",concept:"art:stage-theater"},{id:"art-9",front:"Crayon",match:"Coloring",concept:"art:crayon-coloring"},{id:"art-10",front:"Scissors",match:"Collage",concept:"art:scissors-collage"}],gridColumns:4},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"create-art-styles-06",title:"Art Styles Quiz",category:"creativity",subcategory:"art-knowledge",template:"multiple-choice",ageRange:[5,8],difficulty:2,icon:"image-frame",color:"#E056A0",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["art-appreciation","visual-literacy","art-knowledge"],tags:["art","styles","knowledge"],content:{questions:[{question:"What are the three primary colors?",options:["Red, Green, Purple","Red, Blue, Yellow","Orange, Green, Purple","Pink, Blue, Green"],correctIndex:1,concept:"art:primary-colors",hint:"The
1se colors cannot be made by mixing other colors together"},{question:"What do you call a picture of a person?",options:["Landscape","Still Life","Portrait","Abstract"],correctIndex:2,concept:"art:portrait",hint:"It focuses on someone's face or full body"},{question:"What tool does a sculptor use to shape clay?",options:["Paintbrush","Scissors","Hands and tools","Pencil"],correctIndex:2,concept:"art:sculpture-tools",hint:"Sculptors press and mold the material"},{question:"What is a painting of mountains, trees, and sky called?",options:["Portrait","Landscape","Abstract","Collage"],correctIndex:1,concept:"art:landscape",hint:"It shows outdoor scenery and nature"},{question:"What art form uses cut paper glued onto a surface?",options:["Painting","Drawing","Collage","Sculpture"],correctIndex:2,concept:"art:collage",hint:"You cut and paste different pieces together"},{question:"Which color do you get when you mix red and white?",options:["Purple","Orange","Pink","Gray"],correctIndex:2,concept:"art:mix-pink",hint:"Adding white makes a color lighter"},{question:"What is a drawing made with dots instead of lines called?",options:["Pointillism","Cubism","Realism","Sketching"],correctIndex:0,concept:"art:pointillism",hint:"Think of tiny points or dots placed close together"},{question:"What do artists use an easel for?",options:["Mixing paint","Holding a canvas while painting","Cleaning brushes","Cutting paper"],correctIndex:1,concept:"art:easel",hint:"It stands upright and holds the surface you paint on"},{question:"What are warm colors?",options:["Blue, Green, Purple","Red, Orange, Yellow","Black, White, Gray","Pink, Lavender, Teal"],correctIndex:1,concept:"art:warm-colors",hint:"Think of fire and sunshine"},{question:"What are cool colors?",options:["Red, Orange, Yellow","Blue, Green, Purple","Black, White, Gray","Pink, Peach, Cream"],correctIndex:1,concept:"art:cool-colors",hint:"Think of water, sky, and grass"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"create-word-art-07",title:"Creative Word Building",category:"creativity",subcategory:"art-vocabulary",template:"word-build",ageRange:[5,8],difficulty:2,icon:"alphabetical-variant",color:"#E056A0",estimatedMinutes:5,questionsPerSession:10,learningObjectives:["vocabulary","spelling","art-terms"],tags:["words","art","vocabulary","spelling"],content:{words:[{word:"paint",hint:"A colorful liquid you spread on paper with a brush",concept:"create-word:paint",extraLetters:2},{word:"color",hint:"Red, blue, and yellow are examples of this",concept:"create-word:color",extraLetters:2},{word:"brush",hint:"A tool with bristles used to apply paint",concept:"create-word:brush",extraLetters:2},{word:"music",hint:"Sounds and rhythms that you hear in songs",concept:"create-word:music",extraLetters:3},{word:"dance",hint:"Moving your body to rhythm and music",concept:"create-word:dance",extraLetters:2},{word:"canvas",hint:"The flat surface that artists paint on",concept:"create-word:canvas",extraLetters:3},{word:"sketch",hint:"A quick drawing made with a pencil",concept:"create-word:sketch",extraLetters:3},{word:"rhythm",hint:"A pattern of beats in music or poetry",concept:"create-word:rhythm",extraLetters:3},{word:"sculpt",hint:"To shape clay or material into art with your hands",concept:"create-word:sculpt",extraLetters:3},{word:"design",hint:"A plan or pattern for how something looks",concept:"create-word:design",extraLetters:3}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"create-art-truefalse-08",title:"Art or Not?",category:"creativity",subcategory:"art-knowledge",template:"true-false",ageRange:[4,7],difficulty:1,icon:"check-decagram",color:"#E056A0",estimatedMinutes:4,questionsPerSession:10,learningObjectives:["art-awareness","creative-thinking","critical-thinking"],tags:["art","knowledge","true-false"],content:{statements:[{text:"Drawing with crayons is a form of art.",answer:!0,concept:"art:crayon-art",explanation:"Drawing with crayons is definitely art! Any way you express your ideas visually is art."},{text:"Only adults can be artists.",answer:!1,concept:"art:anyone-artist",explanation:"Anyone can be an artist, even young children! Art is for everyone."},{text:"Music is a form of creative art.",answer:!0,concept:"art:music-is-art",explanation:"Music uses sounds and rhythms creatively, making it a wonderful art form."},{text:"You need expensive tools to make good art.",answer:!1,concept:"art:tools-myth",explanation:"You can make amazing art with simple things like paper, sticks, or even sand!"},{text:"Dancing is a creative activity.",answer:!0,concept:"art:dance-creative",explanation:"Dancing uses your body to express feelings and ideas. It is very creative!"},{text:"There is only one right way to draw a cat.",answer:!1,concept:"art:many-styles",explanation:"Every artist draws differently and that is what makes art special and unique!"},{text:"Singing is a way to express creativity.",answer:!0,concept:"art:singing-creative",explanation:"Singing lets you use your voice to create beautiful sounds and tell stories."},{text:"A sculpture is a flat picture on paper.",answer:!1,concept:"art:sculpture-3d",explanation:"A sculpture is a 3D artwork that you can see from all sides, not flat like a picture."},{text:"Building with blocks can be a creative activity.",answer:!0,concept:"art:building-creative",explanation:"Building and constructing things uses imagination and problem-solving, which are creative skills!"},{text:"Art must always look real and perfect.",answer:!1,concept:"art:abstract-ok",explanation:"Art can be abstract, silly, messy, or imaginary. There are no rules about what art should look like!"}]},rewards:{starsPerCorrect:1,bonusThreshold:8,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"create-tools-sort-09",title:"Art Tools Sorting",category:"creativity",subcategory:"art-tools",template:"drag-to-zone",ageRange:[4,7],difficulty:1,icon:"toolbox",color:"#E056A0",estimatedMinutes:4,questionsPerSession:12,learningObjectives:["art-tools","classification","creative-awareness"],tags:["art","tools","sorting","creativity"],content:{zones:[{id:"drawing",label:"Drawing Tools",color:"#9B59B6"},{id:"painting",label:"Painting Tools",color:"#E74C3C"},{id:"crafts",label:"Craft Supplies",color:"#2ECC71"}],items:[{id:"pencil",label:"Pencil",zone:"drawing",concept:"art-tool:pencil"}
1,{id:"paintbrush",label:"Paintbrush",zone:"painting",concept:"art-tool:paintbrush"},{id:"glue-stick",label:"Glue Stick",zone:"crafts",concept:"art-tool:glue"},{id:"eraser",label:"Eraser",zone:"drawing",concept:"art-tool:eraser"},{id:"watercolors",label:"Watercolors",zone:"painting",concept:"art-tool:watercolors"},{id:"scissors",label:"Scissors",zone:"crafts",concept:"art-tool:scissors"},{id:"charcoal",label:"Charcoal Stick",zone:"drawing",concept:"art-tool:charcoal"},{id:"palette",label:"Paint Palette",zone:"painting",concept:"art-tool:palette"},{id:"glitter",label:"Glitter",zone:"crafts",concept:"art-tool:glitter"},{id:"crayon",label:"Crayon",zone:"drawing",concept:"art-tool:crayon"},{id:"sponge",label:"Paint Sponge",zone:"painting",concept:"art-tool:sponge"},{id:"tape",label:"Craft Tape",zone:"crafts",concept:"art-tool:tape"}]},rewards:{starsPerCorrect:1,bonusThreshold:10,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}},{id:"create-design-steps-10",title:"Design Thinking Steps",category:"creativity",subcategory:"design-thinking",template:"sequence-order",ageRange:[5,8],difficulty:2,icon:"lightbulb-on",color:"#E056A0",estimatedMinutes:4,questionsPerSession:8,learningObjectives:["design-thinking","problem-solving","creative-process"],tags:["design","thinking","process","creativity"],content:{sequences:[{items:["Think of an idea","Draw a sketch","Pick your colors","Gather materials","Start creating","Add details","Check your work","Share with friends"],concept:"design:creative-process"},{items:["See a problem","Ask questions","Brainstorm ideas","Pick the best idea","Build a model","Test it out","Make it better","Present your solution"],concept:"design:problem-solving"}]},rewards:{starsPerCorrect:1,bonusThreshold:6,bonusStars:3},threeR:{measuresRetention:!0,measuresRecall:!0,measuresRegistration:!0}}]],a=n;function s(e){return n.find(t=>t.id===e)||null}},64583(e,t,o){o.d(t,{BE:()=>a,CB:()=>c,GX:()=>r,H7:()=>l,LL:()=>i,_e:()=>m,hh:()=>p,kz:()=>s,yC:()=>n});const n={background:"#FFF9E6",backgroundSecondary:"#FFF3E0",backgroundTertiary:"#FFF3E0",card:"#FFFFFF",cardHover:"#F5F5F5",cardShadow:"#636E72",cardBg:"rgba(30, 20, 60, 0.85)",cardBorder:"rgba(108, 92, 231, 0.25)",surface:"#FAFAFA",surfaceLight:"#F7F5FF",surfacePink:"#FFF0F3",surfaceBlue:"#EDF7FF",surfaceGreen:"#E6FFF5",surfaceYellow:"#FFF9E6",bgGradient:"linear-gradient(135deg, #f8f0ff 0%, #e8f4fd 50%, #fff5f5 100%)",textPrimary:"#2C3E50",textSecondary:"#7F8C8D",textMuted:"#B2BEC3",textOnDark:"#FFFFFF",accent:"#FF6B35",accentLight:"#FF8A5C",accentSecondary:"#4ECDC4",secondary:"#FF6584",blue:"#0984E3",pink:"#FD79A8",orange:"#FF6B35",green:"#00B894",purple:"#6C5CE7",yellow:"#FDCB6E",teal:"#4ECDC4",red:"#E74C3C",english:"#FF6B6B",math:"#4ECDC4",lifeSkills:"#FFE66D",science:"#A29BFE",creativity:"#FD79A8",gradientEnglish:"linear-gradient(135deg, #FF6B6B, #EE5A24)",gradientMath:"linear-gradient(135deg, #4ECDC4, #00B894)",gradientLifeSkills:"linear-gradient(135deg, #FFE66D, #FDCB6E)",gradientScience:"linear-gradient(135deg, #A29BFE, #6C5CE7)",gradientCreativity:"linear-gradient(135deg, #FD79A8, #E84393)",correct:"#2ECC71",correctLight:"#D4EFDF",correctBg:"rgba(46, 204, 113, 0.12)",incorrect:"#E74C3C",incorrectLight:"#FADBD8",incorrectBg:"rgba(231, 76, 60, 0.12)",star:"#FFD700",starGlow:"#F9CA24",streak:"#E17055",streakFire:"#FF4500",palette:["#FF6B6B","#4ECDC4","#45B7D1","#96CEB4","#FFEAA7","#DFE6E9","#FD79A8","#6C5CE7","#55EFC4","#81ECEC","#74B9FF","#A29BFE"],starBronze:"#E17055",starSilver:"#B2BEC3",starGold:"#FDCB6E",starFilled:"#FFD166",starEmpty:"#E0E0E0",primary:"#6C5CE7",primaryLight:"#A29BFE",primaryDark:"#4834D4",success:"#2ECC71",warning:"#F39C12",error:"#E74C3C",info:"#0984E3",border:"#E0E0E0",borderFocus:"#6C5CE7",gradientHeader:"linear-gradient(135deg, #6C5CE7, #A29BFE)",gradientSuccess:"linear-gradient(135deg, #00B894, #55EFC4)",gradientPrimary:"linear-gradient(135deg, #6C5CE7 0%, #A29BFE 100%)",gradientCorrect:"linear-gradient(135deg, #2ECC71 0%, #55EFC4 100%)",gradientIncorrect:"linear-gradient(135deg, #E74C3C 0%, #FAB1A0 100%)",gradientWarm:"linear-gradient(135deg, #F39C12 0%, #FDCB6E 100%)",gradientCool:"linear-gradient(135deg, #0984E3 0%, #74B9FF 100%)",gradientCard:"linear-gradient(145deg, rgba(30, 20, 60, 0.9) 0%, rgba(45, 34, 85, 0.7) 100%)",gradientCelebration:"linear-gradient(135deg, #FDCB6E 0%, #F39C12 30%, #E17055 60%, #FD79A8 100%)",difficultyEasy:"#00B894",difficultyMedium:"#FDCB6E",difficultyHard:"#FF6B6B",hintBg:"#FFF9E6",warmBg:"#FFF0E0",overlay:"rgba(0,0,0,0.45)",overlayDark:"rgba(0,0,0,0.5)",overlayLight:"rgba(255,255,255,0.9)",shadowPrimary:"0 4px 20px rgba(108, 92, 231, 0.3)",shadowCorrect:"0 4px 20px rgba(46, 204, 113, 0.3)",shadowIncorrect:"0 4px 20px rgba(231, 76, 60, 0.3)",shadowCard:"0 8px 32px rgba(0, 0, 0, 0.3)",shadowElevated:"0 12px 40px rgba(0, 0, 0, 0.4)",glowPrimary:"0 0 20px rgba(108, 92, 231, 0.4)",glowCorrect:"0 0 20px rgba(46, 204, 113, 0.4)",glowIncorrect:"0 0 20px rgba(231, 76, 60, 0.4)"},a={xs:4,sm:8,md:16,lg:24,xl:32,xxl:48},s={sm:"8px",md:"12px",lg:"16px",xl:"24px",xxl:"32px",full:"9999px",pill:"9999px"},r=s,i={xs:12,sm:14,md:18,lg:22,xl:28,xxl:36,display:48},c={normal:400,medium:500,semibold:600,bold:700,extrabold:800},l={card:"0px 4px 20px rgba(108, 99, 255, 0.10)",cardHover:"0px 8px 30px rgba(108, 99, 255, 0.18)",button:"0px 4px 8px rgba(108, 92, 231, 0.20)",buttonHover:"0px 6px 12px rgba(108, 92, 231, 0.30)",fab:"0 6px 24px rgba(108, 99, 255, 0.35)",float:"0px 6px 12px rgba(0, 0, 0, 0.15)",modal:"0px 8px 24px rgba(0, 0, 0, 0.20)",none:"none"},d="all 0.25s ease-in-out",u="all 0.35s cubic-bezier(0.68, -0.55, 0.265, 1.55)",h="all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",p={fadeInUp:{"@keyframes fadeInUp":{"0%":{opacity:0,transform:"translateY(24px)"},"100%":{opacity:1,transform:"translateY(0)"}}},fadeInScale:{"@keyframes fadeInScale":{"0%":{opacity:0,transform:"scale(0.85)"},"100%":{opacity:1,transform:"scale(1)"}}},pulse:{"@keyframes pulse":{"0%, 100%":{transform:"scale(1)"},"50%":{transform:"scale(1.05)"}}},wiggle:{"@keyframes wiggle":{"0%, 100%":{transform:"rotate(0deg)"},"25%":{transform:"rotate(-3deg)"},"75%":{transform:"rotate(3deg)"}}},float:{"@keyframes float":{"0%, 100%":{transform:"translateY(0)"},"50%":{transform:"translateY(-8px)"}}},celebrate:{"@keyframes celebrate":{"0%":{transform:"scale(1) rotate(0deg)",opacity:1},"50%":{transform:"scale(1.3) rotate(5deg)",opacity:.9},"100%":{transform:"scale(1) rotate(0deg)",opacity:1}}},shimmer:{"@keyframes shimmer":{"0%":{backgroundPosition:"-200% 0"},"100%":{backgroundPosition:"200% 0"}}},ripple:{"@keyframes ripple":{"0%":{transform:"scale(0)",opacity:.6},"100%":{transform:"scale(2.5)",opacity:0}
1}}},m=(n.cardBg,"1px solid ".concat(n.cardBorder),n.shadowCard,n.shadowElevated,{english:{color:n.english,gradient:n.gradientEnglish,icon:"MenuBook",emoji:"\ud83d\udcd6",label:"English"},math:{color:n.math,gradient:n.gradientMath,icon:"Calculate",emoji:"\ud83d\udd22",label:"Math"},lifeSkills:{color:n.lifeSkills,gradient:n.gradientLifeSkills,icon:"FavoriteBorder",emoji:"\ud83c\udf31",label:"Life Skills"},science:{color:n.science,gradient:n.gradientScience,icon:"Science",emoji:"\ud83d\udd2c",label:"Science"},creativity:{color:n.creativity,gradient:n.gradientCreativity,icon:"Palette",emoji:"\ud83c\udfa8",label:"Creative"}});n.accent,n.english,n.math,n.lifeSkills,n.science,n.creativity,n.accent,n.accentLight,n.textOnDark,n.accentSecondary,n.textOnDark,n.correct,n.correctLight,n.incorrect,n.incorrectLight,n.star,n.background,n.card,n.textPrimary,n.textSecondary,s.md,c.extrabold,i.display,c.bold,i.xxl,c.bold,i.xl,c.semibold,i.lg,c.semibold,i.md,c.medium,i.sm,i.md,i.sm,c.bold,s.lg,l.button,l.buttonHover,s.lg,l.card,l.cardHover,s.full,c.semibold,s.lg},69727(e,t,o){o.d(t,{A:()=>p});var n=o(90412),a=o(34022),s=o(35163);const r=(e,t,o)=>({text:e,voice:t||"default",engine:o||"pocket_tts"}),i=(e,t,o)=>"tts_inline_"+a.A.generateCacheKey("tts",r(e,t,o));let c=!1,l=!1;const d=async(e,t,o,n)=>{try{return await a.A.storeBase64(t,o,e,n?".".concat(n):".mp3")}catch(s){try{const t=atob(e),o=new Uint8Array(t.length);for(let e=0;e<t.length;e++)o[e]=t.charCodeAt(e);const n=new Blob([o],{type:"audio/mpeg"});return URL.createObjectURL(n)}catch(r){return null}}},u=async function(e){let{onStart:t,onEnd:o,onError:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{c=!0;const n=await s.A.playTTS(e,{onStart:()=>{t&&t()},onEnd:()=>{c=!1,o&&o()}});return n||(c=!1),n}catch(a){return c=!1,n&&n(a),!1}},h={speak:async function(e){let{voice:t,engine:o,onStart:s,onEnd:c,onError:h}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"string"!==typeof e||0===e.trim().length)return!1;l=!1;const p=r(e,t,o),m=i(e,t,o),g=e.length<100;try{let r=null;try{r=await a.A.getAsync("tts",p)}catch(f){}if(r&&!l)return await u(r,{onStart:s,onEnd:c,onError:h});if(g&&!l)try{const e=localStorage.getItem(m);if(e){const t=await d(e,"tts",p);if(t&&!l)return await u(t,{onStart:s,onEnd:c,onError:h})}}catch(f){}if(l)return!1;let i=null;if(g){const a=await(0,n.Xv)(e,{voice:t,engine:o});i=(null===a||void 0===a?void 0:a.data)||a}else{var y,b;const a=await(0,n.uR)(e,{voice:t,engine:o}),s=(null===a||void 0===a||null===(y=a.data)||void 0===y?void 0:y.taskId)||(null===a||void 0===a?void 0:a.taskId);if(!s)return h&&h(new Error("No taskId returned from TTS submit")),!1;i=await(0,n.Ar)(()=>(0,n.rh)(s),{intervalMs:2e3,maxAttempts:30}),null!==(b=i)&&void 0!==b&&b.data&&(i=i.data)}if(l||!i)return!1;let w=i.audioUrl||i.url||i.uri||null;if(i.base64){if(g)try{localStorage.setItem(m,i.base64)}catch(f){}const e=await d(i.base64,"tts",p,i.format);e&&(w=e)}else if(w)try{const e=await a.A.download("tts",p,w);e&&(w=e)}catch(f){}return!w||l?(h&&h(new Error("No playable audio URI available")),!1):await u(w,{onStart:s,onEnd:c,onError:h})}catch(w){return h&&h(w),!1}},preCache:async function(e){let{voice:t,engine:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Array.isArray(e)||0===e.length)return;const s=e.map(async e=>{if(!e||"string"!==typeof e||0===e.trim().length)return;const s=r(e,t,o),c=i(e,t,o);try{if(a.A.has("tts",s))return}catch(u){}const l=e.length<100;if(l)try{if(localStorage.getItem(c))return}catch(u){}try{let r=null;if(l){const a=await(0,n.Xv)(e,{voice:t,engine:o});r=(null===a||void 0===a?void 0:a.data)||a}else{var d;const a=await(0,n.uR)(e,{voice:t,engine:o}),s=(null===a||void 0===a||null===(d=a.data)||void 0===d?void 0:d.taskId)||(null===a||void 0===a?void 0:a.taskId);if(!s)return;const i=await(0,n.Ar)(()=>(0,n.rh)(s),{intervalMs:2e3,maxAttempts:30});r=(null===i||void 0===i?void 0:i.data)||i}if(!r)return;if(r.base64){if(l)try{localStorage.setItem(c,r.base64)}catch(u){}try{await a.A.storeBase64("tts",s,r.base64,r.format?".".concat(r.format):".mp3")}catch(u){}}else if(r.audioUrl||r.url||r.uri)try{await a.A.download("tts",s,r.audioUrl||r.url||r.uri)}catch(u){}}catch(u){}});await Promise.allSettled(s)},stop:()=>{l=!0,c=!1;
1try{s.A.stopTTS()}catch(e){}},isSpeaking:()=>c},p=h}}]);
2//# sourceMappingURL=3277.a04c4e33.chunk.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.