:root{--cream:#fff6e9;--pink:#ff8fb1;--pink-deep:#8a2d52;--sun:#ffc93c;--sun-ink:#4a2e00;--leaf:#3fb57a;--leaf-deep:#0e4d2e;--sky:#7cc6fe;--night:#6c5bb8;--ink:#3b2a20;--muted:#6e5a4a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--cream);color:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;font-family:Nunito,system-ui,sans-serif}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0}button:focus-visible,input:focus-visible{outline:4px solid var(--sky);outline-offset:3px}.app{max-width:560px;height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);margin:0 auto;position:relative;overflow:hidden}.app.child-turn:after{content:"";pointer-events:none;border:8px solid #6ccb8f;border-radius:28px;animation:1.8s ease-in-out infinite breathe;position:absolute;inset:0}@keyframes breathe{50%{border-color:#a6e3bc}}.topbar{z-index:2;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px 6px;display:flex;position:relative}.basket,.carrots{background:#fff;border:3px solid #ffe1b0;border-radius:999px;align-items:center;gap:6px;padding:6px 14px 6px 8px;display:flex}.basket b{color:#8a4b10;font-family:"Baloo 2",sans-serif;font-size:24px;font-weight:800}.carrots{gap:2px;padding:6px 10px}.lock{background:#fff;border:3px solid #eadfd2;border-radius:50%;place-items:center;width:52px;height:52px;display:grid;position:relative}.lock.holding:after{content:"";border:5px solid var(--night);clip-path:inset(0);border-radius:50%;animation:3s linear forwards hold;position:absolute;inset:-6px}@keyframes hold{0%{clip-path:polygon(50% 50%,50% 0,50% 0)}25%{clip-path:polygon(50% 50%,50% 0,100% 0,100% 50%)}50%{clip-path:polygon(50% 50%,50% 0,100% 0,100% 100%,50% 100%)}75%{clip-path:polygon(50% 50%,50% 0,100% 0,100% 100%,0 100%,0 50%)}to{clip-path:polygon(50% 50%,50% 0,100% 0,100% 100%,0 100%,0 0,50% 0)}}.chip{border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-family:"Baloo 2",sans-serif;font-size:17px;font-weight:700;display:flex}.chip-tutor{color:var(--pink-deep);background:#ffd6e4}.chip-child{color:var(--leaf-deep);background:#cdefd9}.home{flex-direction:column;align-items:center;height:100%;display:flex;position:relative}.home-bg{z-index:0;background:radial-gradient(70% 30% at 50% 36%,#ffe3ec 0 99%,#0000 100%),radial-gradient(80% 22% at 30% 108%,#cdefc8 0 99%,#0000 100%),radial-gradient(60% 20% at 90% 110%,#b4e5ae 0 99%,#0000 100%);position:absolute;inset:0}.home>*{z-index:1;position:relative}.home .topbar{width:100%}.home-bunny{margin-top:2vh;animation:3.2s ease-in-out infinite float}@keyframes float{50%{transform:translateY(-8px)rotate(1deg)}}.home-quote{color:var(--muted);margin:4px 0 18px;font-size:16px}.big-cam{background:var(--sun);border:10px solid #fff;border-radius:50%;outline:12px solid #ffe7a8;place-items:center;width:190px;height:190px;transition:transform .12s;display:grid}.big-cam:active{transform:scale(.95)}.big-cam:disabled{opacity:.5}.big-cam-label{color:var(--sun-ink);margin-top:22px;font-family:"Baloo 2",sans-serif;font-size:26px;font-weight:800}.big-cam-sub{color:#5e4a3a;font-size:14px}.lesson{flex-direction:column;height:100%;display:flex}.page-area{flex:1;justify-content:center;align-items:center;min-height:0;padding:6px 16px;display:flex;position:relative;container-type:size}.page{width:min(100cqw, calc(100cqh * var(--ar,1)));aspect-ratio:var(--ar,1);background:#fff;border:4px solid #fff;border-radius:22px;position:relative;overflow:hidden;box-shadow:0 0 0 3px #e9dcc8}.page img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.page-dim{pointer-events:none;background:#3b2a2024;position:absolute;inset:0}.tap-target{z-index:2;border-radius:18px;position:absolute}.tap-target.tapped{box-shadow:0 0 0 4px var(--leaf);background:#3fb57a38;animation:.5s ease-out pop}@keyframes pop{0%{transform:scale(.85)}to{transform:scale(1)}}.hl{z-index:3;pointer-events:none;border:6px solid var(--hl);box-shadow:0 0 0 10px color-mix(in srgb, var(--hl) 35%, transparent);background:color-mix(in srgb, var(--hl) 12%, transparent);animation:.45s cubic-bezier(.3,1.6,.5,1) both hl-in,1.3s ease-in-out .45s infinite hl-pulse;position:absolute}.hl-circle{border-radius:50%}.hl-box{border-radius:16px}.hl-arrow{box-shadow:none;background:0 0;border:0;animation:none}.hl-arrow svg{animation:.8s ease-in-out infinite nudge;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.hl-old{opacity:.45;animation:none}@keyframes hl-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes hl-pulse{50%{box-shadow:0 0 0 18px color-mix(in srgb, var(--hl) 20%, transparent)}}@keyframes nudge{50%{transform:translate(-50%,-10px)}}.hl-label{border:4px solid var(--hl);color:#5d3b1e;white-space:nowrap;background:#fff;border-radius:22px;place-items:center;min-width:44px;height:44px;padding:0 12px;font-family:"Baloo 2",sans-serif;font-size:24px;font-weight:800;display:grid;position:absolute;top:-14px;left:50%;transform:translate(-50%,-100%)}.looking{background:#fff6e98c;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.magnifier{border:10px solid var(--night);background:#fff6;border-radius:50%;width:120px;height:120px;animation:2.4s ease-in-out infinite scan;position:relative}.magnifier:after{content:"";background:var(--night);transform-origin:0;border-radius:9px;width:60px;height:18px;position:absolute;top:100px;left:92px;transform:rotate(45deg)}@keyframes scan{0%,to{transform:translate(-50px,-20px)}50%{transform:translate(50px,20px)}}.looking p{color:#4b3c8f;background:#fff;border-radius:999px;padding:6px 16px;font-family:"Baloo 2",sans-serif;font-size:18px;font-weight:700}.error-card{text-align:center;background:#fff;border:3px solid #ffc9da;border-radius:24px;padding:20px;position:absolute;inset:auto 24px}.error-card small{color:var(--muted);word-break:break-word;margin:4px 0 12px;display:block}.choices{grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:12px;padding:8px 18px;display:grid}.choice{background:#fff;border:4px solid #dcebd6;border-radius:26px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:104px;animation:.4s cubic-bezier(.3,1.6,.5,1) both hl-in;display:flex}.choice:active{border-color:var(--leaf);transform:scale(.95)}.choice-text{font-family:"Baloo 2",sans-serif;font-size:40px;font-weight:800;line-height:1}.choice-dots{flex-wrap:wrap;justify-content:center;gap:4px;max-width:80px;display:flex}.choice-dots i{background:#e53935;border-radius:50%;width:11px;height:11px}.caption{color:#5e4a3a;background:#ffffffe6;border-radius:14px;max-height:3.4em;margin:4px 18px 0;padding:8px 12px;font-size:14px;line-height:1.45;overflow:hidden}.caption.tutor b{color:var(--pink-deep)}.caption.child b{color:#1f6b45}.bottom{justify-content:space-between;align-items:flex-end;padding:0 18px 14px 4px;display:flex}.bunny-slot{margin-bottom:-10px}.bunny{transition:transform 80ms linear;overflow:visible}.mini-cam{background:var(--sun);border:5px solid #fff;border-radius:50%;place-items:center;width:64px;height:64px;margin-bottom:20px;display:grid}.mic-orb{border:6px solid #fff;border-radius:50%;place-items:center;width:108px;height:108px;margin-bottom:8px;transition:background .2s;display:grid;position:relative}.mic-orb:before{content:"";opacity:.2;transform:scale(calc(1 + var(--lvl,0) * .35));background:currentColor;border-radius:50%;transition:transform .1s;position:absolute;inset:-14px}.mic-orb.listening{color:#2e9c64;background:#2e9c64}.mic-orb.waiting{background:var(--pink);color:var(--pink)}.mic-orb.off{color:#b0bec5;background:#b0bec5}.celebrate{pointer-events:none;z-index:20;position:fixed;inset:0;overflow:hidden}.conf{border-radius:3px;width:14px;height:8px;animation:linear forwards fall;position:absolute;top:-20px}.conf.star{clip-path:polygon(50% 0,62% 35%,100% 38%,70% 60%,80% 100%,50% 77%,20% 100%,30% 60%,0 38%,38% 35%);background:#ffd95e;border-radius:0;width:22px;height:22px}@keyframes fall{to{opacity:.2;transform:translateY(105vh)rotate(540deg)}}.celebrate-banner{border:4px solid var(--sun);color:#e0507f;background:#fff;border-radius:30px;padding:12px 26px;font-family:"Baloo 2",sans-serif;font-size:34px;font-weight:900;animation:.5s cubic-bezier(.3,1.6,.5,1) both hl-in;position:absolute;top:36%;left:50%;transform:translate(-50%)}.sticker-pop{z-index:21;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.sticker-card{color:#8a4b10;background:#fff;border:5px solid #ffe08a;border-radius:30px;flex-direction:column;align-items:center;gap:6px;padding:18px 26px;font-family:"Baloo 2",sans-serif;font-size:22px;font-weight:800;animation:2.6s ease-in-out forwards sticker;display:flex;transform:rotate(-4deg)}@keyframes sticker{0%{transform:scale(.2)rotate(-20deg)}15%{transform:scale(1.08)rotate(-4deg)}75%{opacity:1;transform:scale(1)rotate(-4deg)}to{opacity:0;transform:translate(-40vw,-40vh)scale(.2)}}.overlay{z-index:30;background:#2e252073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.parent{-webkit-user-select:text;user-select:text;background:#faf7f2;border-radius:22px;width:min(440px,100%);max-height:92dvh;padding:20px;overflow:auto}.parent h2{margin:0 0 8px;font-family:"Baloo 2",sans-serif;font-size:26px}.parent-summary{background:#fff;border-radius:12px;padding:10px 12px;font-size:14px}.parent fieldset{border:0;margin:14px 0;padding:0}.parent legend{margin-bottom:8px;font-size:14px;font-weight:700}.seg{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.seg label{background:#fff;border:1px solid #e6ded3;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-height:44px;font-size:14px;display:flex}.seg label.on{background:#fde6ee;border:2px solid #e0507f;font-weight:700}.row{justify-content:space-between;align-items:center;min-height:44px;font-size:14px;font-weight:700;display:flex}.row input{accent-color:#e0507f;width:22px;height:22px}.privacy{color:var(--muted);font-size:12px;line-height:1.5}.btn-yellow{background:var(--sun);min-height:52px;color:var(--sun-ink);border:4px solid #fff;border-radius:26px;padding:0 26px;font-family:"Baloo 2",sans-serif;font-size:20px;font-weight:800;box-shadow:0 0 0 3px #ffe7a8}.end{background:#f1ecfa;flex-direction:column;align-items:center;gap:10px;height:100%;padding:18px 20px;display:flex}.end-time{color:#4b3c8f;background:#fff;border-radius:999px;align-self:flex-end;padding:6px 14px;font-size:14px;font-weight:700}.end-card{text-align:center;background:#fff;border-radius:26px;width:100%;padding:14px}.end-card h2{color:#4b3c8f;margin:0 0 8px;font-family:"Baloo 2",sans-serif;font-size:18px}.end-stickers{min-height:64px;color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.end-actions{grid-template-columns:1fr 1fr;gap:14px;width:100%;margin-top:auto;display:grid}.tile{border:6px solid #fff;border-radius:30px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:150px;font-family:"Baloo 2",sans-serif;font-size:21px;font-weight:800;display:flex}.tile-yellow{background:var(--sun);color:var(--sun-ink)}.tile-purple{color:#fff;background:#5a4aa8}.end-quote{text-align:center;color:#5b4f7a;margin:4px 0 0;font-size:14px}.center-msg{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;height:100%;padding:24px;display:flex}.center-msg p{color:var(--muted);max-width:320px;font-size:16px}.code-form{-webkit-user-select:text;user-select:text;flex-direction:column;gap:10px;width:min(320px,100%);display:flex}.code-form label{font-weight:700}.code-form input{text-align:center;letter-spacing:3px;border:2px solid #e6ded3;border-radius:14px;height:52px;font-family:inherit;font-size:22px}.err{color:#c62828}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (height<=700px){.home-bunny svg{width:220px;height:220px}.big-cam{width:160px;height:160px}}
