:root{--bg:#fff8ee;--panel:#fff;--ink:#4a3d36;--sub:#8a7a6e;--line:#f0e2cf;--accent:#ff8fb1;--run:#4cc38a;--run-d:#36a873;--ctl:#ffe6b8;--err:#e2557a;--ok:#2f9e6c;--kc:#9ee0c0;--radius:16px;color:var(--ink);font-family:"M PLUS Rounded 1c",Hiragino Maru Gothic ProN,Hiragino Sans,BIZ UDPGothic,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}button{font:inherit;cursor:pointer;color:inherit}.hidden{display:none!important}.spacer{flex:1}.screen{flex-direction:column;height:100dvh;display:flex}.bar{border-bottom:2px solid var(--line);background:#fff;flex-wrap:nowrap;align-items:center;gap:8px;min-height:48px;padding:6px 10px;display:flex}.brand{align-items:center;gap:6px;font-size:18px;font-weight:800;display:flex}.mini{border:2px solid var(--line);white-space:nowrap;color:var(--ink);background:#fff;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700;text-decoration:none}.mini:hover{background:#fff3e0}.mini.sensei{color:var(--sub);padding:2px 8px;font-size:11px}.who{white-space:nowrap;font-size:14px;font-weight:700}.sync{color:var(--sub);white-space:nowrap;font-size:11px}.sync.offline{color:#c77d00}.where{flex-direction:column;min-width:0;line-height:1.15;display:flex}#kuni-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:800;overflow:hidden}.lv-label{color:var(--sub);font-size:11px}.chips{flex-wrap:nowrap;gap:4px;display:flex;overflow-x:auto}.chip{border:2px solid var(--line);min-width:30px;height:30px;color:var(--sub);background:#fff;border-radius:999px;padding:0 6px;font-size:12px;font-weight:800}.chip.done{color:#d99a00;background:#fff3c4;border-color:#f5d777}.chip.cur{border-color:var(--accent);color:var(--ink);box-shadow:0 0 0 2px #ffd3e1}.chip.kentei{background:#f3ecff}.chip.locked{opacity:.45}.today{color:var(--ok);white-space:nowrap;font-size:12px;font-weight:700}#login{background:radial-gradient(circle at 30% 20%, #ffe9f1, transparent 50%), radial-gradient(circle at 80% 80%, #e2f6ff, transparent 50%), var(--bg);justify-content:center;align-items:center;overflow-y:auto}.login-card{text-align:center;background:#fff;border-radius:28px;flex-direction:column;gap:10px;width:min(420px,100vw - 32px);padding:24px 28px;display:flex;box-shadow:0 10px 30px #e8cfb455}.login-card h1{letter-spacing:2px;margin:0;font-size:32px}.login-card .sub{color:var(--sub);margin:0 0 6px}.login-card label{text-align:left;flex-direction:column;gap:4px;font-size:14px;font-weight:700;display:flex}.login-card input{font:inherit;border:2px solid var(--line);border-radius:14px;outline:none;padding:10px 14px;font-size:22px}.login-card input:focus{border-color:var(--accent)}.big{background:var(--accent);color:#fff;border:none;border-radius:999px;padding:12px 26px;font-size:20px;font-weight:800;text-decoration:none;display:inline-block;box-shadow:0 4px #e06c92}.big:active{transform:translateY(2px);box-shadow:0 2px #e06c92}.link{color:var(--sub);background:0 0;border:none;font-size:13px;text-decoration:underline}.msg-err{color:var(--err);min-height:1.2em;margin:0;font-size:14px;font-weight:700}.recent{color:var(--sub);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;font-size:12px;display:flex}.chip-name{border:2px solid var(--line);background:#fff8ee;border-radius:999px;padding:4px 12px;font-size:15px;font-weight:700}#map{overflow-y:auto}.prologue{max-width:900px;color:var(--sub);margin:14px auto 4px;padding:0 16px;font-size:14px;line-height:1.7}.kuni-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%;max-width:1000px;margin:0 auto;padding:12px 16px 24px;display:grid}.kuni-card{border:3px solid var(--kc);box-shadow:0 6px 0 color-mix(in srgb, var(--kc) 60%, #fff);background:#fff;border-radius:22px;flex-direction:column;gap:4px;padding:14px;display:flex;position:relative}.kuni-card.locked{filter:grayscale(.7);opacity:.7}.k-emoji{font-size:36px;line-height:1}.k-no{color:var(--sub);font-size:12px;font-weight:700}.k-name{font-size:19px;font-weight:800}.k-grade{color:var(--sub);font-size:11px}.k-dots{gap:5px;margin-top:4px;display:flex}.k-dots i{background:#f1e6d6;border-radius:50%;width:14px;height:14px;display:block}.k-dots i.on{background:#ffcf4a}.k-stars{color:#d99a00;font-size:13px;font-weight:700}.k-master{color:#9a5bd1;font-size:13px;font-weight:800}.k-btns{gap:6px;margin-top:6px;display:flex}.k-btns .go{background:var(--run);color:#fff;box-shadow:0 3px 0 var(--run-d);border:none;border-radius:999px;flex:1;padding:8px;font-size:15px;font-weight:800}.k-btns .free{border:2px solid var(--line);background:#fff;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:700}.k-lock{color:var(--sub);font-size:11px}.stage{flex:1;grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:8px;min-height:0;padding:8px 8px 0;display:grid}.left,.right{background:var(--panel);border-radius:var(--radius);border:2px solid var(--line);flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden}.left-top{border-bottom:2px solid var(--line);align-items:center;gap:6px;min-height:36px;padding:4px 8px;display:flex}.tabs{gap:4px;display:flex}.tabs button{border:2px solid var(--line);background:#fff;border-radius:10px;padding:3px 10px;font-size:13px;font-weight:800}.tabs button.on{background:#fff0c9;border-color:#f2c76b}.count{color:var(--sub);white-space:nowrap;font-size:13px;font-weight:800}.count.over{color:var(--err)}.blockly{flex:1;min-height:0;position:relative}.textpane{flex-direction:column;flex:1;min-height:0;display:flex}.textpane textarea{resize:none;color:#3b2f2f;tab-size:2;background:#fffdf7;border:none;outline:none;flex:1;min-height:0;padding:12px;font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;line-height:1.6}.cheat{border-top:2px solid var(--line);max-height:34%;color:var(--sub);flex-wrap:wrap;align-items:center;gap:4px;padding:6px;font-size:11px;display:flex;overflow-y:auto}.cheat>span{width:100%}.cheat button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:2px 6px;font-size:11px}.cheat code{color:#c0567a;font-weight:700}.mission{z-index:2;border:2px solid var(--line);pointer-events:none;background:#ffffffe8;border-radius:14px;padding:6px 12px;position:absolute;top:8px;left:8px;right:8px}.mission.has-demo{padding-right:112px}.m-title{color:var(--sub);font-size:12px;font-weight:700}.m-text{font-size:15px;line-height:1.4}.m-text b{font-weight:800}.learn{color:#9a5bd1;font-size:11px;font-weight:700;display:block}.demo-btn{pointer-events:auto;position:absolute;top:6px;right:8px}.view{flex:1;min-height:0}.view canvas{display:block}.view-ui{z-index:2;align-items:center;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.round{border:2px solid var(--line);background:#fff;border-radius:50%;width:40px;height:40px;font-size:20px;font-weight:800}.pos:empty{display:none}.pos{background:#ffffffd0;border-radius:8px;padding:2px 8px;font-size:13px;font-weight:800}.caption{z-index:3;border:3px solid var(--accent);background:#fff;border-radius:18px;align-items:center;gap:10px;padding:10px 14px;font-size:16px;line-height:1.5;display:flex;position:absolute;bottom:60px;left:12px;right:12px;box-shadow:0 6px 20px #0002}.caption>div{flex:1}.controls{align-items:center;gap:8px;min-height:64px;padding:8px;display:flex}.run{background:var(--run);color:#fff;box-shadow:0 4px 0 var(--run-d);white-space:nowrap;border:none;border-radius:999px;padding:10px 28px;font-size:22px;font-weight:800}.run:active{box-shadow:0 2px 0 var(--run-d);transform:translateY(2px)}.ctl{background:var(--ctl);white-space:nowrap;border:none;border-radius:999px;padding:10px 16px;font-size:16px;font-weight:800;box-shadow:0 3px #ecc77c}.msg{border:2px solid var(--line);background:#fff;border-radius:12px;flex:1;align-items:center;min-width:0;min-height:44px;padding:6px 12px;font-size:15px;font-weight:700;line-height:1.35;display:flex}.msg.err{color:var(--err);background:#fff5f8;border-color:#f6c1cf}.msg.ok{color:var(--ok);background:#f2fcf6;border-color:#b9e8cf}body.running #btn-run{opacity:.5}body[data-kuni="1"] .m-text{font-size:18px}.bw-glow>.blocklyPath{animation:.9s ease-in-out infinite alternate glow;stroke:#ff3d8b!important;stroke-width:4px!important}@keyframes glow{0%{filter:drop-shadow(0 0 2px #ff5fa2)}to{filter:drop-shadow(0 0 10px #ff5fa2)}}.bw-glow-cat{border-radius:8px;outline:3px solid #ff5fa2;animation:.9s ease-in-out infinite alternate glowc}@keyframes glowc{0%{outline-color:#ff5fa2}to{outline-color:#ffd3e1}}.modal{z-index:20;background:#4a3d3655;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{text-align:center;background:#fff;border-radius:26px;width:min(520px,100%);max-height:92vh;padding:22px 26px;overflow-y:auto;box-shadow:0 16px 40px #0003}.modal-card h2{margin:6px 0}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:12px;display:flex}.stars{letter-spacing:6px;color:#eadfcd;font-size:52px}.stars .on{color:#ffc93c;text-shadow:0 3px #e8a800;animation:.5s both pop}.stars span:nth-child(2){animation-delay:.15s}.stars span:nth-child(3){animation-delay:.3s}@keyframes pop{0%{transform:scale(.2)}70%{transform:scale(1.3)}to{transform:scale(1)}}.praise{color:#5a4a40;font-size:17px;font-weight:700;line-height:1.7}.small{color:var(--sub);font-size:13px}.story .s-emoji,.medal{font-size:64px}.story p{margin:6px 0;font-size:17px;line-height:1.8}.title-name{color:#9a5bd1;margin:4px 0;font-size:26px;font-weight:800}.can{text-align:left;font-size:15px;line-height:1.8;display:inline-block}.confetti{pointer-events:none;z-index:30;width:100vw;height:100vh;position:fixed;inset:0}@media (width<=900px){.bar{gap:5px;padding:4px 6px}.brand{font-size:15px}#kuni-name{max-width:120px;font-size:12px}.chip{min-width:26px;height:26px;font-size:11px}.today,.sync{display:none}.kuni-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.run{padding:8px 18px;font-size:18px}.ctl{padding:8px 12px;font-size:14px}.msg,.m-text{font-size:13px}.stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width<=560px){.kuni-grid{grid-template-columns:1fr}.stage{grid-template-rows:1fr 1fr;grid-template-columns:1fr}}
