@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Nunito:wght@600;700;800;900&display=swap');
:root{--bg:#f6f7f1;--ink:#203b32;--muted:#6c7b70;--green:#247856;--mint:#e8f3e8;--line:#dce5da;--gold:#f4b741;--cream:#fffdf7;--red:#b94738}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #74ba86;outline-offset:2px}.shell{max-width:460px;margin:auto;min-height:100dvh;background:var(--bg);position:relative;padding-bottom:calc(160px + env(safe-area-inset-bottom))}.head{padding:calc(18px + env(safe-area-inset-top)) 22px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px}.brand{font:900 23px 'Nunito',sans-serif;letter-spacing:-.07em;display:flex;align-items:center;gap:9px}.brand .logo{width:35px;height:35px;border-radius:13px;background:#def1df;display:grid;place-items:center;font-size:22px;letter-spacing:0}.statrow{display:flex;gap:8px}.pill{border:1px solid var(--line);background:#fff;padding:7px 9px;border-radius:13px;font-size:13px;font-weight:800;white-space:nowrap}.pill b{color:#c36f23}.content{padding:0 20px}.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--green);font-weight:900}.hero{background:linear-gradient(125deg,#d9eee2 0%,#eff7e7 70%,#f7edca 100%);border-radius:25px;padding:21px;position:relative;overflow:hidden;min-height:174px;display:flex;align-items:center;margin-bottom:20px}.hero h1{font:900 26px/1.13 'Nunito',sans-serif;letter-spacing:-.04em;max-width:235px;margin:8px 0}.hero p{margin:0;color:#496b5a;font-size:13px;line-height:1.35;max-width:218px}.dove{position:absolute;right:12px;bottom:11px;width:119px;height:119px;filter:drop-shadow(0 9px 5px #719f8244)}h2{font:900 20px/1.18 'Nunito',sans-serif;letter-spacing:-.035em;margin:8px 0 14px}.section-top{display:flex;justify-content:space-between;align-items:center;margin-top:19px}.small-link{background:none;border:0;color:var(--green);font-size:12px;font-weight:800;padding:7px 0}.tab-picks{display:flex;gap:7px;overflow-x:auto;padding-bottom:9px;scrollbar-width:none}.tab-picks::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:#fff;color:#536c5e;padding:9px 13px;border-radius:14px;white-space:nowrap;font-size:12px;font-weight:800}.chip.active{color:white;background:var(--green);border-color:var(--green)}.unit{display:flex;align-items:center;gap:12px;border:1px solid #e2e8df;background:#fff;border-radius:20px;padding:13px;margin:8px 0;width:100%;text-align:left;box-shadow:0 3px 0 #dfe9de}.unit:active,.option:active,.primary:active{transform:translateY(2px);box-shadow:none}.unit-icon{width:51px;height:51px;display:grid;place-items:center;background:#edf4e8;border-radius:17px;font-size:25px;flex:none}.unit-body{flex:1;min-width:0}.unit-body strong{font-size:14px;display:block}.unit-body small{font-size:11px;color:var(--muted);display:block;margin-top:3px}.arrow{color:var(--green);font-weight:900}.progress{height:7px;background:#dce8d9;border-radius:20px;overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;background:#56b781;border-radius:20px}.ad{position:fixed;bottom:calc(69px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(460px,100%);height:62px;background:#fff;border-top:1px solid #e0e7df;border-bottom:1px solid #e0e7df;display:flex;align-items:center;gap:10px;padding:7px 14px;z-index:8}.ad-art{width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,#626bd1,#a6a5eb 62%,#ead6af);color:#fff;font-size:27px;font-family:Georgia,serif;display:grid;place-items:center;flex:none}.ad-copy{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.22}.ad-copy small{font-size:9px;color:#879088;font-weight:700}.ad-copy strong{font-size:12px;color:#21372d;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ad-copy span{font-size:10px;color:#637369;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ad-cta{border-radius:20px;background:#edf0fa;color:#4c55ae;font-size:11px;font-weight:800;padding:9px 11px;flex:none}.fire-pill{display:flex;align-items:center;gap:3px}.fire-pill img{width:16px;height:19px}.profile-flame{width:27px;height:32px;vertical-align:middle}
.nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(460px,100%);height:calc(69px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 10px env(safe-area-inset-bottom);z-index:9}.nav button{background:none;border:0;color:#8b9b90;display:flex;flex-direction:column;align-items:center;gap:1px;font-size:10px;font-weight:800;min-width:60px}.nav button.current{color:var(--green)}.nav .symbol{font-size:22px;line-height:28px}.intro{min-height:100dvh;padding:calc(50px + env(safe-area-inset-top)) 25px 35px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.intro .mascot{width:150px;margin-bottom:17px;filter:drop-shadow(0 10px 9px #698e6b39)}.intro h1{font:900 31px/1.08 'Nunito',sans-serif;letter-spacing:-.05em;margin:10px 0}.intro p{font-size:15px;color:var(--muted);line-height:1.5;max-width:300px}.intro .primary{margin-top:30px;width:100%}.primary{width:100%;border:none;border-radius:16px;padding:16px 20px;min-height:53px;color:#fff;background:var(--green);box-shadow:0 4px 0 #14553a;font:900 15px 'Nunito',sans-serif}.primary:disabled{background:#b9c9ba;box-shadow:0 4px 0 #aab8aa}.secondary{background:none;border:0;color:var(--green);font-weight:800;min-height:45px}.topbar{display:flex;align-items:center;gap:13px;padding:calc(24px + env(safe-area-inset-top)) 20px 14px}.back{border:0;background:#e9f0e8;color:var(--ink);border-radius:12px;height:38px;width:38px;font-size:21px}.meter{height:11px;background:#dfebda;border-radius:10px;overflow:hidden;flex:1}.meter i{display:block;height:100%;background:#6bbf83;border-radius:10px;transition:width .25s}.card{background:#fff;border:1px solid var(--line);border-radius:23px;padding:19px;margin:13px 20px}.lesson-shell{min-height:100dvh;max-width:460px;margin:auto;background:var(--bg);padding-bottom:135px}.lesson-head{padding:8px 20px 0}.lesson-head h1{font:900 25px/1.2 'Nunito',sans-serif;letter-spacing:-.04em;margin:8px 0}.prompt{font-size:17px;line-height:1.46;font-weight:700;margin:9px 0 12px}.ref{font-size:12px;color:var(--muted);font-weight:700}.quote{padding:18px;background:#f4f8ee;border-radius:16px;font:700 19px/1.55 'Nunito',sans-serif;margin:16px 0;color:#294439}.blank{color:var(--green);border-bottom:2px solid var(--green);padding:0 8px}.option{width:100%;border:1px solid #dce5db;background:#fff;box-shadow:0 3px 0 #dee7dc;border-radius:15px;padding:14px 15px;min-height:53px;text-align:left;font-weight:800;color:var(--ink);margin:5px 0}.option.selected{border:2px solid var(--green);background:#eef9ee;box-shadow:0 3px 0 #95c8a1}.option.good{border-color:#2c9b68;background:#e7f5e8}.option.bad{border-color:var(--red);background:#fdf0ed}.tiles{display:flex;gap:8px;flex-wrap:wrap;margin:19px 0}.tile{border:1px solid #dce5db;background:#fff;border-radius:12px;padding:10px 12px;min-height:42px;font-weight:800;color:var(--ink)}.tile:disabled{opacity:.4}.answer-box{min-height:65px;border-bottom:2px solid #dce5db;padding-bottom:8px;display:flex;flex-wrap:wrap;align-items:center;gap:5px}.answer-box .tile{background:#ecf6ea}.feedback{padding:14px 17px;border-radius:15px;font-weight:800;font-size:14px;margin:13px 0}.feedback.success{background:#e3f3e6;color:#236c46}.feedback.error{background:#fbece8;color:#9c4035}.actionbottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(460px,100%);background:var(--bg);padding:14px 20px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.note{font-size:12px;color:var(--muted);line-height:1.5}.result{text-align:center;padding:calc(110px + env(safe-area-inset-top)) 24px 30px}.result .big{font-size:75px}.result h1{font:900 29px 'Nunito',sans-serif}.result .primary{margin-top:24px}.score{font:900 33px 'Nunito',sans-serif;color:var(--green)}.page-title{padding:12px 20px 0}.reviewbox{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;margin-bottom:14px}.reviewbox strong{display:block;margin-bottom:6px}.mini{font-size:12px;color:var(--muted)}.levelbar{margin:16px 0}.tabs-top{padding:5px 20px 10px}.footnote{text-align:center;font-size:11px;color:#8a968b;padding:14px 0}.challenge{padding-top:3px}.challenge .option{font-size:14px}@media(min-width:700px){body{background:#e6ece5}.shell,.lesson-shell{box-shadow:0 0 50px #9fac9c35}.ad,.nav,.actionbottom{box-shadow:0 0 35px #9fac9c20}}@media(max-width:350px){.brand{font-size:19px}.pill{font-size:11px;padding:6px}.hero h1{font-size:23px}.dove{width:100px}}

.logo img{width:32px;height:32px}.unit-dove{width:37px;height:37px;display:block}.result-dove{width:105px;height:105px;filter:drop-shadow(0 7px 6px #698e6b39)}
/* Aleluia's illustrated play world */
:root{--bg:#f3fbff;--ink:#214c71;--muted:#6686a2;--green:#13a665;--mint:#ddf9e8;--line:#d7eaf1;--gold:#ffc84d;--cream:#fffdf2;--red:#f16a75}body{background:#e9f6ff;font-family:'Nunito',-apple-system,sans-serif}.shell,.lesson-shell{background:linear-gradient(#e9f8ff,#f8fdff 65%)}.head{position:relative;z-index:3;background:#e9f8ff}.brand{font-size:27px;color:#176d92;letter-spacing:-.065em}.brand .logo{width:41px;height:41px;background:#fff;border-radius:15px;border:2px solid #cfebf5;box-shadow:0 4px 0 #c1e2ee}.brand .logo img{width:37px;height:37px}.pill{background:#fff;border:2px solid #d7ebf3;border-radius:16px;color:#3273a2;box-shadow:0 4px 0 #cbdfe8;font-size:14px;padding:7px 10px}.pill b{color:#ed7c25}.fire-pill img{width:19px;height:22px;animation:flicker 1.65s infinite alternate}.hero{background:linear-gradient(140deg,#bfeeff,#ffefbd)}.primary{background:#19ba74;box-shadow:0 6px 0 #0b8a50;border-radius:17px;text-transform:none;font-size:16px;letter-spacing:.01em;transition:transform .12s,box-shadow .12s,filter .15s}.primary:not(:disabled):active{transform:translateY(5px);box-shadow:0 1px 0 #0b8a50}.primary:disabled{background:#c0cfce;box-shadow:0 5px 0 #aabdbb}.eyebrow{color:#3289b2;font-size:11px;letter-spacing:.12em}.small-link{color:#13865d}.tab-picks{margin-top:4px}.chip{border:2px solid #d9ebf1;box-shadow:0 3px 0 #cee3eb;border-radius:16px;padding:10px 14px;color:#48799a}.chip.active{background:#21b9ad;border-color:#21b9ad;box-shadow:0 4px 0 #148d85}.unit{border:2px solid #d8ebf3;box-shadow:0 5px 0 #c7e2ea;border-radius:23px;padding:15px;margin:11px 0;transition:transform .12s,box-shadow .12s}.unit-icon{background:#dbf5ff;border-radius:18px;width:55px;height:55px;color:#2b96be}.unit-body strong{font-weight:900;color:#245679}.unit-body small{color:#688ba3}.progress{background:#d6edf3}.progress i{background:#21c27d}.arrow{color:#13ab77;font-size:22px}.nav{height:calc(74px + env(safe-area-inset-bottom));border-top:2px solid #d3e8f0}.nav button{font-size:11px}.nav button.current{color:#10a36a}.nav .symbol{font-weight:900;font-size:24px}.ad{bottom:calc(74px + env(safe-area-inset-bottom))}.intro{background:radial-gradient(ellipse at 50% 35%,#b9edff,#effbff 67%)}.intro .mascot{width:236px;filter:drop-shadow(0 12px 12px #9acddd);animation:float 3s ease-in-out infinite}.intro h1{font-size:35px;color:#285c8a}.intro p{font-size:16px}.intro .primary{margin-top:35px}.topbar{background:#e9f8ff}.back{background:#fff;border:2px solid #d8eaf0;border-radius:14px;box-shadow:0 3px 0 #c5e0ea;color:#6a8ca2}.meter{height:16px;background:#cfecf5;box-shadow:inset 0 2px 4px #a8d3e1}.meter i{background:linear-gradient(90deg,#29cb8b,#96db68);box-shadow:inset 0 -3px #14a963}.lesson-head h1{font-size:28px;color:#265983}.lesson-head .eyebrow{color:#3184ad}.card{background:#fff;border:2px solid #dceaf1;box-shadow:0 5px 0 #d2e5ec;border-radius:26px;padding:18px}.quote{background:#fff9e9;border:2px solid #f9e8b5;color:#3a6079;border-radius:18px;font-size:20px}.blank{color:#0cae70;border-bottom-color:#0cae70}.option{border:2px solid #d9eaf1;box-shadow:0 4px 0 #c9e0e9;border-radius:17px;font-size:15px}.option.selected{border-color:#20b97a;background:#e6ffef;box-shadow:0 4px 0 #8adeb4}.option.good{border-color:#20b97a;background:#d9fbea}.option.bad{border-color:#f16a75;background:#fff0f1}.tile{border:2px solid #d8e9ef;border-radius:15px;box-shadow:0 3px 0 #cee2e9}.answer-box .tile{background:#e7faf0;border-color:#a9e6c1}.feedback.success{background:#dbfbe8;color:#0e925c;border:2px solid #9de4bd}.feedback.error{background:#fff0f0;color:#b85064;border:2px solid #f2b8c2}.actionbottom{background:#f6fcff;border-top:2px solid #d8ebf1}.result{background:radial-gradient(ellipse at 50% 24%,#ffe8aa 0%,#e5f8ff 54%,#f8fcff 80%)}.result .big{height:155px}.result-dove{width:170px;height:170px;animation:celebrate .85s cubic-bezier(.18,.82,.26,1.24) both}.result h1{color:#237faa;font-size:36px}.score{color:#ed9a26;font-size:43px}.result .primary{margin-top:30px}.reviewbox{border:2px solid #d5e9f2;box-shadow:0 5px 0 #cee4ec}.profile-flame{animation:flicker 1s infinite alternate}.coach{display:flex;align-items:center;gap:7px;padding:1px 20px 0;height:87px}.coach-dove{width:88px;height:88px;object-fit:contain;animation:popIn .4s ease-out}.coach-bubble{position:relative;background:#fff;border:2px solid #cbe5ef;box-shadow:0 3px 0 #d1e8ee;border-radius:17px;padding:10px 12px;color:#387095;font-size:13px;font-weight:900;max-width:250px}.coach-bubble:before{content:'';position:absolute;left:-9px;top:18px;border:8px solid transparent;border-left:0;border-right-color:#cbe5ef}.audio-btn{border:2px solid #8bd0ed;background:#e9f8ff;color:#197dab;border-radius:14px;box-shadow:0 3px 0 #b7dce9;min-width:48px;min-height:44px;font-size:22px;display:inline-grid;place-items:center;margin:6px 0}.audio-btn:active{transform:translateY(3px);box-shadow:none}.audio-btn.speaking{animation:pulse .7s infinite}.world-label{position:relative;z-index:1;text-align:center;padding-top:16px}.world-label h1{font:900 27px 'Nunito',sans-serif;margin:7px 0 2px;color:#266292}.world-label p{font-size:13px;color:#6a91ab;margin:0}.home-world{min-height:680px;position:relative;overflow:hidden}.sky-glow{position:absolute;width:320px;height:380px;border-radius:50%;background:radial-gradient(#fff0bc88,transparent 70%);left:50%;top:50px;transform:translateX(-50%)}.journey{height:510px;position:relative;margin:5px -20px 0;overflow:hidden}.journey-line{position:absolute;inset:0;width:100%;height:100%;z-index:1}.hill{position:absolute;border-radius:50%;background:#d6f5cf;width:430px;height:170px;z-index:0}.hill-one{bottom:-114px;left:-70px}.hill-two{bottom:-155px;right:-170px;background:#bce9db}.spark{position:absolute;color:#f2c34c;z-index:2;font-size:30px;animation:twinkle 2.5s infinite alternate}.s1{top:62px;left:30px}.s2{top:245px;right:30px;animation-delay:.5s}.s3{top:365px;left:30px;animation-delay:1s}.journey-guide{position:absolute;width:86px;height:105px;top:87px;right:14px;z-index:2;transform:rotate(8deg);animation:float 3s infinite}.journey-shepherd{position:absolute;width:68px;height:90px;top:248px;left:22px;z-index:2;transform:rotate(-4deg)}.path-node{position:absolute;width:74px;height:74px;border-radius:50%;border:5px solid #fff;z-index:3;display:grid;place-items:center;font-size:34px;font-weight:900;color:#fff;transition:transform .16s,box-shadow .16s}.path-node:active{transform:translateY(5px) scale(.96);box-shadow:none}.path-node.future{background:#a9c7d5;box-shadow:0 7px 0 #7da9bf,0 12px 18px #529abc40}.n4{top:17px;left:calc(50% - 37px)}.n3{top:122px;left:calc(30% - 37px)}.n2{top:225px;left:calc(57% - 37px)}.node-current{position:absolute;top:333px;left:calc(50% - 85px);width:170px;z-index:5;text-align:center}.path-node.active{position:relative;width:94px;height:94px;margin:auto;background:linear-gradient(#46d991,#14b975);box-shadow:0 8px 0 #078e5e,0 14px 24px #06895855;animation:nodeBounce 2s infinite}.path-node.active .node-dove{width:76px;height:76px;animation:float 2.2s infinite}.node-tag{display:block;background:#fff;border:2px solid #bfe9f4;color:#267da5;padding:5px 9px;border-radius:12px;font-size:11px;font-weight:900;white-space:nowrap;margin-bottom:9px;box-shadow:0 3px 0 #d4e7eb}.node-caption{display:block;background:#ffc94a;color:#855421;box-shadow:0 4px 0 #dba638;border-radius:20px;font-size:11px;font-weight:900;padding:7px 9px;margin:16px auto;width:max-content}.path-start{position:absolute;bottom:0;left:calc(50% - 13px);font-size:25px;color:#f8c540}.all-paths{display:block;margin:-4px auto 5px;background:#fff;border:2px solid #d7eaf1;box-shadow:0 4px 0 #c8e4ed;color:#207aa6;border-radius:16px;padding:11px 16px;font-weight:900}.all-paths span{font-size:19px;margin-left:5px}.answer-burst .feedback.success{animation:popIn .4s ease-out}.answer-burst .coach-dove{animation:celebrate .7s both}.answer-burst .meter i{filter:brightness(1.13)}@keyframes flicker{to{transform:rotate(8deg) scale(1.13);filter:brightness(1.14)}}@keyframes float{50%{transform:translateY(-8px)}}@keyframes popIn{0%{transform:scale(.65);opacity:0}70%{transform:scale(1.09)}100%{transform:scale(1);opacity:1}}@keyframes celebrate{0%{transform:translateY(36px) rotate(-12deg) scale(.7);opacity:0}55%{transform:translateY(-12px) rotate(8deg) scale(1.14);opacity:1}100%{transform:translateY(0) rotate(0) scale(1)}}@keyframes nodeBounce{50%{transform:translateY(-5px)}}@keyframes twinkle{to{opacity:.3;transform:scale(.7)}}@keyframes pulse{50%{transform:scale(1.08)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Keep navigation and first actionable node clear of the ad rail */
.home-world{padding-bottom:152px}.journey{height:485px}.node-current{top:325px}.all-paths{margin-top:12px}.nav{z-index:30}.ad{z-index:20}
.node-current{top:289px}.n2{top:207px}.n3{top:106px}.n4{top:7px}.journey-guide{top:75px}.journey-shepherd{top:234px}.all-paths{margin-top:-11px}.world-label{padding-top:9px}
.coach-dove{width:104px;height:104px;filter:drop-shadow(0 5px 6px #71a8bd55)}.coach{height:103px}.coach-bubble{margin-left:-7px}.result .big{height:151px}.result-dove{filter:drop-shadow(0 9px 10px #7eb3bf88)}
.result .big{position:relative}.confetti{position:absolute;font-size:24px;color:#f4bd3f;opacity:0}.c1{left:16%;top:50%}.c2{left:70%;top:15%;color:#29b9a2}.c3{left:78%;top:75%;color:#f19e69}.celebrating .confetti{animation:confettiFly 1.5s ease-out both}.celebrating .c2{animation-delay:.17s}.celebrating .c3{animation-delay:.32s}@keyframes confettiFly{0%{opacity:0;transform:translateY(25px) rotate(-30deg)}25%{opacity:1}100%{opacity:0;transform:translateY(-75px) rotate(130deg)}}
.feedback{position:fixed;left:50%;bottom:calc(91px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(420px,calc(100% - 40px));z-index:11;margin:0;box-shadow:0 5px 0 #b7dfcf}.feedback.error{box-shadow:0 5px 0 #e6b0b6}.lesson-shell:has(.feedback){padding-bottom:210px}.coach-dove{width:106px;height:106px}.coach{height:110px}.coach-bubble{font-size:14px}
.wrong-blank{color:#14a96b;background:#defbed;border-radius:7px}.path-node.completed{background:linear-gradient(#ffd967,#ffb93e);box-shadow:0 8px 0 #d38b25,0 14px 24px #ceae4c55}.coach-dove{filter:drop-shadow(0 4px 4px #4ca0b850)}.lesson-shell .card{margin-top:9px}
/* Mascot comes in front of the question card instead of disappearing into it. */
.coach{position:relative;z-index:2}.coach-dove{width:106px;height:106px;object-fit:contain;filter:drop-shadow(0 8px 7px #4d94aa66)}.coach-bubble{z-index:3}.card.challenge{position:relative;z-index:1}.home-world .journey-guide{filter:drop-shadow(0 5px 6px #7ba7b677)}.home-world .journey-shepherd{filter:drop-shadow(0 5px 6px #7ba7b677)}
.credits{padding-top:16px}.credits h1{font-size:27px}.credits .reviewbox{padding:15px;margin:14px 0}.credits .reviewbox strong{font-size:14px}.credits .reviewbox p{font-size:12px;line-height:1.42;color:#567b94;margin:8px 0}.credits a{font-size:12px;font-weight:900;color:#158cb8}.source-link{border:0;background:none;color:#6b97a6;font-size:11px;display:block;margin:15px auto 0;padding:8px;font-weight:700}
.actionbottom{z-index:30}.feedback{z-index:31}.nav{z-index:30}.ad{z-index:20}
/* Portrait art stays crisp and in front of lesson surfaces; result clears heading. */
.coach{height:112px;overflow:visible}.coach-dove{width:113px;height:113px;opacity:1!important;filter:drop-shadow(0 5px 2px #509ac93a)}.lesson-head{position:relative;z-index:1}.lesson-shell .card{position:relative;z-index:0;margin-top:14px}.result{padding-top:calc(95px + env(safe-area-inset-top))}.result .big{height:175px;display:flex;align-items:center;justify-content:center}.result-dove{width:165px;height:165px;filter:drop-shadow(0 5px 1px #e4b85555)}.result .eyebrow{margin-top:15px}
/* Correct answers remain readable beneath the fixed feedback and action rail. */
.lesson-shell:has(.feedback){padding-bottom:260px}.feedback{bottom:calc(91px + env(safe-area-inset-bottom))}.feedback.error{font-size:14px;line-height:1.25}.feedback small{font-size:11px}
.feedback{bottom:calc(108px + env(safe-area-inset-bottom));min-height:64px;display:flex;flex-direction:column;justify-content:center}.feedback small{display:block;margin-top:2px}
/* Course-style progress rail with a persistent streak and per-lesson combo. */
.topbar{gap:8px}.topbar .meter{min-width:45px}.topbar b{font-size:12px;white-space:nowrap}.lesson-stats{display:flex;align-items:center;gap:5px;flex:none}.streak-mini,.combo-mini{height:29px;min-width:35px;display:flex;align-items:center;justify-content:center;gap:2px;background:#fff;border:2px solid #d5eaf2;border-radius:11px;box-shadow:0 3px 0 #cde2e9;color:#3d7594;font:900 12px Nunito,sans-serif}.streak-mini img{width:14px;height:18px}.combo-mini.hot{background:#fff3b8;border-color:#f8d44e;color:#b26c0e;box-shadow:0 3px 0 #e7c052;animation:popIn .28s ease-out}.coach{height:125px}.coach-dove{width:133px!important;height:133px!important;flex:none}.coach-bubble{margin-left:-17px}.lesson-shell .card{margin-top:22px}.feedback.success{font-size:18px;color:#087e48;background:#d9ffdf;border-color:#64d584}.feedback.success:before{content:'✓';display:inline-grid;place-items:center;width:24px;height:24px;color:#fff;background:#1cc773;border-radius:50%;margin-right:8px}
/* Aleluia palette: chapel blue, candle gold, lively leaf green. */
:root{--bg:#edf8ff;--ink:#174f78;--muted:#648ca7;--green:#22bb69;--mint:#dbfbe9;--line:#cce6f2;--gold:#ffc847;--cream:#fff9e8;--red:#e96771}body{background:#e6f4fd}.shell{background:linear-gradient(#e5f5ff,#fffef7 77%)}.head{background:#e5f5ff}.brand{color:#125d98}.hero{background:linear-gradient(125deg,#a7dcfb,#fff1c0 80%)}.hero h1,.world-label h1{color:#165d91}.path-node.active{background:linear-gradient(#52dc7d,#1bbb67);box-shadow:0 8px 0 #078a4b,0 14px 24px #087f5055}.path-node.future{background:#8bc8e3;box-shadow:0 7px 0 #569cbc,0 12px 18px #3189bd40}.path-node.completed{background:linear-gradient(#ffe381,#f6b62d);box-shadow:0 8px 0 #c9891e}.node-caption{background:#ffd352;color:#624817}.spark{color:#ecc13f}.journey-line path{stroke:#aed7e9}.pill b,.score{color:#d69016}.chip.active{background:#218ec8;border-color:#218ec8;box-shadow:0 4px 0 #13678f}.nav button.current{color:#158cba}.result{background:radial-gradient(ellipse at 50% 18%,#ffec9e 0%,#d9f4ff 55%,#f8fdff 82%)}.result h1{color:#116f9d}.result .primary{background:#22c36c;box-shadow:0 6px 0 #0a874c}.profile-flame{filter:saturate(1.1)}
/* Immersive lesson mode. The dove, question, and action each own a clear tier. */
.lesson-shell{background:#16272f;color:#f7fcff}.lesson-shell .topbar{background:#16272f;color:#fff;padding-top:calc(20px + env(safe-area-inset-top))}.lesson-shell .back{background:transparent;box-shadow:none;border:0;color:#a4b5bc;font-size:31px}.lesson-shell .meter{height:17px;background:#35454b;box-shadow:none}.lesson-shell .meter i{background:linear-gradient(90deg,#51d76a,#b4e947);box-shadow:inset 0 -4px #23ae59}.lesson-shell .eyebrow{color:#e8bb4a}.lesson-shell .lesson-head h1{color:#fff;font-size:24px}.lesson-shell .coach{height:155px;padding:0 22px;gap:12px}.lesson-shell .coach-dove{height:147px!important;width:147px!important;filter:drop-shadow(0 6px 2px #070e1466)}.lesson-shell .coach-bubble{font-size:14px;line-height:1.35;margin-left:-17px;padding:12px 14px;background:#23363f;border-color:#4b6875;box-shadow:0 4px 0 #101d25;color:#fff;max-width:200px}.lesson-shell .coach-bubble:before{border-right-color:#4b6875}.lesson-shell .card.challenge{margin:10px 20px 0;padding:0;border:0;box-shadow:none;border-radius:0;background:transparent}.lesson-shell .ref{color:#d3b564}.lesson-shell .quote{color:#fff;background:#223a46;border:2px solid #435e69;padding:16px;border-radius:18px;margin:12px 0;font-size:19px}.lesson-shell .blank{color:#b8ef62;border-bottom:3px solid #75d971}.lesson-shell .audio-btn{color:#b2ebff;background:#263f4b;border-color:#5c8391;box-shadow:0 4px 0 #142732}.lesson-shell .option,.lesson-shell .tile{color:#fff;background:#1b2c33;border:2px solid #42565d;box-shadow:0 4px 0 #33474e;font-size:16px;text-align:center;padding:13px 15px}.lesson-shell .option.selected{background:#244937;border-color:#5ecf7c;box-shadow:0 4px 0 #258144}.lesson-shell .option.good{background:#204c34;border-color:#78d36b}.lesson-shell .option.bad{background:#572e39;border-color:#ed858a}.lesson-shell .tile:disabled{opacity:.44}.lesson-shell .answer-box{border-bottom-color:#546771}.lesson-shell .answer-box .tile{background:#275341;border-color:#79d695}.lesson-shell .actionbottom{background:#16272f;border-top:1px solid #37474c}.lesson-shell .primary{background:#64d844;color:#0e3c25;box-shadow:0 5px 0 #389922;text-transform:uppercase;letter-spacing:.055em}.lesson-shell .primary:disabled{background:#33454a;color:#798c90;box-shadow:0 5px 0 #2b383d}.lesson-shell .feedback{background:#ddf9cf;color:#1e6631;border:2px solid #9ed979;box-shadow:0 5px 0 #80b868;font-size:18px;display:block}.lesson-shell .feedback strong{display:block}.lesson-shell .feedback small{color:#327643;font-size:13px}.lesson-shell .feedback.error{background:#ffe1df;border-color:#edaaaa;color:#8c3542;box-shadow:0 5px 0 #b56c72}.lesson-shell .feedback.error small{color:#965360}.lesson-shell .feedback.success:before{float:left;margin-right:10px;background:#36ba61}.streak-mini,.combo-mini{background:#263840;color:#f6d86d;border-color:#59696a;box-shadow:0 3px 0 #0e1f28}.combo-mini.hot{background:#584724;color:#ffe676;border-color:#d6ad43;box-shadow:0 3px 0 #9a7325}.lesson-shell:has(.feedback){padding-bottom:265px}
@media(max-width:365px){.lesson-shell .coach-dove{width:115px!important;height:115px!important}.lesson-shell .coach{height:130px}.lesson-stats{gap:2px}.streak-mini,.combo-mini{min-width:30px;font-size:11px}}
.lesson-shell .card.feedback{position:fixed;left:50%;bottom:calc(94px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(420px,calc(100% - 40px));z-index:31;margin:0;padding:14px 17px;min-height:72px;border-radius:16px}.lesson-shell .feedback.success:before{position:absolute;left:14px;top:19px}.lesson-shell .feedback.success{padding-left:52px}.lesson-shell .feedback strong{line-height:1.15}.lesson-shell .feedback small{margin-top:3px}
.answer-burst .lesson-shell .card.feedback.success{animation:feedbackRise .36s ease-out both}@keyframes feedbackRise{from{opacity:0;transform:translate(-50%,12px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
/* First-run goal choice. No fictional currency or streak is awarded. */
.goal-screen{padding:calc(26px + env(safe-area-inset-top)) 20px 120px;text-align:center;min-height:100dvh}.goal-progress{display:flex;gap:7px;margin:0 8px 22px}.goal-progress span{height:9px;flex:1;background:#d3e7f1;border-radius:12px}.goal-progress span:first-child,.goal-progress span.active{background:#38c77a}.goal-art{height:165px;position:relative;display:flex;align-items:center;justify-content:center}.goal-dove{width:158px;height:158px;animation:float 3s infinite;filter:drop-shadow(0 6px 2px #77a2ad55)}.goal-guide{position:absolute;width:58px;height:72px;right:12%;bottom:0;transform:rotate(9deg)}.goal-screen h1{font:900 29px/1.12 'Nunito',sans-serif;margin:7px 0;color:#165f93}.goal-screen p{font-size:15px;color:#5e8299;line-height:1.42;max-width:335px;margin:6px auto 20px}.goal-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.goal-choice{min-height:105px;border:2px solid #cce4ed;background:#fff;border-radius:19px;box-shadow:0 5px 0 #c7dfe7;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#386d90;font-weight:900;font-size:12px;gap:1px}.goal-choice.selected{background:#e3ffed;border-color:#44c879;color:#0d7445;box-shadow:0 5px 0 #19a658}.goal-count{font:900 26px 'Nunito',sans-serif}.goal-gem{color:#ecb826;font-size:20px}.goal-hint{font-size:12px;color:#668ba0;margin:22px 0;font-weight:800}.goal-next{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(460px,100%);padding:13px 20px calc(20px + env(safe-area-inset-bottom));background:#f5fbff;border-top:2px solid #d5eaf1}.streak-goal{background:#fff;border:2px solid #d7e8ef;border-radius:20px;box-shadow:0 4px 0 #d2e6ee;padding:13px 15px;margin:0 0 18px;display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-weight:900;color:#9c6811}.streak-goal button{border:0;background:none;color:#1986ad;font-size:12px;font-weight:900;margin-left:auto}.goal-meter{height:10px;background:#e8edf0;overflow:hidden;border-radius:20px;flex:1;min-width:60px}.goal-meter i{display:block;background:#f9c440;height:100%;border-radius:20px}
/* A second path vista makes upcoming content legible without suggesting it works now. */
.chapter-ribbon{border-radius:12px;background:#1687b1;color:#fff;font:900 11px 'Nunito',sans-serif;padding:9px 12px;margin:1px -4px 8px;display:flex;justify-content:space-between;gap:8px;box-shadow:0 4px 0 #0a658d}.chapter-ribbon span{color:#ffe278}.home-world{padding-bottom:166px}.future-chapter{position:relative;height:376px;margin:6px -20px 18px;overflow:hidden;background:linear-gradient(#f1faff,#dff1f5 70%,#fff8df);border-top:2px dashed #b4dbe8}.future-banner{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:12px;text-align:left;margin:21px 30px 0;background:#fff;border:2px solid #cce5eb;border-radius:17px;padding:10px;box-shadow:0 4px 0 #d3e3e6}.future-banner>span{background:#ffe6a0;color:#a97115;border-radius:13px;padding:5px 9px;font-size:24px}.future-banner strong,.future-banner small{display:block}.future-banner strong{font-size:14px;color:#235c80}.future-banner small{font-size:11px;color:#7193a4}.future-rule{position:absolute;left:25%;top:80px;width:52%;height:270px;border-right:14px dotted #c1e4e8;border-bottom:14px dotted #c1e4e8;border-radius:45%;transform:rotate(25deg)}.future-bubble{position:absolute;z-index:3;width:66px;height:66px;border:5px solid #fff;border-radius:50%;background:#a9c7d5;color:#fff;font-size:30px;font-weight:900;box-shadow:0 7px 0 #79a5b9}.future-a{left:18%;top:120px}.future-b{right:18%;top:205px}.future-c{left:22%;top:290px}.future-dove{position:absolute;z-index:3;right:9%;bottom:17px;width:74px;height:74px;opacity:.78;transform:rotate(10deg)}.future-caption{position:absolute;left:40%;bottom:14px;background:#fff8dd;color:#9b741f;padding:5px 8px;border-radius:12px;font-size:11px;font-weight:900}.all-paths{margin:0 auto 6px}.path-node.active{animation:nodeBounce 2s infinite}.journey-line{filter:drop-shadow(0 2px 0 #ffffffab)}
.ask-screen{min-height:100dvh;text-align:center;padding:calc(28px + env(safe-area-inset-top)) 24px 120px}.ask-art{position:relative;height:210px;display:grid;place-items:center}.ask-dove{width:190px;height:190px;filter:drop-shadow(0 7px 4px #8ea7b554);animation:float 2.8s infinite}.ask-art span{position:absolute;right:15%;top:21px;color:#e6b939;font-size:32px;animation:twinkle 1.5s infinite}.ask-screen h1{font:900 30px/1.1 Nunito,sans-serif;color:#176c99;margin:10px 0}.ask-screen p{font-size:15px;color:#5e829a;line-height:1.45}.ask-options{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(50px + env(safe-area-inset-bottom));width:min(460px,100%);padding:10px 24px;background:#f8fcff}.ask-options .secondary{margin-top:8px}.ask-disclaimer{font-size:11px!important;max-width:330px;margin:20px auto}.ranking-page h1{font:900 27px/1.2 Nunito,sans-serif;color:#176796}.ranking-podium{border-radius:26px;background:linear-gradient(140deg,#a3dcf0,#fce5a6);padding:30px 17px;min-height:175px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;color:#155d84}.ranking-podium span{font-size:58px;color:#e5a71f;filter:drop-shadow(0 5px 1px #d5a64555)}.ranking-podium strong{font:900 21px Nunito,sans-serif}.ranking-row{display:flex;align-items:center;gap:12px;margin:16px 0;border:2px solid #a9e3c0;background:#eefff3;box-shadow:0 5px 0 #b5e9ce;border-radius:18px;padding:9px 13px;font-weight:900;color:#176b51}.ranking-row b{font-size:25px;color:#c78a17}.ranking-row span{flex:1}.ranking-row .ranking-dove{width:51px;height:51px}.ranking-empty{font-size:13px;line-height:1.5;color:#607f91;background:#fff;border:2px solid #d8eaf1;border-radius:18px;padding:17px}.sound-toggle{border:2px solid #c7e7ee;box-shadow:0 3px 0 #cce5eb;background:#fff;color:#207e9f;font-weight:900;border-radius:14px;padding:10px 15px;margin:5px 0 20px}.nav button{min-width:0;flex:1;font-size:10px}.path-node.unlocked{background:linear-gradient(#74ddf0,#219cc6);box-shadow:0 7px 0 #137599,0 12px 18px #3189bd40;animation:nodeBounce 2.1s infinite}.path-node.unlocked span{font-size:34px}.home-world .node-tag{max-width:190px;overflow:hidden;text-overflow:ellipsis;margin-left:auto;margin-right:auto}
/* Keep long Japanese/German ordering tiles clear of the fixed action rail. */
.lesson-shell:has(.answer-box){padding-bottom:calc(230px + env(safe-area-inset-bottom))}.lesson-shell .tiles{margin-bottom:25px}.lesson-shell .tiles .tile{max-width:100%;white-space:normal;overflow-wrap:anywhere}.lesson-shell .answer-box{min-height:58px}
.lesson-shell .answer-box:not(.has-tiles){min-height:30px}.lesson-shell .answer-box.has-tiles{min-height:58px}.lesson-shell .tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px}.lesson-shell .tiles .tile{font-size:14px;line-height:1.2;min-height:49px;padding:8px}.lesson-shell .tiles .tile:nth-child(3):last-child{grid-column:span 2}
.lesson-shell .tiles .tile:disabled{pointer-events:none}.lesson-shell .answer-box .tile{z-index:1}
.second-node{position:absolute;top:207px;left:calc(57% - 37px);z-index:4;width:150px;text-align:center;transform:translateX(-38px)}.second-node .n2{position:relative;top:auto;left:auto;margin:0 auto}.second-node-label{display:block;max-width:150px;background:#fff;border:2px solid #a5e4ee;color:#176d94;border-radius:11px;box-shadow:0 3px 0 #bcdfe7;padding:4px 6px;font-size:11px;font-weight:900;line-height:1.1;margin:8px auto 0}.node-current{top:302px}.node-current .node-tag{white-space:nowrap}.node-current .node-caption{margin-top:13px}
/* The next playable lesson sits above the replayable first node. */
.second-node{top:204px}.second-node-label{position:absolute;left:50%;top:-36px;transform:translateX(-50%);width:155px;max-width:none;white-space:nowrap;margin:0}.node-current{top:320px}.journey{height:510px}.home-world{padding-bottom:166px}.node-current .path-node.active{width:86px;height:86px}.node-current .path-node.active .node-dove{width:70px;height:70px}.home-world .journey .node-caption{margin-top:7px}.node-current .node-tag{margin-bottom:5px}.journey-guide{top:75px}.journey-shepherd{top:235px}
