:root {
  --ink:#22213b; --purple:#6c4cf1; --purple-dark:#4d30c9; --pink:#ff5d8f; --yellow:#ffd43b;
  --green:#43c59e; --blue:#3da9fc; --cream:#fffaf0; --white:#fff; --muted:#6f6d82;
  --shadow:0 16px 40px rgba(62,45,130,.13); --radius:26px;
}
*{box-sizing:border-box} body{margin:0;min-height:100vh;background:var(--cream);color:var(--ink);font-family:"Nunito",sans-serif;overflow-x:hidden}
button{font:inherit;color:inherit}.background-shapes{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.shape{position:absolute;border-radius:50%;opacity:.28}.shape-one{width:300px;height:300px;background:#e4d9ff;top:100px;right:-130px}.shape-two{width:180px;height:180px;background:#ffe783;top:560px;left:-80px}.shape-three{width:120px;height:120px;background:#ffd0df;right:8%;bottom:3%}
.topbar{height:92px;max-width:1180px;margin:auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;border:0;background:none;cursor:pointer;text-align:left}.brand-mark{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:var(--purple);color:white;font-family:"Baloo 2";font-weight:800;font-size:24px;transform:rotate(-4deg);box-shadow:0 7px 0 #4e32c4}.brand strong{display:block;font-family:"Baloo 2";font-size:24px;line-height:.9}.brand small{color:var(--muted);font-weight:800}.top-stats{display:flex;gap:10px}.stat-pill{background:white;border:2px solid #eee8df;padding:8px 14px;border-radius:18px;display:grid;grid-template-columns:auto auto;gap:0 7px;align-items:center;box-shadow:0 5px 15px rgba(66,50,100,.06)}.stat-pill span{grid-row:1/3;font-size:23px}.stat-pill strong{line-height:1}.stat-pill small{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:900}
main{max-width:1180px;margin:0 auto;padding:20px 24px 70px}.screen{display:none;animation:appear .35s ease}.screen.active{display:block}@keyframes appear{from{opacity:0;transform:translateY(8px)}}
.hero{min-height:390px;border-radius:36px;background:linear-gradient(125deg,#6949ee 0%,#895ef5 63%,#a875fa 100%);padding:55px 62px;color:white;display:grid;grid-template-columns:1.2fr .8fr;position:relative;overflow:hidden;box-shadow:0 20px 50px rgba(84,55,191,.25)}.hero:before{content:"";position:absolute;width:340px;height:340px;border:70px solid rgba(255,255,255,.06);border-radius:50%;left:-170px;top:-170px}.hero-copy{position:relative;z-index:2}.eyebrow{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:2px;background:rgba(255,255,255,.17);border-radius:20px;padding:7px 12px;display:inline-block}.eyebrow.purple{background:#eee9ff;color:var(--purple)}h1,h2,h3{font-family:"Baloo 2",sans-serif;margin:0;line-height:1.03}.hero h1{font-size:56px;margin:17px 0 10px}.hero h1 em{font-style:normal;color:var(--yellow)}.hero p{font-size:18px;max-width:550px;line-height:1.6;margin:0;color:#eeeaff}.hero-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:27px}.hero-badges span{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.22);padding:8px 12px;border-radius:12px;font-size:12px;font-weight:900}.hero-art{position:relative}.sun{position:absolute;right:20px;top:-15px;font-size:55px;filter:drop-shadow(0 5px 8px rgba(70,34,130,.2))}.ground{position:absolute;width:330px;height:105px;border-radius:50%;background:#5a3bd5;bottom:-63px;right:-15px}.mascot{position:absolute;right:80px;bottom:-5px;width:160px;height:240px;text-align:center}.mascot .hat{position:absolute;top:-20px;left:35px;color:#ffd43b;font-size:100px;line-height:1;transform:scaleX(1.25)}.mascot .face{position:absolute;z-index:2;top:55px;left:39px;background:#ffcc95;border:7px solid white;border-radius:50%;font-size:68px;width:100px;height:100px;display:grid;place-items:center}.mascot .body{position:absolute;color:#ff5d8f;font-size:180px;bottom:-61px;left:0}.speech{position:absolute;background:white;color:var(--purple);font-family:"Baloo 2";font-size:20px;font-weight:800;padding:11px 18px;border-radius:20px;box-shadow:var(--shadow);transform:rotate(-5deg)}.speech-one{top:30px;left:-8px}.speech-two{right:-5px;top:115px;transform:rotate(7deg);color:#ef4c81}
.topics-section{padding-top:55px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.section-heading h2{font-size:34px;margin-top:9px}.section-heading p{color:var(--muted);font-weight:800}.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.topic-card{position:relative;text-align:left;border:0;border-radius:var(--radius);padding:24px;background:white;cursor:pointer;box-shadow:0 8px 24px rgba(49,38,93,.08);transition:.22s transform,.22s box-shadow;overflow:hidden}.topic-card:hover,.topic-card:focus-visible{transform:translateY(-6px);box-shadow:var(--shadow);outline:3px solid var(--card-colour)}.topic-card:after{content:"";position:absolute;width:80px;height:80px;border-radius:50%;background:var(--card-soft);right:-22px;bottom:-30px}.topic-icon{width:60px;height:60px;border-radius:19px;background:var(--card-soft);display:grid;place-items:center;font-size:32px;margin-bottom:20px}.topic-card h3{font-size:24px}.topic-card p{color:var(--muted);font-size:14px;line-height:1.4;margin:4px 0 17px}.topic-meta{display:flex;justify-content:space-between;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.7px}.topic-meta span:first-child{color:var(--card-colour)}.topic-meta span:last-child{color:#aaa5b2}
.back-button{border:0;background:white;border-radius:14px;padding:10px 15px;font-weight:900;cursor:pointer;box-shadow:0 5px 15px rgba(50,40,90,.08)}.mode-intro{display:flex;align-items:center;gap:25px;margin:35px 0 50px}.mode-icon{width:110px;height:110px;border-radius:30px;background:#eee9ff;display:grid;place-items:center;font-size:57px;transform:rotate(-3deg)}.mode-intro h1{font-size:48px;margin:9px 0 5px}.mode-intro p{color:var(--muted);margin:0}.mode-title{text-align:center;font-size:30px;margin-bottom:20px}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.mode-card{border:0;border-radius:30px;padding:30px;text-align:left;cursor:pointer;min-height:300px;position:relative;overflow:hidden;transition:.2s transform;box-shadow:var(--shadow)}.mode-card:hover{transform:translateY(-6px)}.mode-card:after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.15);right:-40px;bottom:-45px}.quiz-card{background:#6c4cf1;color:white}.match-card{background:#ffcf3f;color:#352a1d}.listen-card{background:#45c8a0;color:#113c34}.search-card{background:#3da9fc;color:#102e4a}.crossword-card{background:#ff7b54;color:#402218}.wordle-card{background:#334eac;color:white}.sort-card{background:#f28c28;color:#43260b}.splat-card{background:#ef476f;color:white}.memory-card{background:#18a999;color:#073b35}.sentence-card{background:#8556d8;color:white}.mode-number{position:absolute;right:25px;top:20px;font-family:"Baloo 2";font-size:50px;opacity:.16}.mode-emoji{font-size:48px;display:block;margin-bottom:30px}.mode-card h3{font-size:31px}.mode-card p{opacity:.84;line-height:1.5;max-width:260px}.play-label{display:block;margin-top:25px;font-weight:900}.word-preview{background:white;margin-top:28px;padding:22px 25px;border-radius:22px;display:flex;align-items:center;gap:22px;box-shadow:0 7px 20px rgba(40,30,90,.06)}#wordChips{display:flex;gap:8px;flex-wrap:wrap}.word-chip{background:#f3f0fb;color:#5f4a8c;padding:7px 10px;border-radius:10px;font-size:12px;font-weight:900}
.game-topline{display:flex;justify-content:space-between;align-items:center}.game-score{display:flex;gap:10px}.game-score span{background:white;padding:10px 16px;border-radius:14px;font-weight:900}.progress-track{height:12px;background:#e8e2dc;border-radius:10px;margin:25px 0;overflow:hidden}.progress-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--pink),var(--yellow));border-radius:10px;transition:width .3s}.game-card{background:white;border-radius:34px;max-width:760px;min-height:500px;margin:0 auto;padding:35px 55px;text-align:center;box-shadow:var(--shadow)}.question-count{color:#9691a2;font-size:12px;text-transform:uppercase;letter-spacing:1.4px;font-weight:900}.question-prompt{font-size:17px;font-weight:900;color:var(--muted);margin:30px 0 8px}.question-word{font-family:"Baloo 2";font-size:55px;color:var(--purple);font-weight:800;margin-bottom:25px}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.answer-button{border:2px solid #e9e4ed;background:#fff;padding:17px;border-radius:17px;font-weight:900;font-size:17px;cursor:pointer;transition:.16s}.answer-button:hover{border-color:#b9aafb;background:#f7f5ff;transform:translateY(-2px)}.answer-button.correct{background:#d9f8e9;border-color:#43c59e;color:#197257}.answer-button.wrong{background:#ffe3eb;border-color:#ff789f;color:#b52d56}.feedback{min-height:42px;margin-top:18px;font-family:"Baloo 2";font-size:21px;font-weight:800}.feedback.good{color:#21a379}.feedback.bad{color:#e34572}.listen-button{width:120px;height:120px;border-radius:50%;border:8px solid #dff8f0;background:var(--green);font-size:50px;cursor:pointer;box-shadow:0 9px 0 #279b79;margin:20px 0 30px}.listen-button:active{transform:translateY(5px);box-shadow:0 4px 0 #279b79}.match-board{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}.match-option{border:2px solid #e8e2ed;background:white;border-radius:14px;padding:14px;font-weight:900;cursor:pointer;min-height:54px}.match-option.selected{background:#eee9ff;border-color:var(--purple);color:var(--purple)}.match-option.matched{background:#d9f8e9;border-color:#43c59e;color:#197257;opacity:.65;pointer-events:none}.match-option.shake{animation:shake .25s}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.puzzle-card{max-width:980px;padding:30px}.wordsearch-layout,.crossword-layout{display:grid;grid-template-columns:minmax(320px,1fr) 220px;gap:28px;align-items:start;margin-top:22px}.wordsearch-grid{display:grid;grid-template-columns:repeat(var(--grid-size),1fr);gap:4px;max-width:560px;margin:auto;user-select:none}.letter-cell{aspect-ratio:1;border:0;border-radius:8px;background:#f1eff8;font-family:"Baloo 2";font-size:clamp(14px,2.2vw,22px);font-weight:800;cursor:pointer;text-transform:uppercase}.letter-cell:hover,.letter-cell.start{background:#dcd3ff;color:var(--purple)}.letter-cell.found{background:var(--yellow);color:#4b3712;box-shadow:inset 0 -3px 0 #e3b91b}.puzzle-words,.crossword-clues{background:#f8f6fc;border-radius:20px;padding:18px;text-align:left}.puzzle-words h3,.crossword-clues h3{font-size:20px;margin-bottom:10px}.puzzle-words ul,.crossword-clues ol{list-style:none;padding:0;margin:0;display:grid;gap:8px}.puzzle-words li{padding:7px 9px;border-radius:9px;font-weight:900;color:#635e71}.puzzle-words li.found{text-decoration:line-through;background:#fff3b3;color:#8b6b00}.puzzle-tip{font-size:12px;color:var(--muted);line-height:1.4;margin:13px 0 0}.crossword-grid{display:grid;grid-template-columns:repeat(var(--grid-size),minmax(25px,38px));justify-content:center;gap:2px;overflow:auto;padding:4px}.cross-cell{position:relative;aspect-ratio:1;background:white;border:2px solid #cac3d4}.cross-cell input{width:100%;height:100%;border:0;text-align:center;text-transform:uppercase;font:800 18px "Nunito";padding:0;background:transparent;outline:none}.cross-cell:focus-within{border-color:var(--purple);z-index:2}.cross-cell.good{background:#d9f8e9;border-color:#43c59e}.cross-cell.bad{background:#ffe3eb;border-color:#ff789f}.cell-number{position:absolute;left:2px;top:-1px;font-size:8px;font-weight:900;z-index:1;pointer-events:none}.cross-blank{aspect-ratio:1}.crossword-clues li{font-size:12px;line-height:1.35;color:#5c5769}.crossword-clues b{color:var(--purple);margin-right:4px}.check-button{margin-top:17px;border:0;border-radius:14px;background:var(--purple);color:white;padding:12px 18px;font-weight:900;cursor:pointer;box-shadow:0 5px 0 var(--purple-dark)}
.wordle-board{display:grid;gap:6px;justify-content:center;margin:22px auto 18px}.wordle-row{display:grid;grid-template-columns:repeat(var(--word-length),minmax(36px,52px));gap:6px}.wordle-tile{aspect-ratio:1;border:3px solid #d9d4df;border-radius:9px;display:grid;place-items:center;font-family:"Baloo 2";font-size:28px;font-weight:800;text-transform:uppercase;background:white}.wordle-tile.filled{border-color:#8e87a0;animation:pop .12s}.wordle-tile.correct{background:#43b986;border-color:#43b986;color:white}.wordle-tile.present{background:#e6bb37;border-color:#e6bb37;color:white}.wordle-tile.absent{background:#918d99;border-color:#918d99;color:white}@keyframes pop{50%{transform:scale(1.08)}}.wordle-entry{display:flex;justify-content:center;gap:8px;margin:10px auto 16px}.wordle-entry input{width:min(310px,70vw);border:3px solid #d9d4df;border-radius:14px;padding:12px 15px;text-align:center;text-transform:uppercase;font-weight:900;font-size:17px;outline:none}.wordle-entry input:focus{border-color:#334eac}.wordle-entry button{border:0;border-radius:14px;background:#334eac;color:white;padding:12px 17px;font-weight:900;cursor:pointer}.wordle-keyboard{display:grid;gap:6px;max-width:570px;margin:auto}.keyboard-row{display:flex;justify-content:center;gap:5px}.key-button{min-width:36px;height:46px;padding:0 8px;border:0;border-radius:7px;background:#e7e3e8;font-weight:900;cursor:pointer}.key-button.wide{min-width:65px;font-size:11px}.key-button.correct{background:#43b986;color:white}.key-button.present{background:#e6bb37;color:white}.key-button.absent{background:#918d99;color:white}
.sort-source{min-height:94px;background:#f6f2eb;border:2px dashed #d8cfc2;border-radius:20px;padding:15px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;margin:20px 0}.sort-word{border:0;background:white;border-radius:13px;padding:11px 15px;font-weight:900;font-size:16px;box-shadow:0 5px 12px rgba(52,36,18,.12);cursor:grab;touch-action:none;transition:.18s transform,.18s opacity}.sort-word:hover{transform:translateY(-3px)}.sort-word:active{cursor:grabbing}.sort-word.selected{outline:4px solid #ffd43b;transform:rotate(-2deg) scale(1.05)}.sort-word.sorting{opacity:.45}.sort-buckets{display:grid;grid-template-columns:repeat(var(--bucket-count),1fr);gap:14px;margin-top:18px}.sort-bucket{border:3px dashed var(--bucket-colour);background:var(--bucket-soft);border-radius:22px;min-height:185px;padding:15px;cursor:pointer;transition:.18s transform,.18s background}.sort-bucket.drag-over{transform:scale(1.025);background:white}.sort-bucket.wrong-drop{animation:shake .25s}.bucket-heading{font-family:"Baloo 2";font-size:21px;font-weight:800;color:var(--bucket-colour);margin-bottom:12px}.bucket-items{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.sorted-word{background:white;border:2px solid var(--bucket-colour);border-radius:11px;padding:8px 11px;font-weight:900;font-size:14px;animation:pop .2s}.sort-instruction{color:var(--muted);font-weight:800;font-size:14px}
.splat-listen{width:78px;height:78px;border:0;border-radius:50%;background:#ef476f;color:white;font-size:34px;box-shadow:0 7px 0 #c82951;cursor:pointer;margin:15px}.splat-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:560px;margin:12px auto}.splat-picture{min-height:145px;border:3px solid #eee7f0;border-radius:23px;background:white;font-size:70px;cursor:pointer;transition:.15s transform,.15s background}.splat-picture img{display:block;width:100%;height:135px;object-fit:contain;padding:6px}.splat-picture:hover{transform:scale(1.04);background:#fff3f6}.splat-picture.correct{background:#d9f8e9;border-color:#43c59e}.splat-picture.wrong{background:#ffe3eb;border-color:#ef476f;animation:shake .25s}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:650px;margin:28px auto}.memory-tile{min-height:94px;border:0;border-radius:16px;background:linear-gradient(135deg,#18a999,#49cbbb);color:white;font-family:"Baloo 2";font-weight:800;font-size:19px;cursor:pointer;box-shadow:0 5px 0 #107a70;transition:.2s transform}.memory-tile:hover{transform:translateY(-3px)}.memory-tile.revealed{background:white;color:var(--ink);box-shadow:inset 0 0 0 3px #18a999}.memory-tile.matched{background:#d9f8e9;color:#197257;box-shadow:inset 0 0 0 3px #43c59e;pointer-events:none}.sentence-meaning{display:inline-block;background:#eee9ff;color:var(--purple);padding:10px 16px;border-radius:14px;font-weight:900;margin:18px 0}.sentence-answer{min-height:78px;border:3px dashed #bdb2d8;background:#faf8ff;border-radius:18px;padding:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-bottom:18px}.sentence-answer:empty:after{content:"Build your Spanish sentence here";color:#aaa3b5;font-weight:800;font-size:13px}.sentence-bank{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;min-height:60px}.sentence-token{border:0;border-radius:12px;background:#8556d8;color:white;padding:11px 15px;font-weight:900;cursor:pointer;box-shadow:0 4px 0 #603ba5}.sentence-answer .sentence-token{background:#ffcf3f;color:#3d3010;box-shadow:0 4px 0 #d9aa16}.sentence-check{border:0;border-radius:14px;background:#43b986;color:white;padding:13px 23px;font-weight:900;box-shadow:0 5px 0 #248e64;cursor:pointer;margin-top:23px}
.result-card{max-width:650px;margin:35px auto;background:white;border-radius:38px;padding:50px;text-align:center;box-shadow:var(--shadow);position:relative;overflow:hidden}.confetti{position:absolute;top:22px;left:0;width:100%;color:var(--yellow);font-size:28px;display:flex;justify-content:space-around}.confetti span:first-child{color:var(--pink)}.confetti span:last-child{color:var(--green)}.result-emoji{font-size:75px;margin:15px 0}.result-card h1{font-size:49px;margin:9px 0}.result-card>p{color:var(--muted);font-size:18px}.result-score{width:150px;height:150px;margin:28px auto;border-radius:50%;background:#fff6cd;border:7px solid var(--yellow);display:flex;flex-direction:column;justify-content:center}.result-score strong{font-family:"Baloo 2";font-size:49px;line-height:.85}.result-score span{font-size:12px;font-weight:900}.result-actions{display:flex;gap:12px;justify-content:center}.primary-button,.secondary-button{border:0;border-radius:15px;padding:14px 22px;font-weight:900;cursor:pointer}.primary-button{background:var(--purple);color:white;box-shadow:0 6px 0 var(--purple-dark)}.secondary-button{background:#eee9ff;color:var(--purple)}
.teaching-section{padding-top:55px}.resource-card{width:100%;border:0;border-radius:30px;padding:26px 30px;background:linear-gradient(115deg,#fff 0%,#f0ebff 100%);display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;text-align:left;cursor:pointer;box-shadow:var(--shadow);transition:.2s transform,.2s box-shadow;overflow:hidden;position:relative}.resource-card:after{content:"a";position:absolute;right:105px;top:-60px;font:800 220px/1 "Baloo 2";color:rgba(108,76,241,.06);transform:rotate(-8deg)}.resource-card:hover,.resource-card:focus-visible{transform:translateY(-5px);outline:3px solid var(--purple)}.resource-icon{width:76px;height:76px;border-radius:23px;background:var(--yellow);display:grid;place-items:center;font-size:39px;box-shadow:0 7px 0 #ddb51d;position:relative;z-index:1}.resource-copy{display:grid;position:relative;z-index:1}.resource-copy small{text-transform:uppercase;letter-spacing:1.4px;color:var(--purple);font-weight:900}.resource-copy strong{font:800 29px/1.15 "Baloo 2"}.resource-copy strong em{color:var(--pink)}.resource-copy>span{color:var(--muted);font-size:14px;font-weight:800;margin-top:3px}.resource-action{background:var(--purple);color:white;padding:13px 17px;border-radius:14px;font-weight:900;position:relative;z-index:1}.song-intro{display:flex;align-items:center;gap:24px;margin:35px 0}.song-intro-icon{width:100px;height:100px;border-radius:28px;background:var(--yellow);display:grid;place-items:center;font-size:51px;box-shadow:0 8px 0 #dcb31a;transform:rotate(-3deg)}.song-intro h1{font-size:48px;margin:8px 0 4px}.song-intro h1 em{font-style:normal;color:var(--pink)}.song-intro p{color:var(--muted);font-weight:800;margin:0}.song-workspace{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}.formation-stage,.karaoke-panel{background:white;border-radius:32px;padding:28px;box-shadow:var(--shadow)}.song-panel-heading{display:flex;align-items:center;gap:12px;text-align:left}.song-panel-heading>span{width:40px;height:40px;border-radius:13px;background:#eee9ff;color:var(--purple);display:grid;place-items:center;font:800 21px "Baloo 2"}.song-panel-heading small{display:block;color:var(--pink);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:1.4px}.song-panel-heading h2{font-size:26px}.formation-animation{aspect-ratio:4/3;margin:20px 0 13px;border:3px solid #eee8f4;border-radius:24px;overflow:hidden;background:white;display:grid;place-items:center}.formation-animation img{width:100%;height:100%;object-fit:contain}.formation-tip{background:#fff6cd;color:#6a5311;border-radius:14px;margin:0;padding:11px 14px;font-size:13px;font-weight:900}.karaoke-panel{display:flex;flex-direction:column}.karaoke-lyrics{display:grid;gap:10px;margin:25px 0 20px}.karaoke-line{width:100%;border:2px solid #ede8f2;background:#faf9fc;border-radius:17px;padding:13px 15px;display:flex;align-items:center;gap:6px;text-align:left;cursor:pointer;transition:.18s transform,.18s border-color,.18s background}.karaoke-line:before{content:"🔊";font-size:17px;margin-right:5px;opacity:.58}.karaoke-line:hover{transform:translateX(3px);border-color:#c9bbff}.karaoke-line.active{border-color:var(--purple);background:#f0ebff}.karaoke-line.complete{border-color:#43c59e;background:#e7faF2}.karaoke-word{font:800 21px "Baloo 2";color:#9b96a5;border-radius:8px;padding:1px 3px;transition:.12s color,.12s background,.12s transform}.karaoke-word.sung{color:#5d5870}.karaoke-word.current{background:var(--yellow);color:#3f3210;transform:translateY(-2px)}.song-progress{height:10px;border-radius:8px;background:#eee9f2;overflow:hidden;margin-top:auto}.song-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--pink),var(--yellow));border-radius:8px;transition:width .08s linear}.song-controls{display:flex;gap:10px;margin-top:18px}.song-play,.song-reset{border:0;border-radius:15px;padding:13px 18px;font-weight:900;cursor:pointer}.song-play{background:var(--purple);color:white;box-shadow:0 5px 0 var(--purple-dark);flex:1}.song-play span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.18);margin-right:5px}.song-reset{background:#eee9ff;color:var(--purple)}.song-status{min-height:22px;color:var(--muted);font-size:13px;font-weight:900;text-align:center;margin:12px 0 0}.teacher-prompts{margin-top:22px;background:linear-gradient(120deg,#6747e9,#8e63f7);color:white;border-radius:30px;padding:28px 32px;display:grid;grid-template-columns:.85fr 1.5fr;align-items:center;gap:28px;box-shadow:0 18px 42px rgba(84,55,191,.2)}.teacher-prompts .eyebrow{background:rgba(255,255,255,.16)}.teacher-prompts h2{font-size:29px;margin-top:8px}.teacher-prompts ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;counter-reset:practice}.teacher-prompts li{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);border-radius:17px;padding:16px;display:grid;gap:2px}.teacher-prompts li strong{font:800 19px "Baloo 2";color:var(--yellow)}.teacher-prompts li span{font-size:12px;font-weight:800;color:#efeaff}
.resource-card:after{content:"🍊";right:120px;top:-18px;font:100px/1 sans-serif;filter:grayscale(1);opacity:.07}.resource-copy strong{font:800 29px/1.15 "Baloo 2"}.resource-copy strong em{color:inherit}.lesson-intro{display:flex;align-items:center;gap:24px;margin:35px 0}.lesson-intro-icon{width:100px;height:100px;border-radius:28px;background:#ffe5ed;display:grid;place-items:center;font-size:54px;box-shadow:0 8px 0 #f5b7ca;transform:rotate(-3deg)}.lesson-intro h1{font-size:48px;margin:8px 0 4px;color:#d83b5d}.lesson-intro p{color:var(--muted);font-weight:800;margin:0}.lesson-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:20px}.lesson-tab{border:2px solid #ece6ef;background:white;border-radius:16px;padding:12px 8px;font-weight:900;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:.18s transform,.18s border-color,.18s background}.lesson-tab span{width:27px;height:27px;border-radius:9px;background:#f0ebff;color:var(--purple);display:grid;place-items:center}.lesson-tab:hover{transform:translateY(-2px);border-color:#c7b9ff}.lesson-tab.active{background:#6c4cf1;color:white;border-color:#6c4cf1}.lesson-tab.active span{background:white}.lesson-tab.song-tab.active{background:#d83b5d;border-color:#d83b5d}.lesson-stage{background:white;border-radius:32px;padding:30px;box-shadow:var(--shadow);min-height:560px}.lesson-heading{display:flex;gap:15px;align-items:center;margin-bottom:24px}.lesson-number{width:52px;height:52px;border-radius:16px;background:#eee9ff;color:var(--purple);display:grid;place-items:center;font:800 28px "Baloo 2";flex:0 0 auto}.lesson-heading h2{font-size:31px;margin:7px 0 2px}.lesson-heading p{color:var(--muted);font-weight:800;margin:0}.lesson-slides{display:grid;grid-template-columns:1fr 1fr;gap:18px}.lesson-slides figure,.song-slide{margin:0;border:3px solid #eee7f0;border-radius:22px;overflow:hidden;background:#f7f4fa}.lesson-slides img,.song-slide img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:white}.lesson-slides figcaption,.song-slide figcaption{text-align:center;padding:8px;color:var(--muted);font-size:11px;font-weight:900}.lesson-word-bank{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-top:22px}.lesson-word-bank button{border:0;border-radius:12px;background:#fff1f4;color:#b52d56;padding:10px 13px;font-weight:900;cursor:pointer}.lesson-word-bank button:hover{background:#ffdce6;transform:translateY(-2px)}.teacher-callout{margin-top:20px;background:#fff6cd;border-radius:15px;padding:13px 16px;color:#624f13;font-weight:800}.grammar-challenge{margin:22px auto 0;max-width:650px;text-align:center;background:#f8f6fc;border-radius:22px;padding:22px}.grammar-challenge>p:first-child{font-size:20px}.grammar-challenge>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grammar-challenge button{border:3px solid #e5dfeb;background:white;border-radius:15px;padding:15px;font-weight:900;font-size:17px;cursor:pointer}.grammar-challenge button.correct{background:#d9f8e9;border-color:#43c59e}.grammar-challenge button.wrong{background:#ffe3eb;border-color:#ef476f}.fruit-picker,.opinion-fruits,.opinion-toggles{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}.fruit-picker button,.opinion-fruits button,.opinion-toggles button{border:3px solid #eee7f0;background:white;border-radius:15px;padding:11px 14px;font-weight:900;cursor:pointer}.fruit-picker button span{font-size:24px;display:block}.fruit-picker button.selected,.opinion-fruits button.selected,.opinion-toggles button.selected{border-color:var(--purple);background:#eee9ff;color:var(--purple)}.built-sentence{max-width:760px;margin:22px auto 14px;background:#6c4cf1;color:white;border-radius:18px;padding:17px 20px;text-align:center;font:800 26px "Baloo 2";min-height:66px}.speak-sentence{display:block;margin:0 auto;border:0;border-radius:14px;padding:12px 18px;background:#43b986;color:white;font-weight:900;cursor:pointer;box-shadow:0 5px 0 #248e64}.fruit-song-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.fruit-karaoke{background:linear-gradient(135deg,#21143f,#4a236a);color:white;border-radius:24px;padding:28px;display:flex;flex-direction:column;min-height:390px}.karaoke-label{color:var(--yellow);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:1.8px}.fruit-karaoke-line{font:800 34px/1.45 "Baloo 2";margin:20px 0;flex:1}.fruit-karaoke-line span{color:#8e81a5;border-radius:7px;padding:0 2px}.fruit-karaoke-line span.sung{color:white}.fruit-karaoke-line span.current{background:var(--yellow);color:#2c2141}.fruit-karaoke-next{color:#bfb4ce;font-size:13px;font-weight:800;margin-bottom:18px}.fruit-karaoke .song-progress{background:rgba(255,255,255,.16)}.fruit-karaoke .song-status{color:#d8d0e2}.native-song-audio{width:100%;height:38px;margin-top:14px;accent-color:var(--yellow)}.fruit-karaoke .song-play:disabled{opacity:.55;box-shadow:none;cursor:wait}.full-lyrics{margin-top:20px;background:#f8f6fc;border-radius:18px;padding:14px 17px}.full-lyrics summary{cursor:pointer;font-weight:900;color:var(--purple)}.full-lyrics ol{display:grid;gap:8px;color:#625d70;font-weight:700;line-height:1.45}.lesson-footer-actions{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;margin-top:18px}.lesson-footer-actions span{text-align:center;color:var(--muted);font-weight:900;font-size:13px}.lesson-footer-actions button:disabled{opacity:.35;cursor:not-allowed}.lesson-tab:focus-visible,.lesson-word-bank button:focus-visible,.fruit-picker button:focus-visible,.opinion-builder button:focus-visible,.grammar-challenge button:focus-visible{outline:4px solid var(--yellow);outline-offset:2px}
footer{max-width:1180px;margin:0 auto;padding:25px 24px 35px;border-top:1px solid #e7e0d8;display:flex;justify-content:space-between;color:#87818e;font-size:12px}footer strong{color:var(--purple)}
@media(max-width:850px){.hero{grid-template-columns:1fr;padding:45px}.hero-art{display:none}.topic-grid,.mode-grid{grid-template-columns:1fr 1fr}.word-preview{align-items:flex-start;flex-direction:column}.game-card{padding:30px}.wordsearch-layout,.crossword-layout{grid-template-columns:1fr}.puzzle-words ul{grid-template-columns:repeat(3,1fr)}.crossword-clues ol{grid-template-columns:1fr 1fr}.song-workspace{grid-template-columns:1fr}.teacher-prompts{grid-template-columns:1fr}.resource-card{grid-template-columns:auto 1fr}.resource-action{grid-column:1/-1;text-align:center}.resource-card:after{right:20px}.teacher-prompts ol{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.topbar{height:78px;padding:12px 16px}.brand-mark{width:46px;height:46px}.brand small{display:none}.stat-pill{padding:7px 9px}.stat-pill small{display:none}main{padding:10px 14px 50px}.hero{padding:35px 25px;min-height:390px}.hero h1{font-size:40px}.hero-badges span:last-child{display:none}.section-heading{align-items:start;flex-direction:column}.section-heading p{margin-bottom:0}.topic-grid,.mode-grid{grid-template-columns:1fr}.topic-card{padding:20px}.mode-intro{margin:28px 0;align-items:flex-start}.mode-icon{width:75px;height:75px;font-size:40px;flex:0 0 auto}.mode-intro h1{font-size:35px}.game-card{padding:25px 18px;min-height:480px}.question-word{font-size:42px}.answer-grid{grid-template-columns:1fr}.match-board{gap:8px}.match-option{padding:11px}.puzzle-card{padding:22px 10px}.wordsearch-layout{grid-template-columns:1fr}.wordsearch-grid{gap:2px}.letter-cell{border-radius:5px}.puzzle-words ul{grid-template-columns:1fr 1fr}.crossword-layout{grid-template-columns:1fr}.crossword-grid{grid-template-columns:repeat(var(--grid-size),minmax(20px,30px));gap:1px}.cross-cell input{font-size:14px}.crossword-clues ol{grid-template-columns:1fr}.sort-buckets{grid-template-columns:1fr}.sort-bucket{min-height:125px}.splat-picture{min-height:105px;font-size:52px}.memory-board{grid-template-columns:repeat(3,1fr)}.memory-tile{min-height:82px;font-size:16px}.result-card{padding:38px 20px}.result-actions{flex-direction:column}.resource-card{padding:22px;grid-template-columns:1fr}.resource-icon{width:62px;height:62px}.resource-action{grid-column:auto}.song-intro{align-items:flex-start}.song-intro-icon{width:70px;height:70px;font-size:37px;flex:0 0 auto}.song-intro h1{font-size:35px}.formation-stage,.karaoke-panel{padding:20px 16px}.karaoke-word{font-size:18px}.song-controls{flex-direction:column}.teacher-prompts{padding:24px 20px}.teacher-prompts ol{grid-template-columns:1fr}footer{flex-direction:column;gap:7px}}
@media(max-width:850px){.lesson-nav{grid-template-columns:repeat(3,1fr)}.lesson-slides,.fruit-song-layout{grid-template-columns:1fr}.fruit-karaoke{min-height:340px}}
@media(max-width:560px){.lesson-intro{align-items:flex-start}.lesson-intro-icon{width:70px;height:70px;font-size:38px;flex:0 0 auto}.lesson-intro h1{font-size:36px}.lesson-nav{grid-template-columns:1fr 1fr}.lesson-tab:last-child{grid-column:1/-1}.lesson-stage{padding:22px 14px}.lesson-heading{align-items:flex-start}.lesson-heading h2{font-size:26px}.lesson-number{width:43px;height:43px;font-size:23px}.grammar-challenge>div{grid-template-columns:1fr}.built-sentence{font-size:21px}.fruit-karaoke{padding:21px 17px;min-height:360px}.fruit-karaoke-line{font-size:26px}.lesson-footer-actions{grid-template-columns:1fr 1fr}.lesson-footer-actions span{grid-column:1/-1;grid-row:1}.lesson-slides{gap:12px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.resource-grid .resource-card{height:100%;grid-template-columns:auto 1fr}.resource-grid .resource-action{grid-column:1/-1;text-align:center}.colours-resource{background:linear-gradient(115deg,#fff 0%,#e7f7ff 100%)}.colours-resource:after{content:"🎨"}.colours-resource .resource-icon{background:#8edfff;box-shadow:0 7px 0 #4daecf}.colours-resource .resource-copy small{color:#177ca6}.colours-resource .resource-action{background:#177ca6}.external-lesson-screen{position:fixed!important;inset:0;z-index:1000;background:#111827;margin:0!important;width:100vw;height:100dvh}.external-lesson-screen.active{display:flex!important;flex-direction:column}.external-lesson-toolbar{min-height:58px;padding:8px 14px;background:#fff;display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;box-shadow:0 3px 15px rgba(0,0,0,.18);position:relative;z-index:1}.external-lesson-toolbar>div{display:flex;align-items:center;gap:9px}.external-lesson-toolbar>div span{font-size:25px}.external-lesson-toolbar>div strong{font:800 21px "Baloo 2"}.external-lesson-toolbar>div small{color:var(--muted);font-weight:800}.external-lesson-close,.external-lesson-toolbar>a{width:max-content;border:0;border-radius:12px;padding:10px 14px;background:#eee9ff;color:var(--purple);font:900 13px "Nunito";cursor:pointer;text-decoration:none}.external-lesson-toolbar>a{justify-self:end;background:#177ca6;color:#fff}.external-lesson-frame{display:block;width:100%;height:100%;flex:1;border:0;background:#fff}.fruit-song-layout{display:block;max-width:900px;margin:0 auto}.fruit-karaoke-translation{color:#fff;font-size:17px;font-weight:800;line-height:1.4;margin:-10px 0 14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.16)}.full-lyrics li{display:grid;gap:3px}.full-lyrics li strong{color:#3d354c}.full-lyrics li span{color:#777083;font-size:14px;font-weight:700}
@media(max-width:850px){.resource-grid{grid-template-columns:1fr}.external-lesson-toolbar{grid-template-columns:auto 1fr}.external-lesson-toolbar>a{display:none}.external-lesson-toolbar>div{justify-self:end}.external-lesson-toolbar>div small{display:none}}
@media(max-width:560px){.external-lesson-toolbar{min-height:52px;padding:7px 9px}.external-lesson-toolbar>div strong{font-size:17px}.external-lesson-close{padding:9px 10px}}
body,body *{font-family:"Quicksand",sans-serif!important}.overlay-open{overflow:hidden}.song-overlay-screen{position:fixed!important;inset:0;z-index:1100;width:100vw;height:100dvh;margin:0!important;background:#050505}.song-overlay-screen.active{display:flex!important;flex-direction:column}.song-overlay-toolbar{height:64px;flex:0 0 64px;padding:8px 16px;background:#111827;color:#fff;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;box-shadow:0 4px 20px rgba(0,0,0,.4);position:relative;z-index:5}.song-overlay-toolbar>div{display:flex;align-items:center;gap:10px}.song-overlay-toolbar>div span{font-size:27px}.song-overlay-toolbar>div strong{font-size:22px}.song-overlay-toolbar>div small{color:#c9c4d4;font-weight:700}.song-overlay-toolbar>button,.external-lesson-toolbar>button{width:max-content;border:0;border-radius:12px;padding:10px 14px;background:#eee9ff;color:#5d3ee8;font-weight:700;cursor:pointer}.song-overlay-toolbar>button:last-child,.external-lesson-toolbar>button:last-child{justify-self:end;background:#177ca6;color:#fff}.song-overlay-body{position:relative;flex:1;min-height:0;overflow:auto;background:#050505 url("assets/fruit-teaching/artwork/song-background.png") center/cover no-repeat}.song-overlay-body:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,4,9,.9) 0%,rgba(3,4,9,.62) 58%,rgba(3,4,9,.12) 100%);pointer-events:none}.song-overlay-screen .lesson-stage{position:relative;z-index:1;width:100%;height:100%;min-height:calc(100dvh - 64px);padding:clamp(20px,3vw,48px);border-radius:0;background:transparent;box-shadow:none}.song-overlay-screen .fruit-song-layout{position:relative;width:100%;height:100%;max-width:none;margin:0;display:flex;align-items:center}.fruit-song-character{position:absolute;right:2vw;bottom:-48px;height:min(82dvh,850px);width:auto;filter:drop-shadow(0 18px 24px rgba(0,0,0,.5));z-index:1}.song-overlay-screen .fruit-karaoke{position:relative;z-index:2;width:min(76vw,1180px);min-height:0;padding:clamp(24px,3.2vw,54px);border:1px solid rgba(255,255,255,.22);background:rgba(21,12,42,.86);backdrop-filter:blur(8px);box-shadow:0 24px 70px rgba(0,0,0,.48)}.song-overlay-screen .karaoke-label{font-size:clamp(15px,1.4vw,23px)}.song-overlay-screen .fruit-karaoke-line{flex:none;min-height:clamp(150px,27dvh,300px);margin:18px 0 10px;font-size:clamp(46px,5.2vw,88px);line-height:1.22;display:flex;align-content:center;align-items:center;flex-wrap:wrap}.song-overlay-screen .fruit-karaoke-line.medium{font-size:clamp(35px,4.1vw,67px)}.song-overlay-screen .fruit-karaoke-line.long{font-size:clamp(27px,3vw,49px)}.song-overlay-screen .fruit-karaoke-translation{margin:0 0 16px;padding-top:14px;font-size:clamp(25px,2.5vw,42px);line-height:1.28}.song-overlay-screen .fruit-karaoke-next{margin:0 0 16px;padding:14px 18px;border-radius:16px;background:rgba(255,255,255,.11);display:grid;gap:3px;color:#fff}.song-overlay-screen .fruit-karaoke-next>span{color:#ffd43b;font-size:clamp(15px,1.2vw,20px);font-weight:700;text-transform:uppercase;letter-spacing:1.4px}.song-overlay-screen .fruit-karaoke-next strong{font-size:clamp(21px,1.8vw,31px);line-height:1.25}.song-overlay-screen .fruit-karaoke-next em{font-size:clamp(18px,1.45vw,25px);font-style:normal;color:#d8d0e2;font-weight:600}.song-overlay-screen .song-controls{margin-top:14px}.song-overlay-screen .native-song-audio{margin-top:11px}.song-overlay-screen .song-status{margin:7px 0 0}.song-overlay-screen .full-lyrics{margin-top:10px;background:rgba(255,255,255,.92);max-height:34dvh;overflow:auto}.song-overlay-screen .full-lyrics[open]{padding-bottom:14px}.song-overlay-screen .full-lyrics ol{margin-bottom:0}.song-overlay-screen:fullscreen,.external-lesson-screen:fullscreen{width:100vw;height:100vh}.external-lesson-toolbar>button:last-child{font-size:13px}.external-lesson-toolbar>a{display:none!important}
@media(max-width:900px){.song-overlay-toolbar{grid-template-columns:auto 1fr auto}.song-overlay-toolbar>div{justify-self:center}.song-overlay-toolbar>div small{display:none}.fruit-song-character{opacity:.35;right:-8vw}.song-overlay-screen .fruit-karaoke{width:100%}.song-overlay-screen .fruit-karaoke-line{min-height:140px}.song-overlay-screen .fruit-karaoke-translation{font-size:clamp(30px,4vw,38px)}.song-overlay-screen .fruit-karaoke-next strong{font-size:clamp(26px,3.2vw,31px)}.song-overlay-screen .fruit-karaoke-next em{font-size:clamp(22px,2.7vw,27px)}.song-overlay-screen .lesson-stage{padding:18px}}
@media(max-width:560px){.song-overlay-toolbar{height:54px;flex-basis:54px;padding:6px 9px}.song-overlay-toolbar>div strong{font-size:16px}.song-overlay-toolbar>div span{font-size:22px}.song-overlay-toolbar>button{padding:9px 10px}.song-overlay-screen .lesson-stage{min-height:calc(100dvh - 54px);padding:10px}.song-overlay-screen .fruit-karaoke{padding:17px 14px}.song-overlay-screen .fruit-karaoke-line{font-size:clamp(34px,10vw,52px);min-height:125px}.song-overlay-screen .fruit-karaoke-line.medium{font-size:clamp(29px,8vw,43px)}.song-overlay-screen .fruit-karaoke-line.long{font-size:clamp(23px,6.3vw,34px)}.song-overlay-screen .fruit-karaoke-translation{font-size:clamp(21px,6vw,29px)}.song-overlay-screen .fruit-karaoke-next strong{font-size:19px}.song-overlay-screen .fruit-karaoke-next em{font-size:17px}.fruit-song-character{display:none}}
.song-overlay-body{overflow:hidden}.song-overlay-body:after{background:linear-gradient(90deg,rgba(3,4,9,.64) 0%,rgba(3,4,9,.34) 58%,rgba(3,4,9,.06) 100%)}.song-overlay-screen .lesson-stage{display:grid;place-items:center;min-height:0;padding:0;overflow:hidden}.song-overlay-screen .fruit-song-layout{--song-scale:1;position:relative;width:1360px;height:760px;max-width:none;display:grid;grid-template-columns:1000px 330px;gap:30px;align-items:center;margin:0;transform:scale(var(--song-scale));transform-origin:center}.song-overlay-screen .fruit-karaoke{width:1000px;height:700px;min-height:700px;box-sizing:border-box;padding:34px 38px;background:rgba(21,12,42,.68);backdrop-filter:blur(4px);display:flex;flex-direction:column}.fruit-character-stage{width:330px;height:760px;display:flex;align-items:flex-end;justify-content:center;overflow:visible}.song-overlay-screen .fruit-song-character{position:static;display:block;width:auto;height:700px;max-width:none;opacity:1;filter:drop-shadow(0 18px 24px rgba(0,0,0,.5));transform:none}.song-overlay-screen .karaoke-label{font-size:18px}.song-overlay-screen .fruit-karaoke-line,.song-overlay-screen .fruit-karaoke-line.medium,.song-overlay-screen .fruit-karaoke-line.long{flex:none;min-height:180px;margin:12px 0 8px;font-size:42px;line-height:1.28;display:flex;align-content:center;align-items:center;flex-wrap:wrap;column-gap:.28em;row-gap:.12em}.song-overlay-screen .fruit-karaoke-line span{padding:0 3px}.song-overlay-screen .fruit-karaoke-translation{margin:0 0 12px;padding-top:11px;font-size:30px;line-height:1.25}.song-overlay-screen .fruit-karaoke-next{margin:0 0 12px;padding:11px 15px;gap:2px}.song-overlay-screen .fruit-karaoke-next>span{font-size:15px}.song-overlay-screen .fruit-karaoke-next strong{font-size:24px;line-height:1.24}.song-overlay-screen .song-controls{margin-top:10px}.song-overlay-screen .native-song-audio{margin-top:9px}.song-overlay-screen .song-status{margin:5px 0}.song-structure-trigger{width:100%;margin-top:7px;border:0;border-radius:13px;padding:11px 15px;background:rgba(255,255,255,.9);color:#6747e9;font-size:16px;font-weight:700;text-align:left;cursor:pointer}.song-structure-modal{position:absolute;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:24px;background:rgba(4,5,12,.58);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility .22s ease}.song-structure-modal.open{opacity:1;visibility:visible;pointer-events:auto}.song-structure-window{width:min(1180px,calc(100% - 20px));height:min(78dvh,760px);background:#f8f6fc;border-radius:26px 26px 0 0;box-shadow:0 -24px 70px rgba(0,0,0,.45);overflow:hidden;display:flex;flex-direction:column;transform:translateY(105%);transition:transform .3s ease}.song-structure-modal.open .song-structure-window{transform:translateY(24px)}.song-structure-window header{padding:20px 24px;background:#21143f;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px}.song-structure-window header small{color:#ffd43b;text-transform:uppercase;letter-spacing:1.4px;font-weight:700}.song-structure-window header h2{margin:2px 0 0;font-size:29px}.song-structure-window header button{border:0;border-radius:12px;padding:10px 14px;background:#fff;color:#5d3ee8;font-weight:700;cursor:pointer}.song-structure-window ol{margin:0;padding:22px 30px 44px 58px;overflow-y:auto;display:grid;gap:14px}.song-structure-window li{padding-bottom:12px;border-bottom:1px solid #e1dce8;display:grid;gap:4px}.song-structure-window li strong{font-size:20px;color:#30283d}.song-structure-window li span{font-size:17px;color:#6d6677;font-weight:600}.song-overlay-screen:fullscreen .song-overlay-toolbar,.external-lesson-screen:fullscreen .external-lesson-toolbar{display:none}.song-overlay-screen:fullscreen .song-overlay-body{height:100vh}.song-overlay-screen:fullscreen .lesson-stage{height:100vh}.external-lesson-screen:fullscreen .external-lesson-frame{height:100vh;flex:1}
@media(max-width:560px){.song-overlay-screen .fruit-karaoke-line,.song-overlay-screen .fruit-karaoke-line.medium,.song-overlay-screen .fruit-karaoke-line.long{font-size:42px;min-height:180px}.song-overlay-screen .fruit-karaoke-translation{font-size:30px}.song-overlay-screen .fruit-karaoke-next strong{font-size:24px}.song-structure-modal{padding:8px}.song-structure-window{width:100%;height:86dvh}.song-structure-window header{padding:15px}.song-structure-window header h2{font-size:23px}.song-structure-window ol{padding:18px 18px 36px 44px}}
.native-song-audio{display:none}.song-overlay-screen .song-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch}.song-volume{display:grid;grid-template-columns:46px 86px 46px;align-items:center;gap:6px;padding:0 6px;border-radius:15px;background:rgba(255,255,255,.11)}.song-volume button{height:46px;border:0;border-radius:12px;background:linear-gradient(135deg,#ff4f91,#ffd43b);color:#21143f;font-size:28px;font-weight:900;line-height:1;cursor:pointer;box-shadow:0 4px 0 rgba(0,0,0,.25)}.song-volume button:hover{filter:brightness(1.08);transform:translateY(-1px)}.song-volume button:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.25)}.song-volume button:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.song-volume span{color:#fff;font-size:17px;font-weight:800;text-align:center;white-space:nowrap}.song-volume button:focus-visible{outline:4px solid #fff;outline-offset:2px}
.song-overlay-screen .fruit-karaoke-next.is-hidden{display:none}
.song-overlay-screen .fruit-karaoke-translation{margin-bottom:24px}.song-progress-slider{--song-progress:0%;width:100%;height:24px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}.song-progress-slider::-webkit-slider-runnable-track{height:12px;border-radius:9px;background:linear-gradient(90deg,#ff4f91 0,#ffd43b var(--song-progress),rgba(255,255,255,.17) var(--song-progress),rgba(255,255,255,.17) 100%);box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}.song-progress-slider::-webkit-slider-thumb{-webkit-appearance:none;width:25px;height:25px;margin-top:-6.5px;border:4px solid #fff;border-radius:50%;background:#6c4cf1;box-shadow:0 3px 10px rgba(0,0,0,.45)}.song-progress-slider::-moz-range-track{height:12px;border-radius:9px;background:rgba(255,255,255,.17)}.song-progress-slider::-moz-range-progress{height:12px;border-radius:9px;background:linear-gradient(90deg,#ff4f91,#ffd43b)}.song-progress-slider::-moz-range-thumb{width:17px;height:17px;border:4px solid #fff;border-radius:50%;background:#6c4cf1;box-shadow:0 3px 10px rgba(0,0,0,.45)}.song-progress-slider:focus-visible{outline:4px solid #fff;outline-offset:3px;border-radius:10px}.song-progress-slider:disabled{opacity:.45;cursor:wait}.song-structure-modal{position:fixed!important;inset:0;width:100vw;height:100dvh;z-index:1300;align-items:center;padding:32px}.song-structure-window{width:min(1040px,calc(100% - 32px));height:min(82dvh,760px);border-radius:26px;transform:translateY(18px) scale(.96)}.song-structure-modal.open .song-structure-window{transform:translateY(0) scale(1)}.song-structure-actions{display:flex;align-items:center;gap:10px}.song-structure-actions button:first-child{background:linear-gradient(135deg,#ff4f91,#ffd43b);color:#21143f}
#songStructurePrint{display:none}
.instruments-resource{background:linear-gradient(115deg,#fff 0%,#fff1d7 100%)}.instruments-resource:after{content:"🎺"}.instruments-resource .resource-icon{background:#ffca3a;box-shadow:0 7px 0 #d99a00}.instruments-resource .resource-copy small{color:#b76500}.instruments-resource .resource-action{background:#b76500}#lessonScreen[data-song="instruments"] .song-overlay-body{background-image:url("assets/instruments-song/artwork/song-background.png")}#lessonScreen[data-song="instruments"] .song-overlay-body:after{background:linear-gradient(90deg,rgba(3,4,9,.72) 0%,rgba(3,4,9,.4) 58%,rgba(3,4,9,.08) 100%)}#lessonScreen[data-song="instruments"] .fruit-song-character{height:680px}
@media print{@page{size:A4 portrait;margin:13mm}body>*:not(#songStructurePrint){display:none!important}#songStructurePrint{display:block!important;color:#21143f;font-family:"Quicksand",sans-serif}#songStructurePrint header{margin-bottom:9mm;padding:9mm 10mm;border-radius:8mm;background:linear-gradient(135deg,#21143f,#5d3ee8);color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}#songStructurePrint header small{color:#ffd43b;font-size:10pt;font-weight:800;text-transform:uppercase;letter-spacing:1.4pt}#songStructurePrint h1{margin:2mm 0 0;font-size:26pt;line-height:1.1}#songStructurePrint header p{margin:2mm 0 0;font-size:12pt}#songStructurePrint ol{margin:0;padding-left:7mm;columns:2;column-gap:10mm;column-rule:1px solid #ddd4f2}#songStructurePrint li{break-inside:avoid;margin:0 0 5mm;padding:0 0 4mm 2mm;border-bottom:1px solid #e6e0ef}#songStructurePrint li::marker{color:#ff4f91;font-weight:800}#songStructurePrint li strong,#songStructurePrint li span{display:block}#songStructurePrint li strong{font-size:10.5pt;line-height:1.35;color:#30283d}#songStructurePrint li span{margin-top:1.5mm;font-size:9pt;line-height:1.35;color:#655e70}#songStructurePrint footer{position:fixed;right:0;bottom:-7mm;left:0;text-align:center;color:#6c4cf1;font-size:8.5pt;font-weight:800}}

.pets-chat-resource{background:linear-gradient(115deg,#fff 0%,#e9fff6 100%)}
.pets-chat-resource:after{content:"🐾"}
.pets-chat-resource .resource-icon{background:#73e2b7;box-shadow:0 7px 0 #28a977}
.pets-chat-resource .resource-copy small{color:#16805a}
.pets-chat-resource .resource-action{background:#16805a}
.pets-chat-screen{position:fixed!important;inset:0;z-index:1200;width:100vw;height:100dvh;margin:0!important;background:#dff7ff}
.pets-chat-screen.active{display:flex!important;flex-direction:column}
.pets-chat-toolbar{height:64px;flex:0 0 64px;padding:8px 16px;background:#183153;color:#fff;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;box-shadow:0 4px 20px rgba(0,0,0,.25);position:relative;z-index:5}
.pets-chat-toolbar>div{display:flex;align-items:center;gap:10px}.pets-chat-toolbar>div span{font-size:28px}.pets-chat-toolbar>div strong{font-size:22px}.pets-chat-toolbar>div small{color:#cfe8f4;font-weight:700}
.pets-chat-toolbar>button{width:max-content;border:0;border-radius:12px;padding:10px 14px;background:#eef8ff;color:#31537a;font-weight:800;cursor:pointer}
.pets-chat-toolbar>button:last-child{justify-self:end;background:#20a873;color:#fff}
.pets-chat-body{flex:1;min-height:0;overflow:hidden;padding:clamp(14px,2.2vw,30px);background:radial-gradient(circle at 15% 14%,rgba(255,255,255,.9) 0 7%,transparent 7.2%),radial-gradient(circle at 85% 20%,rgba(255,212,59,.38) 0 10%,transparent 10.2%),linear-gradient(135deg,#dff7ff 0%,#f8ffec 52%,#fff1c6 100%)}
.pets-chat-stage{height:100%;max-width:1540px;margin:auto;display:grid;grid-template-columns:minmax(170px,240px) minmax(620px,1fr) minmax(170px,245px);gap:clamp(12px,2vw,30px);align-items:stretch}
.pets-character{position:relative;min-width:0;display:flex;align-items:flex-end;justify-content:center}
.pets-character-mateo{overflow:visible}.pets-character-mateo>img{width:132%;max-width:none;max-height:96%;object-fit:contain;transform:translateX(-3%);transform-origin:center bottom;filter:drop-shadow(0 17px 18px rgba(35,61,80,.22))}
.character-name{position:absolute;top:22px;left:0;right:0;z-index:2;padding:12px 14px;border:3px solid #31537a;border-radius:20px;background:#fff;text-align:center;box-shadow:0 8px 0 rgba(49,83,122,.14)}
.character-name:after{content:"";position:absolute;left:50%;bottom:-15px;width:22px;height:22px;background:#fff;border-right:3px solid #31537a;border-bottom:3px solid #31537a;transform:translateX(-50%) rotate(45deg)}
.character-name strong,.character-name span{display:block}.character-name strong{font-size:25px;color:#31537a}.character-name span{font-size:12px;color:#637489;font-weight:800}
.pets-character-pets{display:block;overflow:visible}.pets-character-pets img{position:absolute;object-fit:contain;filter:drop-shadow(0 13px 13px rgba(35,61,80,.18))}
.pets-dog{width:100%;right:0;bottom:3%}.pets-cat{width:68%;right:5%;bottom:34%}.pets-parrot{width:48%;left:0;top:5%}
.pets-conversation-panel{min-width:0;min-height:0;height:100%;overflow:hidden;padding:clamp(18px,2vw,30px);border:2px solid rgba(49,83,122,.14);border-radius:34px;background:rgba(255,255,255,.88);box-shadow:0 24px 60px rgba(48,94,121,.18);backdrop-filter:blur(10px);display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:14px}
.pets-conversation-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:2px solid #e3eef2}
.pets-conversation-heading .eyebrow{background:#dff8ee;color:#16805a}.pets-conversation-heading h1{margin-top:7px;font-size:clamp(31px,3vw,48px);color:#183153}
.pets-chat-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.pets-chat-heading-actions button{border:0;border-radius:14px;padding:12px 15px;background:#eee9ff;color:#5d3ee8;font-weight:800;cursor:pointer;white-space:nowrap}
.pets-chat-heading-actions .pets-voice-toggle{background:#e8fff6;color:#126747}.pets-chat-heading-actions button:disabled{opacity:.55;cursor:not-allowed}
.pets-chat-messages{min-height:0;max-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;scroll-padding-bottom:24px;padding:8px 12px 24px 4px;display:flex;flex-direction:column;gap:18px;scrollbar-color:#9ed8c4 transparent}
.pets-chat-messages.pets-chat-auto-scroll{scroll-behavior:auto}
.pets-chat-row{display:flex;align-items:flex-end;gap:10px}.pets-chat-row>img{width:62px;height:62px;object-fit:contain;flex:0 0 auto;border-radius:50%;background:#fff5bd;border:3px solid #ffd43b}.pets-chat-row.bot{justify-content:flex-start;padding-left:24px}.pets-chat-row.bot>img{display:none}
.pets-chat-row.user{justify-content:flex-end}
.pets-chat-bubble{position:relative;min-width:0;max-width:88%;box-sizing:border-box;padding:17px 21px;border-radius:24px;background:#fff5bd;border:3px solid #f3c51f;box-shadow:0 7px 0 rgba(218,175,18,.14);overflow-wrap:anywhere}
.pets-chat-row.bot .pets-chat-bubble{width:min(680px,80%);max-width:calc(100% - 34px)}
.pets-chat-row.bot .pets-chat-bubble:before{content:"";position:absolute;left:-23px;bottom:24px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-right:23px solid #f3c51f}
.pets-chat-row.bot .pets-chat-bubble:after{content:"";position:absolute;left:-17px;bottom:27px;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-right:19px solid #fff5bd}
.pets-chat-bubble strong,.pets-chat-bubble span{display:block}.pets-chat-bubble strong{font-size:clamp(24px,2.25vw,38px);line-height:1.22;color:#2e3045}.pets-chat-bubble span{margin-top:7px;padding-top:7px;border-top:1px solid rgba(46,48,69,.16);font-size:clamp(16px,1.35vw,22px);line-height:1.3;color:#596077;font-weight:700}
.pets-chat-replay{display:block;margin-top:10px;border:0;border-radius:999px;padding:7px 11px;background:#183153;color:#fff;font:800 13px Quicksand,sans-serif;cursor:pointer}.pets-chat-replay:hover,.pets-chat-replay:focus-visible{background:#16805a;outline:3px solid #fff;outline-offset:2px}
.pets-chat-row.user .pets-chat-bubble{max-width:82%;border-color:#6c4cf1;border-radius:24px;background:#6c4cf1;box-shadow:0 7px 0 rgba(77,48,201,.18)}
.pets-chat-row.user .pets-chat-bubble:before{content:"";position:absolute;right:-20px;left:auto;bottom:20px;width:0;height:0;background:transparent;border:0;border-top:13px solid transparent;border-bottom:13px solid transparent;border-left:20px solid #6c4cf1;transform:none}
.pets-chat-row.user .pets-chat-bubble strong{color:#fff}.pets-chat-row.thinking{justify-content:center;padding-left:0;opacity:.78}.pets-chat-row.thinking .pets-chat-bubble{width:auto;max-width:none;padding:9px 17px;border:2px solid #e2c04e;border-radius:999px;background:#fff9d8;box-shadow:0 4px 0 rgba(218,175,18,.12)}.pets-chat-row.thinking .pets-chat-bubble:before,.pets-chat-row.thinking .pets-chat-bubble:after{display:none}.pets-chat-row.thinking .pets-chat-bubble strong{display:flex;align-items:center;font-size:18px;color:#596077}.pets-chat-row.thinking .pets-chat-bubble strong:after{content:"";display:inline-block;width:1.25em;height:.38em;margin-left:8px;background:radial-gradient(circle,currentColor 38%,transparent 42%) 0 50%/33% 100% repeat-x;animation:pets-thinking 1s steps(3,end) infinite}
@keyframes pets-thinking{to{background-position:100% 50%}}
.pets-chat-suggestions{display:flex;gap:10px;flex-wrap:wrap}.pets-chat-suggestions:empty{display:none}
.pets-chat-suggestions button{flex:1 1 180px;border:2px solid #20a873;border-radius:16px;padding:12px 14px;background:#e8fff6;color:#126747;font-size:clamp(17px,1.35vw,21px);font-weight:800;cursor:pointer;box-shadow:0 4px 0 rgba(32,168,115,.16)}
.pets-chat-suggestions button:hover,.pets-chat-suggestions button:focus-visible{background:#20a873;color:#fff;transform:translateY(-2px);outline:3px solid #183153;outline-offset:2px}
.pets-chat-form{padding-top:12px;border-top:2px solid #e3eef2}.pets-chat-form label{display:block;margin-bottom:7px;color:#31537a;font-size:15px;font-weight:800}
.pets-chat-form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.pets-chat-form input{min-width:0;border:3px solid #b9cbd5;border-radius:17px;padding:15px 17px;background:#fff;font-size:clamp(20px,1.7vw,27px);font-weight:700;color:#22213b}.pets-chat-form input:focus{border-color:#6c4cf1;outline:4px solid rgba(108,76,241,.16)}
.pets-chat-form button{border:0;border-radius:17px;padding:14px 22px;background:#6c4cf1;color:#fff;font-size:19px;font-weight:900;cursor:pointer;box-shadow:0 5px 0 #4d30c9}.pets-chat-form button:disabled{opacity:.45;cursor:wait}
.pets-chat-form p{margin:8px 2px 0;color:#68788a;font-size:12px;font-weight:700;line-height:1.35}
.pets-chat-screen:fullscreen .pets-chat-toolbar{display:none}.pets-chat-screen:fullscreen .pets-chat-body{height:100vh;flex:1}
@media(max-width:1050px){.pets-chat-stage{grid-template-columns:150px minmax(0,1fr)}.pets-character-pets{display:none}.pets-character-mateo>img{opacity:.88}.character-name span{display:none}}
@media(max-width:760px){.pets-chat-toolbar{height:56px;flex-basis:56px;grid-template-columns:auto 1fr auto;padding:7px 9px}.pets-chat-toolbar>div{justify-self:center}.pets-chat-toolbar>div small{display:none}.pets-chat-toolbar>div strong{font-size:16px}.pets-chat-toolbar>button{padding:9px 10px;font-size:12px}.pets-chat-body{padding:8px}.pets-chat-stage{display:block}.pets-character-mateo{display:none}.pets-conversation-panel{border-radius:22px;padding:14px;height:100%}.pets-conversation-heading{align-items:flex-start}.pets-conversation-heading h1{font-size:28px}.pets-conversation-heading .eyebrow{display:none}.pets-chat-heading-actions{gap:5px}.pets-chat-heading-actions button{padding:9px;font-size:12px}.pets-chat-row.bot{padding-left:14px}.pets-chat-row.bot .pets-chat-bubble{width:80%;max-width:calc(100% - 22px)}.pets-chat-row>img{width:48px;height:48px}.pets-chat-bubble{max-width:84%;padding:12px 14px}.pets-chat-bubble strong{font-size:20px;line-height:1.2}.pets-chat-bubble span{font-size:15px}.pets-chat-suggestions button{min-width:0;font-size:15px;padding:10px;overflow-wrap:anywhere}.pets-chat-form>div{grid-template-columns:1fr}.pets-chat-form input{font-size:19px;padding:12px}.pets-chat-form button{padding:11px}.pets-chat-form p{display:none}}
