.buddy{position:relative;flex:none;max-width:100%;padding:0;border:0;background:none;cursor:pointer;border-radius:24px;--lean: 0deg;--look-x: 0px;--look-y: 0px}.buddy__art{display:block;width:100%;height:100%;object-fit:contain;transform-origin:50% 90%;pointer-events:none;transform:translate(var(--look-x),var(--look-y)) rotate(var(--lean));transition:transform .25s ease-out;animation:float 3.2s ease-in-out infinite,wave 4s ease-in-out infinite}.buddy__wave{background:no-repeat 0 100% / 600% auto;animation:float 3.2s ease-in-out infinite,edocWave 3.2s infinite}.buddy:hover .buddy__wave,.buddy:focus-visible .buddy__wave{animation:float 3.2s ease-in-out infinite,edocWave 1.4s infinite,wiggle .6s ease-in-out}@keyframes edocWave{0%{background-position-x:0%;animation-timing-function:steps(6,jump-none)}45%{background-position-x:100%;animation-timing-function:steps(1,jump-end)}46%,to{background-position-x:0%}}.buddy--happy .buddy__art{animation:jump .55s cubic-bezier(.3,.9,.4,1.2)}.buddy:active .buddy__art{scale:.94 1.04}@keyframes wiggle{25%{rotate:-6deg;scale:1.04}50%{rotate:5deg}75%{rotate:-3deg}}@keyframes jump{0%{scale:1.08 .9}40%{translate:0 -22%;scale:.95 1.08}75%{translate:0 0;scale:1.06 .94}to{scale:1}}.buddy__say{position:absolute;left:50%;top:2%;translate:-50% -100%;white-space:nowrap;z-index:2;padding:6px 12px;border-radius:14px;background:var(--surface);color:var(--ink);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);font-weight:800;font-size:.95rem;animation:pop .3s ease-out both}.buddy__say:after{content:"";position:absolute;left:50%;bottom:-9px;width:14px;height:14px;translate:-50% 0;rotate:45deg;background:var(--surface);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink)}.ico{display:inline-block;object-fit:contain;flex:none;-webkit-user-select:none;user-select:none}.ico--inline{width:1.25em;height:1.25em;vertical-align:-.28em;margin:0 .05em}.ico--dim{filter:grayscale(1) brightness(.6);opacity:.45}.boardwrap{display:flex;justify-content:center;padding:6px 0 4px}.board{position:relative;display:grid;border-radius:14px;padding:6px;background:var(--wall);box-shadow:0 6px 0 var(--ink)}.cell{width:var(--cs);height:var(--cs);background:var(--cell);display:grid;place-items:center;font-size:calc(var(--cs) * .55);position:relative}.cell.alt{background:var(--cell-alt)}.cell.wall{background:var(--wall-top);box-shadow:inset 0 calc(var(--cs) * -.14) 0 var(--wall)}.cell.start:after{content:"";position:absolute;top:22%;right:22%;bottom:22%;left:22%;border:2px dashed var(--muted);border-radius:50%;opacity:.5}.star{transition:transform .35s ease,opacity .35s ease}.star.got{transform:scale(1.8) translateY(-30%);opacity:0}.robot{position:absolute;left:6px;top:6px;width:var(--cs);height:var(--cs);transition:transform var(--dur) ease-in-out;z-index:3;pointer-events:none}.robot__sprite{width:100%;height:100%;display:block;transition:transform var(--dur) ease-in-out;background:no-repeat 33.333% 0 / 400% 100%}.robot.bump{animation:bump .35s}.robot.win .robot__sprite{animation:hop .6s 2}@keyframes bump{25%{translate:-5px 0}50%{translate:5px 0}75%{translate:-3px 0}}@keyframes hop{50%{translate:0 -25%}}.msg{margin-top:14px;border-radius:14px;padding:10px 14px;font-weight:600;min-height:48px;background:var(--surface-2);border:2px dashed var(--line)}.msg.good{border:2px solid var(--good)}.msg.bad{border:2px solid var(--bad)}.msg.warn{border:2px solid var(--warn)}.tools-label{font-weight:700;color:var(--muted);font-size:.95rem;margin:0 0 6px}.editor{display:flex;background:var(--code-bg);border-radius:14px;overflow:hidden;border:2px solid var(--ink);height:300px}.editor:focus-within{box-shadow:0 0 0 3px var(--pink)}.gutter{width:38px;flex:none;padding:12px 0;color:var(--code-muted);font-family:var(--font-mono);font-size:14px;line-height:24px;text-align:right}.gutter div{padding-right:8px}.gutter .cur{color:var(--yellow);font-weight:600}.gutter .err{color:var(--pink);font-weight:600}.edwrap{position:relative;flex:1;min-width:0;overflow:hidden}.hl{position:absolute;left:0;right:0;height:24px;background:var(--highlight);pointer-events:none}.hl.err{background:var(--highlight-error)}.edwrap textarea{position:relative;width:100%;height:100%;resize:none;border:0;outline:none;background:transparent;color:var(--code-ink);font-family:var(--font-mono);font-size:14px;line-height:24px;padding:12px 10px;-moz-tab-size:2;tab-size:2;white-space:pre;overflow:auto;caret-color:var(--yellow)}.edwrap textarea:focus-visible{outline:none}.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.speed{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--muted);margin-left:auto}.speed input{accent-color:var(--pink);width:96px}.meter{margin-top:10px;font-weight:700;color:var(--muted)}.meter b{color:var(--ink)}.help{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.hintbox{margin-top:10px;background:var(--surface-2);border-radius:12px;padding:10px 14px}.hintbox pre{background:var(--code-bg);color:var(--code-ink);border-radius:10px;padding:10px 12px;font-family:var(--font-mono);font-size:13px;overflow-x:auto;margin:8px 0}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:grid;place-items:center;padding:20px;z-index:20}.mbox{background:var(--surface);border:2px solid var(--ink);border-radius:22px;box-shadow:0 6px 0 var(--ink);padding:24px;max-width:420px;width:100%;text-align:center}.mbox h3{margin:0;font-size:1.8rem}.medoc{display:block;width:120px;height:180px;object-fit:contain;margin:-80px auto 4px}.bigstars{font-size:2.6rem;letter-spacing:6px;margin:6px 0}.bigstars .dim{opacity:.2;filter:grayscale(1)}.mbox p{margin:6px 0}.mtip{color:var(--muted)}.mbtns{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}.cardpad__palette,.sort__choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:14px}.bigcard{min-height:88px;border-radius:16px;border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);background:var(--tool-cmd);color:var(--tool-cmd-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:800;font-size:1rem;padding:8px;text-align:center}.bigcard:active{transform:translateY(3px);box-shadow:none}.bigcard:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.bigcard code,.slot code{background:transparent;padding:0;font-size:.8rem;color:inherit}.program{list-style:none;margin:0 0 14px;padding:10px;display:flex;flex-wrap:wrap;gap:8px;background:var(--surface-2);border:2px solid var(--ink);border-radius:16px;min-height:92px}.slot{position:relative;width:72px;min-height:72px;border-radius:14px;border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);background:var(--tool-cmd);color:var(--tool-cmd-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px}.slot__n{position:absolute;top:2px;left:6px;font-size:.7rem;font-weight:800}.slot--empty{box-shadow:none;border-style:dashed;border-color:var(--muted);background:transparent;color:var(--muted);font-weight:700}.codeview{margin-bottom:12px;font-weight:700;color:var(--muted)}.codeview pre{margin:6px 0 0;background:var(--code-bg);color:var(--code-ink);border-radius:12px;padding:10px 14px;font-family:var(--font-mono);font-size:14px;line-height:22px}.sort__done{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}.sort__done li{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 12px;border-radius:14px;border:2px dashed var(--muted);font-weight:700}.sort__done li.filled{border:2px solid var(--good);background:var(--surface)}.sort__n{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--yellow);color:var(--yellow-ink);font-weight:800;flex:none}.sort__blank{color:var(--muted)}.sort__icon{width:104px;height:72px;object-fit:contain}.sort__thumb{width:56px;height:40px;object-fit:contain}.sort__choices .bigcard{min-height:132px}.shake{animation:bump .35s}.lesson{margin:10px 0 4px;padding:10px 14px;border-radius:14px;background:var(--tool-loop);color:var(--tool-loop-ink);font-weight:700;text-align:left}.lesson code{background:#fff9}.sortstage{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 0}.sortstage img{width:150px;height:225px;object-fit:contain}.suggest{position:absolute;z-index:5;margin:0;padding:4px;list-style:none;min-width:220px;max-width:calc(100% - 12px);background:var(--surface);color:var(--ink);border:2px solid var(--ink);border-radius:12px;box-shadow:0 4px 0 var(--ink)}.suggest li{display:flex;align-items:baseline;gap:10px;padding:6px 10px;border-radius:8px;cursor:pointer}.suggest li[aria-selected=true]{background:var(--yellow);color:var(--yellow-ink)}.suggest code{background:transparent;padding:0;font-weight:600;color:inherit}.suggest span{font-size:.85rem;font-weight:600;opacity:.85}.maptabs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px}.maptabs__label{font-weight:700;color:var(--muted);font-size:.95rem;margin-right:4px}.maptab{min-height:36px;padding:2px 12px;border-radius:10px;border:2px solid var(--muted);background:var(--surface);font-weight:800}.maptab[aria-pressed=true]{background:var(--yellow);color:var(--yellow-ink);border-color:var(--ink);box-shadow:0 2px 0 var(--ink)}.maptab__fail{color:var(--bad)}.maptab[aria-pressed=true] .maptab__fail{color:var(--tool-cond-ink)}.editor-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin-bottom:6px}.editor-bar .tools-label{margin:0;flex:1 1 220px}.editor-bar .btn{min-height:40px;padding:4px 12px;font-size:.95rem}.legend{width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;padding:0;background:var(--surface);color:var(--ink);border:2px solid var(--ink);border-radius:22px;box-shadow:0 6px 0 var(--ink)}.legend::backdrop{background:var(--scrim)}.legend__body{padding:20px 22px}.legend h2{margin:0;font-size:1.4rem}.legend .mbtns{margin-top:18px}.legend__group h3{margin:10px 0 4px;font-size:.8rem;font-weight:800;color:var(--muted)}.legend ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.legend li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:.9rem}.legend code{font-weight:700}.legend li>span:not(.legend__new){color:var(--muted);font-weight:600}.legend__new{background:var(--pink);color:var(--on-accent);font-weight:800;font-size:.72rem;border-radius:999px;padding:0 8px}.console{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}.console__head{margin:0 0 4px;font-size:.85rem;font-weight:800;color:var(--muted)}.console pre{margin:0;min-height:72px;padding:10px 12px;border-radius:12px;background:var(--code-bg);color:var(--code-ink);border:2px solid var(--ink);font-family:var(--font-mono);font-size:14px;line-height:22px;white-space:pre-wrap;overflow-wrap:anywhere}.robot__sprite{animation:breathe 2.4s ease-in-out infinite}.robot.step .robot__sprite{animation:walk var(--dur) steps(4,jump-none),breathe 2.4s ease-in-out infinite}@keyframes walk{0%{background-position-x:0%}to{background-position-x:100%}}@keyframes breathe{50%{scale:1.06}}.robot.step{animation:stepHop .26s ease-out}@keyframes stepHop{40%{translate:0 -14%}}.flag{display:inline-block;transform-origin:15% 90%;animation:flagWave 1.6s ease-in-out infinite}@keyframes flagWave{50%{rotate:-8deg;scale:1 .94}}.star{animation:twinkle 2.2s ease-in-out infinite}.star.got{animation:none}@keyframes twinkle{50%{scale:1.12;rotate:8deg}}.cell.start:after{animation:spin 8s linear infinite}@keyframes spin{to{rotate:360deg}}.msg__oops{float:left;width:46px;height:64px;object-fit:contain;margin:-6px 10px -6px -4px;animation:wave 1.2s ease-in-out 2}.modal{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}}.mbox{position:relative;animation:pop .45s cubic-bezier(.2,.9,.3,1.3) both}.medoc{animation:float 1.4s ease-in-out infinite}.bigstars span{display:inline-block;animation:pop .5s ease-out both}.bigstars span:nth-child(2){animation-delay:.15s}.bigstars span:nth-child(3){animation-delay:.3s}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;border-radius:inherit}.mbox>:not(.confetti){position:relative;z-index:1}.confetti i{position:absolute;top:-12px;left:var(--x);width:9px;height:14px;border-radius:3px;background:var(--c);animation:fall var(--d) linear var(--w) infinite}@keyframes fall{to{translate:var(--s) 520px;rotate:540deg}}.term__cmd{color:var(--code-ink);opacity:.7}.term__dim{opacity:.6;font-style:italic}.term__err{color:#ff8fa8}.term__err code{color:inherit;font-weight:700}.mkey{display:flex;align-items:center;gap:8px;margin:6px auto;padding:6px 14px 6px 8px;border-radius:12px;background:var(--yellow);color:#1b2559;font-weight:800;width:fit-content;animation:pop .4s ease-out both .9s}.cell .star .ico,.cell .flag .ico{width:calc(var(--cs) * .66);height:calc(var(--cs) * .66)}.bigstars{display:flex;justify-content:center;gap:8px}.lv__s{display:inline-flex;gap:1px}.app-header{background:var(--surface);border-bottom:2px solid var(--ink)}.app-header__inner{display:flex;align-items:center;gap:16px;min-height:68px}.app-header__brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:1.6rem;font-weight:800;letter-spacing:-.5px}.app-header__nav{flex:1;display:flex;gap:6px}.app-header__nav a{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:12px;border:2px solid transparent;font-weight:800;text-decoration:none}.app-header__nav a.active{background:var(--yellow);color:var(--yellow-ink);border-color:var(--ink)}.app-header__account{display:flex;align-items:center;gap:8px}.app-header__name{font-weight:700;max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header .btn{min-height:40px;padding:4px 12px;font-size:.95rem}@media (max-width: 560px){.app-header__name,.app-header__brand span{display:none}.app-header__inner{gap:8px}}.app-header__sound{min-width:44px;padding:4px 8px!important}.app-header__keys{display:inline-flex;align-items:center;gap:4px}.landing{padding-top:32px;padding-bottom:40px;display:flex;flex-direction:column;gap:32px}.hero{display:flex;flex-wrap:wrap;align-items:center;gap:24px 48px}.hero__text{flex:1 1 380px;display:flex;flex-direction:column;gap:16px}.hero h1{margin:0;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-1px;line-height:1}.hero__text>p{margin:0;font-size:1.2rem;color:var(--muted);max-width:34ch}.hero__cta{display:flex;flex-wrap:wrap;gap:12px}.hero__note{font-size:.95rem!important}.hero__edoc{margin:40px auto 0}.worlds h2{margin:0;font-size:1.8rem}.worlds>p{margin:4px 0 0;color:var(--muted);font-weight:600}.worlds ol{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:20px}.worlds li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px}.worlds li>img{width:100%;max-width:200px;height:160px;object-fit:contain}.worlds li span{color:var(--muted);font-weight:600}.map{padding-top:24px;padding-bottom:40px}.map__head h1{margin:0;font-size:2rem}.map__head p{margin:4px 0 0;color:var(--muted);font-weight:600}.islands{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}@media (max-width: 900px){.islands{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.islands{grid-template-columns:minmax(0,1fr)}}.island{display:flex;flex-direction:column;gap:10px}.islands-wrap{position:relative}.island{position:relative;z-index:1}.islands__path{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}.islands__path line{stroke:var(--line);stroke-width:6;stroke-linecap:round;stroke-dasharray:0 16}.islands__path line.on{stroke:var(--yellow)}@media (min-width: 901px){.island:nth-child(4){grid-area:2 / 3}.island:nth-child(5){grid-area:2 / 2}.island:nth-child(6){grid-area:2 / 1}.island:nth-child(7){grid-area:3 / 1}.island:nth-child(8){grid-area:3 / 2}.island:nth-child(9){grid-area:3 / 3}.island:nth-child(10){grid-area:4 / 3}.island:nth-child(11){grid-area:4 / 2}}.island>img{display:block;width:100%;max-width:220px;height:180px;object-fit:contain;margin:0 auto}.island--locked>img{filter:grayscale(.85);opacity:.55}.island__card{flex:1;background:var(--surface);border:2px solid var(--line);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.island__card>.btn{margin-top:auto}.island--current .island__card{border-color:var(--ink);box-shadow:0 4px 0 var(--ink)}.island--locked .island__card{background:var(--surface-2)}.island__card h2{margin:0;font-size:1.15rem}.island__topics,.island__lock{margin:0;color:var(--muted);font-weight:600;font-size:.95rem}.island__card .btn{align-self:stretch}.levels{list-style:none;margin:0;padding:0 0 8px;display:flex;flex-wrap:wrap;gap:14px 8px}.lv{position:relative;display:grid;place-items:center;min-width:48px;height:44px;padding:0 6px;border-radius:12px;border:2px solid var(--muted);background:var(--surface);font-weight:800;text-decoration:none}.lv.done{border-color:var(--teal)}.lv.on{background:var(--yellow);color:var(--yellow-ink);border-color:var(--ink);box-shadow:0 3px 0 var(--ink)}.lv.locked{opacity:.55}.lv__s{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);font-size:.55rem;line-height:1;white-space:nowrap;background:var(--surface);border-radius:6px;padding:1px 3px}.play{padding-top:14px;padding-bottom:30px}.crumbs{font-weight:700;color:var(--muted);margin-bottom:10px}.crumbs a{color:var(--ink)}.play__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:18px;align-items:start}@media (max-width: 860px){.play__grid{grid-template-columns:minmax(0,1fr)}}.lvhead{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:4px}.lvhead h1{margin:0;font-size:1.55rem}.mission{margin:6px 0 14px;max-width:62ch;font-size:1.06rem}.hud{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.container.notfound,.notfound{padding-top:56px;padding-bottom:56px;display:grid;place-items:center}.notfound__card{max-width:520px;width:100%;text-align:center;padding:28px 24px 24px}.notfound__card h1{margin:8px 0 6px;font-size:1.6rem}.notfound__card p{margin:0 auto 18px;max-width:40ch;color:var(--muted)}.notfound__edoc{width:160px;height:160px;object-fit:contain;animation:float 3.2s ease-in-out infinite}.notfound__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.login{padding-top:32px;padding-bottom:40px;display:flex;justify-content:center}.login__card{max-width:460px;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.login__card .buddy{margin-top:36px}.login__card h1{margin:0;font-size:1.8rem}.login__card p{margin:0}.login__card hr{width:100%;border:0;border-top:2px dashed var(--line);margin:6px 0}.login__note,.login__guest{color:var(--muted);font-weight:600;font-size:.95rem}.login__guest a{color:var(--ink)}.btn--google{background:#fff;color:#1b2559;border-color:#1b2559;box-shadow:0 3px #1b2559;min-height:52px;padding:8px 20px}.island__card>.btn{align-self:stretch}.island{animation:rise .5s ease-out both;animation-delay:calc(var(--i, 0) * 70ms)}.island>img,.worlds li>img{animation:float 4.5s ease-in-out infinite;animation-delay:calc(var(--i, 0) * -.8s)}.island--current>img{animation-duration:2.6s;filter:drop-shadow(0 0 18px rgba(255,198,46,.45))}.islands__path line.on{animation:march 1.1s linear infinite}@keyframes march{to{stroke-dashoffset:-16}}.lv.on{animation:float 1.8s ease-in-out infinite}.lv:hover{translate:0 -2px}.playground__opts{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;font-weight:700}.playground__opts select{font:inherit;padding:6px 10px;border-radius:10px;border:2px solid var(--ink);background:var(--surface);color:var(--ink)}.playground__input{width:100%;min-height:72px;box-sizing:border-box;padding:10px 12px;border-radius:12px;border:2px solid var(--ink);background:var(--code-bg);color:var(--code-ink);font-family:var(--font-mono);font-size:14px;resize:vertical}.mapedit__tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.mapedit__tool{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;border:2px solid var(--ink);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}.mapedit__tool.on{background:var(--yellow);color:#1b2559;box-shadow:0 3px 0 var(--ink)}.mapedit__swatch{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;font-size:15px;background:var(--cell)}.mapedit__swatch.t-wall{background:var(--wall-top)}.mapedit__swatch img,.mapedit__edoc{width:80%;height:80%;object-fit:contain}.mapedit__board .cell{border:0;padding:0;cursor:crosshair;touch-action:none}.mapedit__board .cell:focus-visible{outline:3px solid var(--yellow);outline-offset:-3px;z-index:1}.mapedit__form{display:grid;gap:12px;align-content:start}.mapedit__form label{display:grid;gap:4px;font-weight:700}.mapedit__form input,.mapedit__form select{font:inherit;padding:8px 10px;border-radius:10px;border:2px solid var(--ink);background:var(--surface);color:var(--ink)}.mapedit__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mapedit__mine ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}.mapedit__mine li{display:flex;align-items:center;gap:8px}.mapedit__mine li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.mapedit__test{margin-top:24px}.hintbox__note{margin:0 0 6px;font-weight:700}.helpbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}.helpbtn{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 8px;border-radius:14px;border:2px solid var(--ink);background:var(--surface);color:var(--ink);font:inherit;font-weight:800;cursor:pointer;box-shadow:0 3px 0 var(--ink)}.helpbtn:hover{transform:translateY(-1px)}.helpbtn[aria-expanded=true]{background:var(--surface-2);box-shadow:none;transform:translateY(2px)}.keychip{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 6px;border-radius:999px;background:var(--surface-2);font-weight:700}.keychip b{font-size:1.05rem}.hintbox--icon{display:flex;gap:12px;align-items:flex-start}.hintbox--icon>img{flex:none}.hintbox--icon p{margin:0 0 8px}.helpbtn__cost{display:inline-flex;align-items:center;gap:2px;margin-left:2px;padding:1px 8px 1px 4px;border-radius:999px;background:var(--yellow);color:#1b2559;font-size:.85rem}:root{--bg: #e8f1ff;--grid: #d3e3fb;--surface: #ffffff;--surface-2: #f3f7ff;--ink: #1b2559;--muted: #5d6894;--line: #cfdcf5;--yellow: #ffc62e;--yellow-ink: #3a2a00;--pink: #ff5d8f;--teal: #14a884;--on-accent: #1b2559;--good: #14a884;--bad: #e23d5c;--warn: #c98a00;--cell: #ffffff;--cell-alt: #f5f8ff;--wall: #3b4a9c;--wall-top: #5b6cc4;--code-bg: #1b2559;--code-ink: #eef3ff;--code-muted: #8d9ad0;--highlight: rgba(255, 198, 46, .3);--highlight-error: rgba(255, 93, 143, .35);--tool-cmd: #d8f7ec;--tool-cmd-ink: #0b4f3f;--tool-loop: #ffe7a6;--tool-loop-ink: #4d3800;--tool-cond: #ffd6e3;--tool-cond-ink: #6b0f2e;--scrim: rgba(10, 14, 40, .55);--font-display: "Baloo 2", "Trebuchet MS", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--dur: .3s;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #121633;--grid: #1b2148;--surface: #1c2250;--surface-2: #232a5e;--ink: #eef1ff;--muted: #a5addb;--line: #2e3670;--cell: #232a5e;--cell-alt: #283068;--wall: #6f7fe0;--wall-top: #93a0f0;--code-bg: #0d1029;--code-muted: #7d88c2;--warn: #ffcf5a;color-scheme:dark}}:root[data-theme=dark]{--bg: #121633;--grid: #1b2148;--surface: #1c2250;--surface-2: #232a5e;--ink: #eef1ff;--muted: #a5addb;--line: #2e3670;--cell: #232a5e;--cell-alt: #283068;--wall: #6f7fe0;--wall-top: #93a0f0;--code-bg: #0d1029;--code-muted: #7d88c2;--warn: #ffcf5a;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-display);color:var(--ink);background:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:28px 28px;line-height:1.45;min-height:100vh}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit}:is(a,button,textarea,summary,input):focus-visible{outline:3px solid var(--pink);outline-offset:2px}code{font-family:var(--font-mono);font-size:.88em;background:var(--surface-2);padding:1px 6px;border-radius:6px}h1,h2,h3{line-height:1.1;font-weight:800}img{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.container{max-width:1180px;margin:0 auto;padding:0 18px}.panel{background:var(--surface);border:2px solid var(--ink);border-radius:20px;box-shadow:0 5px 0 var(--ink);padding:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:2px solid var(--ink);border-radius:12px;padding:6px 16px;font-weight:800;font-size:1.02rem;background:var(--surface);color:var(--ink);box-shadow:0 3px 0 var(--ink);text-decoration:none}.btn:active{transform:translateY(3px);box-shadow:none}.btn--go{background:var(--teal);color:var(--on-accent);border-color:var(--on-accent);box-shadow:0 3px 0 var(--on-accent)}.btn--pause{background:var(--pink);color:var(--on-accent);border-color:var(--on-accent);box-shadow:0 3px 0 var(--on-accent)}.btn--ghost{box-shadow:none;border-color:var(--muted);font-weight:700}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.pill{display:inline-block;background:var(--surface-2);border:1.5px solid var(--line);border-radius:999px;padding:2px 12px;font-weight:700;font-size:.95rem}.concept{display:inline-block;background:var(--pink);color:var(--on-accent);font-weight:700;border-radius:999px;padding:1px 12px;font-size:.92rem}.badge{display:inline-block;background:var(--tool-loop);color:var(--tool-loop-ink);font-weight:800;font-size:.85rem;border-radius:999px;padding:1px 10px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@keyframes float{50%{translate:0 -8px}}@keyframes rise{0%{opacity:0;translate:0 14px}}@keyframes pop{0%{scale:.6;opacity:0}70%{scale:1.06;opacity:1}to{scale:1}}@keyframes wave{0%,60%,to{rotate:0deg}15%{rotate:-6deg}30%{rotate:5deg}45%{rotate:-3deg}}@keyframes glow{50%{box-shadow:0 3px 0 var(--on-accent),0 0 0 6px #14a88440}}.panel{animation:rise .45s ease-out both}.btn--go{animation:glow 2.4s ease-in-out infinite}.btn:hover{translate:0 -1px}
