*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}
:root{--ink:#10254a;--blue:#246bfd;--sky:#65c7ff;--yellow:#ffc928;--coral:#ff6b6b;--pink:#ff73b9;--purple:#7a63ff;--green:#32d583;--cream:#fffaf0;--paper:#fff;--muted:#64748f;--line:#dbe6f3;--soft:#f2f7fc;--shadow:0 24px 60px rgba(32,73,125,.16)}
html,body{height:100%;overflow:hidden}body{font-family:'Nunito',sans-serif;color:var(--ink);background:#eef7ff}button,a{font:inherit;color:inherit}button{border:0;cursor:pointer}a{text-decoration:none}
.app{height:100vh;position:relative;isolation:isolate;background:radial-gradient(circle at 82% 0,rgba(101,199,255,.24),transparent 26rem),radial-gradient(circle at 6% 100%,rgba(255,201,40,.18),transparent 24rem)}
.topbar{height:76px;display:grid;grid-template-columns:285px minmax(280px,1fr) auto;align-items:center;gap:22px;padding:0 22px;background:#fff;border-bottom:2px solid var(--line);position:relative;z-index:50}
.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand img{width:48px;height:48px;object-fit:contain}.brand-line{width:2px;height:32px;background:var(--line)}.brand-copy strong{display:block;font-family:'Baloo 2';font-size:1rem;line-height:1}.brand-copy span{display:block;color:var(--muted);font-size:.65rem;font-weight:800;margin-top:4px}
.progress{width:min(540px,90%);justify-self:center}.progress-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;font-size:.68rem;font-weight:900}.progress-top span{color:var(--muted)}.track{height:9px;background:#e7eef7;border-radius:99px;overflow:hidden}.fill{width:25%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--yellow),#ff9d35);box-shadow:0 0 15px rgba(255,201,40,.42)}
.top-actions{display:flex;align-items:center;gap:8px}.score-chip,.icon-btn,.exit-btn{height:42px;border:2px solid var(--line);background:#fff;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;font-weight:900}.score-chip{padding:0 12px;gap:7px;font-size:.72rem}.score-chip.fire{color:#ef5e4d;background:#fff4f1}.score-chip.star{color:#b87d00;background:#fff9dc}.icon-btn{width:42px;font-size:1.05rem}.exit-btn{padding:0 13px;gap:7px;font-size:.7rem}.mobile-menu{display:none}
.workspace{height:calc(100vh - 76px);display:grid;grid-template-columns:285px minmax(0,1fr);overflow:hidden}
.sidebar{height:100%;overflow-y:auto;padding:24px 18px 30px;border-right:2px solid var(--line);background:rgba(255,255,255,.72);scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}
.world-head{padding:0 8px 18px;border-bottom:2px dashed var(--line)}.world-label{font-size:.64rem;color:var(--blue);font-weight:900;letter-spacing:.12em;text-transform:uppercase}.world-head h2{font-family:'Baloo 2';font-size:1.55rem;line-height:1.1;margin-top:4px}.world-head p{color:var(--muted);font-size:.7rem;font-weight:700;margin-top:5px}
.map{position:relative;display:grid;gap:9px;padding:22px 0}.map::before{content:"";position:absolute;left:25px;top:22px;bottom:22px;width:4px;border-radius:99px;background:repeating-linear-gradient(to bottom,#d4e2f2 0 9px,transparent 9px 16px)}
.lesson{position:relative;z-index:1;min-height:57px;display:grid;grid-template-columns:43px 1fr 20px;gap:10px;align-items:center;padding:7px 8px;border:2px solid transparent;border-radius:17px;color:var(--muted)}.lesson.active{background:#fff;border-color:#b7d1ff;box-shadow:0 10px 24px rgba(36,107,253,.12);color:var(--ink)}.lesson.done{color:var(--ink)}.lesson.locked{opacity:.48}.node{width:42px;height:42px;display:grid;place-items:center;border:2px solid var(--line);border-bottom-width:5px;border-radius:14px;background:#fff;font-family:'Baloo 2';font-weight:900}.done .node{background:var(--green);border-color:#20a968;color:#fff}.active .node{background:var(--yellow);border-color:#dca600;color:var(--ink);animation:pulse 1.8s infinite}.lesson strong{display:block;font-size:.76rem}.lesson small{display:block;font-size:.61rem;margin-top:2px}.state{font-size:.76rem;text-align:center}.game-node .node{background:var(--purple);border-color:#5a43dc;color:#fff}
.side-tip{padding:14px;border-radius:17px;background:#eaf8f0;border:2px solid #cceedd}.side-tip strong{font-family:'Baloo 2';font-size:.91rem}.side-tip p{margin-top:4px;color:var(--muted);font-size:.67rem;line-height:1.5}
.main{height:100%;overflow-y:auto;padding:16px clamp(14px,2.5vw,36px) 24px;scrollbar-gutter:stable}.main::-webkit-scrollbar{width:8px}.main::-webkit-scrollbar-thumb{background:#c2d2e4;border:2px solid transparent;background-clip:padding-box;border-radius:99px}
.lesson-head{width:min(1080px,100%);margin:0 auto 12px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.kicker{color:var(--blue);font-size:.65rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.lesson-head h1{font-family:'Baloo 2';font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1;margin-top:3px}.lesson-head h1 span{color:var(--coral)}.lesson-head p{margin-top:4px;color:var(--muted);font-size:.74rem;font-weight:700}.counter{text-align:right;flex:none}.counter strong{font-family:'Baloo 2';font-size:1.4rem;color:var(--blue)}.counter span{display:block;color:var(--muted);font-size:.56rem;font-weight:900;text-transform:uppercase}
.stage{width:min(1080px,100%);margin:0 auto;background:#fff;border:2px solid #d7e5f4;border-radius:24px;box-shadow:var(--shadow);overflow:hidden;position:relative}
.stage-bar{min-height:50px;padding:6px 14px 6px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:2px dashed var(--line);background:#fff}.goals{display:flex;gap:6px;flex-wrap:wrap}.goal{min-height:28px;padding:0 9px;display:inline-flex;align-items:center;gap:5px;border-radius:8px;background:var(--soft);color:var(--muted);font-size:.62rem;font-weight:900}.goal i{width:6px;height:6px;border-radius:50%;background:var(--green)}.stage-tools{display:flex;gap:6px}.focus-btn,.pause-btn{height:34px;padding:0 10px;border:2px solid var(--line);border-radius:9px;background:#fff;font-size:.64rem;font-weight:900}.pause-btn{display:none}
.stage-body{padding:20px clamp(16px,2.5vw,32px)}.activity-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:24px;align-items:start}
.play-area{min-width:0;display:flex;flex-direction:column;gap:12px}.mission{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}.mission-copy span{font-size:.7rem;color:var(--blue);font-weight:900;text-transform:uppercase;letter-spacing:.11em}.mission-copy h2{font-family:'Baloo 2';font-size:1.45rem;line-height:1.15;margin-top:2px}.live-stars{color:var(--yellow);letter-spacing:.09em;font-size:1.3rem}.word-box{min-height:160px;display:flex;justify-content:center;align-items:center;gap:10px;border:2px solid #cfe4f8;border-radius:20px;background:#eef8ff;position:relative;overflow:hidden}.word-box::before{content:"";position:absolute;width:160px;height:160px;border-radius:50%;right:-70px;top:-80px;background:rgba(101,199,255,.17)}.letter{position:relative;width:64px;height:72px;display:grid;place-items:center;border:2px solid var(--line);border-bottom-width:6px;border-radius:16px;background:#fff;color:#92a0b5;font-family:'Baloo 2';font-size:2.2rem;font-weight:900;transition:.2s}.letter.current{z-index:2;background:var(--yellow);border-color:#dca600;color:var(--ink);box-shadow:0 0 0 6px rgba(255,201,40,.25);animation:tap 1s ease-in-out infinite}.letter.case-upper.current::after{content:"⇧";position:absolute;top:1px;right:3px;color:#d33f66;font-family:'Nunito';font-size:.48em;font-weight:900;line-height:1}.letter.done{background:var(--green);border-color:#1ba965;color:#fff}.letter.wrong{animation:wrong .3s;color:var(--coral);border-color:var(--coral)}
.context{display:flex;align-items:center;gap:10px;margin:2px 0 6px;padding:9px 14px;border-radius:14px;background:#fff8dc;color:var(--muted);font-size:.76rem;font-weight:800}.context b{width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;border-radius:9px;background:var(--yellow);color:var(--ink);font-size:1.05rem}
.keyboard-wrap{position:relative;border:2px solid var(--line);border-radius:20px;background:#f9fbfe;padding:14px 16px 10px;overflow:hidden}.keyboard-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:.76rem;font-weight:900}.keyboard-top span{color:var(--muted)}.keyboard-top>span:first-child{min-width:0}.keyboard-top>span:first-child strong{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px;color:var(--ink)}.case-hint{display:inline-flex;align-items:center;min-height:20px;padding:2px 8px;border-radius:999px;font-family:'Nunito';font-size:.58rem;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.04em}.case-hint.lower{color:#155acb;background:#e4f1ff}.case-hint.upper{color:#b4234d;background:#ffe1ea;box-shadow:inset 0 0 0 1px #ffc2d3}.finger-chip{flex:0 0 auto;color:var(--blue)!important;background:#e8f1ff;border-radius:999px;padding:5px 12px;font-size:.72rem}.keyboard{display:flex;flex-direction:column;gap:6px}.key-row{display:flex;justify-content:center;gap:6px}.key-row.r2{padding:0 8px}.key-row.r3{padding:0 16px}.key{height:46px;flex:1;max-width:54px;display:grid;place-items:center;border:1.5px solid rgba(16,37,74,.14);border-bottom-width:4px;border-radius:10px;font-style:normal;font-size:.85rem;font-weight:900;color:var(--ink)}.key.pinky{background:#ffd6ea;border-color:#eeb5d2}.key.ring{background:#e2dcff;border-color:#c6bdf0}.key.middle{background:#d7efff;border-color:#b5d8ef}.key.index{background:#d8f8e7;border-color:#addfc6}.key.active{background:var(--yellow);border-color:#dca600;transform:translateY(2px);box-shadow:0 0 0 4px rgba(255,201,40,.24)}.hands{height:54px;display:flex;justify-content:center;gap:110px;margin-top:6px}.hand-svg{width:86px;height:50px;fill:rgba(122,99,255,.04);stroke:var(--purple);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.hand-svg.left{transform:scaleX(-1)}
.coach{display:flex;flex-direction:column;gap:12px}.coach-card{padding:14px 16px;border:2px solid var(--line);border-radius:18px;background:#fff}.coach-title{display:flex;align-items:center;gap:10px}.coach-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#e9e4ff;font-size:1.25rem}.coach-title strong{font-family:'Baloo 2';font-size:1.05rem;line-height:1}.coach-title span{display:block;color:var(--muted);font-size:.6rem;font-weight:900;text-transform:uppercase}.coach-card p{margin-top:8px;color:var(--muted);font-size:.76rem;line-height:1.5;font-weight:700}.coach-card p strong{color:var(--ink)}
.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.metric{padding:10px 8px;border:2px solid var(--line);border-radius:14px;background:var(--soft);text-align:center}.metric b{display:block;font-family:'Baloo 2';font-size:1.3rem;line-height:1}.metric span{display:block;margin-top:3px;color:var(--muted);font-size:.6rem;font-weight:900;text-transform:uppercase}.metric:first-child b{color:var(--green)}.metric:last-child b{color:var(--blue)}
.star-goal{padding:12px 14px;border-radius:16px;color:#fff;background:linear-gradient(135deg,var(--blue),var(--purple))}.star-goal strong{font-family:'Baloo 2';font-size:1rem}.star-goal p{font-size:.7rem;line-height:1.4;margin-top:3px;color:#e8edff}.mini-track{height:8px;margin-top:10px;border-radius:99px;background:rgba(255,255,255,.22);overflow:hidden}.mini-track span{display:block;height:100%;width:0;background:var(--yellow);border-radius:inherit;transition:.3s}
.stage-footer{min-height:64px;padding:12px 20px;border-top:2px dashed var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff}.encourage{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.74rem;font-weight:800}.encourage b{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#eaf8f0;color:#159b5b;font-size:1.05rem}.actions{display:flex;gap:8px}.secondary,.primary{height:44px;padding:0 18px;border-radius:13px;font-weight:900;font-size:.82rem}.secondary{background:#fff;border:2px solid var(--line);color:var(--muted)}.primary{background:var(--blue);color:#fff;box-shadow:0 5px 0 #174fca}.primary:hover{transform:translateY(-2px);box-shadow:0 7px 0 #174fca}

/* Boss & Portais */
.boss-field{min-height:260px;display:flex;flex-direction:column;justify-content:space-between;padding:14px 18px;background:radial-gradient(circle at 50% 30%,#1e3a6a,#0f1f3d 80%);color:#fff;border-radius:20px}.boss-field::before{display:none}.boss-top{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;font-size:.76rem;font-weight:900}.boss-top b{font-size:1.45rem}.boss-hp{height:13px;border:2px solid #fff;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden}.boss-hp i{display:block;height:100%;background:linear-gradient(90deg,var(--coral),var(--yellow));transition:.3s}
.boss-fuse{position:relative;margin:12px 0 8px;display:grid;grid-template-columns:38px minmax(0,1fr) 52px;align-items:center;gap:10px;padding:7px 12px;border:2px solid rgba(255,255,255,.32);border-radius:15px;background:rgba(6,23,55,.65);box-shadow:0 6px 18px rgba(4,16,39,.25)}.boss-bomb-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#fff3a6,#ffbd27);font-size:1.35rem;box-shadow:0 3px 0 #c98600}.boss-fuse-copy strong{display:block;margin-bottom:3px;color:#fff;font-family:'Baloo 2';font-size:.74rem;line-height:1}.boss-fuse-track{height:11px;padding:1.5px;border:1.5px solid rgba(255,255,255,.75);border-radius:99px;background:#14294d;overflow:hidden}.boss-fuse-fill{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff5f6d 0 24%,#ffc928 48%,#32d583 100%);transition:width .1s linear}.boss-fuse-time{color:var(--yellow);font-family:'Baloo 2';font-size:.9rem;text-align:right}
.boss-word{display:flex;justify-content:center;gap:8px;margin:10px 0 14px}.boss-field .letter{width:56px;height:66px;font-size:1.85rem;border-radius:14px;border-bottom-width:6px}.boss-field p{text-align:center;font-size:.74rem;font-weight:900;color:#dceaff}

/* Mundos 2 e 3: Teclado estendido e confortável */
.module2 .keyboard,.module3 .keyboard{max-width:760px}.module2 .key-row,.module3 .key-row{gap:4px}
.module2 .key,.module3 .key{min-width:34px;height:42px;padding:0 6px;font-size:.74rem;border-radius:9px}
.module2 .key.modifier,.module3 .key.modifier{background:#fff0ba;border-color:#e0bd47;color:#705600;font-size:.66rem}
.module2 .key.active,.module2 .key.modifier.active{background:var(--yellow);border-color:#dca600;color:var(--ink);transform:translateY(2px);box-shadow:0 0 0 4px rgba(255,201,40,.24)}
.module3 .key.modifier{background:#e0f2fe;border-color:#7dd3fc;color:#0369a1}
.module3 .key.active{background:var(--yellow);border-color:#dca600;color:var(--ink);transform:translateY(2px);box-shadow:0 0 0 4px rgba(255,201,40,.24)}
.module3 .keyboard{width:100%;max-width:none}
.module3 .key-row{width:100%}
.module3 .key{min-width:0;max-width:none;padding:0 2px;font-size:.66rem}
.module3 .key.wide-key{min-width:0;max-width:none;flex:1.8;font-size:.56rem}
.module3 .key.shift-key{min-width:0;max-width:none;flex:1.8;font-size:.57rem}
.module3 .key.altgr-key{min-width:0;max-width:none;flex:1.3}
.module3 .key.space-key{max-width:none;flex:5}
.module2 .key.wide-key,.module3 .key.wide-key{min-width:72px}
.module2 .key.shift-key,.module3 .key.shift-key{min-width:68px}
.module2 .key.altgr-key,.module3 .key.altgr-key{min-width:72px}
.module2 .key-row.r4,.module3 .key-row.r4{padding:0 8%}
.module2 .key.space-key,.module3 .key.space-key{max-width:320px;height:42px;font-size:.72rem}
.stage:not(.started) .activity-grid{filter:saturate(.7);opacity:.78}.stage:not(.started) .word-box::after{content:"Clique em começar";position:absolute;inset:0;display:grid;place-items:center;background:rgba(238,248,255,.9);font-family:'Baloo 2';font-size:1.1rem;color:var(--blue);z-index:3}.stage.started .start-btn{display:none}.stage.started .pause-btn{display:block}
.complete{position:fixed;z-index:1000;inset:0;display:none;place-items:center;padding:16px;background:rgba(16,37,74,.42);backdrop-filter:blur(8px)}.complete.show{display:grid}.complete-card{width:min(430px,100%);padding:24px;text-align:center;border:3px solid #fff;border-radius:24px;background:#fff;box-shadow:0 28px 80px rgba(16,37,74,.28);animation:pop .4s both}.trophy{font-size:3.5rem}.complete h2{font-family:'Baloo 2';font-size:1.8rem}.complete p{margin:6px 0 14px;color:var(--muted);line-height:1.45}.complete-stars{font-size:1.6rem;color:var(--yellow);letter-spacing:.1em}.complete-note{display:block;margin-top:10px;color:var(--muted);font-size:.62rem;font-weight:800}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(255,201,40,0)}}@keyframes tap{50%{transform:translateY(3px)}}@keyframes wrong{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes pop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
@media(max-width:1050px){.topbar{grid-template-columns:240px 1fr auto}.brand-copy{display:none}.workspace{grid-template-columns:240px minmax(0,1fr)}.activity-grid{grid-template-columns:1fr}.coach{display:grid;grid-template-columns:1.2fr .8fr .9fr}.metrics{align-self:stretch}}
@media(max-width:820px){.topbar{grid-template-columns:auto 1fr auto;height:68px;padding:0 12px}.brand-line,.brand-copy,.score-chip.fire{display:none}.brand img{width:43px;height:43px}.progress{width:100%}.exit-btn span{display:none}.exit-btn{width:42px;padding:0}.mobile-menu{display:inline-flex}.workspace{height:calc(100vh - 68px);grid-template-columns:1fr}.sidebar{position:fixed;z-index:100;top:68px;bottom:0;left:0;width:285px;transform:translateX(-105%);transition:.25s;background:#fff;box-shadow:20px 0 45px rgba(16,37,74,.18)}.sidebar.open{transform:none}.main{padding:16px 10px 24px}.lesson-head{display:block}.counter{display:none}.stage{border-radius:18px}.stage-bar{align-items:flex-start}.goal:nth-child(3){display:none}}
@media(max-width:620px){.score-chip.star{display:none}.lesson-head h1{font-size:2.1rem}.stage-body{padding:12px 8px}.activity-grid{gap:10px}.word-box{min-height:90px;gap:5px}.letter{width:44px;height:52px;font-size:1.4rem}.keyboard-wrap{padding:8px 4px 4px}.keyboard-top{flex-direction:column;align-items:flex-start;gap:7px}.finger-chip{align-self:flex-start}.key-row{gap:3px}.key-row.r2{padding:0 4px}.key-row.r3{padding:0 6px}.key{height:28px;font-size:.5rem;border-radius:5px}.hands{gap:36px;height:32px}.coach{display:grid;grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.stage-footer{display:block;text-align:center}.encourage{justify-content:center;margin-bottom:8px}.actions{display:grid;grid-template-columns:1fr 1fr}.secondary,.primary{padding:0 8px}.focus-btn{width:36px;padding:0}.focus-btn span{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Atividade 01: postura, linha central e orientação dos dedos */
.intro-view{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(430px,1.22fr);gap:18px;align-items:stretch}
.posture-panel{padding:18px;border:2px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f6f9fd)}
.intro-label{color:var(--blue);font-size:.6rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.posture-panel h2{font-family:'Baloo 2';font-size:1.45rem;line-height:1.05;margin-top:3px}.posture-panel>p{color:var(--muted);font-size:.72rem;line-height:1.45;margin:5px 0 12px;font-weight:700}.posture-list{display:grid;gap:6px}.posture-item{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;padding:8px;border:2px solid var(--line);border-radius:12px;background:#fff}.posture-item>b{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#e9f2ff;color:var(--blue);font-family:'Baloo 2';font-size:.9rem}.posture-item strong{display:block;font-size:.7rem}.posture-item small{display:block;color:var(--muted);font-size:.58rem;line-height:1.3;margin-top:1px}
.intro-keyboard{display:flex;flex-direction:column;justify-content:center;padding:14px 12px 8px}.key.home{background:var(--yellow);border-color:#dca600;box-shadow:0 0 0 3px rgba(255,201,40,.15)}.key.marker{position:relative}.key.marker::after{content:"";position:absolute;bottom:4px;width:8px;height:2px;border-radius:99px;background:currentColor;opacity:.6}
.practice-view{display:none}.stage.started .intro-view{display:none}.stage.started .practice-view{display:grid}.stage:not(.started) .activity-grid{filter:none;opacity:1}.stage:not(.started) .word-box::after{display:none}.stage:not(.started) #resetBtn{display:none}
.sequence-box{gap:5px}.sequence-gap{width:10px}.sequence-box .letter{width:48px;height:56px}
.hand-wrap{position:relative;width:70px;height:40px}.finger-points{position:absolute;inset:0;pointer-events:none}.finger-point{position:absolute;width:7px;height:7px;border-radius:50%;background:#a7b4c6;opacity:.3;transform:scale(.8);box-shadow:0 0 0 2px rgba(167,180,198,.12);transition:.18s}.hand-wrap:first-child .finger-point:nth-child(1){left:25px;top:5px}.hand-wrap:first-child .finger-point:nth-child(2){left:34px;top:1px}.hand-wrap:first-child .finger-point:nth-child(3){left:43px;top:0}.hand-wrap:first-child .finger-point:nth-child(4){left:52px;top:3px}.hand-wrap:first-child .finger-point:nth-child(5){left:56px;top:24px}.hand-wrap:nth-child(2) .finger-point:nth-child(1){left:16px;top:3px}.hand-wrap:nth-child(2) .finger-point:nth-child(2){left:25px;top:0}.hand-wrap:nth-child(2) .finger-point:nth-child(3){left:34px;top:1px}.hand-wrap:nth-child(2) .finger-point:nth-child(4){left:43px;top:5px}.hand-wrap:nth-child(2) .finger-point:nth-child(5){left:7px;top:24px}
.finger-point.active{background:var(--yellow);opacity:1;transform:scale(1.15);box-shadow:0 0 0 4px rgba(255,201,40,.2),0 0 12px rgba(255,201,40,.95);animation:fingerGlow 1s ease-in-out infinite}.finger-point.pressed{background:var(--green)!important;opacity:1;animation:fingerPress .32s ease;box-shadow:0 0 0 4px rgba(50,213,131,.2),0 0 14px rgba(50,213,131,.9)}.finger-point.ready{opacity:1;transform:scale(1);box-shadow:0 0 0 2px rgba(122,99,255,.12)}.finger-point.ready:nth-child(1){background:var(--pink)}.finger-point.ready:nth-child(2){background:var(--purple)}.finger-point.ready:nth-child(3){background:var(--sky)}.finger-point.ready:nth-child(4){background:var(--green)}.finger-point.thumb{opacity:.18}.ready-hands{margin-top:6px}
#lessonStage:fullscreen{width:100%;height:100%;max-width:none;border:0;border-radius:0;overflow:hidden;background:#fff;display:flex;flex-direction:column}
#lessonStage:fullscreen .stage-bar{position:sticky;top:0;z-index:10;background:#fff;flex:none}
#lessonStage:fullscreen .stage-body{width:min(1200px,100%);margin-inline:auto;flex:1;overflow-y:auto;padding:10px 20px}
#lessonStage:fullscreen .stage-footer{width:min(1200px,100%);margin-inline:auto;flex:none}
#lessonStage:fullscreen .activity-grid{align-items:center}
@keyframes fingerGlow{50%{transform:scale(1.4)}}@keyframes fingerPress{50%{transform:scale(2.1)}}
@media(max-width:1050px){.intro-view{grid-template-columns:1fr}.intro-keyboard{min-height:260px}}
@media(max-width:620px){.posture-panel{padding:12px}.posture-panel h2{font-size:1.25rem}.posture-item{padding:6px}.intro-keyboard{min-height:220px;padding:10px 4px 4px}.sequence-box{gap:3px}.sequence-gap{width:3px}.sequence-box .letter{width:30px;height:42px;font-size:1.1rem;border-radius:8px}.hand-wrap{width:70px}}

/* Repetição para memória muscular: três linhas iguais */
.mission-status{text-align:right}.mission-status>span{display:block;color:var(--muted);font-size:.56rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.sequence-box{min-height:160px;flex-direction:column;gap:5px;padding:10px}.sequence-row{display:grid;grid-template-columns:22px repeat(8,40px);gap:5px;align-items:center}.row-number{width:20px;height:20px;display:grid;place-items:center;border-radius:6px;background:#dceaff;color:var(--blue);font-size:.58rem;font-weight:900}.sequence-box .letter{width:40px;height:43px;font-size:1.2rem;border-bottom-width:4px;border-radius:9px}.sequence-row:not(:first-child) .letter{background:#f9fbfe}.sequence-row .letter.done{background:var(--green);color:#fff}.sequence-row .letter.current{background:var(--yellow);color:var(--ink)}
@media(max-width:620px){.sequence-box{min-height:140px;padding:6px 3px}.sequence-row{grid-template-columns:18px repeat(8,28px);gap:2px}.row-number{width:17px;height:17px;font-size:.5rem}.sequence-box .letter{width:28px;height:34px;font-size:.9rem;border-radius:6px}.mission-status>span{font-size:.5rem}}

/* Barra de espaço integrada à posição inicial */
.sequence-row{grid-template-columns:22px repeat(4,38px) 52px repeat(4,38px);gap:4px}.sequence-row .letter{width:38px}.sequence-row .space-letter{width:52px;font-family:'Nunito';font-size:.44rem;letter-spacing:.04em;background:#fff3c5;border-color:#e9c34b}.key-row.r4{padding:0 22%;margin-top:1px}.key.space-key{max-width:260px;height:28px;background:#fff3c5;border-color:#e0bd47;font-size:.52rem;letter-spacing:.08em}.key.space-key.active{background:var(--yellow);border-color:#dca600;box-shadow:0 0 0 3px rgba(255,201,40,.2)}
@media(max-width:620px){.sequence-row{grid-template-columns:16px repeat(4,24px) 34px repeat(4,24px);gap:2px}.sequence-row .letter{width:24px}.sequence-row .space-letter{width:34px;font-size:.34rem}.key-row.r4{padding:0 16%}.key.space-key{max-width:170px;height:24px}}

.sequence-row .space-letter.done{background:var(--green);border-color:#1ba965;color:#fff}
/* Resultado de cinco estrelas */
.complete .star-result{margin:4px 0 2px;color:var(--blue);font-family:'Baloo 2';font-size:1rem;font-weight:900}.complete .complete-copy{margin:2px 0 14px;font-size:.82rem}
.complete-card.needs-retry{border-color:#fff4bd;box-shadow:0 28px 80px rgba(16,37,74,.28),0 0 0 6px rgba(255,201,40,.2)}
.complete-card.needs-retry .star-result{color:#d98700}
/* Medidor infantil de ritmo: ativado apenas nas atividades configuradas */
.kids-speed-gauge[hidden]{display:none}.kids-speed-gauge{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 10px;border:2px solid var(--line);border-radius:14px;background:linear-gradient(135deg,#f2f9ff,#fff9dc);transition:.25s}.kids-speed-dial{width:76px;height:44px;flex:none}.kids-speed-dial svg{display:block;width:100%;height:100%;overflow:visible}.kids-speed-track{fill:none;stroke:url(#kidsSpeedArcGradient);stroke-width:7;stroke-linecap:round}.kids-speed-needle,.kids-speed-goal-mark{transform-origin:50px 50px;transition:transform .25s cubic-bezier(.22,.75,.25,1)}.kids-speed-needle{stroke:var(--blue);stroke-width:3;stroke-linecap:round}.kids-speed-goal-mark{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round;opacity:.7}.kids-speed-hub{fill:var(--yellow);stroke:#fff;stroke-width:2.5}.kids-speed-copy>span{display:block;color:var(--muted);font-size:.52rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.kids-speed-copy strong{display:block;margin:1px 0;color:var(--blue);font-family:'Baloo 2';font-size:.88rem;line-height:1}.kids-speed-copy small{color:var(--muted);font-size:.58rem;font-weight:800}.kids-speed-copy small b{color:var(--ink)}.kids-speed-gauge.under-target .kids-speed-needle{stroke:var(--coral)}.kids-speed-gauge.on-target{border-color:rgba(50,213,131,.55);box-shadow:0 0 0 3px rgba(50,213,131,.1)}.kids-speed-gauge.on-target .kids-speed-needle{stroke:var(--green)}.kids-speed-gauge.on-target .kids-speed-copy strong{color:#159b5b}
/* Recompensa separada para a velocidade */
.kids-speed-prize{width:50px;min-height:48px;flex:none;display:grid;place-items:center;padding:4px;border:2px dashed #cbd7e6;border-radius:12px;background:#edf2f7;color:#8d9caf;filter:grayscale(1);opacity:.58;text-align:center;transition:.25s}.kids-speed-prize b{font-size:1.2rem;line-height:1}.kids-speed-prize small{font-size:.44rem;font-weight:1000;text-transform:uppercase}.kids-speed-prize.earned{border-style:solid;border-color:#e9b91f;background:linear-gradient(145deg,#fff8c9,#ffd64d);color:#8d5a00;filter:none;opacity:1;box-shadow:0 0 0 3px rgba(255,201,40,.16),0 6px 16px rgba(255,177,22,.24);animation:speedPrizePop .45s both}.speed-award[hidden]{display:none}.speed-award{display:flex;align-items:center;gap:9px;width:min(280px,100%);margin:6px auto 10px;padding:8px 10px;border:2px dashed #ccd7e5;border-radius:14px;background:#f3f6f9;color:var(--muted);text-align:left;opacity:.68}.speed-award-icon{width:36px;height:36px;display:grid;place-items:center;flex:none;border-radius:11px;background:#e5eaf0;font-size:1.2rem;filter:grayscale(1)}.speed-award strong,.speed-award small{display:block}.speed-award strong{font-family:'Baloo 2';font-size:.88rem;color:var(--ink)}.speed-award small{font-size:.58rem;font-weight:800;line-height:1.3}.speed-award.earned{border-style:solid;border-color:#e8ba24;background:linear-gradient(135deg,#fff9da,#fff1a5);opacity:1;box-shadow:0 6px 18px rgba(255,190,31,.18)}.speed-award.earned .speed-award-icon{background:var(--yellow);filter:none;box-shadow:0 0 0 3px rgba(255,201,40,.18)}@keyframes speedPrizePop{50%{transform:scale(1.12) rotate(-3deg)}}
/* Módulo 1 funcional: mapa, linhas dinâmicas e jogos */
.map .lesson[role="button"]{cursor:pointer;transition:transform .18s,background .18s,border-color .18s}.map .lesson[role="button"]:hover{transform:translateX(3px);background:#fff;border-color:#c7dcff}.map .lesson[role="button"]:focus-visible{outline:3px solid rgba(36,107,253,.25);outline-offset:2px}.dynamic-sequence{min-height:180px;display:flex;flex-direction:column;gap:5px;padding:10px}.dynamic-sequence .sequence-row{width:100%;display:grid;grid-template-columns:22px minmax(0,1fr);gap:5px}.line-letters{display:flex;justify-content:center;gap:4px;min-width:0}.dynamic-sequence .letter{width:38px;height:44px;flex:0 1 38px;font-size:1.15rem;border-radius:9px}.dynamic-sequence .space-letter{width:30px;flex-basis:30px;font-size:.9rem;background:#fff3c5;border-color:#e9c34b}.space-gap-mark{display:block;width:15px;height:3px;border-radius:99px;background:currentColor;opacity:.7}.compact-sequence .line-letters{gap:2px}.compact-sequence .letter{width:26px;height:36px;flex-basis:26px;font-size:.84rem;border-radius:7px;border-bottom-width:3px}.compact-sequence .space-letter{width:16px;flex-basis:16px}.balloon-field{min-height:260px;background:linear-gradient(#54bced,#bcecff 72%,#8eda8a 72%);overflow:hidden}.balloon-field::before{display:none}.cloud{position:absolute;color:rgba(255,255,255,.75);font-size:3.2rem}.cloud-a{top:4px;left:8%}.cloud-b{top:28px;right:8%;font-size:2.4rem}.balloon{position:absolute;width:62px;height:76px;display:grid;place-items:center;border-radius:52% 48% 50% 50%;background:linear-gradient(145deg,#9caef8,#426fe2);color:#fff;box-shadow:inset -6px -8px 0 rgba(16,37,74,.12),0 10px 16px rgba(16,37,74,.16);animation:balloonFloat 2.6s ease-in-out infinite}.balloon::after{content:"";position:absolute;bottom:-8px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:10px solid #426fe2}.balloon i{position:absolute;top:84px;width:1px;height:45px;background:#64748f}.balloon span{font-family:'Baloo 2';font-size:1.75rem;font-weight:900}.balloon.b0{left:8%;top:75px}.balloon.b1{left:26%;top:28px;background:linear-gradient(145deg,#ff97c9,#f74d98);animation-delay:-.5s}.balloon.b2{left:46%;top:85px;background:linear-gradient(145deg,#ffd86b,#ff9d35);animation-delay:-1s}.balloon.b3{right:25%;top:35px;background:linear-gradient(145deg,#a890ff,#7253e8);animation-delay:-1.5s}.balloon.b4{right:7%;top:82px;background:linear-gradient(145deg,#6de2a9,#21ad69);animation-delay:-2s}.target-balloon{outline:6px solid rgba(255,255,255,.75);filter:drop-shadow(0 0 12px #fff);transform:scale(1.06);z-index:2}.target-balloon::before{content:"▼";position:absolute;top:-30px;color:var(--yellow);font-size:1.2rem}.balloon.rescued{animation:balloonRescue .35s forwards}.balloon.wrong{animation:wrong .3s}.balloon-kid{position:absolute;bottom:5px;left:45%;font-size:3rem}.boss-field{min-height:220px;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 30%,#3a5e9b,#172d56 70%);color:#fff}.boss-field::before{display:none}.boss-top{position:absolute;top:12px;left:16px;right:16px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:.62rem;font-weight:900}.boss-top b{font-size:1.3rem}.boss-hp{height:11px;border:2px solid #fff;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden}.boss-hp i{display:block;height:100%;background:linear-gradient(90deg,var(--coral),var(--yellow));transition:.3s}.boss-word{display:flex;gap:6px;margin-top:24px}.boss-field .letter{width:46px;height:52px;font-size:1.3rem}.boss-field p{position:absolute;bottom:10px;font-size:.64rem;font-weight:900;color:#dceaff}.boss-field .letter.done{background:var(--green)}
/* Professor infantil digital */
.kids-professor{display:grid;grid-template-columns:52px 1fr;gap:8px;align-items:end;padding:8px;border:2px solid #d9e5f5;border-radius:15px;background:linear-gradient(145deg,#fff,#edf7ff);overflow:hidden;transition:.25s}.professor-character{position:relative;width:48px;height:52px;display:grid;place-items:center;border-radius:18px 18px 13px 13px;background:linear-gradient(160deg,var(--sky),var(--blue));box-shadow:inset 0 -6px 0 rgba(16,37,74,.12),0 6px 14px rgba(36,107,253,.18);transform-origin:bottom}.professor-face{font-size:1.75rem}.professor-badge{position:absolute;right:-2px;bottom:3px;display:grid;place-items:center;width:20px;height:15px;border:1.5px solid #fff;border-radius:5px;background:var(--yellow);font-family:'Baloo 2';font-size:.46rem;font-weight:900}.professor-speech{position:relative;padding:7px 8px;border:2px solid #cfe0f3;border-radius:12px;background:#fff}.professor-speech::before{content:"";position:absolute;left:-7px;bottom:11px;width:10px;height:10px;border-left:2px solid #cfe0f3;border-bottom:2px solid #cfe0f3;background:#fff;transform:rotate(45deg)}.professor-speech strong{position:relative;display:block;color:var(--blue);font-family:'Baloo 2';font-size:.74rem}.professor-speech p{position:relative;margin-top:2px;color:var(--muted);font-size:.58rem;font-weight:800;line-height:1.32}.kids-professor.helping{border-color:#ffd56a;background:#fff8d9}.kids-professor.helping .professor-character{background:linear-gradient(160deg,var(--yellow),#ff9d35)}.kids-professor.celebrating .professor-character{background:linear-gradient(160deg,var(--green),#16a868)}.professor-character.talking{animation:professorTalk .42s ease}.next-kids{margin-left:8px;background:var(--green);box-shadow:0 5px 0 #168d55}.next-kids:hover{box-shadow:0 7px 0 #168d55}@keyframes professorTalk{35%{transform:translateY(-5px) rotate(-3deg)}70%{transform:rotate(3deg)}}@keyframes balloonFloat{50%{transform:translateY(-9px)}}@keyframes balloonRescue{to{transform:translateY(-100px) scale(.3);opacity:0}}
@media(max-width:1050px){.kids-professor{grid-column:1/-1}.balloon-field{min-height:260px}}
@media(max-width:620px){.dynamic-sequence{padding:6px 2px}.dynamic-sequence .sequence-row{grid-template-columns:16px 1fr;gap:2px}.line-letters{gap:2px}.dynamic-sequence .letter{width:25px;height:34px;flex-basis:25px;font-size:.78rem}.compact-sequence .letter{width:15px;height:28px;flex-basis:15px;font-size:.52rem}.balloon{width:46px;height:58px}.balloon span{font-size:1.2rem}.balloon i{top:62px}.balloon-field{min-height:230px}.boss-word{gap:2px}.boss-field .letter{width:30px;height:42px;font-size:.9rem}.complete-card .next-kids{display:block;width:100%;margin:10px 0 0}}
/* Painel de resultado: precisão, velocímetro e ações */
.complete-card{width:min(600px,100%);padding:20px 22px}.complete-card .trophy{font-size:2.8rem;line-height:1}.complete-card .complete-stars{margin-top:4px}.complete-performance{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:8px;margin:10px 0 8px}.result-accuracy,.result-speed{min-height:78px;border:2px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#fff,#f4f9ff)}.result-accuracy{display:flex;flex-direction:column;align-items:center;justify-content:center}.result-accuracy>span,.result-speed>div>span{color:var(--muted);font-size:.54rem;font-weight:1000;text-transform:uppercase;letter-spacing:.08em}.result-accuracy strong,.result-speed strong{display:block;color:var(--blue);font-family:'Baloo 2';font-size:1.35rem;line-height:1.05}.result-accuracy small,.result-speed small{color:var(--muted);font-size:.56rem;font-weight:900}.result-speed{display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 10px;text-align:left;background:linear-gradient(135deg,#eef8ff,#fff8d4)}.result-speed-dial{width:78px;height:46px;flex:none}.result-speed-dial svg{display:block;width:100%;height:100%;overflow:visible}.result-speed-dial path{fill:none;stroke:url(#resultSpeedArcGradient);stroke-width:7;stroke-linecap:round}.result-speed-dial line{stroke:var(--blue);stroke-width:3;stroke-linecap:round;transform-origin:50px 50px;transition:transform .55s cubic-bezier(.22,.75,.25,1)}.result-speed-dial circle{fill:var(--yellow);stroke:#fff;stroke-width:2.5}.complete-card .speed-award{width:100%;max-width:none;margin:6px 0 9px;justify-content:center;text-align:left}.complete-card .complete-copy{margin:4px 0 10px}.complete-actions{display:flex;align-items:stretch;justify-content:center;gap:10px}.complete-actions .primary{height:42px;min-width:180px}.complete-actions #tryAgainBtn{border:2px solid var(--line);background:#fff;color:var(--ink);box-shadow:0 4px 0 #cbd9e9}.complete-actions #tryAgainBtn:hover{box-shadow:0 6px 0 #cbd9e9}.complete-actions .next-kids{margin-left:0;background:var(--green);box-shadow:0 5px 0 #168d55;transform:scale(1.02)}.complete-actions .next-kids:hover{box-shadow:0 7px 0 #168d55;transform:translateY(-2px) scale(1.02)}
@media(max-width:620px){.complete-card{padding:16px 12px}.complete-performance{grid-template-columns:1fr}.complete-actions{display:grid;grid-template-columns:1fr}.complete-actions .primary{width:100%;min-width:0}.complete-actions .next-kids{margin:0;transform:none}.result-accuracy,.result-speed{min-height:68px}}
/* Baú permanente de conquistas */
.reward-vault{position:relative;padding:8px 10px;border:2px solid #f0cb52;border-radius:15px;background:linear-gradient(145deg,#fffdf0,#fff1a8);box-shadow:inset 0 0 0 2px rgba(255,255,255,.55),0 6px 16px rgba(218,164,0,.12);overflow:hidden}.reward-vault::after{content:"";position:absolute;right:-20px;top:-24px;width:64px;height:64px;border-radius:50%;background:rgba(255,201,40,.2)}.reward-vault-head{position:relative;z-index:1;display:flex;align-items:center;gap:6px}.reward-vault-head>span{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:var(--yellow);font-size:1.05rem;box-shadow:0 3px 0 #dda900}.reward-vault-head strong{display:block;color:var(--ink);font-family:'Baloo 2';font-size:.78rem;line-height:1}.reward-vault-head small{display:block;margin-top:1px;color:#8c6b00;font-size:.46rem;font-weight:1000;text-transform:uppercase;letter-spacing:.06em}.reward-counts{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}.reward-counts>span{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:3px;min-height:30px;padding:4px 6px;border:1.5px solid rgba(16,37,74,.08);border-radius:10px;background:rgba(255,255,255,.78);font-size:.8rem}.reward-counts b{color:var(--blue);font-family:'Baloo 2';font-size:1rem;line-height:1}.reward-counts small{color:var(--muted);font-size:.46rem;font-weight:1000;text-transform:uppercase}.reward-vault p{position:relative;z-index:1;margin:4px 2px 0;color:#806300;font-size:.52rem;font-weight:900;text-align:center}.reward-vault.flash{animation:rewardVaultFlash .55s ease}@keyframes rewardVaultFlash{45%{transform:scale(1.035);box-shadow:0 0 0 6px rgba(255,201,40,.18),0 10px 22px rgba(218,164,0,.2)}}
@media(max-width:1050px){.reward-vault{grid-column:1/-1}.reward-counts{grid-template-columns:repeat(2,minmax(0,140px));justify-content:center}}
/* Estilos especiais de jogos dos Mundos 2 e 3 */
.special-letter{width:auto!important;min-width:68px!important;padding:0 8px;font-family:'Nunito'!important;font-size:.65rem!important;letter-spacing:.03em}.letter.erased{background:#d9e5f2!important;color:#789!important;text-decoration:line-through;opacity:.72}
.rhythm-field{min-height:280px;display:block;overflow:hidden;background:linear-gradient(180deg,#1a2553,#49379e 62%,#17244d);color:#fff;border-radius:20px}.rhythm-field::before{display:none}.rhythm-sky{position:absolute;top:14px;left:0;right:0;color:#aeeaff;font-size:1.5rem;text-align:center;letter-spacing:1.5rem;opacity:.75}.rhythm-lane{position:absolute;inset:50px 18px 54px;border-radius:16px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 19.5%,rgba(255,255,255,.13) 20%);overflow:hidden}.rhythm-zone{position:absolute;bottom:8px;left:6%;right:6%;height:52px;border:3px solid #62e6a5;border-radius:14px;background:rgba(50,213,131,.15);box-shadow:0 0 20px rgba(50,213,131,.35)}.rhythm-note{position:absolute;z-index:2;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#ff8dc0,#8a5cff);border:3px solid #fff;color:#fff;font-family:'Baloo 2';font-size:1.35rem;font-weight:900;box-shadow:0 6px 14px rgba(0,0,0,.3);transition:.18s}.rhythm-note.n0{left:10%;bottom:10px;animation:rhythmPulse .6s infinite alternate}.rhythm-note.n1{left:29%;bottom:54px}.rhythm-note.n2{left:48%;bottom:92px}.rhythm-note.n3{left:67%;bottom:126px}.rhythm-note.n4{left:83%;bottom:150px}.rhythm-target{outline:5px solid rgba(255,201,40,.4);background:linear-gradient(145deg,#ffd65a,#ff8a37);color:#17244d}.rhythm-combo{position:absolute;right:18px;bottom:12px;color:#d8e4ff;font-size:.65rem;font-weight:900;text-align:right}.rhythm-combo strong{display:block;color:var(--yellow);font-family:'Baloo 2';font-size:1.5rem;line-height:.9}.rhythm-combo small{font-size:.56rem}.module2 .portal-field.boss-exploded::after{content:"⏳  PORTAL FECHADO!";background:radial-gradient(circle,#ffc928,#8a5cff 50%,#172d56);font-size:clamp(1.6rem,4.5vw,3rem)}
@keyframes rhythmPulse{to{transform:scale(1.1);box-shadow:0 0 20px rgba(255,201,40,.7)}}

.race-field{min-height:260px;display:flex;flex-direction:column;justify-content:space-between;padding:16px;background:radial-gradient(circle at 50% 30%,#1e293b 0%,#0f172a 100%);color:#fff;overflow:hidden;position:relative;border-radius:20px}
.race-field::before{display:none}
.race-track{position:relative;height:64px;background:#334155;border-radius:14px;border:2.5px solid #475569;overflow:hidden;margin-bottom:10px}
.race-road-lines{position:absolute;top:50%;left:0;right:0;height:4px;transform:translateY(-50%);background:repeating-linear-gradient(90deg,#facc15 0 24px,transparent 24px 48px);animation:roadMove .8s linear infinite}
@keyframes roadMove{from{background-position:0}to{background-position:-48px}}
.race-car{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:2.2rem;transition:left .3s cubic-bezier(0.34,1.56,0.64,1);filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}
.race-nitro{position:absolute;left:-18px;top:2px;font-size:1.3rem;animation:nitroPulse .2s infinite alternate}
@keyframes nitroPulse{to{transform:scale(1.25) translateX(-4px)}}
.race-finish-flag{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:1.8rem}
.race-word-dock{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:6px}
.race-word-label{font-family:'Baloo 2';font-size:.76rem;font-weight:800;color:#38bdf8;letter-spacing:.1em}
.race-active-word{display:flex;gap:8px}
.race-active-word .letter{width:54px;height:62px;border-radius:14px;background:#1e293b;border:2.5px solid #38bdf8;color:#fff;display:grid;place-items:center;font-family:'Baloo 2';font-size:1.85rem;font-weight:900;box-shadow:0 4px 10px rgba(0,0,0,.3)}
.race-active-word .letter.done{background:#10b981;border-color:#059669;color:#fff}
.race-active-word .letter.current{background:#facc15;border-color:#ca8a04;color:#713f12;transform:scale(1.08);box-shadow:0 0 15px rgba(250,204,21,.6)}
.race-combo-badge{position:absolute;right:18px;bottom:14px;text-align:right;color:#cbd5e1;font-size:.65rem;font-weight:800}
.race-combo-badge strong{display:block;font-family:'Baloo 2';font-size:1.5rem;color:#facc15;line-height:1}

.module3 .castle-field.boss-exploded::after{content:"🏰  CASTELO FECHADO!";background:radial-gradient(circle,#f59e0b,#10b981 50%,#0f172a);font-size:clamp(1.6rem,4.5vw,3rem)}

/* Mundos 1 e 2: mesma hierarquia visual aprovada no Mundo 3 */
.module1 .lesson-head,.module1 .stage,.module2 .lesson-head,.module2 .stage{width:min(1200px,100%)}
.module1 .keyboard-wrap,.module2 .keyboard-wrap{margin-top:6px;padding-inline:20px}
.module1 .keyboard,.module2 .keyboard{width:100%;max-width:none;margin-inline:auto}
.module1 .key{height:48px;max-width:72px;font-size:.9rem}
.module1 .key-row.r4{padding-inline:18%}
.module1 .key.space-key{width:100%;max-width:none;height:34px}
.module2 .key{min-width:0;max-width:none;height:46px;padding-inline:3px;font-size:.72rem}
.module2 .key.wide-key{min-width:0;max-width:none;flex:1.7}
.module2 .key.shift-key{min-width:0;max-width:none;flex:1.7}
.module2 .key.altgr-key{min-width:0;max-width:none;flex:1.3}
.module2 .key.space-key{max-width:none;flex:5;height:46px}
.module1 .dynamic-sequence,.module2 .dynamic-sequence{min-height:210px}
.module1 .balloon-field,.module1 .boss-field,.module2 .rhythm-field,.module2 .portal-field{min-height:290px}
@media(min-width:621px){
  .module1 .dynamic-sequence .letter,.module2 .dynamic-sequence .letter{width:42px;height:46px;flex-basis:42px;font-size:1.15rem}
  .module1 .dynamic-sequence .space-letter,.module2 .dynamic-sequence .space-letter{width:24px;flex-basis:24px}
  .module1 .compact-sequence .letter,.module2 .compact-sequence .letter{width:28px;height:38px;flex-basis:28px;font-size:.9rem}
  .module1 .compact-sequence .space-letter,.module2 .compact-sequence .space-letter{width:14px;flex-basis:14px}
}
@media(min-width:1051px){
  .module1 .stage-body,.module2 .stage-body{padding-inline:clamp(14px,1.8vw,24px)}
  .module1 .activity-grid.practice-view,.module2 .activity-grid.practice-view{grid-template-columns:minmax(0,1fr) 292px;gap:18px}
  .module1 .coach,.module2 .coach{gap:10px}
  .module1 #lessonStage:fullscreen .stage-body,.module2 #lessonStage:fullscreen .stage-body{width:min(1280px,100%);padding:8px 18px 10px}
  .module1 #lessonStage:fullscreen .activity-grid.practice-view,.module2 #lessonStage:fullscreen .activity-grid.practice-view{grid-template-columns:minmax(0,1fr) 286px;gap:18px;align-items:start}
  .module1 #lessonStage:fullscreen .dynamic-sequence .letter,.module2 #lessonStage:fullscreen .dynamic-sequence .letter{width:46px;height:48px;flex-basis:46px;font-size:1.25rem}
  .module1 #lessonStage:fullscreen .dynamic-sequence .space-letter,.module2 #lessonStage:fullscreen .dynamic-sequence .space-letter{width:26px;flex-basis:26px}
  .module1 #lessonStage:fullscreen .compact-sequence .letter,.module2 #lessonStage:fullscreen .compact-sequence .letter{width:30px;height:40px;flex-basis:30px;font-size:.96rem}
  .module1 #lessonStage:fullscreen .compact-sequence .space-letter,.module2 #lessonStage:fullscreen .compact-sequence .space-letter{width:15px;flex-basis:15px}
  .module1 #lessonStage:fullscreen .keyboard-wrap,.module2 #lessonStage:fullscreen .keyboard-wrap{margin-top:7px;padding:10px 18px 6px}
  .module1 #lessonStage:fullscreen .key{height:50px}
  .module2 #lessonStage:fullscreen .key{height:48px;font-size:.76rem}
  .module1 #lessonStage:fullscreen .key.space-key{height:36px}
  .module2 #lessonStage:fullscreen .key.space-key{height:48px}
  .module1 #lessonStage:fullscreen .balloon-field,.module1 #lessonStage:fullscreen .boss-field,.module2 #lessonStage:fullscreen .rhythm-field,.module2 #lessonStage:fullscreen .portal-field{min-height:310px}
}
@media(max-width:620px){
  .module1 .keyboard-wrap,.module2 .keyboard-wrap{margin-top:2px;padding-inline:4px}
  .module1 .key,.module2 .key{height:28px;max-width:54px;padding-inline:1px;font-size:.5rem}
  .module1 .key-row.r4{padding-inline:16%}
  .module1 .key.space-key{height:24px;max-width:170px}
  .module2 .key.wide-key,.module2 .key.shift-key,.module2 .key.altgr-key{min-width:0;max-width:none;font-size:.46rem}
  .module2 .key.space-key{height:28px;max-width:170px;font-size:.5rem}
  .module1 .balloon-field,.module1 .boss-field,.module2 .rhythm-field,.module2 .portal-field{min-height:230px}
}

/* Mundo 3: área principal maior, painel de apoio compacto e teclado em destaque */
.module3 .lesson-head,.module3 .stage{width:min(1200px,100%)}
.module3 .keyboard-wrap{margin-top:6px;padding-inline:20px}
.module3 .key{height:46px;font-size:.72rem}
.module3 .master-sequence{min-height:220px;align-items:stretch;padding:10px 12px;gap:7px}
.module3 .race-field,.module3 .castle-field{min-height:280px}
@media(min-width:1051px){.module3 .stage-body{padding-inline:clamp(14px,1.8vw,24px)}.module3 .activity-grid.practice-view{grid-template-columns:minmax(0,1fr) 292px;gap:18px}.module3 .coach{gap:10px}}
.module3 .master-sequence .sequence-row{grid-template-columns:22px minmax(0,1fr);align-items:start;gap:7px;padding:3px 5px;border-radius:10px}
.module3 .master-sequence .sequence-row:nth-child(even){background:rgba(255,255,255,.48)}
.module3 .master-sequence .line-letters{justify-content:center;align-items:center;flex-wrap:nowrap;gap:2px 1px}
.module3 .master-sequence .word-group{display:inline-flex;gap:1px;flex:none}
.module3 .master-sequence .letter{width:26px;height:36px;flex:0 0 26px;border-radius:7px;border-bottom-width:3px;font-size:.84rem}
.module3 .master-sequence .space-letter{width:12px;flex-basis:12px;border-color:transparent;background:transparent;box-shadow:none}
.module3 .master-sequence .space-letter.current{background:#fff3c5;border-color:#e0bd47;box-shadow:0 0 0 3px rgba(255,201,40,.18)}
.module3 .master-sequence .space-letter.done{background:rgba(50,213,131,.25);border-color:transparent}
.module3 .master-sequence .space-gap-mark{width:8px;height:2px}
@media(max-width:620px){.module3 .keyboard-wrap{margin-top:2px;padding-inline:4px}.module3 .key{height:28px;font-size:.5rem}.module3 .master-sequence{padding:7px 4px}.module3 .master-sequence .sequence-row{grid-template-columns:18px minmax(0,1fr);gap:3px;padding:2px}.module3 .master-sequence .line-letters{flex-wrap:wrap;gap:2px 1px}.module3 .master-sequence .word-group{gap:1px}.module3 .master-sequence .letter{width:17px;height:27px;flex-basis:17px;font-size:.56rem}.module3 .master-sequence .space-letter{width:8px;flex-basis:8px}}
.module3 #lessonStage:fullscreen .stage-body{width:min(1280px,100%);padding:8px 18px 10px}
.module3 #lessonStage:fullscreen .play-area{gap:9px}
.module3 #lessonStage:fullscreen .master-sequence{min-height:216px;padding:7px 10px;gap:5px}
.module3 #lessonStage:fullscreen .master-sequence .sequence-row{padding-block:1px}
.module3 #lessonStage:fullscreen .master-sequence .letter{width:28px;height:36px;flex-basis:28px;font-size:.9rem}
.module3 #lessonStage:fullscreen .master-sequence .space-letter{width:13px;flex-basis:13px}
.module3 #lessonStage:fullscreen .context{margin:0;padding:6px 12px}
.module3 #lessonStage:fullscreen .keyboard-wrap{margin-top:7px;padding:10px 18px 6px}
.module3 #lessonStage:fullscreen .key{height:39px;font-size:.7rem}
.module3 #lessonStage:fullscreen .hands{height:50px;margin-top:4px}
.module3 #lessonStage:fullscreen .hand-svg{height:47px}
@media(min-width:1051px){.module3 #lessonStage:fullscreen .activity-grid.practice-view{grid-template-columns:minmax(0,1fr) 286px;gap:18px;align-items:start}}
@media(max-width:620px){.module3 #lessonStage:fullscreen .master-sequence{min-height:160px}.module3 #lessonStage:fullscreen .master-sequence .letter{width:17px;height:27px;flex-basis:17px;font-size:.56rem}.module3 #lessonStage:fullscreen .master-sequence .space-letter{width:8px;flex-basis:8px}}

/* Mundo 3: conclusão e Diploma Kids local */
.kids-diploma{margin:10px 0 12px;padding:16px 18px;border:3px double #d69b00;border-radius:18px;background:radial-gradient(circle at 50% 0,#fffdf1,#fff4b9);color:var(--ink);box-shadow:inset 0 0 0 4px rgba(255,255,255,.75)}
.kids-diploma[hidden]{display:none}.kids-diploma>span{display:block;color:#987000;font-size:.58rem;font-weight:1000;letter-spacing:.18em}.kids-diploma>strong{display:block;margin:2px 0;font-family:'Baloo 2';font-size:1.65rem;color:#805b00}.kids-diploma>p{margin:3px auto 9px!important;max-width:430px;color:var(--ink)!important;font-size:.72rem;font-weight:800}.kids-diploma>div{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.kids-diploma>div b,.kids-diploma>div small{font-size:.62rem;color:#806300}
.diploma-vault-btn{position:relative;z-index:2;width:100%;min-height:30px;margin-top:7px;border:1.5px solid #c48c00;border-radius:9px;background:#fff;color:#805b00;font-size:.62rem;font-weight:1000}.diploma-vault-btn[hidden]{display:none}.complete-card.saved-diploma .complete-performance,.complete-card.saved-diploma .speed-award,.complete-card.saved-diploma .complete-copy,.complete-card.saved-diploma #tryAgainBtn{display:none!important}
@media(max-width:620px){.race-active-word{gap:3px;flex-wrap:wrap;justify-content:center}.race-active-word .letter{width:34px;height:42px;font-size:1rem}.race-field{min-height:235px;padding:10px}.kids-diploma{padding:10px}.kids-diploma>strong{font-size:1.3rem}}
@media print{body.module3 *{visibility:hidden!important}body.module3 #kidsDiploma,body.module3 #kidsDiploma *{visibility:visible!important}body.module3 #kidsDiploma{display:block!important;position:fixed;inset:20mm;width:auto;margin:0;padding:30mm 20mm;border:8px double #c69200;border-radius:0;box-shadow:none;text-align:center;background:#fffdf0}body.module3 #kidsDiploma>strong{font-size:34pt}body.module3 #kidsDiploma>p{max-width:none!important;font-size:16pt}body.module3 #kidsDiploma>div b,body.module3 #kidsDiploma>div small{font-size:12pt}}

/* Faixa superior da atividade: resumo e explicação sem cortar as mãos */
.stage-bar{display:grid;grid-template-columns:auto minmax(210px,1fr) auto;align-items:center;justify-content:stretch}
.stage-guide{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:8px}
.stage-guide .encourage{min-width:0;gap:7px;font-size:.62rem;line-height:1.2}
.stage-guide .encourage b{width:27px;height:27px;flex:none;border-radius:8px;font-size:.82rem}
.stage-guide .encourage span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage-guide .secondary{height:32px;flex:none;padding:0 10px;border-radius:9px;font-size:.62rem}
.stage-tools{margin-left:0}
.stage-footer{min-height:58px;justify-content:center}
.stage-footer .actions{margin-inline:auto}
.stage.started .stage-footer{display:none}
@media(max-width:1050px){.stage-bar{grid-template-columns:1fr auto}.stage-guide{grid-column:1/-1;justify-content:flex-start}.stage-guide .encourage{flex:1}.stage-guide .encourage span{white-space:normal}.stage-tools{grid-column:2;grid-row:1}.goals{grid-column:1;grid-row:1}}
@media(max-width:620px){.stage-bar{padding:7px 8px}.stage-guide{gap:5px}.stage-guide .encourage{font-size:.56rem}.stage-guide .encourage b{width:24px;height:24px}.stage-guide .secondary{height:30px;padding:0 7px;font-size:.56rem}.stage-footer{min-height:54px;padding:8px}.stage-footer .actions{display:block}.stage-footer .primary{width:100%}}
