:root{--cream:#fffaf0;--mint:#13c6b2;--purple:#7354e7;--ink:#223251;--muted:#5b6782;--line:#dce4f0;--good:#16a464;--bad:#d33d56}body{background:radial-gradient(ellipse at 5% 0,#fff1bd,transparent 40%),#fffaf0}.primary{background:linear-gradient(145deg,#8860f2,#6540d4);box-shadow:0 5px 0 #48249b}.audio{background:#cef4ef;color:#155c55}.eyebrow{color:#287867}.hero{background:linear-gradient(120deg,#b0f3d7,#a5e2ff)}.landing-scene{background:linear-gradient(155deg,#b4efff,#a4f0d0)!important}.sun{background:#ffcf38!important;box-shadow:0 0 0 18px #ffda5040}.hill{background:#4fcf8b!important}.hill.back{background:#8de4a3!important}.world-art{filter:saturate(1.45)}.bubble{border:2px solid #d8d7f7;box-shadow:0 8px 0 #e9e6fc;padding:22px;border-radius:26px;background:#fff}.game-prompt .bubble h1{font-size:clamp(22px,2vw,29px);margin:10px 0}.task-russian{font-size:17px;line-height:1.6;margin:12px 0}.game-prompt{align-items:flex-start}.guide-character{text-align:center;flex-shrink:0}.guide-name{display:block;font-size:12px;font-weight:850;color:#52617d}.game-prompt .audio,.game-prompt .english-audio{margin:5px 4px 5px 0;font-size:14px;padding:12px}.task-demo{margin:10px 0;font-size:14px}.task-demo summary{min-height:40px;padding:8px 0;cursor:pointer;font-weight:800}.translation-cue{background:#fff2c6;padding:12px;border-radius:14px}.question-en{font-weight:850;color:#5633b0}.ask-buddy{display:block;width:100%;background:linear-gradient(120deg,#eee3ff,#dcedff);border:2px solid #b69bea;border-radius:16px;padding:13px;font-weight:850;color:#5835a4;margin-top:14px}.teacher-note{display:block;color:#6a6283;font-size:12px;margin-top:5px}.landing-teacher{max-width:440px;text-align:left}.playfield{padding:0!important;border:2px solid #bce8e5;background:#e9fbf4!important;position:relative;display:block!important;overflow:hidden;box-shadow:0 8px 0 #cae8dc}.exercise-area{padding:26px;position:relative;z-index:2}.choices{position:relative;z-index:2}.choice,.pair{position:relative;border:3px solid #fff!important;box-shadow:0 6px 0 #b7d6ca;background:#fff!important;color:var(--ink);transition:border-color .15s,background .15s,box-shadow .15s}.choice.selected{border-color:#8263e7!important;background:#f1eaff!important}.choice:disabled,.pair:disabled{opacity:1}.choice.answer-correct,.pair.answer-correct,.pair.matched{border-color:#12b66a!important;background:#ddffe9!important;box-shadow:0 6px 0 #079658,0 0 0 5px #24d67b33;animation:answer-pop .5s ease-out}.choice.answer-wrong,.pair.answer-wrong{border-color:#ee4962!important;background:#fff0f3!important;box-shadow:0 6px 0 #c8324d;animation:answer-shake .4s ease-in-out}.answer-correct:after,.answer-wrong:after{position:absolute;right:-7px;top:-12px;border-radius:50%;width:30px;height:30px;color:white;display:grid;place-items:center;font-weight:900;font-size:20px;border:3px solid white;z-index:4}.answer-correct:after{content:'✓';background:#10a963}.answer-wrong:after{content:'↻';background:#df3b58}.result-correct.writing,.result-correct.sentence-line{outline:3px solid #10aa65;background:#dcffea;border-radius:18px}.result-wrong.writing,.result-wrong.sentence-line{outline:3px solid #ed4962;background:#fff0f2;border-radius:18px;animation:answer-shake .4s}.game .feedback{border-radius:18px;padding:15px 18px;min-height:80px}.game .feedback-correct{background:#d7ffe7;border:2px solid #52cd89;color:#075b36}.game .feedback-wrong{background:#fff0f2;border:2px solid #f28c9d;color:#9d243a}.feedback p{font-size:16px}.ball{background:radial-gradient(circle at 29% 24%,#ffffffb5,transparent 28%),radial-gradient(circle at 65% 75%,#0002,transparent 55%),var(--ball)!important;box-shadow:inset -7px -9px 0 #00000012,0 8px 10px #20304725;border:3px solid #ffffff75}.choice .ball{animation:ball-arrive .8s ease-out}.choice:hover .ball{transform:translateY(-4px)}.dropzone{background:#fff5d4!important;border:3px dashed #dfad40!important;border-radius:20px}.mood-correct .dropzone{border-color:#0ab26c!important;background:#caffdf!important}.answer-stars{position:absolute;inset:0;pointer-events:none;z-index:8;overflow:hidden}.answer-stars i{font-style:normal;position:absolute;left:calc(8% + var(--i)*10%);top:46%;font-size:24px;color:#ffc322;text-shadow:0 2px #db8a0f;animation:star-burst 1.25s calc(var(--i)*.035s) both}.quest-stage{height:220px;position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(#6bd5ff,#c6f5ff);border-bottom:3px solid #76d8b3}.quest-sun{position:absolute;right:12%;top:10%;width:48px;height:48px;border-radius:50%;background:#ffd33d;box-shadow:0 0 0 12px #ffdf6060;animation:sun-breathe 6s ease-in-out infinite}.quest-cloud{position:absolute;background:#ffffffe6;width:90px;height:22px;border-radius:50%;top:18%;animation:cloud-cruise 14s ease-in-out infinite alternate}.quest-cloud:before{content:'';position:absolute;width:40px;height:32px;border-radius:50%;background:inherit;left:20px;bottom:0}.cloud-one{left:10%}.cloud-two{left:54%;top:28%;transform:scale(.7);animation-delay:-6s}.quest-mountain{position:absolute;bottom:15%;left:38%;width:140px;height:140px;border-radius:30px;background:#79cfd1;transform:rotate(45deg);z-index:-1}.quest-meadow{position:absolute;left:-10%;bottom:-54%;width:120%;height:110%;background:#50ce86;border-radius:50%}.quest-path{position:absolute;left:-10%;bottom:13%;width:130%;height:32px;background:#ffdf91;transform:rotate(-5deg);border-radius:50%;box-shadow:0 6px #e8bc6d}.quest-tree{position:absolute;bottom:26%;width:16px;height:58px;background:#ae7144;border-radius:8px}.quest-tree:before{content:'';position:absolute;left:-28px;top:-30px;width:72px;height:64px;border-radius:45%;background:#13ac70;box-shadow:15px -13px #28c67b,-8px -10px #67dc81}.tree-one{left:8%}.tree-two{right:13%;transform:scale(.7)}.quest-flower{position:absolute;right:35%;bottom:13%;font-size:36px;color:#ff5c93;animation:flower-nod 4s ease-in-out infinite alternate}.quest-butterfly{position:absolute;left:48%;top:25%;font-size:25px;animation:butterfly-fly 8s ease-in-out infinite}.quest-goal{position:absolute;right:4%;bottom:19%;font-size:53px}.quest-traveller{position:absolute;bottom:16%;left:var(--progress);width:100px;height:105px;animation:traveller-walk 1.5s ease-out both}.quest-traveller .animal{width:100%;height:100%;animation:body-bob .6s ease-in-out 3}.quest-orb{position:absolute;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#7c51fc,#c791ff);border:2px solid white;left:67%;bottom:24%;animation:orb-bounce 2s ease-in-out infinite}.quest-caption{position:absolute;bottom:0;width:100%;padding:6px;text-align:center;font-size:11px;font-weight:850;background:#ffffffcb;color:#245845}.realm-1{background:linear-gradient(#c1a2ff,#ead9ff)}.realm-2{background:linear-gradient(#ffb94e,#ffe9ab)}.realm-3{background:linear-gradient(#7bdde5,#d9faff)}.realm-4{background:linear-gradient(#84d7ff,#ddf8ff)}.realm-5{background:linear-gradient(#91a6ff,#eedfff)}.emotion-correct .quest-traveller .animal,.animal.cheering{animation:happy-hop .5s ease-in-out 3}.animal .animal-eyes{transform-box:fill-box;transform-origin:center;animation:blink 6s infinite}.animal .animal-tail{transform-box:fill-box;transform-origin:90% 70%;animation:tail-wag 1.1s ease-in-out infinite alternate}.animal.walking .paw-left{transform-box:fill-box;transform-origin:center;animation:paw-step .6s ease-in-out infinite alternate}.animal.walking .paw-right{transform-box:fill-box;transform-origin:center;animation:paw-step .6s -.6s ease-in-out infinite alternate}.speaking .guide-character .animal-mouth,.speaking .tutor-scene .animal-mouth,.speaking .film-actor .animal-mouth{transform-box:fill-box;transform-origin:center;animation:mouth-talk .25s ease-in-out infinite alternate}.mentor-banner{display:flex;align-items:center;gap:20px;margin:28px 0;padding:24px;border-radius:26px;background:linear-gradient(110deg,#ede2ff,#d9f7ff);border:2px solid #c8b4f0}.mentor-banner b{font-size:21px}.mentor-banner p{margin:7px 0 0;max-width:650px}.mentor-orb{font-size:36px;animation:sun-breathe 4s infinite}.mentor-banner .primary{flex-shrink:0}.teacher-welcome{max-width:760px;margin:30px auto;padding:36px;background:linear-gradient(135deg,#e8dfff,#d1fff1);border-radius:32px;text-align:center}.teacher-welcome .animal{width:180px;display:block;margin:auto}.teacher-welcome p{font-size:18px}.teacher-welcome .primary{margin-top:20px}.audience-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.audience-tabs button{padding:13px 20px;border-radius:18px;background:#fff;border:2px solid #ded8ef;font-weight:800}.audience-tabs button.active{background:#7953d9;color:#fff;border-color:#7953d9}.tutor-scene{background:linear-gradient(145deg,#e1f6ff,#e7ddff);border:2px solid #d0b8ff;border-radius:30px;padding:28px}.tutor-russian{font-size:20px;font-weight:750;line-height:1.65}.english-example{padding:18px;background:#fff3c9;border-radius:20px;margin-top:18px;border:1px solid #efd17e}.english-example small{color:#816025;font-weight:800}.english-example .tutor-english{font-size:24px;margin:8px 0}.conversation-history{margin:20px 0;border:2px solid #ded4f5;border-radius:20px;padding:16px;background:#fff}.conversation-history summary{cursor:pointer;font-weight:800;min-height:32px}.conversation-history ol{list-style:none;padding:0;max-height:320px;overflow:auto}.conversation-history li{padding:14px;border-radius:14px;margin:10px 0;white-space:pre-wrap}.conversation-history p{margin:6px 0}.message-user{background:#e3f7ee;margin-left:8%!important}.message-assistant{background:#f0e9ff;margin-right:8%!important}.teacher-input input{min-height:54px;border:2px solid #bca6e9}.teacher-options .ghost{border:2px solid #bca6e9;background:#fff}.thinking-dots{letter-spacing:10px;display:inline-block;color:#8052db;animation:thinking-pulse 1s infinite alternate}.film-stage{background:linear-gradient(#73d8ff,#bcf4d8)}.film-hill{background:#4bd086}.film-sun{background:#ffd234}.film-stage.frame-0 .film-actor{animation:buddy-stroll 3s ease-out both}.film-stage.frame-1 .film-actor{animation:buddy-chase 4s ease-in-out both}.film-choices .answer-correct{background:#c6ffdf!important;border-color:#10b86e!important}.film-choices .answer-wrong{background:#ffe0e8!important;border-color:#e33e5c!important}.film-choices button{position:relative}.film-choice-status{text-align:center;min-height:30px;font-weight:850}.film-stage .film-ball{background-color:#2188ff!important}.finish{background:radial-gradient(circle at top,#fff0ad,#e2fff0 60%,#e3f2ff);padding:32px;border-radius:32px}.finish>.animal{animation:happy-hop .65s ease-in-out 3}.scene>.animal{animation:scene-walk 9s ease-in-out infinite}.scene>.animal.second,.scene>.animal.small{animation-delay:-4s}.scene>.animal.third{animation-delay:-2s}
@keyframes answer-pop{0%{transform:scale(.93)}60%{transform:scale(1.07)}100%{transform:scale(1)}}@keyframes answer-shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}@keyframes star-burst{0%{opacity:0;transform:translateY(20px) scale(.2) rotate(0)}25%{opacity:1}100%{opacity:0;transform:translateY(-150px) scale(1.3) rotate(100deg)}}@keyframes ball-arrive{0%{transform:translateY(-18px)}45%{transform:translateY(2px)}70%{transform:translateY(-7px)}100%{transform:translateY(0)}}@keyframes traveller-walk{from{transform:translateX(-50px)}to{transform:translateX(0)}}@keyframes body-bob{50%{transform:translateY(-5px) rotate(2deg)}}@keyframes paw-step{to{transform:translateY(-7px) rotate(10deg)}}@keyframes mouth-talk{to{transform:scaleY(1.6)}}@keyframes sun-breathe{50%{transform:scale(1.08)}}@keyframes cloud-cruise{to{margin-left:55px}}@keyframes flower-nod{to{transform:rotate(14deg)}}@keyframes butterfly-fly{25%{transform:translate(35px,-16px) rotate(12deg)}75%{transform:translate(-15px,15px) rotate(-12deg)}}@keyframes orb-bounce{50%{transform:translateY(-35px) scale(.94,1.04)}}@keyframes thinking-pulse{to{opacity:.3;transform:translateY(-5px)}}@keyframes buddy-stroll{from{transform:translateX(-80px)}to{transform:translateX(20px)}}@keyframes buddy-chase{to{transform:translateX(90px)}}@keyframes scene-walk{0%,100%{transform:translateX(-12px) rotate(-2deg)}50%{transform:translateX(15px) translateY(-7px) rotate(2deg)}}
@media(min-width:1100px){.game{grid-template-columns:minmax(290px,.85fr) minmax(0,1.35fr);gap:28px;max-width:1280px}.game-prompt{flex-direction:column;align-self:start;align-items:center;gap:0}.game-prompt .animal{width:105px;height:115px}.game-prompt .bubble{text-align:left;width:100%}.game-prompt .guide-name{margin-bottom:12px}.quest-stage{height:250px}.game .playfield{align-self:start;min-height:510px}.exercise-area{padding:36px 24px}.reading-panel{grid-row:2}.teacher-view{max-width:1120px;margin:auto}}
@media(min-width:601px) and (max-width:1099px){.game-prompt .guide-character{width:120px}.game-prompt .bubble{flex:1}.mentor-banner{flex-wrap:wrap}}
@media(max-width:600px){.game{margin-top:14px}.game-prompt{display:block;position:relative;padding-top:0}.guide-character{display:flex;align-items:center;text-align:left;gap:8px}.game-prompt .animal{width:62px;height:65px}.game-prompt .bubble{padding:16px;margin-bottom:20px}.game-prompt .bubble h1{font-size:24px}.task-russian{font-size:16px;margin:10px 0}.game-prompt .audio,.game-prompt .english-audio{font-size:13px}.quest-stage{height:175px}.quest-traveller{width:76px;height:82px}.quest-tree{transform:scale(.75)}.quest-goal{font-size:38px}.quest-caption{font-size:10px}.exercise-area{padding:20px 10px}.choice{min-width:0}.choice .ball{width:60px;height:60px}.game .feedback{position:static;font-size:14px;margin-top:18px}.game .feedback p{font-size:14px}.mentor-banner{display:block;padding:20px}.mentor-orb{display:none}.mentor-banner .primary{margin-top:16px;width:100%}.teacher-welcome{padding:24px 18px}.tutor-scene{padding:18px;gap:10px}.tutor-russian{font-size:17px}.english-example .tutor-english{font-size:21px}.audience-tabs button{padding:12px;font-size:14px}.film-stage.frame-1 .film-actor{animation-name:buddy-stroll}.finish{padding:24px 16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.answer-stars{display:none}}.reduced *,.reduced *::before,.reduced *::after{animation:none!important;transition:none!important}.reduced .answer-stars{display:none}
@media(min-width:1100px){.game{grid-template-rows:auto auto;align-items:start}.game-prompt{grid-row:1/span 2}.game .playfield{grid-row:1;grid-column:2}.game .feedback{grid-row:2;grid-column:2;margin:0}.game .reading-panel{grid-row:3;grid-column:1/-1}.game:has(.reading-panel) .game-prompt{grid-row:1/span 2}.game:has(.reading-panel) .reading-panel{max-width:none}}
@media(max-width:600px){.game-prompt .guide-character{display:none}.game-prompt .bubble{padding:14px}.task-russian{font-size:15px;line-height:1.5}.game-prompt .eyebrow{font-size:10px}.game-prompt .hint{margin:5px 0}.ask-buddy{margin-top:8px;font-size:14px}.teacher-note{display:none}.task-demo{margin:4px 0}.game-prompt .bubble h1{margin:6px 0}.quest-stage{height:150px}}
.scene .paw-left,.world-art .paw-left,.film-actor .paw-left{transform-box:fill-box;transform-origin:center;animation:paw-step .6s ease-in-out infinite alternate}.scene .paw-right,.world-art .paw-right,.film-actor .paw-right{transform-box:fill-box;transform-origin:center;animation:paw-step .6s -.6s ease-in-out infinite alternate}.realm-1 .quest-tree:before{background:#a053d9;box-shadow:15px -13px #d078f1,-8px -10px #ea9ffe}.realm-2 .quest-tree:before{background:#ff954a;box-shadow:15px -13px #ffbc47,-8px -10px #ffd969}.realm-3 .quest-path{background:#60bde9;box-shadow:0 6px #3e98d2}.realm-4 .quest-flower{color:#ff6b5c;font-size:46px}.realm-5 .quest-goal{filter:drop-shadow(0 0 8px #ffef75)}
@media(max-width:600px){.game-prompt .audio,.game-prompt .english-audio{display:inline-flex;align-items:center;justify-content:center;font-size:13px;padding:10px;min-height:44px}.game-prompt .hint{padding:8px 0;min-height:40px}.game .choices{gap:10px}.game .choice{padding:16px 10px}.quest-caption{white-space:normal}}
/* Speaking is a first-class lesson surface, with a visible microphone lifecycle. */
.voice-overlay{position:fixed;inset:0;z-index:1000;background:#f1fff8;overflow-y:auto;overscroll-behavior:contain;padding:clamp(14px,4vw,52px);padding-bottom:max(24px,env(safe-area-inset-bottom))}.voice-studio{max-width:1200px;margin:auto}.voice-layout{display:grid;grid-template-columns:minmax(200px,.65fr) minmax(0,1.35fr);gap:36px;align-items:start}.voice-character{position:sticky;top:50px;background:linear-gradient(150deg,#52e9ed,#9aff6d);border-radius:40% 40% 26% 26%;min-height:380px;display:flex;align-items:center;justify-content:center;margin-top:50px}.voice-character>.animal{width:230px;height:270px;animation:buddyBreathe 3s infinite}.voice-character>.speech{top:14px;left:20px;font-size:17px}.voice-prompt{font-size:clamp(20px,2vw,26px);line-height:1.5;font-weight:700}.voice-english{color:#196be1;font-size:24px;font-weight:800}.voice-auto{display:flex;gap:12px;align-items:center;margin-top:20px;font-weight:700}.voice-auto input,.voice-studio label input{width:24px;height:24px;flex-shrink:0}.mic-button{display:block;min-height:76px;width:100%;border:0;border-radius:26px;background:linear-gradient(135deg,#703dff,#427aff);color:#fff;font:800 21px Nunito,sans-serif;box-shadow:0 7px 0 #472ba7;padding:18px;margin:22px 0}.mic-button.listening{background:#e54157;box-shadow:0 7px 0 #a52537;animation:micPulse 1s infinite}.mic-button:disabled{opacity:.7}.voice-meter{height:10px;background:#d9e6ef;border-radius:20px;overflow:hidden}.voice-meter span{display:block;height:100%;width:0;background:#17bc87;transition:width .1s}.voice-result{margin:20px 0;padding:22px;border-radius:24px;background:#d9ffe9;border:3px solid #0ebc7d}.voice-coaching{background:#fff5d8;border-color:#edbb35}.voice-result p{overflow-wrap:anywhere}.voice-studio h1{font-size:clamp(28px,4vw,48px)}@keyframes micPulse{50%{box-shadow:0 7px 0 #a52537,0 0 0 10px #ff43682a}}@media(max-width:700px){.voice-layout{grid-template-columns:1fr;gap:12px}.voice-character{position:relative;top:0;margin:6px 0;min-height:150px;height:150px;border-radius:28px;overflow:hidden}.voice-character>.animal{width:120px;height:150px;transform:translateX(-50px)}.voice-character>.speech{left:50%;top:32px;max-width:45%;font-size:14px}.voice-studio .actions{flex-wrap:wrap}.voice-studio h1{margin:12px 0}}@media(prefers-reduced-motion:reduce){.voice-character>.animal,.mic-button.listening{animation:none!important}}.reduced .voice-character>.animal,.reduced .mic-button.listening{animation:none!important}
.voice-talking .voice-character .mouth{animation:talk .25s infinite alternate}.voice-overlay:has(.listening) .voice-character{background:linear-gradient(145deg,#8af0bd,#74b8ff)}
.voice-character>.speech{width:170px;max-width:48%;height:auto;min-height:44px;padding:14px;white-space:normal;overflow-wrap:normal;transform:none;left:auto;right:12px;line-height:1.25}.voice-story{padding:18px;background:#e4edff;border-radius:18px;font-size:20px}.voice-studio>.back{position:sticky;top:0;z-index:4;background:#f1fff8;padding:12px;border-radius:16px}@media(max-width:700px){.voice-overlay{padding-bottom:125px}.voice-character{height:110px;min-height:110px}.voice-character>.animal{height:115px;width:110px}.voice-character>.speech{top:24px;font-size:14px;width:145px}.voice-studio h1{font-size:27px;line-height:1.15}.voice-studio .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.voice-studio .actions button{font-size:15px;padding:12px;min-width:0}.voice-prompt{font-size:19px;line-height:1.45}.voice-studio .mic-button{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));left:16px;width:calc(100% - 32px);z-index:5;margin:0;font-size:18px;min-height:64px}.voice-meter{height:8px}}
@keyframes buddyBreathe{50%{scale:1.025}}.voice-talking .animal-mouth{transform-box:fill-box;transform-origin:center;animation:mouth-talk .22s infinite alternate}@media(prefers-reduced-motion:reduce){.voice-talking .animal-mouth{animation:none!important}}.reduced .voice-talking .animal-mouth{animation:none!important}
