*{box-sizing:border-box}:root{color:#17324d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff8e7;font-family:Comic Sans MS,"Baloo 2",Nunito,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}.app-shell{--theme-color:#ffb703;background:radial-gradient(circle at 12% 18%, #fffffff2 0 9%, transparent 10%), radial-gradient(circle at 84% 13%, #ffffffbf 0 7%, transparent 8%), radial-gradient(circle at 74% 86%, #ffffffc7 0 10%, transparent 11%), linear-gradient(135deg, color-mix(in srgb, var(--theme-color) 48%, white), #fff8e7 58%, color-mix(in srgb, var(--theme-color) 30%, #8ec5ff));place-items:center;min-height:100vh;padding:32px;transition:background .42s;display:grid;position:relative;overflow:hidden}.app-shell:before,.app-shell:after{content:"";filter:blur(2px);background:#ffffff42;border-radius:50%;width:280px;height:280px;animation:8s ease-in-out infinite floatBubble;position:absolute}.app-shell:before{top:-90px;left:-80px}.app-shell:after{animation-delay:-3s;bottom:-100px;right:-90px}.hero-panel{z-index:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffa3;border:8px solid #ffffffb8;border-radius:40px;width:min(100%,760px);padding:28px;position:relative;box-shadow:0 28px 70px #393f5f2e}.top-bar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;display:flex}.eyebrow{color:#ff6b6b;letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:1rem;font-weight:900}h1{color:#1f3a5f;margin:0;font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.05}.progress-pill{background:var(--theme-color);color:#17324d;border:4px solid #fff;border-radius:999px;flex:none;padding:12px 18px;font-size:1.2rem;font-weight:900;box-shadow:0 10px #1f3a5f1f}.word-card{background:linear-gradient(180deg, #ffffffe6, #ffffffb8), var(--theme-color);color:#17324d;cursor:pointer;border:0;border-radius:36px;place-items:center;width:100%;min-height:460px;padding:38px 22px;animation:.48s cubic-bezier(.2,1.4,.38,1) popIn;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 -14px #1f3a5f14,0 18px 36px #243d5b24}.word-card:focus-visible,.controls button:focus-visible,.memory-controls button:focus-visible,.pronunciation-actions button:focus-visible,.auth-form button:focus-visible,.logout-button:focus-visible,.plain-button:focus-visible{outline-offset:5px;outline:5px solid #17324d}.word-card:active,.controls button:active,.memory-controls button:active,.pronunciation-actions button:active,.auth-form button:active,.logout-button:active,.plain-button:active{transform:scale(.98)}.emoji{filter:drop-shadow(0 16px #1f3a5f14);font-size:clamp(6.4rem,19vw,11rem);line-height:1;animation:2s ease-in-out infinite happyBounce}.word-image{object-fit:contain;background:#ffffffb8;border:8px solid #fff;border-radius:32px;width:min(56vw,270px);height:min(56vw,270px);padding:14px;animation:2s ease-in-out infinite happyBounce;box-shadow:0 18px #1f3a5f14,0 22px 42px #1f3a5f24}.word{color:#14213d;text-shadow:0 8px #ffffffdb;margin-top:16px;font-size:clamp(4rem,15vw,8rem);font-weight:1000;line-height:.92}.meaning{color:#fff;background:#17324d;border-radius:999px;justify-content:center;align-items:center;min-width:140px;margin-top:12px;padding:10px 24px;font-size:clamp(1.8rem,5vw,3rem);font-weight:900;display:inline-flex}.example{color:#31506e;margin-top:18px;font-size:clamp(1.3rem,3vw,2rem);font-weight:800}.tap-hint{color:#60758d;margin-top:18px;font-size:1rem;font-weight:800}.sparkle{color:color-mix(in srgb, var(--theme-color) 80%, #ff6b6b);opacity:0;font-size:clamp(2.4rem,7vw,4.5rem);animation:1.2s ease-out forwards sparklePop;position:absolute}.sparkle-one{top:12%;left:13%}.sparkle-two{animation-delay:.12s;top:18%;right:12%}.sparkle-three{animation-delay:.24s;bottom:22%;right:18%}.auth-panel{text-align:center;max-width:520px}.auth-panel h1{margin-bottom:24px}.auth-form{text-align:left;gap:18px;margin-top:22px;display:grid}.auth-form label{color:#31506e;gap:8px;font-size:1.05rem;font-weight:900;display:grid}.auth-form input{color:#17324d;width:100%;min-height:60px;font:inherit;background:#ffffffe0;border:4px solid #17324d24;border-radius:22px;padding:0 18px;font-size:1.2rem;font-weight:800}.auth-form button,.plain-button,.logout-button,.memory-controls button,.pronunciation-actions button{cursor:pointer;font:inherit;border:0;font-weight:1000;transition:transform .16s,box-shadow .16s}.auth-form button{color:#fff;background:#17324d;border-radius:24px;min-height:68px;font-size:1.25rem;box-shadow:0 10px #17324d24}.helper-text,.child-meta,.status-message{color:#60758d;font-weight:900}.helper-text{margin:18px 0 0}.child-meta{margin-top:10px;font-size:1.08rem}.top-actions{align-items:center;gap:12px;display:flex}.logout-button,.plain-button{color:#17324d;background:#ffffffe0;border-radius:999px;min-height:48px;padding:0 16px;box-shadow:0 8px #17324d1a}.plain-button{margin-top:18px}.status-message{text-align:center;margin:16px 0 0}.error-message{color:#d62828}.pronunciation-panel{background:#ffffff94;border:5px solid #fffc;border-radius:28px;gap:14px;margin-top:20px;padding:20px;display:grid;box-shadow:inset 0 -8px #1f3a5f0f}.pronunciation-panel h2{color:#17324d;align-items:center;gap:10px;margin:0;font-size:clamp(1.4rem,3vw,2rem);display:flex}.pronunciation-panel label{color:#31506e;gap:8px;font-weight:1000;display:grid}.pronunciation-panel input{color:#17324d;min-height:58px;font:inherit;background:#ffffffe6;border:4px solid #17324d1f;border-radius:20px;padding:0 16px;font-size:1.15rem;font-weight:900}.pronunciation-actions{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.pronunciation-actions button:first-child{background:#ffcad4}.pronunciation-actions button:last-child{background:#cdb4db}.recording-player{width:100%}.latest-pronunciation,.speech-result,.privacy-hint{color:#60758d;margin:0;font-weight:900}.score-badge{color:#fff;text-align:center;background:#17324d;border-radius:18px;margin:0;padding:12px 16px;font-weight:1000}.recording-dot{background:#d62828;border-radius:50%;width:14px;height:14px;animation:1s ease-out infinite pulseDot;box-shadow:0 0 #d62828a6}.privacy-hint{font-size:.92rem}.memory-controls{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:20px;display:grid}.memory-controls button,.pronunciation-actions button{color:#17324d;border-radius:24px;min-height:76px;font-size:clamp(1.15rem,3vw,1.55rem);box-shadow:0 10px #17324d24}.memory-controls button:first-child{background:#b7efc5}.memory-controls button:last-child{background:#ffd6a5}.controls{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px;display:grid}.controls button{color:#17324d;cursor:pointer;background:#fff;border:0;border-radius:24px;min-height:76px;font-size:clamp(1rem,2.4vw,1.35rem);font-weight:1000;transition:transform .16s,box-shadow .16s;box-shadow:0 10px #17324d24}.controls button:hover,.memory-controls button:hover,.pronunciation-actions button:hover,.auth-form button:hover,.logout-button:hover,.plain-button:hover{transform:translateY(-3px);box-shadow:0 13px #17324d1f}.controls button:disabled,.memory-controls button:disabled,.pronunciation-actions button:disabled{cursor:wait;opacity:.62;transform:none}.controls .sound-button{color:#fff;background:#17324d}@keyframes popIn{0%{opacity:0;transform:translateY(22px)scale(.92)rotate(-1deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes happyBounce{0%,to{transform:translateY(0)rotate(-3deg)scale(1)}50%{transform:translateY(-16px)rotate(3deg)scale(1.06)}}@keyframes sparklePop{0%{opacity:0;transform:scale(.2)rotate(0)}42%{opacity:1;transform:scale(1.15)rotate(12deg)}to{opacity:0;transform:scale(.7)translateY(-28px)rotate(28deg)}}@keyframes floatBubble{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(26px,-18px)scale(1.08)}}@keyframes pulseDot{0%{box-shadow:0 0 #d62828a6}to{box-shadow:0 0 0 14px #d6282800}}@media (width<=640px){.app-shell{padding:14px}.hero-panel{border-width:5px;border-radius:30px;padding:18px}.top-bar{flex-direction:column;align-items:flex-start;margin-bottom:16px}.top-actions{justify-content:space-between;width:100%}.progress-pill{padding:9px 12px;font-size:1rem}.word-card{border-radius:28px;min-height:430px}.pronunciation-actions,.memory-controls,.controls{grid-template-columns:1fr}.pronunciation-actions button,.memory-controls button,.controls button{min-height:62px}}
