/* The reading pages follow the dimensions and worksheet layout of Funny Memes.
   Colors, toy illustrations and content belong to Squishy Club. */
body.lesson-screen{background:radial-gradient(ellipse at 0 0,#fae9dc,transparent 50%),radial-gradient(ellipse at 100% 60%,#eee5f6,transparent 50%),#f2f8ef;padding-bottom:20px}
.lesson-screen .club-header{max-width:1440px;padding:20px 34px;border-bottom:1px solid #9ac4b536;min-height:99px}
.lesson-screen .club-main{max-width:none;padding:0}
.squishy-lesson{width:min(1300px,100%);margin:auto;padding:32px;--lesson-lead:770px}
.lesson-heading{display:block;text-align:center;margin:0 0 25px}
.lesson-heading .eyebrow{font-size:11px;letter-spacing:.16em;line-height:1.55;margin:0 0 12px}
.lesson-heading h1{font-size:clamp(30px,4vw,48px);line-height:1.2;margin:0 0 16px;font-weight:800;letter-spacing:-.04em}
.lesson-heading .lesson-instruction{font-size:calc(var(--reading) + 1px);line-height:1.75;color:var(--muted);max-width:var(--lesson-lead);margin:0 auto}
/* The instruction recording stays outside the worksheet's answer controls. */
.lesson-audio{margin:14px auto 0;max-width:var(--lesson-lead)}
.lesson-audio-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;max-width:100%;padding:10px 18px;font-size:var(--reading);line-height:1.4;white-space:normal}
.lesson-audio-button:focus-visible{outline:3px solid #8051b6;outline-offset:4px}
.lesson-audio-button[aria-pressed="true"]{background:#eee4f6;border-color:#9678ad}
.lesson-audio-status{font-size:16px;line-height:1.5;margin:8px 0 0;color:var(--muted)}
.lesson-audio-status:empty{display:none}
.lesson-steps{display:flex;justify-content:center;gap:10px;margin:20px 0;flex-wrap:wrap}
.lesson-steps span{display:grid;place-items:center;width:38px;height:38px;border:1px solid #d4cfdf;border-radius:50%;background:#fffdf6;font-weight:800;font-size:16px;color:#685e7b}
.lesson-steps .active,.lesson-steps .finished{background:#80699b;border-color:#80699b;color:white}
.lesson-sheet{padding:24px;border-radius:28px;background:#fffdf7;box-shadow:0 6px 0 #dce5d7;border:2px solid #d7d9cd;min-width:0}
.lesson-sheet button{min-width:44px;min-height:48px}
.lesson-sheet :is(button,input,summary):focus-visible{outline:3px solid #8051b6;outline-offset:4px}
.lesson-prompt{font-size:calc(var(--reading) + 1px);line-height:1.5;text-align:center;margin:0 0 22px;font-weight:800}
.word-cushion,.letter-cushion,.sentence-cushion,.picture-cushion,.stitch-cushion,.ribbon-cushion,.ribbon-slot,.code-cushion,.web-letter,.story-cushion{border:2px solid #d6e4d7;background:#fffdf5;border-radius:18px;padding:14px;font-weight:800;font-size:var(--reading);box-shadow:0 4px 0 #dbe3d426;line-height:1.4;overflow-wrap:anywhere}
.lesson-sheet button:hover:not(:disabled){border-color:#93bba3}
.lesson-sheet button:disabled{cursor:default;opacity:1}
.lesson-sheet .selected{border-color:#9678ad;outline:2px solid #cdbade;outline-offset:1px;background:#eee4f6}
.lesson-sheet .joined{background:#d9eddf;border-color:#8db59d;color:#244f39}
.lesson-vignette{display:block;width:160px;height:110px;object-fit:contain;pointer-events:none}
.lesson-maze .lesson-sheet{padding:22px;border-radius:30px;border-color:#d5e7dc;background:linear-gradient(140deg,#eef8f0,#fff3df 60%,#f2eafa)}
.lesson-maze .lesson-steps{display:none}
.maze-intro{position:relative;display:flex;justify-content:center;align-items:center;min-height:110px;padding:0 170px;margin-bottom:18px;text-align:center}
.maze-intro .lesson-vignette{position:absolute;left:0;top:0}
.maze-intro p{font-size:calc(var(--reading) + 1px);line-height:1.7;margin:0}
.soft-maze{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin:auto}
.soft-maze .word-cushion{position:relative;min-height:90px;padding:18px 5px;border:2px solid #deded0;border-radius:15px;background:#fffefa;font-size:calc(var(--reading) + 3px);font-weight:600;line-height:1.2;box-shadow:0 4px 0 #dadccc;overflow-wrap:normal}
.soft-maze.shape-maze .word-cushion{overflow-wrap:anywhere}
.soft-maze .word-cushion.joined{background:#d4efdc;border-color:#77a987;box-shadow:0 4px 0 #83b994}
.tile-tick{position:absolute;top:5px;right:9px;font-size:14px;color:#367458}
.reading-part{display:inline-block;color:#38724f}.reading-part:nth-of-type(even){color:#76558b}.plain-reading .reading-part{color:inherit}
.maze-legend,.maze-finish{font-size:15px;font-weight:800}.maze-legend{margin:0 0 10px}.maze-finish{text-align:right;margin:16px 0 0}
.lesson-matching .lesson-sheet{padding:0;border:0;background:none;box-shadow:none}
.lesson-matching .lesson-steps{display:none}
.matching-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:28px;align-items:start}
.matching-layout .lesson-prompt{display:flex;align-items:center;gap:16px;text-align:left;padding:18px;min-height:94px;border:2px solid #d6e4d7;border-radius:22px;background:#fffdf5;font-weight:600;margin:0}
.match-number{flex:0 0 44px;color:#39745a;font-weight:800;text-align:center}
.picture-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%;margin:auto}
.picture-cushion{position:relative;padding:8px 8px 36px;min-width:0;border-radius:24px;background:#fffdf5}
.picture-cushion img{display:block;width:100%;aspect-ratio:1;height:auto;max-height:190px;object-fit:contain;border-radius:16px;background:linear-gradient(145deg,#f9e6dd,#e2f0e7)}
.picture-cushion:nth-child(2) img{background:linear-gradient(145deg,#e8eff0,#eee5f6)}
.picture-number{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:19px;color:#39745a}
.lesson-web{max-width:1240px;--lesson-lead:940px}
.lesson-web .lesson-heading h1{font-size:clamp(30px,4vw,44px)}
.lesson-web .lesson-sheet{max-width:1040px;margin:auto;padding:24px 22px;border-radius:30px;border-color:#dfdfcc;background:linear-gradient(145deg,#fffdf3,#f1ecfa);box-shadow:0 7px 0 #dce6d9}
.letter-web{position:relative;width:100%;height:clamp(340px,42vh,440px);max-width:920px;margin:auto}
.letter-web.letters-8{min-height:400px}
.letter-web .lesson-vignette{position:absolute;left:50%;top:0;transform:translateX(-50%);width:140px;height:90px;z-index:1}
.letter-web svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.letter-web svg>path{fill:none;stroke:#b299c9;stroke-width:.65;stroke-linecap:round;stroke-dasharray:1.2 1}
.letter-web svg>.web-arrow{fill:#937cae;stroke:none}
.web-letter{position:absolute;transform:translate(-50%,-50%);width:80px;height:80px;padding:0;border-radius:50%;background:#fffdf8;border:3px solid #b5a6c3;font-size:calc(var(--reading) + 13px);line-height:1;z-index:2;box-shadow:0 4px 0 #d5cadc}
.web-letter.start:not(.joined){background:#b8404a;border-color:#a73742;color:white;box-shadow:0 4px 0 #8e2a35}
.web-letter small{position:absolute;right:-5px;top:-8px;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;font-size:13px;background:#285b42;color:white}
.word-slots{display:flex;justify-content:center;gap:8px;margin:16px auto;max-width:100%}
.word-slots>span{display:grid;place-items:center;width:60px;height:64px;border:2px solid #c8d5c2;border-radius:12px;background:#fffdf8;font-size:calc(var(--reading) + 13px);font-weight:800;min-width:0}
.word-slots .filled{background:#e3f2df;border-color:#76a27c}.word-slots .next-slot{border:3px dashed #9270ad;background:#f7edff}
.lesson-edges{--lesson-lead:960px}.edge-layout{display:grid;grid-template-columns:170px minmax(0,1fr);gap:24px;align-items:center}
.lesson-toy{margin:0;text-align:center}.lesson-toy img{display:block;margin:auto;width:170px;height:170px;object-fit:contain}
.lesson-toy figcaption{margin-top:8px;font-size:var(--reading);font-weight:800;letter-spacing:.04em}
.edge-work .lesson-prompt{text-align:left;margin-bottom:18px;font-weight:600;font-size:var(--reading)}
.letter-bank,.hidden-word{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:18px auto;max-width:700px}
.edge-work .letter-bank{justify-content:flex-start;max-width:none}
.letter-cushion{font-size:calc(var(--reading) + 9px);padding:9px 13px}
.edge-work .letter-cushion{display:grid;place-items:center;width:54px;height:60px;padding:0;border-radius:50%}
.assembled-word{min-height:45px;margin:24px auto 0;text-align:center;font-size:calc(var(--reading) + 6px);font-weight:900;color:#476e55;letter-spacing:.07em;overflow-wrap:anywhere}
.lesson-cipher{--lesson-lead:950px}.lesson-cipher .lesson-sheet{background:none;border:0;padding:0;box-shadow:none}
.cipher-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.cipher-key{padding:20px;border:2px solid #d8e4d7;border-radius:26px;background:#fffdf4;overflow-x:auto;min-width:0}
.cipher-key table{width:100%;border-collapse:collapse;text-align:center;table-layout:fixed;min-width:352px}
.cipher-key th,.cipher-key td{border:2px solid #d9d8c8;height:54px;padding:0}
.cipher-key th{font-size:23px;background:#eee9f7}.cipher-key thead th:first-child{font-size:12px}
.lesson-sheet .code-cushion{width:100%;min-width:44px;min-height:54px;border:0;border-radius:0;background:#fffdf7;font-size:calc(var(--reading) + 7px);padding:0;box-shadow:none}
.cipher-answer{padding:24px 18px;border:2px solid #d7d9cd;border-radius:26px;background:#fffdf7;min-width:0}
.cipher-strip{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:0 auto 24px}
.cipher-strip span{padding:10px;border:1px solid #d7cfe2;background:#f0e8f5;border-radius:12px;font-size:25px;letter-spacing:2px}
.cipher-strip .current-code{background:#fff0c8;border:2px dashed #9e7e35}
.lesson-domino{max-width:1050px;padding-top:24px;--lesson-lead:700px}.lesson-domino .lesson-sheet{background:#fbf3e5;padding:24px}
.lesson-domino .lesson-heading{margin-bottom:18px}.lesson-domino .lesson-heading h1{font-size:clamp(28px,4vw,38px);margin-bottom:10px}.lesson-domino .lesson-heading .eyebrow{margin-bottom:6px}
.active-domino{display:grid;grid-template-columns:1fr 1fr;width:220px;margin:0 auto 24px;border:2px solid #b7c5b5;border-radius:17px;background:#fffdf7;box-shadow:0 5px 0 #c5cebc;overflow:hidden;align-items:center}
.active-domino img{width:100%;height:102px;object-fit:contain;padding:8px}
.active-domino strong{border-left:1px solid #d8ded1;padding:20px 8px;text-align:center;font-size:32px;color:#a75f45;overflow-wrap:anywhere}
.domino-choices{max-width:810px;gap:18px}.domino-choices .picture-cushion{padding:16px 8px 7px;border-radius:22px}
.domino-choices .picture-cushion img{height:142px;max-width:160px;aspect-ratio:auto;background:none;margin:auto}
.domino-next{display:block;border-top:1px dashed #d0c6ce;padding:8px;font-size:23px;color:#a75f45;overflow-wrap:anywhere}
.lesson-hint,.lesson-story-reference{margin:22px auto 0;max-width:680px;line-height:1.7;font-size:var(--reading)}
.lesson-hint summary,.lesson-story-reference summary{cursor:pointer;font-size:16px;color:#526959;font-weight:800;min-height:44px;padding:10px 0}
.lesson-crossout{max-width:1100px;--lesson-lead:780px}.crossout-layout{display:grid;grid-template-columns:110px minmax(0,1fr);gap:20px;align-items:center;padding:22px 0}.crossout-work{min-width:0}.crossout-work .assembled-word:empty{display:none}
.crossout-layout .lesson-toy img{width:110px;height:110px;border:1px solid #e2ddcf;border-radius:20px;background:#f5f0e8}
.secret-ribbon{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 0 10px}
.cross-word,.remaining-letter{min-height:48px;padding:5px 3px;border:0;background:transparent;border-radius:3px;font-size:calc(var(--reading) + 2px);font-weight:600;letter-spacing:.025em}
.cross-word.crossed{text-decoration:line-through;text-decoration-color:#c14e50;text-decoration-thickness:3px;color:#7c8585}
.remaining-letter.joined{background:#edf5e8;border-bottom:2px solid #87ab83}
.remaining-letter:disabled:not(.joined){opacity:.7}
.lesson-answer-form{margin:18px 0 0}.lesson-answer-form label{display:block;font-size:16px;margin-bottom:8px}
.lesson-answer-form>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lesson-answer-form input{width:180px;max-width:100%;min-width:0;min-height:48px;border:2px dashed #c5cbbd;border-radius:10px;background:#fffefa;padding:7px 10px;font-size:var(--reading);letter-spacing:.1em}
.lesson-threads{max-width:940px;--lesson-lead:750px}.lesson-threads .lesson-sheet{max-width:400px;margin:auto;padding:12px 18px 14px}.ribbon-worksheet{max-width:340px;margin:auto}
.ribbon-sources,.ribbon-slots{display:grid;grid-template-columns:repeat(var(--pieces),minmax(0,1fr));gap:12px}
.ribbon-cushion{border-radius:48% 48% 18px 18px;padding:8px;font-size:calc(var(--reading) + 8px);background:#f5e1e4}
.ribbon-cushion:nth-child(2n){background:#dcebe4}.ribbon-cushion:nth-child(3n){background:#e9dff3}
.ribbon-slot{padding:8px;font-size:calc(var(--reading) + 8px)}
.ribbon-lines{display:block;width:100%;height:200px;overflow:visible}.ribbon-lines path{fill:none;stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke}
.lesson-families{max-width:1000px;--lesson-lead:750px}.shape-badge{display:inline-grid;place-items:center;width:26px;height:26px;color:#876498;background:#eee3f2;border-radius:8px;font-size:20px}
.sentence-bank,.answer-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.sentence-cushion{padding:10px 18px;min-width:105px;font-weight:800}
.sentence-bank:has(.shape-cushion){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 8px}
.shape-cushion{position:relative;width:100%;max-width:260px;aspect-ratio:4/3;justify-self:center;padding:0;border:0;background:none;box-shadow:none;min-width:0}
.family-shape{display:block;width:100%;height:100%;fill:#fffefb;stroke:#b29bc0;stroke-width:2}
.shape-cushion .family-word{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:90%;font-size:var(--reading);line-height:1.3}.shape-triangle .family-word{top:75%;width:65%}
.lesson-sheet .shape-cushion.joined{background:none;border:0}.shape-cushion.joined svg{fill:#e3f1df;stroke:#76a27c;stroke-width:3}
.lesson-story{max-width:900px;--lesson-lead:740px}.soft-story{list-style:none;padding:0;display:grid;gap:14px;margin:0}
.story-cushion{display:flex;align-items:flex-start;gap:16px;width:100%;padding:18px;border-radius:16px;text-align:left;line-height:1.65;background:#fffefb;font-weight:600}
.story-order{display:grid;place-items:center;flex-shrink:0;width:42px;height:46px;border:2px dashed #99b3a5;border-radius:9px;background:#fffefb;color:#513d72;font-weight:800;font-size:24px}
.lesson-hidden{max-width:900px;--lesson-lead:720px}.lesson-hidden .lesson-toy img{width:140px;height:140px}.hidden-word{gap:8px}.hidden-word .letter-cushion{font-size:calc(var(--reading) + 10px);padding:8px 10px}
.lesson-stitch{max-width:900px;--lesson-lead:760px}.lesson-stitch .lesson-sheet{padding:18px 20px 24px;border-color:#d8cee4;box-shadow:0 6px 0 #e6dfee}
.stitch-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.stitch-cushion{display:flex;align-items:center;flex-direction:column;gap:8px;background:transparent;border:2px solid transparent;padding:8px 4px;font-size:calc(var(--reading) + 9px);min-width:0;box-shadow:none}
.stitch-cushion img{width:110px;height:120px;max-width:100%;object-fit:contain;pointer-events:none}
.stitch-cushion:disabled img{filter:grayscale(1)}
.stitch-cushion>span{display:grid;place-items:center;min-height:44px;width:100%;max-width:120px;border-radius:30px;background:#f2edf6;border:1px solid #d8cee4;line-height:1.3;padding:3px 0}
.stitch-end>span{background:#fae7de;border-color:#e1c8bb}
.stitch-cushion[data-lesson-command="source"]:is(.selected,.is-pressed,:active):not(:disabled)>span{background:#ddc8ef;border-color:#9678ad;color:#52336d;box-shadow:0 0 0 3px #cdbade}
.stitch-seam{height:90px}.completed-pairs{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:20px}
.completed-pairs span{background:#dcecdf;border-radius:20px;padding:8px 15px;font-size:var(--reading);font-weight:800}
:is(.lesson-domino,.lesson-crossout,.lesson-threads,.lesson-families,.lesson-story,.lesson-hidden,.lesson-stitch){padding-top:24px}
:is(.lesson-crossout,.lesson-threads,.lesson-families,.lesson-story,.lesson-hidden,.lesson-stitch) .lesson-heading{margin-bottom:16px}
:is(.lesson-crossout,.lesson-threads,.lesson-families,.lesson-story,.lesson-hidden,.lesson-stitch) .lesson-heading h1{font-size:clamp(30px,4vw,42px);margin-bottom:12px}
:is(.lesson-domino,.lesson-crossout,.lesson-threads,.lesson-families,.lesson-story,.lesson-hidden,.lesson-stitch) .lesson-instruction{font-size:var(--reading);line-height:1.6}
.lesson-feedback{min-height:30px;margin:24px auto 0;text-align:center;font-size:var(--reading);line-height:1.6;color:#456450}
.lesson-actions,.lesson-footer{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:20px 0 0}
.lesson-footer .secondary{font-size:16px}.lesson-sheet .secondary{font-size:17px}.lesson-sheet .primary{font-size:var(--reading)}
.lesson-sheet .lesson-feedback:focus{outline:0}
.lesson-screen .club-dock{position:static;transform:none;left:auto;bottom:auto;width:max-content;max-width:calc(100% - 28px);margin:18px auto}
@media(max-width:850px){.matching-layout{grid-template-columns:1fr;gap:20px}.matching-layout .lesson-prompt{min-height:70px;padding:12px}.picture-choices{gap:8px}.cipher-layout{grid-template-columns:1fr}.cipher-key{max-width:550px;width:100%;margin:auto}.cipher-answer{max-width:550px;width:100%;margin:auto}}
@media(max-width:760px){
 .lesson-screen .club-header{padding:14px 20px;min-height:87px}.squishy-lesson{padding:26px 20px}
 .lesson-heading h1{font-size:clamp(30px,4vw,48px)}.lesson-sheet{padding:18px;border-radius:22px}
 .maze-intro{padding:0 110px 0 0;min-height:100px}.maze-intro .lesson-vignette{left:auto;right:0;width:105px;height:95px}.maze-intro p{font-size:var(--reading)}
 .lesson-maze .lesson-sheet{padding:12px;border-radius:22px}.soft-maze{gap:7px}.soft-maze .word-cushion{padding:18px 3px;font-size:var(--reading)}
 .lesson-web .lesson-sheet{padding:18px 14px}.letter-web{height:320px;min-height:0}.web-letter{width:60px;height:60px;font-size:calc(var(--reading) + 8px)}.letter-web .lesson-vignette{width:100px;height:65px}
 .word-slots{gap:6px}.word-slots>span{width:44px;height:52px;font-size:calc(var(--reading) + 8px)}
 .edge-layout{grid-template-columns:1fr;gap:8px}.lesson-toy img{width:130px;height:130px}.edge-work .lesson-prompt{text-align:center}.edge-work .letter-bank{justify-content:center;gap:10px}.edge-work .letter-cushion{width:48px;height:52px}
 .sentence-bank:has(.shape-cushion){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
 :is(.lesson-domino,.lesson-crossout,.lesson-threads,.lesson-families,.lesson-story,.lesson-hidden,.lesson-stitch){padding:18px 14px 28px}
 .lesson-domino .lesson-sheet{padding:18px 12px}.domino-next{padding:8px 2px;font-size:18px}.domino-choices{gap:8px}.domino-choices .picture-cushion img{height:100px}
 .crossout-layout{grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:start;padding:18px 0}.crossout-layout .lesson-toy img{width:76px;height:76px;border-radius:15px}.crossout-layout .lesson-toy figcaption{font-size:14px}
 .ribbon-sources,.ribbon-slots{gap:5px}.ribbon-cushion,.ribbon-slot{font-size:calc(var(--reading) + 3px);padding:5px}.ribbon-lines{height:175px}
 .story-cushion{padding:14px 10px;gap:10px}.story-order{width:34px;height:40px;font-size:22px}
 .lesson-stitch .lesson-sheet{padding:12px 6px 16px}.stitch-row{gap:4px}.stitch-cushion{padding:6px 2px;font-size:calc(var(--reading) + 5px)}.stitch-cushion img{width:90px;height:100px}.stitch-seam{height:70px}
 .cipher-key{padding:10px}.cipher-key th,.cipher-key td{height:46px}.lesson-sheet .code-cushion{min-height:46px}
}
@media(max-width:440px){
 .lesson-screen .club-header{padding:14px;min-height:87px}.squishy-lesson{padding:26px 14px}.lesson-heading h1,.lesson-web .lesson-heading h1{font-size:30px}
 .lesson-heading .eyebrow{font-size:10px}.lesson-heading .lesson-instruction{font-size:var(--reading);line-height:1.6}.lesson-sheet{padding:18px 12px}
 .picture-choices:not(.domino-choices){grid-template-columns:repeat(2,minmax(0,1fr))}.picture-cushion{padding:8px 8px 36px}.matching-layout .lesson-prompt{gap:8px}.match-number{flex-basis:34px}
 .maze-intro{padding:0;flex-direction:column;gap:8px}.maze-intro .lesson-vignette{position:static;width:120px;height:80px}.maze-intro p{font-size:17px}
 .web-letter{width:48px;height:48px;font-size:calc(var(--reading) + 5px)}.word-slots>span{height:46px}.word-slots{gap:5px}
 .crossout-layout{grid-template-columns:1fr;gap:10px}.crossout-layout .lesson-toy{margin:auto}.crossout-layout .lesson-toy img{width:80px;height:80px}.secret-ribbon{justify-content:center}
 .cross-word,.remaining-letter{font-size:var(--reading)}.lesson-answer-form>div{gap:8px}.lesson-answer-form input{flex:1;min-width:100px}.lesson-answer-form button{padding:10px 12px}
 .sentence-bank:has(.shape-cushion){grid-template-columns:1fr;gap:4px}.shape-cushion{max-width:250px}
 .hidden-word,.letter-bank{gap:7px}.letter-cushion{padding:7px 10px}.hidden-word .letter-cushion{font-size:calc(var(--reading) + 5px)}
 .domino-next{font-size:16px;white-space:nowrap}.active-domino strong{font-size:28px}
}

@media(max-width:360px){.lesson-screen .brand-star{display:none}.lesson-screen .club-header{flex-wrap:nowrap}.lesson-screen .club-brand small{font-size:9px}}
/* Syllable colors are reserved for task instructions. */
.instruction-word{display:inline-block;max-width:100%;overflow-wrap:anywhere}
.instruction-color-0{color:#28745b}.instruction-color-1{color:#86529b}.instruction-color-2{color:#aa542c}
.plain-reading .instruction-syllable{color:inherit}
/* Level 7: picture words with movable letters and individual answer cells. */
.lesson-scatter{max-width:1000px;--lesson-lead:800px}.lesson-scatter .lesson-sheet{padding:22px;background:#f8f5fc;border:1px solid #e0d6eb;box-shadow:0 5px 0 #e8e0ee}
.scatter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.scatter-card{min-width:0;position:relative;padding:12px 22px 22px;background:#fffefb;border:1px solid #e1dddf;border-radius:23px}
.scatter-card-number{position:absolute;top:13px;left:15px;color:#9b89ab;font-size:13px;font-weight:800}
.scatter-picture{position:relative;width:100%;height:218px;max-width:290px;margin:auto}
.scatter-picture>img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:124px;height:124px;object-fit:contain;pointer-events:none}
.scatter-letter{position:absolute;left:var(--letter-x);top:var(--letter-y);transform:translate(-50%,-50%);min-width:44px;min-height:44px;border:1px solid #d9cbe3;border-radius:13px;padding:3px;background:#f4edf9;box-shadow:0 3px 0 #ddcfe7;color:#5d4375;font-size:25px;font-weight:800;line-height:1;touch-action:none;user-select:none;cursor:grab}
.scatter-letter:nth-of-type(even){background:#eaf3e8;border-color:#cbdcc5;color:#38644b;box-shadow:0 3px 0 #cfdfc8}
.scatter-letter.placed{visibility:hidden}.scatter-letter.selected{outline:3px solid #9474b1;outline-offset:2px}.scatter-letter:active{cursor:grabbing}
.scatter-slots{display:grid;grid-template-columns:repeat(var(--cells),minmax(0,1fr));max-width:300px;margin:4px auto 0;border:1px solid #9dada2;border-radius:7px;overflow:hidden;background:#fff}
.scatter-slot{min-width:0;min-height:45px;border:0;border-right:1px solid #bdc7bf;border-radius:0;background:#fffefa;padding:4px 0;color:#758273;font-size:23px;font-weight:800;line-height:1.2;touch-action:manipulation}
.scatter-slot:last-child{border-right:0}.scatter-slot.joined{background:#e5f2e8;color:#28573e}.scatter-slot.drag-over{background:#e9ddf6;box-shadow:inset 0 0 0 3px #9a7bb7}.scatter-slot:focus-visible{outline-offset:-4px}
.scatter-drag-ghost{position:fixed;z-index:1000;pointer-events:none;transform:translate(-50%,-50%) scale(1.12);display:grid;place-items:center;width:48px;height:48px;border:2px solid #9474b1;border-radius:13px;background:#fff8ed;color:#513b69;font:800 26px/1 Nunito,Verdana,sans-serif;box-shadow:0 8px 20px #44345333}
@media(max-width:700px){.lesson-scatter .lesson-sheet{padding:14px}.scatter-grid{gap:13px}.scatter-card{padding:12px 12px 18px}.scatter-picture{height:210px}.scatter-picture>img{width:105px;height:105px}.scatter-letter{font-size:22px}.scatter-slot{font-size:20px}}
@media(max-width:520px){.scatter-grid{grid-template-columns:1fr}.scatter-picture{height:220px;max-width:280px}.scatter-picture>img{width:126px;height:126px}.scatter-card{padding:12px 18px 20px}.scatter-slot{min-height:46px}}
/* Level 8: a toy-restoration workshop with draggable syllable cushions. */
.lesson-atelier{max-width:1280px;--lesson-lead:850px}.lesson-atelier .lesson-sheet{padding:0;background:#fffdf8;border:1px solid #e1d8e9;border-radius:30px;overflow:hidden;box-shadow:0 7px 0 #e7dfee}
.atelier-workshop{display:grid;grid-template-columns:1fr}
.atelier-stage{position:relative;min-width:0;min-height:360px;overflow:hidden;isolation:isolate;background:#f8efdf;border-bottom:1px solid #e7dfd7}
.atelier-room-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;opacity:.88;z-index:-2}
.atelier-stage:after{content:'';position:absolute;inset:0;background:linear-gradient(#fff7eb33,transparent 40%,#fff9edaa);z-index:-1;pointer-events:none}
.atelier-stage-tag{position:absolute;top:20px;left:20px;border:1px solid #e2d2bb;background:#fffdf3d9;color:#79654f;border-radius:99px;padding:7px 13px;font-size:12px;font-weight:800}

.atelier-friend{position:absolute;left:50%;top:50%;transform:translate(-50%,-43%);width:225px;height:225px;object-fit:contain;filter:grayscale(var(--toy-gray)) drop-shadow(0 9px 5px #755a4122);opacity:var(--toy-opacity);transition:filter .45s,opacity .45s}
.atelier-stage-message{position:absolute;bottom:22px;left:18px;right:18px;text-align:center;color:#70614b;font-size:15px;font-weight:900;line-height:1.5;background:#fffaf1df;border:1px solid #f3e6d6;padding:10px;border-radius:13px}
.atelier-complete .atelier-stage-message{background:#e5f3dded;border-color:#c8dfba;color:#35623f}
.atelier-work{width:100%;max-width:900px;margin:0 auto;padding:26px 28px;align-self:center;min-width:0;text-align:center}.atelier-tag{font-size:10px;line-height:1.5;font-weight:900;letter-spacing:.13em;color:#8c759a;margin:0 0 14px}
.atelier-color-meter{display:flex;gap:7px;max-width:360px;margin:0 auto 22px}.atelier-color-meter i{height:8px;flex:1;border-radius:5px;background:#ece6ef}.atelier-color-meter i.restored{background:linear-gradient(90deg,#ad94c9,#90bea3)}
.atelier-slots{display:grid;grid-template-columns:repeat(var(--parts),minmax(0,1fr));gap:8px;width:100%;max-width:calc(var(--parts) * 134px);margin:0 auto 25px}
.atelier-slot{min-width:0;height:96px;min-height:96px;border:2px dashed #c6b8d1;border-radius:17px;background:#f8f3fc;box-shadow:inset 0 2px 4px #9475ad09;padding:10px 4px;font-size:calc(var(--reading) + 6px);font-weight:900;line-height:1.3;overflow-wrap:anywhere;color:#9a8aa7}
.atelier-slot.joined{border:2px solid #9dc2a4;background:#e6f2e5;color:#335d40;box-shadow:0 3px 0 #c7ddc7}.atelier-slot.drag-over{border-color:#9e7bb8;background:#ebdef6;box-shadow:inset 0 0 0 2px #baa0d0}
.atelier-bank-title{font-size:15px;line-height:1.5;color:#6b6175;font-weight:800;letter-spacing:0;margin:0 0 16px}.atelier-pieces{display:flex;gap:13px;flex-wrap:wrap;align-items:center;justify-content:center;min-height:102px}
/* Painted transparent fabric cushions; syllables remain live, accessible text. */
.atelier-piece{--cushion-image:url('../scene/squishies/lessons/cushion-rose.png');position:relative;min-width:106px;min-height:86px;border:0;border-radius:22px;background:var(--cushion-image) center/100% 100% no-repeat;box-shadow:none;padding:26px 28px;font-size:calc(var(--reading) + 4px);font-weight:900;line-height:1.2;color:#583c54;touch-action:none;user-select:none;cursor:grab;filter:drop-shadow(0 4px 3px #6a4b621a);transition:filter .15s,transform .15s}
.atelier-piece:nth-child(3n+2){--cushion-image:url('../scene/squishies/lessons/cushion-mint.png');color:#345b48}
.atelier-piece:nth-child(3n){--cushion-image:url('../scene/squishies/lessons/cushion-lavender.png');color:#54416d}
.atelier-piece:before,.atelier-piece:after{content:none}
.atelier-piece:hover:not(:disabled){transform:translateY(-3px);filter:drop-shadow(0 7px 5px #6a4b6226)}
.atelier-piece.selected{outline:3px solid #a88bbe;outline-offset:0;filter:drop-shadow(0 5px 5px #9672b147)}.atelier-piece.placed{visibility:hidden}.atelier-piece:active{cursor:grabbing}
.atelier-slot.joined{height:96px;min-height:96px;border:0;border-radius:20px;background:var(--cushion-image) center/100% 100% no-repeat;box-shadow:none;color:#3f4e42;padding:24px 13px;filter:drop-shadow(0 3px 2px #6a4b6215)}
.atelier-cushion-ghost{min-width:106px;width:auto;min-height:86px;height:auto;padding:26px 28px;border:0;border-radius:22px;background:var(--cushion-image) center/100% 100% no-repeat;box-shadow:none;color:#493d60;filter:drop-shadow(0 8px 5px #6a4b6240);font-size:24px}
.atelier-spark{position:absolute;color:#d0a248;font-size:36px;pointer-events:none}.atelier-spark.spark-left{left:18%;top:35%;transform:rotate(-15deg)}.atelier-spark.spark-right{right:17%;top:56%;color:#ab82bc}
.lesson-atelier .lesson-feedback{display:grid;place-items:center;margin:0;padding:10px 20px;height:calc(var(--reading) * 4.8 + 24px);min-height:0;background:#fffdf8}
.scatter-drag-ghost{width:auto;min-width:48px;padding:0 12px}
@media(max-width:850px){.atelier-stage{min-height:330px}.atelier-work{padding:25px 20px}.atelier-slot{min-height:96px;font-size:calc(var(--reading) + 3px)}.atelier-pieces{gap:12px}.atelier-piece{padding:24px 22px;min-width:92px;min-height:80px}.atelier-friend{width:175px;height:175px}}
@media(max-width:640px){.atelier-workshop{grid-template-columns:1fr}.atelier-stage{min-height:280px;border-right:0;border-bottom:1px solid #e7dfd7}.atelier-room-art{object-position:center 55%}.atelier-stage-tag{top:14px;left:14px;font-size:11px}.atelier-friend{width:155px;height:155px;transform:translate(-50%,-45%)}.atelier-stage-message{bottom:14px;font-size:13px;left:14px;right:14px;padding:8px}.atelier-work{padding:23px 20px}.atelier-color-meter{margin-bottom:20px}.atelier-slots{margin-bottom:23px}.atelier-piece{min-height:78px;padding:23px 22px;min-width:90px}.lesson-atelier .lesson-feedback{padding:0 16px 14px}}
@media(prefers-reduced-motion:reduce){.atelier-friend{transition:none}}
.calm .atelier-friend{transition:none}

@media(prefers-reduced-motion:reduce){.atelier-piece{transition:none}}
.calm .atelier-piece{transition:none}
/* Both drag/drop and select-then-place expose the same empty destinations. */
.atelier-placement-hint{font-size:14px;line-height:1.6;margin:-8px 0 16px;min-height:24px}
.atelier-workshop:is(.has-selected-cushion,.is-dragging) .atelier-slot:not(:disabled){border-color:#9a7ab7;background:#efe5f9;color:#78598e;box-shadow:0 0 0 3px #b8a0cb20;cursor:pointer}
.atelier-workshop:is(.has-selected-cushion,.is-dragging) .atelier-slot:not(:disabled):hover,.atelier-workshop .atelier-slot.drag-over{border-style:solid;border-color:#8361a2;background:#e2d2ef;box-shadow:0 0 0 4px #b8a0cb38}
/* Level 9: picture-guided sentences with one small decision at a time. */
.lesson-sentence{max-width:1150px;--lesson-lead:780px}.lesson-sentence .lesson-sheet{padding:0;background:#fffdf8;border:1px solid #dfd9e6;border-radius:30px;overflow:hidden;box-shadow:0 6px 0 #e7dfeb}
.sentence-illustration{position:relative;min-width:0;height:340px;background:#fff5e8;border-bottom:1px solid #ede0d0;overflow:hidden}
.sentence-illustration>img{display:block;width:100%;height:100%;object-fit:contain}
.sentence-scene-tag{position:absolute;z-index:1;top:17px;left:19px;padding:8px 14px;border:1px solid #e5d9c6;border-radius:99px;background:#fffdf4e8;color:#796751;font-size:12px;font-weight:800}
.sentence-work{max-width:850px;width:100%;margin:auto;padding:24px 28px 10px}
.sentence-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;list-style:none;padding:0;margin:0}
.sentence-slot{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:11px;min-width:0;height:104px;padding:10px;border:2px dashed #d6c8e1;border-radius:18px;background:#faf5fd;color:#a396ad;text-align:center}
.sentence-slot-label{font-size:18px;line-height:1.3;font-weight:800;color:#8e7d9c}.sentence-slot>b{font-size:calc(var(--reading) + 3px);font-weight:900;line-height:1.3;overflow-wrap:anywhere;max-width:100%}
.sentence-slot.current{border-color:#ac8dc2;background:#f0e6f8;box-shadow:0 0 0 3px #e2d5eb44}.sentence-slot.current .sentence-slot-label{color:#72518b}
.sentence-slot.filled{border:2px solid #bad3b0;background:#edf5e5;color:#365b3d}.sentence-slot.filled .sentence-slot-label{color:#6c8763}
.sentence-question{height:90px;display:flex;align-items:center;justify-content:center;text-align:center;gap:0;flex-wrap:wrap;align-content:center;white-space:pre-wrap;font-size:calc(var(--reading) + 3px);line-height:1.5;font-weight:800;color:#4d7050}
.sentence-question .instruction-word{margin-right:0}.sentence-question-text{max-width:100%}.sentence-question>b{font-size:inherit}
.sentence-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;max-width:620px;margin:0 auto}
.sentence-choice{min-width:0;height:70px;border:2px solid #d8c7e3;border-radius:19px;background:linear-gradient(#fffafd,#f0e5f6);box-shadow:0 4px 0 #dcccdf;padding:12px;font-size:calc(var(--reading) + 3px);font-weight:900;line-height:1.3;color:#5b436d;overflow-wrap:anywhere}
.sentence-choice:nth-child(even){border-color:#c8d9bc;background:linear-gradient(#fafcf6,#e9f0e0);box-shadow:0 4px 0 #cfdbbf;color:#466339}
.sentence-choice:hover{outline:2px solid #b59ac8;outline-offset:2px}.sentence-options.answered{visibility:hidden}
.lesson-sentence .lesson-feedback{display:grid;place-items:center;margin:0;padding:10px 20px;height:calc(var(--reading) * 4.8 + 24px);min-height:0;background:#fffdf8}
@media(max-width:700px){.sentence-illustration{height:290px}.sentence-work{padding:20px 16px 8px}.sentence-slots{gap:9px}.sentence-slot{padding:9px 6px}.sentence-slot>b{font-size:var(--reading)}.sentence-slot-label{font-size:16px}.sentence-choice{font-size:var(--reading)}}
@media(max-width:420px){.sentence-illustration{height:245px}.sentence-scene-tag{top:12px;left:12px;font-size:10px;padding:6px 10px}.sentence-work{padding:18px 12px 5px}.sentence-slots{gap:6px}.sentence-slot{height:calc(var(--reading) * 5 + 34px);border-radius:14px;padding:9px 4px;gap:9px}.sentence-slot-label{font-size:15px;min-height:39px;display:flex;align-items:center}.sentence-slot>b{font-size:calc(var(--reading) - 1px)}.sentence-options{gap:10px}.sentence-choice{height:calc(var(--reading) * 3 + 28px);padding:9px 6px}.sentence-question{height:calc(var(--reading) * 4.8 + 18px);font-size:var(--reading)}}

/* Level 11 keeps the original hidden-word activity with a clearer worksheet. */
.lesson-hidden:has(.name-search){max-width:1200px;--lesson-lead:800px}
.lesson-hidden:has(.name-search) .lesson-sheet{padding:0;background:#fffdf8;border-color:#ded7e7;overflow:hidden}
.name-search{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr)}
.name-search-friend{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px;background:radial-gradient(ellipse,#fffdf3 15%,#f2e7f4 75%);border-right:1px solid #e7dce9}
.name-search-tag{font-size:16px;font-weight:800;color:#725c82;text-align:center}
.name-search-friend img{width:min(100%,220px);height:220px;object-fit:contain;filter:drop-shadow(0 12px 10px #846f8a20)}
.name-search-friend figcaption{border-radius:16px;padding:10px 20px;background:#fffdf9;border:1px solid #e5d7ed;color:#5b466c;font-size:calc(var(--reading) + 4px);font-weight:900;letter-spacing:.06em}
.name-search-work{padding:30px 24px;min-width:0;align-self:center}
.name-search-title{margin:0 0 10px;font-size:calc(var(--reading) + 4px);text-align:center;color:#5b466c}
.name-search-guide{font-size:var(--reading);line-height:1.5;text-align:center;color:#72647c;margin:0 0 22px}
.name-search-scroll{max-width:100%;overflow-x:auto;padding:8px 5px 14px;border-radius:16px;scrollbar-color:#b7a2c7 #f3edf6}
.name-search-scroll:focus-visible{outline:3px solid #8051b6;outline-offset:2px}
.name-search-ribbon{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:8px;width:100%;max-width:600px;margin:auto}
.name-search-letter{flex:0 0 48px;min-width:48px;min-height:64px;padding:8px 4px;border:2px solid #d8c8e2;border-radius:13px;background:#fcf7ff;box-shadow:0 4px 0 #e6dcec;color:#624974;font-size:calc(var(--reading) + 7px);font-weight:900}
.name-search-letter.selected::after{content:'•';display:block;font-size:15px;line-height:10px}.name-search-letter.joined::after{content:'✓'}
.name-search-answer{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:100px;margin:18px 0 0;padding:12px;border:1px dashed #d6c8df;border-radius:18px;background:#faf6fc;text-align:center}
.name-search-answer span{font-size:16px;color:#75617f;font-weight:800}.name-search-answer strong{font-size:calc(var(--reading) + 5px);letter-spacing:.07em;overflow-wrap:anywhere;max-width:100%;color:#516c54}
.lesson-hidden:has(.name-search) .lesson-feedback{padding:0 20px 12px}
@media(max-width:700px){.name-search{grid-template-columns:1fr}.name-search-friend{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px 16px;padding:18px;border-right:0;border-bottom:1px solid #e7dce9}.name-search-friend img{grid-row:1/3;width:100px;height:100px}.name-search-tag{grid-column:2}.name-search-friend figcaption{grid-column:2;text-align:center;padding:8px}.name-search-work{padding:22px 12px}.name-search-guide{margin-bottom:12px}.name-search-letter{min-height:60px}.name-search-answer{margin-top:12px}}

/* Each step of level 18 builds three pictured names in train cars. */
.lesson-domino .lesson-sheet:has(.syllable-train){background:linear-gradient(145deg,#f4f8ef,#f7effa);border-color:#d7cfdf}
.train-heading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin:0 0 24px;text-align:center}
.train-illustration{display:block;width:min(100%,560px);height:180px;object-fit:contain;flex-shrink:0}.train-heading h2{font-size:calc(var(--reading) + 6px);margin:0 0 8px;color:#634b73}.train-heading p{font-size:16px;margin:0;color:#6a7569;font-weight:800}
.train-cars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;margin:0;padding:0 0 22px;border-bottom:5px double #b3bcae}
.train-car{position:relative;min-width:0;border:2px solid #d8d0df;border-radius:22px;background:#fffdf9;padding:16px 12px 22px;text-align:center;box-shadow:0 6px 0 #e1d9e7}
.train-car::before,.train-car::after{content:'';position:absolute;bottom:-12px;width:19px;height:19px;border:4px solid #a18aa9;background:#f5eef8;border-radius:50%}.train-car::before{left:20px}.train-car::after{right:20px}
.train-car.current{border-color:#a58ab9;background:#faf4ff}.train-car.complete{border-color:#8eb69b;background:#edf7ec}
.train-car-label{font-size:15px;font-weight:800;color:#776182}.train-car img{display:block;width:100%;height:150px;object-fit:contain;margin:8px auto}
.train-word{display:flex;justify-content:center;gap:6px;min-width:0}.train-part{display:grid;place-items:center;flex:1;min-width:44px;white-space:nowrap;min-height:56px;border:2px dashed #d4c7de;border-radius:12px;background:#fffdf9;font-size:var(--reading);font-weight:900;overflow-wrap:anywhere;padding:6px 2px;color:#a894b6}.train-part.filled{background:#dceede;border:2px solid #a1c5a7;color:#345941}.train-part.current{border-color:#9877af;background:#f0e1fa;color:#77568d}
.train-question{margin:26px 0 18px;text-align:center;font-size:var(--reading);color:#614d70;line-height:1.5}
.train-bank{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:650px;margin:auto}
.train-piece{min-width:0;min-height:62px;padding:10px 6px;border:2px solid #ceb9dc;border-radius:17px;background:#fffcff;box-shadow:0 4px 0 #e1d2e9;font-size:calc(var(--reading) + 3px);font-weight:900;color:#654775;overflow-wrap:anywhere}
@media(max-width:850px){.train-heading{gap:10px}.train-illustration{width:min(100%,420px);height:120px}.train-heading h2{font-size:calc(var(--reading) + 2px)}.train-cars{grid-template-columns:1fr;gap:24px;max-width:380px;margin:auto}.train-car{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px 12px;padding:12px 12px 18px}.train-car img{grid-column:1;grid-row:1;width:64px;height:64px;margin:0}.train-car-label{grid-column:2;align-self:center}.train-word{grid-column:1/-1}.train-bank{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.train-part{font-size:var(--reading)}}

/* Level 19: gradual reading practice in a calm three-part post office. */
.lesson-post{max-width:1050px;--lesson-lead:820px}.lesson-post .lesson-sheet{background:linear-gradient(145deg,#fffaf2,#f4eff9);border-color:#dfd3e7;padding:26px}
.post-header{display:flex;align-items:center;justify-content:center;gap:14px;text-align:center}.post-header h2{margin:0;font-size:calc(var(--reading) + 5px);color:#654e75}.post-emblem{display:block;width:110px;height:88px;object-fit:contain;flex-shrink:0}
.post-stamps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;max-width:380px;margin:22px auto;gap:12px}.post-stamps li{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:96px;padding:8px;border:1px dashed #cfbed8;background:#fffcf9;border-radius:16px;color:#9a86a6}.post-stamps img{display:block;width:min(100%,84px);height:60px;object-fit:contain}.post-stamps b{font-size:14px;line-height:1.3}.post-delivery-check{position:absolute;top:4px;right:5px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#5d8b66;color:white;font-size:14px}.post-stamps .current{border:2px solid #9c7ab3;background:#f2e5fc;color:#705184}.post-stamps .delivered{border:1px solid #9dc1a7;background:#e6f1e5;color:#497453}
.post-parcel{display:flex;align-items:center;justify-content:center;gap:26px;padding:20px 26px;border:2px solid #decda9;border-radius:24px;background:linear-gradient(135deg,#fdf4dd,#f7e6c8);max-width:680px;margin:auto;min-width:0}.post-parcel>img{display:block;width:150px;height:150px;object-fit:contain;flex-shrink:0}.post-parcel-label{display:grid;place-items:center;min-width:0;padding:18px;border-radius:16px;background:#fffdf7;border:1px solid #dbcca9;flex:1;min-height:90px}.post-label-placeholder{font-size:42px;color:#b4a181;font-weight:900}
.post-question{text-align:center;font-size:calc(var(--reading) + 2px);line-height:1.5;margin:24px 0 18px;color:#634f72}.post-word-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:740px;margin:auto}.post-choice{min-width:0;min-height:64px;border:2px solid #cab6d8;border-radius:17px;background:#fffcff;box-shadow:0 4px 0 #dfd0e7;padding:12px 6px;font-size:calc(var(--reading) + 3px);font-weight:800;color:#604573;overflow-wrap:anywhere}
.post-letter-slots{display:flex;gap:5px;justify-content:center;width:100%}.post-letter-slots>span{display:grid;place-items:center;flex:0 1 48px;min-width:0;min-height:52px;border-bottom:3px solid #d3c3dc;font-size:calc(var(--reading) + 4px);font-weight:900;color:#a28aad}.post-letter-slots>.filled{color:#3c684a;border-color:#9cbea3}.post-letter-slots>.current{border:2px dashed #ab87c0;border-radius:9px;background:#f2e6fb}.post-letter-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:620px;margin:auto}.post-letter-bank .post-choice{min-width:58px;min-height:60px;padding:8px}
.post-hint{max-width:680px;margin:20px auto 0;text-align:center;font-size:var(--reading);line-height:1.6}.post-hint summary{cursor:pointer;min-height:44px;padding:8px;color:#736180;font-size:16px}.post-hint p{font-weight:800;letter-spacing:.08em;color:#5b446e;margin:8px}
.post-note{padding:26px 32px;border:1px solid #e0cfaa;border-radius:20px;background:#fffdf3;box-shadow:0 5px 0 #e8dfca;max-width:740px;margin:auto}.post-note p{font-size:calc(var(--reading) + 3px);line-height:1.8;margin:0;color:#354c3d}.post-pictures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:740px;margin:auto}.post-picture{min-width:0;padding:12px 6px;border:2px solid #d4c5df;border-radius:22px;background:#fffcf7;box-shadow:0 4px 0 #e2d7e8;font-size:var(--reading);font-weight:800}.post-picture img{display:block;width:100%;height:130px;object-fit:contain;margin:auto}.post-picture span{display:block;margin-top:8px;overflow-wrap:anywhere}
.post-delivered{text-align:center;padding:24px 12px}.post-delivered>span{display:grid;place-items:center;margin:auto;width:72px;height:72px;border-radius:50%;background:#dceede;color:#3b704a;font-size:38px}.post-delivered h3{font-size:calc(var(--reading) + 5px);color:#4c7353}.post-delivered p{font-size:var(--reading)}.post-finished-words{display:flex;justify-content:center;flex-wrap:wrap;gap:14px}.post-finished-words strong{padding:10px 16px;border:1px solid #b7d2b5;border-radius:14px;background:#edf5e7;font-size:var(--reading)}
@media(max-width:650px){.lesson-post{padding:22px 14px}.lesson-post .lesson-sheet{padding:20px 12px}.post-header{gap:10px}.post-header h2{font-size:calc(var(--reading) + 2px)}.post-emblem{width:76px;height:64px}.post-stamps{gap:8px}.post-stamps li{padding:7px 5px;min-height:88px}.post-stamps img{height:54px}.post-parcel{flex-direction:column;gap:14px;padding:16px 12px}.post-parcel>img{width:120px;height:120px}.post-parcel-label{width:100%;padding:12px;min-height:76px}.post-word-choices{grid-template-columns:1fr;gap:12px}.post-choice{font-size:calc(var(--reading) + 2px)}.post-letter-bank{gap:9px}.post-letter-bank .post-choice{min-width:52px}.post-note{padding:20px 16px}.post-note p{font-size:var(--reading)}.post-pictures{gap:7px}.post-picture{font-size:calc(var(--reading) - 1px);padding:8px 3px}.post-picture img{height:90px}.post-letter-slots>span{font-size:calc(var(--reading) + 2px)}}

/* Level 20: an illustrated picnic and nine reading clues. */
.lesson-picnic{max-width:1330px;--lesson-lead:780px}
.lesson-picnic .lesson-heading{margin-bottom:14px}
.lesson-picnic .lesson-sheet{padding:18px;background:#fbf8ed;border-color:#d5dfcb;box-shadow:0 7px 0 #d8e3cc}
.lesson-picnic .lesson-steps .active,.lesson-picnic .lesson-steps .finished{background:#597d61;border-color:#597d61}
.picnic-adventure{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:24px;align-items:start}
.picnic-scene{position:relative;aspect-ratio:900/680;background:#dcece4 url('../scene/squishies/picnic/meadow.svg') center/cover;border:2px solid #c7d4bb;border-radius:24px;overflow:hidden;margin-top:2px}
.picnic-scene-title{position:absolute;top:20%;left:18%;right:10%;text-align:center}
.picnic-scene-title span{display:inline-block;max-width:100%;padding:8px 16px;border:1px solid #d6d7bf;border-radius:14px;background:#fff9e9e8;color:#4a6551;font-size:calc(var(--reading) - 2px);font-weight:900;line-height:1.4;overflow-wrap:anywhere}
.picnic-friend{position:absolute;object-fit:contain;height:auto;filter:drop-shadow(0 5px 2px #7a906122)}
.picnic-bunny{left:8%;bottom:14%;width:26%;transform:rotate(-7deg)}
.picnic-cat{right:6%;bottom:16%;width:28%;transform:rotate(7deg)}
.picnic-basket-items{position:absolute;left:34%;right:37%;bottom:32%;display:flex;align-items:end;justify-content:center;gap:1px;height:20%}
.picnic-basket-slot{display:grid;place-items:center;width:34%;aspect-ratio:1;border:1px dashed #a8906b;border-radius:50%;background:#fff7e6ba;color:#78684f;font-size:14px;font-weight:800}
.picnic-basket-slot.filled{border:0;background:none;transform:rotate(-9deg)}
.picnic-basket-slot.filled:nth-child(2){transform:translateY(-20%) rotate(4deg)}
.picnic-basket-slot img{width:145%;max-width:none;height:auto;object-fit:contain;filter:drop-shadow(0 3px 1px #7d67463d)}
.picnic-basket-count{position:absolute;bottom:3%;left:10%;right:10%;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:calc(var(--reading) - 5px);font-weight:800;line-height:1.3;color:#4c6043}
.picnic-basket-count b{padding:4px 12px;background:#fff9e7;border:1px solid #c6c8a6;border-radius:20px;white-space:nowrap}
.picnic-work{min-width:0}
.picnic-clue{position:relative;background:#fffdf5;border:2px solid #e4d7b8;border-radius:20px;padding:14px 20px 18px;box-shadow:0 4px 0 #eadfc72e}
.picnic-clue-top{display:flex;gap:10px;align-items:center;color:#766549;font-size:14px;font-weight:900;letter-spacing:.03em}
.picnic-clue-top img{width:48px;height:42px;object-fit:contain}
.picnic-clue p{margin:4px 0 0;line-height:1.65;font-size:calc(var(--reading) + 11px);font-weight:800;color:#3c5144;overflow-wrap:anywhere}
.picnic-find-label{margin:16px 0 10px;font-size:15px;font-weight:800;color:#66755b;line-height:1.4}
.picnic-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.picnic-choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;padding:5px 7px 9px;border:2px solid #d5ddcc;border-radius:20px;background:#f0f3e7;box-shadow:0 3px 0 #d3ddc7;color:#3f5545;font-family:inherit;transition:transform .15s,border-color .15s}
.picnic-choice:nth-child(3n+2){background:#f5eae2;border-color:#e3d2c5;box-shadow:0 3px 0 #e3d2c5}
.picnic-choice:nth-child(3n){background:#eeeaf3;border-color:#dad0e2;box-shadow:0 3px 0 #dad0e2}
.picnic-choice img{display:block;width:100%;height:clamp(74px,9vw,120px);object-fit:contain;pointer-events:none}
.picnic-item-name{font-size:calc(var(--reading) - 4px);font-weight:800;line-height:1.3;overflow-wrap:anywhere;max-width:100%}
.picnic-choice:hover:not(:disabled){transform:translateY(-3px)}
.picnic-choice.packed{background:#e0ecda;border-color:#8ca97e;box-shadow:0 3px 0 #b8cfa9}
.picnic-choice.packed img{opacity:.55}
.picnic-item-check{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#557d56;color:white;font-size:17px;font-weight:900}
.picnic-hint{margin-top:14px;color:#657256;font-size:15px}
.picnic-hint summary{cursor:pointer;min-height:44px;align-content:center;width:fit-content;max-width:100%;padding:4px 0}
.picnic-hint p{margin:2px 0 10px;font-size:var(--reading);font-weight:800}
.picnic-ready{color:#476941;font-size:var(--reading);font-weight:800;line-height:1.5}
.lesson-picnic .lesson-feedback{margin-top:16px;min-height:30px}
@media(min-width:901px){.picnic-scene{position:sticky;top:16px}}
@media(max-width:900px){.picnic-adventure{grid-template-columns:minmax(0,1fr);gap:18px}.picnic-scene{width:min(470px,100%);margin:0 auto;aspect-ratio:900/620}.picnic-choice img{height:115px}.picnic-scene-title{top:15%}.picnic-basket-items{bottom:31%}}
@media(max-width:480px){.lesson-picnic{padding:20px 12px}.lesson-picnic .lesson-sheet{padding:10px;border-radius:22px}.picnic-scene{border-radius:17px}.picnic-scene-title{top:16%;left:16%;right:8%}.picnic-scene-title span{font-size:17px;padding:5px 10px}.picnic-basket-count{font-size:14px;bottom:2%;gap:6px}.picnic-clue{padding:10px 13px 14px}.picnic-clue p{font-size:calc(var(--reading) + 9px)}.picnic-choice-grid{gap:8px}.picnic-choice{padding:4px 4px 8px;border-radius:15px}.picnic-choice img{height:78px}.picnic-item-name{font-size:calc(var(--reading) - 5px)}.picnic-find-label{margin-top:12px}.picnic-clue-top img{height:36px}}
@media(prefers-reduced-motion:reduce){.picnic-choice{transition:none}.picnic-choice:hover:not(:disabled){transform:none}}
body.calm .picnic-choice{transition:none}body.calm .picnic-choice:hover:not(:disabled){transform:none}

/* Level 21: a storybook movie, comprehension and caption building. */
.lesson-comic{max-width:1370px;--lesson-lead:850px}
.lesson-comic .lesson-sheet{padding:22px;background:#f9f5eb;border-color:#dcd2bb;box-shadow:0 7px 0 #ded7c6}
.lesson-comic .lesson-heading{margin-bottom:16px}
.lesson-comic .lesson-steps .active,.lesson-comic .lesson-steps .finished{background:#71647f;border-color:#71647f}
.comic-studio-heading{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 24px;color:#7b6a52;font-size:14px;font-weight:900;letter-spacing:.05em;text-align:center;line-height:1.5}
.comic-studio-icon{display:flex;gap:4px;align-items:end;width:30px;height:24px;flex-shrink:0}
.comic-studio-icon i{display:block;width:7px;height:16px;border-radius:4px;background:#c5b0cd;transform:rotate(-15deg)}
.comic-studio-icon i:nth-child(2){height:24px;background:#b4cbb6}.comic-studio-icon i:nth-child(3){height:20px;background:#e5bd8f;transform:rotate(15deg)}
.comic-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr);gap:28px;align-items:start}
.comic-picture-panel,.comic-work{min-width:0}
.comic-screen{padding:14px;border-radius:24px;background:#3d584f;box-shadow:0 7px 0 #263f3733;border:1px solid #304a40}
.comic-screen-label{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px;color:#fff4d9;font-size:13px;font-weight:800;line-height:1.4}
.comic-screen-label>span:last-child{margin-left:auto;font-size:12px;color:#d5e2cf}
.comic-record-dot{display:block;width:8px;height:8px;background:#f0c28f;border-radius:50%;flex-shrink:0}
.comic-art{margin:0;border-radius:14px;overflow:hidden;background:#e6dcc4;border:2px solid #e7dfca}
.comic-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.comic-subtitle{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;padding:16px 10px;margin-top:12px;min-height:76px;border:1px solid #e5dac2;border-radius:13px;background:#fffaec}
.comic-subtitle>span{display:block;max-width:100%;overflow-wrap:anywhere;border-bottom:2px dashed #d1c2a9;color:#918372;font-size:15px;font-weight:800;line-height:1.5;padding:2px 5px}
.comic-subtitle>span.filled{border-bottom-color:#b0c5a8;color:#3d6043;font-size:calc(var(--reading) + 6px)}
.comic-subtitle>span.current{border-bottom-color:#9a7bab;color:#795a8b;background:#f2e9f5;border-radius:5px}
.comic-task-steps{display:flex;align-items:center;gap:8px;margin:2px 0 12px}
.comic-task-steps>span{display:grid;place-items:center;width:29px;height:29px;border:1px solid #d8cddf;background:#f2edf4;border-radius:50%;color:#84758c;font-size:13px;font-weight:900}
.comic-task-steps>i{height:2px;width:25px;background:#ddd2e1}.comic-task-steps>.active{background:#7d6889;border-color:#7d6889;color:white}.comic-task-steps>.complete{background:#d7e8d5;border-color:#aec6a8;color:#4a714b}
.comic-work h2{font-size:calc(var(--reading) + 5px);font-weight:900;line-height:1.4;margin:0 0 18px;color:#61536f;overflow-wrap:anywhere}
.comic-work h2:focus{outline:none}.comic-work h2:focus-visible{outline:3px solid #b49bc2;outline-offset:4px;border-radius:6px}
.comic-caption-choices{display:grid;gap:12px}
.comic-caption-choice{display:flex;align-items:center;gap:14px;width:100%;border:2px solid #dbcfdf;border-radius:18px;padding:14px 16px;background:#fffdf7;box-shadow:0 4px 0 #e4dce6;color:#3e5547;text-align:left;font-family:inherit;line-height:1.55;font-size:calc(var(--reading) + 11px);font-weight:800;min-width:0;overflow-wrap:anywhere}
.comic-caption-choice>span:last-child{min-width:0}
.comic-choice-marker{display:grid;place-items:center;flex:0 0 29px;height:29px;border-radius:50%;background:#eee6f2;color:#876c97;font-size:13px}
.comic-caption-choice:hover:not(:disabled){background:#f6eff9;border-color:#b79bc6}
.comic-prompt{margin:0 0 16px;font-size:calc(var(--reading) + 8px);font-weight:900;color:#54735c;line-height:1.5}
.comic-word-bank{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.comic-word{flex:1 1 auto;max-width:100%;padding:12px 16px;border:2px solid #d3c3df;border-radius:16px;background:#fffdfb;box-shadow:0 4px 0 #e1d3e8;font-family:inherit;font-size:calc(var(--reading) + 11px);font-weight:800;line-height:1.5;color:#674e78;overflow-wrap:anywhere;min-width:0}
.comic-word:nth-child(even){border-color:#bfd2b7;background:#f3f7ed;box-shadow:0 4px 0 #d7e2cf;color:#4b6a47}
.comic-word.used{opacity:.45;text-decoration:line-through;box-shadow:none}
.comic-hint{margin:22px 0 0;color:#786583;font-size:15px}.comic-hint summary{min-height:44px;padding:8px 0;cursor:pointer;line-height:1.5}.comic-hint p{font-size:calc(var(--reading) + 9px);font-weight:800;line-height:1.6;margin:8px 0;overflow-wrap:anywhere}
.comic-success{padding:22px 18px;border:2px solid #bdd0b3;border-radius:20px;background:#eff5e7;color:#456341;text-align:center}
.comic-success>span{display:grid;place-items:center;width:55px;height:55px;margin:0 auto 12px;border-radius:50%;background:#739568;color:#fff;font-size:30px}
.comic-success p{font-size:16px;line-height:1.5;margin:0 0 12px}.comic-success strong{display:block;font-size:calc(var(--reading) + 11px);line-height:1.6;overflow-wrap:anywhere}
.comic-filmstrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;padding:20px 0 0;margin:24px 0 0;border-top:1px dashed #d3c6af;max-width:660px;margin-left:auto;margin-right:auto}
.comic-filmstrip li{padding:6px;border:2px solid #e1dacb;border-radius:14px;background:#efeadd;opacity:.65;min-width:0}
.comic-filmstrip li.current{border-color:#a88bb9;background:#e9def0;opacity:1;box-shadow:0 3px 0 #d5c4df}
.comic-filmstrip li.complete{border-color:#a8c39a;background:#e8efdf;opacity:1}
.comic-filmstrip img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:8px}
.comic-filmstrip span{display:block;text-align:center;padding:6px 2px 2px;font-size:13px;font-weight:900;line-height:1.4;color:#6b6557;overflow-wrap:anywhere}
@media(max-width:900px){.comic-layout{grid-template-columns:minmax(0,1fr);gap:26px}.comic-picture-panel{width:min(620px,100%);margin:auto}.comic-work{width:min(620px,100%);margin:auto}.comic-filmstrip{max-width:620px}}
@media(max-width:480px){.lesson-comic{padding:20px 12px}.lesson-comic .lesson-sheet{padding:12px 10px;border-radius:22px}.comic-studio-heading{font-size:12px;gap:8px;margin-bottom:16px}.comic-screen{padding:9px;border-radius:17px}.comic-screen-label{gap:5px;font-size:11px;margin-bottom:9px}.comic-screen-label>span:last-child{font-size:10px}.comic-subtitle{padding:10px 7px;gap:5px;min-height:64px}.comic-subtitle>span.filled{font-size:calc(var(--reading) + 5px)}.comic-work h2{font-size:calc(var(--reading) + 4px)}.comic-caption-choice{padding:12px 10px;gap:9px;font-size:calc(var(--reading) + 9px)}.comic-choice-marker{flex-basis:23px;height:23px;font-size:12px}.comic-word{padding:10px 12px;font-size:calc(var(--reading) + 9px)}.comic-filmstrip{gap:7px;margin-top:20px;padding-top:16px}.comic-filmstrip li{padding:4px;border-radius:10px}.comic-filmstrip span{font-size:11px}.comic-hint p,.comic-success strong{font-size:calc(var(--reading) + 9px)}}

/* Level 22: a toy machine with visible reading support and three activities. */
.lesson-shop{max-width:1370px;--lesson-lead:850px}
.lesson-shop .lesson-heading{margin-bottom:16px}
.lesson-shop .lesson-sheet{padding:22px;border-color:#d9cfe4;background:#fbf7ee;box-shadow:0 7px 0 #e0d7e5}
.lesson-shop .lesson-steps .active,.lesson-shop .lesson-steps .finished{background:#80669a;border-color:#80669a}
.shop-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr);gap:28px;align-items:start}
.shop-cabinet{border:3px solid #b5a0c9;border-radius:30px;background:linear-gradient(140deg,#e7daee,#d5e7e1);padding:16px;box-shadow:0 8px 0 #ab97bc33;min-width:0}
.shop-machine-top{display:flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:5px 6px 16px}
.shop-machine-top h2{margin:0;color:#655274;font-size:calc(var(--reading) + 2px);font-weight:900;line-height:1.4;text-align:center;overflow-wrap:anywhere}
.shop-lights{display:flex;gap:4px;flex-shrink:0}.shop-lights i{display:block;width:9px;height:9px;border-radius:50%;background:#b2c89e;box-shadow:inset 0 0 0 1px #fff8}.shop-lights i:nth-child(2){background:#e8bf91}.shop-lights i:nth-child(3){background:#c1a2d5}
.shop-display{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:#6b677a;padding:12px;border:2px solid #84778f;border-radius:20px;box-shadow:inset 0 3px 7px #3d334832}
.shop-toy{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:6px 5px 10px;border:2px solid #e1d7e4;border-radius:16px;background:radial-gradient(ellipse at 50% 80%,#d8d1e5,transparent 70%),#faf6fb;color:#615073;box-shadow:0 3px 0 #45404e55;line-height:1.35;font-family:inherit}
.shop-toy:nth-child(3n+2){background:radial-gradient(ellipse at 50% 80%,#ccdeda,transparent 70%),#f2f9f4}.shop-toy:nth-child(3n){background:radial-gradient(ellipse at 50% 80%,#ebd8c7,transparent 70%),#fffaef}
.shop-toy img{display:block;width:100%;height:clamp(90px,10vw,150px);object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 2px #76607818)}
.shop-toy-label{display:block;max-width:100%;padding:4px 0 0;font-size:calc(var(--reading) - 3px);font-weight:900;line-height:1.35;overflow-wrap:anywhere}
.shop-toy-label>span{display:grid;place-items:center;margin:auto;min-width:23px;height:23px;border-radius:8px;background:#eee5f3;color:#8a7798;font-size:12px}
.shop-display .shop-toy.collected{border-color:#86b78e;background:#edf6e6;box-shadow:0 3px 0 #739d7455}.shop-display .shop-toy.active-toy{border:3px solid #e8b44c;background:#fff5d5;outline:2px solid #ffdf87;outline-offset:2px}
.shop-toy-check{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#5f8d5a;color:#fff;font-size:16px;font-weight:900}
.shop-drawer{margin-top:16px;background:#fcf8ed;border:2px solid #b7a9c2;border-radius:12px 12px 20px 20px;padding:10px;text-align:center;min-height:88px}
.shop-drawer-handle{display:block;width:30%;height:5px;background:#9886a5;border-radius:20px;margin:0 auto 10px}
.shop-drawer p{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:0;color:#766080;font-size:14px;font-weight:800;line-height:1.4}.shop-drawer p b{padding:3px 12px;border:1px solid #d8cade;background:#f1e7f5;border-radius:20px;white-space:nowrap}
.shop-collected-strip{display:flex;justify-content:center;gap:4px;flex-wrap:wrap}.shop-collected-strip:empty{display:none}.shop-collected-strip img{width:52px;height:52px;object-fit:contain;margin-top:4px}
.shop-work{min-width:0;padding:6px 0}
.shop-eyebrow{margin:0 0 10px;font-size:13px;color:#8c739d;letter-spacing:.06em;font-weight:900;line-height:1.4}
.shop-work h2{margin:0 0 20px;font-size:calc(var(--reading) + 7px);font-weight:900;line-height:1.4;color:#665173;overflow-wrap:anywhere}.shop-work h2:focus{outline:none}.shop-work h2:focus-visible{outline:3px solid #b5a0c9;outline-offset:4px;border-radius:6px}
.shop-ticket{position:relative;padding:24px 20px;background:#fffaf0;border:2px dashed #ddc8a4;border-radius:18px;text-align:center;box-shadow:0 4px 0 #e9dfca66}
.shop-ticket>span{display:block;color:#9a7c58;font-size:14px;font-weight:800;line-height:1.5;margin-bottom:12px}
.shop-ticket>strong{display:block;font-size:calc(var(--reading) + 17px);font-weight:900;letter-spacing:.04em;line-height:1.5;color:#476955;overflow-wrap:anywhere}
.shop-next{margin:18px 0;font-size:calc(var(--reading) + 7px);font-weight:800;color:#5d735c;line-height:1.5;overflow-wrap:anywhere}
.shop-word-picture{display:block;width:180px;height:160px;object-fit:contain;margin:0 auto 12px;filter:drop-shadow(0 5px 3px #8a718b25)}
.shop-word-slots{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;min-width:0}
.shop-word-slots>span{display:grid;place-items:center;min-width:44px;max-width:100%;min-height:54px;padding:6px 10px;border:2px dashed #c4add3;border-radius:12px;background:#f9f0fc;font-size:calc(var(--reading) + 9px);font-weight:900;line-height:1.3;color:#ab91bb;overflow-wrap:anywhere}
.shop-word-slots>.filled{background:#e7f2df;border-style:solid;border-color:#a7c28f;color:#4d7042}.shop-word-slots>.current{border-color:#a286b6;background:#eee0f6}
.shop-parts-bank{display:flex;flex-wrap:wrap;gap:10px}
.shop-part{flex:1 1 auto;min-width:0;max-width:100%;padding:10px 14px;border:2px solid #c8b3d8;border-radius:15px;background:#fffbff;box-shadow:0 4px 0 #dfd0e8;color:#745087;font-size:calc(var(--reading) + 11px);font-weight:900;line-height:1.4;overflow-wrap:anywhere}
.shop-note{padding:20px;border:2px solid #e4d2ae;border-radius:20px;background:#fffbed;box-shadow:0 4px 0 #e9ddc633}
.shop-note p{margin:0;color:#435e4a;font-size:calc(var(--reading) + 11px);font-weight:800;line-height:1.65;overflow-wrap:anywhere}
.shop-gift-tray{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border-radius:20px;border:2px solid #d7c4df;background:repeating-linear-gradient(45deg,#ede1f3 0 12px,#f3eaf7 12px 24px)}
.shop-gift-place{display:grid;place-items:center;min-width:0;min-height:100px;border:2px dashed #b39bc2;background:#fffaf5ba;border-radius:14px}
.shop-gift-place>b{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#ede2f3;color:#987aa8;font-size:18px}
.shop-gift-place img{display:block;width:100%;height:110px;object-fit:contain}.shop-gift-place.filled{border:2px solid #a5bf91;background:#f5f7e8}
.shop-hint{margin-top:20px;font-size:15px;color:#82698e;line-height:1.5}.shop-hint summary{cursor:pointer;min-height:44px;padding:8px 0}.shop-hint img{display:block;width:120px;height:120px;object-fit:contain}.shop-hint p{margin:4px 0 8px;font-size:calc(var(--reading) + 9px);font-weight:900;overflow-wrap:anywhere}
.shop-success{padding:20px 14px;background:#eef5e6;border:2px solid #bbcea9;border-radius:22px;text-align:center;color:#4c6d43}.shop-success>span{display:grid;place-items:center;width:56px;height:56px;margin:auto;border-radius:50%;background:#7a9b6c;color:#fff;font-size:30px}.shop-success h3{font-size:calc(var(--reading) + 6px);line-height:1.4;margin:14px 0}.shop-success p{font-size:17px;line-height:1.5;margin:0 0 14px}
.shop-success-toys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shop-success-toys figure{margin:0;min-width:0}.shop-success-toys img{width:100%;height:80px;object-fit:contain}.shop-success-toys figcaption{font-size:calc(var(--reading) - 2px);font-weight:800;line-height:1.3;overflow-wrap:anywhere}
@media(min-width:901px){.shop-cabinet{position:sticky;top:16px}}
@media(max-width:900px){.shop-layout{grid-template-columns:minmax(0,1fr);gap:24px}.shop-cabinet,.shop-work{width:min(620px,100%);margin:auto}.shop-toy img{height:130px}}
@media(max-width:480px){.lesson-shop{padding:20px 12px}.lesson-shop .lesson-sheet{padding:12px 9px;border-radius:22px}.shop-cabinet{padding:10px;border-radius:22px}.shop-machine-top{gap:8px;min-height:48px;padding-bottom:12px}.shop-machine-top h2{font-size:calc(var(--reading) - 1px)}.shop-lights{gap:3px}.shop-lights i{width:7px;height:7px}.shop-display{gap:8px;padding:8px;border-radius:15px}.shop-toy{padding:4px 3px 7px;border-radius:12px}.shop-toy img{height:80px}.shop-toy-label{font-size:calc(var(--reading) - 4px)}.shop-drawer{padding:8px;margin-top:12px;min-height:76px}.shop-collected-strip img{width:40px;height:40px}.shop-work h2{font-size:calc(var(--reading) + 5px)}.shop-ticket{padding:18px 12px}.shop-ticket>strong{font-size:calc(var(--reading) + 15px)}.shop-next{font-size:calc(var(--reading) + 7px)}.shop-note{padding:14px}.shop-note p{font-size:calc(var(--reading) + 9px)}.shop-word-picture{height:130px;width:150px}.shop-part{font-size:calc(var(--reading) + 9px);padding:9px 12px}.shop-gift-place{min-height:85px}.shop-gift-place img{height:90px}.shop-success-toys figcaption{font-size:calc(var(--reading) - 4px)}}
/* Keep written requests beside the display while a phone user chooses toys. */
@media(max-width:900px){
 .shop-kind-labels .shop-work,.shop-kind-orders .shop-work{display:contents}
 .shop-kind-labels .shop-layout,.shop-kind-orders .shop-layout{gap:14px}
 .shop-kind-labels .shop-work>*,.shop-kind-orders .shop-work>*{width:min(620px,100%);margin-left:auto;margin-right:auto}
 .shop-kind-labels .shop-eyebrow,.shop-kind-orders .shop-eyebrow{order:0;margin-bottom:0}
 .shop-kind-labels #shopQuestion,.shop-kind-orders #shopQuestion{order:1;margin-bottom:4px}
 .shop-kind-labels .shop-ticket,.shop-kind-orders .shop-note{order:2;position:sticky;top:8px;z-index:3;box-shadow:0 5px 12px #88734c25}
 .shop-kind-labels .shop-next,.shop-kind-orders .shop-next{order:3;margin-top:2px;margin-bottom:4px}
 .shop-kind-labels .shop-cabinet,.shop-kind-orders .shop-cabinet{order:4}
 .shop-kind-orders .shop-gift-tray{order:5}
 .shop-kind-labels .shop-hint,.shop-kind-orders .shop-hint{order:6;margin-top:0}
 .shop-kind-labels .shop-success,.shop-kind-orders .shop-success{order:2}
 .shop-kind-parts .shop-work{grid-row:1}.shop-kind-parts .shop-cabinet{grid-row:2}
}

/* Level 23: read a spatial clue, arrange squishies, then caption the photo. */
.lesson-photo{max-width:1370px;--lesson-lead:850px}
.lesson-photo .lesson-heading{margin-bottom:16px}
.lesson-photo .lesson-sheet{padding:22px;background:#fbf7ef;border-color:#d8cde2;box-shadow:0 7px 0 #dfd6e5}
.lesson-photo .lesson-steps .active,.lesson-photo .lesson-steps .finished{background:#826997;border-color:#826997}
.photo-reading-card{position:sticky;top:8px;z-index:3;margin:0 0 22px;padding:14px 20px 18px;border:2px solid #dbc7a8;border-radius:20px;background:#fffaf0;box-shadow:0 5px 12px #88734c1a}
.photo-clue-count{font-size:13px;letter-spacing:.04em;font-weight:900;color:#937b5d;line-height:1.4}
.photo-reading-card p{margin:6px 0 0;color:#47654f;font-size:calc(var(--reading) + 11px);font-weight:900;line-height:1.55;overflow-wrap:anywhere}
.photo-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr);gap:26px;align-items:start}
.photo-scene-panel,.photo-work{min-width:0}
.photo-scene-panel{padding:12px;border:2px solid #b7a2c9;border-radius:24px;background:#e8def0;box-shadow:0 6px 0 #cabbda4d}
.photo-scene-title{font-size:17px;font-weight:900;color:#775e87;line-height:1.4;text-align:center;margin:1px 0 12px;overflow-wrap:anywhere}
.photo-stage{position:relative;isolation:isolate;aspect-ratio:3/2;overflow:hidden;border-radius:15px;border:2px solid #fff8f0;background:#f5ecde}
.photo-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;pointer-events:none}
.photo-stage .photo-slot{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:5px;border:2px dashed #b39fbf;border-radius:20px;background:#fffaf1c9;box-shadow:0 4px 0 #b49bc31a;color:#786486;font-family:inherit;line-height:1.3}
.photo-slot-number{display:grid;place-items:center;width:42px;height:42px;margin:auto;border-radius:50%;background:#f0e5f7;color:#b49bc3;font-size:24px;font-weight:900}
.photo-slot-label{display:block;max-width:100%;font-size:calc(var(--reading) - 3px);font-weight:900;line-height:1.3;overflow-wrap:anywhere;margin-top:auto;padding:3px 1px 0}
.photo-stage .photo-slot.occupied{background:#fff9ed88;border:2px solid #a9c197;box-shadow:0 4px 0 #b1c69e33;color:#527447}
.photo-stage .photo-slot.awaiting{background:#fff9e8e0;border:3px dashed #9470af;cursor:pointer}
.photo-stage .photo-slot.awaiting:hover{background:#fff1c5;border-color:#a985bd}
.photo-placed-toy{display:block;width:100%;height:calc(100% - 28px);min-height:0;object-fit:contain;filter:drop-shadow(0 4px 2px #81705c22);pointer-events:none}
.photo-work h2{margin:0 0 14px;font-size:calc(var(--reading) + 6px);font-weight:900;line-height:1.4;color:#6b547c;overflow-wrap:anywhere}
.photo-work h2:focus{outline:none}.photo-work h2:focus-visible{outline:3px solid #b7a2c9;outline-offset:4px;border-radius:6px}
.photo-selection{margin:0 0 16px;color:#677a61;font-size:calc(var(--reading) + 3px);font-weight:800;line-height:1.5;overflow-wrap:anywhere}
.photo-toy-bank{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.photo-toy{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:6px 5px 10px;border:2px solid #dacde3;border-radius:18px;background:#faf4fc;box-shadow:0 4px 0 #e0d5e8;font-family:inherit;color:#745c84;line-height:1.35}
.photo-toy:nth-child(3n+2){background:#f1f8ec;border-color:#c9dbbf;box-shadow:0 4px 0 #d8e5d0;color:#58734c}.photo-toy:nth-child(3n){background:#fff7e8;border-color:#e3d1af;box-shadow:0 4px 0 #e9dfc6;color:#92744c}
.photo-toy img{display:block;width:100%;height:115px;object-fit:contain;pointer-events:none}
.photo-toy>span{display:block;max-width:100%;padding-top:5px;font-size:calc(var(--reading) - 3px);font-weight:900;line-height:1.35;overflow-wrap:anywhere}
.photo-toy.placed{opacity:.5;box-shadow:none}.photo-toy.selected{border:3px solid #9470af;background:#eee0f6;outline:2px solid #c1a5d6;outline-offset:2px}
.photo-caption-bank{display:grid;gap:12px}
.photo-caption{display:flex;align-items:center;gap:12px;min-width:0;width:100%;padding:14px;border:2px solid #d5c4e0;border-radius:18px;background:#fffbff;box-shadow:0 4px 0 #e2d5e9;color:#47644f;text-align:left;font-family:inherit;font-size:calc(var(--reading) + 11px);line-height:1.55;overflow-wrap:anywhere}
.photo-caption>span{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;background:#eee1f5;color:#9777aa;font-size:13px;font-weight:900}.photo-caption>b{min-width:0;font-weight:800}
.photo-hint{margin-top:20px;color:#836a92;font-size:15px;line-height:1.5}.photo-hint summary{min-height:44px;padding:8px 0;cursor:pointer}.photo-hint p{margin:6px 0 10px;font-size:calc(var(--reading) + 7px);font-weight:800;line-height:1.6;overflow-wrap:anywhere}.photo-hint-toy{display:block;width:100px;height:100px;object-fit:contain}
.photo-success{padding:22px 16px;border:2px solid #baceab;border-radius:22px;background:#f0f6e8;text-align:center;color:#4d7044}.photo-success>span{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:50%;background:#7e9e70;color:white;font-size:30px}.photo-success p{font-size:17px;line-height:1.5;margin:14px 0}.photo-success strong{display:block;font-size:calc(var(--reading) + 11px);line-height:1.6;overflow-wrap:anywhere}
.photo-album{max-width:720px;margin:26px auto 0;padding-top:20px;border-top:1px dashed #d7c8b0}.photo-album h3{margin:0 0 14px;text-align:center;color:#8a7396;font-size:16px;font-weight:900;line-height:1.4}.photo-album ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}.photo-album li{padding:6px;border:2px solid #e0d7e3;border-radius:12px;background:#eee7f0;opacity:.6;min-width:0}.photo-album li.current{opacity:1;border-color:#b49ac5;background:#e9ddf0}.photo-album li.complete{opacity:1;border-color:#a8c28f;background:#eef4e6}.photo-mini-stage{position:relative;isolation:isolate;aspect-ratio:3/2;overflow:hidden;border-radius:7px;background:#f8f1e5}.photo-mini-stage>span{position:absolute;display:block}.photo-mini-stage>span img{width:100%;height:100%;object-fit:contain}.photo-album li>span{display:block;text-align:center;padding:6px 2px 1px;color:#7b6b84;font-size:13px;font-weight:900;line-height:1.3}
@media(max-width:900px){.photo-layout{grid-template-columns:minmax(0,1fr);gap:24px}.photo-scene-panel,.photo-work{width:min(620px,100%);margin:auto}.photo-toy img{height:120px}}
@media(max-width:480px){.lesson-photo{padding:20px 12px}.lesson-photo .lesson-sheet{padding:11px 9px;border-radius:22px}.photo-reading-card{padding:10px 13px 14px;top:6px;margin-bottom:16px}.photo-reading-card p{font-size:calc(var(--reading) + 9px)}.photo-scene-panel{padding:9px;border-radius:18px}.photo-scene-title{font-size:15px;margin-bottom:9px}.photo-stage{border-radius:11px}.photo-stage .photo-slot{padding:3px;border-radius:12px}.photo-slot-number{width:29px;height:29px;font-size:18px}.photo-slot-label{font-size:calc(var(--reading) - 5px)}.photo-placed-toy{height:calc(100% - 24px)}.photo-work h2{font-size:calc(var(--reading) + 4px)}.photo-selection{font-size:calc(var(--reading) + 2px)}.photo-toy-bank{gap:8px}.photo-toy{padding:4px 4px 8px;border-radius:14px}.photo-toy img{height:80px}.photo-toy>span{font-size:calc(var(--reading) - 4px)}.photo-caption{font-size:calc(var(--reading) + 9px);padding:12px 10px;gap:8px}.photo-caption>span{flex-basis:23px;height:23px;font-size:12px}.photo-album ol{gap:7px}.photo-album li{padding:4px;border-radius:9px}.photo-album li>span{font-size:11px}.photo-success strong{font-size:calc(var(--reading) + 9px)}}
.photo-studio :is(.photo-stage,.photo-toy-bank,.photo-slot,.photo-toy,.photo-caption,#photoQuestion){scroll-margin-top:var(--photo-reading-offset,180px);scroll-margin-bottom:20px}

/* Short clues, manual picture placement, then a two-sentence choice. */
.photo-simple-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:0 0 16px}
.photo-simple-steps li{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 14px;border:2px solid #e0d8e6;border-radius:16px;color:#93859b;background:#f2edf5;font-size:calc(var(--reading) - 1px);font-weight:900;line-height:1.35;overflow-wrap:anywhere}
.photo-simple-steps li>b{display:grid;place-items:center;flex:0 0 30px;height:30px;background:#e5d9ed;color:#9377a6;border-radius:50%;font-size:15px}
.photo-simple-steps .current{border-color:#a88abb;background:#eee0f5;color:#725184}.photo-simple-steps .current>b{background:#88659f;color:#fff}.photo-simple-steps .finished{background:#edf4e7;border-color:#b9cda8;color:#668458}
.photo-simple .photo-stage .photo-slot{cursor:pointer;user-select:none}.photo-simple .photo-stage .photo-slot:disabled{cursor:default;opacity:1}
.photo-empty{display:block;margin:auto;color:#c9b5d5;font-size:38px;line-height:1}
.photo-simple .photo-toy{position:relative}.photo-simple .photo-toy img{height:145px}.photo-simple .photo-toy.placed{opacity:.7;background:#eef5e7;border-color:#aac493}
.photo-toy-done{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:25px;height:25px;background:#74975f;color:#fff;border-radius:50%;font-size:17px}
.photo-simple .photo-selection{font-size:calc(var(--reading) + 1px)}
@media(max-width:900px){.photo-simple .photo-layout{gap:18px}.photo-simple .photo-toy img{height:125px}}
@media(max-width:480px){.photo-simple-steps{gap:7px;margin-bottom:12px}.photo-simple-steps li{gap:6px;padding:8px 7px;border-radius:12px;font-size:calc(var(--reading) - 3px)}.photo-simple-steps li>b{flex-basis:24px;height:24px;font-size:12px}.photo-simple .photo-toy img{height:95px}.photo-simple .photo-work h2{font-size:calc(var(--reading) + 2px)}.photo-simple .photo-selection{font-size:var(--reading)}}
.lesson-photo .lesson-heading .lesson-instruction{display:none}
@media(max-width:900px){.photo-simple.choosing .photo-work{grid-row:1}.photo-simple.choosing .photo-scene-panel{grid-row:2}}

.photo-toy:not(:disabled){touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.photo-toy.is-dragging{opacity:.35;cursor:grabbing}
.photo-stage .photo-slot.drag-over{border:3px solid #806399;background:#f3e4ff;box-shadow:inset 0 0 0 3px #cdb3df}
.photo-drag-ghost{position:fixed;z-index:10000;width:110px;height:110px;pointer-events:none;transform:translate(-50%,-65%);filter:drop-shadow(0 9px 8px #63467655)}
.photo-drag-ghost img{width:100%;height:100%;object-fit:contain;pointer-events:none}

/* Level 24: a picture album with eighteen names, one readable word at a time. */
.lesson-album{max-width:1300px;--lesson-lead:800px}
.lesson-album .lesson-heading{margin-bottom:16px}
.lesson-album .lesson-sheet{padding:24px;background:#fcf8f0;border-color:#d7c7e1;box-shadow:0 7px 0 #e2d7e9}
.album-chapters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;margin:0 0 22px;padding:0}
.album-chapters li{position:relative;display:flex;align-items:center;gap:10px;min-width:0;padding:8px 12px;border:2px solid #e0d7e7;border-radius:18px;background:#f1edf4;color:#9b8ea5;line-height:1.4}
.album-chapters img{width:54px;height:54px;object-fit:contain;opacity:.5;flex-shrink:0}
.album-chapters span{min-width:0;font-size:calc(var(--reading) - 2px);font-weight:900;overflow-wrap:anywhere}
.album-chapters .current{background:#eee0f6;color:#755587;border-color:#b698c9}.album-chapters .current img,.album-chapters .complete img{opacity:1}
.album-chapters .complete{background:#eef5e6;color:#63804e;border-color:#bad09f}.album-chapters b{position:absolute;top:4px;right:6px;font-size:17px}
.album-page-title{margin:0 0 18px;text-align:center;color:#765d87;font-size:calc(var(--reading) + 9px);line-height:1.4;font-weight:900}
.album-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:26px;align-items:start}
.album-reading{min-width:0;position:sticky;top:14px}
.album-word-ticket{padding:22px 18px 20px;border:2px solid #dfc69f;border-radius:22px;background:#fff9e9;box-shadow:0 5px 0 #e4d4b444;text-align:center;scroll-margin-top:14px}
.album-word-ticket>span{display:block;font-size:calc(var(--reading) + 3px);font-weight:800;color:#91754e;line-height:1.5}
.album-word-ticket strong{display:block;margin:18px 0 20px;color:#416a53;font-size:clamp(28px,calc(var(--reading) + 20px),46px);font-weight:900;line-height:1.5;overflow-wrap:normal}
.album-word-ticket strong.long-word{font-size:clamp(26px,calc(var(--reading) + 14px),40px)}
.album-word-ticket:focus{outline:none}.album-word-ticket:focus-visible{outline:3px solid #a585bb;outline-offset:4px}
.album-word-ticket p{color:#58714e;font-size:calc(var(--reading) + 1px);line-height:1.6;overflow-wrap:anywhere}
.album-count{margin:14px 0 12px;color:#9d8567!important;font-size:15px!important;font-weight:800}
.album-count b{display:inline-block;margin-left:7px;color:#77588c}
.album-dots{display:flex;justify-content:center;gap:9px}.album-dots i{display:block;width:13px;height:13px;background:#e9dfca;border:2px solid #d1c09e;border-radius:50%}.album-dots .current{background:#e9daf2;border-color:#a081b6}.album-dots .complete{background:#91b67b;border-color:#7b9d67}
.album-hint{margin-top:18px;color:#846d91;font-size:16px;line-height:1.5}.album-hint summary{min-height:44px;padding:9px 0;cursor:pointer}.album-hint img{display:block;width:130px;height:130px;object-fit:contain;margin:4px auto}.album-hint p{font-size:calc(var(--reading) + 2px);line-height:1.5;margin:6px 0}
.album-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;min-width:0;padding:18px;border:2px solid #dfd1e6;border-radius:24px;background:#f1e9f5}
.album-toy{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;width:100%;padding:12px 8px 10px;border:2px solid #d5c4e1;border-radius:18px;background:#fff9ff;box-shadow:0 5px 0 #dfd2e7;font-family:inherit;color:#795f8b;line-height:1.4;cursor:pointer}
.album-toy:nth-child(3n+2){background:#f8fbed;border-color:#cfddbe;box-shadow:0 5px 0 #dce6cf}.album-toy:nth-child(3n){background:#fff7e9;border-color:#e4d2b0;box-shadow:0 5px 0 #e9dfc6}
.album-toy img{display:block;width:100%;height:145px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 5px 3px #85669a20)}
.album-card-number{position:absolute;top:7px;left:8px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#ede3f3;color:#9d82af;font-size:13px;font-weight:900}
.album-card-label{display:block;min-height:1.6em;max-width:100%;padding-top:8px;font-size:calc(var(--reading) + 1px);font-weight:900;line-height:1.5;overflow-wrap:anywhere}
.album-card-label>span{color:#c2adce}
.album-toy.found{opacity:1;background:#f2f7e9;border-color:#a7c78e;box-shadow:0 5px 0 #d8e6ca;color:#517344;cursor:default}.album-toy.found .album-card-number{background:#80a568;color:#fff}
@media(max-width:900px){.album-layout{grid-template-columns:minmax(0,1fr);gap:18px}.album-reading{position:static}.album-word-ticket{padding:16px 14px}.album-word-ticket strong{margin:8px 0}.album-hint{margin-top:8px}.album-hint[open]{padding-bottom:10px}.album-gallery{gap:14px}.album-toy img{height:135px}.album-chapters li{flex-direction:column;gap:4px;padding:8px;text-align:center}.album-chapters span{font-size:calc(var(--reading) - 3px)}}
@media(max-width:480px){.lesson-album{padding:20px 12px}.lesson-album .lesson-sheet{padding:12px 9px;border-radius:22px}.album-chapters{gap:7px;margin-bottom:18px}.album-chapters li{padding:7px 4px;border-radius:13px}.album-chapters img{width:44px;height:44px}.album-chapters span{font-size:calc(var(--reading) - 4px)}.album-page-title{font-size:calc(var(--reading) + 6px);margin-bottom:14px}.album-word-ticket{padding:12px 8px;border-radius:17px}.album-word-ticket>span{font-size:calc(var(--reading) + 1px)}.album-word-ticket strong{font-size:clamp(28px,calc(var(--reading) + 16px),42px)}.album-word-ticket strong.long-word{font-size:clamp(26px,calc(var(--reading) + 10px),36px)}.album-count{margin:8px 0 10px}.album-gallery{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:11px;border-radius:19px}.album-toy{padding:10px 5px 8px;border-radius:15px}.album-toy img{height:116px}.album-card-label{font-size:calc(var(--reading) - 2px)}.album-card-number{left:5px;top:5px;width:22px;height:22px;font-size:12px}}
/* Keep the current word visible while children browse pictures on phones. */
@media(max-width:900px){.album-reading{display:contents}.album-word-ticket{position:sticky;top:8px;z-index:3;box-shadow:0 5px 12px #88734c22}.album-hint{grid-row:3}}
/* Let enlarged names keep whole words instead of splitting across card lines. */
.album-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
.album-card-label{overflow-wrap:normal;word-break:normal}
@media(min-width:901px) and (max-width:1100px){.album-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.album-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){body[data-fs="1"] .album-gallery,body[data-fs="2"] .album-gallery{grid-template-columns:minmax(0,1fr)}}
@media(max-width:360px){.album-gallery{grid-template-columns:minmax(0,1fr)}}

/* Keep the word and picture rows still when the next name appears. */
.album-word-ticket strong{display:flex;align-items:center;justify-content:center;height:calc(var(--reading) + 50px)}
.album-card-label{min-height:3em}
@media(max-width:480px){.album-word-ticket strong{height:calc(var(--reading) + 44px)}}

.album-word-ticket>span{min-height:3em}
.album-hint-complete{min-height:44px}
.lesson-album .lesson-feedback{min-height:calc(var(--reading) * 4.8)}
/* Full Spanish directions remain readable inside the compact photo spaces. */
.lesson-photo:lang(es) .photo-slot-label{font-size:clamp(11px,3vw,18px);white-space:nowrap;overflow-wrap:normal}

.maze-intro.maze-intro-art-only{padding:0;min-height:0;justify-content:center}
.maze-intro.maze-intro-art-only .lesson-vignette{position:static;margin:0 auto}
