:root{--ink:#244e49;--tray:#c5dfe3;--well:#c5dfe3;--blue:#a9cbd2;--orange:#a9cbd2;--mint:#a9cbd2;--yellow:#a9cbd2;--purple:#a9cbd2;--side:#779eaa}*{box-sizing:border-box}body{margin:0;background:#72b4bd;color:var(--ink);font-family:"Hiragino Maru Gothic ProN","PingFang SC","Microsoft Yahei",sans-serif;overflow:hidden}button,select{font:inherit;color:inherit}button{border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,select:focus-visible{outline:3px solid #183f3b;outline-offset:4px}svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}.svg-defs{position:absolute;width:0;height:0}.app{height:100dvh;min-height:740px;position:relative;isolation:isolate;overflow:hidden}.sea{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;filter:saturate(.75) brightness(1.04)}.app:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#609fad30,transparent 48%);pointer-events:none;z-index:-2}.float-button{width:62px;height:62px;border-radius:22px;display:grid;place-items:center;color:#345c51;background:linear-gradient(145deg,#ffefc5,#ebd5a6);box-shadow:inset 0 2px 1px #fff9,inset 0 -3px 0 #b7925830,0 6px 0 #c9ab74,0 10px 14px #1b677526;border:1px solid #fff3;transition:transform .12s,box-shadow .12s}.float-button:active{transform:translateY(4px);box-shadow:inset 0 2px 1px #fff9,0 2px 0 #c9ab74}.level-button{position:absolute;left:32px;top:34px;z-index:30;height:52px;padding:0 10px;background:transparent;color:#244e5b;font-size:23px;font-weight:800;letter-spacing:2px;border-radius:13px}.level-button:hover{background:#d1e5e744}.star-total{position:absolute;right:38px;top:34px;display:flex;align-items:center;gap:10px;height:52px;padding:0 8px;color:#244e5b;z-index:30;font-size:29px;font-weight:800;font-variant-numeric:tabular-nums}.star-total svg{width:29px;height:29px;fill:#f5c23d;stroke:#aa822b;stroke-width:2}.tray{position:absolute;background:linear-gradient(135deg,#fff3d6,#edd6ac 65%,#e5c893);border:2px solid #ffecca;border-radius:33px;box-shadow:inset 0 3px 2px #ffffffe0,inset 0 -6px 0 #cfb18b,0 9px 0 #b5996e,0 14px 0 #8e825930,0 22px 25px #275c6635;z-index:15}.tray:before{content:"";position:absolute;inset:5px;background:url('assets/plastic-grain.png');pointer-events:none;border-radius:28px;opacity:.55}.tray-grip{position:absolute;top:10px;left:calc(50% - 20px);height:5px;width:40px;background:#bda47755;border-top:1px solid #ad906c88;box-shadow:0 1px 0 #fff9;border-radius:5px}.toolbox{left:25px;top:258px;width:177px;padding:30px 15px 29px}.tools{display:flex;flex-direction:column;gap:19px}.block{--color:var(--blue);--shadow:#2b69c2;position:relative;display:flex;align-items:center;gap:11px;height:73px;padding:0 13px;background:linear-gradient(135deg,#ffffff2c,transparent 58%),linear-gradient(0deg,#00000005,transparent 45%),var(--color);color:#fff;font-size:21px;font-weight:800;border-radius:15px;border:1px solid #fff3;box-shadow:inset 0 2px 1px #ffffff70,inset 2px 0 1px #ffffff30,inset -2px -2px 1px #00000010,0 6px 0 var(--shadow),0 8px 2px #234d4920;transition:transform .12s;isolation:isolate;touch-action:manipulation}.block:before{content:"";position:absolute;width:35px;height:11px;left:20px;bottom:-10px;background:var(--color);border-bottom:4px solid var(--shadow);border-radius:0 0 7px 7px;z-index:5}.block:after{content:"";position:absolute;width:38px;height:9px;left:19px;top:-1px;background:#f2dfbc;box-shadow:inset 0 -1px 0 #0001;border-radius:0 0 7px 7px}.block svg{width:29px;height:29px;flex-shrink:0}.block:active{transform:translateY(4px)}.block.left,.block.right{--color:var(--orange);--shadow:#bd7c32;color:#634619}.block.jump{--color:var(--mint);--shadow:#2f867a}.block.pick{--color:var(--yellow);--shadow:#c29330;color:#604915}.block.repeat{--color:var(--purple);--shadow:#7052a6;gap:7px;font-size:19px;padding-left:11px;white-space:nowrap}.block.repeat svg{width:25px;height:25px}.tool-count{display:grid;place-items:center;background:#fffddd;color:#70549c;border-radius:8px;width:29px;height:33px;font-size:19px}.tools .block:disabled{opacity:.87}.program-panel{left:225px;top:182px;bottom:28px;width:273px;padding:29px 25px 14px 18px;display:flex;flex-direction:column}.program-track{position:relative;flex:1;min-height:0;padding:14px 10px 22px 1px;background:linear-gradient(90deg,#d3b58435,transparent 5%,transparent 95%,#d3b58435);border-radius:16px;overflow:auto;scrollbar-width:thin;scrollbar-color:#c3a97e transparent}.program-item{position:relative;margin:0 0 -2px;transform-origin:center top}.program-item .block{height:52px;width:100%;padding:0 12px;font-size:20px;gap:9px;border-radius:13px;box-shadow:inset 0 2px 1px #fff7,inset 2px 0 1px #fff3,inset -2px -2px 1px #0001,0 6px 0 var(--shadow)}.program-item .block svg{width:27px;height:27px}.program-item .block:after{background:var(--well)}.program-item .block:before{height:10px}.program-item.has-child>.block:before{display:none}.program-item.has-child:after{content:"";position:absolute;left:20px;bottom:-8px;width:35px;height:10px;background:var(--purple);border-bottom:4px solid #7052a6;border-radius:0 0 7px 7px;z-index:5}.repeat-child{display:flex;align-items:center;gap:6px;height:45px;background:#e9e0f4;color:#4b6890;border:5px solid var(--purple);border-top:0;border-radius:0 0 12px 12px;margin:0 3px 0 10px;padding:0 9px;font-size:18px;font-weight:800;box-shadow:0 4px 0 #7052a6}.repeat-child svg{width:22px;height:22px;flex-shrink:0}.repeat-child select{font:inherit;color:inherit;border:0;background:transparent;min-height:44px;width:100%;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 20 20'%3E%3Cpath d='m4 7 6 6 6-6' fill='none' stroke='%234b6890' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 3px center;background-repeat:no-repeat;padding-right:23px;cursor:pointer}.times{background:#fffbe8;color:#6b4d95;border:1px solid #fff9;border-radius:9px;font-weight:800;font-size:21px;height:44px;min-width:57px;padding:0 6px;cursor:pointer}.program-item.finished{opacity:.7}.program-item.executing>.block{outline:4px solid #fbd35f;outline-offset:3px;box-shadow:inset 0 2px 1px #fff7,0 6px 0 var(--shadow),0 0 0 9px #fada7050}.program-item.executing .repeat-child{background:var(--blue);color:white}.iteration{margin-left:auto;background:#236abd;border-radius:7px;padding:3px 7px;font-size:16px;white-space:nowrap}.remove{position:absolute;right:-19px;top:-10px;z-index:7;width:44px;height:44px;background:transparent;display:grid;place-items:center;color:#537063}.remove:before{content:"";position:absolute;inset:8px;border-radius:50%;background:#fff6df;box-shadow:inset 0 1px 0 white,0 2px 3px #836e4030}.remove svg{width:16px;height:16px;position:relative;stroke-width:3}.remove:disabled{display:none}.dense .program-item .block{height:45px;font-size:18px}.dense .repeat-child{height:45px;font-size:17px}.dense .program-item .block svg{width:24px;height:24px}.dense .times{height:44px;font-size:19px}.empty-program{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:9px;padding-top:88px}.empty-program span{width:100%;height:65px;border-radius:14px;background:#d1b47b25;box-shadow:inset 0 3px 2px #baa16e55,0 1px 0 #fff7;position:relative}.empty-program span:after{content:"";position:absolute;left:20px;top:0;width:38px;height:9px;background:#f1dcba;border-radius:0 0 7px 7px;box-shadow:0 1px 1px #ae905955}.empty-program span:nth-child(2){opacity:.55}.empty-program span:nth-child(3){opacity:.28}.program-footer{flex-shrink:0;margin-top:7px;padding-top:7px}.run{height:70px;width:100%;display:flex;align-items:center;justify-content:center;gap:14px;border-radius:18px;color:#fff;background:linear-gradient(140deg,#398f76,#216a5b);box-shadow:inset 0 2px 1px #ffffff40,0 6px 0 #144b43;font-size:24px;font-weight:800}.run:active{transform:translateY(4px);box-shadow:0 2px 0 #144b43}.run:disabled{background:#a8b49a;box-shadow:0 6px 0 #8b9b82;color:#f4f5e6}.run.retry{background:linear-gradient(135deg,#3c9178,#216a5b);animation:retry-ready 1.8s infinite}.play-icon{height:0;width:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:15px solid currentColor}.run.running .play-icon{width:17px;height:21px;border:0;border-left:6px solid white;border-right:6px solid white}.edit-actions{height:44px;margin-top:10px;display:flex;align-items:center;justify-content:flex-end;gap:15px}.clear{width:44px;height:44px;border-radius:12px;background:#dec698;box-shadow:inset 0 2px 2px #b4936040,0 1px 0 #fff7}.clear svg{width:24px;height:24px}.clear:disabled{opacity:.45}.undo{display:flex;align-items:center;gap:6px;background:#fff3d4;border-radius:13px;height:44px;padding:0 13px;font-size:17px;font-weight:700;box-shadow:0 2px 0 #c6a875}.undo svg{width:20px;height:20px}.stage{position:absolute;left:495px;right:8px;top:165px;bottom:28px}.world{position:absolute;width:900px;max-width:calc(100vw - 470px);aspect-ratio:1.5;left:50%;top:115px;transform:translateX(-50%);isolation:isolate}.island{display:block;width:100%;pointer-events:none;user-select:none;filter:drop-shadow(0 18px 16px #22677230)}.robot-anchor,.chest-anchor{position:absolute;transform:translate(-50%,-100%);transition:left .6s cubic-bezier(.3,.1,.35,1),top .6s cubic-bezier(.3,.1,.35,1);width:117px;height:140px;z-index:8;pointer-events:none}.robot-anchor img{width:100%;height:100%;object-fit:contain;object-position:center bottom;position:relative;z-index:2;filter:drop-shadow(0 3px 1px #53643822)}.robot-shadow{position:absolute;left:calc(50% - 24px);bottom:0;width:48px;height:16px;background:#47533740;border-radius:50%;filter:blur(3px);z-index:1}.robot-anchor.walk img{animation:step .6s 1}.robot-anchor.fail img{animation:tumble .45s ease-out}.robot-anchor.edge img{animation:balance .75s 2}.robot-anchor.think img{animation:think .9s 2}.robot-anchor.wave img{animation:wave .6s 2}.robot-anchor.happy img{animation:cheer .6s 2}.robot-anchor.reach img{animation:reach .45s forwards}.robot-anchor[data-heading="0"].blink:after,.robot-anchor[data-heading="1"].blink:after{content:"";position:absolute;width:34px;height:2px;background:#f8eed6;left:43px;top:47px;z-index:3;border-radius:5px;opacity:.6}.chest-anchor{width:95px;height:113px;z-index:6;transition:none}.chest-anchor img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 5px 3px #54643840)}.chest-light{position:absolute;width:145px;height:215px;left:calc(50% - 72px);bottom:10px;background:linear-gradient(0deg,#ffe187b0,#fff3b870,transparent);clip-path:polygon(22% 100%,78% 100%,100% 0,0 0);filter:blur(7px);z-index:0;animation:light-open .55s both}.target-dot{position:absolute;left:18px;right:18px;bottom:-7px;height:15px;border:2px dashed #cfac35;border-radius:50%;opacity:.75;z-index:-1}.obstacle{position:absolute;width:75px;height:64px;object-fit:contain;transform:translate(-50%,-100%);filter:drop-shadow(0 5px 3px #695b3433);z-index:5}.footprint{position:absolute;transform:translate(-50%,-50%) rotate(-28deg);width:28px;height:17px;z-index:3}.footprint:before,.footprint:after{content:"";position:absolute;left:1px;top:1px;width:10px;height:13px;border-radius:3px 3px 5px 5px;background:#83784f38;box-shadow:inset 0 2px 0 #fff5}.footprint:after{left:16px;top:4px}.start-mark{position:absolute;width:47px;height:24px;transform:translate(-50%,-50%) rotate(-30deg);border:2px solid #578d8255;border-radius:50%;background:#82b0a030;z-index:2}.loop-lights{position:absolute;left:50%;top:-26px;transform:translateX(-50%);display:flex;gap:8px;padding:7px 11px;border:2px solid #fff7df;border-radius:15px;background:#6d539d;box-shadow:0 3px 0 #4b3874,0 5px 10px #42395c30;z-index:4}.loop-lights i{width:13px;height:13px;border-radius:50%;background:#4a366d;box-shadow:inset 0 2px 1px #261643}.loop-lights i.on{background:#ffdc68;box-shadow:0 0 8px #fada6c80,inset 0 1px 0 #fff7}.command-link{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:24;opacity:0;overflow:visible}.command-link.visible{opacity:.64}.command-link path{fill:none;stroke:#ffe49b;stroke-width:2;stroke-dasharray:8 12;animation:signal 1.2s linear infinite}.command-link #linkGlow{stroke-width:6;stroke:#ffdd7250;filter:blur(2px)}.problem-tile{position:absolute;width:88px;height:44px;transform:translate(-50%,-50%) rotate(-30deg);border:3px solid #e59b46;border-radius:12px;background:#ffbe7130;box-shadow:0 0 0 5px #ffc77420;z-index:4;animation:problem 1s 3}.edge-glint{position:absolute;width:95px;height:26px;transform:translate(-50%,-50%) rotate(35deg);border-bottom:5px solid #ffc671;border-radius:50%;z-index:4;animation:problem .6s 3}.feedback{position:absolute;left:50%;top:-37px;transform:translateX(-50%);white-space:nowrap;background:#ffedc6;border:2px solid #f3b764;color:#67471f;padding:8px 15px;border-radius:16px;box-shadow:0 3px 0 #cbaa6a;font-size:21px;font-weight:800;z-index:10}.feedback:after{content:"";position:absolute;width:12px;height:12px;background:#ffedc6;bottom:-7px;left:calc(50% - 6px);transform:rotate(45deg)}.impact{position:absolute;right:-14px;bottom:40px;color:#ffe298;font-size:57px;text-shadow:0 2px 0 #ce8139;z-index:10;animation:impact .5s both}.robot-dust{position:absolute;left:calc(50% - 38px);bottom:-6px;width:76px;height:18px;z-index:2;pointer-events:none}.robot-dust.puff:before,.robot-dust.puff:after{content:"";position:absolute;width:16px;height:11px;border-radius:50%;background:#fff3cd99;animation:dust .45s both}.robot-dust.puff:after{right:0;animation-delay:40ms}.victory-stars{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:6px;z-index:20;pointer-events:none}.prize-star{display:block;width:88px;height:88px;animation:prize-pop .6s calc(var(--i)*.14s) both;filter:drop-shadow(0 6px 0 #ba8729) drop-shadow(0 9px 10px #ad7b2830)}.prize-star:nth-child(2){margin-top:-36px}.prize-star svg{width:100%;height:100%;fill:#d6ceb08c;stroke:#b3a37a;stroke-width:1.8}.prize-star.earned svg{fill:#ffd34c;stroke:#d49c2d}.fly-star{position:fixed;z-index:60;pointer-events:none;color:#d49c2d;filter:drop-shadow(0 4px 0 #bd8a25)}.fly-star svg{width:100%;height:100%;fill:#ffcf42;stroke-width:2}.shorter{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:9px;background:#fff4cf;padding:12px 15px;border-radius:16px;box-shadow:0 3px 0 #c9ab74;font-size:21px;z-index:25}.shorter svg{background:var(--purple);color:#fff;border-radius:7px;padding:4px;width:37px;height:37px}.reward{position:absolute;right:24px;bottom:32px;display:flex;gap:16px;align-items:center;z-index:26;animation:result-in .35s both}.reward button{height:68px;border-radius:21px;background:linear-gradient(150deg,#fff1cb,#f0d9aa);color:#345d4e;padding:0 22px;box-shadow:inset 0 2px 1px #fff9,0 5px 0 #c7a778;font-weight:800;font-size:23px}.reward #again{width:68px;padding:0;display:grid;place-items:center}.reward #next{background:linear-gradient(135deg,#3e947a,#226c5b);color:white;box-shadow:inset 0 2px 1px #ffffff50,0 5px 0 #195044;min-width:168px}.reset-scene{position:absolute;right:25px;bottom:32px;width:76px;height:62px;display:flex;gap:0;padding:4px 9px}.reset-scene img{width:38px;height:46px;object-fit:contain}.reset-scene svg{width:27px;height:27px}.tutorial-hand{position:fixed;z-index:40;pointer-events:none;color:#244e49;width:44px;height:44px;filter:drop-shadow(0 3px 1px #ffffffb0)}.tutorial-hand svg{width:44px;height:44px;fill:#fff6e1;stroke-width:2.5}.flying-block{position:fixed;margin:0;z-index:50;pointer-events:none}.modal-backdrop{position:fixed;inset:0;background:#16484a66;z-index:80;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(5px)}.modal{width:580px;position:relative;padding:38px 36px;background:linear-gradient(135deg,#fff1d4,#f0d6a7);border:2px solid #fff3d9;border-radius:31px;box-shadow:0 8px 0 #bb9a66,0 20px 40px #153e4930}.modal h2{font-size:25px;margin:0 0 31px}.modal-close{position:absolute;right:20px;top:20px;width:44px;height:44px;border-radius:15px}.modal-close svg{width:23px;height:23px}.hint-sequence{display:flex;gap:9px;align-items:center;margin-bottom:32px}.hint-sequence span{position:relative;min-width:64px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--blue);color:white;border-radius:10px;box-shadow:0 4px 0 #2768a980}.hint-sequence .left,.hint-sequence .right{background:var(--orange);color:#61491f}.hint-sequence .repeat{background:var(--purple)}.hint-sequence .jump{background:var(--mint)}.hint-sequence .pick{background:var(--yellow);color:#61491f}.hint-sequence b{font-size:14px;position:absolute;right:5px;top:3px;background:#fffbd7;color:#664694;padding:1px 3px;border-radius:5px}.hint-sequence svg{width:29px;height:29px}.hint-sequence small{font-size:17px;font-weight:700;white-space:nowrap}.hint-load{height:64px;width:100%;border-radius:17px;background:linear-gradient(140deg,#3b9278,#246d5d);color:white;box-shadow:0 5px 0 #184f45;font-size:22px;font-weight:800}.level-grid{display:flex;gap:15px}.level-grid button{width:74px;height:74px;background:#f7eabf;border-radius:18px;font-size:25px;box-shadow:0 5px 0 #c5ab74}.level-grid button:disabled{opacity:.5}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:90;border-radius:15px;background:#244e49;color:#fff;padding:14px 22px;font-size:18px}.snapping{animation:snap .24s both}.world.entering{animation:world-rise .65s cubic-bezier(.2,.8,.25,1) both}.robot-anchor.landing img{animation:land .85s .15s both}.paused .robot-anchor img,.paused .command-link path{animation-play-state:paused}@keyframes signal{to{stroke-dashoffset:-40}}@keyframes step{0%{transform:translateY(0)}42%{transform:translateY(-6px) rotate(1.5deg)}80%{transform:translateY(0) scale(1.025,.97)}100%{transform:translateY(0) scale(1)}}@keyframes tumble{0%{transform:translateY(-7px) rotate(-14deg)}55%{transform:translateY(0) rotate(9deg)}100%{transform:rotate(0)}}@keyframes balance{25%{transform:rotate(-8deg)}70%{transform:rotate(5deg)}100%{transform:rotate(0)}}@keyframes think{40%{transform:rotate(-4deg)}70%{transform:rotate(3deg)}}@keyframes wave{50%{transform:rotate(-4deg) translateY(-3px)}}@keyframes cheer{50%{transform:translateY(-15px)}}@keyframes reach{to{transform:translate(4px,-2px) rotate(4deg)}}@keyframes dust{to{transform:translateX(-24px) scale(1.7);opacity:0}}@keyframes impact{0%{scale:.1;opacity:0}40%{scale:1.2;opacity:1}100%{scale:1;opacity:1}}@keyframes problem{50%{opacity:.35}}@keyframes prize-pop{0%{transform:translateY(70px) scale(.2);opacity:0}65%{transform:translateY(-13px) scale(1.12);opacity:1}100%{transform:translateY(0) scale(1);opacity:1}}@keyframes light-open{from{opacity:0;scale:.3 1}to{opacity:1;scale:1}}@keyframes result-in{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes snap{45%{transform:scale(.96) translateY(4px)}100%{transform:scale(1)}}@keyframes retry-ready{50%{filter:brightness(1.09)}}@keyframes island-ready{50%{transform:translateY(-3px)}}@keyframes world-rise{0%{transform:translate(-50%,45px) scale(.96);opacity:0}80%{transform:translate(-50%,-6px) scale(1.005);opacity:1}100%{transform:translate(-50%,0) scale(1);opacity:1}}@keyframes land{0%{transform:translateY(-130px);opacity:0}55%{transform:translateY(0);opacity:1}66%{transform:scale(1.13,.85)}82%{transform:translateY(-13px) scale(.97,1.03)}100%{transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.command-link{display:none}.tutorial-hand{display:none}}@media(max-width:760px){.app{min-width:760px}body{overflow:auto}}

.scroll-hints{position:absolute;top:46px;bottom:159px;right:-9px;z-index:35;width:44px;pointer-events:none}.scroll-hints button{position:absolute;right:0;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#f7eccb;box-shadow:0 3px 0 #b19a67,0 0 0 3px #edddb8;color:#426c5d;pointer-events:auto}.scroll-hints svg{width:24px;height:24px}.scroll-hints #scrollUp{top:0}.scroll-hints #scrollDown{bottom:0;transform:rotate(180deg)}

.level-grid button{position:relative}.level-grid button.completed:after{content:"✓";position:absolute;right:-6px;top:-9px;width:27px;height:27px;display:grid;place-items:center;background:#5c9b75;border:2px solid #f6efd3;border-radius:50%;font-size:18px;color:white;box-shadow:0 2px 0 #467959}

/* Gallery art direction: the sea is the stage; tools are quiet sea-glass furniture. */
.tray{background:linear-gradient(145deg,#d3e7ea,#b9d4dc);border-color:#d9ecee;border-radius:27px;box-shadow:inset 0 2px 2px #eff9fbcc,inset 0 -4px 0 #91b9c3,0 6px 0 #759fae,0 15px 22px #21576b28}
.tray:before{border-radius:22px;opacity:.3}.tray-grip{display:none}
.toolbox{left:22px;top:291px;width:138px;padding:20px 10px 24px}.tools{gap:16px}
.block,.block.left,.block.right,.block.jump,.block.pick,.block.repeat{--color:#a9cbd2;--shadow:#779fab;color:#254c58}
.tools .block{height:62px;padding:0 10px;font-size:19px;gap:7px;border-radius:12px}.tools .block svg{width:25px;height:25px}.tools .block.repeat{font-size:19px;gap:7px}
.block:after{background:#c5dfe3}.block:before{border-bottom-width:3px}
.program-panel{left:178px;top:207px;bottom:48px;width:222px;padding:22px 21px 12px 13px}
.program-track{background:none;padding-top:12px;scrollbar-color:#759fac transparent}
.program-item .block{font-size:19px;padding:0 9px;gap:7px}.program-item .block svg{width:24px;height:24px}
.program-item.has-child:after{background:var(--purple);border-color:#779fab}.repeat-child{background:#dcebef;color:#254c58;border-color:#a9cbd2;padding:0 7px;box-shadow:0 4px 0 #779fab}
.times{color:#254c58;background:#dcebef;min-width:49px;padding:0 4px;font-size:20px}
.program-item.executing .repeat-child{background:#689eac;color:#102f3a}.iteration{background:#d8e6e9;color:#254c58;padding:3px 6px}
.remove{color:#355b67;right:-18px}.remove:before{background:#d4e7eb;box-shadow:inset 0 1px 0 #f2fafb,0 2px 3px #34597126}
.empty-program{padding-top:68px}.empty-program span{height:62px;background:#97bdc535;box-shadow:inset 0 2px 2px #759fae55,0 1px 0 #eaf6fa99}.empty-program span:after{background:#c5dfe3;box-shadow:none}
.run,.run.retry{background:linear-gradient(145deg,#3d7180,#2a5b69);box-shadow:inset 0 2px 1px #ffffff30,0 5px 0 #204957;height:65px;font-size:23px;border-radius:15px}.run:disabled{background:#94b7c0;box-shadow:0 5px 0 #759eaa;color:#e2eef1}.run:active{box-shadow:0 2px 0 #204957}
.edit-actions{gap:8px;justify-content:center}.edit-actions button{height:44px;background:transparent;box-shadow:none;border:0;border-radius:12px;color:#355d6a}.edit-actions button:hover{background:#97bdc544}.edit-actions .help,.edit-actions .reset-scene{position:relative;inset:auto;width:44px;padding:0;display:grid;place-items:center}.edit-actions .help svg{width:26px;height:26px}.reset-scene img{display:none}.reset-scene svg{width:25px;height:25px}.undo{padding:0 6px;font-size:16px;gap:4px}.edit-actions:has(#undo:not([hidden])) #clear{display:none}
.stage{left:402px;right:8px;top:142px;bottom:28px}.world{width:960px;max-width:calc(100vw - 390px);top:117px}.robot-anchor{width:125px;height:149px}.chest-anchor{width:102px;height:120px}.obstacle{width:80px;height:68px}
.loop-lights{background:#345e70;border-color:#d1e5e7;box-shadow:0 3px 0 #244955,0 5px 10px #23495a30}.loop-lights i{background:#244955;box-shadow:inset 0 2px 1px #163844}
.reward button{background:linear-gradient(145deg,#d5e8ec,#bad6df);color:#254c58;box-shadow:inset 0 2px 1px #edf9fba0,0 5px 0 #749eab}.reward #next{background:linear-gradient(140deg,#3d7180,#2a5b69);box-shadow:inset 0 2px 1px #ffffff40,0 5px 0 #204957}
.float-button,.modal{background:linear-gradient(145deg,#d3e7ea,#b9d4dc);color:#254c58;border-color:#d9ecee;box-shadow:inset 0 2px 1px #eff9fbcc,0 5px 0 #759fae}.modal-close{box-shadow:none;background:#b5d2da}.hint-sequence span,.hint-sequence .left,.hint-sequence .right,.hint-sequence .repeat,.hint-sequence .jump,.hint-sequence .pick{background:#a9cbd2;color:#254c58;box-shadow:0 4px 0 #779fab}.hint-sequence b{color:#254c58;background:#dfecf0}.hint-load{background:#356b7b;box-shadow:0 5px 0 #204957}.level-grid button{background:#c5e0e5;color:#254c58;box-shadow:0 5px 0 #779fab}.scroll-hints button{background:#cce4e9;box-shadow:0 3px 0 #759eaa,0 0 0 3px #b9d4dc;color:#254c58}.tutorial-hand{color:#244e5b}.tutorial-hand svg{fill:#daeaf0}
@media(max-width:1100px){.toolbox{left:16px;width:128px;padding:18px 8px}.tools .block{font-size:18px;gap:5px;padding:0 8px}.program-panel{left:158px;width:216px}.stage{left:372px}.world{max-width:calc(100vw - 360px)}}
/* Top information sits over open water, away from the background islands. */
.level-button{left:calc(50% + 40px)}.star-total{right:calc(50% - 400px)}
@media(max-width:1100px){.level-button{left:calc(50% + 15px)}.star-total{right:42px}}
/* OIL-2: real sockets and one shared connector axis; no stacked bottom bands. */
.block{background:none;border:0;box-shadow:none;isolation:isolate;border-radius:12px;--socket-left:20px;--socket-width:32px;--joint-depth:10px}
.block:after{inset:0;width:auto;height:auto;box-shadow:inset 1px 2px 2px #effbffb0,inset -2px -2px 4px #668d9d55;background:linear-gradient(140deg,#c4dde4 0%,#b1d1da 48%,#a6c8d3 100%);border-radius:12px;clip-path:polygon(0 0,20px 0,20px 5px,22px 8px,26px 10px,46px 10px,50px 8px,52px 5px,52px 0,100% 0,100% 100%,0 100%);z-index:-1}
.block:before,.program-item.has-child:after{left:20px;width:32px;height:10px;bottom:-9px;border:0;border-radius:0 0 6px 6px;background:linear-gradient(135deg,#adcfd9,#a6c8d3);box-shadow:inset -1px -1px 2px #7599a766,0 1px 1px #35586740;z-index:3}
.tools .block{filter:drop-shadow(0 2px 1px #34596836)}
.program-item{margin:0;filter:drop-shadow(0 1px 1px #33546922)}
.program-item .block{background:none;border:0;box-shadow:none;height:52px;align-items:center;padding-top:4px}
.program-item .block:after{background:linear-gradient(140deg,#c4dde4 0%,#b1d1da 48%,#a6c8d3 100%)}
.program-item .block:before{height:10px}
.program-item.has-child>.block:after{border-radius:12px 12px 0 0;box-shadow:inset 1px 2px 2px #effbffb0,inset -2px 0 4px #668d9d33}
.program-item.has-child:after{bottom:-9px;background:linear-gradient(135deg,#adcfd9,#a6c8d3)}
.repeat-child{position:relative;height:54px;margin:0;padding:0 10px 0 21px;border:0;border-bottom:8px solid #a6c8d3;border-radius:0 0 12px 12px;background:linear-gradient(90deg,#afcfd9 0 10px,#d9e9ee 10px calc(100% - 7px),#a6c8d3 calc(100% - 7px));box-shadow:inset -1px -1px 2px #7599a744;color:#254c58}
.repeat-child select{min-height:44px}.repeat-child svg{width:21px;height:21px}
.dense .program-item .block{height:45px}.dense .repeat-child{height:54px}
.program-item.executing>.block{outline:3px solid #fbd35f;outline-offset:1px;box-shadow:none}
.program-item.executing .repeat-child{background:linear-gradient(90deg,#adcfd9 0 10px,#8ab2bf 10px calc(100% - 7px),#a6c8d3 calc(100% - 7px));color:#143b48}
.times{background:#dcebf0;border:0;box-shadow:inset 0 1px 2px #547c9030,0 1px 0 #f3fcff99;border-radius:8px}
.command-link.visible{opacity:.4}.command-link path{stroke-width:1.5;stroke-dasharray:5 15}.command-link #linkGlow{stroke-width:3;stroke:#ffdd7230;filter:blur(1px)}

/* A reward from the same rounded plastic world as the chest. */
.prize-star{filter:drop-shadow(0 4px 3px #60502655);background:none}
.prize-star img,.fly-star img{position:absolute;left:-10%;top:-10%;width:120%;height:120%;object-fit:contain}
.prize-star:not(.earned) img{filter:grayscale(1);opacity:.35}
.fly-star{filter:drop-shadow(0 3px 2px #60502644)}
.robot-anchor img{transform-origin:50% 100%}

/* 0.19.1: each pose has one opaque silhouette and a shared ground pivot. */
.chest-anchor img{position:absolute;left:0;bottom:0;width:100%;height:auto;object-fit:contain;transform-origin:50% 100%}

/* A pressed sea-glass piece: same body, socket, and inset child surface. */
.program-item.executing{filter:drop-shadow(0 2px 1px #60784235)}
.program-item.executing>.block{outline:0;color:#4b431e}
.program-item.executing>.block:after{background:linear-gradient(145deg,#fff1b9,#f5d978);box-shadow:inset 1px 2px 2px #fffbe6,inset -1px -2px 3px #b998454d}
.program-item.executing.has-child:after,.program-item.executing>.block:before{background:#e7c96b;box-shadow:inset 0 -1px 1px #b0913850,0 1px 1px #35586730}
.repeat-child{margin:0;background:linear-gradient(90deg,#afcfd9 0 10px,#d0e4ea 10px calc(100% - 7px),#a6c8d3 calc(100% - 7px));box-shadow:inset 0 2px 2px #527b9026,inset -1px -1px 1px #7599a733}
.program-item.executing .repeat-child{border-bottom-color:#e7c96b;color:#4b431e;background:linear-gradient(90deg,#f5d978 0 10px,#fff4c8 10px calc(100% - 7px),#e7c96b calc(100% - 7px));box-shadow:inset 0 2px 2px #ba9b4940,inset 0 -1px 0 #fff6dc}
.program-item.executing .times{color:#4b431e;background:#fff3c7;box-shadow:inset 0 1px 2px #9c7e302b,0 1px 0 #fff9e8}
.program-item.executing .iteration{color:#4b431e;background:#f4da86;box-shadow:inset 0 1px 1px #c49b4826}
.program-item.blocked>.block:after{background:linear-gradient(145deg,#ffe8bc,#f3c693)}
.program-item.blocked .repeat-child{background:linear-gradient(90deg,#f3c693 0 10px,#ffedcf 10px calc(100% - 7px),#e6b583 calc(100% - 7px));border-bottom-color:#e6b583}
.program-item.blocked.has-child:after{background:#e6b583}
.command-link #linkGlow{display:none}
.loop-lights{gap:7px;padding:5px 9px;border-width:1px;border-radius:12px;box-shadow:0 2px 2px #23495a35;background:#345e70}
.loop-lights i{width:11px;height:11px}.loop-lights i.on{box-shadow:inset 0 1px 1px #fff8}
.robot-anchor.walk .robot-shadow{animation:foot-pressure .6s 1}
@keyframes foot-pressure{0%,100%{transform:scale(1);opacity:1}42%{transform:scale(.88);opacity:.65}80%{transform:scale(1.05);opacity:1}}
.run{transition:transform .12s,box-shadow .12s}.run:hover:not(:disabled){filter:brightness(1.06)}
.tools .block:hover:not(:disabled){transform:translateY(-2px)}

.run.retry{animation:none}

/* The instruction is a pressed piece inside the loop; the loop itself steps back. */
.repeat-child{padding:4px 8px 8px 13px;border-bottom:6px solid #a6c8d3;background:#adcfd9;box-shadow:none}
.child-block{display:flex;align-items:center;gap:6px;width:100%;height:38px;padding:0 8px;border-radius:8px;color:#254c58;background:linear-gradient(145deg,#e1f0f2,#c4dce3);box-shadow:inset 1px 2px 1px #effaffb3,inset -1px -1px 2px #799dad3b,0 2px 1px #547b8d4d}
.child-block svg{width:21px;height:21px;flex-shrink:0}
.child-block select{padding-right:18px;min-width:0}
.program-item.executing.has-child>.block{color:#254c58}
.program-item.executing.has-child>.block:after{background:linear-gradient(145deg,#cce3e9,#b0cfda);box-shadow:inset 1px 2px 2px #effaffb0,inset -1px 0 2px #799dad3b}
.program-item.executing.has-child:after{background:#a6c8d3;box-shadow:inset -1px -1px 2px #7599a766,0 1px 1px #35586740}
.program-item.executing.has-child .times{color:#254c58;background:#dcebf0;box-shadow:inset 0 1px 2px #547c9030,0 1px 0 #f3fcff99}
.program-item.executing .repeat-child{background:#adcfd9;border-bottom-color:#a6c8d3;box-shadow:inset 0 2px 2px #547b8d33}
.program-item.executing .child-block{color:#493b17;font-size:20px;background:linear-gradient(145deg,#ffe9a2,#f2ca60 75%,#e8bc52);box-shadow:inset 1px 2px 1px #fff5c7,inset -1px -2px 2px #b68c323b,0 2px 1px #62859566}
.program-item.executing .iteration{background:#fff1bb;color:#493b17;font-size:17px;padding:3px 5px;box-shadow:inset 0 1px 2px #a788372b}
.program-item.blocked .child-block{background:linear-gradient(145deg,#fff0d3,#f1c493);color:#67471f}

/* Keep the first-use gesture hidden until its own animation begins. */
.tutorial-hand{opacity:0}
