:root{font-family:Nunito,ui-rounded,system-ui,sans-serif;color:#203f36;background:#f5f6ed;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;font-weight:800;cursor:pointer;border:0}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:4px solid #f5a63a;outline-offset:3px}header{height:84px;border-bottom:1px solid #dae1d1;display:flex;align-items:center;gap:14px;padding:0 4%;background:#fffdf5}.brand{font-weight:900;font-size:26px;letter-spacing:-1px;color:#1e4d3c;text-decoration:none;display:flex;align-items:center;gap:4px}.brand>span:last-child{color:#70a440}.logo{font-size:35px;margin-right:9px}.school{margin-right:auto;margin-left:24px;font-size:11px;letter-spacing:1.6px;font-weight:900}header button{background:#edf1e5;padding:10px 15px;border-radius:12px;font-size:12px}main{max-width:1480px;margin:auto;padding:30px 4% 15px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:900;color:#72836a}h1{font-size:37px;line-height:1.12;letter-spacing:-1.2px;margin:12px 0}h1 em{font-style:normal;color:#609243}.heading p{font-size:14px;color:#71816e;margin-bottom:0}.badge{display:flex;gap:14px;align-items:center;font-size:36px;background:#e9eedb;border:1px solid #d8e1c5;padding:20px;border-radius:18px;transform:rotate(2deg)}.badge span{font-size:10px;letter-spacing:1.5px}.badge strong{display:block;font-size:16px;letter-spacing:0;margin-top:4px}.game{display:grid;grid-template-columns:280px 1fr;gap:22px}aside{background:#fffdf7;border:1px solid #dce2d2;border-radius:22px;padding:20px;display:flex;flex-direction:column}.guide{display:flex;gap:12px;align-items:flex-start}.guide strong{font-size:14px}.guide p{font-size:12px;line-height:1.7;color:#72806d;margin:5px 0 15px}.creature{position:relative;flex:none;width:48px;height:56px;background:#a9c960;color:#568440;border-radius:20px 20px 16px 16px;font-size:34px;text-align:center;border-bottom:6px solid #759d44}.creature span{position:absolute;top:25px;left:13px;font-size:15px;letter-spacing:5px;color:#183d31}.section-label{font-size:10px;letter-spacing:1.5px;font-weight:900;margin:16px 0}.section-label span{float:right;color:#7e9a5f}nav{display:grid;gap:10px}.mission{display:flex;align-items:center;text-align:left;gap:12px;background:#f3f4eb;border:1px solid #e2e7d8;border-radius:14px;padding:14px 12px;color:#385540}.mission.active{background:#eaf1da;border-color:#9eba72;box-shadow:0 3px 0 #dbe4c9}.mission.done{background:#edf5ed}.mission .num{background:white;border-radius:10px;padding:7px;font-size:17px}.mission strong{display:block;font-size:13px}.mission small{font-size:10px;color:#7a8974}.tip{margin-top:24px;border-top:1px dashed #dce3d1;padding-top:18px;font-size:12px}.tip p{color:#7a8974;line-height:1.9}.tip small{font-size:10px;color:#7a8974}#save{font-size:9px;color:#78926b;margin-top:auto;padding-top:20px}.world{overflow:hidden;border:1px solid #d4dfcc;border-radius:22px;background:#fffdf6;box-shadow:0 8px 30px #294e3510}.world-top{display:flex;justify-content:space-between;align-items:center;padding:15px 22px;font-size:10px;font-weight:900;letter-spacing:1px}.world-top i{display:inline-block;background:#86b54b;border-radius:50%;width:7px;height:7px;margin-right:7px}.world-top button{background:none;color:#7c8f70;font-size:12px}.scene{position:relative;background:linear-gradient(#d5eee9,#edf3d9);overflow:hidden}.scene-tag{position:absolute;top:20px;left:25px;font-size:10px;letter-spacing:2px;color:#65958a}.scene-tag span{display:block;font-size:20px;margin-top:7px}#map{display:block;width:100%;max-height:530px;position:relative;z-index:1;filter:drop-shadow(0 24px 12px #3d78552b)}.sun{position:absolute;background:#fff4b6;width:65px;height:65px;border-radius:50%;right:50px;top:30px;box-shadow:0 0 0 15px #fff4b635}.cloud{position:absolute;background:#ffffff6b;width:110px;height:22px;border-radius:40px;top:80px;left:20%;animation:float 7s ease-in-out infinite}.cloud:before{content:'';position:absolute;width:55px;height:35px;background:inherit;left:25px;bottom:0;border-radius:50%}.c2{left:65%;top:140px;animation-delay:-3s}.map-note{text-align:center;font-size:10px;padding:0 8px 15px;color:#66876c}.tile{cursor:pointer;outline:none}.tile:hover .ground,.tile:focus .ground{fill:#f4db8a;stroke:#fff;stroke-width:3}.tile .object{pointer-events:none;animation:pop .25s ease-out}.inventory-head{display:flex;justify-content:space-between;padding:15px 22px 10px;font-size:13px}.inventory-head span{font-size:10px;color:#7a8974}#inventory{display:flex;gap:8px;padding:0 18px 14px;overflow-x:auto}.piece{position:relative;min-width:76px;flex:1;background:#f2f3e9;border:2px solid transparent;border-radius:13px;padding:9px 5px;color:#486242}.piece.selected{border-color:#7da64f;background:#e7efcf;transform:translateY(-2px)}.piece svg{width:48px;height:48px;display:block;margin:auto}.piece small{display:block;font-size:10px}.piece b{position:absolute;right:6px;top:5px;font-size:10px;background:white;padding:1px 5px;border-radius:5px}.world-bottom{border-top:1px solid #e7ebdd;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;gap:12px}.world-bottom span{font-size:10px;color:#819172}.world-bottom button,.primary{background:#234f3c;color:white;border-radius:11px;padding:12px 18px;font-size:12px}footer{display:flex;justify-content:space-between;color:#8b9981;font-size:9px;letter-spacing:1px;margin-top:20px}footer span{letter-spacing:0}dialog{border:0;border-radius:24px;padding:32px;width:min(530px,94vw);color:#244735;background:#fffdf5;box-shadow:0 30px 100px #123a4455}dialog::backdrop{background:#173e3b9c;backdrop-filter:blur(5px)}.close{position:absolute;right:15px;top:10px;background:none;font-size:28px;color:#7b8f75}dialog h2{font-size:26px;line-height:1.2}dialog p{line-height:1.7;font-size:14px}.kicker{color:#7c9d54;font-size:10px;letter-spacing:2px;font-weight:900}.controls{display:flex;justify-content:center;gap:20px;margin:20px 0}.stepper{text-align:center;background:#edf2df;padding:16px;border-radius:14px}.stepper button{background:white;border-radius:8px;font-size:22px;width:36px;height:36px}.stepper b{padding:12px;font-size:22px}.stepper label{display:block;font-size:11px;margin-bottom:8px}.blocks{display:flex;flex-wrap:wrap;gap:5px;min-height:30px;justify-content:center}.rod{background:#e6ad48;width:14px;height:65px;border:2px solid #b98031;background-image:repeating-linear-gradient(0deg,transparent 0 4px,#b98031 5px 6px)}.unit{width:15px;height:15px;background:#8bb95c;border:2px solid #69913e}.feedback{padding:12px;border-radius:10px;background:#f1f3e8;font-size:13px;min-height:45px;margin:16px 0}.feedback.good{background:#dfeec9}.choices{display:flex;gap:10px;flex-wrap:wrap}.choices button{padding:16px 22px;border-radius:10px;background:#e9efdc;color:#305435;font-size:20px}.primary{width:100%;margin-top:8px}.counter{display:inline-block;border:2px solid #77a65d;background:#e3efcb;border-radius:50%;width:34px;height:34px;margin:3px;font-size:16px}.counter.off{opacity:.3;text-decoration:line-through}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px auto;max-width:270px}.mini-grid button{height:60px;background:#dce9bc;color:#345137;border-radius:8px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(120px);z-index:5;background:#234f3c;color:white;padding:15px 25px;border-radius:14px;transition:transform .25s;font-size:13px;max-width:90vw;text-align:center}#toast.show{transform:translateX(-50%) translateY(0)}@keyframes pop{from{transform:translateY(-12px);opacity:.4}to{transform:translateY(0);opacity:1}}@keyframes float{50%{transform:translateX(25px)}}@media(max-width:1000px){.game{grid-template-columns:230px 1fr}.school{display:none}.brand{margin-right:auto}main{padding:22px 3%}h1{font-size:31px}.badge{font-size:26px;padding:15px}.piece{min-width:65px}.world-bottom span{display:none}aside{padding:15px}}@media(max-width:700px){header{height:65px;gap:7px;padding:0 3%}.brand{font-size:20px}.logo{font-size:26px;margin-right:3px}header button{font-size:10px;padding:8px}.heading{margin-bottom:18px}h1{font-size:27px}.badge{display:none}.heading p{font-size:12px}.game{display:flex;flex-direction:column;gap:12px}aside{padding:12px}.guide{align-items:center}.guide p{margin-bottom:3px}.creature{width:43px;height:47px}.creature span{top:20px;left:10px}.section-label{margin:10px 0}nav{grid-template-columns:repeat(4,1fr);gap:5px}.mission{padding:8px 4px;display:block;text-align:center}.mission .num{font-size:13px;display:inline-block;padding:4px}.mission strong{font-size:10px;margin-top:5px}.mission small,.tip,#save{display:none}.world-top{padding:12px}.inventory-head{padding:12px}#inventory{padding:0 8px 12px;gap:5px}.piece{min-width:61px}.world-bottom{justify-content:center}footer{font-size:7px}footer span{display:none}.map-note{font-size:8px}dialog{padding:25px}.scene-tag{font-size:8px;top:12px;left:12px}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}

button{touch-action:manipulation}dialog{max-height:90dvh;overflow-y:auto}.feedback{line-height:1.6}#feedback{scroll-margin:20px}.mini-grid button,.counter,.stepper button{min-width:44px;min-height:44px}.mini-grid button{font-size:17px}dialog:focus-visible{outline:none}.teacher-info{font-size:13px;line-height:1.8}.status-line{font-size:11px;color:#68825c;margin-top:9px}.world{min-width:0}@media(max-width:700px){#inventory{display:grid;grid-template-columns:repeat(6,1fr);overflow:visible}.piece{min-width:0}.piece svg{width:38px;height:42px}.piece small{font-size:9px}.inventory-head span{font-size:9px}header #teacher{font-size:9px}header{flex-wrap:wrap;height:auto;min-height:65px;padding-top:10px;padding-bottom:10px}.brand{flex:1;min-width:135px}header button{min-height:36px}.stepper{padding:10px}.controls{gap:10px}.map-note{font-size:9px}}
