:root{--color-primary: #FF6B35;--color-primary-light: #FFE8D6;--color-secondary: #6B9FFF;--color-secondary-light: #E0EAFF;--color-reward: #FFB800;--color-reward-light: #FFF6D6;--color-success: #4CAF50;--color-success-light: #E0F5E1;--color-warning: #FFB800;--color-wrong: #FF9800;--color-wrong-light: #FFF3E0;--bg-app: #FFF8F0;--bg-card: #FFFFFF;--bg-shadow: rgba(0, 0, 0, .08);--text-dark: #2D2D2D;--text-medium: #5A5A5A;--text-light: #999999;--sound-mm: #FF6B9D;--sound-mm-light: #FFE4F0;--sound-ah: #FF8C42;--sound-ah-light: #FFE8D6;--sound-oo: #6B9FFF;--sound-oo-light: #E0EAFF;--sound-ee: #4CAF50;--sound-ee-light: #E0F5E1;--sound-sh: #9C27B0;--sound-sh-light: #F0E0F8;--sound-s: #FFB800;--sound-s-light: #FFF6D6;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 999px;--font-body: "Nunito", "Fredoka One", system-ui, sans-serif;--font-display: "Fredoka One", "Nunito", system-ui, sans-serif;--font-size-child: 28px;--font-size-teacher: 16px;--font-size-label: 24px;--touch-min: 64px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-body);background:var(--bg-app);color:var(--text-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-top:var(--safe-top);padding-right:var(--safe-right);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left)}#root{height:100%;display:flex;flex-direction:column}.app-container{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--touch-min);min-width:var(--touch-min);padding:var(--space-md) var(--space-xl);border:none;border-radius:var(--radius-lg);font-family:var(--font-body);font-weight:800;font-size:22px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;text-decoration:none}.btn:active{transform:scale(.95)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 4px 16px #ff6b3566}.btn-primary:hover{box-shadow:0 6px 20px #ff6b3580}.btn-secondary{background:var(--color-secondary);color:#fff;box-shadow:0 4px 16px #6b9fff4d}.btn-success{background:var(--color-success);color:#fff;box-shadow:0 4px 16px #4caf504d}.btn-reward{background:var(--color-reward);color:#fff;box-shadow:0 4px 16px #ffb8004d}.btn-ghost{background:transparent;color:var(--text-medium);box-shadow:0 2px 8px var(--bg-shadow);border:2px solid rgba(0,0,0,.1)}.btn-large{font-size:28px;min-height:80px;padding:var(--space-lg) var(--space-2xl)}.btn-icon{padding:var(--space-md);border-radius:var(--radius-full);width:var(--touch-min);height:var(--touch-min);font-size:28px}.card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:0 4px 20px var(--bg-shadow);padding:var(--space-lg)}.screen{display:flex;flex-direction:column;height:100%;overflow:hidden}.screen-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:#ffffffe6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid rgba(0,0,0,.06);gap:var(--space-md);flex-shrink:0}.screen-content{flex:1;overflow-y:auto;padding:var(--space-lg);-webkit-overflow-scrolling:touch}.text-child{font-size:var(--font-size-child);font-weight:800;line-height:1.3}.text-display{font-family:var(--font-display);font-size:48px;line-height:1.1}.text-huge{font-family:var(--font-display);font-size:72px;line-height:1}.text-teacher{font-size:var(--font-size-teacher)}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes wobble{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(6deg)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes popIn{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes starFly{0%{transform:translateY(0) scale(0);opacity:0}50%{transform:translateY(-80px) scale(1.5);opacity:1}to{transform:translateY(-160px) scale(.5);opacity:0}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes soundBarPlay{0%,to{transform:scaleY(.15);opacity:.5}50%{transform:scaleY(1);opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes avatarDance{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-20px) rotate(-10deg)}75%{transform:translateY(-10px) rotate(10deg)}}@keyframes floatBubble{0%,to{transform:translateY(0) translate(0)}33%{transform:translateY(-14px) translate(4px)}66%{transform:translateY(6px) translate(-3px)}}@keyframes floatBubble2{0%,to{transform:translate(0) translateY(0)}30%{transform:translate(12px) translateY(-9px)}70%{transform:translate(-9px) translateY(7px)}}@keyframes floatBubble3{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-18px) scale(1.04)}80%{transform:translateY(7px) scale(.97)}}@keyframes bigBubblePulse{0%,to{box-shadow:0 12px 60px #64a0ff40,inset 0 -12px 35px #ffffff47,inset 0 12px 22px #ffffff8c}50%{box-shadow:0 18px 80px #64a0ff61,inset 0 -12px 35px #ffffff52,inset 0 12px 22px #ffffffa6}}@keyframes bubblePop{0%{transform:scale(1);opacity:1}40%{transform:scale(1.55);opacity:.85}to{transform:scale(.05);opacity:0}}.animate-bounce{animation:bounce .6s ease}.animate-wobble{animation:wobble .5s ease}.animate-shake{animation:shake .4s ease}.animate-pop{animation:popIn .4s cubic-bezier(.175,.885,.32,1.275)}.animate-slide-up{animation:slideUp .3s ease}.animate-pulse{animation:pulse 1s ease infinite}.animate-dance{animation:avatarDance .8s ease infinite}@media (prefers-reduced-motion: reduce){.animate-bounce,.animate-wobble,.animate-shake,.animate-pop,.animate-slide-up{animation-duration:.001ms!important}.animate-pulse,.animate-dance{animation-iteration-count:1!important}}.sound-mm{background-color:var(--sound-mm)}.sound-ah{background-color:var(--sound-ah)}.sound-oo{background-color:var(--sound-oo)}.sound-ee{background-color:var(--sound-ee)}.sound-sh{background-color:var(--sound-sh)}.sound-s{background-color:var(--sound-s)}.sound-mm-text{color:var(--sound-mm)}.sound-ah-text{color:var(--sound-ah)}.sound-oo-text{color:var(--sound-oo)}.sound-ee-text{color:var(--sound-ee)}.sound-sh-text{color:var(--sound-sh)}.sound-s-text{color:var(--sound-s)}input,select,textarea{font-family:var(--font-body);font-size:var(--font-size-teacher);padding:var(--space-sm) var(--space-md);border:2px solid rgba(0,0,0,.12);border-radius:var(--radius-md);background:#fff;color:var(--text-dark);min-height:44px;outline:none;transition:border-color .2s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--color-primary)}label{font-weight:700;font-size:14px;color:var(--text-medium);display:block;margin-bottom:var(--space-xs)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.modal{background:#fff;border-radius:var(--radius-xl);padding:var(--space-xl);max-width:480px;width:100%;box-shadow:0 20px 60px #0000004d}.pin-display{display:flex;gap:var(--space-sm);justify-content:center;margin:var(--space-md) 0}.pin-dot{width:20px;height:20px;border-radius:50%;background:#ddd;transition:background .2s}.pin-dot.filled{background:var(--color-primary)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);max-width:280px;margin:0 auto}.pin-key{aspect-ratio:1;font-size:28px;font-weight:800;border-radius:var(--radius-md);background:var(--bg-app);border:2px solid rgba(0,0,0,.08);cursor:pointer;transition:transform .1s,background .1s}.pin-key:active{transform:scale(.9);background:var(--color-primary-light)}.feedback-banner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-2xl);box-shadow:0 20px 60px #0003;text-align:center;z-index:500;animation:popIn .4s cubic-bezier(.175,.885,.32,1.275)}.feedback-correct{border:4px solid var(--color-success)}.feedback-wrong{border:4px solid var(--color-wrong)}.star-reward{position:fixed;font-size:64px;pointer-events:none;z-index:600;animation:starFly 1s ease forwards}.streak-banner{position:fixed;top:20%;left:50%;transform:translate(-50%);background:linear-gradient(135deg,var(--color-reward),#FF8C42);color:#fff;border-radius:var(--radius-full);padding:var(--space-md) var(--space-xl);font-size:28px;font-weight:900;box-shadow:0 8px 32px #ffb80066;z-index:700;animation:popIn .4s cubic-bezier(.175,.885,.32,1.275);white-space:nowrap}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.flex{display:flex}.flex-col{flex-direction:column}.flex-center{align-items:center;justify-content:center}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.text-center{text-align:center}.w-full{width:100%}.mt-auto{margin-top:auto}@media (max-width: 480px){:root{--font-size-child: 18px;--font-size-label: 18px;--space-md: 12px;--space-lg: 16px}.text-display{font-size:32px}.text-huge{font-size:48px}.text-child{font-size:18px}.screen-header{padding:var(--space-sm) var(--space-md);gap:var(--space-sm)}.screen-content{padding:var(--space-md)}.btn{font-size:16px;padding:var(--space-sm) var(--space-md);min-height:48px;min-width:48px}.btn-large{font-size:18px;min-height:56px;padding:var(--space-md) var(--space-lg)}.modal{min-width:calc(100% - 24px);max-width:min(480px,95vw);padding:var(--space-lg)}.pin-pad{max-width:min(260px,90vw)}}@media (min-width: 481px) and (max-width: 768px){:root{--font-size-label: 22px;--space-lg: 20px}.text-display{font-size:40px}.text-huge{font-size:56px}.modal{min-width:calc(100% - 32px);max-width:min(480px,90vw)}}@media (min-width: 769px){:root{--space-lg: 28px;--space-xl: 40px}.text-display{font-size:48px}.text-huge{font-size:72px}.modal{min-width:480px}}@media (min-width: 1024px){:root{--font-size-child: 32px;--space-lg: 32px;--space-xl: 48px}.text-display{font-size:56px}.text-huge{font-size:80px}.screen-content{padding:var(--space-xl);max-width:1200px;margin:0 auto}}@media (min-width: 1440px){.screen-content{max-width:1400px}}.scrollbar-hidden{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hidden::-webkit-scrollbar{display:none}@media (hover: none) and (pointer: coarse){.btn:active{transform:scale(.95)}.btn:hover{box-shadow:initial}}@media (max-height: 500px) and (orientation: landscape){.screen-header{padding:8px var(--space-lg)}.screen-content{padding:8px var(--space-md)}.btn{padding:6px var(--space-md);min-height:40px}}@media (max-width: 320px){.modal{padding:16px 12px}.btn{font-size:14px}}@media (max-width: 768px){input,select,textarea{font-size:16px}}
