[hidden]{display:none!important}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:#0e1630;color:#eaf2ff;font-family:-apple-system,"SF Pro Rounded",system-ui,"Segoe UI",sans-serif;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:manipulation}
#app{height:100dvh;height:100vh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 18px env(safe-area-inset-bottom);background:radial-gradient(ellipse at 50% 30%,#1f2f63 0%,#0e1630 70%)}
@supports(height:100dvh){#app{height:100dvh}}
#top{display:flex;align-items:center;gap:14px;padding:12px 84px 0 4px}
#clock{flex:none}
#dots{flex:1;display:flex;flex-wrap:wrap;gap:6px}
.dot{width:16px;height:16px;border-radius:50%;background:#2a3a6e;border:2px solid #3b4f8f}
.dot.done{background:#3ee08f;border-color:#3ee08f}
.dot.skipped{background:#5a6488;border-color:#5a6488;opacity:.6}
.dot.current{background:#ffcf4a;border-color:#fff;animation:pulse 1.2s infinite}
.dot.gap{width:6px;background:none;border:none}
#clock{font-weight:800;font-size:22px;opacity:.8}
#status{flex:none;width:170px;font-size:17px;font-weight:700;padding:6px 10px;border-radius:999px;background:#1a2752;color:#9fb3ea;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-phase=listening] #status{background:#0f4a3a;color:#7dffc4}
body[data-phase=speaking] #status{background:#13406b;color:#8fe9ff}
body[data-phase=thinking] #status{background:#3d2f6b;color:#d2c2ff}
#faceWrap{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
#robot{height:100%;max-height:52vh;width:auto;max-width:92vw;overflow:visible;transition:transform .3s}
.eyeHappy{display:none}
body.happy .eyeOpen,body.happy .shine,body.celebrate .eyeOpen,body.celebrate .shine{display:none}
body.happy .eyeHappy,body.celebrate .eyeHappy{display:inline}
.cheek{opacity:0;transition:opacity .3s}
body.happy .cheek,body.celebrate .cheek,body[data-phase=speaking] .cheek{opacity:.45}
#thinkDots,#zzz{opacity:0;transition:opacity .3s}
body[data-phase=thinking] #thinkDots{opacity:1;animation:bob 1s infinite}
body[data-phase=sleep] #zzz{opacity:1;animation:bob 2.4s infinite}
body[data-phase=sleep] #bulb{fill:#5a6488}
body[data-phase=listening] #bulb{fill:#3ee08f;animation:glowp 1.4s infinite}
body[data-phase=speaking] #bulb{fill:#5ef2ff}
.rings path{fill:none;stroke:#3ee08f;stroke-width:5;stroke-linecap:round;opacity:0}
body[data-phase=listening] .rings path{animation:ring 1.6s infinite}
body[data-phase=listening] .rings path:nth-child(2){animation-delay:.3s}
body.celebrate #robot{animation:hop .55s ease-in-out 3}
body.helping #robot{animation:tilt 1.2s ease-in-out 1}
#caption{min-height:2.6em;max-width:900px;text-align:center;font-size:clamp(20px,3.2vw,30px);font-weight:700;line-height:1.3;padding:6px 18px;color:#fff}
#heard{min-height:1.4em;font-size:18px;opacity:.6;font-style:italic}
#momMsg{position:absolute;top:8px;left:50%;transform:translateX(-50%);background:#ffe9a8;color:#3b2a00;font-weight:800;font-size:clamp(20px,3vw,28px);padding:14px 22px;border-radius:22px;box-shadow:0 8px 30px #0008;max-width:90%;text-align:center;animation:pop .4s}
#panel{padding:6px 0 16px}
#card{display:flex;align-items:center;gap:18px;background:#16224a;border:2px solid #2c3d7a;border-radius:28px;padding:14px 22px;margin:0 auto 14px;max-width:980px}
#stepEmoji{font-size:clamp(48px,7vw,72px)}
#stepLabel{font-size:clamp(26px,4vw,40px);font-weight:800}
#stepMeta{font-size:clamp(16px,2.2vw,21px);opacity:.75;margin-top:4px}
#buttons{display:flex;gap:14px;justify-content:center;max-width:980px;margin:0 auto}
.big{flex:1;border:none;border-radius:26px;padding:16px 10px;font-size:clamp(30px,4vw,40px);font-weight:800;color:#fff;display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:0 6px 0 #0006;font-family:inherit;cursor:pointer}
.big span{font-size:clamp(18px,2.4vw,24px)}
.big:active{transform:translateY(4px);box-shadow:0 2px 0 #0006}
.done{background:#22b46e;flex:1.6}.help{background:#e7883a}.again{background:#4458a8}.talk{background:#b0408f;flex:1.4}
.talk.rec{background:#e0306a;animation:pulse 1s infinite}
#wake{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0e1630e8;z-index:10}
#wake.small{background:#0e1630b0}
#wake.gone{display:none!important;pointer-events:none!important}
#errLine{position:fixed;left:8px;bottom:6px;z-index:20;font-size:12px;color:#ffb3b3;opacity:.85;pointer-events:none;max-width:90vw}
#wakeBtn{border:none;border-radius:40px;background:linear-gradient(#ffd85e,#ffb52e);color:#3a2500;font-family:inherit;font-weight:900;font-size:clamp(30px,5vw,48px);padding:30px 48px;display:flex;align-items:center;gap:20px;box-shadow:0 10px 0 #a36a00,0 20px 60px #0008;animation:breathe 2.4s infinite}
.wakeFace{font-size:1.4em}
#wakeNote{margin-top:22px;opacity:.7;font-size:18px;text-align:center;max-width:600px}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden}
.cf{position:absolute;top:-30px;width:14px;height:22px;border-radius:4px;animation:fall 2.4s linear forwards}
@keyframes pulse{50%{transform:scale(1.18)}}
@keyframes bob{50%{transform:translateY(-6px)}}
@keyframes glowp{50%{opacity:.5}}
@keyframes ring{0%{opacity:0}30%{opacity:.9}100%{opacity:0}}
@keyframes hop{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-34px) rotate(-4deg)}70%{transform:translateY(-10px) rotate(3deg)}}
@keyframes tilt{30%{transform:rotate(-6deg)}70%{transform:rotate(5deg)}}
@keyframes pop{from{transform:translateX(-50%) scale(.6);opacity:0}}
@keyframes breathe{50%{transform:scale(1.05)}}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
@media (orientation:landscape) and (max-height:820px){#robot{max-height:46vh}#caption{min-height:1.4em}}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}

#buttons2{display:flex;gap:14px;justify-content:center;max-width:980px;margin:12px auto 0}
.mid{flex:1;border:none;border-radius:20px;padding:12px 10px;font-size:clamp(20px,2.6vw,26px);font-weight:800;color:#fff;font-family:inherit;box-shadow:0 5px 0 #0006;display:flex;align-items:center;justify-content:center;gap:8px}
.mid:active{transform:translateY(3px);box-shadow:0 2px 0 #0006}
.photo{background:#2d8fb8}.open{background:#7a55c9}
.mid span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:30ch}
body.busy #btnPhoto{opacity:.6}

#fixes{max-width:980px;margin:0 auto 14px;background:#2a1f4d;border:2px solid #7a55c9;border-radius:24px;padding:12px 16px}
#fixTitle{font-weight:800;font-size:20px;opacity:.85;margin-bottom:8px}
#fixItems{display:flex;flex-direction:column;gap:10px}
.fix{display:flex;align-items:center;gap:14px;border:none;border-radius:18px;background:#3d2f6b;color:#fff;font-weight:800;font-size:clamp(22px,3vw,30px);font-family:inherit;padding:14px 18px;text-align:left}
.fix .box{width:40px;height:40px;border-radius:10px;border:4px solid #fff;flex:none;display:flex;align-items:center;justify-content:center;font-size:28px}
.fix.done{background:#1f6b48}.fix.done .box{background:#3ee08f;border-color:#3ee08f}
.fix.done .txt{text-decoration:line-through;opacity:.75}
body.fixing #btnDone{opacity:.45}
.plate{background:#3f8f3a;flex:.7}
.mid:disabled,.mid.disabled{opacity:.5;pointer-events:none}
label.mid{cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
/* file inputs: visually hidden but still rendered (iOS won't open a display:none picker reliably) */
.vh{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;opacity:0!important;border:0!important;white-space:nowrap!important}

/* in-app camera */
#cam{position:fixed;inset:0;z-index:30;background:#000;display:flex;align-items:center;justify-content:center}
#camVideo,#camShot{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
#camTitle{position:absolute;top:18px;left:0;right:0;text-align:center;font-size:26px;font-weight:800;text-shadow:0 2px 8px #000}
#camClose{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));width:64px;height:64px;border-radius:50%;border:none;background:#0009;color:#fff;font-size:30px;font-weight:900}
#camErr{position:absolute;top:40%;left:8%;right:8%;text-align:center;font-size:24px;font-weight:700;background:#0009;padding:18px;border-radius:18px}
#camBar{position:absolute;bottom:56px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:40px}
#camShutter{width:104px;height:104px;border-radius:50%;border:8px solid #fff;background:#ffffffd0;box-shadow:0 0 0 4px #0006}
#camShutter:active{transform:scale(.92)}
.camBtn{border:none;border-radius:22px;padding:18px 30px;font-size:26px;font-weight:800;color:#fff;background:#3a4b86;font-family:inherit;box-shadow:0 5px 0 #0007}
.camBtn.use{background:#1fa463}
#camLib{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:17px;color:#cfe0ff;text-decoration:underline;opacity:.85}
#cam.lib-only #camLib{bottom:auto;top:58%;font-size:28px;font-weight:800;opacity:1;background:#3a4b86;margin:0 auto;width:max-content;padding:16px 28px;border-radius:20px;text-decoration:none}

/* mic mute: fixed size, fixed spot (top-right, safe-area aware), same in every state */
#btnMute{position:fixed;top:calc(env(safe-area-inset-top) + 6px);right:calc(env(safe-area-inset-right) + 14px);z-index:40;width:60px;height:60px;min-width:60px;max-width:60px;min-height:60px;max-height:60px;flex:none;padding:0;margin:0;border:none;border-radius:50%;background:#1a2752;color:#fff;font-size:28px;line-height:60px;text-align:center;box-shadow:0 4px 0 #0006;display:block;overflow:hidden}
#btnMute .ico{display:inline-block;width:60px;text-align:center}
#btnMute.on{background:#7a2b3a}
body[data-phase=sleep] #btnMute{opacity:.5}
/* tap feedback */
button,label,.fix{touch-action:manipulation}
.pressed{transform:scale(.95)!important;filter:brightness(1.25)}
.mid.locked{opacity:.55}
.fix:active{transform:scale(.98)}

#momOk{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:6px auto 0;max-width:92vw}
#momOk .okchip{background:#c9f2db;color:#11603a;font-weight:800;font-size:clamp(14px,1.8vw,19px);padding:6px 12px;border-radius:999px}
.dot.momok{outline:2px solid #11603a;outline-offset:1px}

/* read-aloud + lesson player (reader.js). Sits under the mic button (z 40) and the camera (z 30). */
.read{background:#c2603a}.lesson{background:#3f6fc9}
#reader{position:fixed;inset:0;z-index:25;background:#0e1630;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 8px) 18px calc(env(safe-area-inset-bottom) + 12px)}
#rTop{display:flex;align-items:center;gap:14px;padding-right:80px;min-height:62px}
#rClose{flex:none;border:none;border-radius:20px;background:#2a3a6e;color:#fff;font-weight:800;font-size:22px;font-family:inherit;padding:12px 18px}
#rTitle{flex:1;font-weight:900;font-size:clamp(20px,3vw,28px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#rPick{flex:1;min-height:0;overflow:auto;padding:8px 0 20px;-webkit-overflow-scrolling:touch}
.rGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:12px}
.rBook{border:none;border-radius:26px;background:#1d2b5c;color:#fff;font-family:inherit;font-weight:800;font-size:24px;padding:22px 14px;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 6px 0 #0006}
.rBook .e{font-size:54px}.rBook small{font-weight:600;font-size:16px;opacity:.75}
.rBig{display:block;width:100%;border:none;border-radius:24px;background:#22b46e;color:#fff;font-weight:900;font-size:clamp(22px,3vw,30px);font-family:inherit;padding:20px;box-shadow:0 6px 0 #0006;margin:6px 0 12px}
.rBack{border:none;border-radius:16px;background:#2a3a6e;color:#fff;font-weight:800;font-size:20px;font-family:inherit;padding:10px 16px;margin-bottom:10px}
.rModes{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.rMode{flex:1;min-width:180px;border:4px solid transparent;border-radius:22px;background:#2a3a6e;color:#fff;font-weight:800;font-size:clamp(18px,2.4vw,24px);font-family:inherit;padding:14px 10px}
.rMode.on{border-color:#ffcf4a;background:#3d4f94}
.rSecs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.rSec{border:none;border-radius:20px;background:#16224a;color:#fff;font-family:inherit;padding:14px 12px;text-align:left;display:flex;flex-direction:column;gap:4px;box-shadow:0 4px 0 #0006}
.rSec b{font-size:22px}.rSec small{font-size:15px;opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rSec.at{background:#3a4b1c;outline:4px solid #ffcf4a}
#rPlay{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}
#rHead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rTag{font-weight:900;font-size:18px;padding:6px 14px;border-radius:999px;background:#13406b;color:#8fe9ff}
.rTag.turn{background:#1f6b48;color:#c9ffe4}.rTag.do{background:#6b4a13;color:#ffe3a8}.rTag.ask{background:#4a2f7a;color:#e3d4ff}
#rWhere{opacity:.7;font-size:17px}
#rBar{height:8px;border-radius:8px;background:#22305e;overflow:hidden}#rProg{display:block;height:100%;width:0;background:#ffcf4a;transition:width .3s}
.rText{flex:1;min-height:0;overflow:auto;background:#fffdf6;color:#1d1d1d;border-radius:26px;padding:22px 26px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(28px,4vw,42px);line-height:1.55;-webkit-user-select:none;user-select:none;-webkit-overflow-scrolling:touch}
.rText .ck{border-radius:10px;padding:2px 0;transition:background .2s;cursor:pointer}
.rText .ck.now{background:#ffe27a;box-shadow:0 0 0 4px #ffe27a}
.rText.turn{font-family:-apple-system,"SF Pro Rounded",system-ui,sans-serif;font-size:clamp(32px,4.6vw,50px);font-weight:700;line-height:1.5;background:#f3fff6;border:6px solid #3ee08f}
.rText.turn .rLine{margin:0 0 10px}
.rText.do{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#fff7e6;border:6px solid #f0a940}
.rDo{font-family:-apple-system,system-ui,sans-serif;font-weight:900;font-size:clamp(32px,4.6vw,50px)}.rSub{font-size:clamp(20px,2.6vw,28px);opacity:.8;margin-top:12px}
.rNote{font-family:-apple-system,system-ui,sans-serif;font-size:22px;opacity:.7;margin-top:10px}
.rEnd{font-family:-apple-system,system-ui,sans-serif;font-weight:900;font-size:clamp(30px,4vw,44px);text-align:center;margin:20px 0}
#rListen{display:flex;align-items:center;gap:14px;font-size:20px;font-weight:700;color:#7dffc4}
#rMeterBox{flex:1;max-width:260px;height:12px;border-radius:12px;background:#1a2752;overflow:hidden}#rMeter{display:block;height:100%;width:0;background:#3ee08f;transition:width .1s}
#rActs{display:flex;gap:12px}
.rAct{flex:1;border:none;border-radius:24px;color:#fff;font-weight:900;font-size:clamp(24px,3.4vw,34px);font-family:inherit;padding:18px 10px;box-shadow:0 6px 0 #0006}
.rAct.done{background:#22b46e;flex:2}.rAct.photo{background:#2d8fb8}.rAct.booster{background:#7a55c9}
#rCtl{display:flex;gap:14px}
.rC{flex:1;border:none;border-radius:26px;background:#4458a8;color:#fff;font-weight:900;font-size:clamp(30px,4vw,40px);font-family:inherit;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:0 6px 0 #0006}
.rC span{font-size:clamp(17px,2.2vw,22px)}.rC.play{flex:1.4;background:#e7883a;flex-direction:row;justify-content:center;font-size:clamp(26px,3.6vw,36px)}.rC.play.paused{background:#22b46e}
.rC:disabled{opacity:.4}
.rAct:active,.rC:active,.rBook:active,.rSec:active{transform:translateY(4px);box-shadow:0 2px 0 #0006}
@media (orientation:landscape) and (max-height:820px){.rText{font-size:clamp(24px,3vw,32px);padding:16px 22px}.rC{padding:10px 8px}.rAct{padding:12px 8px}#rTop{min-height:56px}}
.rAct.video{background:#b0408f}
.mid.now{outline:4px solid #ffcf4a;animation:breathe 1.6s infinite}

/* ---- timer ---- */
.mid.timer{background:#2f8f6b}
#tmPill{position:fixed;top:calc(env(safe-area-inset-top) + 6px);right:calc(env(safe-area-inset-right) + 86px);z-index:27;height:60px;min-width:150px;padding:0 16px 0 6px;border:none;border-radius:30px;background:#1a2752;color:#fff;font-family:inherit;font-weight:800;font-size:28px;display:flex;align-items:center;gap:8px;box-shadow:0 4px 0 #0006}
#tmPill[hidden]{display:none}
#tmPill .r{width:48px;height:48px;flex:none}
#tmPill.low{background:#b8641c}
#tmPill.done{background:#2f8f6b;animation:breathe 1.2s infinite}
.tmRing{width:100%;height:100%;transform:rotate(-90deg)}
.tmRing circle{fill:none;stroke-width:10}
.tmRing .bg{stroke:#ffffff26}
.tmRing .fg{stroke:#ffcf4a;stroke-linecap:round;transition:stroke-dashoffset .25s linear}
#tmPill.low .tmRing .fg{stroke:#fff}
body.timerOn #top{padding-right:250px}
body.timerOn #rTop{padding-right:250px}
#tmMsg{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 76px);transform:translateX(-50%);z-index:29;background:#ffcf4a;color:#1a2752;font-weight:900;font-size:clamp(26px,4vw,40px);padding:14px 26px;border-radius:22px;box-shadow:0 6px 0 #0005;max-width:90vw;text-align:center}
#tmMsg[hidden]{display:none}
#tmPanel{position:fixed;inset:0;z-index:28;background:#0e1630d9;display:flex;align-items:center;justify-content:center;padding:84px 16px 16px}
#tmPanel[hidden]{display:none}
.tmBox{position:relative;background:#1a2752;border-radius:28px;padding:26px 22px;width:min(620px,94vw);max-height:100%;overflow:auto;text-align:center;color:#fff;box-shadow:0 8px 0 #0006}
.tmBox h2{margin:4px 0 18px;font-size:34px}
.tmX{position:absolute;top:12px;left:12px;border:none;border-radius:18px;background:#2a3a6e;color:#fff;font-size:24px;font-weight:800;width:56px;height:56px}
.tmQuick{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.tmQuick button,.tmCustom button,.tmBtns button,#tmOffer button{border:none;border-radius:20px;background:#3a62c9;color:#fff;font-family:inherit;font-weight:900;font-size:34px;padding:16px 4px;box-shadow:0 5px 0 #0006}
.tmQuick small{display:block;font-size:16px;font-weight:700}
.tmCustom{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px}
.tmCustom button{width:76px}
.tmCustom #tmCustomN{min-width:120px;font-size:32px;font-weight:900}
.tmCustom .go,#tmOffer .go{width:auto;padding:16px 24px;background:#2f8f6b}
#tmOffer button{margin-top:16px;font-size:24px;width:100%}
#tmBig{position:relative;width:min(340px,70vw,48vh);aspect-ratio:1;margin:0 auto}
.tmNum{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(56px,10vw,92px);font-weight:900;font-variant-numeric:tabular-nums}
.tmNum.done{font-size:110px}
#tmLabel{font-size:28px;font-weight:800;margin:12px 0 16px}
.tmBtns{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tmBtns button{font-size:26px}
.tmBtns .cancel{background:#7a2b3a}
#buttons2{flex-wrap:wrap}
#buttons2 .mid{flex:1 1 170px;min-width:0}
#buttons2 .mid[hidden]{display:none}

/* ---- lesson coaching / spelling ---- */
.rAct.type{background:#5a4bd1}.rAct.timer{background:#2f8f6b}
#typeBox{position:fixed;inset:0;z-index:29;background:#0e1630e6;display:flex;align-items:center;justify-content:center;padding:84px 16px 16px}
#typeBox[hidden]{display:none}
.tyCard{background:#fff;color:#1a2752;border-radius:26px;padding:22px;width:min(720px,96vw);box-shadow:0 8px 0 #0006}
.tyHead{font-size:30px;font-weight:900;margin-bottom:10px}
#typeIn{width:100%;font-size:36px;font-family:inherit;font-weight:800;border:4px solid #3a62c9;border-radius:18px;padding:12px;box-sizing:border-box}
.tyBtns{display:flex;gap:12px;margin-top:12px}.tyBtns button{flex:1}
#typeOut{font-size:26px;font-weight:800;margin-top:12px;min-height:1em}
.rText.spell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}
.spNum{font-size:clamp(56px,9vw,96px);font-weight:900;color:#1a2752}.spNum small{font-size:.4em;color:#556}
.spIn{font-size:48px;font-family:inherit;font-weight:900;text-align:center;width:min(560px,90%);border:5px solid #3a62c9;border-radius:20px;padding:10px}
.spBtns{display:flex;gap:14px;width:100%;justify-content:center}.spBtns .rBig{flex:1;max-width:340px}
.spRep{background:#3a62c9!important;color:#fff}
.spAlt{border:none;background:none;color:#3a62c9;font-family:inherit;font-weight:800;font-size:20px;text-decoration:underline;padding:8px}
.spHead{font-size:34px;font-weight:900;color:#1a2752;margin-bottom:6px}
.spRes{font-size:clamp(30px,5vw,44px);font-weight:900;text-align:left;margin:0 auto;padding-left:1.6em;color:#1a2752}
.spRes li{margin:6px 0}.spRes li.no{color:#7a2b3a}.spRes mark{background:#ffb3b3;color:#7a0010;border-radius:6px;padding:0 3px}
.spMark{display:inline-block;width:1.4em}.spMiss{font-size:.5em;color:#b8641c}.spRes li.show b{letter-spacing:2px}
/* Today's Booster drill */
.rText.drill{display:flex;flex-direction:column;align-items:center;text-align:center}
.drLab{font-family:-apple-system,system-ui,sans-serif;font-weight:800;font-size:20px;color:#556;margin-top:4px}
.drBig{font-size:clamp(64px,11vw,120px);font-weight:900;color:#1a2752;background:#fff6c7;border:6px solid #ffc83d;border-radius:28px;padding:10px 34px;margin:14px 0;box-shadow:0 6px 0 #0002;line-height:1.15}
.drBig.phrase{font-size:clamp(34px,5.5vw,58px);padding:16px 26px}
.drBig.chunks span{color:#1a2752}.drBig.chunks span:nth-child(4n+3){color:#c2410c}.drBig.chunks i{color:#bbb;font-style:normal;margin:0 6px}
.drTip{font-family:-apple-system,system-ui,sans-serif;font-size:22px;font-weight:700;color:#7a4b00;margin-bottom:8px}
.drStrip{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px;max-width:900px}
.drW{font-family:-apple-system,system-ui,sans-serif;font-size:18px;font-weight:700;padding:4px 10px;border-radius:12px;background:#0000000d;color:#556}
.drW.now{background:#ffc83d;color:#1a2752}.drW.ok{background:#d4f5e2;color:#126b3c}.drW.hm{background:#ffe7c2;color:#8a4b00}
.rBig.drGo{background:#f59e0b}
/* kid panels (science, check-in, explore) */
#kpanel{position:fixed;inset:0;z-index:26;background:#0e1630;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 8px) 18px calc(env(safe-area-inset-bottom) + 12px)}
#kpTop{display:flex;align-items:center;gap:14px;padding-right:80px;min-height:62px}
#kpClose{flex:none;border:none;border-radius:20px;background:#2a3a6e;color:#fff;font-weight:800;font-size:22px;font-family:inherit;padding:12px 18px}
#kpTitle{flex:1;font-weight:900;font-size:clamp(20px,3vw,28px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.kpBody{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:6px 0 20px;color:#fff}
.mid.sci{background:#7c3aed}
.sciGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.sciCard{background:#1d2b5c;border-radius:26px;padding:12px;display:flex;flex-direction:column;gap:8px;box-shadow:0 6px 0 #0006}.sciCard.next{outline:4px solid #ffcf4a}
.sciGo{border:none;background:none;color:#fff;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px}.sciGo img{width:100%;max-height:170px;object-fit:contain;background:#fffdf6;border-radius:18px}
.sciGo b{font-size:23px;text-align:center}.sciGo small{font-size:16px;opacity:.8;text-align:center}
.sciPrint,.sciS{border:none;border-radius:16px;background:#2a3a6e;color:#fff;font-family:inherit;font-weight:800;font-size:18px;padding:12px}
.sciPlayer{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:900px;margin:0 auto}
.sciArt{width:min(360px,60vw);max-height:200px;object-fit:contain;background:#fffdf6;border-radius:22px}
.sciCap{min-height:3.2em;font-size:clamp(22px,3.2vw,32px);font-weight:700;text-align:center;line-height:1.35;background:#fffdf6;color:#1d1d1d;border-radius:22px;padding:14px 18px;width:100%}
.sciScrub{position:relative;width:100%;padding-top:14px}.sciScrub input{width:100%;height:40px;accent-color:#7c3aed}
.sciTicks{position:absolute;left:0;right:0;top:0;height:14px}.sciTicks i{position:absolute;top:2px;width:3px;height:12px;background:#9fb0e8;border-radius:2px}
.sciTicks b{position:absolute;top:0;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#ffcf4a}.sciTicks b.done{background:#22b46e}
.sciTime{display:flex;justify-content:space-between;width:100%;font-weight:700;opacity:.85;font-size:18px}
.sciBtns{display:flex;gap:14px;justify-content:center;width:100%}.sciBtns.small{gap:10px}
.sciC{border:none;border-radius:22px;background:#2a3a6e;color:#fff;font-family:inherit;font-weight:900;font-size:24px;padding:16px 22px;min-height:64px}.sciC.play{background:#22b46e;flex:1;max-width:320px;font-size:28px}
.sciQ{position:fixed;left:0;right:0;bottom:0;z-index:27;max-height:92vh;overflow:auto;background:#fffdf6;color:#1d1d1d;border-radius:30px 30px 0 0;padding:22px 22px calc(env(safe-area-inset-bottom) + 20px);box-shadow:0 -10px 40px #0008;animation:sciUp .25s ease-out}
@keyframes sciUp{from{transform:translateY(40%)}to{transform:none}}
.sciQh{font-weight:900;font-size:24px;color:#7c3aed;margin-bottom:8px}.sciQh.guess{background:#1a2752;color:#ffcf4a;border-radius:16px;padding:8px 14px;display:inline-block}
.sciPrompt{font-size:clamp(26px,3.6vw,36px);font-weight:800;line-height:1.35;margin:6px 0 14px}
.sciBlank{display:inline-block;min-width:4em;border-bottom:5px solid #7c3aed;color:#7c3aed;text-align:center}
.sciChips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.sciChip{border:none;border-radius:18px;background:#ede9fe;color:#4c1d95;font-family:inherit;font-weight:800;font-size:24px;padding:12px 18px;min-height:56px}
.sciRow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.sciRow .rBig{flex:1;min-width:200px}
.sciType{flex:1;min-width:200px;font-size:26px;padding:14px;border-radius:16px;border:3px solid #c4b5fd;font-family:inherit}
.sciChoices{display:flex;flex-direction:column;gap:12px;margin-bottom:10px}.sciChoice{border:none;border-radius:22px;background:#7c3aed;color:#fff;font-family:inherit;font-weight:900;font-size:28px;min-height:72px;padding:12px;box-shadow:0 5px 0 #0004}
.sciDraw{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.sciDraw canvas{width:100%;aspect-ratio:900/520;background:#fff;border:3px solid #c4b5fd;border-radius:18px;touch-action:none}
.sciPal{display:flex;gap:10px}.sciCol{width:52px;height:52px;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 2px #0003}.sciCol.on{box-shadow:0 0 0 4px #7c3aed}.sciCol.er{background:#eee;font-size:22px}
.sciAns{font-size:30px;font-weight:900;color:#126b3c;background:#d4f5e2;border-radius:16px;padding:8px 16px;display:inline-block;margin-bottom:8px}.sciGave{font-size:20px;color:#777;margin-bottom:10px}
/* check-in */
.fbWrap{max-width:860px;margin:0 auto;background:#fffdf6;color:#1d1d1d;border-radius:28px;padding:18px 22px}
.fbTitle{font-weight:800;font-size:20px;color:#556;text-align:center}
.fbQ{font-weight:900;font-size:clamp(24px,3.4vw,32px);margin:14px 0 6px}.fbQ.small{font-size:22px}.fbQ span{font-weight:600;font-size:16px;color:#778}
.fbFaces{display:flex;gap:12px}.fbFace{flex:1;border:none;border-radius:22px;background:#eef2ff;font-size:clamp(44px,7vw,64px);min-height:84px;box-shadow:0 4px 0 #0002}.fbFace.on{background:#ffcf4a;transform:scale(1.06)}
.rBig.rec{background:#e11d48}
/* explore */
.mid.explore{background:#0ea5e9}
.exWrap{max-width:900px;margin:0 auto;background:#fffdf6;color:#1d1d1d;border-radius:28px;padding:18px 22px}
.exHead{font-weight:900;font-size:clamp(26px,3.6vw,36px);margin:4px 0 12px}.exTopic{font-weight:800;font-size:22px;color:#0369a1;margin-bottom:8px}
.exGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:14px}
.exIdea{border:none;border-radius:24px;background:#e0f2fe;color:#0c4a6e;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;box-shadow:0 5px 0 #0002;text-align:center}
.exIdea .e{font-size:54px}.exIdea b{font-size:24px}.exIdea small{font-size:17px;font-weight:600;color:#335}
.exLoad{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:12vh;font-size:28px;font-weight:800;text-align:center}.exLoad small{font-size:18px;opacity:.7}
.exSpin{font-size:96px;animation:exBob 1.2s ease-in-out infinite}@keyframes exBob{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-14px) rotate(8deg)}}
.exRead{font-family:Georgia,serif;font-size:clamp(26px,3.6vw,36px);line-height:1.55;max-height:58vh;overflow:auto}.exRead .ck.now{background:#fff1a8;border-radius:8px}
.exFact{text-align:center;padding:10px}.exFact .e{font-size:110px;line-height:1.1}.exFact b{display:block;font-size:clamp(32px,5vw,48px);margin:6px 0}.exFact p{font-size:clamp(24px,3.4vw,32px);margin:6px 0}
.exCmp{font-size:22px;font-weight:700;color:#0369a1;background:#e0f2fe;border-radius:16px;padding:8px 14px;display:inline-block;margin:8px 0}
.sciChoice.alt{background:#94a3b8}.sciChoice.picked{background:#ffcf4a;color:#1a2752}
/* 👍 Parent OK (tap 3x): small, out of the way, needs 3 quick taps */
.pok{display:inline-flex;align-items:center;gap:6px;border:2px dashed #ffffff66;background:#ffffff14;color:#fff;font-family:inherit;font-weight:800;font-size:15px;border-radius:14px;padding:6px 10px;opacity:.85;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.pok small{font-size:12px;font-weight:700;opacity:.8}.pok .pdots{display:inline-flex;gap:4px;margin-left:2px}.pok .pd{width:10px;height:10px;border-radius:50%;border:2px solid #fff;display:inline-block}.pok .pd.on{background:#3ee08f;border-color:#3ee08f}
.pok.fired{background:#3ee08f;color:#0e1630;opacity:1}
#card{position:relative}#pokCard{position:absolute;right:12px;top:10px}#card.hasPok #stepText{padding-right:150px}
#fixes .pok{margin-top:10px;color:#333;border-color:#0003;background:#0000000a}#fixes .pok .pd{border-color:#555}
#pokCam{position:absolute;left:16px;bottom:calc(env(safe-area-inset-bottom) + 22px);z-index:3;background:#0008}
/* ---- topic sessions: opener choices, picture slideshow, Q&A, activities ---- */
.tpWrap,.tpQA,.tpHow{display:flex;flex-direction:column;gap:14px;align-items:stretch}
.tpLine{font-size:28px;font-weight:800;text-align:center;line-height:1.25}
.tpChoices{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tpChoice{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:130px;border:none;border-radius:24px;background:#2a3a6e;color:#fff;font-family:inherit;padding:16px;cursor:pointer}
.tpChoice .e{font-size:48px}.tpChoice b{font-size:24px;line-height:1.15}.tpChoice small{font-size:16px;opacity:.85}
.tpChoice.picked{background:#1fa463;transform:scale(1.03)}.tpChoice.act{min-height:150px}
.tpSkip{text-align:center}.tpSkip .sciS{opacity:.7}
.tpSlide{display:flex;flex-direction:column;align-items:center;gap:10px}
.tpCount{font-size:17px;opacity:.8;text-align:center}
.tpPic{position:relative;width:100%;max-width:720px;height:46vh;border-radius:22px;overflow:hidden;background:#0e1630;display:flex;align-items:center;justify-content:center}
.tpPic img{width:100%;height:100%;object-fit:cover}.tpPic.emoji{font-size:140px;background:#1b2a5a}
.tpCredit{position:absolute;right:10px;bottom:8px;font-size:12px;color:#fff;background:#0007;padding:2px 8px;border-radius:8px}
.tpWords{font-size:40px;font-weight:900;text-align:center;line-height:1.1}
.tpSay{font-size:22px;text-align:center;opacity:.85;max-width:820px;padding:6px 12px;border-radius:12px}.tpSay.now{background:#ffcf4a33;opacity:1}
.tpNav{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}.tpNav .rBig.big{font-size:26px;padding:20px 30px}
.tpAuto{font-size:14px}.tpAuto.on{background:#1fa46355}
.tpChat{display:flex;flex-direction:column;gap:8px;max-height:30vh;overflow:auto}
.tpQ{align-self:flex-end;background:#3a4b86;border-radius:16px 16px 4px 16px;padding:10px 14px;font-size:20px;max-width:80%}
.tpA{align-self:flex-start;background:#16224a;border:2px solid #2c3d7a;border-radius:16px 16px 16px 4px;padding:10px 14px;font-size:20px;max-width:85%}.tpA.thinking{opacity:.6}
.tpMyQ{background:#fff3c4;color:#3a2a00;border-radius:18px;padding:10px 14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tpMyQh{font-weight:900;font-size:20px;width:100%}.tpMyQi{border:none;background:#fff;border-radius:12px;padding:8px 12px;font-size:18px;font-family:inherit;color:#3a2a00}.tpMyQi span{opacity:.5;margin-left:6px}
.tpBudget{font-size:16px;opacity:.8;text-align:center}
.tpHow ol{font-size:24px;line-height:1.5;margin:0 auto;max-width:760px}.tpAskMom{background:#ff9f43;color:#2a1600;font-weight:900;font-size:22px;text-align:center;border-radius:14px;padding:8px}
.tpLookOv{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);z-index:55;background:#16224aee;border:3px solid #5ef2ff;border-radius:24px;padding:18px 28px;font-size:24px;font-weight:800;text-align:center;color:#fff}
#tpPicPop{position:fixed;right:20px;top:90px;z-index:54;width:min(46vw,520px);background:#0e1630;border:3px solid #2c3d7a;border-radius:22px;overflow:hidden;color:#fff;text-align:center}
#tpPicPop img{width:100%;max-height:40vh;object-fit:cover;display:block}#tpPicPop b{display:block;padding:8px;font-size:20px}#tpPicPop .tpCredit{bottom:auto;top:8px}
#cam.nolib:not(.lib-only) #camLib{display:none}
@media (max-width:700px){.tpChoices{grid-template-columns:1fr}.tpWords{font-size:30px}}

/* reader: 🎙️ Talk to Kip */
#rCtl .rC.talk{background:#ff7aa8;color:#fff}#rCtl .rC.talk.on{background:#1fa463}

/* lesson videos live in the Homeschool app: name + app path, big */
.rVid{background:#fff3c4;color:#2a2000;border-radius:22px;padding:18px 22px;text-align:center}.rVidT{font-size:34px;font-weight:900}.rVidP{font-size:24px;font-weight:800;margin-top:8px}.rVidAsk{font-size:20px;margin-top:8px;opacity:.85}

/* topic slides: keep Back / Next on one row so Next never falls off an iPad screen */
.tpNav .rBig{flex:1 1 0;width:auto;min-width:0;max-width:360px}
.tpPic{height:min(40vh,420px)}.tpWords{font-size:clamp(28px,4vw,40px)}

/* ===== kid-friendly topic screens: big pictures, bright rounded cards, less text ===== */
#kpanel .tpLine{font-size:clamp(26px,3.4vw,34px);font-weight:900;background:linear-gradient(135deg,#ff9a3c,#ff5fa2);color:#fff;border-radius:26px;padding:14px 20px;box-shadow:0 6px 0 #0004}
.tpChoices{grid-template-columns:repeat(2,1fr);gap:16px}.tpChoices.three{grid-template-columns:repeat(3,1fr)}
.tpChoice{padding:10px 10px 14px;border-radius:28px;min-height:0;box-shadow:0 6px 0 #0005;border:4px solid #fff3}
.tpChoice.c0{background:#2f80ed}.tpChoice.c1{background:#9b51e0}.tpChoice.c2{background:#f2994a}.tpChoice.c3{background:#27ae60}
.tpChoice b{font-size:clamp(20px,2.4vw,26px)}.tpChoice.picked{outline:6px solid #ffe14d;transform:scale(1.04)}
.tpPic.tile{height:min(22vh,210px);max-width:none;border-radius:20px;background:#ffffff22}
.tpPic.tile.emoji{font-size:84px}
.tpPic.big{height:min(52vh,560px);max-width:900px;border-radius:30px;border:6px solid #fff;box-shadow:0 8px 0 #0005;background:#ffffff}
.tpPic.big.emoji{font-size:170px;background:linear-gradient(135deg,#5ee7ff,#a78bfa)}
.tpPic.ans{width:180px;height:140px;flex:none;border-radius:18px;border:3px solid #fff}
.tpPic.ans.emoji{font-size:70px}
.tpPic.how{height:min(26vh,240px);max-width:520px;margin:0 auto;border-radius:24px;border:5px solid #fff}
.tpPic.wait span{animation:tpBob 1s ease-in-out infinite;display:inline-block}
@keyframes tpBob{50%{transform:translateY(-10px) scale(1.08)}}
.tpPic img{background:#fff}
.tpWords{font-size:clamp(32px,4.6vw,48px);color:#ffe14d;text-shadow:0 3px 0 #0006}
.tpSay{font-size:clamp(22px,2.6vw,28px);font-weight:700;background:#ffffff14;border-radius:18px;padding:8px 16px}.tpSay.now{background:#ffcf4a40}
.tpDots{display:inline-flex;gap:6px;margin-left:8px;vertical-align:middle}.tpDots i{width:14px;height:14px;border-radius:50%;background:#ffffff40;display:inline-block}.tpDots i.on{background:#ffe14d}
.tpCount{font-size:20px;font-weight:800;opacity:.95}
.tpChat{max-height:40vh;gap:12px}
.tpQ{font-size:22px;background:#9b51e0;font-weight:700}
.tpA{font-size:23px;font-weight:700;background:#1d6fd6;border:none;border-radius:22px 22px 22px 6px;display:flex;gap:12px;align-items:center}.tpA.big{font-size:30px;background:linear-gradient(135deg,#2f80ed,#27ae60)}
.tpA.pic{max-width:95%}
.tpHow ol{font-size:26px;font-weight:700}
@media (max-width:700px){.tpChoices.three{grid-template-columns:1fr}.tpPic.ans{width:120px;height:96px}}
.tpPic{flex-shrink:0}.tpPic.big{height:min(44vh,520px)}

/* "Something's wrong" button + sheet */
#btnSos{position:fixed;top:calc(env(safe-area-inset-top) + 12px);right:calc(env(safe-area-inset-right) + 86px);z-index:40;height:48px;padding:0 14px;border:none;border-radius:24px;background:#5a3a12;color:#ffe2b0;font-family:inherit;font-weight:800;font-size:16px;line-height:1;display:flex;align-items:center;gap:6px;box-shadow:0 3px 0 #0006}
#btnSos span{font-size:14px}
body[data-phase=sleep] #btnSos{opacity:.6}
#sosBox{position:fixed;inset:0;z-index:45;background:#0e1630ee;display:flex;align-items:center;justify-content:center;padding:20px}
#sosBox[hidden]{display:none}
.sosCard{background:#1b2a5a;border-radius:26px;padding:26px;width:min(720px,100%);text-align:center;color:#fff}
.sosH{font-size:clamp(26px,4vw,36px);font-weight:900;margin-bottom:8px}.sosSub{font-size:22px;margin-bottom:12px;opacity:.9}
.sosGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.sosB{border:none;border-radius:20px;background:#2f4a99;color:#fff;font-family:inherit;font-weight:900;font-size:clamp(22px,2.8vw,28px);line-height:1.2;padding:22px 14px;box-shadow:0 5px 0 #0006}
.sosB.ok{background:#22b46e}.sosB:disabled{opacity:.5}
.sosX{border:none;background:none;color:#cfd8ff;font-family:inherit;font-weight:700;font-size:22px;padding:10px 18px;text-decoration:underline}
#sosNote{width:100%;font-family:inherit;font-size:22px;box-sizing:border-box;border-radius:14px;padding:12px;border:none}
@media (max-width:700px){.sosGrid{grid-template-columns:1fr}#btnSos span{display:none}}
/* 1020-part2: kid volume + Now/Next line */
#btnVol{position:fixed;top:calc(env(safe-area-inset-top) + 12px);right:calc(env(safe-area-inset-right) + 290px);z-index:40;width:48px;height:48px;border:none;border-radius:24px;background:#1a2752;color:#fff;font-size:24px;padding:0;line-height:1}
#volPop{position:fixed;top:calc(env(safe-area-inset-top) + 66px);right:calc(env(safe-area-inset-right) + 150px);z-index:45;display:flex;align-items:center;gap:10px;background:#16224a;border:2px solid #2c3d7a;border-radius:22px;padding:10px 14px;box-shadow:0 8px 24px #0008}
#volPop[hidden]{display:none}
#volPop button{border:none;border-radius:16px;background:#2c3d7a;color:#fff;font-size:20px;font-weight:800;padding:8px 12px;font-family:inherit}
#volRange{width:220px;height:36px;accent-color:#5ef2ff}
#volPct{min-width:48px;font-weight:800;color:#cfe3ff}
#stepText{flex:1;min-width:0}
#nowNext{flex:none;max-width:34%;align-self:flex-end;text-align:right;font-size:15px;line-height:1.35;color:#cfe3ff;opacity:.92}
#nowNext:empty{display:none}#nowNext b{color:#fff}#nowNext>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#nowNext .cu{color:#ffe2b0}
#top{padding-right:350px}body.timerOn #top{padding-right:350px}
#advSheet .advB.june{background:#c2468f}

/* 1325-weave: Kip's face bigger and freer: no head box or screen frame, the face floats and fills the space */
#faceWrap{flex:1 1 auto;min-height:44vh;padding-top:2px}
#robot{flex:1 1 0;min-height:0;height:auto;width:100%;max-height:none;max-width:100%}
#robot > rect,#ears > rect{display:none}
#caption{min-height:1.4em}#heard{min-height:1em}
#panel{flex:0 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 0 10px}
#card{padding:8px 16px;margin-bottom:8px;gap:12px}#stepEmoji{font-size:clamp(36px,5vw,52px)}
#stepLabel{font-size:clamp(22px,3vw,30px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#stepMeta{font-size:clamp(14px,1.8vw,17px)}
#momOk{max-height:34px;overflow:hidden;margin-top:0}
#fixes{padding:8px 12px;margin-bottom:8px}#fixTitle{font-size:17px;margin-bottom:6px}#fixItems{gap:6px}.fix{padding:8px 14px;font-size:clamp(18px,2.4vw,24px)}.fix .box{width:32px;height:32px;font-size:22px}
.big{padding:10px 8px;font-size:clamp(24px,3.2vw,32px)}.big span{font-size:clamp(15px,2vw,20px)}
#btnAdv{padding:10px 12px;margin-top:8px}
#buttons2{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;margin-top:8px;padding-bottom:4px}#buttons2 .mid{flex:0 0 auto;min-width:150px;padding:8px 10px;font-size:clamp(17px,2.2vw,21px)}
body[data-phase=listening]:not(.celebrate):not(.helping) #robot,body[data-phase=speaking]:not(.celebrate):not(.helping) #robot{animation:float 5s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-8px) scale(1.015)}}
@media (orientation:landscape) and (max-height:820px){#robot{max-height:none}}

/* 1335-kipmenu: panel is only the job card + 3 buttons now, so the face gets the room */
#faceWrap{min-height:50vh}
@media (orientation:landscape){#faceWrap{min-height:58vh}}
