:root{--teal:#087f79;--cream:#fffbe8;--lime:#d5ee8f;--ink:#214d43}*{box-sizing:border-box}body{margin:0;background:var(--teal);color:var(--cream);font-family:Arial,sans-serif}button,a{ -webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.6}button:focus-visible,a:focus-visible{outline:3px solid #ffdc85;outline-offset:4px}header{max-width:1500px;margin:auto;height:72px;padding:10px 3%;display:flex;align-items:center;gap:22px}.brand{color:inherit;text-decoration:none;font-size:25px;font-weight:800;letter-spacing:-.7px;display:flex;align-items:baseline;gap:12px}.brand span{font-size:12px;letter-spacing:0;font-weight:400;opacity:.8}.age{font-size:12px;color:var(--lime);border-left:1px solid #ffffff35;padding-left:20px}.header-actions{display:flex;gap:8px;margin-left:auto}header button,.map-tools button,.room-toolbar button{background:transparent;border:1px solid #ffffff55;color:inherit;border-radius:24px;padding:10px 17px;font-size:13px}h1{margin:0;font-size:18px;font-weight:600;letter-spacing:-.3px}.map-tools{max-width:1200px;margin:auto;display:flex;justify-content:space-between;align-items:center;min-height:40px;padding:0 25px 8px}.map-tools h1{font-size:14px;font-weight:400;color:#e0f0dc}.map-tools button{font-size:12px;padding:8px 13px}.map-tools>div{display:flex;gap:10px}.tree-scroll{overflow:auto;scrollbar-width:thin;scrollbar-color:#b2daaf var(--teal)}.tree-scene{width:min(1200px,calc((100dvh - 122px)*1.5),100%);min-height:0;aspect-ratio:3/2;position:relative;margin:auto;overflow:hidden}.tree-world{position:absolute;inset:0;transition:transform .45s cubic-bezier(.2,.7,.2,1);transform-origin:center}.tree-art,.room-art{width:100%;height:auto;display:block;pointer-events:none;user-select:none}#stations{position:absolute;inset:0}.object{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);transform:translate(-50%,-50%);border:2px solid transparent;border-radius:35%;background:transparent;color:var(--ink);padding:0;display:flex;align-items:flex-end;justify-content:center}.object:hover,.object:focus-visible{background:#fffbe81c;border:2px solid #f7efb2;box-shadow:0 0 0 5px #fffbe814;z-index:5}.object-label{position:absolute;top:100%;white-space:nowrap;display:flex;align-items:center;gap:7px;padding:7px 10px 7px 7px;background:var(--cream);border-radius:30px;box-shadow:0 3px 0 #05463e55;font-size:12px;font-weight:bold;transition:opacity .15s,transform .15s}.object-label b{display:flex;width:23px;height:23px;border-radius:50%;align-items:center;justify-content:center;background:#2a735f;color:var(--cream);font-size:10px}.hide-labels .object-label{opacity:0;transform:translateY(5px)}.hide-labels .object:hover .object-label,.hide-labels .object:focus-visible .object-label{opacity:1;transform:none}.object.visited .object-label b{background:#af5a71}.map-axel{position:absolute;left:2%;bottom:2%;width:14%;height:auto;pointer-events:none;filter:drop-shadow(0 4px 4px #04494035)}body.in-lesson{background:var(--room-surround,#17665c)}.room-toolbar{max-width:1250px;display:flex;align-items:center;gap:18px;margin:0 auto 12px;padding:0 24px;min-height:46px}.room-toolbar>button:last-child{margin-left:auto}.room-title{display:flex;gap:10px;align-items:center}.room-title span{font-size:11px;color:#dbefb3;border:1px solid #ffffff40;border-radius:8px;padding:7px}.room-title h1{font-size:20px}.room-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.room-stage{position:relative;width:min(1200px,calc((100dvh - 143px)*1.5),100%);aspect-ratio:3/2;margin:auto;overflow:hidden;border-radius:16px}.activity{position:absolute;left:16.5%;top:16.5%;width:57%;height:48%;color:var(--ink);display:flex;align-items:center;justify-content:center}.activity-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6% 8%;text-align:center}.task{font-size:clamp(14px,1.5vw,20px);line-height:1.4;margin:0 0 10px;font-weight:600}.draw-task{position:absolute;top:6%;left:8%;margin:0;pointer-events:none}.drawing{position:absolute;left:6%;top:19%;width:88%;height:72%;touch-action:none;background:transparent;cursor:crosshair}.drawing-note{position:absolute;left:8%;bottom:1%;font-size:10px;color:#82785c;line-height:1.3;margin:0;pointer-events:none}.room-actions{position:absolute;left:20%;top:75.5%;width:49%;display:flex;justify-content:center;gap:10px}.room-actions button{background:var(--cream);border:2px solid #876742;color:#325c4b;border-radius:15px;padding:11px 19px;font-size:14px;font-weight:bold;box-shadow:0 3px 0 #745a3480;white-space:nowrap}.room-actions .primary{background:var(--lime)}.room-axel{position:absolute;right:1%;bottom:1%;width:20%;height:auto;pointer-events:none;filter:drop-shadow(0 6px 6px #78593630)}.device-preview{width:68%;max-width:330px;aspect-ratio:4/3;border:2px dashed #a4bba4;border-radius:18px;background:#d5e1d533;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#69826e;font-size:14px}.device-preview strong{font-size:24px;font-weight:400}.prototype-note{font-size:11px;color:#82785c;line-height:1.5;margin:12px 0 0}.class-preview{display:flex;gap:15px;justify-content:center;width:100%;margin:15px 0}.class-preview span{border-bottom:3px solid #dcaa62;padding:15px 25px;font-size:18px}.sound-preview{font-size:20px;color:#416c5c;border-block:1px solid #d2d9b9;padding:25px 0;width:85%;letter-spacing:4px}.game-preview{font-size:17px;line-height:1.7;color:#416c5c}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{border:0;border-radius:22px;padding:28px;max-width:500px;width:90%;background:var(--cream);color:var(--ink)}dialog::backdrop{background:#063d38b0}dialog h2{font-size:23px;margin:5px 0 20px}dialog p{line-height:1.6;font-size:15px}.dialog-close{float:right;border:1px solid #a9b6a0;background:transparent;border-radius:20px;color:var(--ink);padding:8px 12px;font-size:12px}#lessonLinks{display:flex;flex-direction:column;gap:4px;margin-top:20px}#lessonLinks button{border:0;border-bottom:1px solid #d7ddc9;color:var(--ink);text-align:left;background:transparent;padding:14px 0;font-size:16px}#lesson:focus{outline:none}[hidden]{display:none!important}@media(max-width:900px){.brand span{display:none}.room-title h1{font-size:18px}.room-stage{border-radius:0}.task{font-size:16px}.room-actions button{padding:9px 13px;font-size:13px}.object-label{font-size:11px;gap:5px;padding:5px 8px 5px 5px}.object-label b{width:20px;height:20px}.drawing-note{font-size:9px}.device-preview{font-size:12px}.device-preview strong{font-size:18px}}@media(max-width:600px){header{height:62px;padding:8px 16px;gap:14px}.brand{font-size:23px}.age{display:none}header button{font-size:12px;padding:9px 12px}.map-tools{padding:3px 16px 10px;min-height:42px}.tree-scene{width:660px;min-width:660px;max-width:none}.map-axel{width:13%}.room-toolbar{gap:10px;padding:0 12px;margin-bottom:10px}.room-toolbar button{font-size:12px;padding:9px 11px}.room-title{gap:7px}.room-title h1{font-size:15px}.room-title span{display:none}.room-stage{width:690px;min-width:690px}.task{font-size:14px}.room-actions button{padding:9px 12px;font-size:12px}.drawing-note{font-size:9px}.prototype-note{font-size:10px}.room-axel{width:17%}.class-preview span{padding:10px 20px;font-size:16px}.device-preview{max-width:230px;font-size:12px}.sound-preview{font-size:16px}}@media(prefers-reduced-motion:reduce){.tree-world,.object-label{transition:none}}
@media(max-width:600px){.map-axel{position:fixed;left:12px;bottom:12px;width:78px;z-index:2}}

/* The original object coordinates stay in a 3:2 world; the completed ground extends below it. */
.tree-scene{width:min(1200px,calc((100dvh - 130px)*1.2970027),100%);aspect-ratio:1428/1101}
.tree-world{bottom:auto;aspect-ratio:3/2}
.clip-defs{position:absolute;overflow:hidden;pointer-events:none}
.mascot{padding:0;border:0;background:transparent;pointer-events:auto;line-height:0;transform-origin:50% 96%;border-radius:28%;filter:drop-shadow(0 4px 4px #04494035)}
.mascot-body{position:relative;display:block;transform-origin:50% 96%;animation:axel-breathe 4.8s ease-in-out infinite}
.mascot img{display:block;width:100%;height:auto;pointer-events:none;user-select:none}
.mascot .blink-frame{position:absolute;inset:0;opacity:0;clip-path:url(#aksel-eyes);animation:axel-blink 6.6s step-end infinite}
.map-axel{left:1.5%;bottom:8%;width:15%}
.room-axel{right:1%;bottom:3%;width:19%}
.mascot.greeting{animation:axel-greet .7s ease-in-out}
.mascot.greeting .mascot-body{animation:none}
.mascot.greeting .blink-frame{animation:axel-greet-blink .7s step-end}
.motion-paused .mascot-body,.motion-paused .mascot .blink-frame{animation:none}
.motion-paused .mascot .blink-frame{opacity:0}
.motion-paused .mascot.greeting{animation:none}
@keyframes axel-breathe{0%,100%{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-3px) rotate(.7deg)}}
@keyframes axel-blink{0%,46%,49%,100%{opacity:0}47%,48%{opacity:1}}
@keyframes axel-greet{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-9px) rotate(-4deg)}60%{transform:translateY(-3px) rotate(3deg)}}
@keyframes axel-greet-blink{0%,100%{opacity:0}30%{opacity:1}58%{opacity:0}}
@media(max-width:600px){.tree-scene{width:660px;min-width:660px}.map-axel{position:fixed;left:12px;bottom:14px;width:88px;z-index:2}.map-tools{flex-wrap:wrap;row-gap:8px}.map-tools>div{gap:6px}.map-tools button{font-size:11px;padding:8px 10px}.room-axel{width:17%}}
@media(prefers-reduced-motion:reduce){.mascot,.mascot-body,.mascot .blink-frame{animation:none!important}.mascot .blink-frame{opacity:0}}
.tree-world{height:86.4668483%;width:100%;bottom:auto}
@media(max-width:600px){.map-axel{position:absolute;left:calc(var(--scene-scroll,0px) + 12px);bottom:18px;width:88px}.room-axel{right:calc(var(--scene-hidden-right,0px) + 8px);bottom:2%;width:92px}.room-actions{left:19%;width:43%}}
