*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#142231;--bg2:#1c2e3d;--bg3:#263b4b;--border:#496176;--gold:#e5b85c;--cyan:#9abfaf;--purple:#d6cdbd;--green:#6fa278;--red:#d57c68;--text:#f7f0e4;--muted:#b8b8ae}html{width:100%;overflow-x:hidden}body{background:var(--bg);color:var(--text);justify-content:center;min-height:100vh;padding:12px 10px 40px;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:clamp(18px,1vw + 15px,20px);display:flex;overflow-x:hidden}#stage{width:100%;min-width:0;max-width:760px}a,a:visited{color:inherit;text-decoration:none}#hud{border:1.5px solid var(--border);background:#233746;border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 14px;font-size:18px;display:flex}#hud .rank{color:var(--purple);width:100%;margin-top:1px;font-size:15px;line-height:1.45}.streak{color:var(--red);font-weight:800}#sndBtn,.hud-link{border:1px solid var(--border);min-width:46px;min-height:46px;color:var(--text);cursor:pointer;font:inherit;background:#2b4352;border-radius:10px;padding:8px}.screen{background:var(--bg2);border:1.5px solid var(--border);border-radius:20px;min-width:0;padding:20px 18px 24px;animation:.3s pop;overflow:hidden}@keyframes pop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}h1.title{text-align:center;color:var(--gold);letter-spacing:1px;text-shadow:none;margin-bottom:8px;font-size:clamp(2rem,5vw,3rem);line-height:1.18}.subtitle{text-align:center;color:var(--purple);margin-bottom:14px;font-size:clamp(18px,1vw + 15px,20px);line-height:1.6}.btn{text-align:left;cursor:pointer;width:100%;color:var(--text);border:1.5px solid var(--border);background:#233746;border-radius:12px;min-height:46px;margin-top:9px;padding:12px 16px;font-family:inherit;font-size:19px;font-weight:700;line-height:1.45;transition:all .12s;display:block}a.btn,a.btn:visited{color:var(--text);text-decoration:none}.btn:hover{border-color:var(--gold);background:#2e4656;transform:translate(3px)}.btn .sub{color:var(--muted);margin-top:2px;font-size:15px;font-weight:400;line-height:1.45;display:block}.btn.primary{background:var(--gold);color:#272318;text-align:center;border-color:#f3d98a;font-size:19px;box-shadow:0 4px #9a6e27}.btn.primary:hover{transform:translateY(-2px);box-shadow:0 6px #9a6e27}.btn.primary:active{transform:translateY(2px);box-shadow:0 1px #9a6e27}.btn.ghost{text-align:center;color:var(--muted)}.btn.ghost:hover{color:var(--text)}.wstars{float:right;color:var(--gold);font-size:16px}.levelmap{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0;display:grid}.lvnode{aspect-ratio:1;border:1.5px solid var(--border);background:var(--bg3);cursor:pointer;color:var(--text);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;font-family:inherit;transition:all .12s;display:flex}.lvnode:hover{border-color:var(--gold);transform:scale(1.06)}.lvnode .ln{font-size:25px;font-weight:800}.lvnode .lname{color:var(--muted);text-align:center;overflow-wrap:anywhere;font-size:16px;line-height:1.35}.lvnode .lstar{letter-spacing:1px;font-size:16px}.lvnode.done{background:#31533e;border-color:#6fa27888}.lvnode.boss{background:#543632;border-color:#d57c6888}.teach{background:var(--bg3);border:1.5px solid var(--border);border-radius:14px;margin:10px 0;padding:14px 16px}.teach p{margin:7px 0;line-height:1.8;font-size:18px!important}.teach .k{color:var(--gold);font-weight:800}.teach .c{color:var(--cyan);background:#172733;border-radius:4px;padding:1px 6px;font-family:SF Mono,Consolas,monospace;font-size:15px}.qbox{background:var(--bg3);border:1.5px solid var(--border);border-radius:14px;margin:10px 0;padding:14px 16px}.qcode{white-space:pre-wrap;background:#172733;border-radius:10px;margin:8px 0;padding:12px 14px;font-family:SF Mono,Consolas,monospace;font-size:16px;line-height:1.75;overflow-x:auto}.seq-crystal{text-align:center;background:#172733;border-radius:10px;margin:8px 0;padding:14px}.seq-nums{letter-spacing:4px;color:var(--cyan);font-size:26px;font-weight:800}.seq-q{color:var(--gold)}.answer-row{gap:8px;margin-top:10px;display:flex}input[type=text]{border:1.5px solid var(--border);min-width:0;min-height:46px;color:var(--text);background:#172733;border-radius:10px;flex:1;padding:10px 12px;font-family:inherit;font-size:18px;line-height:1.4}input[type=text]:focus{outline:2px solid var(--cyan);outline-offset:1px}.answer-row .btn{width:auto;margin:0;padding:10px 18px}.fb{border-radius:12px;margin-top:10px;padding:12px 14px;font-size:18px;line-height:1.7;animation:.25s pop}.fb.good{background:#31533e;border:1.5px solid #6fa27888}.fb.bad{background:#543632;border:1.5px solid #d57c6888}.fb .big{margin-bottom:3px;font-size:18px;font-weight:800;display:block}.qprompt{margin:8px 0 4px;font-size:18px;line-height:1.65}.stepcode{border:1.5px solid var(--border);white-space:pre-wrap;color:#f0e6d4;background:#10202c;border-radius:10px;margin-top:10px;padding:10px 14px;font-family:SF Mono,Consolas,monospace;font-size:17px;line-height:1.85;overflow-x:auto}.say{border:1.5px solid var(--border);border-left:4px solid var(--gold);background:#304454;border-radius:14px;margin:12px 0 10px;padding:14px 16px;font-size:18px;line-height:1.8;animation:.25s pop}.qlabel{color:var(--muted);margin-bottom:4px;font-size:18px;line-height:1.5}.phase{text-align:center;margin-bottom:8px}.phase span{border:1.5px solid var(--border);min-height:32px;color:var(--muted);border-radius:999px;margin:0 2px;padding:6px 10px;font-size:15px;display:inline-block}.phase span.on{border-color:var(--gold);color:var(--gold);font-weight:800}.shopitem{background:var(--bg3);border:1.5px solid var(--border);border-radius:12px;align-items:center;gap:12px;margin-top:9px;padding:11px 13px;display:flex}.shopitem .ico{font-size:28px}.shopitem .info{flex:1}.shopitem .info b{font-size:15px}.shopitem .info p{color:var(--muted);margin-top:2px;font-size:15px}.shopitem .btn{width:auto;margin:0;padding:8px 14px;font-size:16px}.badges span{background:#3f3a2b;border:1.5px solid #c79b4a88;border-radius:999px;margin:3px 3px 0 0;padding:4px 11px;font-size:15px;display:inline-block}.report{background:var(--bg3);border-radius:12px;margin:10px 0;padding:14px 16px}.report div{margin:5px 0;font-size:18px;line-height:1.7}.dragon{text-align:center;filter:drop-shadow(0 2px 4px #0008);margin:6px 0;font-size:68px;line-height:1}.dragon.hit{animation:.4s dshake}@keyframes dshake{0%,to{transform:translate(0)}20%{transform:translate(-12px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}.bosshp{text-align:center;letter-spacing:4px;margin-bottom:4px;font-size:20px}.stars-big{text-align:center;letter-spacing:4px;margin:6px 0;font-size:40px}.stat-row{color:var(--muted);justify-content:center;gap:18px;margin:6px 0;font-size:16px;display:flex}.stat-row b{color:var(--text)}.center{text-align:center}.mt{margin-top:12px}.game-wrap{background:var(--bg2);border:2px solid var(--border);border-radius:18px;margin:8px 0;overflow:hidden;box-shadow:0 6px 20px #00000047}.game-top{background:var(--bg3);border-bottom:1.5px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.game-top .lvtitle{flex:1;font-size:20px;font-weight:800;line-height:1.45}.stars-goal{color:var(--gold);white-space:nowrap;background:#d8b05c18;border:1px solid #d8b05c66;border-radius:8px;padding:3px 10px;font-size:15px}.game-story{color:#d8d0c2;border-left:3px solid var(--cyan);background:#202c3d;border-radius:8px;width:100%;padding:7px 11px;font-size:clamp(17px,1vw + 14px,18px);line-height:1.8}.game-story b{color:var(--gold)}.game-story code{color:var(--cyan);background:#101923;border-radius:4px;padding:1px 5px;font-family:SF Mono,Consolas,monospace;font-size:15px}.game-body{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch;display:grid}@media (width<=640px){.game-body{grid-template-columns:1fr}}.code-panel{border-right:2px solid var(--border);background:#07051a;flex-direction:column;display:flex}@media (width<=640px){.code-panel{border-right:none;border-bottom:2px solid var(--border)}}.code-panel-hd{color:var(--muted);border-bottom:1px solid var(--border);background:var(--bg3);justify-content:space-between;align-items:center;padding:5px 12px;font-size:15px;font-weight:700;line-height:1.4;display:flex}.code-panel-hd .hd-left{align-items:center;gap:8px;display:flex}.dot{border-radius:50%;width:10px;height:10px}.dot-r{background:#ff5f57}.dot-y{background:#ffbd2e}.dot-g{background:#28ca41}textarea#codeInput{resize:none;color:#c8fcff;tab-size:4;min-height:230px;caret-color:var(--gold);background:#07051a;border:none;outline:none;flex:1;padding:12px 16px;font-family:SF Mono,Consolas,Courier New,monospace;font-size:17px;line-height:1.9}@media (width<=640px){textarea#codeInput{min-height:150px}}textarea#codeInput::selection{background:#a78bfa44}.editor-row{flex:1;min-height:230px;display:flex}@media (width<=640px){.editor-row{min-height:150px}}.gutter{color:#4a4480;text-align:right;-webkit-user-select:none;user-select:none;background:#0b0924;border-right:1px solid #1e1840;width:34px;padding:12px 6px 12px 0;font-family:SF Mono,Consolas,monospace;font-size:17px;line-height:1.9;overflow:hidden}.editor-row textarea#codeInput{flex:1;min-height:0}.syntax-panel{border-top:1.5px solid var(--border);background:#0b0924;max-height:210px;padding:8px 12px;display:none;overflow-y:auto}.syntax-panel.open{display:block}.syn{border-bottom:1px solid #ffffff08;gap:10px;padding:6px 0;font-size:15px;display:flex}.syn .sig{color:var(--cyan);white-space:pre;min-width:150px;font-family:SF Mono,Consolas,monospace;font-weight:700}.syn .desc{color:#b0a8d8;flex:1}.syn .ex{color:#a5afb0;white-space:pre;font-family:SF Mono,Consolas,monospace;font-size:15px}.syn.new .sig{color:var(--gold)}.syn.new:before{content:"✨";margin-right:-4px}.key-line{width:100%;color:var(--gold);background:#d8b05c12;border:1px dashed #ffd34d44;border-radius:8px;margin-top:4px;padding:5px 10px;font-family:SF Mono,Consolas,monospace;font-size:15px}.preview-tag{color:var(--purple);margin-left:6px;font-size:15px}.code-feedback{border-top:1px solid var(--border);min-height:32px;color:var(--muted);background:#15202d;padding:7px 12px;font-family:SF Mono,Consolas,monospace;font-size:18px;line-height:1.6}.code-feedback.err{color:var(--red)}.code-feedback.ok{color:var(--green)}.code-footer{background:var(--bg3);border-top:1.5px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.run-btn{background:var(--green);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:10px;flex:1;min-height:44px;padding:10px 16px;font-family:inherit;font-size:17px;font-weight:900;line-height:1.4;transition:all .1s;box-shadow:0 3px #355c3b}.run-btn:hover{transform:translateY(-2px);box-shadow:0 6px #14532d}.run-btn:active{transform:translateY(2px);box-shadow:0 1px #14532d}.run-btn:disabled{opacity:.4;cursor:wait;transform:none}.reset-btn{color:var(--muted);border:1.5px solid var(--border);cursor:pointer;background:#202c3d;border-radius:10px;min-height:44px;padding:10px 14px;font-family:inherit;font-size:17px}.reset-btn:hover{color:var(--text);border-color:var(--cyan)}.hint-btn2{color:var(--gold);cursor:pointer;background:#202c3d;border:1.5px solid #d8b05c66;border-radius:10px;min-height:44px;padding:10px 12px;font-family:inherit;font-size:15px}.hint-btn2:hover{background:#ffd34d18}.line-count{color:var(--muted);white-space:nowrap;font-size:15px}@media (width<=640px){.code-panel-hd{flex-wrap:wrap;gap:4px}.code-panel-hd .hd-left{flex-wrap:wrap}.line-count{white-space:normal}.code-footer{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.code-footer .run-btn{grid-column:1/-1;width:100%;height:46px}.code-footer .hint-btn2,.code-footer .reset-btn{width:100%;min-width:0;height:46px;padding-left:4px;padding-right:4px}}.board-panel{background:#121b27;flex-direction:column;align-items:center;gap:8px;padding:14px 12px 10px;display:flex}.board-tag{color:var(--purple);text-align:center;background:#202c3d;border:1px dashed #c5b99e66;border-radius:8px;padding:4px 12px;font-size:15px}.board-panel canvas{image-rendering:auto;box-shadow:0 0 0 2px var(--border), 0 8px 24px #00000061;border-radius:10px;max-width:100%;display:block}.board-log{color:var(--cyan);text-align:center;border:1px solid var(--border);background:#15202d;border-radius:8px;width:100%;min-height:18px;padding:5px 12px;font-family:SF Mono,Consolas,monospace;font-size:15px}.hint-block{border:1.5px solid var(--border);background:#121b27;border-radius:12px;margin:8px 12px;padding:12px 14px}.hint-block .hd{color:var(--muted);margin-bottom:6px;font-size:15px;font-weight:700;line-height:1.5}.hint-block pre{color:var(--cyan);white-space:pre-wrap;font-family:SF Mono,Consolas,monospace;font-size:15px;line-height:1.7}.kw{color:#d8b05c;font-weight:700}.fn{color:var(--cyan);font-weight:700}.cm{color:#8d9a9a}.num{color:var(--gold)}@media (width<=640px){body{padding-left:8px;padding-right:8px}.screen{padding-left:14px;padding-right:14px}.answer-row{flex-wrap:wrap}.answer-row input[type=text],.answer-row .btn{min-width:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html:not([data-design]) #stage.mission-layout .editor-row,html:not([data-design]) #stage.mission-layout .editor-surface{min-height:232px}html:not([data-design]) #stage.mission-layout .editor-row{flex:none;position:relative;overflow:hidden}html:not([data-design]) #stage.mission-layout .editor-surface{flex:auto;min-width:0;position:relative;overflow:hidden}html:not([data-design]) #stage.mission-layout .editor-highlight,html:not([data-design]) #stage.mission-layout textarea#codeInput{box-sizing:border-box;letter-spacing:normal;tab-size:4;white-space:pre;width:100%;min-width:0;min-height:232px;margin:0;padding:10px 12px;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:18px;line-height:1.7;overflow:auto}@media (width<=839px){html:not([data-design]) #stage.mission-layout .editor-row,html:not([data-design]) #stage.mission-layout .editor-surface,html:not([data-design]) #stage.mission-layout .editor-highlight,html:not([data-design]) #stage.mission-layout textarea#codeInput{min-height:180px}html:not([data-design]) #stage.mission-layout .game-wrap,html:not([data-design]) #stage.mission-layout .game-body,html:not([data-design]) #stage.mission-layout .code-panel,html:not([data-design]) #stage.mission-layout .board-panel{overflow:visible}}html:not([data-design]) .lesson-screen .stepcode-highlight{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;tab-size:4}html:not([data-design]) .stepcode-highlight .syntax-keyword{color:#c88754;font-weight:700}html:not([data-design]) .stepcode-highlight .syntax-function{color:#72bdb0}html:not([data-design]) .stepcode-highlight .syntax-number{color:#d6a94a}html:not([data-design]) .stepcode-highlight .syntax-string{color:#c5a46d}html:not([data-design]) .stepcode-highlight .syntax-comment{color:#8d9188;font-style:italic}html:not([data-design]) .stepcode-highlight .syntax-operator{color:#d6d0c2}html:not([data-design]) .stepcode-highlight .syntax-blank{color:#e6af45;text-underline-offset:3px;font-weight:800;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}#stage.mission-layout .hud-secondary{display:none}.mission-screen{background:0 0;border:0;border-radius:0;padding:8px 0 20px}.mission-screen .game-wrap{box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;overflow:visible}.mission-screen .game-top{background:0 0;border:0;padding:0 2px 10px;display:block}.mission-target-head{align-items:center;gap:10px;min-width:0;display:flex}.target-kicker{color:var(--gold);letter-spacing:.08em;white-space:nowrap;font-size:15px;font-weight:800}.mission-screen .game-top .lvtitle{min-width:0;font-size:clamp(21px,2.4vw,25px);line-height:1.35}.mission-screen .stars-goal{color:var(--muted);background:0 0;border:0;flex-shrink:0;margin-left:auto;padding:0;font-size:14px}.mission-screen .game-story{border:0;border-left:1px solid var(--gold);color:var(--text);overflow-wrap:anywhere;background:0 0;margin-top:9px;padding:4px 0 4px 10px;font-size:18px;line-height:1.6}.mission-screen .game-story b{color:var(--gold)}.mission-note{margin-top:6px}.mission-note summary{min-height:30px;color:var(--muted);cursor:pointer;align-items:center;padding:2px 0;font-size:15px;line-height:1.5;list-style-position:inside;display:inline-flex}.mission-note summary:hover,.mission-note summary:focus-visible{color:var(--text)}.mission-note summary::marker{color:var(--gold)}.mission-note .key-line{border:0;border-left:1px solid var(--cyan);width:auto;color:var(--cyan);overflow-wrap:anywhere;background:#1d302f;margin:3px 0 0 18px;padding:5px 10px;font-size:15px;line-height:1.5}.mission-screen .code-panel,.mission-screen .board-panel{border:1px solid var(--border);border-radius:14px;overflow:hidden}.mission-screen .code-panel{border-right:1px solid var(--border);background:#17262c}.mission-screen .code-panel-hd{background:#203238;border-bottom:1px solid #49617699;padding:5px 12px;font-size:15px}.mission-screen textarea#codeInput{color:#f3ebdd;caret-color:var(--gold);background:#142229;font-size:17px;line-height:1.9}.mission-screen textarea#codeInput::selection{background:#b98a3b66}.mission-screen .code-feedback{background:#17262c;border-top:1px solid #49617666;min-height:42px;padding:7px 12px;font-size:16px;line-height:1.55}.mission-screen .code-footer{background:#203238;border-top:1px solid #49617699;gap:8px;padding:9px 12px 11px}.mission-screen .run-btn{background:var(--green);min-height:46px;box-shadow:none;font-size:18px}.mission-screen .run-btn:hover{box-shadow:none}.tool-group{align-items:center;gap:8px;display:flex}.tool-details{flex:none;min-width:0}.tool-details summary{min-height:46px;color:var(--muted);cursor:pointer;white-space:nowrap;border:1px solid #71848688;border-radius:10px;justify-content:center;align-items:center;padding:8px 12px;font-size:15px;list-style-position:inside;display:flex}.tool-details summary:hover,.tool-details summary:focus-visible{color:var(--text);border-color:var(--cyan);background:#2c4549}.tool-details[open] summary{border-bottom-color:#0000;border-radius:10px 10px 0 0}.tool-details .tool-group{margin-top:6px}.mission-screen .hint-btn2,.mission-screen .reset-btn{min-height:46px;color:var(--muted);background:0 0;border-color:#71848688;font-size:15px}.mission-screen .hint-btn2:hover,.mission-screen .reset-btn:hover{border-color:var(--cyan);color:var(--text);background:#2c4549}.mission-screen .preview-tag{display:none}.mission-screen .line-count{color:var(--muted);opacity:.55;font-size:13px;font-weight:400}.mission-screen .hint-block{background:#1a2b31;border:0;border-top:1px solid #49617666;border-radius:0;margin:0;padding:10px 12px}.mission-screen .board-panel{background:#1b2b30;justify-content:center;gap:6px;padding:10px 12px 8px}.board-heading{justify-content:space-between;align-items:baseline;gap:10px;width:100%;min-width:0;display:flex}.board-title{color:var(--gold);overflow-wrap:anywhere;min-width:0;font-size:18px;font-weight:800;line-height:1.35}.board-direction{color:var(--muted);text-align:right;font-size:14px}.mission-screen .board-tag{color:#b9c3bd;text-align:left;background:0 0;border:0;width:100%;padding:0;font-size:15px;line-height:1.45}.mission-screen .board-log{color:#bfd7c8;background:0 0;border:0;min-height:26px;padding:3px 0;font-size:15px;line-height:1.45}.mission-screen .code-feedback:empty,.mission-screen .board-log:empty{display:none}.mission-actions{flex-direction:column;align-items:center;gap:8px;margin-top:10px;display:flex}.mission-actions .btn{margin-top:0}.mission-back{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:3px 0;font-size:15px;line-height:1.5;text-decoration:none;display:inline-block}.mission-back:hover,.mission-back:focus-visible{color:var(--text)}@media (width<=640px){.mission-screen{padding:4px 0 18px}.mission-screen .game-top{padding:0 2px 9px}.mission-target-head{grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:3px 9px;display:grid}.mission-screen .game-top .lvtitle{font-size:21px}.mission-screen .stars-goal{grid-column:2;margin-left:0;font-size:14px}.mission-screen .game-story{font-size:18px;line-height:1.55}.mission-screen .game-body{gap:12px}.mission-screen .code-panel{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.mission-screen .code-panel-hd{padding:5px 10px}.mission-screen .code-panel-hd .hd-left{gap:6px}.mission-screen .line-count{font-size:13px}.mission-screen .code-footer{padding:9px 10px 10px;display:flex}.mission-screen .code-footer .run-btn{flex-basis:100%;order:0;width:100%;height:46px}.tool-details,.tool-details summary{width:100%}.tool-group{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;width:100%;display:grid}.mission-screen .hint-btn2,.mission-screen .reset-btn{width:100%;min-width:0;height:46px;padding:8px 3px}.mission-screen .board-panel{padding:10px 10px 8px}.board-heading{display:block}.board-title{font-size:18px;display:block}.board-direction{font-size:13px}.mission-screen .board-tag{font-size:15px}}:root{--paper:#f5f1e8;--ink:#1d2933;--card:#fffcf6;--plant:#457d67;--amber:#c7902e;--teal:#2f8a86;--coral:#b75e52;--paper-deep:#e9e2d5;--ink-soft:#56636a;--line:#d8d0c2;--code:#1d2933;--code-soft:#263740;--text:var(--ink);--muted:var(--ink-soft);--bg:var(--paper);--bg2:var(--card);--bg3:#f0ebe1;--border:var(--line);--gold:var(--amber);--cyan:var(--teal);--purple:var(--ink-soft);--green:var(--plant);--red:var(--coral)}html{background:var(--paper)}#root{width:100%;min-width:0;max-width:1240px}body{background:var(--paper);color:var(--ink);padding:clamp(16px,3vw,36px) 14px 56px;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;font-size:18px;line-height:1.6}#stage{max-width:960px}#hud{border:0;border-bottom:1px solid var(--line);color:var(--ink);background:0 0;border-radius:0;gap:10px;margin-bottom:clamp(22px,4vw,38px);padding:0 2px 14px;font-size:17px}#hud .name{color:var(--ink);font-weight:800}#hud .name:first-letter{color:var(--plant)}#hud .rank{color:var(--ink-soft);font-size:14px}#sndBtn,.hud-link{background:var(--card);min-width:46px;min-height:46px;color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 2px #1d293314}#sndBtn:hover,.hud-link:hover{border-color:var(--teal);background:#f0e9dc}.screen{background:var(--card);border:0;border-radius:24px;padding:clamp(24px,5vw,48px) clamp(20px,5vw,54px) clamp(28px,5vw,54px);animation:.35s ease-out paper-in;box-shadow:0 14px 40px #4d3e2a1a}@keyframes paper-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}h1.title{color:var(--ink);letter-spacing:-.045em;margin-bottom:14px;font-size:clamp(2.25rem,6vw,4rem);line-height:1.08}.subtitle{color:var(--ink-soft);margin-bottom:26px;font-size:18px;line-height:1.6}.dragon{filter:none;margin:12px 0 18px;font-size:64px}.teach,.qbox,.report{background:#f3eee5;border:0;border-radius:16px;padding:18px 20px}.teach{margin:18px 0 22px}.teach p{line-height:1.65;font-size:18px!important}.teach .k,.seq-q,.num{color:var(--amber)}.teach .c{color:var(--teal);background:#e1ece8}.btn{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:14px;min-height:50px;padding:12px 18px;font-size:18px;font-weight:750;line-height:1.45;transition:transform .16s,background .16s,border-color .16s,box-shadow .16s;box-shadow:0 2px #1d293314}a.btn,a.btn:visited{color:var(--ink)}.btn:hover{border-color:var(--teal);background:#f0e9dc;transform:translateY(-2px);box-shadow:0 5px #1d293314}.btn .sub{color:var(--ink-soft);font-size:16px}.btn.primary{background:var(--plant);color:#fffcf6;border-color:var(--plant);box-shadow:0 4px #315d4d}.btn.primary:hover{background:#3a705d;box-shadow:0 6px #315d4d}.btn.ghost{color:var(--ink-soft);box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--ink);background:#f0e9dc;border-color:#0000}.wstars{color:var(--amber)}.levelmap{gap:12px;margin:26px 0 30px}.lvnode{background:#f3eee5;border:0;border-radius:18px;box-shadow:0 2px #1d293314}.lvnode:hover{border:0;transform:translateY(-4px);box-shadow:0 7px #1d29331a}.lvnode .ln{color:var(--ink);font-size:28px}.lvnode .lname{color:var(--ink-soft);font-size:16px}.lvnode .lstar{color:var(--amber)}.lvnode.done{background:#e4efe8;border:0}.lvnode.boss{background:#f4e4de;border:0}input[type=text]{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:12px;min-height:50px;font-size:18px}input[type=text]:focus{border-color:var(--teal);outline:3px solid #9cc7c0}.answer-row{gap:10px;margin-top:16px}.answer-row .btn{min-height:50px}.qbox{margin:16px 0}.qcode,.seq-crystal{background:var(--code);color:#f6f1e8;border-radius:12px}.seq-nums{color:#a8d2c6}.stepcode{background:var(--code);color:#f6f1e8;border:0;border-radius:12px;font-size:17px}.say{border:0;border-left:4px solid var(--plant);color:var(--ink);background:#e9f0eb;border-radius:12px;padding:16px 18px;font-size:18px}.fb.good{color:#2f604d;background:#e4efe8;border:0}.fb.bad{color:#8b4038;background:#f4e4de;border:0}.bosshp{color:var(--coral)}.badges span{color:#78591b;background:#f3e9d1;border:0;border-radius:999px;padding:5px 12px;font-size:16px}.stat-row{color:var(--ink-soft);font-size:16px}.mission-target-head{gap:12px}.mission-screen .game-top .lvtitle{color:var(--ink);font-size:clamp(1.35rem,2.8vw,1.9rem)}.mission-screen .game-story{color:var(--ink);border-left-color:var(--amber);font-size:18px}.mission-screen .game-story code{color:var(--teal);background:#e1ece8}.mission-note summary{color:var(--ink-soft);min-height:38px;font-size:16px}.mission-note .key-line{color:var(--teal);border-left-color:var(--teal);background:#e6f0ed}.mission-screen .game-body{gap:18px}.mission-screen .code-panel,.mission-screen .board-panel{border:0;border-radius:18px;box-shadow:0 5px 18px #1d29331f}.mission-screen .code-panel-hd{background:var(--code-soft);color:#dce4df;border-bottom:1px solid #566970;padding:9px 14px}.mission-screen .dot-r{background:#d37a69}.mission-screen .dot-y{background:#d4a64a}.mission-screen .dot-g{background:#82b79b}.mission-screen textarea#codeInput{background:var(--code);color:#f6f1e8;font-size:17px;line-height:1.8}.mission-screen .gutter{color:#8da09d;background:#202f37;border-right:1px solid #40535a}.mission-screen .syntax-panel{background:#202f37;border-top:1px solid #40535a}.mission-screen .syn .desc{color:#c7d2cc}.mission-screen .syn .ex{color:#a6b5ae}.mission-screen .code-feedback{color:#d6e4dd;background:#22343b;border-top:1px solid #40535a}.mission-screen .run-btn{background:var(--plant);color:#fffcf6;box-shadow:none;min-height:48px}.mission-screen .run-btn:hover{box-shadow:none;background:#559177}.mission-screen .hint-btn2,.mission-screen .reset-btn,.tool-details summary{color:#d6e4dd;background:0 0;border-color:#718486;min-height:46px}.mission-screen .hint-btn2:hover,.mission-screen .reset-btn:hover,.tool-details summary:hover{color:#fffcf6;background:#30474b;border-color:#9cc7c0}.mission-screen .hint-block{background:#24383d;border-top-color:#40535a}.mission-screen .hint-block pre{color:#b9d9c9}.mission-screen .board-panel{background:#f3eee5;padding:18px 18px 16px}.board-direction,.mission-screen .board-tag{color:var(--ink-soft)}.mission-screen .board-panel canvas{box-shadow:0 0 0 2px #c8beae,0 8px 20px #1d293326}.mission-screen .board-log{color:var(--teal);background:0 0}@media (width<=640px){body{padding:12px 8px 36px}#hud{margin-bottom:18px;padding-bottom:10px}#stage.mission-layout .hud{font-size:16px}.screen{border-radius:20px;padding:26px 16px 32px}h1.title{font-size:clamp(2.25rem,11vw,3.2rem)}.subtitle{margin-bottom:22px;font-size:18px}.levelmap{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.lvnode{border-radius:14px}.lvnode .ln{font-size:24px}.lvnode .lname{font-size:14px}.mission-screen{padding:2px 0 20px}.mission-screen .game-body{gap:14px}.mission-screen .game-top .lvtitle{font-size:21px}.mission-screen .game-story{font-size:18px;line-height:1.55}.mission-screen .board-panel{padding:14px 10px 12px}.board-title{font-size:19px}}body{background:var(--paper);padding:0 0 42px}#stage{width:100%;max-width:1240px}#hud{min-height:46px;color:var(--ink);background:#f8fafc;border-bottom:1px solid #dce3e7;gap:8px;margin:0 calc(-1*clamp(12px,3vw,36px)) 22px;padding:0 clamp(12px,3vw,36px);font-size:14px}#hud .name{font-size:15px}#hud .rank,#hud .hud-secondary{display:none}#hud .spacer{flex:1}#sndBtn,.hud-link{min-width:46px;min-height:46px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:8px 10px;font-size:15px}#sndBtn:hover,.hud-link:hover{background:#eef3f5;border:0}.mission-screen{padding:0 0 18px}.mission-screen .game-top{padding:0 0 14px}.mission-target-head{align-items:baseline;gap:8px}.target-kicker{color:var(--ink-soft);letter-spacing:.06em;font-size:12px}.mission-screen .game-top .lvtitle{font-size:clamp(28px,2.5vw,34px);font-weight:800;line-height:1.3}.mission-screen .stars-goal{color:var(--amber);font-size:12px}.mission-note{display:block}.mission-screen .game-story{font-size:18px;line-height:1.6}.mission-screen .game-body{align-items:stretch;gap:16px}.mission-screen .code-panel,.mission-screen .board-panel{min-width:0;min-height:430px;box-shadow:none;border-radius:6px}.mission-screen .code-panel{background:#1d2b34}.mission-screen .code-panel-hd{background:#243640;border-bottom:1px solid #3a4d55;min-height:31px;padding:4px 10px;font-size:11px}.mission-screen textarea#codeInput{background:#1d2b34;min-height:300px;padding:11px 12px;font-size:18px;line-height:1.7}.mission-screen .editor-row{min-height:300px}.mission-screen .gutter{color:#84959a;background:#202f38;width:28px;padding:11px 5px 11px 0;font-size:12px;line-height:1.7}.mission-screen .code-feedback{min-height:34px;padding:5px 10px;font-size:13px}.mission-screen .code-footer{background:#243640;border-top:1px solid #3a4d55;padding:7px 9px 8px}.mission-screen .run-btn{background:var(--plant);border-radius:4px;min-height:46px;font-size:18px}.tool-details summary,.mission-screen .hint-btn2,.mission-screen .reset-btn{border-radius:4px;min-height:46px;font-size:13px}.tool-details summary{padding:8px 12px}.mission-screen .board-panel{background:#fffcf6;border:1px solid #e3ddd2;justify-content:flex-start;padding:10px}.board-heading{gap:6px}.board-title{color:var(--plant);font-size:14px}.board-direction,.mission-screen .board-tag,.mission-screen .board-log{color:var(--ink-soft);font-size:11px}.mission-screen .board-panel canvas{width:100%;box-shadow:none;border:1px solid #e3ddd2;border-radius:2px}.mission-back{color:var(--ink-soft);font-size:13px}.mission-back:hover,.mission-back:focus-visible{text-decoration:none}.mission-actions{margin-top:4px}@media (width<=520px){body{padding:0 12px 34px}#stage{max-width:none}#hud{margin:0 -12px 16px;padding:0 12px}.mission-screen .game-top{padding-bottom:12px}.mission-screen .game-body{grid-template-columns:1fr;gap:12px}.mission-screen .game-top .lvtitle{font-size:28px}.mission-screen .code-panel,.mission-screen .board-panel{min-height:0}.mission-screen textarea#codeInput,.mission-screen .editor-row{min-height:190px}.mission-screen .game-story{font-size:18px}.mission-screen .board-panel{padding:10px}.mission-screen .board-panel canvas{max-width:100%}}html[data-design=night]{--paper:#0f0c1e;--ink:#e2dcff;--card:#161230;--paper-deep:#1e1840;--ink-soft:#9c8fd4;--line:#2a2560;--plant:#4ade80;--amber:#ffd34d;--teal:#5eead4;--coral:#f87171;--code:#07051a;--code-soft:#1e1840;--bg3:#1e1840;--v-hud-bg:#161230;--v-hud-line:#2a2560;--v-hover:#221b4a;--v-tile:#1e1840;--v-tile-done:#1b3d2c;--v-tile-boss:#40202a;--v-board-bg:#070518;--v-board-line:#2a2560;--v-code-fg:#c8fcff;--v-code-hd:#1e1840;--v-code-hd-fg:#9c8fd4;--v-code-line:#2a2560;--v-gutter-bg:#0b0924;--v-gutter-fg:#6e64ae;--v-panel-alt:#0b0924;--v-tool-line:#3a3378;--v-tool-fg:#cfc6f7;--v-on-accent:#06210f;--v-accent-hover:#6be79a;--v-accent-shadow:#14532d;--v-soft-tint:#1a1442;--v-good-bg:#14331f;--v-good-fg:#a7e9bc;--v-bad-bg:#3a1b22;--v-bad-fg:#f5b2ac;--v-badge-bg:#33270a;--v-badge-fg:#ffd98a;--v-shadow:#00000080;--v-focus:#5eead4}html[data-design=studio]{--paper:#fbfaf7;--ink:#1f2430;--card:#fff;--paper-deep:#f1efea;--ink-soft:#5c6472;--line:#e4e1da;--plant:#2f6f5b;--amber:#8a6011;--teal:#2a6f8f;--coral:#a8443a;--code:#222831;--code-soft:#2c333d;--bg3:#f4f2ee;--v-hud-bg:#fff;--v-hud-line:#e4e1da;--v-hover:#f1efea;--v-tile:#f4f2ee;--v-tile-done:#e8f1ec;--v-tile-boss:#f8eae7;--v-board-bg:#fff;--v-board-line:#e4e1da;--v-code-fg:#eef2f6;--v-code-hd:#2c333d;--v-code-hd-fg:#c6cfd8;--v-code-line:#3b444f;--v-gutter-bg:#272e38;--v-gutter-fg:#8a95a2;--v-panel-alt:#272e38;--v-tool-line:#5c6772;--v-tool-fg:#dee5eb;--v-on-accent:#fff;--v-accent-hover:#3b8570;--v-accent-shadow:#1f4e40;--v-soft-tint:#edf1ef;--v-good-bg:#e8f1ec;--v-good-fg:#2c5f4c;--v-bad-bg:#f8eae7;--v-bad-fg:#8b3a31;--v-badge-bg:#f3eedf;--v-badge-fg:#6e5312;--v-shadow:#1f24301a;--v-focus:#93c0b4}html[data-design=ocean]{--paper:#0b1522;--ink:#e6eef7;--card:#122032;--paper-deep:#18293d;--ink-soft:#a2b4c8;--line:#24384f;--plant:#3fbf9a;--amber:#f2b441;--teal:#62bcea;--coral:#ee7a6e;--code:#0a1018;--code-soft:#152437;--bg3:#18293d;--v-hud-bg:#122032;--v-hud-line:#24384f;--v-hover:#1b2e44;--v-tile:#18293d;--v-tile-done:#15382e;--v-tile-boss:#3a2028;--v-board-bg:#0a1018;--v-board-line:#24384f;--v-code-fg:#dce9f5;--v-code-hd:#152437;--v-code-hd-fg:#a2b4c8;--v-code-line:#24384f;--v-gutter-bg:#0d1723;--v-gutter-fg:#71889f;--v-panel-alt:#0d1723;--v-tool-line:#33506c;--v-tool-fg:#cfdfec;--v-on-accent:#04231b;--v-accent-hover:#57d3af;--v-accent-shadow:#10493a;--v-soft-tint:#14293c;--v-good-bg:#14332b;--v-good-fg:#9be0c6;--v-bad-bg:#3a2028;--v-bad-fg:#f3b0a8;--v-badge-bg:#33290f;--v-badge-fg:#f5ce84;--v-shadow:#00000073;--v-focus:#62bcea}html[data-design]{background:var(--paper)}html[data-design] body{background:var(--paper);color:var(--ink)}html[data-design] #hud{background:var(--v-hud-bg);border-bottom:1px solid var(--v-hud-line);color:var(--ink)}html[data-design] #sndBtn,html[data-design] .hud-link{color:var(--ink)}html[data-design] #sndBtn:hover,html[data-design] .hud-link:hover{background:var(--v-hover)}html[data-design] .screen{background:var(--card);box-shadow:0 14px 40px var(--v-shadow)}html[data-design] h1.title{color:var(--ink)}html[data-design] .subtitle{color:var(--ink-soft)}html[data-design] .teach,html[data-design] .qbox,html[data-design] .report{background:var(--bg3)}html[data-design] .teach .c{background:var(--v-soft-tint);color:var(--teal)}html[data-design] .say{background:var(--v-soft-tint);color:var(--ink);border-left-color:var(--plant)}html[data-design] .qcode,html[data-design] .seq-crystal,html[data-design] .stepcode{background:var(--code);color:var(--v-code-fg)}html[data-design] .seq-nums{color:var(--teal)}html[data-design] .fb.good{background:var(--v-good-bg);color:var(--v-good-fg)}html[data-design] .fb.bad{background:var(--v-bad-bg);color:var(--v-bad-fg)}html[data-design] .badges span{background:var(--v-badge-bg);color:var(--v-badge-fg)}html[data-design] .btn{background:var(--card);color:var(--ink);border-color:var(--line);box-shadow:0 2px 0 var(--v-shadow)}html[data-design] a.btn,html[data-design] a.btn:visited{color:var(--ink);text-decoration:none}html[data-design] .btn:hover{background:var(--v-hover);border-color:var(--teal);box-shadow:0 5px 0 var(--v-shadow)}html[data-design] .btn .sub{color:var(--ink-soft)}html[data-design] .btn.primary{background:var(--plant);color:var(--v-on-accent);border-color:var(--plant);box-shadow:0 4px 0 var(--v-accent-shadow)}html[data-design] .btn.primary:hover{background:var(--v-accent-hover);box-shadow:0 6px 0 var(--v-accent-shadow)}html[data-design] .btn.ghost{box-shadow:none;color:var(--ink-soft);background:0 0;border-color:#0000}html[data-design] .btn.ghost:hover{background:var(--v-hover);color:var(--ink)}html[data-design] .lvnode{background:var(--v-tile);color:var(--ink)}html[data-design] .lvnode .ln{color:var(--ink)}html[data-design] .lvnode .lname{color:var(--ink-soft)}html[data-design] .lvnode.done{background:var(--v-tile-done)}html[data-design] .lvnode.boss{background:var(--v-tile-boss)}html[data-design] input[type=text]{background:var(--card);color:var(--ink);border-color:var(--line)}html[data-design] input[type=text]:focus{outline:3px solid var(--v-focus);border-color:var(--teal)}html[data-design] .mission-screen .game-story{color:var(--ink)}html[data-design] .mission-screen .game-story code{background:var(--v-soft-tint);color:var(--teal)}html[data-design] .mission-note summary{color:var(--ink-soft)}html[data-design] .mission-note .key-line{background:var(--v-soft-tint);color:var(--teal);border-left-color:var(--teal)}html[data-design] .mission-back{color:var(--ink-soft)}html[data-design] .mission-screen .code-panel{background:var(--code)}html[data-design] .mission-screen .code-panel-hd{background:var(--v-code-hd);border-bottom:1px solid var(--v-code-line);color:var(--v-code-hd-fg)}html[data-design] .mission-screen textarea#codeInput{background:var(--code);color:var(--v-code-fg);caret-color:var(--amber)}html[data-design] .mission-screen .gutter{background:var(--v-gutter-bg);color:var(--v-gutter-fg);border-right:1px solid var(--v-code-line)}html[data-design] .mission-screen .syntax-panel{background:var(--v-panel-alt);border-top:1px solid var(--v-code-line)}html[data-design] .mission-screen .syn .desc{color:var(--v-tool-fg)}html[data-design] .mission-screen .syn .ex{color:var(--v-gutter-fg)}html[data-design] .mission-screen .code-feedback{background:var(--v-panel-alt);border-top:1px solid var(--v-code-line);color:var(--v-tool-fg)}html[data-design] .mission-screen .code-footer{background:var(--v-code-hd);border-top:1px solid var(--v-code-line)}html[data-design] .mission-screen .run-btn{background:var(--plant);color:var(--v-on-accent)}html[data-design] .mission-screen .run-btn:hover{background:var(--v-accent-hover)}html[data-design] .mission-screen .hint-btn2,html[data-design] .mission-screen .reset-btn,html[data-design] .tool-details summary{border-color:var(--v-tool-line);color:var(--v-tool-fg);background:0 0}html[data-design] .mission-screen .hint-btn2:hover,html[data-design] .mission-screen .reset-btn:hover,html[data-design] .tool-details summary:hover,html[data-design] .tool-details summary:focus-visible{background:var(--v-hover);border-color:var(--teal);color:var(--ink)}html[data-design] .mission-screen .hint-block{background:var(--v-panel-alt);border-top-color:var(--v-code-line)}html[data-design] .mission-screen .hint-block pre{color:var(--teal)}html[data-design] .mission-screen .line-count{color:var(--v-gutter-fg)}html[data-design] .mission-screen .board-panel{background:var(--v-board-bg);border:1px solid var(--v-board-line)}html[data-design] .mission-screen .board-panel canvas{border:1px solid var(--v-board-line)}html[data-design] .board-title{color:var(--plant)}html[data-design] .board-direction,html[data-design] .mission-screen .board-tag,html[data-design] .mission-screen .board-log{color:var(--ink-soft)}html[data-design=night] h1.title{color:var(--amber);letter-spacing:-.01em;text-shadow:0 0 18px #ffd34d33}html[data-design=night] .mission-screen .board-panel canvas{box-shadow:0 12px 34px #0009}html[data-design=night] .kw{color:#c084fc}html[data-design=night] .cm{color:#6e7fa8}html[data-design=studio] .screen{border:1px solid var(--line);box-shadow:none;border-radius:18px}html[data-design=studio] .btn{box-shadow:none;border-radius:10px}html[data-design=studio] .btn:hover{box-shadow:none;border-color:var(--plant);transform:none}html[data-design=studio] .btn.primary{box-shadow:none}html[data-design=studio] .btn.primary:hover{box-shadow:none;transform:none}html[data-design=studio] .lvnode{border:1px solid var(--line);box-shadow:none;border-radius:12px}html[data-design=studio] .lvnode:hover{border:1px solid var(--plant);box-shadow:none;transform:none}html[data-design=studio] .teach,html[data-design=studio] .qbox,html[data-design=studio] .report{border:1px solid var(--line);border-radius:12px}html[data-design=studio] .mission-screen .code-panel,html[data-design=studio] .mission-screen .board-panel{border-radius:10px}html[data-design=studio] .target-kicker{color:var(--plant)}html[data-design=ocean] .screen{border-radius:16px}html[data-design=ocean] .btn{border-radius:10px}html[data-design=ocean] .lvnode{border-radius:12px}html[data-design=ocean] .mission-screen .code-panel,html[data-design=ocean] .mission-screen .board-panel{border-radius:10px}html[data-design=ocean] .target-kicker{color:var(--teal)}html[data-design=ocean] .kw{color:#e4a94a}html[data-design=ocean] .cm{color:#6c8298}.design-card{border:1px solid var(--line);border-radius:16px;margin:18px 0;padding:20px 20px 14px}.design-name{color:var(--ink);font-size:22px;font-weight:800;line-height:1.35}.design-desc{color:var(--ink-soft);margin:6px 0 4px;font-size:18px;line-height:1.6}.design-links{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px;display:grid}.design-links .btn{text-align:center;min-height:50px;margin-top:0}@media (width<=520px){.design-card{padding:16px 14px 12px}.design-links{grid-template-columns:repeat(2,minmax(0,1fr))}}html:not([data-design]) body{padding:0 0 32px}html:not([data-design]) #stage{max-width:1020px}html:not([data-design]) #hud{margin-bottom:14px;padding:0 4px 8px}html:not([data-design]) #view>.screen:not(.mission-screen){border:1px solid var(--line);border-radius:8px;padding:24px 28px 30px;box-shadow:0 2px #1d293314}html:not([data-design]) #view>.screen:not(.mission-screen) .title{margin-bottom:6px;font-size:clamp(34px,5vw,48px)}html:not([data-design]) #view>.screen:not(.mission-screen) .subtitle{margin-bottom:14px}html:not([data-design]) .mission-screen .game-wrap{background:#1d2933;border:1px solid #34464b;border-radius:8px;overflow:hidden;box-shadow:0 3px #1d29331f}html:not([data-design]) .mission-screen .game-top{border-bottom:1px solid var(--line);background:#fffcf6;padding:7px 12px 5px}html:not([data-design]) .mission-target-head{gap:8px;min-height:34px}html:not([data-design]) .mission-screen .target-kicker{letter-spacing:.04em;font-size:14px}html:not([data-design]) .mission-screen .stars-goal{font-size:15px}html:not([data-design]) .mission-note summary{min-height:28px;font-size:15px}html:not([data-design]) .mission-screen .game-body{background:#1d2933;gap:0}html:not([data-design]) .mission-screen .code-panel,html:not([data-design]) .mission-screen .board-panel{min-width:0;min-height:0;box-shadow:none;border:0;border-radius:0}html:not([data-design]) .mission-screen .code-panel{background:#1d2933;border-right:1px solid #4a5d60}html:not([data-design]) .mission-screen .code-panel-hd{color:#e8eee8;background:#263740;border-bottom:1px solid #4a5d60;min-height:38px;padding:5px 11px;font-size:15px}html:not([data-design]) .mission-screen textarea#codeInput{color:#f5f1e8;background:#1d2933;min-height:250px;font-size:18px;line-height:1.75}html:not([data-design]) .mission-screen .gutter{color:#93a3a0;background:#202f38;border-right:1px solid #40535a;font-size:15px;line-height:1.75}html:not([data-design]) .mission-screen .code-feedback{color:#e2ece4;background:#22343b;border-top:1px solid #4a5d60;min-height:42px;padding:7px 11px;font-size:18px}html:not([data-design]) .mission-screen .code-footer{background:#263740;border-top:1px solid #4a5d60;padding:7px 9px 8px}html:not([data-design]) .mission-screen .run-btn{background:var(--plant);border-radius:5px;min-height:46px;font-size:18px;box-shadow:0 2px #315d4d}html:not([data-design]) .mission-screen .run-btn:hover{transform:translateY(-1px);box-shadow:0 3px #315d4d}html:not([data-design]) .mission-screen .hint-btn2,html:not([data-design]) .mission-screen .reset-btn,html:not([data-design]) .tool-details summary{border-radius:5px;min-height:46px;font-size:15px}html:not([data-design]) .mission-screen .board-panel{background:#f3eee5;justify-content:flex-start;padding:10px 12px 9px}html:not([data-design]) .mission-screen .board-direction,html:not([data-design]) .mission-screen .board-tag,html:not([data-design]) .mission-screen .board-log{font-size:15px}html:not([data-design]) .mission-screen .board-panel canvas{box-shadow:none;border:1px solid #c8beae;border-radius:3px}html:not([data-design]) .mission-screen .board-log{min-height:30px;padding:4px 0 0}html:not([data-design]) .mission-actions{margin-top:7px}@media (width<=640px){html:not([data-design]) #view>.screen:not(.mission-screen){padding:20px 14px 26px}html:not([data-design]) .mission-screen .game-top{padding:6px 9px 4px}html:not([data-design]) .mission-target-head{min-height:36px}html:not([data-design]) .mission-screen .game-top .lvtitle{font-size:18px}html:not([data-design]) .mission-screen .stars-goal{font-size:14px}html:not([data-design]) .mission-screen .game-body{grid-template-columns:1fr}html:not([data-design]) .mission-screen .code-panel{border-bottom:1px solid #4a5d60;border-right:0}html:not([data-design]) .mission-screen textarea#codeInput,html:not([data-design]) .mission-screen .editor-row{min-height:180px}html:not([data-design]) .mission-screen .board-panel{padding:9px 9px 8px}}html[data-design]{--v-radius:4px;--v-shadow:none}html[data-design] h1.title{text-shadow:none}html[data-design] .screen,html[data-design] .teach,html[data-design] .qbox,html[data-design] .report,html[data-design] .design-card,html[data-design] .btn,html[data-design] .lvnode,html[data-design] .mission-screen .code-panel,html[data-design] .mission-screen .board-panel,html[data-design] .mission-screen .game-wrap{border-radius:var(--v-radius);box-shadow:none}html[data-design] .btn{border-width:1px}html[data-design] .levelmap{gap:8px}html[data-design] .mission-screen .code-panel,html[data-design] .mission-screen .board-panel{border:1px solid var(--line)}html[data-design] .mission-screen .game-top{border-bottom:1px solid var(--line)}html[data-design] .mission-screen .code-panel-hd,html[data-design] .mission-screen .code-footer,html[data-design] .mission-screen .code-feedback{border-color:var(--line)}html[data-design] .mission-screen .run-btn{box-shadow:none;border-radius:var(--v-radius)}html[data-design] .mission-screen .game-story{border-left-width:2px}html[data-design] .mission-screen .board-panel canvas{box-shadow:none;border-radius:2px}html[data-design=night]{--paper:#f1e9dc;--ink:#211e1a;--card:#fff9f0;--paper-deep:#e3d6c5;--ink-soft:#665f55;--line:#cfc1ae;--plant:#a9682c;--amber:#a9682c;--teal:#6e756b;--coral:#a55445;--code:#202224;--code-soft:#2a2d2e;--bg3:#eae0d2;--v-hud-bg:#fff9f0;--v-hud-line:#cfc1ae;--v-hover:#e9decf;--v-tile:#eae0d2;--v-tile-done:#e0e9dc;--v-tile-boss:#f0dcd3;--v-board-bg:#202224;--v-board-line:#52565a;--v-code-fg:#f4ebdd;--v-code-hd:#2a2d2e;--v-code-hd-fg:#ddd2c4;--v-code-line:#52565a;--v-gutter-bg:#252829;--v-gutter-fg:#a19a8f;--v-panel-alt:#252829;--v-tool-line:#777168;--v-tool-fg:#e4dacc;--v-on-accent:#fff9f0;--v-accent-hover:#ba7a3d;--v-accent-shadow:transparent;--v-soft-tint:#e9decf;--v-good-bg:#e0e9dc;--v-good-fg:#3f6548;--v-bad-bg:#f0dcd3;--v-bad-fg:#843f36;--v-badge-bg:#e8dab9;--v-badge-fg:#624b25;--v-focus:#a9682c}html[data-design=night] .screen{border:1px solid var(--line)}html[data-design=night] h1.title{color:var(--ink);letter-spacing:.02em}html[data-design=night] .subtitle{color:var(--ink-soft)}html[data-design=night] .btn{border-color:var(--line);background:0 0}html[data-design=night] .btn:hover{background:var(--v-hover);border-color:var(--plant);transform:none}html[data-design=night] .btn.primary,html[data-design=night] .mission-screen .run-btn{background:var(--plant);color:var(--v-on-accent);border-color:var(--plant)}html[data-design=night] .lvnode{border-color:var(--line)}html[data-design=night] .mission-screen .code-panel-hd,html[data-design=night] .mission-screen .code-footer{background:var(--code-soft)}html[data-design=night] .mission-screen .board-panel{background:var(--v-board-bg)}html[data-design=night] .mission-screen .board-title{color:var(--amber)}html[data-design=night] .target-kicker{color:var(--plant)}html[data-design=studio]{--paper:#e9eef0;--ink:#26313a;--card:#f8fafa;--paper-deep:#dce4e7;--ink-soft:#64717a;--line:#c9d2d6;--plant:#355da8;--amber:#355da8;--teal:#355da8;--coral:#a85b50;--code:#252b31;--code-soft:#303840;--bg3:#e2e8ea;--v-hud-bg:#f8fafa;--v-hud-line:#c9d2d6;--v-hover:#dfe7ea;--v-tile:#e2e8ea;--v-tile-done:#dae5f4;--v-tile-boss:#f1dfdc;--v-board-bg:#f8fafa;--v-board-line:#c9d2d6;--v-code-fg:#eef3f5;--v-code-hd:#303840;--v-code-hd-fg:#d9e1e6;--v-code-line:#53616b;--v-gutter-bg:#2b333a;--v-gutter-fg:#8e9ba4;--v-panel-alt:#2b333a;--v-tool-line:#71808a;--v-tool-fg:#e1e8ec;--v-on-accent:#fff;--v-accent-hover:#466fbf;--v-accent-shadow:transparent;--v-soft-tint:#dde7f3;--v-good-bg:#dae8e1;--v-good-fg:#345c4b;--v-bad-bg:#f1dfdc;--v-bad-fg:#87453d;--v-badge-bg:#dfe7f3;--v-badge-fg:#304c83;--v-focus:#668bd1}html[data-design=studio] .screen{border:1px solid var(--line)}html[data-design=studio] .btn{background:var(--card);border-color:var(--line)}html[data-design=studio] .btn:hover{background:var(--v-hover);border-color:var(--plant);transform:none}html[data-design=studio] .btn.primary,html[data-design=studio] .mission-screen .run-btn{background:var(--plant);color:var(--v-on-accent);border-color:var(--plant)}html[data-design=studio] .lvnode{border-color:var(--line)}html[data-design=studio] .mission-screen .board-panel{background:var(--v-board-bg)}html[data-design=studio] .target-kicker,html[data-design=studio] .mission-screen .board-title{color:var(--plant)}html[data-design=ocean]{--paper:#252a2a;--ink:#f1ebdd;--card:#303636;--paper-deep:#3a4241;--ink-soft:#b5b9af;--line:#596260;--plant:#8fc9b0;--amber:#c9b786;--teal:#8fc9b0;--coral:#d17b6c;--code:#171b1c;--code-soft:#232a2a;--bg3:#343c3b;--v-hud-bg:#303636;--v-hud-line:#596260;--v-hover:#3b4543;--v-tile:#343c3b;--v-tile-done:#304a40;--v-tile-boss:#503431;--v-board-bg:#171b1c;--v-board-line:#596260;--v-code-fg:#f1ebdd;--v-code-hd:#232a2a;--v-code-hd-fg:#d8ddd5;--v-code-line:#596260;--v-gutter-bg:#1d2424;--v-gutter-fg:#8b9891;--v-panel-alt:#1d2424;--v-tool-line:#78847d;--v-tool-fg:#e4e8df;--v-on-accent:#17201c;--v-accent-hover:#a8d8c2;--v-accent-shadow:transparent;--v-soft-tint:#394640;--v-good-bg:#304a40;--v-good-fg:#b7e0ca;--v-bad-bg:#503431;--v-bad-fg:#f0b0a5;--v-badge-bg:#4a4432;--v-badge-fg:#e0cd91;--v-focus:#8fc9b0}html[data-design=ocean] .screen{border:1px solid var(--line)}html[data-design=ocean] .btn{border-color:var(--line);background:0 0}html[data-design=ocean] .btn:hover{background:var(--v-hover);border-color:var(--plant);transform:none}html[data-design=ocean] .btn.primary,html[data-design=ocean] .mission-screen .run-btn{background:var(--plant);color:var(--v-on-accent);border-color:var(--plant)}html[data-design=ocean] .lvnode{border-color:var(--line)}html[data-design=ocean] .mission-screen .board-panel{background:var(--v-board-bg)}html[data-design=ocean] .target-kicker,html[data-design=ocean] .mission-screen .board-title{color:var(--plant)}html[data-design=night] body{font-family:Georgia,Songti SC,serif}html[data-design=night] #view>.screen:not(.mission-screen)>.btn{border-width:0 0 1px;border-radius:0;padding-left:2px;padding-right:2px}html[data-design=night] .levelmap{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0}html[data-design=night] .lvnode{border-radius:0}html[data-design=night] .mission-target-head{border-bottom:2px solid var(--ink);padding-bottom:8px}html[data-design=night] .mission-screen .game-story{padding-left:14px}html[data-design=studio] body{font-family:Inter,Helvetica Neue,PingFang SC,sans-serif}html[data-design=studio] #view>.screen:not(.mission-screen)>.btn{border-left:3px solid var(--plant);border-radius:2px;padding-top:14px;padding-bottom:14px}html[data-design=studio] .levelmap{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}html[data-design=studio] .lvnode{aspect-ratio:1.08;border-radius:2px}html[data-design=studio] .mission-target-head{border-bottom:1px solid var(--line);padding:6px 0 10px}html[data-design=studio] .mission-screen .code-panel-hd{letter-spacing:.04em}html[data-design=studio] .mission-screen .board-panel{border-left:3px solid var(--plant)}html[data-design=ocean] body{font-family:SF Mono,ui-monospace,PingFang SC,sans-serif}html[data-design=ocean] #view>.screen:not(.mission-screen)>.btn{border-radius:2px;padding-top:10px;padding-bottom:10px}html[data-design=ocean] .levelmap{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}html[data-design=ocean] .lvnode{aspect-ratio:1.12;border-radius:2px}html[data-design=ocean] .mission-target-head{border-bottom:1px solid var(--line);padding-bottom:6px}html[data-design=ocean] .mission-screen .code-panel-hd{text-transform:uppercase;letter-spacing:.08em}html[data-design=ocean] .mission-screen .board-panel{border-left:2px solid var(--plant)}html:not([data-design]){--formal-paper:#f4eee4;--formal-surface:#fffdf8;--formal-ink:#1d2933;--formal-workbench:#1d2933;--formal-workbench-2:#263740;--formal-workbench-3:#22343b;--formal-line:#d3c8b8;--formal-line-dark:#4a5d60;--formal-muted:#647078;--formal-accent:#457d67;--formal-focus:#2f8a86}html:not([data-design]) #hud{border-bottom-color:var(--formal-line)}html:not([data-design]) #view>.screen:not(.mission-screen){background:var(--formal-surface);border-color:var(--formal-line)}html:not([data-design]) .btn:hover,html:not([data-design]) .btn.primary:hover,html:not([data-design]) .mission-screen .run-btn:hover{transform:none}html:not([data-design]) button:focus-visible,html:not([data-design]) a:focus-visible,html:not([data-design]) input:focus-visible,html:not([data-design]) textarea:focus-visible,html:not([data-design]) summary:focus-visible{outline:2px solid var(--formal-focus);outline-offset:2px}html:not([data-design]) .mission-screen .game-top{background:var(--formal-surface);border-bottom:1px solid var(--formal-line);padding:7px 12px 6px}html:not([data-design]) .mission-target-head{align-items:baseline;min-height:38px}html:not([data-design]) .mission-screen .game-top .lvtitle{font-size:22px;line-height:1.3}html:not([data-design]) .mission-screen .game-story{font-size:17px}html:not([data-design]) .mission-screen .stars-goal,html:not([data-design]) .mission-screen .line-count,html:not([data-design]) .mission-screen .board-direction,html:not([data-design]) .mission-screen .board-tag,html:not([data-design]) .mission-screen .board-log{font-size:13px}html:not([data-design]) .mission-screen .game-body{background:var(--formal-workbench);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;padding:12px}html:not([data-design]) .mission-screen .code-panel,html:not([data-design]) .mission-screen .board-panel{border:1px solid var(--formal-line-dark);background:var(--formal-workbench);color:#f5f1e8;border-radius:8px;min-width:0;min-height:0}html:not([data-design]) .mission-screen .code-panel{border-right:1px solid var(--formal-line-dark)}html:not([data-design]) .mission-screen .code-panel-hd{min-height:42px;padding:6px 11px;font-size:15px}html:not([data-design]) .mission-screen textarea#codeInput{background:var(--formal-workbench);font-size:18px;line-height:1.75}html:not([data-design]) .mission-screen .code-feedback{background:var(--formal-workbench-3);border-color:var(--formal-line-dark);font-size:18px}html:not([data-design]) .mission-screen .code-footer{padding:7px 9px 8px}html:not([data-design]) .mission-screen .run-btn{border-radius:8px;min-height:46px;font-size:18px;box-shadow:0 2px #315d4d}html:not([data-design]) .mission-screen .board-panel{justify-content:flex-start;padding:0 12px 10px}html:not([data-design]) .mission-screen .board-heading{align-items:center;min-height:42px}html:not([data-design]) .mission-screen .board-direction,html:not([data-design]) .mission-screen .board-tag,html:not([data-design]) .mission-screen .board-log{color:#c6d0c8}html:not([data-design]) .mission-screen .board-panel canvas{border-color:#4a5d60}@media (width<=640px){html:not([data-design]) .mission-screen .game-body{grid-template-columns:1fr;gap:12px;padding:10px}html:not([data-design]) .mission-screen .code-panel{border-right:1px solid var(--formal-line-dark);border-bottom:1px solid var(--formal-line-dark)}html:not([data-design]) .mission-screen .board-panel{padding:0 9px 9px}html:not([data-design]) .mission-screen .editor-row,html:not([data-design]) .mission-screen textarea#codeInput{min-height:180px}}html:not([data-design]){--formal-paper:#111a24;--formal-surface:#1d2a35;--formal-ink:#f3efe6;--formal-workbench:#1d2a35;--formal-workbench-2:#263743;--formal-workbench-3:#233540;--formal-line:#354652;--formal-line-dark:#4a5a64;--formal-muted:#aeb7b2;--formal-accent:#e5a63a;--formal-focus:#6dbd9b;--formal-success:#6dbd9b;--formal-error:#d87468}html:not([data-design]) body{background:var(--formal-paper);color:var(--formal-ink)}html:not([data-design]) #hud{background:var(--formal-surface);border:1px solid var(--formal-line);min-height:48px;color:var(--formal-ink);border-radius:8px;margin-bottom:10px;padding:0 10px}html:not([data-design]) #hud .name,html:not([data-design]) #hud .rank{color:var(--formal-ink)}html:not([data-design]) #sndBtn,html:not([data-design]) .hud-link{color:var(--formal-ink);background:0 0;border-color:#0000}html:not([data-design]) #view>.screen:not(.mission-screen){background:var(--formal-surface);border:1px solid var(--formal-line);border-radius:8px;box-shadow:inset 0 1px #ffffff0a}html:not([data-design]) #view>.screen:not(.mission-screen) .title{color:var(--formal-ink);font-size:34px}html:not([data-design]) #view>.screen:not(.mission-screen) .subtitle{color:var(--formal-muted)}html:not([data-design]) .btn{color:var(--formal-ink);border-color:var(--formal-line);box-shadow:none;background:#263743}html:not([data-design]) .btn:hover{border-color:var(--formal-accent);box-shadow:none;background:#2a3a46;transform:none}html:not([data-design]) .btn.primary,html:not([data-design]) .mission-screen .run-btn{background:var(--formal-accent);color:#211a0d;border-color:var(--formal-accent);box-shadow:0 2px #9e6d20}html:not([data-design]) .btn.primary:hover,html:not([data-design]) .mission-screen .run-btn:hover{background:#f0b64d;transform:none;box-shadow:0 2px #9e6d20}html:not([data-design]) .levelmap{margin:16px 0 20px}html:not([data-design]) .lvnode{border:1px solid var(--formal-line);box-shadow:none;background:#263743;border-radius:8px}html:not([data-design]) input[type=text]{color:var(--formal-ink);border-color:var(--formal-line);background:#263743}html:not([data-design]) input[type=text]:focus,html:not([data-design]) textarea#codeInput:focus{outline:2px solid var(--formal-focus);outline-offset:2px}html:not([data-design]) .fb.good,html:not([data-design]) .code-feedback.ok{color:var(--formal-success)}html:not([data-design]) .fb.bad,html:not([data-design]) .code-feedback.err{color:var(--formal-error)}html:not([data-design]) .mission-screen{padding:0 0 10px}html:not([data-design]) .mission-screen .game-wrap{background:var(--formal-workbench);border:1px solid var(--formal-line);border-radius:8px;box-shadow:inset 0 1px #ffffff0f,0 2px #0000002e}html:not([data-design]) .mission-screen .game-top{background:var(--formal-workbench-2);border-bottom:1px solid var(--formal-line-dark);grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:56px;padding:7px 12px 5px;display:grid}html:not([data-design]) .mission-target-head{grid-column:1;min-height:28px}html:not([data-design]) .mission-screen .target-kicker{color:var(--formal-accent);font-size:14px}html:not([data-design]) .mission-screen .game-top .lvtitle{color:var(--formal-ink);font-size:22px}html:not([data-design]) .mission-note{grid-area:1/2;margin:0}html:not([data-design]) .mission-note[open]{grid-area:2/1/auto/-1}html:not([data-design]) .mission-screen .game-body{background:var(--formal-workbench);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px}html:not([data-design]) .mission-screen .code-panel,html:not([data-design]) .mission-screen .board-panel{background:var(--formal-workbench);color:var(--formal-ink);border:1px solid var(--formal-line-dark);box-shadow:none;border-radius:8px}html:not([data-design]) .mission-screen .code-panel-hd,html:not([data-design]) .mission-screen .code-footer{background:var(--formal-workbench-2);border-color:var(--formal-line-dark);box-shadow:inset 0 1px #ffffff12}html:not([data-design]) .mission-screen .code-panel-hd{min-height:42px;font-size:15px}html:not([data-design]) .mission-screen textarea#codeInput{background:var(--formal-workbench);min-height:250px;color:var(--formal-ink);font-size:18px;line-height:1.75}html:not([data-design]) .mission-screen .editor-row{min-height:250px}html:not([data-design]) .mission-screen .gutter{color:#9ba9a5;border-color:var(--formal-line-dark);background:#202f38;font-size:15px}html:not([data-design]) .mission-screen .code-feedback{background:var(--formal-workbench-3);border-color:var(--formal-line-dark);color:#d7e1db;min-height:42px;font-size:18px}html:not([data-design]) .mission-screen .board-panel{padding:0 12px 10px}html:not([data-design]) .mission-screen .board-heading{min-height:42px}html:not([data-design]) .mission-screen .board-title{color:var(--formal-ink);font-size:18px}html:not([data-design]) .mission-screen .board-direction,html:not([data-design]) .mission-screen .board-tag,html:not([data-design]) .mission-screen .board-log{color:#c2cdc6;font-size:13px}html:not([data-design]) .mission-screen .board-panel canvas{border-color:var(--formal-line-dark);box-shadow:none}html:not([data-design]) .mission-screen .run-btn{border-radius:8px;min-height:46px;font-size:18px}html:not([data-design]) .mission-screen .hint-btn2,html:not([data-design]) .mission-screen .reset-btn,html:not([data-design]) .tool-details summary{color:#d8e1db;border-color:#64737a;border-radius:8px;min-height:46px;font-size:15px}@media (width<=640px){html:not([data-design]) .mission-screen .game-top{grid-template-columns:1fr;min-height:56px}html:not([data-design]) .mission-target-head{min-height:28px}html:not([data-design]) .mission-note,html:not([data-design]) .mission-note[open]{grid-area:auto/1}html:not([data-design]) .mission-screen .game-body{grid-template-columns:1fr;gap:12px;padding:10px}html:not([data-design]) .mission-screen .editor-row,html:not([data-design]) .mission-screen textarea#codeInput{min-height:180px}html:not([data-design]) .mission-screen .board-panel{padding:0 9px 9px}}html[data-design] .screen:not(.mission-screen) .title{font-size:clamp(32px,5vw,46px);line-height:1.2}html[data-design] .screen:not(.mission-screen) .subtitle{font-size:18px;line-height:1.5}html[data-design] .mission-screen{padding:0 0 12px}html[data-design] .mission-screen .game-wrap{margin:0}html[data-design] .mission-screen .game-top{border-bottom:1px solid var(--line);padding:0 0 6px}html[data-design] .mission-target-head{gap:7px;min-height:40px;padding:0}html[data-design] .mission-screen .target-kicker{letter-spacing:.05em;font-size:14px}html[data-design] .mission-screen .game-top .lvtitle{letter-spacing:.01em;font-size:18px;line-height:1.3}html[data-design] .mission-screen .stars-goal{font-size:15px;line-height:1.3}html[data-design] .mission-note{margin:0}html[data-design] .mission-note summary{min-height:30px;padding:1px 0;font-size:15px}html[data-design] .mission-note:not([open]) .game-story,html[data-design] .mission-note:not([open]) .key-line{display:none}html[data-design] .mission-screen .game-body{gap:10px}html[data-design] .mission-screen .code-panel,html[data-design] .mission-screen .board-panel{border-radius:4px;min-height:0}html[data-design] .mission-screen .editor-row,html[data-design] .mission-screen textarea#codeInput{min-height:240px}html[data-design] .mission-screen .code-panel-hd{min-height:40px;padding:5px 10px;font-size:15px}html[data-design] .mission-screen .code-feedback{min-height:40px;font-size:18px}html[data-design] .mission-screen .code-footer{padding:7px 9px 8px}html[data-design] .mission-screen .board-panel{padding:10px}html[data-design] .mission-actions{margin-top:6px}@media (width<=640px){html[data-design] .mission-screen .game-top{padding-bottom:5px}html[data-design] .mission-target-head{min-height:38px}html[data-design] .mission-screen .game-top .lvtitle{font-size:18px}html[data-design] .mission-screen .stars-goal{font-size:14px}html[data-design] .mission-screen .editor-row,html[data-design] .mission-screen textarea#codeInput{min-height:180px}html[data-design] .mission-screen .code-panel-hd,html[data-design] .mission-screen .code-feedback{min-height:40px}html[data-design] .mission-screen .code-footer{padding:7px 8px 8px}}html:not([data-design]) body{background:#111a24}html:not([data-design]) #stage.mission-layout #hud{background:#1d2a35;border:0;border-bottom:1px solid #354652;border-radius:0;min-height:48px;margin:0 0 8px;padding:0 10px;box-shadow:inset 0 -1px #ffffff0a}html:not([data-design]) #stage.mission-layout .mission-screen{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap{background:#1d2a35;border:1px solid #4a5a64;border-radius:8px 8px 0 0;margin:0;box-shadow:inset 0 1px #ffffff12}html:not([data-design]) #stage.mission-layout .mission-screen .game-top{background:#263743;border-bottom:1px solid #4a5a64;min-height:56px;padding:6px 12px}html:not([data-design]) #stage.mission-layout .mission-target-head{border-left:3px solid #e5a63a;min-height:34px;padding-left:9px}html:not([data-design]) #stage.mission-layout .mission-screen .target-kicker{color:#e5a63a;letter-spacing:.06em;font-size:14px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top .lvtitle{color:#f3efe6;font-size:22px}html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{color:#e5a63a;font-size:13px}html:not([data-design]) #stage.mission-layout .mission-note summary{color:#aeb7b2;min-height:24px;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen .game-body{background:#1d2a35;gap:10px;padding:10px}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{background:#1d2a35;border:1px solid #4a5a64;border-radius:6px}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd{min-height:42px;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput{color:#f3efe6;background:#1d2a35;min-height:246px;font-size:18px;line-height:1.75}html:not([data-design]) #stage.mission-layout .mission-screen .code-feedback{color:#f3efe6;background:#223540;border-color:#4a5a64;min-height:42px;font-size:18px}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{align-items:center;gap:8px;min-height:62px;padding:7px 9px;display:flex}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn,html:not([data-design]) #stage.mission-layout .mission-screen .hint-btn2,html:not([data-design]) #stage.mission-layout .mission-screen .reset-btn,html:not([data-design]) #stage.mission-layout .tool-details summary{border-radius:6px;min-height:46px}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn{color:#211a0d;background:#e5a63a;font-size:18px;box-shadow:0 2px #9e6d20}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn:hover{background:#f0b64d;box-shadow:0 2px #9e6d20}html:not([data-design]) #stage.mission-layout .mission-screen .hint-btn2,html:not([data-design]) #stage.mission-layout .mission-screen .reset-btn,html:not([data-design]) #stage.mission-layout .tool-details summary{color:#d8e1db;background:0 0;border-color:#64737a;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{padding:0 10px 9px}html:not([data-design]) #stage.mission-layout .mission-screen .board-heading{min-height:42px;padding:0 2px}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel canvas{box-shadow:none;border-color:#4a5a64}html:not([data-design]) #stage.mission-layout .mission-actions{background:#1d2a35;border:1px solid #4a5a64;border-top:0;border-radius:0 0 8px 8px;gap:8px;margin:0;padding:8px 10px}html:not([data-design]) #stage.mission-layout .mission-back{color:#aeb7b2;align-items:center;min-height:46px;font-size:15px;display:inline-flex}@media (width<=640px){html:not([data-design]) #stage.mission-layout .mission-screen .game-body{grid-template-columns:1fr;gap:8px;padding:8px}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{border-radius:6px}html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput,html:not([data-design]) #stage.mission-layout .mission-screen .editor-row{min-height:180px}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{min-height:0}html:not([data-design]) #stage.mission-layout .mission-actions{padding:8px}}@media (width<=640px){html:not([data-design]) #stage.mission-layout .mission-screen .game-top{width:100%;max-width:100%;min-height:0;padding:5px 8px 4px;display:block;overflow:hidden}html:not([data-design]) #stage.mission-layout,html:not([data-design]) #stage.mission-layout #view,html:not([data-design]) #stage.mission-layout .mission-screen,html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap,html:not([data-design]) #stage.mission-layout .mission-screen .game-body{width:100%;min-width:0;max-width:100%}html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap{overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-target-head{flex-wrap:nowrap;align-items:center;gap:5px;min-height:32px;padding-left:7px;display:flex;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .target-kicker{white-space:nowrap;flex:none;font-size:13px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top .lvtitle{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:18px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{white-space:nowrap;flex:none;margin-left:0;font-size:13px}html:not([data-design]) #stage.mission-layout .mission-note,html:not([data-design]) #stage.mission-layout .mission-note[open]{height:22px;margin:0;display:block;overflow:visible}html:not([data-design]) #stage.mission-layout .mission-note summary{text-overflow:ellipsis;white-space:nowrap;width:max-content;max-width:100%;min-height:22px;padding:0;font-size:14px;line-height:22px;display:block;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-note:not([open]) .game-story,html:not([data-design]) #stage.mission-layout .mission-note:not([open]) .key-line{display:none}}html:not([data-design]) a{overflow-wrap:anywhere;text-decoration:none}html:not([data-design]) body{background:var(--formal-bg);min-width:0;color:var(--formal-ink);padding:10px 16px 30px;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:18px;line-height:1.55;display:block}html:not([data-design]) #root,html:not([data-design]) #stage,html:not([data-design]) #view{width:100%;min-width:0}html:not([data-design]) #root{max-width:none}html:not([data-design]) #stage,html:not([data-design]) #stage.mission-layout{max-width:1280px;margin:0 auto}html:not([data-design]) #hud{background:var(--formal-surface);min-height:46px;color:var(--formal-ink);border:1px solid var(--formal-border-soft);border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto auto 46px 46px;align-items:center;gap:6px;margin:0 0 10px;padding:0 12px;font-size:18px;display:grid}html:not([data-design]) #hud .spacer,html:not([data-design]) #stage.mission-layout #hud .rank{display:none}html:not([data-design]) #hud .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--formal-ink);overflow:hidden}html:not([data-design]) #hud .rank{width:auto;color:var(--formal-muted);grid-column:1/-1;margin:0;padding:0 0 3px;font-size:15px;line-height:1.35}html:not([data-design]) #sndBtn,html:not([data-design]) .hud-link{border:1px solid var(--formal-border-soft);background:var(--formal-surface-2);min-width:46px;min-height:46px;color:var(--formal-ink);font:inherit;border-radius:8px;padding:8px}html:not([data-design]) #view>.screen:not(.mission-screen){background:var(--formal-surface);width:100%;color:var(--formal-ink);border:1px solid var(--formal-border);border-radius:12px;padding:22px 24px 28px;box-shadow:inset 0 1px #ffffff09}html:not([data-design]) .btn{background:var(--formal-surface-2);color:var(--formal-ink);border:1px solid var(--formal-border);box-shadow:none;margin-top:8px;padding:11px 15px;font-size:18px;line-height:1.45}html:not([data-design]) a.btn,html:not([data-design]) a.btn:visited{color:var(--formal-ink)}html:not([data-design]) .btn.primary,html:not([data-design]) .mission-screen .run-btn{background:var(--formal-gold);color:#211a0d;border-color:var(--formal-gold);box-shadow:0 2px 0 var(--formal-gold-shadow);font-weight:800}html:not([data-design]) .btn.primary:hover,html:not([data-design]) .mission-screen .run-btn:hover{background:var(--formal-gold-hover);box-shadow:0 2px 0 var(--formal-gold-shadow)}html:not([data-design]) .wstars,html:not([data-design]) .lvnode .lstar{color:var(--formal-gold)}html:not([data-design]) .lvnode{background:var(--formal-surface-2);color:var(--formal-ink);border:1px solid var(--formal-border);box-shadow:none;border-radius:12px}html:not([data-design]) .lvnode .ln{color:var(--formal-ink);font-size:26px}html:not([data-design]) .lvnode .lname{color:var(--formal-muted);font-size:16px}html:not([data-design]) input[type=text]{background:var(--formal-surface-2);color:var(--formal-ink);border-color:var(--formal-border);font-size:18px}html:not([data-design]) .teach p,html:not([data-design]) .qprompt,html:not([data-design]) .say,html:not([data-design]) .fb,html:not([data-design]) .report div{font-size:18px!important}html:not([data-design]) .qcode,html:not([data-design]) .seq-crystal,html:not([data-design]) .stepcode{background:var(--formal-code);color:var(--formal-ink)}html:not([data-design]) .say{background:var(--formal-surface-3);color:var(--formal-ink);border-color:var(--formal-border);border-left-color:var(--formal-gold)}html:not([data-design]) .fb.good{background:var(--formal-success-bg);color:#a8d8be;border-color:#4e8a72}html:not([data-design]) .fb.bad{background:var(--formal-error-bg);color:#f0b7ae;border-color:#a26157}html:not([data-design]) .badges span{color:#e7c47c;background:#3e3522;border-color:#80622d}html:not([data-design]) .mission-screen{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0 0 12px}html:not([data-design]) .mission-screen .game-wrap{background:var(--formal-surface);border:1px solid var(--formal-border);border-radius:14px;margin:0;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 3px #0000002e}html:not([data-design]) .mission-screen .game-top{background:var(--formal-surface-2);border-bottom:1px solid var(--formal-border);min-height:58px;padding:9px 14px 7px}html:not([data-design]) .mission-target-head{border-left:3px solid var(--formal-gold);gap:9px;min-height:34px;padding-left:10px}html:not([data-design]) .mission-screen .target-kicker{color:var(--formal-gold);letter-spacing:.05em;font-size:15px}html:not([data-design]) .mission-screen .game-top .lvtitle{color:var(--formal-ink);font-size:22px;line-height:1.35}html:not([data-design]) .mission-screen .stars-goal{color:var(--formal-gold);font-size:14px}html:not([data-design]) .mission-note{margin:0}html:not([data-design]) .mission-note summary{min-height:28px;color:var(--formal-muted);padding:0;font-size:15px;line-height:1.4}html:not([data-design]) .mission-note:not([open]) .game-story,html:not([data-design]) .mission-note:not([open]) .key-line{display:none}html:not([data-design]) .mission-note .game-story{color:var(--formal-ink);border-left-color:var(--formal-gold);background:0 0;font-size:18px;line-height:1.55}html:not([data-design]) .mission-note .key-line{color:#a5d0bd;background:#1e3b39;border-color:#4e8a72;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top{background:var(--formal-surface);border-bottom:1px solid var(--formal-border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 12px;min-height:52px;padding:6px 12px;display:grid}html:not([data-design]) #stage.mission-layout .mission-target-head{border-left:3px solid var(--formal-gold);grid-column:1;gap:8px;min-height:36px;padding-left:9px}html:not([data-design]) #stage.mission-layout .mission-note summary{min-height:30px;color:var(--formal-muted);padding:0;font-size:15px;line-height:1.4}html:not([data-design]) #stage.mission-layout .mission-screen .game-body{background:var(--formal-surface);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{background:var(--formal-code);min-width:0;min-height:0;color:var(--formal-ink);border:1px solid var(--formal-border-soft);box-shadow:none;border-radius:10px}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd,html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{background:var(--formal-surface-2);border-color:var(--formal-border)}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd{min-height:40px;color:var(--formal-muted);padding:6px 11px;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput{background:var(--formal-code);min-height:246px;color:var(--formal-ink);font-size:18px;line-height:1.75}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row{min-height:246px}html:not([data-design]) #stage.mission-layout .mission-screen .gutter{color:#9fb4b1;border-color:var(--formal-border-soft);background:#162633;width:34px;font-size:16px;line-height:1.75}html:not([data-design]) #stage.mission-layout .mission-screen .code-feedback{border-color:var(--formal-border);color:#e6eee7;background:#1b3038;min-height:42px;padding:7px 11px;font-size:18px;line-height:1.5}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{min-height:62px;padding:8px 9px}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn{border-radius:9px;min-height:46px;font-size:18px}html:not([data-design]) #stage.mission-layout .mission-screen .hint-btn2,html:not([data-design]) #stage.mission-layout .mission-screen .reset-btn,html:not([data-design]) #stage.mission-layout .tool-details summary{color:#d3ddd6;background:0 0;border-color:#66777c;border-radius:9px;min-height:46px;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen .hint-btn2:hover,html:not([data-design]) #stage.mission-layout .mission-screen .reset-btn:hover,html:not([data-design]) #stage.mission-layout .tool-details summary:hover{border-color:var(--formal-focus);color:var(--formal-ink);background:#24404b}html:not([data-design]) #stage.mission-layout .mission-screen .hint-block{border-color:var(--formal-border);background:#132532}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{background:var(--formal-board);justify-content:flex-start;padding:0 11px 10px}html:not([data-design]) #stage.mission-layout .mission-screen .board-heading{align-items:center;min-height:40px;padding:0 2px}html:not([data-design]) #stage.mission-layout .mission-screen .board-title{color:var(--formal-ink);font-size:18px}html:not([data-design]) #stage.mission-layout .mission-screen .board-direction,html:not([data-design]) #stage.mission-layout .mission-screen .board-tag,html:not([data-design]) #stage.mission-layout .mission-screen .board-log{color:#c2d0c9;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel canvas{max-width:100%;box-shadow:none;border:1px solid #4f6b70;border-radius:6px}html:not([data-design]) #stage.mission-layout .mission-screen .board-log{min-height:30px;padding:4px 0 0}html:not([data-design]) #stage.mission-layout .mission-actions{background:0 0;border:0;border-radius:0;gap:8px;margin:0;padding:4px 0}@media (width<=640px){html:not([data-design]) body{padding:8px 8px 30px}html:not([data-design]) #hud{grid-template-columns:minmax(0,1fr) auto auto auto 46px 46px;margin-bottom:8px;padding:0 8px}html:not([data-design]) #view>.screen:not(.mission-screen){border-radius:14px;padding:22px 14px 26px}html:not([data-design]) h1.title{font-size:30px}html:not([data-design]) .mission-screen .game-top{min-height:0;padding:7px 9px 5px}html:not([data-design]) .mission-target-head{gap:6px;min-height:32px;padding-left:7px;overflow:hidden}html:not([data-design]) .mission-screen .target-kicker{white-space:nowrap;font-size:14px}html:not([data-design]) .mission-screen .game-top .lvtitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:19px;overflow:hidden}html:not([data-design]) .mission-screen .stars-goal{white-space:nowrap;font-size:13px}html:not([data-design]) .mission-note summary{min-height:24px;font-size:14px}html:not([data-design]) .mission-screen .game-body{grid-template-columns:1fr;gap:8px;padding:8px}html:not([data-design]) .mission-screen .code-panel{border-bottom:1px solid var(--formal-border)}html:not([data-design]) .mission-screen .editor-row,html:not([data-design]) .mission-screen textarea#codeInput{min-height:180px}html:not([data-design]) .mission-screen .code-panel-hd{min-height:42px}html:not([data-design]) .mission-screen .code-footer{min-height:0;padding:8px}html:not([data-design]) .mission-screen .board-panel{padding:0 9px 9px}html:not([data-design]) .mission-screen .board-heading{min-height:40px}html:not([data-design]) .mission-actions{border-radius:0 0 14px 14px;padding:8px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top{min-height:0;padding:5px 8px 4px;display:block}html:not([data-design]) #stage.mission-layout .mission-target-head{flex-wrap:nowrap;align-items:center;gap:5px;min-height:32px;padding-left:7px;display:flex;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .target-kicker{white-space:nowrap;flex:none;font-size:14px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top .lvtitle{flex:auto;min-width:0;font-size:19px}html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:112px;margin-left:0;font-size:12px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-note,html:not([data-design]) #stage.mission-layout .mission-note[open]{height:22px;margin:0;display:block;overflow:visible}html:not([data-design]) #stage.mission-layout .mission-note summary{text-overflow:ellipsis;white-space:nowrap;width:max-content;max-width:100%;min-height:22px;padding:0;font-size:14px;line-height:22px;display:block;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .game-body{grid-template-columns:1fr;gap:10px;width:100%;max-width:100%;padding:10px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{border-radius:9px;width:100%;max-width:100%;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd{flex-wrap:nowrap;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd .hd-left{white-space:nowrap;min-width:0;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .line-count{display:none}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row{width:100%;min-width:0;max-width:100%;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row textarea#codeInput{width:0;min-width:0}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row,html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput{min-height:180px}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd{min-height:42px}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{min-height:0;padding:8px}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{padding:0 9px 9px}html:not([data-design]) #stage.mission-layout .mission-screen .board-heading{min-height:40px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .board-direction{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel canvas{width:100%;min-width:0;max-width:100%;height:auto;display:block}html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap{overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-actions{padding:4px 0}}@media (width<=420px){html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{display:none}}html:not([data-design]) #stage.mission-layout .editor-row{flex:none;min-height:232px;position:relative;overflow:hidden}html:not([data-design]) #stage.mission-layout .editor-surface{flex:auto;min-width:0;min-height:232px;position:relative;overflow:hidden}html:not([data-design]) #stage.mission-layout .editor-highlight,html:not([data-design]) #stage.mission-layout textarea#codeInput{box-sizing:border-box;letter-spacing:normal;tab-size:4;white-space:pre;border:0;width:100%;min-width:0;min-height:232px;margin:0;padding:10px 12px;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:18px;line-height:1.7;overflow:auto}html:not([data-design]) #stage.mission-layout .editor-highlight{z-index:0;background:var(--formal-code);color:#e8eef2;pointer-events:none;position:absolute;inset:0}html:not([data-design]) #stage.mission-layout textarea#codeInput{z-index:1;color:#0000;caret-color:var(--formal-gold);background:0 0;display:block;position:relative;overflow:auto}html:not([data-design]) #stage.mission-layout textarea#codeInput::selection{color:#0000}html:not([data-design]) #stage.mission-layout .editor-highlight .syntax-space,html:not([data-design]) #stage.mission-layout .editor-highlight .syntax-identifier{color:#e8eef2}html:not([data-design]) #stage.mission-layout .syntax-hint{border-top:1px solid var(--formal-border-soft);background:var(--formal-surface-2);color:var(--formal-muted);pointer-events:none;margin:0;padding:6px 12px;font-size:13px;line-height:1.4}html:not([data-design]) #stage.mission-layout .game-wrap,html:not([data-design]) #stage.mission-layout .game-body,html:not([data-design]) #stage.mission-layout .code-panel,html:not([data-design]) #stage.mission-layout .board-panel{overflow:visible}html:not([data-design]) #stage.mission-layout .game-wrap{z-index:0;position:relative}html:not([data-design]) #stage.mission-layout .code-panel,html:not([data-design]) #stage.mission-layout .board-panel{z-index:1;position:relative}html:not([data-design]) #stage.mission-layout .code-footer,html:not([data-design]) #stage.mission-layout .code-feedback,html:not([data-design]) #stage.mission-layout .syntax-panel{z-index:2;position:relative}@media (width<=839px){html:not([data-design]) #stage.mission-layout .editor-row,html:not([data-design]) #stage.mission-layout .editor-surface,html:not([data-design]) #stage.mission-layout .editor-highlight,html:not([data-design]) #stage.mission-layout textarea#codeInput{min-height:180px}html:not([data-design]) #stage.mission-layout .game-wrap,html:not([data-design]) #stage.mission-layout .game-body,html:not([data-design]) #stage.mission-layout .code-panel,html:not([data-design]) #stage.mission-layout .board-panel{overflow:visible}}html:not([data-design]){--formal-bg:#171719;--formal-surface:#242326;--formal-surface-2:#2b292c;--formal-surface-3:#332f32;--formal-code:#121214;--formal-board:#242326;--formal-ink:#f1ece3;--formal-muted:#b7aea5;--formal-border:#484044;--formal-border-soft:#383338;--formal-gold:#d9953d;--formal-gold-hover:#e2a34b;--formal-gold-shadow:#9c672e;--formal-success:#91b99a;--formal-success-bg:#28372d;--formal-error:#d17e70;--formal-error-bg:#432f2d;--formal-focus:#d6a75e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--formal-bg)}html:not([data-design]) body{background:var(--formal-bg);width:100%;min-width:0;color:var(--formal-ink);padding:10px 16px 24px;font-size:18px;line-height:1.5;display:block;overflow-x:hidden}html:not([data-design]) #hud{background:var(--formal-surface);border:1px solid var(--formal-border-soft);width:100%;min-height:52px;color:var(--formal-ink);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto auto 46px 46px;align-items:center;gap:6px;margin:0 0 10px;padding:3px 10px;font-size:18px;display:grid}html:not([data-design]) #hud .spacer,html:not([data-design]) #hud .rank{display:none}html:not([data-design]) #hud .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--formal-ink);font-weight:800;overflow:hidden}html:not([data-design]) h1.title{color:var(--formal-ink);letter-spacing:.01em;margin-bottom:6px;font-size:clamp(24px,3vw,30px);line-height:1.2}html:not([data-design]) .btn{background:var(--formal-surface-2);border:1px solid var(--formal-border-soft);color:var(--formal-ink);box-shadow:none;margin-top:8px;padding:10px 14px;font-size:18px;line-height:1.45}html:not([data-design]) .btn:hover{background:var(--formal-surface-3);border-color:var(--formal-border);box-shadow:none;transform:none}html:not([data-design]) .btn.primary,html:not([data-design]) .mission-screen .run-btn{background:var(--formal-gold);border-color:var(--formal-gold);color:#211a12;box-shadow:0 2px 0 var(--formal-gold-shadow);font-weight:800}html:not([data-design]) .btn.primary:hover,html:not([data-design]) .mission-screen .run-btn:hover{background:var(--formal-gold-hover);box-shadow:0 2px 0 var(--formal-gold-shadow);transform:none}html:not([data-design]) .btn.ghost:hover{background:var(--formal-surface-2);color:var(--formal-ink)}html:not([data-design]) .lvnode{background:var(--formal-surface-2);border:1px solid var(--formal-border-soft);color:var(--formal-ink);box-shadow:none;border-radius:8px}html:not([data-design]) input[type=text]{background:var(--formal-code);border-color:var(--formal-border);color:var(--formal-ink)}html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap{background:var(--formal-surface);width:100%;box-shadow:none;border:0;border-radius:0;margin:0;overflow:visible}html:not([data-design]) #stage.mission-layout .mission-screen .game-top{background:var(--formal-surface);border-bottom:1px solid var(--formal-border-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 12px;width:100%;min-height:58px;padding:7px 10px 5px;display:grid;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-target-head{border-left:0;grid-column:1;align-items:center;gap:8px;min-height:40px;padding-left:0}html:not([data-design]) #stage.mission-layout .mission-screen .target-kicker{color:var(--formal-teal);letter-spacing:.04em;white-space:nowrap;flex:none;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top .lvtitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--formal-ink);font-size:23px;line-height:1.25;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{text-overflow:ellipsis;white-space:nowrap;background:var(--formal-surface-2);border:1px solid var(--formal-border-soft);max-width:170px;color:var(--formal-gold);border-radius:999px;margin-left:0;padding:3px 7px;font-size:14px;display:inline-flex;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-note .game-story{border:0;border-left:1px solid var(--formal-border);color:var(--formal-ink);background:0 0;padding:5px 0 2px 10px;font-size:17px;line-height:1.5}html:not([data-design]) #stage.mission-layout .mission-note .key-line{background:var(--formal-surface-2);border-color:var(--formal-success);color:var(--formal-success)}html:not([data-design]) #stage.mission-layout .mission-screen .game-body{background:var(--formal-surface);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:12px;width:100%;min-width:0;padding:12px;display:grid}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{border:1px solid var(--formal-border);min-width:0;min-height:0;box-shadow:none;border-radius:8px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel{background:var(--formal-code)}html:not([data-design]) #stage.mission-layout .mission-screen .line-count{color:var(--formal-muted);opacity:.8;font-size:14px}html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput{background:var(--formal-code);color:#e8eef2;width:0;min-width:0;min-height:232px;caret-color:var(--formal-gold);flex:auto;padding:10px 12px;font-size:18px;line-height:1.7}html:not([data-design]) #stage.mission-layout .mission-screen .syntax-panel{background:var(--formal-surface-2);border-color:var(--formal-border-soft)}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn{border-radius:8px;flex:auto;min-height:44px;font-size:18px}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{justify-content:flex-start;gap:6px;padding:0 10px 8px}html:not([data-design]) #stage.mission-layout .mission-screen .board-title{min-width:0;color:var(--formal-ink);font-size:18px;line-height:1.3}html:not([data-design]) #stage.mission-layout .mission-screen .board-tag{text-align:left;background:0 0;border:0;width:100%}html:not([data-design]) #stage.mission-layout .mission-screen .board-log{text-align:left;background:0 0;border:0;width:100%;min-height:24px;padding:2px 0 0}@media (width<=640px){html:not([data-design]) body{padding:8px 8px 20px}html:not([data-design]) #stage.mission-layout,html:not([data-design]) #stage.mission-layout #view,html:not([data-design]) #stage.mission-layout .mission-screen,html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap,html:not([data-design]) #stage.mission-layout .mission-screen .game-body,html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{width:100%;min-width:0;max-width:100%}html:not([data-design]) #hud{grid-template-columns:minmax(0,1fr) auto auto 46px 46px;min-height:48px;padding:1px 6px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top{min-height:56px;padding:5px 8px 4px;display:block;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-target-head{flex-wrap:nowrap;gap:5px;width:100%;min-height:32px;display:flex;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .target-kicker{font-size:14px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top .lvtitle{flex:auto;font-size:19px}html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{display:none}html:not([data-design]) #stage.mission-layout .mission-note,html:not([data-design]) #stage.mission-layout .mission-note[open]{height:22px;margin:0;display:block;overflow:visible}html:not([data-design]) #stage.mission-layout .mission-note summary{text-overflow:ellipsis;width:max-content;max-width:100%;min-height:22px;font-size:14px;line-height:22px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .game-body{grid-template-columns:minmax(0,1fr);gap:10px;padding:10px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{border-radius:8px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row,html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput{min-height:180px}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd{flex-wrap:nowrap;min-height:40px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .line-count{display:none}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{min-height:54px;padding:5px 7px}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{padding:0 8px 8px}html:not([data-design]) #stage.mission-layout .mission-screen .board-heading{min-height:38px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel canvas{width:100%;max-width:100%;height:auto}html:not([data-design]) #stage.mission-layout .mission-actions{min-height:30px;padding:2px 0 0}}html:not([data-design]) #stage.mission-layout #hud{min-height:52px}html:not([data-design]) #stage.mission-layout #hud .hud-secondary{display:none}html:not([data-design]) #stage.mission-layout .mission-screen .game-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}html:not([data-design]) .kw{color:var(--formal-gold)}html:not([data-design]) .fn{color:var(--formal-teal)}html:not([data-design]) .cm{color:var(--formal-muted)}html:not([data-design]) .num{color:var(--formal-gold)}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{border:0;border-radius:0}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel{border-right:1px solid var(--formal-border)}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel canvas{width:100%;max-width:460px}html:not([data-design]) #stage.mission-layout #hud{background:var(--formal-surface)}html:not([data-design]) #stage.mission-layout #sndBtn,html:not([data-design]) #stage.mission-layout .hud-link{border-color:var(--formal-border-soft);background:0 0}html:not([data-design]){--formal-bg:#11121b;--formal-surface:#1a1b28;--formal-surface-2:#202130;--formal-surface-3:#252638;--formal-code:#151620;--formal-board:#1a1b28;--formal-ink:#f6f1e7;--formal-muted:#b4b1bf;--formal-border:#3a3b52;--formal-border-soft:#2b2c3d;--formal-gold:#e6af45;--formal-gold-hover:#f0c15a;--formal-gold-shadow:#8b6627;--formal-teal:#6cc8bd;--formal-success:#75c796;--formal-success-bg:#75c79618;--formal-error:#d87970;--formal-error-bg:#d8797018;--formal-focus:#6cc8bd;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--formal-bg)}html:not([data-design]) *,html:not([data-design]) :before,html:not([data-design]) :after{box-sizing:border-box;min-width:0}html:not([data-design]) a,html:not([data-design]) a:visited{color:inherit;text-decoration:none}html:not([data-design]) body{background:var(--formal-bg);width:100%;min-width:0;color:var(--formal-ink);padding:10px 10px 24px;font-family:PingFang SC,Microsoft YaHei,sans-serif;display:block;overflow-x:hidden}html:not([data-design]) #root,html:not([data-design]) #stage,html:not([data-design]) #view{width:100%;min-width:0;max-width:none}html:not([data-design]) #stage{max-width:1120px;margin:0 auto}html:not([data-design]) #stage.mission-layout{max-width:1120px}html:not([data-design]) #hud{border:1.5px solid var(--formal-border);width:100%;min-height:52px;color:var(--formal-ink);background:#ffffff0c;border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;padding:5px 12px;font-size:18px;display:flex}html:not([data-design]) #hud .spacer{flex:1;display:block}html:not([data-design]) #hud .name{color:var(--formal-gold);font-weight:800}html:not([data-design]) #hud .rank{color:var(--formal-muted);font-size:15px}html:not([data-design]) #sndBtn,html:not([data-design]) .hud-link{border:1.5px solid var(--formal-border);min-width:46px;min-height:46px;color:var(--formal-ink);font:inherit;background:#ffffff0e;border-radius:10px;padding:7px}html:not([data-design]) #sndBtn:hover,html:not([data-design]) .hud-link:hover{border-color:var(--formal-gold);background:#ffffff18}html:not([data-design]) #view>.screen:not(.mission-screen){background:var(--formal-surface);border:1.5px solid var(--formal-border);width:100%;box-shadow:none;border-radius:20px;padding:20px 18px 24px}html:not([data-design]) h1.title{color:var(--formal-gold);letter-spacing:1px;text-shadow:none;margin-bottom:4px;font-size:clamp(24px,4vw,32px);line-height:1.2}html:not([data-design]) .subtitle{color:var(--formal-teal);margin-bottom:12px;font-size:18px;line-height:1.5}html:not([data-design]) .btn{border:1.5px solid var(--formal-border);color:var(--formal-ink);box-shadow:none;background:#ffffff0e;margin-top:9px;padding:10px 14px;font-size:18px;line-height:1.45}html:not([data-design]) .btn:hover{border-color:var(--formal-gold);background:#ffffff18;transform:translate(2px)}html:not([data-design]) .btn .sub{color:var(--formal-muted);font-size:15px}html:not([data-design]) .btn.primary{background:var(--formal-gold);color:#241a08;border-color:var(--formal-gold);box-shadow:none}html:not([data-design]) .btn.primary:hover{background:var(--formal-gold-hover);box-shadow:none;transform:none}html:not([data-design]) .btn.ghost{color:var(--formal-muted);box-shadow:none;background:0 0;border-color:#0000}html:not([data-design]) .btn.ghost:hover{color:var(--formal-ink);transform:none}html:not([data-design]) .levelmap{gap:10px;margin:14px 0}html:not([data-design]) .lvnode{background:var(--formal-surface-2);border:1px solid var(--formal-border);box-shadow:none;border-radius:8px}html:not([data-design]) .lvnode:hover{border-color:var(--formal-gold);box-shadow:none;transform:scale(1.03)}html:not([data-design]) .lvnode .ln{color:var(--formal-ink)}html:not([data-design]) .lvnode .lname{color:var(--formal-muted)}html:not([data-design]) input[type=text]{color:var(--formal-ink);border-color:var(--formal-border);background:#00000030;font-size:18px}html:not([data-design]) input[type=text]:focus,html:not([data-design]) textarea#codeInput:focus,html:not([data-design]) button:focus-visible,html:not([data-design]) summary:focus-visible{outline:2px solid var(--formal-focus);outline-offset:2px}html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap{background:var(--formal-surface);border:1px solid var(--formal-border);width:100%;box-shadow:none;border-radius:10px;margin:0;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .game-top{background:var(--formal-surface-2);border-bottom:1px solid var(--formal-border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px;width:100%;min-height:58px;padding:6px 12px 4px;display:grid}html:not([data-design]) #stage.mission-layout .mission-target-head{grid-column:1;align-items:center;gap:8px;min-height:34px;display:flex;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .target-kicker{color:var(--formal-gold);letter-spacing:.04em;white-space:nowrap;flex:none;font-size:15px;font-weight:800}html:not([data-design]) #stage.mission-layout .mission-screen .game-top .lvtitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--formal-ink);flex:auto;font-size:22px;line-height:1.3;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{text-overflow:ellipsis;white-space:nowrap;max-width:190px;color:var(--formal-teal);background:#6cc8bd12;border:1px solid #6cc8bd44;border-radius:8px;flex:none;margin-left:0;padding:3px 8px;font-size:14px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-note .game-story{background:var(--formal-surface-3);border:0;border-left:2px solid var(--formal-teal);color:var(--formal-ink);border-radius:8px;padding:5px 0 2px 10px;font-size:17px;line-height:1.55}html:not([data-design]) #stage.mission-layout .mission-note .key-line{color:var(--formal-teal);background:#6cc8bd12;border-color:#6cc8bd55}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{min-width:0;min-height:0;box-shadow:none;border:0;border-radius:0;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel{border-right:1px solid var(--formal-border);background:var(--formal-code)}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{background:var(--formal-board)}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd{background:var(--formal-surface-3);border-bottom:1px solid var(--formal-border);min-height:36px;color:var(--formal-muted);padding:5px 12px;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row{width:100%;min-width:0;min-height:232px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput{background:var(--formal-code);width:0;min-width:0;min-height:232px;color:var(--formal-ink);caret-color:var(--formal-gold);flex:auto;padding:10px 12px;font-family:SF Mono,Consolas,Courier New,monospace;font-size:17px;line-height:1.65}html:not([data-design]) #stage.mission-layout .mission-screen .code-feedback{background:var(--formal-surface-2);border-top:1px solid var(--formal-border);min-height:28px;color:var(--formal-muted);padding:5px 12px;font-size:16px;line-height:1.4}html:not([data-design]) #stage.mission-layout .mission-screen .code-feedback.ok{color:var(--formal-success)}html:not([data-design]) #stage.mission-layout .mission-screen .code-feedback.err{color:var(--formal-error)}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{background:var(--formal-surface-3);border-top:1.5px solid var(--formal-border);align-items:center;gap:8px;min-height:56px;padding:6px 10px 7px;display:flex}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn{background:var(--formal-gold);border:1px solid var(--formal-gold);color:#241a08;min-height:44px;box-shadow:none;border-radius:8px;flex:auto;font-size:18px}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn:hover{background:var(--formal-gold-hover);box-shadow:none;transform:none}html:not([data-design]) #stage.mission-layout .tool-details summary,html:not([data-design]) #stage.mission-layout .mission-screen .hint-btn2,html:not([data-design]) #stage.mission-layout .mission-screen .reset-btn{min-height:44px;color:var(--formal-muted);background:0 0;border:1px solid #0000;border-radius:8px;padding:8px 11px;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen .hint-block{background:var(--formal-surface-2);border-color:var(--formal-border)}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{background:var(--formal-board);justify-content:flex-start;align-self:start;gap:6px;width:100%;padding:8px 10px 9px}html:not([data-design]) #stage.mission-layout .mission-screen .board-title{color:var(--formal-ink);font-size:18px;line-height:1.3}html:not([data-design]) #stage.mission-layout .mission-screen .board-tag{text-align:left;background:0 0;border:0;border-radius:0;width:100%}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel canvas{border:1px solid var(--formal-border);width:100%;min-width:0;max-width:460px;height:auto;box-shadow:none;border-radius:8px;display:block}html:not([data-design]) #stage.mission-layout .mission-screen .board-status{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}html:not([data-design]) #stage.mission-layout .mission-screen .mission-complete{background:var(--formal-gold);border:1px solid var(--formal-gold);color:#241a08;cursor:pointer;border-radius:8px;flex:none;width:auto;min-height:40px;padding:8px 12px;font-family:inherit;font-size:15px;font-weight:800;line-height:1.35}html:not([data-design]) #stage.mission-layout .mission-actions{background:0 0;border:0;flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;min-height:30px;margin:0;padding:3px 0 0;display:flex}html:not([data-design]) #stage.mission-layout .mission-actions .btn{margin:0}@media (width<=719px){html:not([data-design]) body{padding:8px 8px 20px}html:not([data-design]) #stage.mission-layout,html:not([data-design]) #stage.mission-layout #view,html:not([data-design]) #stage.mission-layout .mission-screen,html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap,html:not([data-design]) #stage.mission-layout .mission-screen .game-body,html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{width:100%;min-width:0;max-width:100%}html:not([data-design]) #hud{min-height:48px;padding:1px 6px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top{min-height:56px;padding:5px 8px 4px;display:block;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-target-head{flex-wrap:nowrap;gap:5px;width:100%;min-height:32px;display:flex;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .target-kicker{font-size:14px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top .lvtitle{flex:auto;font-size:19px}html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{display:none}html:not([data-design]) #stage.mission-layout .mission-note,html:not([data-design]) #stage.mission-layout .mission-note[open]{height:22px;margin:0;display:block;overflow:visible}html:not([data-design]) #stage.mission-layout .mission-note summary{text-overflow:ellipsis;width:max-content;max-width:100%;min-height:22px;font-size:14px;line-height:22px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .game-body{grid-template-columns:minmax(0,1fr);gap:0;min-height:0;padding:0;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel{border-right:0;border-bottom:1px solid var(--formal-border)}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row,html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput{min-height:200px}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd{min-height:40px}html:not([data-design]) #stage.mission-layout .mission-screen .line-count{display:none}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{grid-template-columns:minmax(0,1fr);gap:6px;min-height:54px;padding:5px 8px;display:grid}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer .run-btn,html:not([data-design]) #stage.mission-layout .mission-screen .code-footer .tool-details{grid-column:1;width:100%}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer .tool-details summary{text-align:center;width:100%}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{padding:8px 9px 9px}html:not([data-design]) #stage.mission-layout .mission-screen .board-heading{min-height:38px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel canvas{width:100%;max-width:100%;height:auto}html:not([data-design]) #stage.mission-layout .mission-screen .board-status{flex-wrap:wrap}}html:not([data-design]) .board-canvas-shell{justify-content:center;width:100%;display:flex;position:relative;overflow:hidden}html:not([data-design]) .board-canvas-shell canvas{touch-action:none;border:3px solid #263746;border-radius:10px;max-width:100%;height:auto;display:block;box-shadow:0 3px #0a1118}html:not([data-design]) .board-hover{color:#d9e2e8;pointer-events:none;background:#101923e6;border:1px solid #536575;border-radius:999px;padding:4px 8px;font:600 12px/1.2 ui-monospace,SFMono-Regular,monospace;position:absolute;top:8px;right:10px}html:not([data-design]) .learn-extra{border:1px solid var(--line,#33404c);background:var(--panel,#17222d);border-radius:10px;margin:12px 0;overflow:hidden}html:not([data-design]) .learn-extra summary{cursor:pointer;color:var(--gold,#e5ae45);padding:9px 12px;font-weight:700}html:not([data-design]) .learn-body p,html:not([data-design]) .learn-analogy,html:not([data-design]) .learn-tip{margin:8px 0}html:not([data-design]) .learn-breakdown{margin:8px 0;padding-left:24px}html:not([data-design]) .learn-breakdown li{padding:2px 0}html:not([data-design]) .learn-breakdown b{margin-right:6px}html:not([data-design]) .learn-table-wrap{margin:10px 0;overflow-x:auto}html:not([data-design]) .learn-table-wrap table{border-collapse:collapse;width:100%}html:not([data-design]) .learn-table-wrap td{border:1px solid var(--line,#33404c);padding:5px 8px}html:not([data-design]) .learn-code{background:#0e171f;border-radius:8px;margin:10px 0 0;padding:10px;font:13px/1.55 ui-monospace,SFMono-Regular,monospace;overflow:auto}html:not([data-design]) .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}html:not([data-design]) .choice-btn{border:2px solid var(--line,#536575);background:var(--panel,#17222d);min-height:44px;color:var(--text,#d9e2e8);font:inherit;text-align:left;cursor:pointer;border-radius:8px;padding:8px 12px}html:not([data-design]) .choice-btn:hover,html:not([data-design]) .choice-btn:focus-visible{border-color:var(--gold,#e5ae45);background:#253542;outline:none}@media (width<=719px){html:not([data-design]) .choice-grid{grid-template-columns:1fr}html:not([data-design]) .board-hover{top:5px;right:6px}}html:not([data-design]){--formal-bg:#10110f;--formal-surface:#1d1e1a;--formal-surface-2:#282a25;--formal-surface-3:#32342d;--formal-code:#12130f;--formal-board:#151713;--formal-ink:#f4f0e6;--formal-muted:#bcb8ac;--formal-border:#474941;--formal-border-soft:#373933;--formal-cyan:#79b8ad;--formal-amber:#f0b84b;--formal-emerald:#7db584;--formal-rose:#df746c;--formal-gold:#f0b84b;--formal-gold-hover:#f6c665;--formal-gold-shadow:#725824;--formal-teal:#79b8ad;--formal-success:#7db584;--formal-success-bg:#7db58418;--formal-error:#df746c;--formal-error-bg:#df746c18;--formal-focus:#79b8ad;--formal-module-shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--formal-bg)}html:not([data-design]) body{padding:max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--formal-bg);color:var(--formal-ink)}html:not([data-design]) #stage,html:not([data-design]) #stage.mission-layout{width:100%;min-width:0;max-width:1360px}html:not([data-design]) #hud{border:0;border-bottom:1px solid var(--formal-border);min-height:58px;box-shadow:none;background:0 0;border-radius:0;padding:4px 2px 8px}html:not([data-design]) #hud .name{color:var(--formal-ink)}html:not([data-design]) #hud .rank{color:var(--formal-muted)}html:not([data-design]) .streak{color:var(--formal-rose)}html:not([data-design]) #sndBtn,html:not([data-design]) .hud-link{min-width:44px;min-height:44px;color:var(--formal-ink);background:0 0;border:1px solid #0000;border-radius:10px;transition:background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1),color .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1)}html:not([data-design]) #sndBtn:hover,html:not([data-design]) .hud-link:hover{background:var(--formal-surface-2);border-color:var(--formal-border)}html:not([data-design]) #sndBtn:active,html:not([data-design]) .hud-link:active{transform:translateY(1px)}html:not([data-design]) h1.title{color:var(--formal-ink)}html:not([data-design]) .subtitle{color:var(--formal-muted)}html:not([data-design]) #view>.screen:not(.mission-screen):not(.lesson-screen){box-shadow:none;background:0 0;border:0;border-radius:0;padding:clamp(20px,2.4vw,32px) 0}html:not([data-design]) .btn,html:not([data-design]) input[type=text],html:not([data-design]) .tool-details summary,html:not([data-design]) .mission-screen .hint-btn2,html:not([data-design]) .mission-screen .reset-btn{border-radius:10px;min-height:44px}html:not([data-design]) .btn{background:var(--formal-surface-2);border:1px solid var(--formal-border);color:var(--formal-ink);transition:background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1),color .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1)}html:not([data-design]) .btn:hover{background:var(--formal-surface-3);border-color:#54554d;transform:none}html:not([data-design]) .btn:active{transform:translateY(1px)}html:not([data-design]) .btn:disabled,html:not([data-design]) button:disabled{cursor:not-allowed;opacity:.46;box-shadow:none;transform:none}html:not([data-design]) .btn .sub{color:var(--formal-muted)}html:not([data-design]) .btn.primary{background:var(--formal-amber);border-color:var(--formal-amber);color:#29200c;font-weight:800}html:not([data-design]) .btn.primary:hover{background:var(--formal-gold-hover);border-color:var(--formal-gold-hover)}html:not([data-design]) .btn.primary:active{box-shadow:none;background:#dfa63a}html:not([data-design]) .btn.ghost{color:var(--formal-muted);background:0 0;border-color:#0000}html:not([data-design]) .btn.ghost:hover{color:var(--formal-ink);background:var(--formal-surface-2)}html:not([data-design]) .wcard,html:not([data-design]) .lvnode{background:var(--formal-surface);border:1px solid var(--formal-border);box-shadow:none;border-radius:14px;transition:background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1)}html:not([data-design]) .wcard:hover,html:not([data-design]) .lvnode:hover{background:var(--formal-surface-2);border-color:#54554d}html:not([data-design]) .wcard:active,html:not([data-design]) .lvnode:active{transform:translateY(1px)}html:not([data-design]) .lvnode.done{background:#7db58412;border-color:#7db58455}html:not([data-design]) .lvnode.boss{background:#df746c12;border-color:#df746c55}html:not([data-design]) .lvnode .lstar,html:not([data-design]) .wstars{color:var(--formal-amber)}html:not([data-design]) input[type=text]{background:var(--formal-code);border:1px solid var(--formal-border);color:var(--formal-ink);font-size:20px;transition:border-color .18s cubic-bezier(.22,1,.36,1),box-shadow .18s cubic-bezier(.22,1,.36,1),background-color .18s cubic-bezier(.22,1,.36,1)}html:not([data-design]) input[type=text]:focus,html:not([data-design]) textarea#codeInput:focus,html:not([data-design]) button:focus-visible,html:not([data-design]) a:focus-visible,html:not([data-design]) summary:focus-visible{outline:2px solid var(--formal-focus);outline-offset:3px}html:not([data-design]) .teach,html:not([data-design]) .qbox,html:not([data-design]) .report{background:var(--formal-surface);border:1px solid var(--formal-border);border-radius:14px}html:not([data-design]) .teach .k,html:not([data-design]) .seq-q,html:not([data-design]) .num{color:var(--formal-amber)}html:not([data-design]) .teach .c{color:var(--formal-cyan);background:#79b8ad14}html:not([data-design]) .qcode,html:not([data-design]) .seq-crystal,html:not([data-design]) .stepcode{background:var(--formal-code);color:var(--formal-ink);border-radius:10px}html:not([data-design]) .fb.good{background:var(--formal-success-bg);color:var(--formal-emerald);border:1px solid #7db58455;border-radius:10px}html:not([data-design]) .fb.bad{background:var(--formal-error-bg);color:var(--formal-rose);border:1px solid #df746c55;border-radius:10px}html:not([data-design]) .badges span{color:var(--formal-amber);background:#f0b84b12;border:1px solid #f0b84b55}html:not([data-design]) #stage.mission-layout #view{background:0 0}html:not([data-design]) #stage.mission-layout .mission-screen{width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0 0 6px}html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap{background:var(--formal-surface);border:1px solid var(--formal-border);border-radius:18px;width:100%;margin:0;display:block;overflow:hidden;box-shadow:0 18px 48px #0000002e}html:not([data-design]) #stage.mission-layout .mission-screen .game-top{border:0;border-bottom:1px solid var(--formal-border);width:100%;min-height:66px;box-shadow:none;background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 18px;padding:10px clamp(18px,2vw,28px);display:grid}html:not([data-design]) #stage.mission-layout .mission-target-head{grid-column:1;align-items:center;gap:14px;min-width:0;min-height:40px;display:flex}html:not([data-design]) #stage.mission-layout .mission-screen .target-kicker{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .game-top .lvtitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--formal-ink);flex:auto;font-size:clamp(21px,1.7vw,26px);font-weight:800;line-height:1.25;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{text-overflow:ellipsis;white-space:nowrap;max-width:none;color:var(--formal-amber);background:0 0;border:1px solid #5b5139;border-radius:999px;flex:none;margin:0;padding:5px 10px;font-size:14px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-note{grid-area:1/2;margin:0}html:not([data-design]) #stage.mission-layout .mission-note[open]{grid-area:2/1/auto/-1}html:not([data-design]) #stage.mission-layout .mission-note summary{min-height:36px;color:var(--formal-muted);white-space:nowrap;padding:0 8px;font-size:14px;line-height:1.4}html:not([data-design]) #stage.mission-layout .mission-note .game-story{border:0;border-left:2px solid var(--formal-cyan);color:var(--formal-ink);background:0 0;border-radius:0;margin-top:8px;padding:8px 0 2px 14px;font-size:18px;line-height:1.55}html:not([data-design]) #stage.mission-layout .mission-note .key-line{color:#a9d3cb;background:#79b8ad10;border:1px solid #79b8ad38;border-radius:8px;margin-top:6px;padding:7px 14px}html:not([data-design]) #stage.mission-layout .mission-note:not([open]) .game-story,html:not([data-design]) #stage.mission-layout .mission-note:not([open]) .key-line{display:none}html:not([data-design]) #stage.mission-layout .mission-screen .game-body{background:0 0;grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);align-items:stretch;gap:0;width:100%;min-width:0;min-height:0;padding:0;display:grid}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{min-width:0;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel{background:var(--formal-code);border-right:1px solid var(--formal-border);flex-direction:column;display:flex}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{background:var(--formal-surface);flex-direction:column;justify-content:flex-start;align-self:stretch;align-items:center;gap:14px;width:100%;height:100%;padding:16px clamp(18px,2.2vw,30px) 20px;display:flex}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd{background:var(--formal-surface-2);border:0;border-bottom:1px solid var(--formal-border-soft);min-height:48px;color:var(--formal-muted);padding:8px 16px;font-size:15px}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel-hd .hd-left{white-space:nowrap;min-width:0;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .preview-tag{display:none}html:not([data-design]) #stage.mission-layout .mission-screen .dot-r{background:var(--formal-rose)}html:not([data-design]) #stage.mission-layout .mission-screen .dot-y{background:var(--formal-amber)}html:not([data-design]) #stage.mission-layout .mission-screen .dot-g{background:var(--formal-emerald)}html:not([data-design]) #stage.mission-layout .mission-screen .line-count{color:var(--formal-muted);font-size:14px}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row{flex:0 auto;width:100%;min-width:0;min-height:230px;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .gutter{border-right:1px solid var(--formal-border-soft);color:#77786f;background:#0f100d;flex:0 0 42px;width:42px;padding:14px 8px 14px 0;font-size:16px;line-height:1.7}html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput{background:var(--formal-code);color:#e8e3d8;width:0;min-width:0;min-height:230px;caret-color:var(--formal-amber);flex:auto;padding:14px 16px;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:18px;line-height:1.7}html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput::placeholder{color:#77786f;opacity:1}html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput::selection{background:#6b624633}html:not([data-design]) #stage.mission-layout .mission-screen .syntax-panel{border-color:var(--formal-border-soft);background:#0f100d}html:not([data-design]) #stage.mission-layout .mission-screen .syn .desc{color:var(--formal-ink)}html:not([data-design]) #stage.mission-layout .mission-screen .syn .ex{color:var(--formal-muted)}html:not([data-design]) #stage.mission-layout .mission-screen .code-feedback{background:var(--formal-surface-2);border:0;border-top:1px solid var(--formal-border-soft);min-height:34px;color:var(--formal-muted);padding:7px 16px;font-size:16px;line-height:1.4}html:not([data-design]) #stage.mission-layout .mission-screen .code-feedback:empty,html:not([data-design]) #stage.mission-layout .mission-screen .board-log:empty{display:none}html:not([data-design]) #stage.mission-layout .mission-screen .code-feedback.ok{background:var(--formal-success-bg);color:var(--formal-emerald)}html:not([data-design]) #stage.mission-layout .mission-screen .code-feedback.err{background:var(--formal-error-bg);color:var(--formal-rose)}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{background:var(--formal-surface-2);border:0;border-top:1px solid var(--formal-border-soft);justify-content:flex-end;align-items:center;gap:10px;min-height:70px;padding:9px 14px;display:flex}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn{background:var(--formal-amber);border:1px solid var(--formal-amber);color:#29200c;cursor:pointer;border-radius:10px;flex:0 220px;width:clamp(180px,36%,220px);min-height:52px;padding:10px 22px;font-size:19px;font-weight:850;transition:background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s cubic-bezier(.22,1,.36,1);box-shadow:0 2px #8a6623}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn:hover{background:var(--formal-gold-hover);border-color:var(--formal-gold-hover)}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn:active{box-shadow:none;background:#dfa63a;transform:translateY(2px)}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn:disabled{color:#918b7e;box-shadow:none;background:#4b463a;border-color:#4b463a}html:not([data-design]) #stage.mission-layout .tool-details{flex:none;min-width:0}html:not([data-design]) #stage.mission-layout .tool-details summary,html:not([data-design]) #stage.mission-layout .mission-screen .hint-btn2,html:not([data-design]) #stage.mission-layout .mission-screen .reset-btn{min-height:44px;color:var(--formal-muted);background:0 0;border:1px solid #0000;border-radius:9px;padding:8px 11px;font-size:15px;transition:background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1),color .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1)}html:not([data-design]) #stage.mission-layout .tool-details summary:hover,html:not([data-design]) #stage.mission-layout .mission-screen .hint-btn2:hover,html:not([data-design]) #stage.mission-layout .mission-screen .reset-btn:hover{background:var(--formal-surface-3);border-color:var(--formal-border);color:var(--formal-ink)}html:not([data-design]) #stage.mission-layout .tool-details summary:active,html:not([data-design]) #stage.mission-layout .mission-screen .hint-btn2:active,html:not([data-design]) #stage.mission-layout .mission-screen .reset-btn:active{transform:translateY(1px)}html:not([data-design]) #stage.mission-layout .mission-screen .hint-block{background:var(--formal-surface-2);border:1px solid var(--formal-border);color:var(--formal-ink);border-radius:10px}html:not([data-design]) #stage.mission-layout .mission-screen .hint-block pre{color:var(--formal-amber)}html:not([data-design]) #stage.mission-layout .mission-screen .board-heading{justify-content:flex-end;align-items:center;gap:10px;width:100%;min-height:32px;padding:0;display:flex}html:not([data-design]) #stage.mission-layout .mission-screen .board-title{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .board-direction,html:not([data-design]) #stage.mission-layout .mission-screen .board-tag,html:not([data-design]) #stage.mission-layout .mission-screen .board-log{color:var(--formal-muted);font-size:15px;line-height:1.45}html:not([data-design]) #stage.mission-layout .mission-screen .board-direction{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel .board-canvas-shell{width:fit-content;max-width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;justify-content:center;margin:auto;display:flex;overflow:visible}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel .board-canvas-shell canvas{width:auto;max-width:100%;height:auto;box-shadow:inset 0 0 0 1px var(--formal-border);touch-action:none;border:0;border-radius:10px;display:block}html:not([data-design]) .board-hover{border:1px solid var(--formal-border);color:var(--formal-ink);pointer-events:none;background:#22231ff2;border-radius:999px;padding:5px 9px;font:600 14px/1.2 SF Mono,Consolas,monospace;position:absolute;top:8px;right:10px}html:not([data-design]) #stage.mission-layout .mission-screen .board-status{justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:46px;display:flex}html:not([data-design]) #stage.mission-layout .mission-screen .board-log{text-align:left;background:0 0;border:0;flex:auto;width:auto;min-height:22px;padding:3px 0}html:not([data-design]) #stage.mission-layout .mission-screen .mission-complete{background:var(--formal-amber);border:1px solid var(--formal-amber);color:#29200c;cursor:pointer;border-radius:10px;flex:none;width:auto;min-height:46px;padding:9px 16px;font-family:inherit;font-size:16px;font-weight:800;line-height:1.35;transition:background-color .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1)}html:not([data-design]) #stage.mission-layout .mission-screen .mission-complete:hover{background:var(--formal-gold-hover)}html:not([data-design]) #stage.mission-layout .mission-screen .mission-complete:active{background:#dfa63a;transform:translateY(1px)}html:not([data-design]) #stage.mission-layout .mission-actions{background:0 0;border:0;justify-content:flex-start;align-items:center;min-height:34px;margin:0;padding:7px 2px 0;display:flex}html:not([data-design]) #stage.mission-layout .mission-back{min-height:30px;color:var(--formal-muted);align-items:center;font-size:15px;display:inline-flex}html:not([data-design]) #stage.mission-layout .mission-back:hover{color:var(--formal-ink)}html:not([data-design]) #view>.screen.lesson-screen{background:var(--formal-surface);border:1px solid var(--formal-border);border-radius:18px;width:100%;padding:0;overflow:hidden;box-shadow:0 18px 48px #0000002e}html:not([data-design]) .lesson-screen .lesson-header{border-bottom:1px solid var(--formal-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-height:62px;margin:0;padding:9px clamp(18px,2vw,28px);display:flex}html:not([data-design]) .lesson-screen .qlabel{min-width:0;color:var(--formal-muted);margin:0;font-size:15px}html:not([data-design]) .lesson-screen .lesson-back{flex:none;width:auto;margin:0;padding:8px 12px}html:not([data-design]) .lesson-screen .lesson-layout{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:0;min-width:0;min-height:0;display:grid}html:not([data-design]) .lesson-screen .lesson-visual,html:not([data-design]) .lesson-screen .lesson-task{min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;padding:clamp(22px,2.5vw,34px)}html:not([data-design]) .lesson-screen .lesson-visual{background:var(--formal-board);flex-direction:column;justify-content:center;display:flex}html:not([data-design]) .lesson-screen .lesson-task{background:var(--formal-surface);flex-direction:column;justify-content:center;gap:18px;display:flex}html:not([data-design]) .lesson-screen .qbox{text-align:center;background:0 0;border:0;border-radius:0;flex-direction:column;align-items:center;width:100%;margin:0;padding:0;display:flex;overflow:hidden}html:not([data-design]) .lesson-screen #miniCv{border-radius:10px;width:min(100%,460px);height:auto;display:block}html:not([data-design]) .lesson-screen .lesson-highlight{color:#a9d3cb;margin-top:10px;font-size:17px;line-height:1.45}html:not([data-design]) .learn-extra{border:0;border-top:1px solid var(--formal-border-soft);background:0 0;border-radius:0;margin:16px 0 0;overflow:hidden}html:not([data-design]) .learn-extra summary{min-height:46px;color:var(--formal-muted);align-items:center;padding:0;font-size:15px;display:flex}html:not([data-design]) .learn-extra summary:hover{color:var(--formal-ink)}html:not([data-design]) .learn-extra-body{color:var(--formal-ink);padding:0 0 8px;font-size:17px;line-height:1.65}html:not([data-design]) .learn-tip{color:#a9d3cb}html:not([data-design]) .learn-table-wrap td{border:1px solid var(--formal-border)}html:not([data-design]) .learn-code{background:var(--formal-code);color:var(--formal-ink);border-radius:8px;font-size:15px}html:not([data-design]) .lesson-screen .say{border:0;border-bottom:1px solid var(--formal-border-soft);color:var(--formal-ink);background:0 0;border-radius:0;margin:0;padding:0 0 18px;line-height:1.6;font-size:clamp(20px,1.55vw,22px)!important}html:not([data-design]) .lesson-screen .stepcode,html:not([data-design]) .lesson-screen .choice-grid,html:not([data-design]) .lesson-screen .answer-row,html:not([data-design]) .lesson-screen .fb{margin:0}html:not([data-design]) .lesson-screen .stepcode{border:1px solid var(--formal-border-soft);padding:14px 16px;font-size:19px;line-height:1.65}html:not([data-design]) .lesson-screen .code-skeleton{gap:7px;display:grid}html:not([data-design]) .lesson-screen .code-skeleton>span{color:var(--formal-muted);letter-spacing:.04em;font-size:15px;font-weight:700}html:not([data-design]) .lesson-screen .code-skeleton .stepcode{margin:0}html:not([data-design]) .lesson-screen .lesson-actions{gap:12px;min-width:0;display:grid}html:not([data-design]) .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}html:not([data-design]) .choice-btn{background:var(--formal-surface-2);border:1px solid var(--formal-border);min-height:58px;color:var(--formal-ink);font:inherit;text-align:left;cursor:pointer;border-radius:10px;padding:12px 15px;font-size:20px;line-height:1.4;transition:background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1)}html:not([data-design]) .choice-btn:hover,html:not([data-design]) .choice-btn:focus-visible{background:var(--formal-surface-3);border-color:var(--formal-focus)}html:not([data-design]) .choice-btn:active{transform:translateY(1px)}html:not([data-design]) .lesson-screen .answer-row{align-items:stretch}html:not([data-design]) .lesson-screen .answer-row input[type=text]{min-width:0;min-height:56px;font-size:20px}html:not([data-design]) .lesson-screen .lesson-confirm{width:auto;min-height:56px;margin:0;padding-inline:26px;font-size:19px}html:not([data-design]) .lesson-screen .lesson-next{justify-self:end;width:auto;min-width:190px;min-height:54px;margin:0;font-size:19px}html:not([data-design]) .lesson-screen .fb{font-size:19px;line-height:1.55}@media (width>=840px){html:not([data-design]) .lesson-screen .lesson-layout{grid-template-columns:minmax(400px,.9fr) minmax(0,1.1fr)}html:not([data-design]) .lesson-screen .lesson-visual{border-right:1px solid var(--formal-border)}}@media (width<=839px){html:not([data-design]) body{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}html:not([data-design]) #stage,html:not([data-design]) #stage.mission-layout,html:not([data-design]) #stage.mission-layout #view,html:not([data-design]) #stage.mission-layout .mission-screen,html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap,html:not([data-design]) #stage.mission-layout .mission-screen .game-body,html:not([data-design]) #stage.mission-layout .mission-screen .code-panel,html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{width:100%;min-width:0;max-width:100%}html:not([data-design]) #hud{min-height:50px;padding:2px 4px 7px}html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap,html:not([data-design]) #view>.screen.lesson-screen{border-radius:14px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top{min-height:60px;padding:8px 12px;display:block}html:not([data-design]) #stage.mission-layout .mission-target-head{gap:8px;width:100%;min-height:34px}html:not([data-design]) #stage.mission-layout .mission-screen .game-top .lvtitle{font-size:21px}html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal{margin-left:auto;font-size:14px}html:not([data-design]) #stage.mission-layout .mission-note,html:not([data-design]) #stage.mission-layout .mission-note[open]{height:auto;margin:0;display:block;overflow:visible}html:not([data-design]) #stage.mission-layout .mission-note summary{width:max-content;max-width:100%;min-height:30px;padding:0}html:not([data-design]) #stage.mission-layout .mission-screen .game-body{grid-template-columns:minmax(0,1fr);min-height:0}html:not([data-design]) #stage.mission-layout .mission-screen .code-panel{border-right:0;border-bottom:1px solid var(--formal-border);min-height:0}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row,html:not([data-design]) #stage.mission-layout .mission-screen textarea#codeInput{min-height:180px}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel{min-height:0;padding:12px 14px 16px}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel .board-canvas-shell{max-width:100%;margin:auto;overflow:hidden}html:not([data-design]) #stage.mission-layout .mission-screen .board-panel .board-canvas-shell canvas{width:auto;max-width:100%;height:auto}html:not([data-design]) .lesson-screen .lesson-layout{grid-template-columns:1fr;min-height:0}html:not([data-design]) .lesson-screen .lesson-visual,html:not([data-design]) .lesson-screen .lesson-task{padding:22px}html:not([data-design]) .lesson-screen .lesson-visual{border-bottom:1px solid var(--formal-border)}html:not([data-design]) .choice-grid{grid-template-columns:1fr}}@media (width<=719px){html:not([data-design]) #stage.mission-layout .mission-screen .stars-goal,html:not([data-design]) #stage.mission-layout .mission-screen .line-count{display:none}html:not([data-design]) #stage.mission-layout .mission-screen .code-footer{grid-template-columns:minmax(0,1fr);gap:6px;min-height:66px;padding:7px 9px;display:grid}html:not([data-design]) #stage.mission-layout .mission-screen .run-btn{grid-column:1;justify-self:stretch;width:100%;max-width:none;min-height:52px}html:not([data-design]) #stage.mission-layout .tool-details{grid-column:1;width:100%}html:not([data-design]) #stage.mission-layout .tool-details summary{text-align:center;width:100%}html:not([data-design]) #stage.mission-layout .mission-screen .board-heading{min-height:28px}html:not([data-design]) #stage.mission-layout .mission-screen .board-direction{font-size:14px}html:not([data-design]) #stage.mission-layout .mission-screen .board-status{flex-wrap:wrap}html:not([data-design]) .lesson-screen .lesson-header{padding:8px 12px}html:not([data-design]) .lesson-screen .lesson-visual,html:not([data-design]) .lesson-screen .lesson-task{padding:16px 14px}html:not([data-design]) .lesson-screen .lesson-next{width:100%}html:not([data-design]) .lesson-screen .answer-row{width:100%;min-width:0}html:not([data-design]) .lesson-screen .answer-row input[type=text]{min-width:0}}@media (prefers-reduced-motion:reduce){html:not([data-design]) *,html:not([data-design]) :before,html:not([data-design]) :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html:not([data-design]) #stage.mission-layout .mission-screen .editor-row textarea#codeInput{flex:auto;width:100%;min-width:0}@media (width<=719px){html:not([data-design]) #stage.mission-layout .mission-screen .game-wrap,html:not([data-design]) #stage.mission-layout .mission-screen .game-body{overflow:visible}}
