*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#173d36;color:#214b43;font-family:Arial,"PingFang SC",sans-serif}button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:5px solid #ec7c37;outline-offset:5px}button:disabled{cursor:default;opacity:.5}#viewport{position:fixed;inset:0;overflow:hidden}#stage{width:1600px;height:900px;position:absolute;transform-origin:0 0;background-size:cover;background-position:center}#layer{position:absolute;inset:0}header{position:absolute;left:52px;top:36px;width:545px;padding:22px 26px;border-radius:28px;background:#fff9edeF;box-shadow:0 8px 30px #173d3612}header small{font-size:18px;letter-spacing:2px;font-weight:700;color:#689080}h1{font-size:44px;margin:10px 0 12px;line-height:1.05}header p{font-size:21px;line-height:1.5;margin:0}.progress{position:absolute;right:48px;top:35px;background:#fff8e8;border-radius:24px;padding:15px 25px;font-size:23px}.progress b{font-size:35px;color:#cf684d}.tools{position:absolute;bottom:27px;left:36px;right:36px;display:flex;gap:12px;align-items:center}.tools button,.action{border:0;border-radius:22px;padding:17px 25px;font-size:23px;background:#fff9ee;color:#285348;box-shadow:0 5px 0 #d4d7c3}.tools .next,.action.primary{background:#2b7964;color:white;box-shadow:0 5px 0 #155640}.tools .next{margin-left:auto}.menu{position:absolute;left:40px;bottom:110px;background:#fff9ef;padding:24px;border-radius:25px;width:480px;display:flex;flex-wrap:wrap;gap:12px;box-shadow:0 10px 40px #153d3640}.menu button{background:#edf2df;border:0;padding:12px 16px;border-radius:14px;font-size:20px}.toy{position:relative;display:block;overflow:hidden;aspect-ratio:var(--ratio);pointer-events:none}.toy img{position:absolute;max-width:none;pointer-events:none}.toy-button{border:0;background:transparent;position:absolute;display:flex;align-items:center;justify-content:center;flex-direction:column;width:315px;height:210px;border-radius:30px;transition:transform .2s}.toy-button .toy{width:235px;max-height:190px}.toy-button.balloon .toy{width:128px}.toy-button:hover{transform:scale(1.035)}.toy-button.glow{box-shadow:0 0 0 5px #fff5ad,0 0 48px 18px #fff2a0bb;background:#fff5aa2a;animation:breathe 2s infinite}.toy-button.found:after{content:'✓';position:absolute;right:6px;top:4px;background:#2b7964;color:white;width:35px;height:35px;border-radius:50%;font-size:26px}.toy-button .word{font-size:34px;font-weight:700;background:#fff9ee;padding:2px 20px;border-radius:15px;position:absolute;bottom:-20px}.shelf-0{left:764px;top:215px}.shelf-1{left:1170px;top:215px}.shelf-2{left:764px;top:510px}.shelf-3{left:1170px;top:510px}.family .shelf-0{left:931px;top:252px;width:240px;height:170px}.family .shelf-1{left:1253px;top:252px;width:240px;height:170px}.family .shelf-2{left:931px;top:526px;width:240px;height:170px}.family .shelf-3{left:1253px;top:526px;width:240px;height:170px}.family .toy-button .toy{width:190px}.family .toy-button.balloon .toy{width:98px}.panel{position:absolute;left:650px;top:146px;width:895px;height:615px;background:#fffaf0ed;border:3px solid #fff;border-radius:35px;box-shadow:0 15px 60px #28483c26;padding:35px}.panel h2{margin:0 0 20px;font-size:36px}.conveyor{position:absolute;left:610px;right:35px;top:475px;display:flex;align-items:end;height:220px;gap:4px;border-bottom:18px solid #688276;border-radius:20px;padding:0 10px 20px;background:linear-gradient(transparent,#eff2dcaa)}.conveyor .toy-button{position:relative;width:225px;height:215px}.conveyor .toy{width:205px}.conveyor .balloon .toy{width:118px}.arriving{animation:arrive .7s ease-out both}.speaker{position:absolute;left:930px;top:210px;width:330px;padding:22px}.collected{position:absolute;left:63px;top:665px;display:flex;align-items:center;gap:12px;width:440px;background:#fff9ebdd;border-radius:22px;padding:13px 18px}.collected .toy{width:76px;height:70px}.collected .toy.balloon{width:52px}.hero-toy{position:absolute;left:922px;top:230px;width:340px;height:300px;display:flex;justify-content:center;align-items:center}.hero-toy .toy{width:340px}.hero-toy .toy.balloon{width:185px}.oral-actions{position:absolute;top:581px;left:670px;width:850px;display:flex;align-items:center;justify-content:center;gap:24px}.mic{font-size:37px;background:#fff5e1;padding:17px;border-radius:50%}.oral-note{position:absolute;top:510px;left:680px;width:810px;text-align:center;font-size:23px;background:#fff9eedd;padding:12px;border-radius:20px}.receipt{background:#fffdf5;border-radius:4px 4px 22px 22px;background-image:linear-gradient(90deg,transparent 97%,#eedcbd 97%);background-size:30px 100%;overflow:hidden}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px;height:480px;position:relative}.match-col{display:grid;grid-template-rows:repeat(4,1fr);gap:8px;z-index:1}.match-item{border:2px solid #e5e5ce;border-radius:20px;background:#fffdf8;display:flex;align-items:center;justify-content:center;font-size:37px;font-weight:700}.match-item .toy{width:120px;max-height:86px}.match-item .toy.balloon{width:54px}.match-item.picked{border-color:#d59150;background:#fff0cf}.match-item.matched{background:#dcecd4;border-color:#80b18c}.match-grid>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}.initial-word{text-align:center;font-size:91px;font-weight:700;margin:20px 0 33px}.initial-choices{display:flex;justify-content:center;gap:60px}.initial-choices button{width:140px;height:115px;border:0;border-radius:25px;font-size:78px;background:#e8edda;color:#275c4e;box-shadow:0 7px 0 #c5d5bf}.initial-toy{display:flex;justify-content:center;height:190px}.initial-toy .toy{width:230px}.initial-toy .toy.balloon{width:108px}.speech{position:absolute;left:735px;top:720px;min-width:760px;text-align:center;font-size:35px;background:#fffaf0;padding:15px 25px;border-radius:24px}.speech .action{font-size:22px;padding:10px 20px;margin-left:20px}.cover-title{position:absolute;top:56px;right:93px;text-align:center;width:790px;padding:35px;background:#fff7e5ed;border-radius:45px}.cover-title small{letter-spacing:7px;font-size:21px}.cover-title h1{font-size:109px;letter-spacing:-4px;color:#c85c43;margin:15px 0}.cover-title p{font-size:28px}.cover-actions{position:absolute;right:262px;bottom:135px;display:flex;gap:20px}.review-note{position:absolute;bottom:42px;right:120px;font-size:20px;background:#fff9eae8;padding:12px 22px;border-radius:20px}#notice{position:absolute;left:450px;right:450px;bottom:114px;text-align:center;font-size:23px;padding:14px 20px;border-radius:20px;background:#fff9eb;pointer-events:none;opacity:0;transition:opacity .2s;z-index:9}#notice.show{opacity:1}.flying{animation:flight .5s ease-in both}.scan-flash{position:absolute;left:800px;top:320px;width:600px;height:8px;background:#90e9ca;box-shadow:0 0 35px #63ffb4;animation:scanning .5s ease-in-out}.complete{position:absolute;left:750px;top:275px;width:700px;text-align:center;background:#fffaf0ed;padding:48px;border-radius:35px;font-size:30px}.complete strong{display:block;font-size:57px;margin-bottom:25px}.expanded{position:fixed!important;inset:0!important;z-index:9999}video{position:absolute;width:1600px;height:900px;object-fit:contain;background:#173d36}.video-bar{position:absolute;bottom:25px;right:35px;display:flex;gap:15px}.video-bar button{border:0;border-radius:18px;padding:15px 25px;font-size:23px}.error-card{position:absolute;left:420px;top:290px;width:760px;padding:50px;background:#fff9ee;border-radius:30px;text-align:center;font-size:25px}@keyframes breathe{50%{box-shadow:0 0 0 4px #fff5ad,0 0 30px 7px #fff2a099}}@keyframes arrive{from{transform:translateX(350px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes flight{to{transform:translate(-570px,100px) scale(.25);opacity:0}}@keyframes scanning{from{transform:translateY(-70px);opacity:0}50%{opacity:1}to{transform:translateY(130px);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
/* Keep waiting toys visible; align lower toys with the physical shelf. */
.toy-button:disabled{opacity:1}.toy-button.found:disabled{opacity:.65}.shelf-2,.shelf-3{top:465px}
/* BRIEF 2026-09-16: kindergarten-first toy-world controls. */
html,body{background:#f3dfb7;color:#533c32}
header{left:44px;top:28px;width:555px;padding:18px 23px;background:linear-gradient(160deg,#fffefa,#fff1d4);border:3px solid #fffdf7;border-radius:30px;box-shadow:0 7px 0 #dfbd8580,0 12px 28px #62452515}
header small{color:#976244;font-size:18px;letter-spacing:1.5px}header h1{font-size:40px;color:#65432f;margin:8px 0 3px}
.progress{top:28px;right:42px;background:linear-gradient(155deg,#fffdeb,#ffdd78);border:3px solid #fff9d7;box-shadow:0 7px 0 #d9a650;font-size:28px;border-radius:30px;min-width:116px;text-align:center}.progress b{font-size:43px;color:#a44628}
.ui-icon{width:36px;height:36px;flex-shrink:0;vertical-align:middle;overflow:visible}
.action,.tools button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:88px;min-width:88px;border-radius:30px;padding:18px 25px;border:3px solid #fff7dd;background:linear-gradient(160deg,#fffef8 2%,#fff1c6 78%);color:#684632;font-size:28px;font-weight:700;box-shadow:inset 0 3px 0 #ffffffb0,0 7px 0 #d9b270,0 10px 16px #5d402320;transition:transform .12s,box-shadow .12s}
.action:active,.tools button:active,.initial-choices button:active{transform:translateY(5px);box-shadow:inset 0 2px 0 #ffffff70,0 2px 0 #c48e54}
.action.primary,.tools .next{background:linear-gradient(155deg,#ffa46d 0%,#ee7657 80%);color:#572c21;border-color:#ffc997;box-shadow:inset 0 3px 0 #ffd6b4,0 7px 0 #c95038,0 11px 20px #9b503525}
.tools{bottom:15px;left:32px;right:32px;gap:17px}.tools>button:not(.next){background:linear-gradient(155deg,#f0fbff,#bcdef3);border-color:#f3fcff;color:#355f77;box-shadow:inset 0 3px 0 #fff,0 7px 0 #82b5cf,0 10px 16px #47738d18}
button:disabled{opacity:.55}.toy-button:disabled{opacity:1}.toy-button.glow{animation:none;box-shadow:0 0 0 6px #ffe28a,0 0 35px 10px #ffe6a077;background:#ffe9a92b}
.toy-button{min-width:88px;min-height:88px}.toy-button .word{font-size:44px;color:#65452f;padding:2px 20px;border:2px solid #fffef5;box-shadow:0 4px 0 #d6b889}
.toy-button.found:after{background:linear-gradient(#ffdf75,#f6b945);color:#704823;box-shadow:0 4px 0 #c48c35;border:2px solid #ffefa6;width:40px;height:40px;font-size:29px}
.menu{bottom:127px;left:32px;width:650px;max-height:650px;overflow:auto;border:3px solid #fff7df;background:#fff8e9;z-index:6;box-shadow:0 10px 0 #dab88780,0 20px 45px #78563125}
.menu button{font-size:23px;min-height:72px;gap:7px;padding:12px 15px}.menu .ui-icon{width:25px;height:25px}.teacher-hint{font-size:24px;line-height:1.5;margin:0 0 12px;color:#654c3b}
.speaker{left:951px;top:195px;width:330px;min-height:104px;font-size:34px}.speaker .ui-icon{width:45px;height:45px}
.mic{display:flex;align-items:center;justify-content:center;width:94px;height:94px;background:linear-gradient(#ffedac,#ffd15f);border:3px solid #fff6d3;box-shadow:0 6px 0 #d7a04e;color:#95653c}.mic .ui-icon{width:52px;height:52px}
.oral-actions{top:583px;left:635px;width:925px;gap:20px}.oral-note{font-size:28px;color:#70513b;top:496px}.collected{font-size:25px;color:#70513b;border:2px solid #fff8e6;background:#fff2dcd9}
.panel{background:#fffaf1;border:4px solid #fffef8;box-shadow:0 10px 0 #d5b28d70,0 18px 45px #78563122}.panel h2{color:#6e4b32}
.match-item{font-size:44px;background:linear-gradient(#fffef8,#fff3d5);border:3px solid #eed7a9;box-shadow:0 4px 0 #d6b88c;min-height:100px}.match-item.picked{background:#ffe5a6;border-color:#eba65c}.match-item.matched{background:#d5eef9;border-color:#97c8e0;color:#32647c}.match-grid>svg line{stroke:#6cb4d9}
.initial-choices button{width:145px;height:116px;background:linear-gradient(#fff2a6,#ffd363);border:3px solid #fff6c9;color:#855229;box-shadow:inset 0 3px 0 #fffce7,0 7px 0 #dca04d}.initial-word{color:#704529}.speech{top:672px;left:720px;min-width:815px;min-height:103px;font-size:41px;padding:7px 14px;display:flex;align-items:center;justify-content:center;gap:15px;border:3px solid #fffaf0;box-shadow:0 6px 0 #dab68c60}.speech .action{font-size:28px;padding:12px 17px;margin:0;min-height:88px}.speech .ui-icon{width:31px;height:31px}
.family .shelf-2,.family .shelf-3{top:482px}.cover-title{background:linear-gradient(140deg,#fffefa,#fff0cb);border:4px solid #fffcf1;box-shadow:0 12px 0 #dab78570}.cover-title h1{color:#d36646;text-shadow:0 5px 0 #ffd899}.cover-actions{right:188px;bottom:122px}.cover-actions .action{min-height:100px;font-size:32px}.review-note{font-size:19px;bottom:31px}#notice{font-size:28px;color:#785037;background:#fff5d9;border:3px solid #fffaf0;bottom:129px;left:350px;right:350px}.complete{color:#754e35}.complete strong{color:#d56f43}
/* Preserve atlas aspect ratios in smaller display slots. */
.toy-button.ball .toy{width:200px}.match-item .toy.ball{width:89px}.collected .toy{height:auto;max-height:none}.collected .toy.ball{width:65px}.collected .toy.balloon{width:48px}.family .toy-button.ball .toy{width:176px}
/* Home toys rest on their shelf; speech stays clear of the shelf. */
.family .shelf-0,.family .shelf-1{top:330px}.family .shelf-2,.family .shelf-3{top:605px}.family .speech{left:45px;top:676px;min-width:650px;width:650px;font-size:37px}.family .speech .action{font-size:28px;padding:12px 16px}.family .toy-button .word{bottom:-12px}
.family .shelf-0,.family .shelf-1{top:346px}.family .shelf-2,.family .shelf-3{top:593px}
/* Story controls stay separate from learning controls on the same 16:9 stage. */
.story{background:#f6e8d0}.story-video{object-fit:contain;background:#f6e8d0}.story-label{position:absolute;left:35px;top:27px;padding:12px 20px;border-radius:22px;font-size:25px;background:#fff8e9de;color:#71513a}.story-caption{position:absolute;bottom:136px;left:200px;right:200px;text-align:center;font-size:45px;font-weight:700;color:#573924;text-shadow:0 2px #fff;background:#fff9e8ec;border-radius:25px;padding:15px;pointer-events:none}.story-caption:empty{display:none}.story-controls{position:absolute;bottom:20px;left:35px;right:35px;display:flex;gap:18px}.story-controls button,.story-error button{min-height:88px;min-width:140px;padding:15px 27px;border:3px solid #fff8df;border-radius:28px;background:linear-gradient(#fff8df,#f9d795);box-shadow:0 6px 0 #c19d68;font-size:28px;font-weight:700;color:#714b30}.story-controls button:last-child{margin-left:auto;background:linear-gradient(#ffbc81,#ef8060);box-shadow:0 6px 0 #bc5d43}.story-error{position:absolute;left:350px;right:350px;top:290px;background:#fff8e9;padding:45px;border-radius:35px;font-size:30px;text-align:center;z-index:8}.story-error button{display:block;margin:30px auto 0}.story-error[hidden]{display:none}
/* Latest user direction: no normal-playback navigation; quiet teacher drawer. */
.story{background:transparent}.story-video{background:transparent;pointer-events:none}.tools{left:30px;bottom:20px;right:auto}.tools>button{min-height:62px;min-width:62px;font-size:21px;padding:10px 16px;gap:8px;border-radius:22px;opacity:.92}.tools .ui-icon{width:27px;height:27px}.menu{bottom:100px}.story-controls,.story-label,.story-caption{display:none}
.cover-toys{position:absolute;left:700px;right:100px;top:390px;height:240px;display:flex;align-items:center;justify-content:space-around;gap:20px}.cover-toys .toy{width:180px}.cover-toys .ball{width:160px}.cover-toys .balloon{width:95px}.cart-goods{position:absolute;left:175px;top:575px;width:210px;height:94px;display:flex;flex-wrap:wrap;gap:2px;align-items:end;align-content:end;justify-content:center;transform:rotate(5deg);z-index:2}.cart-goods .toy{width:83px;flex-shrink:0}.cart-goods .ball{width:61px}.cart-goods .balloon{width:43px}.cart-front{position:absolute;left:147px;top:546px;width:290px;height:164px;pointer-events:none;z-index:3}.checkout-bag{position:absolute;left:1325px;top:333px;width:225px;height:auto;z-index:4;pointer-events:none}.bag-count{position:absolute;left:1394px;top:473px;font-size:28px;font-weight:700;color:#805b3c;z-index:5}.activity-scan .hero-toy{left:895px;z-index:3}.activity-scan .hero-toy.flying{animation:bag-flight .65s ease-in both}.activity-repeat .hero-toy.flying{animation:cart-flight .65s ease-in both}.activity-scan .scan-flash{left:920px;top:315px;width:330px}.activity-home.entering .toy-button{animation:place-toy .7s ease-out both}.activity-home .shelf-1{animation-delay:.2s}.activity-home .shelf-2{animation-delay:.4s}.activity-home .shelf-3{animation-delay:.6s}.activity-match.entering .receipt{animation:print-receipt .8s ease-out both}.activity-initial.entering .receipt{animation:drop-receipt .8s ease-out both}@keyframes bag-flight{45%{transform:translate(315px,-60px) scale(.45);opacity:1}to{transform:translate(365px,95px) scale(.18);opacity:0}}@keyframes cart-flight{to{transform:translate(-825px,228px) scale(.23);opacity:.1}}@keyframes place-toy{from{opacity:0;transform:translate(-170px,80px) scale(.5)}to{opacity:1;transform:none}}@keyframes print-receipt{from{clip-path:inset(0 0 98% 0)}to{clip-path:inset(0)}}@keyframes drop-receipt{from{transform:translateY(-150px) rotate(-7deg);opacity:.1}to{transform:none;opacity:1}}

#notice.show:has(button){pointer-events:auto}#notice button{border:0;border-radius:18px;background:#ffcb83;color:#513621;font-size:28px;min-height:88px;padding:16px 28px;margin-left:15px}

.story{background:#f6e8d0}.entering .receipt{pointer-events:none}
/* v002: one integrated cover hotspot and continuous shelf coordinates. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.cover-hotspot{position:absolute;left:748px;top:624px;width:690px;height:200px;padding:0;border:0;border-radius:105px;background:transparent;box-shadow:none}
.cover-hotspot:hover{background:#ffffff0c}.cover-hotspot:active{background:#633d3610}.cover-hotspot:focus-visible{outline:6px solid #fff8c9;outline-offset:7px}
#stage[data-scene="shop"]{background-size:auto 100%;background-repeat:no-repeat;background-color:#f6e8d0}
.story{background:transparent}.story-frame{position:absolute;inset:0;transition:opacity .14s linear;pointer-events:none}
.story-frame .story-video{opacity:1;object-fit:contain;background:#f6e8d0}
.outgoing-scene{position:absolute;inset:0;z-index:7;pointer-events:none}
.shelf-continuity{position:absolute;inset:0;pointer-events:none}
:is(.activity-shelf,.shelf-continuity) .shelf-0{left:742px;top:225px}
:is(.activity-shelf,.shelf-continuity) .shelf-1{left:1117px;top:225px}
:is(.activity-shelf,.shelf-continuity) .shelf-2{left:742px;top:465px}
:is(.activity-shelf,.shelf-continuity) .shelf-3{left:1117px;top:465px}
:is(.activity-shelf,.shelf-continuity) .toy-button{width:315px;height:210px}
:is(.activity-shelf,.shelf-continuity) .toy-button .toy{width:235px;max-height:none;filter:drop-shadow(0 5px 4px #61432640)}
:is(.activity-shelf,.shelf-continuity) .toy-button.ball .toy{width:178px}
:is(.activity-shelf,.shelf-continuity) .toy-button.balloon .toy{width:125px}
.activity-shelf .toy-button:hover{transform:none}.activity-shelf .toy-button.glow{background:transparent;box-shadow:none}
.activity-shelf .toy-button.glow:before{content:'';position:absolute;inset:4px 18px;border:4px solid #ffe9a3;border-radius:28px;box-shadow:0 0 20px #ffdf8560;pointer-events:none}
.activity-shelf.entering header,.activity-shelf.entering .progress,.activity-shelf.entering .tools{animation:lesson-ui .35s ease-out both}
.family .speech{top:685px;left:36px;width:666px;min-width:0;font-size:30px;flex-wrap:wrap;gap:12px;padding:12px}
.family .speech .action{font-size:25px;min-height:76px;padding:10px 15px}
@keyframes lesson-ui{from{opacity:0}to{opacity:1}}

/* v003: complete atlas objects, compact single-mic interaction and progress. */
.toy{flex-shrink:0}.toy svg{position:absolute;inset:0;width:100%;height:100%;display:block}
#stage:has(.activity-listen),#stage:has(.activity-repeat),#stage:has(.activity-scan),#stage:has(.activity-match),#stage:has(.activity-initial){background-size:contain;background-repeat:no-repeat;background-color:#f6e8d0}
header{top:126px;left:36px;width:540px;padding:14px 20px}header small{font-size:17px}header h1{font-size:37px}
.lesson-progress{position:absolute;left:36px;top:24px;width:540px;padding:12px 20px;border:3px solid #fffaf0;border-radius:27px;background:#fff4dbf0;box-shadow:0 5px 0 #dab88460;z-index:4}
.step-track{display:flex;align-items:center;justify-content:space-between;position:relative}.step-track:before{content:'';position:absolute;left:10px;right:10px;top:19px;height:5px;background:#e4d0aa}.step{position:relative;display:flex;justify-content:center;align-items:center;width:38px;height:38px;border-radius:50%;background:#f1e5cc;font-size:22px;font-weight:700;color:#866c50}.step.current{background:#f49955;color:#603316;outline:3px solid #ffdc94}.step.done{background:#88b9a0;color:#fff}.question-progress{display:flex;gap:16px;align-items:center;margin-top:10px;font-size:23px;font-weight:700}.meter{height:12px;border-radius:12px;background:#ead6b0;flex:1;overflow:hidden}.meter i{display:block;height:100%;border-radius:12px;background:#eca65b;transition:width .3s}
.toy-button .toy{max-height:none}.match-item .toy{width:150px;height:96px;max-height:none;aspect-ratio:auto}.match-item .toy.ball{width:150px}.match-item .toy.balloon{width:150px}
.activity-match .panel{top:145px;height:638px;padding:25px 32px}.activity-match .panel h2{margin-bottom:15px}.match-grid{height:516px;grid-template-columns:1fr 1fr;gap:95px}.match-col{grid-template-rows:repeat(4,123px);gap:8px}.match-item{min-height:0;font-size:45px;padding:9px}
.conveyor{top:405px;height:260px;align-items:center;padding:10px 12px 24px;gap:8px;background:linear-gradient(#fff4dc44,#e4d9bfbb)}.conveyor .toy-button{height:218px;width:215px;flex:1;min-width:0}.conveyor .toy{width:185px;max-height:none}.conveyor .ball .toy{width:164px}.conveyor .balloon .toy{width:119px}
.speaker-icon{display:flex;align-items:center;justify-content:center;width:90px;height:90px;border:3px solid #fff8e5;border-radius:50%;background:linear-gradient(#fff9df,#ffdc8b);color:#795232;box-shadow:0 5px 0 #d3a367}.speaker-icon .ui-icon{width:47px;height:47px}.listen-speaker{position:absolute;left:1050px;top:245px;width:100px;height:100px}
.hero-toy{left:760px;top:270px;width:300px;height:330px}.hero-toy .toy{width:295px}.hero-toy .toy.ball{width:258px}.hero-toy .toy.balloon{width:185px}.activity-scan .hero-toy{left:740px}
.oral-controls{position:absolute;left:1090px;top:210px;width:400px;display:flex;align-items:center;flex-direction:column;gap:12px;padding:22px 12px;background:#fff9eced;border:3px solid #fffaf0;border-radius:36px;box-shadow:0 8px 0 #d8b57d66}
.oral-word{font-size:51px;font-weight:800;line-height:1.1;min-height:60px;display:flex;align-items:center}.mic-button{position:relative;display:flex;align-items:center;justify-content:center;width:132px;height:132px;border:4px solid #fff5cb;border-radius:50%;background:linear-gradient(#ffd375,#f19352);color:#6e4026;box-shadow:0 8px 0 #d47c40}.mic-button .ui-icon{width:61px;height:61px}.mic-button:disabled{opacity:1}.mic-button.recording{background:#f9a272;animation:mic-pulse .65s ease-in-out infinite}.mic-button.passed{background:#98c9a2}.oral-status{font-size:28px;font-weight:700;min-height:40px}.simulation-label{font-size:19px;color:#846e59}.waves{display:none;gap:5px;align-items:center}.recording .ui-icon{display:none}.recording .waves{display:flex}.waves i{height:33px;width:7px;border-radius:6px;background:#704223;animation:wave .55s ease-in-out infinite alternate}.waves i:nth-child(2n){animation-delay:.2s}.waves i:nth-child(3){animation-delay:.4s}
.home-oral .oral-controls{left:36px;top:410px;width:650px;gap:7px;padding:13px;display:grid;grid-template-columns:1fr 155px;grid-template-rows:92px 67px 43px}.home-oral .speaker-icon{grid-column:1;grid-row:1;justify-self:center}.home-oral .oral-word{grid-column:1;grid-row:2;justify-content:center;font-size:43px}.home-oral .mic-button{grid-column:2;grid-row:1/3;align-self:center}.home-oral .oral-status{grid-column:1;grid-row:3;text-align:center}.home-oral .simulation-label{grid-column:2;grid-row:3;text-align:center;align-self:center}
.activity-scan .checkout-bag{left:1330px;top:700px;width:145px}.activity-scan .bag-count{left:1400px;top:745px;font-size:23px}.activity-scan .hero-toy.flying{animation:bag-flight-v3 .65s ease-in both}.activity-scan .scan-flash{left:760px;top:330px}
@keyframes mic-pulse{50%{box-shadow:0 0 0 16px #fbd99677,0 8px 0 #d47c40}}@keyframes wave{to{height:62px}}@keyframes bag-flight-v3{to{transform:translate(525px,405px) scale(.2);opacity:0}}

.toy svg{overflow:hidden;pointer-events:none}

/* v003 review: one shallow top row, leaving panda heads and all activity content clear. */
header{left:28px;top:12px;width:595px;height:68px;padding:12px 20px;border-radius:24px;display:flex;align-items:center}
header small{display:none}header h1{margin:0;font-size:35px;line-height:1.1;white-space:nowrap}
.lesson-progress{left:auto;right:28px;top:12px;width:855px;height:68px;padding:10px 18px;display:flex;align-items:center;gap:28px;border-radius:24px}
.step-track{width:435px;flex-shrink:0}.question-progress{flex:1;margin:0;gap:14px}.question-progress>span{white-space:nowrap}.meter{min-width:130px}
.activity-match .panel{top:134px;height:638px}

/* Dedicated title strip: scene and interaction shrink together below it. */
.scene-body{position:absolute;left:88px;top:99px;width:1600px;height:900px;transform:scale(.89);transform-origin:0 0;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:#f6e8d0;overflow:hidden}
#stage:has(.scene-body){background-color:#f6e8d0}
.home-oral .oral-controls{top:670px;height:208px;width:650px;grid-template-rows:74px 51px 38px;gap:3px;padding:9px}
.home-oral .speaker-icon{width:68px;height:68px}.home-oral .speaker-icon .ui-icon{width:38px;height:38px}.home-oral .mic-button{width:112px;height:112px}.home-oral .oral-word{font-size:36px;min-height:48px}.home-oral .oral-status{font-size:25px}

.compact-story .story-frame{left:88px;top:99px;right:auto;bottom:auto;width:1600px;height:900px;transform:scale(.89);transform-origin:0 0}
.cart-front{display:none}.activity-repeat .cart-goods{left:265px;top:590px}

.activity-scan .cart-goods{left:275px;top:600px}
/* v004: one cabinet layout throughout home, video and summary. */
.family-continuity,.cart-continuity{position:absolute;inset:0;pointer-events:none}
.activity-scan .cart-goods{left:265px;top:590px}
.activity-summary .toy-button .word{font-size:33px;bottom:-12px}
.activity-home .tools,.activity-summary .tools{left:auto;right:26px}

.story:not(.compact-story) .story-frame:has(.shelf-continuity){left:88px;top:99px;right:auto;bottom:auto;width:1600px;height:900px;transform:scale(.89);transform-origin:0 0}

/* v006: a single full-frame world; small in-scene quest tags replace the title strip. */
.scene-body,.compact-story .story-frame,.story:not(.compact-story) .story-frame:has(.shelf-continuity){left:0;top:0;right:0;bottom:0;width:1600px;height:900px;transform:none}
.lesson-progress{left:585px;right:auto;top:64px;width:290px;height:auto;padding:14px 18px 12px;display:block;border:1px solid #c9ae7d;border-radius:9px;background:linear-gradient(115deg,#fff6ddd9,#ecd4a4e6);box-shadow:inset 0 1px #fff9e7,0 3px 7px #4d392322;color:#745639;z-index:4;pointer-events:none}
.lesson-progress::before,.lesson-progress::after{content:'';position:absolute;top:7px;width:5px;height:5px;border-radius:50%;background:#a68b62;box-shadow:0 1px #fff6dc}.lesson-progress::before{left:7px}.lesson-progress::after{right:7px}
.quest-caption{display:flex;align-items:center;gap:12px}.quest-caption h1{font-size:26px;line-height:1.14;margin:0;flex:1;font-weight:700}.quest-count{font-size:20px;font-weight:700;white-space:nowrap;color:#8a6945}
.quest-meter{display:flex;gap:5px;margin:10px 0 8px}.quest-meter i{height:5px;flex:1;background:#cbb99270;border-radius:5px}.quest-meter i.filled{background:#85a485}
.lesson-progress .step-track{width:auto;display:flex;justify-content:flex-start;gap:9px}.lesson-progress .step-track::before{display:none}.lesson-progress .step{width:7px;height:7px;min-width:0;background:#ad98725c;outline:0;box-shadow:none}.lesson-progress .step.current{width:19px;border-radius:4px;background:#bd7950}.lesson-progress .step.done{background:#7c9977}
.activity-shelf .lesson-progress{left:777px;top:70px;width:365px;padding:11px 17px 10px}.activity-shelf .quest-caption h1{font-size:25px}.activity-shelf .quest-meter{margin:7px 0}.activity-shelf .lesson-progress .step-track{position:absolute;left:17px;bottom:-13px;opacity:.7}
.family .lesson-progress{left:982px;top:102px;width:350px}.family .quest-caption h1{font-size:26px}
.tools>button{min-height:44px;min-width:44px;padding:8px 12px;font-size:17px;opacity:.68;border-radius:14px;background:#f7ead3b8;border:1px solid #d5bc94;box-shadow:0 2px 3px #73553322;color:#846c4e}.tools>button:hover,.tools>button:focus-visible{opacity:1}.tools .ui-icon{width:23px;height:23px}.tools{bottom:15px;left:20px}.menu{z-index:10;bottom:73px}
/* Toys sit on the belt; the cashier's head and both panda faces stay clear. */
.conveyor{left:635px;right:40px;top:455px;height:220px;padding:6px 10px 12px;border-bottom:8px solid #997851;border-radius:8px;background:linear-gradient(#fff6df10,#f4ddaa88);gap:8px}
.conveyor .toy-button{height:190px;width:200px}.conveyor .toy{width:178px;height:170px;aspect-ratio:auto}.conveyor .ball .toy,.conveyor .balloon .toy{width:160px;height:170px}
.listen-speaker{left:1010px;top:697px;width:83px;height:83px}.collected{left:715px;top:798px;width:700px;height:65px;padding:5px 12px;justify-content:center;gap:24px;font-size:23px;background:transparent;color:#395f51}.collected .toy{height:54px;width:76px;aspect-ratio:auto}.collected .toy.balloon{width:55px}
.hero-toy,.activity-scan .hero-toy{left:725px;top:478px;width:295px;height:310px}.hero-toy .toy{width:280px;height:275px;aspect-ratio:auto}.hero-toy .toy.ball,.hero-toy .toy.balloon{width:240px;height:275px}
.oral-controls{left:1110px;top:473px;width:320px;padding:12px 16px;gap:7px;border-radius:17px;background:#fff4dccc;border:1px solid #dac5a0;box-shadow:0 4px 8px #6b533320}.oral-controls .speaker-icon{width:65px;height:65px}.oral-controls .speaker-icon .ui-icon{width:35px;height:35px}.oral-word{font-size:42px;min-height:48px}.mic-button{width:101px;height:101px}.mic-button .ui-icon{width:50px;height:50px}.oral-status{font-size:24px;min-height:29px}
.activity-repeat .cart-goods,.activity-scan .cart-goods{left:274px;top:622px;width:210px;height:95px;transform:rotate(5deg)}
.activity-scan .checkout-bag{left:1460px;top:675px;width:110px}.activity-scan .bag-count{left:1494px;top:750px;font-size:20px}.activity-scan .scan-flash{left:740px;top:592px;width:255px}
@keyframes cart-flight{to{transform:translate(-460px,120px) scale(.23);opacity:.1}}@keyframes bag-flight-v3{to{transform:translate(655px,180px) scale(.2);opacity:0}}
/* A horizontal receipt lives on the counter, below every face. */
.activity-match .panel{left:665px;top:465px;width:880px;height:397px;padding:16px 25px 20px;border:1px solid #e6d3b3;border-radius:5px 5px 13px 13px;box-shadow:0 8px 10px #5b423523;background:#fff9ed}
.activity-match .panel h2{font-size:23px;margin:0 0 9px;color:#90734f;font-weight:500}.match-grid{height:318px;gap:100px;grid-template-columns:1fr 1fr}.match-col{grid-template-rows:repeat(4,73.5px);gap:8px}.match-item{font-size:36px;border-radius:10px;padding:3px;border:1px solid #dfc9a3;box-shadow:0 2px #bba67e44;background:#fff4dc}.match-item .toy,.match-item .toy.ball,.match-item .toy.balloon{height:66px;width:130px;aspect-ratio:auto;max-height:none}
.activity-initial .panel{left:700px;top:473px;width:815px;height:379px;padding:22px;border:1px solid #dfc9a3;border-radius:8px;background:#fff9ed;box-shadow:0 8px 10px #5b423522;display:grid;grid-template-columns:300px 1fr;grid-template-rows:150px 145px;gap:15px}
.initial-toy{height:300px;grid-row:1/3;align-items:center}.initial-toy .toy,.initial-toy .toy.balloon{width:260px;height:285px;aspect-ratio:auto}.initial-word{font-size:75px;margin:36px 0 0;align-self:center}.initial-choices{gap:40px;align-items:start}.initial-choices button{width:115px;height:100px;font-size:66px}
.complete{left:660px;top:530px;width:880px;font-size:28px;background:#fff3d9dd;border:1px solid #dec597;box-shadow:0 6px 10px #6b51311c}.complete strong{font-size:48px}
#notice{left:650px;right:45px;bottom:34px;font-size:23px;padding:11px 16px}
.home-oral .oral-controls{left:35px;top:690px;width:650px;height:190px;grid-template-rows:61px 48px 31px;padding:8px;gap:3px}.home-oral .oral-word{font-size:35px}.home-oral .speaker-icon{width:59px;height:59px}.home-oral .oral-status{font-size:22px}.family .speech{top:749px;left:52px;width:625px;font-size:29px;background:#fff4d9d9;border:1px solid #dec597;box-shadow:0 4px 8px #73512f18}
.listen-speaker{left:717px;top:269px}.collected{border:0;box-shadow:none}.collected:empty{display:none}
/* v007: large friendly in-scene captions and generous picture/word targets. */
html,body,button{font-family:'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif}
.lesson-progress,.activity-shelf .lesson-progress,.family .lesson-progress{left:610px;top:35px;width:480px;padding:15px 22px 13px;border-radius:25px;background:linear-gradient(145deg,#fffdf1ee,#ffeabceF);border:3px solid #fff9e5;box-shadow:0 5px 0 #c69e6380,0 7px 20px #7b57391a}
.quest-caption h1,.activity-shelf .quest-caption h1,.family .quest-caption h1{font-size:42px;font-weight:900;line-height:1.05;letter-spacing:-1px;color:#785237}
.quest-count{font-size:28px;color:#ae6d36}.quest-meter i{height:7px}.quest-meter{margin:11px 0 8px}.activity-shelf .lesson-progress .step-track{position:static;opacity:1}.lesson-progress::before,.lesson-progress::after{display:none}
.activity-shelf .lesson-progress,.activity-listen .lesson-progress,.activity-repeat .lesson-progress{left:780px;top:22px;width:640px}
.family .lesson-progress{left:985px;top:65px;width:490px}
.activity-shelf .toy-button.glow{background:transparent;box-shadow:none;animation:none}.activity-shelf .toy-button.glow:before{display:none}
.activity-shelf .toy-button.glow .toy{animation:toy-shimmer 1.05s ease-in-out infinite;filter:drop-shadow(0 0 8px #fff7bc) drop-shadow(0 0 22px #ffe36c)}
.activity-shelf .toy-button.glow:after{content:'✦';position:absolute;right:22px;top:18px;background:none;border:0;box-shadow:none;color:#fff5af;font-size:45px;text-shadow:0 0 8px #eab65a;animation:star-shimmer .9s ease-in-out infinite}
@keyframes toy-shimmer{50%{filter:brightness(1.14) drop-shadow(0 0 12px #fff9d8) drop-shadow(0 0 30px #ffe06e)}}
@keyframes star-shimmer{50%{opacity:.35;transform:scale(.72) rotate(18deg)}}
.activity-listen .listen-speaker{left:1052px;top:170px;width:118px;height:118px}.activity-listen .listen-speaker .ui-icon{width:59px;height:59px}
.activity-listen .conveyor{left:625px;right:30px;top:598px;height:245px;border:3px solid #e8d5a5;border-bottom:19px solid #9caf9a;border-radius:33px;padding:12px 14px 22px;gap:14px;background:linear-gradient(#fffbeaee,#e7eddeef);box-shadow:0 9px 0 #68847666,0 15px 25px #624b301a;align-items:center}
.activity-listen .conveyor .toy-button{height:194px;min-width:0;border-radius:26px;border:3px solid #fffaf0;background:#fffaf0c7;box-shadow:0 5px 0 #cdbc9255}
.activity-listen .conveyor .toy{height:163px;width:174px}.activity-listen .conveyor .balloon .toy{width:145px}.activity-listen .conveyor .found{background:#def2dd;border-color:#a9d3ac;opacity:1}
.activity-listen .collected{display:none}
.activity-repeat .hero-toy{left:780px;top:530px;width:330px;height:280px;padding:20px;border:3px solid #fffaf0;border-radius:34px;background:#fff9e7eb;box-shadow:0 7px 0 #ccb48c77}
.activity-repeat .hero-toy .toy{height:240px;width:260px}
.activity-repeat .oral-controls{left:1170px;top:475px;width:330px;gap:10px;padding:16px;border-radius:32px;border:3px solid #fffdf4;background:#fff8e8ee;box-shadow:0 7px 0 #bfb89177}
.oral-controls .speaker-icon{width:88px;height:88px}.oral-controls .speaker-icon .ui-icon{width:44px;height:44px}.oral-word{font-size:48px;min-height:53px}.mic-button{width:115px;height:115px}.oral-status{font-size:27px}
.activity-scan .hero-toy{left:700px;top:525px;width:355px;height:290px;padding:18px;background:#fffaf1e8;border:3px solid #fffdf5;border-radius:34px;box-shadow:0 7px 0 #c8b28677}.activity-scan .hero-toy .toy{height:248px;width:295px}
.activity-scan .oral-controls{left:1110px;top:472px;width:335px;border-radius:32px;background:#fff8e8ee;border:3px solid #fffdf4;box-shadow:0 7px 0 #bfb89177}
.purchase-progress{position:absolute;left:620px;top:818px;height:65px;display:flex;gap:10px;align-items:center;padding:4px 12px;border-radius:22px;background:#fffaf0df}
.purchase-progress>span{position:relative;display:flex;width:80px;height:50px;align-items:center;justify-content:center;border-radius:14px;background:#efe8d6}.purchase-progress .toy{width:60px;height:43px;aspect-ratio:auto}.purchase-progress .packed{background:#d6edca}.purchase-progress b{position:absolute;right:0;top:-6px;color:#47815c;font-size:25px}
.activity-match .lesson-progress,.activity-initial .lesson-progress,.activity-scan .lesson-progress{left:555px;top:45px;width:420px}.activity-match .quest-caption h1,.activity-initial .quest-caption h1,.activity-scan .quest-caption h1{font-size:38px}
.activity-match .panel{left:630px;top:333px;width:930px;height:544px;padding:18px 35px 22px;border:3px solid #fffdf5;border-radius:22px;background:#fffbed;box-shadow:0 8px 0 #d7c09270,0 10px 22px #7053361a}
.activity-match .panel h2{font-size:26px;margin:0 0 14px;font-weight:700;color:#986847;letter-spacing:2px}.match-grid{height:456px;gap:170px;grid-template-columns:1fr 1fr}.match-col{grid-template-rows:repeat(4,108px);gap:8px}.match-item{font-size:49px;border-radius:24px;border:3px solid #e8d5a9;background:linear-gradient(#fffef8,#fff0ce);padding:5px;box-shadow:0 4px 0 #d0b78977;min-height:108px}
.match-item .toy,.match-item .toy.ball,.match-item .toy.balloon{height:94px;width:175px;max-height:none;aspect-ratio:auto}.match-item.picked{border-color:#efa958;background:#ffe4a5}.match-item.matched{border-color:#8ec598;background:#e2f0db;opacity:1}.match-grid>svg line{stroke:#6db594;stroke-width:9}
.activity-initial .panel{left:655px;top:431px;width:880px;height:430px;border:3px solid #fffef5;border-radius:27px;background:#fffbed;grid-template-columns:310px 1fr;grid-template-rows:165px 150px;padding:25px;gap:20px}
.initial-choices button{width:140px;height:123px;font-size:77px}.initial-word{font-size:89px}.initial-toy{height:335px}.initial-toy .toy,.initial-toy .toy.balloon{height:290px;width:275px}
.activity-initial .restored-receipt{display:block;left:720px;top:320px;width:770px;height:550px;padding:25px 45px}.restored-receipt h2{font-size:39px}.restored-receipt>div{display:flex;align-items:center;gap:35px;height:104px;border-top:2px dashed #d3c29e;font-size:43px}.restored-receipt .toy{width:145px;height:90px}.restored-receipt>div>span:last-child{margin-left:auto;color:#69a274}
.complete{top:490px;left:680px;width:815px;font-size:34px;border-radius:30px}.complete strong{font-size:58px}
.physical-toy-hotspot{display:block;width:100%;height:100%}.activity-home.entering .toy-button{animation:none}.family .toy-button{background:transparent}.family .toy-button:hover{outline:4px solid #fff4c0;outline-offset:0}.family .speech{font-size:35px}
.story .lesson-progress{display:none}
/* Keep all physical shelf toys visible while practising; controls sit on the floor below. */
.activity-repeat .hero-toy{left:748px;top:711px;width:195px;height:170px;padding:12px;border-radius:26px}
.activity-repeat .hero-toy .toy{height:146px;width:166px}
.activity-repeat .oral-controls{left:963px;top:711px;width:590px;height:170px;padding:7px 25px;display:grid;grid-template-columns:1fr 155px;grid-template-rows:71px 48px 25px;gap:2px;border-radius:26px}
.activity-repeat .oral-controls .speaker-icon{grid-column:1;grid-row:1;justify-self:center;width:67px;height:67px}
.activity-repeat .oral-controls .speaker-icon .ui-icon{width:37px;height:37px}
.activity-repeat .oral-controls .oral-word{grid-column:1;grid-row:2;justify-self:center;min-height:43px;font-size:42px}
.activity-repeat .oral-controls .mic-button{grid-column:2;grid-row:1/3;align-self:center;justify-self:center;width:106px;height:106px}
.activity-repeat .oral-controls .oral-status{grid-column:2;grid-row:3;font-size:22px;white-space:nowrap;text-align:center}
.activity-repeat .purchase-progress{display:none}
.activity-match .lesson-progress,.activity-initial .lesson-progress,.activity-scan .lesson-progress{left:555px;width:345px}
.activity-match .quest-caption h1,.activity-initial .quest-caption h1,.activity-scan .quest-caption h1{font-size:34px;line-height:1.08}

/* Transparent hit areas follow the actual H02 v2 final frame. */
.family .shelf-0{left:920px;top:350px;width:240px;height:155px}.family .shelf-1{left:1230px;top:340px;width:235px;height:165px}.family .shelf-2{left:920px;top:568px;width:240px;height:160px}.family .shelf-3{left:1230px;top:555px;width:235px;height:178px}
/* The picked-up receipt shot brings Panda farther right; keep his face clear. */
.activity-initial .panel:not(.restored-receipt){top:535px;height:350px;padding:20px 25px;grid-template-rows:130px 125px;gap:12px 20px}
.activity-initial .initial-toy{height:288px}.activity-initial .initial-toy .toy{height:265px;width:265px}
.activity-initial .initial-word{font-size:79px;margin:6px 0 0}.activity-initial .initial-choices button{height:108px;font-size:73px}
.activity-initial .restored-receipt{left:655px;top:535px;width:880px;height:350px;padding:15px 35px}.restored-receipt h2{font-size:30px;margin:0 0 8px}.restored-receipt>div{height:65px;font-size:32px}.restored-receipt .toy{width:105px;height:56px}
/* v008: persistent teacher navigation lives outside the replaced scene layer. */
#teacher-ui{position:absolute;inset:0;pointer-events:none;z-index:30}
#teacher-ui button,#teacher-ui nav{pointer-events:auto}
.teacher-menu{position:absolute;left:25px;bottom:103px;width:330px;max-height:770px;overflow:auto;display:flex;flex-direction:column;gap:7px;padding:16px;background:#fffaf0f7;border:3px solid #fff5df;border-radius:25px;box-shadow:0 10px 35px #382b2840}
.teacher-menu button{width:100%;min-height:48px;border:0;border-radius:12px;background:#f0eadc;color:#574734;font:600 25px/1.25 'PingFang SC',sans-serif;text-align:left;padding:10px 17px}
.teacher-menu button:hover{background:#ffdf9e}.teacher-menu button.active{background:#337660;color:white}
.teacher-menu button span{float:right}.teacher-activities{display:flex;flex-direction:column;gap:5px;padding-left:18px;border-left:3px solid #cdbf9f;margin-left:9px}
.teacher-activities button{font-size:23px;min-height:43px;padding:8px 12px}.teacher-utility{display:flex;gap:10px;border-top:1px solid #dfcfac;padding-top:10px}.teacher-utility button{font-size:20px;text-align:center;min-height:40px}
#captions{position:absolute;z-index:20;pointer-events:none;left:30px;top:660px;width:545px;padding:12px 18px;background:#263b36eb;border:2px solid #fff8dc99;color:#fffdf2;font-size:33px;font-weight:700;line-height:1.25;text-align:center;border-radius:17px;text-wrap:balance;box-shadow:0 3px 12px #173d3626}
#captions:empty{display:none}#captions[data-position="story"]{left:420px;top:auto;bottom:35px;width:1130px;font-size:42px;line-height:1.2;padding:14px 22px}
#captions[data-position="home"],#captions[data-position="summary"]{left:30px;top:565px;width:790px}
#notice{z-index:25}
/* v009: one shared practice surface, including its centered results. */
.practice-card{position:absolute;left:650px;top:480px;width:875px;height:392px;padding:20px 28px 14px;border:3px solid #fffdf3;border-radius:36px;background:linear-gradient(135deg,#fffdf2f7,#fff0d4f5);box-shadow:0 8px 0 #bfa67880,0 14px 25px #583a2420;display:flex;flex-direction:column;align-items:stretch}
.practice-main{display:flex;flex:1;align-items:center;justify-content:center;gap:40px;min-height:0}
#layer .practice-card .hero-toy{position:static;left:auto;top:auto;width:310px;height:270px;padding:10px;background:none;border:0;box-shadow:none;display:flex;align-items:center;justify-content:center}
#layer .practice-card .hero-toy .toy{width:275px;height:250px;aspect-ratio:auto}
#layer .practice-card .oral-controls{position:static;left:auto;top:auto;width:330px;height:auto;padding:0;border:0;box-shadow:none;background:none;display:flex;flex-direction:column;gap:5px}
#layer .practice-card .oral-status{font-size:27px;min-height:32px}
#layer .practice-card .purchase-progress{position:static;left:auto;top:auto;display:flex;flex:none;align-self:center;justify-content:center;gap:20px;height:62px;padding:8px 20px;background:transparent;border-radius:0;margin-top:8px;border-top:2px solid #e8d6b3;min-width:470px}
#layer .practice-card .purchase-progress>span{width:80px;height:46px;background:#eae3d0}
#layer .practice-card .purchase-progress .packed{background:#d6ebcb}
#layer .practice-card .complete{position:static;left:auto;top:auto;width:100%;padding:15px;background:none;border:0;box-shadow:none;transform:none;align-self:center;font-size:35px}
#layer .practice-card .complete strong{font-size:55px;margin:0 0 14px}
.activity-repeat .practice-card{left:690px;top:700px;width:865px;height:186px;padding:8px 22px;border-radius:28px}
.activity-repeat .practice-main{gap:25px}
#layer.activity-repeat .practice-card .hero-toy{width:155px;height:110px;padding:0}
#layer.activity-repeat .practice-card .hero-toy .toy{width:145px;height:110px}
#layer.activity-repeat .practice-card .oral-controls{width:590px;height:112px;display:grid;grid-template-columns:75px 1fr 125px;grid-template-rows:75px 30px;gap:4px 16px}
#layer.activity-repeat .practice-card .speaker-icon{grid-column:1;grid-row:1/3;align-self:center;width:72px;height:72px}
#layer.activity-repeat .practice-card .oral-word{grid-column:2;grid-row:1/3;align-self:center;justify-self:center;font-size:43px}
#layer.activity-repeat .practice-card .mic-button{grid-column:3;grid-row:1;width:77px;height:77px;align-self:center;justify-self:center}
#layer.activity-repeat .practice-card .mic-button .ui-icon{width:40px;height:40px}
#layer.activity-repeat .practice-card .oral-status{grid-column:3;grid-row:2;font-size:20px;min-height:24px;white-space:nowrap;text-align:center}
#layer.activity-repeat .practice-card .purchase-progress{height:45px;margin-top:2px;padding:4px 20px;gap:18px}
#layer.activity-repeat .practice-card .purchase-progress>span{height:34px;width:72px}
#layer.activity-repeat .practice-card .purchase-progress .toy{height:31px;width:54px}
#layer.activity-repeat .practice-card .complete{font-size:28px;padding:5px}
#layer.activity-repeat .practice-card .complete strong{font-size:38px;margin-bottom:5px}
.activity-listen .complete{left:625px;top:598px;width:945px;min-height:245px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:28px}
/* A teaching summary stays open until the class is ready for the song. */
.knowledge-backdrop{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#213b343d;backdrop-filter:blur(3px)}
.knowledge-card{width:1190px;padding:32px 42px 30px;border:5px solid #fff9e8;border-radius:44px;background:linear-gradient(140deg,#fffdf2,#fff0d6);box-shadow:0 12px 0 #b79a6c80,0 22px 65px #26352d42;color:#785237}
.knowledge-heading{text-align:center;margin-bottom:23px}.knowledge-badge{font-size:20px;letter-spacing:5px;color:#ae7a44;font-weight:800}.knowledge-heading h1{font-size:47px;line-height:1.3;margin:8px 0 0;font-family:'Arial Rounded MT Bold','PingFang SC',sans-serif}
.knowledge-words{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.knowledge-toy{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:258px;border:3px solid #ead8b1;border-radius:28px;background:#fffdf7;color:#754e35;box-shadow:0 5px 0 #e3cfa0}
.knowledge-toy:hover,.knowledge-toy.selected{border-color:#e5a454;background:#ffefc7}
.knowledge-toy .toy{height:157px;width:190px;aspect-ratio:auto}.knowledge-toy strong{font-size:42px}.knowledge-speaker{position:absolute;top:10px;right:10px;color:#b5874c}.knowledge-speaker .ui-icon{width:28px;height:28px}
.knowledge-pattern{margin:28px 0 24px;padding:21px;border-radius:26px;background:#e6efda;border:2px solid #d3dfc4;display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}
.knowledge-pattern>span{font:600 25px 'PingFang SC',sans-serif;color:#638167}.knowledge-pattern strong{font-size:55px;color:#305f4f}.knowledge-pattern em{font-style:normal;color:#d28540}.knowledge-pattern p{margin:0;font-size:30px;color:#5d7865}
.knowledge-footer{display:flex;align-items:center;justify-content:space-between;gap:24px}.knowledge-footer>span{font-size:25px;color:#8d7756}.knowledge-footer .action{display:flex;align-items:center;gap:15px;font-size:31px;padding:17px 28px}.knowledge-footer .ui-icon{width:32px;height:32px}
#captions:not([data-position="story"]){display:none}
.activity-scan .practice-main{display:grid;grid-template-columns:100px 1fr 220px;gap:22px;align-items:center}
.activity-scan .practice-speaker{position:static;align-self:center;justify-self:center;width:94px;height:94px}
.activity-scan .practice-speaker .ui-icon{width:48px;height:48px}
#layer.activity-scan .practice-card .hero-toy{width:290px;height:260px;justify-self:center}
#layer.activity-scan .practice-card .oral-controls{width:220px;gap:20px;align-self:center;justify-self:center}
#layer.activity-scan .practice-card .mic-button{width:132px;height:132px}
#layer.activity-scan .practice-card .oral-status{font-size:27px;text-align:center}
.activity-scan .practice-card.is-complete .practice-main{display:flex}

/* v010: toy-shop plush artwork with native learning images and touch controls. */
#layer:not(.activity-listen):where(:not(.activity-match)) .lesson-board{position:absolute;left:315px;top:70px;width:1270px;height:815px;background:var(--practice-board-art) center/100% 100% no-repeat;filter:drop-shadow(0 12px 14px #3b422928)}
#layer:not(.activity-listen):where(:not(.activity-match)) .lesson-board .lesson-progress{position:absolute;left:145px;top:124px;width:980px;padding:0 0 14px;background:none;border:0;border-radius:0;box-shadow:none;z-index:2}
#layer:not(.activity-listen):where(:not(.activity-match)) .lesson-board .quest-caption h1{font-size:54px;letter-spacing:-1px;color:#2d665b;line-height:1.1}
#layer:not(.activity-listen):where(:not(.activity-match)) .lesson-board .quest-count{font-size:36px;color:#a4673d}.lesson-board .quest-meter{margin:14px 0 0}.lesson-board .quest-meter i{height:9px}.lesson-board .step-track{display:none}
#layer:not(.activity-listen):where(:not(.activity-match)) .board-content{position:absolute;left:110px;right:110px;top:235px;bottom:100px}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card{position:static;width:100%;height:100%;padding:0;border:0;background:none;box-shadow:none;border-radius:0;display:flex;flex-direction:column}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-main{display:flex;flex:1;align-items:center;justify-content:center;gap:40px;min-height:0}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .hero-toy,#layer.activity-repeat .practice-card .hero-toy,#layer.activity-scan .practice-card .hero-toy{width:405px;height:350px;padding:0;position:static}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .hero-toy .toy,#layer.activity-repeat .practice-card .hero-toy .toy{width:395px;height:345px;aspect-ratio:auto}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .oral-controls,#layer.activity-repeat .practice-card .oral-controls,#layer.activity-scan .practice-card .oral-controls{position:static;display:flex;flex-direction:column;justify-content:center;width:320px;height:auto;gap:16px;padding:0;background:none;border:0;box-shadow:none}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .speaker-icon,#layer:not(.activity-listen):where(:not(.activity-match)) .practice-speaker{position:static;width:110px;height:110px;min-width:110px;align-self:center}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .speaker-icon .ui-icon{width:55px;height:55px}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .oral-word{font-size:68px;min-height:78px;line-height:1.1}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .mic-button,#layer.activity-repeat .practice-card .mic-button{width:164px;height:164px;min-width:164px;align-self:center}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .mic-button .ui-icon{width:78px;height:78px}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .oral-status,#layer.activity-repeat .practice-card .oral-status{font-size:32px;min-height:40px;white-space:nowrap;text-align:center}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .purchase-progress,#layer.activity-repeat .practice-card .purchase-progress{position:static;display:flex;align-self:center;justify-content:center;gap:26px;height:86px;margin-top:16px;padding:8px 30px;border-top:2px solid #b7cabb;min-width:670px;background:none}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .purchase-progress>span,#layer.activity-repeat .practice-card .purchase-progress>span{width:116px;height:64px;border-radius:18px;background:#ede4d6}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .purchase-progress .toy,#layer.activity-repeat .practice-card .purchase-progress .toy{width:91px;height:59px}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .purchase-progress b{font-size:34px;right:-5px;top:-7px}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .purchase-progress .packed{background:#c9e5c7}
#layer:not(.activity-listen):where(:not(.activity-match)) .complete,#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .complete,#layer.activity-repeat .practice-card .complete{position:static;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:15px;background:none;border:0;box-shadow:none;font-size:43px;line-height:1.35;text-align:center}
#layer:not(.activity-listen):where(:not(.activity-match)) .complete strong,#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .complete strong,#layer.activity-repeat .practice-card .complete strong{font-size:86px;margin:0 0 25px;color:#dc784c}
#layer:not(.activity-listen):where(:not(.activity-match)) .activity-scan .practice-main{display:flex}
#layer:not(.activity-listen):where(:not(.activity-match)) .listen-speaker{position:absolute;left:469px;top:0;width:112px;height:112px}
#layer:not(.activity-listen):where(:not(.activity-match)) .listen-speaker .ui-icon{width:56px;height:56px}
#layer:not(.activity-listen):where(:not(.activity-match)) .conveyor,#layer:not(.activity-listen):where(:not(.activity-match)) .toy-gallery{position:absolute;left:0;right:0;top:140px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;height:317px;padding:0;background:none;border:0;box-shadow:none;border-radius:0;transform:none}
#layer:not(.activity-listen):where(:not(.activity-match)) .conveyor .toy-button,#layer:not(.activity-listen):where(:not(.activity-match)) .toy-gallery .toy-button{position:relative;left:auto;top:auto;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;border:3px solid #e3cda2;background:linear-gradient(160deg,#fffef5,#ffedcd);box-shadow:0 7px 0 #c5ab8255;border-radius:38px;outline-offset:0;transform:none}
#layer:not(.activity-listen):where(:not(.activity-match)) .conveyor .toy,#layer:not(.activity-listen):where(:not(.activity-match)) .toy-gallery .toy{width:215px;height:228px;max-height:none;aspect-ratio:auto}
#layer:not(.activity-listen):where(:not(.activity-match)) .toy-gallery{top:0;height:440px}
#layer:not(.activity-listen):where(:not(.activity-match)) .toy-gallery .word{position:static;font-size:54px;line-height:1.15;padding:0;background:none;border:0;box-shadow:none;transform:none}
#layer:not(.activity-listen):where(:not(.activity-match)) .toy-gallery .found,#layer:not(.activity-listen):where(:not(.activity-match)) .conveyor .found{background:#e1efd8;border-color:#a5c79a;opacity:1}
#layer.activity-home .toy-gallery{height:285px}
#layer.activity-home .toy-gallery .toy{height:220px}
#layer:not(.activity-listen):where(:not(.activity-match)) .home-oral{position:absolute;left:0;top:317px;width:100%;height:150px}
#layer:not(.activity-listen):where(:not(.activity-match)) .home-oral .oral-controls{position:static;display:grid;grid-template-columns:105px 1fr 142px;grid-template-rows:108px 34px;gap:4px 24px;width:100%;height:150px;padding:0;background:none;border:0;box-shadow:none}
#layer:not(.activity-listen):where(:not(.activity-match)) .home-oral .speaker-icon{width:100px;height:100px;grid-column:1;grid-row:1;align-self:center}
#layer:not(.activity-listen):where(:not(.activity-match)) .home-oral .oral-word{grid-column:2;grid-row:1/3;font-size:62px;align-self:center;justify-self:center;min-height:70px}
#layer:not(.activity-listen):where(:not(.activity-match)) .home-oral .mic-button{grid-column:3;grid-row:1;width:111px;height:111px;justify-self:center}
#layer:not(.activity-listen):where(:not(.activity-match)) .home-oral .oral-status{grid-column:3;grid-row:2;font-size:28px;text-align:center;white-space:nowrap}

#layer:not(.activity-listen):where(:not(.activity-match)) .panel,#layer.activity-initial .panel:not(.restored-receipt),#layer.activity-initial .restored-receipt{position:static;left:auto;top:auto;width:100%;height:100%;padding:0;background:none;border:0;box-shadow:none;border-radius:0}
#layer:not(.activity-listen):where(:not(.activity-match)) .match-grid{height:510px;gap:180px;grid-template-columns:1fr 1fr}
#layer:not(.activity-listen):where(:not(.activity-match)) .match-col{grid-template-rows:repeat(4,118.5px);gap:12px}
#layer:not(.activity-listen):where(:not(.activity-match)) .match-item{font-size:62px;min-height:0;padding:5px;border-radius:28px}
#layer:not(.activity-listen):where(:not(.activity-match)) .match-item .toy,#layer:not(.activity-listen):where(:not(.activity-match)) .match-item .toy.ball,#layer:not(.activity-listen):where(:not(.activity-match)) .match-item .toy.balloon{height:108px;width:230px;max-height:none;aspect-ratio:auto}
#layer.activity-initial .panel:not(.restored-receipt){display:grid;grid-template-columns:450px 1fr;grid-template-rows:235px 205px;gap:20px 30px}
#layer.activity-initial .initial-toy{height:430px;grid-row:1/3;display:flex;align-items:center;justify-content:center}
#layer.activity-initial .initial-toy .toy{height:395px;width:420px}
#layer.activity-initial .initial-word{font-size:112px;line-height:1.1;margin:0;align-self:center;text-align:center}
#layer.activity-initial .initial-choices{gap:50px;justify-content:center;align-items:start}
#layer.activity-initial .initial-choices button{width:170px;height:160px;font-size:100px}
#layer.activity-initial .restored-receipt h2{font-size:48px;text-align:center;margin:0 0 10px}
#layer.activity-initial .restored-receipt>div{height:95px;font-size:48px;padding:0 50px}
#layer.activity-initial .restored-receipt .toy{width:180px;height:86px}
/* Summary uses the same custom plush image, with four tactile vocabulary cards. */
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-backdrop{background:#233f3833;backdrop-filter:blur(3px)}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-card{position:relative;width:1490px;height:890px;padding:146px 136px 75px;background:var(--board-art) center/100% 100% no-repeat;border:0;box-shadow:none;border-radius:0;color:#355f54;filter:drop-shadow(0 10px 15px #172e3026)}
#layer:not(.activity-listen):where(:not(.activity-match)) #knowledge-title{margin:0 0 22px;font-size:54px;line-height:1.1;text-align:center;color:#2c665b}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-section-label{font-size:32px;font-weight:900;letter-spacing:.5px;color:#4b7767}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-words{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:12px}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-toy{height:285px;border:3px solid #cfdfdd;border-radius:42px 42px 30px 30px;gap:10px;box-shadow:0 8px 0 #8caea844,inset 0 4px 0 #ffffff;background:linear-gradient(#fffefa,#e4f2f5)}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-toy:nth-child(2){background:linear-gradient(#fffefa,#fbe0d5);border-color:#ebc6b4}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-toy:nth-child(3){background:linear-gradient(#fffefa,#fff0ba);border-color:#e7d8a0}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-toy:nth-child(4){background:linear-gradient(#fffefa,#f5dbeb);border-color:#e8bbd6}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-toy.selected{outline:5px solid #e89b4f;outline-offset:1px}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-toy .toy{width:230px;height:190px;aspect-ratio:auto}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-toy strong{font-size:52px;color:#654a38;line-height:1.1}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-speaker{top:14px;right:14px;color:#507968}.knowledge-speaker .ui-icon{width:31px;height:31px}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-pattern{margin:24px 0 0;padding:16px 26px;height:122px;border:2px solid #c6d8bd;border-radius:28px;background:#e5eed9;display:grid;grid-template-columns:210px 1fr 270px;gap:15px;align-items:center}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-pattern .knowledge-section-label{font-size:32px}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-pattern strong{font-size:65px;white-space:nowrap;line-height:1.1}.knowledge-pattern em{color:#d48243;font-style:normal}
#layer:not(.activity-listen):where(:not(.activity-match)) .sentence-example{font-size:36px;white-space:nowrap;text-align:right;color:#4f7664}
#layer:not(.activity-listen):where(:not(.activity-match)) .knowledge-footer{justify-content:center;display:flex;margin-top:20px}
.song-button,.ending-replay{border:3px solid #ffdfb3;border-radius:32px;display:flex;align-items:center;justify-content:center;gap:20px;padding:12px 32px;min-height:75px;background:linear-gradient(#ffb977,#f39562);box-shadow:inset 0 3px #ffdfb3,0 6px #ba714b;color:#663e2e;font-size:34px;font-weight:900}
.song-button .ui-icon{width:40px;height:40px}
.ending-replay{position:absolute;right:105px;bottom:33px;font-size:28px;min-height:62px;padding:8px 25px;background:linear-gradient(#fffcde,#ffdf9c)}
#captions:not([data-position="story"]){display:none}

#layer:not(.activity-listen):where(:not(.activity-match)) .lesson-board .lesson-progress{left:170px;top:145px;width:930px}
#layer:not(.activity-listen):where(:not(.activity-match)) .board-content{top:260px}
#layer.activity-repeat .practice-card .oral-word{font-size:68px;min-height:78px}
#layer.activity-repeat .practice-card .mic-button .ui-icon{width:78px;height:78px}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .speaker-icon,#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .mic-button{flex-shrink:0}
#layer:not(.activity-listen):where(:not(.activity-match)) .board-content{bottom:130px}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .hero-toy,#layer.activity-repeat .practice-card .hero-toy,#layer.activity-scan .practice-card .hero-toy{width:395px;height:320px}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .hero-toy .toy,#layer.activity-repeat .practice-card .hero-toy .toy{width:375px;height:315px}
#layer:not(.activity-listen):where(:not(.activity-match)) .practice-card .purchase-progress,#layer.activity-repeat .practice-card .purchase-progress{height:74px;margin-top:12px;padding:3px 30px}
#layer:not(.activity-listen):where(:not(.activity-match)) .conveyor{top:120px;height:295px}
#layer:not(.activity-listen):where(:not(.activity-match)) .toy-gallery{height:410px}
#layer.activity-home .toy-gallery{height:245px}
#layer.activity-home .toy-gallery .toy{height:200px}
#layer:not(.activity-listen):where(:not(.activity-match)) .home-oral{top:275px}
#layer.activity-initial .panel:not(.restored-receipt){grid-template-rows:190px 205px;gap:20px 30px}
#layer.activity-initial .initial-toy{height:410px}
#layer.activity-initial .initial-toy .toy{height:370px;width:395px}

#layer:not(.activity-listen):where(:not(.activity-match)) .match-grid{height:410px;gap:80px}
#layer:not(.activity-listen):where(:not(.activity-match)) .match-grid>svg{display:none}
#layer:not(.activity-listen):where(:not(.activity-match)) .match-col{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,197px);gap:16px}
#layer:not(.activity-listen):where(:not(.activity-match)) .match-item{font-size:49px;color:#654a38;border-radius:32px}
#layer:not(.activity-listen):where(:not(.activity-match)) .match-item .toy,#layer:not(.activity-listen):where(:not(.activity-match)) .match-item .toy.ball,#layer:not(.activity-listen):where(:not(.activity-match)) .match-item .toy.balloon{height:177px;width:200px}
#layer:not(.activity-listen):where(:not(.activity-match)) .match-item.matched{box-shadow:inset 0 0 0 3px #7faf86,0 4px #abc8a2;background:#d9ebd3}
#layer:not(.activity-listen):where(:not(.activity-match)) .home-oral{left:85px;width:880px;top:265px}

/* Physical toy shelves remain in-scene; only the existing oral UI is enlarged. */
#layer.activity-home .home-oral{position:absolute;left:30px;top:660px;width:780px;height:230px;padding:25px 35px;background:linear-gradient(135deg,#fffdf1f7,#fff0d9f5);border:3px solid #fff9e7;border-radius:35px;box-shadow:0 7px 0 #bbaa8199}
#layer.activity-home .home-oral .oral-controls{width:100%;height:165px;grid-template-columns:105px 1fr 135px;grid-template-rows:120px 35px;gap:4px 12px}
#layer.activity-home .home-oral .oral-word{font-size:43px;min-height:50px}
#layer.activity-home .home-oral .speaker-icon{width:100px;height:100px}
#layer.activity-home .home-oral .mic-button{width:116px;height:116px}
#layer.activity-home .home-oral .oral-status{font-size:26px}
#layer.activity-repeat .practice-card .practice-speaker{width:110px;height:110px;min-width:110px;flex-shrink:0}

/* Summary content stays inside the cream inset; artwork itself is unchanged. */
#layer.activity-summary .knowledge-card{padding:0}
#layer.activity-summary .knowledge-content{position:absolute;left:205px;right:205px;top:155px;display:grid;grid-template-rows:62px 34px 238px 100px 82px;gap:12px;min-width:0}
#layer.activity-summary #knowledge-title{margin:0;font-size:48px;align-self:center}
#layer.activity-summary .knowledge-section-label{font-size:30px;line-height:34px}
#layer.activity-summary .knowledge-words{margin:0;gap:18px;min-width:0}
#layer.activity-summary .knowledge-toy{height:238px;min-width:0;gap:6px;border-radius:32px;box-shadow:0 5px 0 #8caea844,inset 0 3px #fff}
#layer.activity-summary .knowledge-toy .toy{width:200px;height:155px}
#layer.activity-summary .knowledge-toy strong{font-size:46px}
#layer.activity-summary .knowledge-pattern{margin:0;padding:14px 22px;height:100px;min-width:0;grid-template-columns:170px minmax(0,1fr) 210px;gap:16px;box-shadow:inset 0 2px #f6faed}
#layer.activity-summary .knowledge-pattern .knowledge-section-label{font-size:30px}
#layer.activity-summary .knowledge-pattern strong{font-size:55px}
#layer.activity-summary .sentence-example{font-size:32px}
#layer.activity-summary .knowledge-footer{margin:0;align-items:center}
#layer.activity-summary .song-button{position:relative;isolation:isolate;overflow:hidden;min-height:76px;height:76px;min-width:300px;padding:10px 34px;border:3px solid #e4f7cd;border-radius:999px;background:linear-gradient(180deg,#ddf7da 0%,#a4d7bd 46%,#75bca4 55%,#83c6ac 100%);box-shadow:inset 0 3px 4px #ffffffed,inset 0 -5px 8px #418b7855,0 5px 0 #528f77,0 9px 12px #4f705e30;color:#245a4b;text-shadow:0 1px 0 #edffec;font-size:34px;gap:14px}
#layer.activity-summary .song-button:before{content:'';position:absolute;z-index:-1;pointer-events:none;top:5px;left:20px;right:20px;height:29px;border-radius:50%;background:linear-gradient(#ffffffb8,#ffffff05)}
#layer.activity-summary .song-button:hover{filter:brightness(1.04)}
#layer.activity-summary .song-button:active{transform:translateY(3px);box-shadow:inset 0 2px 5px #4a927655,0 2px 0 #528f77}
/* Match uses the unchanged v009 rules above: two vertical columns. */











/* Words and Sentence are sibling section headings, outside their cards. */
#layer.activity-summary .knowledge-content{grid-template-rows:62px 34px 218px 34px 82px 82px;gap:10px}
#layer.activity-summary .knowledge-toy{height:218px}
#layer.activity-summary .knowledge-toy .toy{height:138px}
#layer.activity-summary .knowledge-pattern{height:82px;display:flex;justify-content:center;align-items:center;padding:10px 22px}
