
@font-face{font-family:Classroom;src:url('../fonts/resource-01.woff')}*{box-sizing:border-box}body{margin:0;background:#deedd0;color:#25422d;font-family:Classroom,'Microsoft YaHei',sans-serif}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:4px solid #248bcc;outline-offset:3px}button:disabled{cursor:default;opacity:.55}[hidden]{display:none!important}.app{height:100dvh;min-height:650px;max-width:1800px;margin:auto;padding:18px 30px 22px;background:linear-gradient(#f0f8e7ee,#deedd0ee),url('../images/resource-02.png') center/cover;display:flex;flex-direction:column;gap:12px}header{display:flex;align-items:center;justify-content:space-between;gap:20px}h1{font-size:clamp(28px,3vw,48px);margin:0;letter-spacing:2px}header p{margin:2px 0 0;font-size:18px}.tools{display:flex;gap:8px}.tools button,.tabs button,.mode button{border:2px solid #c4d4b3;border-radius:15px;background:#fffdf1;padding:10px 16px;font-weight:700;color:#345437}.tabs{display:flex;gap:10px}.tabs button{font-size:19px;min-width:150px}.tabs button[aria-selected=true]{background:#365b3c;color:white;border-color:#365b3c}.tabs .mark{margin-left:10px;color:#dbb442}.play{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px}.view{border:7px solid #fff8da;border-radius:28px;overflow:hidden;position:relative;box-shadow:0 8px 25px #2a4f2b26;background:#59824a}.scene{position:absolute;width:100%;height:100%;object-fit:cover}.creature{position:absolute;width:46%;height:auto;left:27%;bottom:40%;filter:drop-shadow(0 10px 6px #152b2750);transition:transform .6s}.hawk{position:absolute;width:24%;left:100%;top:6%;pointer-events:none;filter:drop-shadow(0 8px 7px #18391a33)}.hawk.scanning{animation:scan 2.5s ease-in-out forwards}@keyframes scan{0%{left:102%;transform:rotate(-6deg)}45%{left:45%;transform:rotate(2deg)}100%{left:-35%;transform:rotate(-8deg)}}.location{position:absolute;top:18px;left:18px;background:#fff9e7ec;border:2px solid #dec994;border-radius:15px;padding:8px 18px;font-size:22px;font-weight:700}.sceneNote{position:absolute;bottom:10px;left:14px;color:#fff;background:#213b2abf;padding:6px 12px;border-radius:10px;font-size:14px}.side{background:#fffdf1;border:3px solid #e6d9ae;border-radius:26px;padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 8px 24px #2848290d}.side h2{font-size:25px;margin:0}.mode{display:flex;gap:8px}.mode button{flex:1;padding:12px 3px}.mode button[aria-pressed=true]{border-color:#428751;background:#e6f2dc;box-shadow:inset 0 -3px #428751}.sample{display:inline-block;vertical-align:middle;width:20px;height:20px;border-radius:50%;margin-right:5px;border:1px solid #0002}.palette{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.swatch{height:63px;border:4px solid white;border-radius:18px;box-shadow:0 2px 6px #243b242d;position:relative}.swatch.selected{outline:3px solid #253f2b;outline-offset:2px}.swatch span{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:14px;font-weight:700;text-shadow:0 1px 2px #fff;color:#162e23}.primary{border:0;color:#593615;background:url('../images/resource-03.png') center/100% 100% no-repeat;font-weight:800;padding:20px 24px;font-size:26px;min-height:72px}.test{margin-top:auto}.feedback{min-height:70px;background:#f2f4df;border-radius:16px;padding:12px 16px;font-size:21px;line-height:1.5;display:flex;align-items:center;justify-content:center;text-align:center;gap:20px}.feedback.good{background:#dceecf}.feedback button{background:#426847;color:white;border:0;border-radius:12px;padding:10px 20px;font-size:20px;white-space:nowrap}.intro,.modal{position:fixed;inset:0;background:#16382b66;backdrop-filter:blur(6px);display:grid;place-items:center;z-index:5;padding:20px}.introCard,.modalCard{width:min(820px,95vw);background:#fffbeb;border:7px solid #e9d09c;border-radius:38px;padding:35px 48px;text-align:center;box-shadow:0 25px 90px #10251955}.eyebrow{letter-spacing:4px;font-size:20px;color:#628258}.introCard h2,.modalCard h2{font-size:44px;margin:14px 0 18px;line-height:1.3}.introCard p,.modalCard p{font-size:24px;line-height:1.7}.introCard strong{color:#bd6f20}.modalCard .pair{display:flex;justify-content:center;gap:12px;margin:24px}.chip{width:65px;height:65px;border-radius:18px;border:3px solid white;box-shadow:0 3px 12px #354c2933}.concept{font-size:44px!important;color:#446e39;font-weight:800}.modalCard .small{font-size:19px;color:#687355}.success .creature{animation:happy .7s ease-in-out}@keyframes happy{50%{transform:translateY(-12px) rotate(-3deg)}}@media(max-width:1000px){.app{padding:12px;gap:9px}.play{grid-template-columns:minmax(0,1fr) 260px;gap:10px}.side{padding:12px;gap:10px}.swatch{height:53px}.tools button{padding:9px}.tabs button{min-width:120px}header p{font-size:15px}.feedback{font-size:18px}.side h2{font-size:22px}.primary{font-size:23px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}}
/* A bright, touch-friendly storybook game skin. */
.colorStudy{display:flex;justify-content:center;gap:42px;margin:28px 0}.colorItem{display:flex;flex-direction:column;align-items:center;gap:9px;min-width:110px}.colorItem .chip{display:block;width:86px;height:86px}.colorItem b{font-size:23px;color:#6e557b}.colorItem small{font-size:17px;color:#877a8c}.studyQuestion{font-size:29px!important;font-weight:800;color:#7b60a1}@media(max-width:550px){.colorStudy{gap:15px;margin:20px 0}.colorItem{min-width:72px}.colorItem .chip{width:62px;height:62px}.colorItem b{font-size:18px}.colorItem small{font-size:14px}.studyQuestion{font-size:23px!important}}
body{background:#e8f5eb;color:#344642}.app{max-width:none;min-height:680px;padding:20px 32px 18px;gap:12px;background:radial-gradient(ellipse at 4% 5%,#fff9d1 0,transparent 35%),radial-gradient(ellipse at 98% 90%,#e4dcff 0,transparent 40%),linear-gradient(155deg,#ddf4f1,#fff9e8 55%,#f1eaff)}
header{min-height:68px}h1{font-size:clamp(30px,3.1vw,47px);font-weight:950;letter-spacing:1px;color:#417d63;text-shadow:0 3px 0 white,0 5px 0 #bbdacc;line-height:1.15}h1 em{font-style:normal;color:#ee9760}header p{font-size:16px;margin-top:8px;color:#6d8075}.tools{gap:7px}.tools button{background:#ffffffc9;border:2px solid white;box-shadow:0 3px 0 #c5dcd5;font-size:15px;padding:9px 13px;color:#547569;border-radius:99px}.tools button:hover{background:#fff6d7;transform:translateY(-2px)}
.journey{display:flex;align-items:center;justify-content:space-between}.tabs{gap:12px}.tabs button{min-width:164px;border:3px solid white;border-radius:20px;padding:9px 20px;color:#778681;background:#ffffffac;box-shadow:0 4px 0 #d1e3da;transition:.2s;font-size:20px}.tabs button[aria-selected=true]{background:#ffdc86;color:#684c2d;border-color:#fff8d9;box-shadow:0 4px 0 #d9af60;transform:translateY(-2px)}.tabs button:nth-child(2)[aria-selected=true]{background:#eac6a3}.tabs button:nth-child(3)[aria-selected=true]{background:#ffed98}.tabs .mark{color:#52825c;margin-left:6px}.progress{font-size:18px;font-weight:800;color:#957541;background:#fff6d7;border:2px solid white;padding:8px 18px;border-radius:99px}.progress b{color:#d4942c}
.play{grid-template-columns:minmax(0,1fr) 320px;gap:18px}.view{border:7px solid #fff;border-radius:32px;box-shadow:0 7px 0 #c1d4c0,0 14px 30px #47684219;isolation:isolate}.scene{object-fit:fill}.creature{width:43%;left:28%;bottom:29%;filter:drop-shadow(0 9px 4px #3c32213d);transition:filter .3s;z-index:2}.location{top:16px;left:17px;border:3px solid white;background:#fff6d9;box-shadow:0 4px 0 #b7bb8366;color:#56764b;transform:rotate(-2deg);border-radius:15px 20px 17px 20px;padding:8px 18px;font-size:21px}.sceneNote{font-size:12px;background:#234b3570;border:1px solid #ffffff55;border-radius:99px;bottom:10px;left:15px;padding:5px 11px}.hawk{z-index:3;width:24%}.speech{position:absolute;right:7%;top:14%;padding:12px 19px;background:#fffff0;border:3px solid #fff;box-shadow:0 4px 0 #d7dcc0;border-radius:22px 22px 22px 3px;font-size:20px;font-weight:800;transform:rotate(3deg);z-index:3;animation:float 3s ease-in-out infinite;pointer-events:none}.speech small{display:block;font-size:14px;color:#889471;font-weight:500}.view.success .speech{background:#fff1b0}.view.scouting .speech{opacity:0}.sparkles{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}.sparkles i{position:absolute;font-style:normal;font-size:34px;color:#ffe563;text-shadow:0 2px 0 #dc954b;animation:starfall 1.4s ease-out both}.side{position:relative;border:4px solid white;border-radius:30px;padding:19px 17px 14px;gap:13px;box-shadow:0 7px 0 #dfd4eb,0 12px 25px #765c8910;background:linear-gradient(#fffaf1,#fffdf8)}.side:before{content:'';position:absolute;width:72px;height:12px;background:#e6d8f0;top:-5px;left:calc(50% - 36px);border-radius:0 0 12px 12px}.side h2{text-align:center;font-size:26px;color:#8361a1;margin:2px 0 0}.sideHint{margin:-8px 0 0;text-align:center;font-size:14px;color:#948895}.mode{gap:9px}.mode button{border:2px solid #e4dbed;color:#8b7893;background:white;border-radius:15px;font-size:18px;padding:10px 3px;box-shadow:0 3px 0 #e6dfec}.mode button[aria-pressed=true]{border-color:#ba98d3;background:#f0e4fa;color:#75508f;box-shadow:0 3px 0 #b391ca}.sample{width:23px;height:23px;border:3px solid #fff;box-shadow:0 1px 3px #0002}
.palette{gap:12px 14px;padding:3px 5px}.swatch{height:65px;border:4px solid #fff;border-radius:50% 50% 43% 47%;background-image:radial-gradient(ellipse at 32% 19%,#ffffff9c,transparent 51%);box-shadow:inset 0 -6px 0 #00000016,0 4px 0 #decfbc;transition:transform .15s,outline .15s}.swatch:before{content:'';position:absolute;width:19px;height:9px;border-radius:50%;background:#ffffff60;left:12px;top:7px;transform:rotate(-28deg)}.swatch:hover{transform:translateY(-3px) rotate(-4deg)}.swatch.selected{outline:3px solid #a279c3;outline-offset:3px;transform:scale(1.04)}.swatch.selected:after{content:'✓';position:absolute;right:-5px;top:-8px;width:23px;height:23px;border-radius:50%;background:#9370af;color:white;border:2px solid white;line-height:19px;font-size:16px}.swatch span{font-size:14px;bottom:8px;left:7px;right:7px;color:#263d38;text-shadow:0 1px 2px #fff,0 -1px 2px #fff}.primary{transition:transform .15s;min-height:73px;font-size:25px;padding:18px 18px}.primary:hover{transform:translateY(-3px)}.primary:active{transform:translateY(1px)}.test{width:100%;font-size:24px}.feedback{min-height:67px;background:#ffffffd9;border:3px solid white;box-shadow:0 4px 0 #d7e4d8;border-radius:23px;color:#567464;font-size:20px;padding:9px 16px}.feedback.good{background:#f3f8d8;color:#668044}.feedback button{border:2px solid white;border-radius:16px;background:#a783be;box-shadow:0 3px 0 #83609b;padding:7px 14px;font-size:18px}
.intro,.modal{background:#284d3c66;backdrop-filter:blur(5px)}.introCard{width:min(960px,94vw);padding:32px 34px;background:linear-gradient(120deg,#eff9e3,#fffbeb 55%,#fff2d7);border:7px solid white;border-radius:44px;box-shadow:0 10px 0 #c3d8b9,0 25px 90px #10251955;position:relative;overflow:hidden}.introArt{width:46%;float:left;margin:60px 10px 30px -8px;filter:drop-shadow(0 18px 7px #82916925);animation:float 3s ease-in-out infinite}.introCard h2{font-size:39px;color:#56804f;line-height:1.25}.introCard p{font-size:22px;line-height:1.6}.introCard .eyebrow{font-size:17px;letter-spacing:3px;color:#9b8057}.introCard .primary{min-width:290px}.introCard:after{content:'✦';position:absolute;left:35%;top:17%;font-size:54px;color:#e9bd57;transform:rotate(18deg)}.modalCard{background:linear-gradient(130deg,#fff9e7,#fff2fb);border:7px solid white;box-shadow:0 9px 0 #e1cbea,0 25px 90px #10251955;border-radius:38px}.modalCard h2{font-size:37px;color:#806296}.modalCard p{font-size:23px}.chip{border-radius:50%;box-shadow:inset 0 -6px 0 #0001,0 4px 0 #d9c4df}.concept{color:#7b60a1}.starsAward{font-size:43px;color:#e7b942;letter-spacing:12px;margin-top:7px}
@keyframes float{50%{transform:translateY(-7px) rotate(1deg)}}@keyframes starfall{0%{opacity:0;transform:translateY(40px) scale(.2) rotate(0)}20%{opacity:1}100%{opacity:0;transform:translateY(-140px) scale(1.4) rotate(140deg)}}
@media(max-height:780px) and (min-width:901px){.app{padding:12px 23px 14px;gap:10px;min-height:650px}header{min-height:59px}h1{font-size:35px}header p{font-size:14px;margin-top:5px}.play{grid-template-columns:minmax(0,1fr) 290px}.side{padding:13px 16px 8px;gap:9px}.side h2{font-size:23px}.sideHint{font-size:13px;margin:-4px 0 0}.swatch{height:54px}.palette{gap:9px 14px}.mode button{padding:7px 3px}.test{min-height:61px;font-size:21px;padding:14px}.tabs button{font-size:18px;padding:6px 18px}.feedback{min-height:58px;font-size:18px}.speech{font-size:18px;padding:9px 15px}.location{font-size:18px}}
@media(max-width:900px){.app{height:auto;min-height:100dvh;padding:14px;gap:15px}header{align-items:flex-start;flex-direction:column;gap:12px}h1{font-size:34px}.tools{flex-wrap:wrap}.journey{gap:12px;align-items:flex-start}.tabs{gap:7px;flex-wrap:wrap}.tabs button{min-width:0;font-size:16px;padding:8px 10px}.progress{font-size:15px;padding:8px 10px;white-space:nowrap}.play{display:flex;flex-direction:column}.view{aspect-ratio:1.7;min-height:220px}.side{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:20px}.side h2,.sideHint{grid-column:1/-1}.palette{grid-column:1/-1;grid-template-columns:repeat(9,1fr);gap:8px;grid-row:4}.mode{grid-column:1/-1}.swatch{height:54px}.test{grid-column:1/-1;width:320px;justify-self:center}.feedback{flex-wrap:wrap}.speech{font-size:16px}.speech small{font-size:12px}.introArt{width:40%;margin-top:75px}.introCard h2{font-size:29px}.introCard p{font-size:18px}.introCard{padding:25px}.sceneNote{font-size:10px}}
@media(max-width:550px){.side{display:flex}.palette{grid-template-columns:repeat(3,1fr);width:100%}.swatch{height:58px}.introArt{float:none;width:58%;margin:15px auto 0;display:block}.introCard h2{font-size:27px;margin:5px}.introCard p{font-size:16px}.introCard .eyebrow{font-size:13px}.introCard:after{display:none}.introCard .primary{min-width:250px;font-size:22px}.speech{font-size:13px;right:4%;top:9%;padding:7px}.speech small{display:none}.location{font-size:14px;top:7px;left:7px;padding:6px}.sceneNote{display:none}.test{width:100%}.modalCard{padding:22px}.modalCard h2{font-size:27px}.modalCard p{font-size:19px}.concept{font-size:30px!important}.chip{width:45px;height:45px}.progress{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}}
/* Classroom reach: all painting controls in the lower dock. */
.play{display:flex;flex-direction:column;gap:14px}.view{flex:1;min-height:200px}.creature{height:64%;width:auto;max-width:55%;left:50%;translate:-50% 0}.side{flex:none;display:grid;grid-template-columns:190px minmax(0,1fr) 230px;align-items:center;gap:18px;padding:13px 20px;border-radius:26px}.dockInstructions{display:flex;flex-direction:column;gap:12px}.side h2{font-size:23px}.sideHint{font-size:13px;line-height:1.5;margin:0}.mode{display:flex;gap:8px}.mode button{font-size:17px;min-height:48px;padding:8px 5px}.sample{width:19px;height:19px}.palette{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:55px 55px;gap:10px;padding:2px 5px;max-width:710px;width:100%;justify-self:center}.swatch{height:55px;min-width:0;grid-row:2}.swatch:nth-child(1){grid-row:1;grid-column:4}.swatch:nth-child(2){grid-row:1;grid-column:5}.swatch:nth-child(3){grid-row:1;grid-column:6}.swatch span{font-size:13px;bottom:7px;left:0;right:0}.test{margin:0;min-height:75px;font-size:23px;padding:16px 12px;width:100%}.feedback{min-height:56px;font-size:18px}.speech{top:11%;right:12%}.sceneNote{font-size:11px}
@media(max-height:780px) and (min-width:901px){.app{gap:9px}.play{gap:12px}.side{grid-template-columns:180px minmax(0,1fr) 205px;gap:14px;padding:10px 17px}.palette{grid-template-rows:50px 50px;gap:9px}.swatch{height:50px}.side h2{font-size:21px}.mode button{font-size:16px;min-height:45px}.test{min-height:70px;font-size:21px}.feedback{min-height:51px}.view{min-height:190px}}
@media(max-width:1000px) and (min-width:901px){.side{grid-template-columns:160px minmax(0,1fr) 170px;gap:10px;padding:10px}.palette{gap:8px 5px}.side h2{font-size:19px}.swatch span{font-size:11px}.test{font-size:18px}}
@media(max-width:900px){.view{flex:none;aspect-ratio:2.25;min-height:200px}.side{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:16px}.dockInstructions{grid-column:1;grid-row:1}.palette{grid-column:1/-1;grid-row:2;max-width:710px;grid-template-rows:54px 54px;gap:10px 7px}.swatch{height:54px}.test{grid-column:2;grid-row:1;max-width:280px}.side h2{font-size:23px}.creature{height:63%;max-width:60%}.feedback{font-size:17px}}
@media(max-width:550px){.side{display:flex;flex-direction:column;gap:16px;padding:16px}.dockInstructions{width:100%}.palette{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,54px);gap:10px 16px}.swatch{grid-row:auto!important;grid-column:auto!important;height:54px}.test{width:100%;max-width:320px}.view{min-height:190px}.creature{max-width:66%;height:60%}.speech{right:3%;top:10%}.mode button{font-size:18px}.side h2{font-size:23px}}
