@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BBd_G3i-.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-hI9Kr37g.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-kGSpR5A9.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-DN3Amd4H.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-CFRgRepe.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-Czy-B68B.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-DrBIvsIy.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-DOZeTYVF.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CGQ_Vo0j.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BS_Ohp14.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-1DREuLwQ.woff2) format("woff2"),url(/assets/dm-sans-latin-700-normal-ryGpXDOP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/dm-sans-latin-ext-800-normal-CN_krSfo.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-800-normal-Db8yI-9n.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/dm-sans-latin-800-normal-DNgzLT-q.woff2) format("woff2"),url(/assets/dm-sans-latin-800-normal-C_AxdMGW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.puzzle-editor{height:100dvh;min-height:500px;display:flex;flex-direction:column;background:#fafbfe;color:#243048;overflow:hidden}.puzzle-editor button{cursor:pointer}.puzzle-editor button:disabled{opacity:.65;cursor:default}.scene-hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;--hud-inset: 24px;--hud-gap: 12px;padding-top:var(--hud-inset)}.scene-top-hud{display:flex;align-items:flex-start;gap:16px;padding:0 var(--hud-inset);flex-shrink:0}.scene-header{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:1;min-width:0}.scene-hud .scene-mission{position:static;max-width:none}.scene-hud .mission-overline{line-height:1.4}.scene-hud .scene-mission h1{line-height:1.4;overflow-wrap:anywhere}.scene-hud .scene-render-badge{position:static;flex-shrink:0;line-height:1.4;white-space:nowrap}.scene-music-start{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #c7dfe0;border-radius:8px;color:#50777e;background:#f7fcfc;font-size:11px;pointer-events:auto}.scene-music-start:hover{background:#fff}.scene-music-start:focus-visible{outline:2px solid #667ded;outline-offset:3px}.scene-hud .scene-model-status{position:static;line-height:1.5}.scene-hud .scene-tools{position:static;flex-shrink:0;pointer-events:auto}.scene-bottom-hud{display:flex;flex-direction:column;gap:var(--hud-gap);flex-shrink:0}.scene-hud .scene-viewbar{position:static;flex-direction:row;flex-wrap:wrap;gap:8px 12px;margin:0 var(--hud-inset)}.scene-hud .scene-drag-hint{line-height:1.5}.scene-hud .scene-camera-actions{flex-shrink:0;gap:6px;margin-left:auto}.scene-hud .scene-camera-actions button{width:34px;height:34px;flex-shrink:0}.scene-hud .scene-stats{position:static;width:auto;margin:0 var(--hud-inset);flex-shrink:0}.scene-hud .scene-feedback{position:static;margin:0 var(--hud-inset);flex-shrink:0;pointer-events:auto}.scene-hud .scene-stats span{line-height:1.4;white-space:nowrap}.scene-hud .question-strip{position:static;flex-shrink:0;pointer-events:auto}@media(min-width:1800px){.scene-hud{--hud-inset: 35px;--hud-gap: 16px}}@media(max-width:1100px){.scene-hud{--hud-inset: 16px}}@media(max-height:700px)and (min-width:601px){.scene-hud .scene-tools{display:grid;grid-template-columns:repeat(3,auto);gap:6px}}@media(max-width:600px){.puzzle-editor .game-pane{min-height:280px}.scene-hud{--hud-inset: 12px;--hud-gap: 8px}.scene-top-hud{gap:12px}.scene-hud .scene-tools{flex-direction:row;gap:4px}.scene-hud .scene-tools button{width:28px;height:28px}.scene-hud .scene-viewbar{position:absolute;top:58px;left:auto;right:12px;bottom:auto;margin:0}.scene-hud .scene-camera-actions button{width:30px;height:30px}}.editor-topbar{height:64px;min-height:64px;padding:0 18px;background:#fff;border-bottom:1px solid #e2e7f0;display:flex;align-items:center;gap:15px;z-index:5}.editor-icon{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:9px;color:#65728a;background:#f1f4f9}.editor-brand-home{position:relative;flex-shrink:0;background:transparent}.editor-brand-home .logo-mark{width:34px;height:34px}.editor-home-arrow{position:absolute;left:-3px;bottom:-2px;display:grid;place-items:center;width:15px;height:15px;border-radius:5px;background:#fff;color:#667b80;box-shadow:0 1px 4px #38534c24;pointer-events:none}.editor-brand-home:focus-visible{outline:2px solid #d99144;outline-offset:4px}.editor-loading .logo-mark{width:64px;height:64px}.editor-course{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:0;padding:0;background:transparent;min-width:112px}.editor-course>span{display:flex;align-items:center;gap:6px;font:700 10px/1.2 DM Sans,sans-serif;color:#697991;letter-spacing:.07em;text-transform:uppercase}.editor-course>strong{font-size:14px;color:#2c3852}.editor-question-label{font-size:13px;font-weight:650;padding-left:16px;border-left:1px solid #e2e7f0;white-space:nowrap}.editor-question-label small{color:#94a1b7;font-weight:400}.editor-targets{display:flex;gap:18px;margin-left:12px;font-size:12px;color:#8490a5}.editor-targets>span{display:flex;gap:6px;align-items:center;white-space:nowrap}.editor-targets strong{color:#40516d;font-family:DM Sans,sans-serif}.editor-main-actions{margin-left:auto;display:flex;gap:8px}.editor-control{border:0;border-radius:9px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:650;white-space:nowrap}.editor-control.run{color:#fff;background:#5168f4;box-shadow:0 3px 8px #5168f424}.editor-control.run:hover:not(:disabled){background:#4056df}.editor-control.stop{color:#d26762;background:#fff1ef}.editor-control.secondary{color:#62718c;background:#f0f4fb}.editor-split{flex:1;display:grid;grid-template-columns:46% 54%;min-height:0}.game-pane{min-height:0;position:relative;background:#f7dfb7;overflow:hidden;border-right:1px solid #d6dce8}.scene-mission{position:absolute;top:25px;left:26px;z-index:2;pointer-events:none;max-width:calc(100% - 98px)}.mission-overline{display:flex;align-items:center;gap:5px;color:#a67a46;font-size:10px;font-weight:650;letter-spacing:.12em}.scene-mission h1{font-size:20px;font-weight:750;color:#73523a;margin:8px 0 5px}.scene-mission p{font-size:11px;color:#a17d59;margin:0;line-height:1.7}.scene-canvas-wrap{position:absolute;top:95px;right:8px;bottom:120px;left:8px}.scene-canvas-wrap canvas{width:100%;height:100%;display:block}.scene-3d-wrap{top:0!important;right:0!important;bottom:0!important;left:0!important}.scene-3d-canvas{cursor:grab;touch-action:none;outline:none}.scene-3d-canvas:active{cursor:grabbing}.scene-3d-canvas:focus-visible{box-shadow:inset 0 0 0 3px #6d9ba9}.scene-coordinate-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.scene-coordinate{color:#674f38;background:#fff7e3c9;padding:1px 3px;border-radius:3px;font:600 9px DM Sans,sans-serif;pointer-events:none}.scene-render-badge{position:absolute;top:112px;left:26px;pointer-events:none;display:inline-flex;gap:5px;align-items:center;padding:5px 8px;border:1px solid #ffffffb3;border-radius:6px;background:#ffffff70;color:#6a858c;font-size:9px;font-weight:600}.scene-render-badge span{padding-left:6px;border-left:1px solid #8ba7ad55;font-family:DM Sans,sans-serif}.scene-viewbar{position:absolute;bottom:144px;left:24px;right:24px;display:flex;gap:10px;align-items:center;justify-content:space-between;pointer-events:none}.scene-drag-hint{display:inline-flex;align-items:center;gap:5px;font-size:9px;color:#6b858d;text-shadow:0 1px 1px #ffffff}.scene-camera-actions{display:flex;gap:4px;pointer-events:auto}.scene-camera-actions button{width:29px;height:29px;display:grid;place-items:center;background:#ffffffad;color:#6e8d94;border:1px solid #ffffffd6;border-radius:8px;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.scene-camera-actions button:hover,.scene-camera-actions button.active{color:#fff;background:#6b9f9c;border-color:#6b9f9c}.scene-model-status{position:absolute;top:151px;left:26px;display:flex;gap:6px;align-items:center;color:#6c848c;font-size:10px;pointer-events:none}.scene-model-status svg{animation:scene-loader 1s linear infinite}@keyframes scene-loader{to{transform:rotate(360deg)}}.scene-render-error{position:absolute;top:42%;left:20px;right:20px;border-radius:12px;padding:16px;color:#97634d;font-size:12px;text-align:center;background:#fff8edec;border:1px solid #dfc8b3}.game-pane .scene-mission h1{color:#415b61}.game-pane .scene-mission p,.game-pane .mission-overline{color:#7b9499}.game-pane .scene-tools{z-index:3}.game-pane .scene-tools button{border-color:#ffffffbf;background:#ffffffad;color:#6e8c91;box-shadow:0 3px 8px #4d747412;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.game-pane .scene-tools button.active{background:#6b9f9c;color:#fff}.game-pane .scene-stats{background:#ffffffbd;border-color:#fffffff0}.game-pane .scene-stats strong{color:#46636b}.game-pane .scene-stats span,.game-pane .scene-stats small,.game-pane .scene-stats>div{color:#829ca1}.game-pane .question-strip{background:#e3edf0d9;border-color:#cfdee1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.game-pane .question-strip button{background:#f1f6f6;border-color:#cddfe2;color:#7a989e}.game-pane .question-strip button.current{color:#47787e;background:#fff;border-color:#fff}@media(max-width:1000px){.scene-viewbar{flex-direction:column;gap:7px}.scene-render-badge{left:14px;top:93px}}@media(max-width:600px){.scene-render-badge{top:54px;left:12px;padding:3px 5px;font-size:8px}.scene-render-badge svg{width:11px}.scene-viewbar{left:auto;right:9px;top:48px;bottom:auto;flex-direction:row}.scene-drag-hint{display:none}.scene-camera-actions{margin-left:auto}.scene-camera-actions button{width:30px;height:30px;border-radius:6px}.scene-camera-actions svg{width:14px}.scene-model-status{top:85px;left:12px;font-size:9px}}.scene-tools{position:absolute;top:25px;right:18px;display:flex;flex-direction:column;gap:8px}.scene-tools button{width:35px;height:35px;border-radius:11px;border:1px solid #fff4df;background:#fff3df;box-shadow:0 3px 6px #bd915226;color:#af824c;display:grid;place-items:center}.scene-tools button.active{background:#d59c50;color:#fff}.scene-tools strong{font-family:DM Sans,sans-serif;font-size:13px}.scene-stats{position:absolute;bottom:66px;left:24px;right:24px;height:66px;border-radius:14px;background:#fff8eadd;border:1px solid #fff9ed;display:flex;justify-content:space-around;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scene-stats>div{display:grid;grid-template-columns:22px auto;column-gap:7px;align-content:center;color:#a77e47}.scene-stats svg{grid-row:span 2;align-self:center}.scene-stats strong{color:#785631;font:700 18px/1.2 DM Sans,Microsoft YaHei,sans-serif}.scene-stats small{font-size:12px;color:#b08e63;font-weight:500}.scene-stats span{font-size:9px;color:#ac8d67;margin-top:2px}.question-strip{position:absolute;left:0;bottom:0;width:100%;height:48px;border-top:1px solid #dfbd852f;display:flex;align-items:center;justify-content:center;gap:7px;background:#f6dfb8}.question-strip>span{font-size:10px;color:#a17b4d;margin-right:6px}.question-strip button{width:28px;height:28px;border-radius:8px;border:1px solid #dec19877;color:#a27d4e;background:#fae9cf;font:600 12px DM Sans,sans-serif;display:grid;place-items:center}.question-strip button.current{background:#fff;color:#8e633b;border-color:#fff;box-shadow:0 2px 5px #c99f6022}.question-strip button.solved{color:#668543;background:#edf2dc}.puzzle-star-rating{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:#cbd3dc;flex-shrink:0}.puzzle-star-rating svg{display:block;flex-shrink:0}.puzzle-star-rating .earned{color:#e6ac38}.scene-hud .question-strip{height:58px;padding:5px 0}.scene-hud .question-strip button{height:38px;display:flex;flex-direction:column;justify-content:center;gap:3px}.question-strip button>span:first-child{height:15px;display:grid;place-items:center}.question-strip .puzzle-star-rating{gap:1px}.game-pane .question-strip button.partial{background:#fff5dc;border-color:#e7d3a1;color:#997329}.game-pane .question-strip button.solved{background:#e4f2e3;border-color:#b8d4b9;color:#4c825b}.question-strip button.solved .earned{color:#5b8e67}.program-pane{position:relative;display:flex;flex-direction:column;min-height:0;min-width:0;background:#fafbfe}.workspace-topbar{min-height:44px;height:44px;border-bottom:1px solid #e8edf6;display:flex;justify-content:space-between;align-items:center;padding:0 14px;background:#fff}.workspace-topbar>span{font-size:12px;color:#626f88;font-weight:600;display:flex;align-items:center;gap:7px}.workspace-topbar small{color:#9aa6b9;font-size:10px;font-weight:500;margin-left:4px}.workspace-topbar>div{display:flex;gap:5px}.workspace-topbar button,.workspace-bottom button{border:0;padding:6px;background:transparent;color:#7e8ba3;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:5px}.workspace-topbar button:hover,.workspace-bottom button:hover{background:#eef2fa}.blockly-host{flex:1;min-height:0;width:100%;position:relative}.blockly-host>.blocklySvg{position:absolute;top:0;left:0}.blocklyToolbox{padding:10px 0;border-right:1px solid #e5eaf4}.blocklyTreeRow{height:auto;padding:10px 9px!important;margin:0 0 3px!important;display:flex;align-items:center;border-radius:0}.blocklyTreeLabel{font-family:Microsoft YaHei,sans-serif;font-size:11px!important}.blocklyTreeIcon{display:none!important}.blocklyTreeRow:not(.blocklyTreeSelected):hover{background:#e4eaf5}.workspace-bottom{height:40px;min-height:40px;display:flex;align-items:center;padding:0 11px;gap:15px;border-top:1px solid #e5ebf4;background:#fff}.workspace-bottom button{font-size:11px;padding:5px}.workspace-bottom button.active{color:#5168f4}.execution-label{margin-left:auto;font-size:10px;color:#96a2b6}.execution-label.running{color:#5168f4}.execution-label.success{color:#469574}.execution-label.error{color:#d27567}.console-panel{max-height:170px;overflow:auto;padding:15px 20px;background:#f0f4fb;font-size:11px;border-top:1px solid #dce5f2}.console-panel>strong{color:#5e6e8e;font-size:10px}.console-panel p{color:#99a6bc}.console-panel>div{margin-top:5px;font-family:DM Sans,sans-serif;display:flex;gap:10px}.scene-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:4;width:330px;max-width:calc(100% - 30px);padding:28px 22px 18px;border-radius:20px;background:#fffaf1f5;border:1px solid #fff;text-align:center;box-shadow:0 15px 60px #93704433}.result-symbol{color:#4f9e7c;background:#e8f3e7;width:55px;height:55px;display:grid;place-items:center;margin:0 auto;border-radius:18px}.scene-result h2{font-size:24px;margin:15px 0 8px;color:#604a33}.scene-result p{font-size:11px;color:#9f8568}.efficiency-badges{display:flex;justify-content:center;flex-wrap:wrap;gap:5px;margin:18px 0}.efficiency-badges>span{font-size:9px;display:inline-flex;align-items:center;gap:2px;padding:5px 6px;background:#f1ede7;color:#aaa198;border-radius:6px}.efficiency-badges>span:first-child,.efficiency-badges .earned{color:#53805d;background:#e9f3e8}.scene-result{max-height:calc(100% - 24px);overflow-y:auto;overscroll-behavior:contain;background:#fffffff5}.scene-result.partial .result-symbol{color:#af8032;background:#fcf0d6}.result-rating{margin:9px 0 7px;gap:9px}.result-rating .earned{filter:drop-shadow(0 2px 2px #d9992b26)}.result-score{display:block;font-size:13px;color:#9b762e}.scene-result.mastered .result-score{color:#548466}.scene-result .efficiency-badges{display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:7px;margin:14px 0 10px}.scene-result .efficiency-badges>span{display:grid;grid-template-columns:16px auto 1fr;align-items:center;gap:6px;padding:9px 8px;text-align:left;border:1px solid #e6e9ed;background:#f5f6f8;color:#8e99aa;font-size:11px}.scene-result .efficiency-badges>span.earned{border-color:#dbe9dd;color:#5a8065;background:#eff6ee}.scene-result .efficiency-badges>span.earned>svg{color:#d6a235}.scene-result .efficiency-badges small{font-size:10px;text-align:right;font-weight:400}.scene-result .result-best{font-size:10px;line-height:1.6;margin:10px 0 14px;color:#7c8a92}.text-action{display:block;background:transparent;border:0;color:#a58e75;margin:10px auto 0;font-size:11px}.scene-feedback{position:absolute;bottom:145px;left:20px;right:20px;display:flex;gap:10px;align-items:center;padding:14px;background:#fffaf2f5;border:1px solid #f0d7b3;border-radius:13px;color:#bb8357;box-shadow:0 5px 15px #a1804922;z-index:4}.scene-feedback strong{font-size:12px;color:#895e3b}.scene-feedback p{font-size:10px;line-height:1.6;margin:5px 0 0}.scene-feedback>svg{flex-shrink:0}.scene-feedback button{background:none;border:none;color:#b79977;margin-left:auto}.editor-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#17213a66;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px}.level-selector{width:820px;max-width:100%;max-height:85dvh;border-radius:20px;background:#fff;padding:24px;overflow:auto;box-shadow:0 25px 80px #10214330}.level-selector header{display:flex;justify-content:space-between;align-items:center}.level-selector header span{font-size:11px;color:#8795ad}.level-selector h2{margin:5px 0 20px;font-size:21px}.level-selector header button,.help-close{border:0;background:transparent;color:#96a3b8}.selector-levels{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:20px}.selector-levels button{padding:10px 5px;border:1px solid #e0e7f3;border-radius:9px;background:#f5f8fe;color:#7c8ca5;font:600 12px DM Sans,sans-serif}.selector-levels button.active{background:#5168f4;color:#fff;border-color:#5168f4}.selector-units{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.selector-units button{display:flex;align-items:center;border:1px solid #e5ebf4;background:#fff;padding:12px;gap:10px;border-radius:9px;text-align:left}.selector-units button.active{border-color:#abb6fb;background:#f2f4ff}.selector-units button>span{font:600 12px DM Sans,sans-serif;color:#9aa8be}.selector-units strong{font-size:11px;color:#5e6d89;font-weight:500}.selector-units small{margin-left:auto;color:#9eabc1;font:500 10px DM Sans,sans-serif}.selector-units button.mastered{border-color:#b8d4b9;background:#edf6ec}.selector-units button.mastered small{color:#5a8664}.editor-help{position:relative;background:#fff;width:440px;max-width:100%;padding:30px;border-radius:20px;color:#697892;box-shadow:0 25px 80px #10214330}.editor-help>svg{color:#5168f4}.editor-help h2{color:#344664;font-size:21px}.editor-help ol{padding-left:22px;font-size:12px;line-height:1.9}.editor-help li{padding-left:5px;margin:10px 0}.editor-help p{font-size:11px;line-height:1.8;padding:12px;background:#f3f6fc;border-radius:9px}.editor-help>.editor-control{margin:5px 8px 0 0}.help-close{position:absolute;right:18px;top:18px}.result-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#15252e70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);isolation:isolate}.result-modal-backdrop .scene-result{position:relative;top:auto;left:auto;transform:none;width:500px;max-width:100%;max-height:calc(100dvh - 48px);overflow-y:auto;padding:30px 36px 26px;border-radius:26px;background:#fff;color:#344e53;box-shadow:0 28px 100px #102a3a38,0 4px 16px #102a3a14}.result-modal-backdrop .result-symbol{display:grid;width:56px;height:56px;margin:0 auto;border-radius:18px}.result-modal-backdrop .scene-result h2{margin:14px 0 0;font-size:28px;line-height:1.3;color:#344e53}.result-modal-backdrop .result-rating{margin:14px 0 6px;gap:12px}.result-modal-backdrop .result-score{font-size:14px;line-height:22px}.result-modal-backdrop .scene-result>p{margin:10px 0 0;font-size:12px;line-height:1.6;color:#7b8d92}.result-modal-backdrop .efficiency-badges{margin:18px 0 0;gap:9px}.result-modal-backdrop .efficiency-badges>span{min-height:43px;padding:11px 12px;gap:9px;border-radius:9px;font-size:13px}.result-modal-backdrop .efficiency-badges small{font-size:12px}.result-modal-backdrop .scene-result .result-best{margin:14px 0 0;font-size:11px;line-height:18px}.result-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.result-modal-actions .editor-control,.result-modal-actions .text-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;margin:0;border-radius:10px;font-size:14px;cursor:pointer}.result-modal-actions .text-action{color:#657a81;background:#f0f4f5}.result-modal-actions .text-action:hover{background:#e6edef}.result-modal-close{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:10px;color:#8a9ba0;background:transparent;cursor:pointer}.result-modal-close:hover{background:#f0f4f5;color:#4f6b72}.result-modal-backdrop button:focus-visible{outline:3px solid #7b91ed;outline-offset:3px}@media(max-width:600px){.result-modal-backdrop{padding:16px}.result-modal-backdrop .scene-result{padding:26px 22px 22px;max-height:calc(100dvh - 32px);border-radius:22px}.result-modal-backdrop .scene-result h2{font-size:25px}.result-modal-backdrop .efficiency-badges>span{padding:10px;font-size:12px}.result-modal-backdrop .efficiency-badges small{font-size:10px}.result-modal-actions{gap:9px}.result-modal-actions .editor-control,.result-modal-actions .text-action{font-size:13px}}.editor-toast{position:fixed;bottom:55px;left:50%;transform:translate(-50%);z-index:70;background:#2c3953ed;color:#fff;border-radius:10px;padding:13px 20px;font-size:12px;max-width:90%;box-shadow:0 6px 20px #17213a22}.editor-loading{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f7f9fe;color:#64718e}.editor-loading h1{font-size:20px}.editor-loading p{font-size:12px;color:#a0adc4}@media(min-width:1800px){.editor-topbar{height:72px;min-height:72px}.editor-course>strong{font-size:16px}.editor-targets{font-size:14px}.scene-mission{top:35px;left:35px}.scene-mission h1{font-size:27px}.scene-mission p{font-size:14px}.scene-tools{top:35px}.scene-tools button{width:42px;height:42px}.question-strip{height:60px}.question-strip button{width:34px;height:34px;font-size:14px}.scene-stats{bottom:80px;height:76px}.scene-canvas-wrap{top:125px;right:15px;bottom:160px;left:15px}.workspace-topbar{height:49px;min-height:49px}.workspace-topbar>span{font-size:14px}.blocklyTreeLabel{font-size:13px!important}}@media(max-width:1100px){.editor-targets{gap:10px;margin-left:0}.editor-topbar{gap:10px}.editor-main-actions .secondary span{display:none}.editor-control{padding:10px}.question-strip{gap:4px}.question-strip button{width:25px;height:27px}.question-strip>span{display:none}.scene-stats{left:12px;right:12px}.editor-course{min-width:98px}}@media(max-width:800px){.editor-targets{display:none}.editor-split{grid-template-columns:43% 57%}.scene-mission{left:14px;top:18px}.scene-mission h1{font-size:17px}.scene-mission p{display:none}.scene-tools{right:8px;top:75px;gap:5px}.scene-tools button{width:28px;height:28px;border-radius:8px}.scene-stats>div{grid-template-columns:1fr;text-align:center}.scene-stats svg{display:none}.scene-canvas-wrap{top:65px;right:0;bottom:120px;left:0}.question-strip{gap:3px}.question-strip button{width:21px;height:25px;font-size:10px}.workspace-topbar small{display:none}.workspace-bottom{gap:8px}.workspace-bottom button{font-size:10px}.execution-label{display:none}.selector-units{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.puzzle-editor{height:100dvh;min-height:640px}.editor-topbar{height:54px;min-height:54px;padding:0 8px;gap:8px}.editor-course{min-width:auto}.editor-course>strong{font-size:11px}.editor-course>span{font-size:9px}.editor-question-label{font-size:10px;padding-left:8px}.editor-main-actions{gap:4px}.editor-main-actions .secondary{display:none}.editor-control{font-size:10px;padding:8px;border-radius:7px}.editor-control svg{width:14px}.editor-split{display:flex;flex-direction:column}.game-pane{height:37%;min-height:240px;border-right:0;border-bottom:1px solid #d6dce8}.program-pane{flex:1}.scene-mission{top:10px;left:12px}.scene-mission h1{font-size:14px;margin-top:5px}.mission-overline{font-size:8px}.scene-tools{top:10px;right:9px;flex-direction:row;gap:4px}.scene-tools button{width:25px;height:25px}.scene-tools svg{width:14px}.scene-tools button:nth-child(3),.scene-tools button:nth-child(4){display:none}.scene-stats{left:10px;right:10px;bottom:41px;height:38px;border-radius:8px}.scene-stats>div{display:flex;gap:6px;align-items:center}.scene-stats span{font-size:8px;margin:0}.scene-stats strong{font-size:13px}.scene-stats small{font-size:10px}.scene-canvas-wrap{top:40px;right:0;bottom:72px;left:0}.question-strip{height:33px;gap:8px}.question-strip button{height:23px;width:23px;border-radius:5px}.workspace-topbar{height:34px;min-height:34px;padding:0 9px}.workspace-topbar>span{font-size:11px}.workspace-topbar button{padding:5px}.workspace-bottom{height:34px;min-height:34px}.blocklyTreeRow{padding:8px 6px!important}.blocklyTreeLabel{font-size:10px!important}.scene-result{padding:15px;width:280px}.scene-result h2{font-size:18px;margin:7px 0}.result-symbol{display:none}.scene-result p{font-size:10px}.efficiency-badges{margin:9px 0}.text-action{display:inline-block;margin-left:10px}.scene-feedback{bottom:84px;padding:9px;left:10px;right:10px}.scene-feedback p{font-size:9px}.scene-feedback strong{font-size:10px}.level-selector{padding:18px}.level-selector h2{font-size:18px}.selector-levels{gap:5px}.selector-levels button{font-size:10px}.selector-units button{padding:8px;gap:6px}.selector-units strong{font-size:10px}.editor-help{padding:24px}}.program-pane{--wb-ink: #34435f;--wb-muted: #8491a8;--wb-line: #e4eaf3;--wb-accent: #5168e8;background:#f8fafc}.program-pane .workspace-topbar{min-height:76px;height:76px;padding:0 24px;border-bottom:1px solid var(--wb-line);gap:16px}.program-pane .workspace-title{gap:12px;min-width:0;color:var(--wb-ink)}.workspace-title-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:var(--wb-accent);background:#edf0ff;flex-shrink:0}.workspace-heading{font-size:15px;font-weight:700;white-space:nowrap}.workspace-heading em{display:block;font-size:10px;line-height:1.6;font-style:normal;font-weight:400;color:var(--wb-muted);margin-top:3px}.program-pane .workspace-block-count{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;margin-left:4px;border:1px solid #e6ebf4;border-radius:7px;background:#f8faff;color:#72819c;font-size:10px;white-space:nowrap}.program-pane .workspace-tools{flex-shrink:0;gap:6px}.program-pane .workspace-topbar button{width:auto;height:34px;padding:0 10px;gap:6px;font-size:11px;font-weight:550;color:#6e7b94;border:1px solid transparent}.program-pane .workspace-topbar button:hover{color:var(--wb-accent);background:#f0f3ff}.program-pane .workspace-topbar .hide-palette{width:34px;padding:0;border-color:var(--wb-line);margin-right:6px}.program-pane .workspace-topbar .hide-palette.active{color:var(--wb-accent);background:#edf1ff;border-color:#dce3fc}.program-pane .workspace-topbar .workspace-clear:hover{color:#bf6863;background:#fff1ef}.program-pane button:focus-visible{outline:2px solid #667ded;outline-offset:3px}.program-pane .blocklyToolbox{padding:20px 12px;border-right:1px solid var(--wb-line);box-shadow:3px 0 14px #34435f03}.program-pane .blocklyToolbox:before{content:"积木分类";display:block;padding:0 12px 16px;font-size:10px;font-weight:600;letter-spacing:.1em;color:#98a4b8}.program-pane .blocklyToolboxCategoryContainer{margin:0 0 8px;outline:none}.program-pane .workbench-category{--category-color: #65748d;--category-icon: none;display:flex;align-items:center;min-width:112px;height:48px;padding:0 12px!important;border:1px solid transparent!important;border-radius:11px;background:transparent!important;transition:background-color .15s,border-color .15s}.program-pane .category-event{--category-color: #ae6417;--category-icon: url(/workbench-icons/event.svg)}.program-pane .category-motion{--category-color: #4d6ece;--category-icon: url(/workbench-icons/motion.svg)}.program-pane .category-control{--category-color: #a96321;--category-icon: url(/workbench-icons/control.svg)}.program-pane .category-sensing{--category-color: #237c83;--category-icon: url(/workbench-icons/sensing.svg)}.program-pane .category-math{--category-color: #357d63;--category-icon: url(/workbench-icons/math.svg)}.program-pane .category-variable{--category-color: #ab602e;--category-icon: url(/workbench-icons/variable.svg)}.program-pane .category-vehicle{--category-color: #8062b9;--category-icon: url(/workbench-icons/vehicle.svg)}.program-pane .category-function{--category-color: #aa527a;--category-icon: url(/workbench-icons/function.svg)}.program-pane .workbench-category:hover{background:color-mix(in srgb,var(--category-color) 5%,white)!important}.program-pane .workbench-category.blocklyToolboxSelected{background:color-mix(in srgb,var(--category-color) 9%,white)!important;border-color:color-mix(in srgb,var(--category-color) 19%,white)!important}.program-pane .blocklyTreeRowContentContainer{display:flex;align-items:center;gap:10px;width:100%}.program-pane .workbench-category-icon{display:block!important;visibility:visible!important;width:26px;height:26px;margin:0;border-radius:7px;flex-shrink:0;background:var(--category-icon) center/17px 17px no-repeat,color-mix(in srgb,var(--category-color) 8%,white)}.program-pane .workbench-category-label{font-family:Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;font-size:12px;font-weight:550;line-height:1.5;letter-spacing:.02em;color:#66738c}.program-pane .blocklyToolboxSelected .workbench-category-label{color:var(--category-color);font-weight:700}.program-pane .blocklyToolboxCategoryContainer.blocklyActiveFocus:focus-visible .workbench-category{outline:2px solid #667ded;outline-offset:2px}.program-pane .blocklyFlyoutBackground{stroke:#e4eaf3;stroke-width:1px}.program-pane .blocklyFlyoutLabelText{fill:#8291a8!important;font-size:11px!important;font-weight:600!important;letter-spacing:.06em}.program-pane .blocklyBlock>.blocklyLabelField>.blocklyText{fill:#fff}.program-pane .blocklyDraggable:not(.blocklyShadow):not(.blocklyDisabled):not(.blocklyInsertionMarker):not(.blocklyReplaceable):not(.blocklyHighlighted)>.blocklyPath:not(.blocklyPathSelected){stroke-width:.8px;stroke-linejoin:round;filter:drop-shadow(0 1px 0 #24385e1a) drop-shadow(0 3px 3px #24385e14)}.program-pane .math_number.blocklyShadow>.blocklyPath{fill:#f8fbff;stroke:#d5dff3;stroke-width:1px}.program-pane .blocklyBlock>.blocklyInputField>.blocklyText{fill:#344766;font-weight:600}.program-pane .blocklyBlock>.blocklyEditableField>rect:not(.blocklyDropdownRect){stroke:#d5dff3;stroke-width:1px}.program-pane .blocklyMainBackground{stroke:none}.program-pane .is-block-dragging .blocklyDraggable:not(.blocklyShadow):not(.blocklyDisabled):not(.blocklyInsertionMarker):not(.blocklyReplaceable):not(.blocklyHighlighted)>.blocklyPath:not(.blocklyPathSelected){filter:none}.program-pane .is-block-dragging .blocklyBlock{transition:none}.program-pane .blocklyScrollbarBackground{opacity:0}.program-pane .blocklyScrollbarHandle{rx:4px}.program-pane .blocklyTrash{opacity:.36;transition:opacity .15s}.program-pane .blocklyTrash:hover{opacity:.8}.program-pane .workspace-bottom{min-height:58px;height:58px;padding:0 20px;gap:14px;background:#fff;border-top:1px solid var(--wb-line)}.workspace-debug-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.program-pane .workspace-bottom button{min-height:32px;padding:0 9px;font-size:11px;font-weight:550;color:#75839b;border-radius:8px}.program-pane .workspace-bottom .workspace-step{color:#596dd0;background:#f0f3ff;padding:0 12px}.program-pane .workspace-bottom .workspace-step:hover{background:#e8edff}.program-pane .workspace-bottom button.active{color:var(--wb-accent);background:#f0f3ff}.program-pane .execution-label{display:inline-flex;align-items:center;gap:6px;font-size:10px;margin-left:auto;color:#8d9bb0;white-space:nowrap}.program-pane .execution-label:before{content:"";display:block;width:5px;height:5px;border-radius:50%;background:#91b9a3}.program-pane .execution-label.running{color:#596dd0}.program-pane .execution-label.running:before{background:#667ae4}.program-pane .execution-label.error:before{background:#d27567}.workspace-zoom{display:flex;align-items:center;gap:1px;border:1px solid var(--wb-line);background:#fcfdff;border-radius:9px;flex-shrink:0;padding:2px}.program-pane .workspace-zoom button{width:30px;height:30px;min-height:30px;padding:0}.workspace-zoom output{width:44px;text-align:center;color:#72819b;font:600 10px DM Sans,sans-serif}.zoom-divider{width:1px;height:14px;background:var(--wb-line);margin:0 3px}.program-pane .console-panel{padding:16px 22px;background:#f5f7fc;border-color:var(--wb-line);color:#61718c}@media(min-width:1800px){.program-pane .workspace-topbar{min-height:84px;height:84px;padding:0 28px}.workspace-heading{font-size:17px}.workspace-heading em,.program-pane .workspace-block-count{font-size:11px}.program-pane .workspace-topbar button{font-size:12px;height:36px}.program-pane .workbench-category{min-width:120px;height:52px}.program-pane .workbench-category-label{font-size:13px}.program-pane .workspace-bottom{height:64px;min-height:64px;padding:0 26px}}@media(max-width:1200px){.program-pane .workspace-topbar{padding:0 16px;gap:8px}.program-pane .workspace-tools{gap:2px}.program-pane .workspace-tools button span{display:none}.program-pane .workspace-tools button{width:32px;padding:0}.program-pane .workspace-block-count{display:none}.program-pane .blocklyToolbox{padding:18px 8px}.program-pane .workbench-category{min-width:88px;padding:0 8px!important}.program-pane .workspace-bottom{padding:0 10px;gap:8px}.workspace-debug-actions{gap:3px}.program-pane .execution-label{display:none}.workspace-zoom{margin-left:auto}}@media(max-width:800px){.program-pane .workspace-topbar{min-height:66px;height:66px;padding:0 12px}.workspace-title-icon{width:30px;height:30px;border-radius:9px}.program-pane .workspace-title{gap:8px}.workspace-heading{font-size:13px}.workspace-heading em{display:none}.program-pane .blocklyToolbox:before{display:none}.program-pane .blocklyToolbox{padding:12px 7px}.program-pane .workbench-category{min-width:58px;height:56px;padding:6px!important}.program-pane .blocklyTreeRowContentContainer{flex-direction:column;gap:3px}.program-pane .workbench-category-label{font-size:10px}.program-pane .workbench-category-icon{width:22px;height:22px;background-size:16px 16px}.program-pane .workspace-bottom{height:48px;min-height:48px;padding:0 8px}.program-pane .workspace-bottom .workspace-step{padding:0 8px}.workspace-zoom output{width:37px}.program-pane .workspace-zoom button{width:28px}}@media(max-width:600px){.program-pane .workspace-topbar{height:52px;min-height:52px}.program-pane .workspace-tools .hide-palette{margin-right:2px}.program-pane .workspace-title-icon{display:none}.program-pane .blocklyToolbox{padding:10px 6px}.program-pane .blocklyToolboxCategoryContainer{margin-bottom:4px}.program-pane .workbench-category{min-width:48px;height:44px;padding:4px!important;border-radius:8px}.program-pane .workbench-category-icon{width:18px;height:18px;background-size:14px 14px}.program-pane .workbench-category-label{font-size:9px}.program-pane .workspace-bottom{height:46px;min-height:46px;padding:0 7px;gap:4px}.program-pane .workspace-bottom button{font-size:10px;gap:4px;padding:0 5px}.program-pane .workspace-bottom .workspace-step{padding:0 6px}.program-pane .workspace-zoom button{width:25px;height:28px;min-height:28px}.workspace-zoom output{width:35px;font-size:9px}.zoom-divider{margin:0 2px}}@media(prefers-reduced-motion:reduce){.program-pane .workbench-category,.program-pane .blocklyTrash{transition:none}}.auth-page{min-height:100dvh;padding:32px max(24px,calc((100vw - 1200px)/2));color:var(--ink)}.auth-brand{display:flex;gap:12px;align-items:center}.auth-brand>span:last-child{display:flex;flex-direction:column;gap:4px}.auth-brand strong{font-size:17px}.auth-brand small{font:700 10px DM Sans,sans-serif;letter-spacing:.12em;color:var(--muted)}.auth-shell{display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:70px;align-items:center;padding:65px 0 30px}.auth-intro{position:relative;min-width:0}.auth-eyebrow{display:flex;align-items:center;gap:7px;font-size:12px;color:#667ce0;font-weight:600}.auth-intro h1{font-size:clamp(32px,3.4vw,46px);line-height:1.5;letter-spacing:-.03em;margin:20px 0 14px}.auth-intro h1 span{color:var(--primary)}.auth-intro>p{font-size:14px;line-height:1.9;color:var(--muted);margin:0}.auth-intro>img{width:min(430px,100%);height:265px;object-fit:contain;display:block;margin:12px 0 0}.auth-feature-row{display:flex;flex-wrap:wrap;gap:10px 23px;font-size:11px;color:#66758b}.auth-feature-row span{display:inline-flex;align-items:center;gap:5px}.auth-feature-row svg{color:#6caa93}.auth-card{background:#fff;border:1px solid #e1e8f4;box-shadow:0 18px 60px #617eb411;border-radius:24px;padding:34px}.auth-card-icon{display:grid;place-items:center;width:50px;height:50px;background:#fff5e8;border-radius:15px}.auth-card-icon .logo-mark{width:42px;height:42px}.auth-card h2{font-size:26px;margin:18px 0 7px}.auth-card-subtitle{color:var(--muted);font-size:13px;margin:0 0 28px}.auth-card form>label{display:block;font-size:12px;font-weight:600;color:#495975;margin:20px 0 9px}.auth-input-wrap{display:flex;align-items:center;gap:10px;padding:0 13px;height:48px;border:1px solid #dce4f1;border-radius:11px;color:#8491ab;background:#fcfdff}.auth-input-wrap:focus-within{border-color:#7988eb;box-shadow:0 0 0 3px #5168f412}.auth-input-wrap input{width:100%;min-width:0;border:none;background:transparent;outline:none;font:inherit;font-size:13px;color:var(--ink)}.auth-input-wrap input::placeholder{color:#a0abc0}.auth-input-wrap>svg{flex-shrink:0}.auth-password-toggle{border:0;background:transparent;color:#8996ac;padding:4px;cursor:pointer;display:grid;place-items:center}.auth-submit{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;width:100%;min-height:47px;border-radius:11px;background:var(--primary);color:#fff;font-size:13px;font-weight:650;margin-top:26px;box-shadow:0 5px 13px #5168f422;cursor:pointer}.auth-submit:hover:not(:disabled){background:#4259df}.auth-submit:disabled{opacity:.65;cursor:wait}.auth-form-error{color:#b85050!important;background:#fff3f1;border:1px solid #f6dedb;border-radius:9px;padding:10px 12px;font-size:12px!important;line-height:1.6;overflow-wrap:anywhere}.auth-account-note{color:#8b98b0;font-size:11px;line-height:1.9;text-align:center;margin:22px 0}.auth-security-note{border-top:1px solid #edf1f8;padding-top:18px;display:flex;gap:6px;align-items:center;justify-content:center;font-size:10px;color:#8a9bb0}.auth-footer{font-size:11px;text-align:center;color:#94a2ba;padding:16px 0}.auth-state-screen{min-height:100dvh;padding:28px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:16px;color:#6e80a1}.auth-state-screen h1{font-size:21px;margin:0;color:var(--ink)}.auth-state-screen p{margin:0;max-width:400px;line-height:1.8;font-size:13px}.auth-state-screen .logo-mark{margin-bottom:12px}.auth-state-screen .auth-submit{width:auto;padding:0 24px;margin-top:4px}.auth-spinner{animation:auth-spin 1s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.account-menu{position:relative;flex-shrink:0}.account-trigger{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:#607090;padding:2px;cursor:pointer}.account-avatar{width:34px;height:34px;background:#eef1ff;color:#6375cb;border:1px solid #e1e6f8;border-radius:10px;display:grid;place-items:center;font:700 13px DM Sans,sans-serif}.account-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.account-popover{position:absolute;right:0;top:calc(100% + 13px);width:250px;border:1px solid #e0e7f2;border-radius:14px;padding:18px;background:#fff;box-shadow:0 15px 45px #34436120;z-index:50;text-align:left}.account-popover>strong,.account-popover>small{display:block;overflow-wrap:anywhere}.account-popover>strong{font-size:14px;color:#344361}.account-popover>small{font-size:11px;margin-top:4px;color:#8b99ad}.account-popover>p{font-size:11px;line-height:1.7;color:#8091a9;margin:14px 0}.account-popover>button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;border:0;border-radius:8px;background:#fff2f0;color:#bb6863;padding:9px;font-size:12px;cursor:pointer}.learning-data-error{padding:14px 18px;margin:15px auto;max-width:1240px;background:#fff3f1;border-radius:12px;color:#a95550;font-size:13px}.learning-data-error button{margin-left:12px;cursor:pointer}@media(max-width:1050px){.auth-shell{gap:35px;grid-template-columns:minmax(0,1fr) 380px;padding-top:45px}.auth-card{padding:28px}.auth-intro>img{height:220px}}@media(max-width:760px){.auth-page{padding:24px 20px}.auth-shell{grid-template-columns:1fr;gap:30px;max-width:420px;margin:auto;padding:35px 0 15px}.auth-intro h1{font-size:30px;margin:12px 0}.auth-intro>img,.auth-feature-row,.auth-desktop-break{display:none}.auth-intro>p{font-size:12px}.auth-eyebrow{font-size:10px}.auth-card{padding:26px;border-radius:20px}.auth-card h2{font-size:23px}.account-name,.account-trigger>svg{display:none}.account-popover{width:230px}}@media(max-width:600px){.editor-topbar .account-avatar{width:27px;height:29px;border-radius:8px;font-size:11px}.editor-topbar .account-trigger{padding:0}.editor-topbar .editor-main-actions{gap:4px}.editor-topbar .editor-main-actions .editor-control{padding-left:6px;padding-right:6px}.auth-input-wrap{height:46px}}@media(max-width:600px){.puzzle-editor .account-popover{position:fixed;right:8px;top:56px;max-width:calc(100vw - 16px)}}@media(max-width:380px){.puzzle-editor .editor-topbar{gap:3px}}@media(prefers-reduced-motion:reduce){.auth-spinner{animation:none}}.character-launch{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 12px;border:1px solid #dde8e2;border-radius:10px;background:#f3f7f3;color:#557b70;font-family:inherit;font-size:12px;font-weight:600;line-height:1.3;cursor:pointer;white-space:nowrap}.character-launch:hover{background:#e8f0e8}.character-launch:disabled{opacity:.4;cursor:not-allowed}.character-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:flex;align-items:center;justify-content:center;padding:24px;background:#172c3475;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);isolation:isolate}.character-dialog{position:relative;width:1000px;min-width:0;max-width:100%;max-height:calc(100dvh - 48px);overflow-y:auto;padding:32px;border:1px solid #fff;border-radius:26px;background:#fcfdf9;color:#304d50;box-shadow:0 30px 100px #122d3a38}.character-close{position:absolute;right:19px;top:19px;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:10px;background:#eaf0eb;color:#6c8381;cursor:pointer}.character-overline{display:inline-flex;gap:7px;align-items:center;font:700 10px/1.3 DM Sans,sans-serif;letter-spacing:.13em;color:#7f978c}.character-heading h2{margin:10px 0;font-size:25px;letter-spacing:.03em}.character-heading p{margin:0;font-size:12px;line-height:1.8;color:#7a8e89;padding-right:18px}.character-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:25px 0}.character-card{position:relative;display:flex;flex-direction:column;align-items:stretch;text-align:left;min-width:0;padding:8px 8px 16px;border:2px solid #e6ece5;border-radius:16px;background:#fff;color:#385554;cursor:pointer;transition:border-color .15s,transform .15s}.character-card:hover{border-color:#a2b6a9;transform:translateY(-2px)}.character-card.selected{border-color:var(--skin-ink);box-shadow:0 5px 18px #405a4f0c}.character-portrait{position:relative;display:grid;place-items:center;height:206px;border-radius:10px;background:radial-gradient(ellipse at 50% 65%,#fff9,var(--skin-soft));overflow:hidden}.character-portrait img{display:block;width:100%;height:195px;object-fit:contain;margin-top:16px;filter:drop-shadow(0 8px 6px #52665316)}.character-tag{position:absolute;top:9px;left:9px;z-index:1;color:var(--skin-ink);font-size:9px;font-weight:600;letter-spacing:.04em}.character-check{position:absolute;bottom:9px;right:9px;width:21px;height:21px;display:grid;place-items:center;border:1px solid #c9d7d1;border-radius:50%;background:#fff9;color:#fff}.selected .character-check{background:var(--skin-ink);border-color:var(--skin-ink)}.character-card>strong{font-size:14px;margin:13px 5px 6px}.character-card>p{margin:0 5px;color:#83948e;font-size:10px;line-height:1.7}.character-card>small{margin:9px 5px 0;color:var(--skin-ink);font-size:9px;font-weight:600}.character-footer{display:flex;gap:20px;align-items:center;justify-content:space-between;padding-top:20px;border-top:1px solid #e6ece5}.character-footer>div{display:grid;gap:6px}.character-footer strong{font-size:12px}.character-footer small{font-size:10px;color:#8a9d95}.character-confirm{display:inline-flex;gap:15px;align-items:center;justify-content:center;min-height:43px;padding:11px 20px;border:1px solid #315f58;border-radius:11px;background:#426f65;color:#fff;font-size:12px;font-weight:600;cursor:pointer;box-shadow:0 3px #30534c}.character-confirm:hover{background:#355d55}.character-credit{margin:18px 0 0;color:#a1aca5;font-size:9px;line-height:1.7}.character-backdrop button:focus-visible,.character-launch:focus-visible{outline:3px solid #8fb8af;outline-offset:3px}@media(max-width:1100px){.editor-main-actions .character-launch span{display:none}}@media(max-width:900px){.character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.app-header .character-launch{padding:8px}.app-header .character-launch span{display:none}.character-backdrop{padding:16px}.character-dialog{padding:25px 20px 22px;max-height:calc(100dvh - 32px);border-radius:22px}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.character-portrait{height:160px}.character-portrait img{height:155px}.character-heading h2{font-size:22px}.character-heading p{font-size:11px}.character-footer{gap:10px}.character-confirm{padding:10px 12px;gap:8px;white-space:nowrap}}@media(prefers-reduced-motion:reduce){.character-card{transition:none}}.progress-storage{padding:24px;margin:24px 0;border:1px solid #dce7df;border-radius:18px;background:#fffefa;color:#3a5955}.progress-storage-heading{display:flex;align-items:flex-start;gap:12px}.progress-storage-heading>svg{flex-shrink:0;margin-top:2px;color:#6b9080}.progress-storage h2{margin:0 0 7px;font-size:17px}.progress-storage p{margin:0;color:#7a8d87;font-size:12px;line-height:1.9;overflow-wrap:anywhere}.progress-storage-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.progress-storage button{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:8px 14px;border:1px solid #d8e5dc;border-radius:9px;background:#eff5ef;color:#426f65;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer}.progress-storage button:focus-visible{outline:2px solid #d99140;outline-offset:3px}.progress-storage button:disabled{opacity:.6;cursor:wait}.progress-import-preview{display:flex;gap:10px;padding:17px;margin-top:18px;background:#f2f7ee;border-radius:12px;border:1px solid #dce8d5}.progress-import-preview>svg{flex-shrink:0;color:#73936a}.progress-import-preview strong{font-size:13px}.progress-import-preview p{margin:6px 0 12px}.progress-import-preview button:first-child{color:#fff;background:#426f65;border-color:#426f65;margin-right:8px}.progress-storage .progress-storage-success,.progress-storage .progress-storage-error{margin-top:16px;padding:12px 14px;border-radius:9px}.progress-storage .progress-storage-success{color:#3c765a;background:#edf6ed}.progress-storage .progress-storage-error{color:#a66552;background:#fff2ec}@media(max-width:600px){.progress-storage{padding:18px}.progress-storage h2{font-size:15px}.progress-storage p{font-size:11px}.progress-import-preview{padding:12px}.progress-import-preview>svg{display:none}}:root{font-family:Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;color:#17213a;background:#f4f8ff;font-synthesis:none;--ink: #17213a;--muted: #65718b;--line: #dfe8f5;--primary: #5168f4;--accent: #ff7449;--accent-soft: #fff0e9;--accent-deep: #c84b23;--glow: #ffd89c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 10% 8%,rgba(145,215,255,.45),transparent 27%),radial-gradient(circle at 86% 20%,rgba(172,164,255,.28),transparent 24%),linear-gradient(180deg,#edf7ff,#f7f9ff 48%,#f4f8ff);-webkit-font-smoothing:antialiased}button{font:inherit}button:focus-visible{outline:3px solid rgba(81,104,244,.35);outline-offset:3px}.app{min-height:100vh}.tone-orange{--accent: #ff7449;--accent-soft: #fff0e9;--accent-deep: #c84b23;--glow: #ffd89c}.tone-amber{--accent: #f4a51c;--accent-soft: #fff6df;--accent-deep: #a86100;--glow: #ffe3a3}.tone-teal{--accent: #16b9ad;--accent-soft: #e3fbf7;--accent-deep: #08786f;--glow: #a9eee2}.tone-green{--accent: #4cae5f;--accent-soft: #eaf8e8;--accent-deep: #28783a;--glow: #b8e7b2}.tone-violet{--accent: #8d66ed;--accent-soft: #f1ebff;--accent-deep: #6042bb;--glow: #d8c8ff}.tone-blue{--accent: #4b81f1;--accent-soft: #e9f1ff;--accent-deep: #2756b9;--glow: #b9d2ff}.app-header{position:sticky;top:0;z-index:30;height:76px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;justify-content:space-between;background:#ffffffe0;border-bottom:1px solid rgba(210,224,241,.86);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:11px;color:var(--ink);cursor:pointer}.logo-mark{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;color:#fff;background:transparent;box-shadow:none;flex-shrink:0}.logo-mark img{display:block;width:100%;height:100%;object-fit:contain}.brand>span:last-child{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1}.brand strong{font-size:17px;letter-spacing:.02em}.brand small{margin-top:4px;color:#7a87a2;font:700 10px/1 DM Sans,sans-serif;letter-spacing:.14em;text-transform:uppercase}.nav-links{display:flex;align-items:center;gap:8px}.nav-links button{border:0;border-radius:12px;background:transparent;color:#596681;padding:10px 14px;display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;cursor:pointer}.nav-links button:hover,.nav-links button.active{background:#eef2ff;color:#4054d6}.header-actions{display:flex;align-items:center;gap:12px}.star-chip{height:36px;padding:0 13px;border-radius:18px;display:flex;align-items:center;gap:7px;color:#df8c04;background:#fff7d9}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#1d2c50;color:#fff;font:800 12px/1 DM Sans,sans-serif}.menu-button{display:none;border:0;background:transparent;color:var(--ink);padding:7px}.page-shell,.progress-page{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:42px 0 54px}.hero-card{position:relative;min-height:354px;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;border:1px solid rgba(255,255,255,.9);border-radius:30px;background:linear-gradient(125deg,#fffffffa,#ffffffc7);box-shadow:0 24px 60px #3c598c24}.hero-card:before{content:"";position:absolute;width:420px;height:420px;right:-70px;top:-120px;border-radius:50%;background:radial-gradient(circle,var(--glow) 0%,transparent 68%);opacity:.8}.hero-copy{position:relative;z-index:2;padding:42px 24px 92px 52px}.eyebrow,.section-kicker,.mission-label{display:inline-flex;align-items:center;gap:7px;color:var(--accent-deep);font-size:13px;font-weight:700;letter-spacing:.04em}.hero-copy h1{margin:14px 0 0;font:800 clamp(42px,5vw,68px)/1 "DM Sans",sans-serif;letter-spacing:-.045em;color:var(--accent-deep)}.hero-copy h1 span{margin-left:18px;font-family:Noto Sans SC,sans-serif;font-size:.45em;letter-spacing:0;color:var(--ink)}.hero-subtitle{margin:14px 0 0;font-size:21px;font-weight:800;color:var(--ink)}.hero-description{max-width:600px;margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.9}.hero-stats{display:flex;gap:12px;margin-top:24px}.hero-stats div{min-width:104px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent) 18%,white);border-radius:14px;background:var(--accent-soft)}.hero-stats strong{display:block;color:var(--accent-deep);font:800 20px/1.1 DM Sans,sans-serif}.hero-stats span{display:block;margin-top:5px;color:#6e7890;font-size:11px}.hero-visual{position:relative;min-height:290px;display:grid;place-items:center;overflow:hidden}.hero-visual:after{content:"";position:absolute;inset:auto 10% 28px;height:28px;border-radius:50%;background:#1e2b4c2b;filter:blur(14px)}.hero-visual img{position:relative;z-index:2;width:min(330px,76%);max-height:310px;object-fit:contain;filter:drop-shadow(0 16px 18px rgba(32,51,92,.16))}.orbit{position:absolute;border:1.5px solid color-mix(in srgb,var(--accent) 44%,white);border-radius:50%;transform:rotate(-18deg)}.orbit-one{width:350px;height:170px}.orbit-two{width:270px;height:310px;transform:rotate(30deg);opacity:.45}.level-tabs{position:absolute;left:24px;right:24px;bottom:20px;z-index:4;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:7px;border:1px solid #e8eef7;border-radius:17px;background:#f7f9fdf0;box-shadow:0 8px 24px #42577c1a}.level-tabs button{height:50px;border:0;border-radius:12px;background:transparent;color:#6d7890;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.level-tabs button>span{font:800 19px/1 DM Sans,sans-serif}.level-tabs small{font-size:11px}.level-tabs button:hover{background:#fff}.level-tabs button.active{background:var(--accent);color:#fff;box-shadow:0 7px 16px color-mix(in srgb,var(--accent) 35%,transparent)}.map-card{margin-top:24px;padding:30px 34px 38px;border:1px solid rgba(216,228,243,.9);border-radius:28px;background:#ffffffe8;box-shadow:0 18px 46px #3f56811c}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.section-heading h2{margin:8px 0 0;font-size:25px;letter-spacing:-.025em}.progress-summary{min-width:188px;color:var(--muted);font-size:12px;text-align:right}.progress-summary>span{display:block;margin-bottom:7px;font:800 14px/1 DM Sans,sans-serif}.progress-track{height:8px;overflow:hidden;border-radius:5px;background:#edf1f7}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 65%,#ffdf67))}.topic-row{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 28px;padding-bottom:22px;border-bottom:1px solid #edf1f6}.topic-row span{padding:7px 11px;border-radius:10px;color:var(--accent-deep);background:var(--accent-soft);font-size:12px;font-weight:600}.stage-grid{display:grid;grid-template-columns:repeat(10,minmax(70px,1fr));gap:20px 14px}.stage-node{min-width:0;border:0;background:transparent;padding:0;color:#8b96aa;cursor:pointer;display:flex;flex-direction:column;align-items:center}.stage-disc{width:54px;height:54px;border:1px solid #dbe4ef;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#edf2f8);box-shadow:0 7px 14px #4b5d7e21;color:#4c5c77;font:800 16px/1 DM Sans,sans-serif;transition:transform .18s,box-shadow .18s}.stage-node:hover .stage-disc{transform:translateY(-4px);box-shadow:0 11px 22px #4b5d7e2e;color:var(--accent-deep);border-color:color-mix(in srgb,var(--accent) 42%,white)}.stage-node.completed .stage-disc{color:#fff;background:linear-gradient(145deg,var(--accent),var(--accent-deep));border-color:transparent}.stage-label{margin-top:7px;font-size:11px;font-weight:600}.stage-stars{height:13px;margin-top:3px;display:flex;color:#ffad21}.stage-node:not(.completed) .stage-stars{color:#dce4ef;opacity:.72}.content-note{text-align:center;color:#7a879f;font-size:12px;margin:20px 0 0}.quiz-page{min-height:calc(100vh - 76px);padding:0 max(26px,calc((100vw - 1240px)/2)) 50px}.quiz-topbar{height:78px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}.icon-text-button{width:max-content;border:0;background:transparent;color:#5d6980;display:flex;align-items:center;gap:7px;cursor:pointer;font-weight:600}.icon-text-button:hover{color:var(--accent-deep)}.quiz-title{display:flex;flex-direction:column;align-items:center}.quiz-title span{color:#77839b;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.quiz-title strong{margin-top:4px;font-size:15px}.question-counter{justify-self:end;display:flex;align-items:center;gap:7px;color:var(--accent-deep);font:800 13px/1 DM Sans,sans-serif}.quiz-progress{height:7px;border-radius:6px;overflow:hidden;background:#cad6e7a6}.quiz-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#ffdd64));transition:width .25s ease}.quiz-layout{max-width:1130px;margin:34px auto 0;display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;align-items:start}.mission-card,.question-card{border:1px solid rgba(215,226,241,.94);border-radius:26px;background:#ffffffed;box-shadow:0 20px 50px #4057841f}.mission-card{overflow:hidden;padding:20px}.mission-visual{height:174px;margin:-4px -4px 20px;overflow:hidden;border-radius:20px;background:radial-gradient(circle at 55% 42%,var(--glow),var(--accent-soft) 60%,white 100%);display:grid;place-items:center}.mission-visual img{width:82%;height:90%;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(47,64,101,.15))}.mission-card h2{margin:8px 0 0;font-size:21px}.mission-card>p{margin:9px 0 0;color:var(--muted);font-size:12px;line-height:1.75}.mission-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:20px}.mission-steps span{aspect-ratio:1;display:grid;place-items:center;border-radius:9px;color:#8a95a9;background:#f2f5f9;font:700 11px/1 DM Sans,sans-serif}.mission-steps span.answered{color:var(--accent-deep);background:var(--accent-soft)}.mission-steps span.current{color:#fff;background:var(--accent);box-shadow:0 5px 12px color-mix(in srgb,var(--accent) 35%,transparent)}.question-card{padding:36px 40px 30px}.question-badge{display:inline-flex;padding:6px 10px;border-radius:9px;color:var(--accent-deep);background:var(--accent-soft);font-size:12px;font-weight:800}.question-card h1{margin:15px 0 20px;font-size:clamp(20px,2.4vw,28px);line-height:1.5;letter-spacing:-.02em}.code-panel{margin:0 0 22px;padding:20px 22px;overflow-x:auto;border:1px solid #253453;border-radius:18px;background:#17213a;color:#dce8ff;box-shadow:inset 0 1px #ffffff14}.code-panel code{font:600 14px/1.8 Consolas,SFMono-Regular,monospace;white-space:pre-wrap}.answer-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.answer-list button{min-height:64px;border:1px solid #dce5f1;border-radius:16px;padding:12px 15px;background:#fff;color:#35415b;display:grid;grid-template-columns:32px 1fr auto;gap:11px;align-items:center;text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,background .15s}.answer-list button:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent);background:var(--accent-soft)}.answer-list button.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.answer-list button.correct{border-color:#36a76d;color:#17643d;background:#eaf9f1;box-shadow:none}.answer-list button.wrong{border-color:#e46065;color:#922e38;background:#fff0f1;box-shadow:none}.option-letter{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:#65728a;background:#edf2f8;font:800 12px/1 DM Sans,sans-serif}.answer-list button.correct .option-letter{color:#fff;background:#36a76d}.answer-list button.wrong .option-letter{color:#fff;background:#e46065}.feedback{margin-top:16px;padding:15px 17px;border-radius:16px;display:flex;gap:12px;align-items:flex-start}.feedback.success{color:#17643d;background:#eaf9f1}.feedback.error{color:#8f3240;background:#fff0f2}.feedback p{margin:0;font-size:13px;line-height:1.65}.feedback strong{display:block;margin-bottom:3px;font-size:14px}.question-actions{min-height:50px;margin-top:22px;padding-top:18px;border-top:1px solid #edf1f6;display:flex;align-items:center;justify-content:space-between;gap:16px}.question-actions>span{color:#8a96aa;font-size:12px}.primary-button,.secondary-button{min-height:44px;border-radius:13px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;cursor:pointer}.primary-button{border:0;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-deep));box-shadow:0 8px 18px color-mix(in srgb,var(--accent) 30%,transparent)}.primary-button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.secondary-button{border:1px solid #d9e3ef;color:#4f5c75;background:#fff}.result-page{min-height:calc(100vh - 76px);padding:58px 24px;display:grid;place-items:start center}.result-card{width:min(620px,100%);position:relative;overflow:hidden;padding:46px 52px 44px;text-align:center;border:1px solid rgba(255,255,255,.9);border-radius:30px;background:#fffffff0;box-shadow:0 24px 64px #384f7c29}.result-card:before{content:"";position:absolute;inset:-210px -140px auto;height:330px;background:radial-gradient(circle,var(--glow),transparent 70%)}.result-burst{position:relative;width:84px;height:84px;margin:0 auto 18px;border-radius:28px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--accent),var(--accent-deep));box-shadow:0 13px 30px color-mix(in srgb,var(--accent) 34%,transparent)}.result-kicker{position:relative;color:var(--accent-deep);font-size:12px;font-weight:800;letter-spacing:.06em}.result-card h1{position:relative;margin:10px 0 8px;font-size:31px}.result-card>p{position:relative;margin:0;color:var(--muted)}.result-card>p strong{color:var(--accent-deep)}.result-stars{margin:22px auto 12px;color:#ffae21;display:flex;justify-content:center;gap:4px}.score-ring{width:126px;height:126px;margin:16px auto 26px;padding:10px;border-radius:50%;background:conic-gradient(var(--accent) var(--score),#edf1f7 0)}.score-ring>div{width:100%;height:100%;border-radius:50%;display:grid;place-content:center;background:#fff}.score-ring strong{color:var(--accent-deep);font:800 34px/1 DM Sans,sans-serif}.score-ring span{margin-top:4px;color:var(--muted);font-size:11px}.result-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.progress-page{padding-top:42px}.progress-hero{padding:38px 42px;border:1px solid rgba(255,255,255,.9);border-radius:28px;background:linear-gradient(135deg,#fffffffa,#f1f5ffe6);box-shadow:0 20px 50px #3d53801f}.progress-hero .eyebrow{color:#4b5fd7}.progress-hero h1{margin:10px 0 6px;font-size:32px}.progress-hero>p{margin:0;color:var(--muted)}.summary-cards{margin-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.summary-cards article{padding:18px;border:1px solid #e0e8f4;border-radius:17px;background:#fff;color:#5366dc;display:grid;grid-template-columns:auto 1fr;column-gap:11px;align-items:center}.summary-cards strong{color:var(--ink);font:800 25px/1 DM Sans,sans-serif}.summary-cards span{grid-column:2;color:var(--muted);font-size:11px}.level-progress-list{margin-top:22px;display:grid;gap:12px}.level-progress-row{border:1px solid #dfe8f4;border-radius:19px;padding:16px 20px;background:#fffffff0;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:16px;text-align:left;cursor:pointer;box-shadow:0 9px 22px #3e547e12}.level-progress-row:hover{border-color:var(--accent);transform:translateY(-1px)}.level-letter{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--accent),var(--accent-deep));font:800 20px/1 DM Sans,sans-serif}.level-progress-copy{display:flex;flex-direction:column;min-width:0}.level-progress-copy strong{font-size:15px}.level-progress-copy small{margin-top:3px;color:var(--muted);font-size:11px}.level-progress-copy i{width:min(360px,100%);height:6px;margin-top:10px;overflow:hidden;border-radius:4px;background:#edf1f6}.level-progress-copy b{display:block;height:100%;border-radius:inherit;background:var(--accent)}.level-progress-numbers{display:flex;flex-direction:column;align-items:flex-end}.level-progress-numbers strong{font:800 15px/1 DM Sans,sans-serif}.level-progress-numbers small{margin-top:5px;color:var(--muted);font-size:10px}@media(max-width:1050px){.stage-grid{grid-template-columns:repeat(6,1fr)}.hero-card{grid-template-columns:1fr .78fr}.hero-copy{padding-left:36px}.level-tabs small{display:none}}@media(max-width:760px){.app-header{height:66px;padding:0 16px}.brand strong{font-size:15px}.brand small,.star-chip{display:none}.logo-mark{width:38px;height:38px;border-radius:12px}.menu-button{display:grid}.nav-links{display:none;position:absolute;top:58px;right:16px;width:190px;padding:8px;border:1px solid #dde6f1;border-radius:16px;background:#fff;box-shadow:0 16px 34px #3142642e}.nav-links.is-open{display:grid}.nav-links button{width:100%}.page-shell,.progress-page{width:min(100% - 24px,620px);padding:18px 0 36px}.hero-card{display:block;min-height:0;border-radius:24px}.hero-copy{padding:28px 24px 10px}.hero-copy h1{font-size:44px}.hero-copy h1 span{display:block;margin:9px 0 0;font-size:20px}.hero-subtitle{font-size:18px}.hero-description{font-size:13px}.hero-stats{gap:7px}.hero-stats div{min-width:0;flex:1;padding:9px}.hero-stats strong{font-size:17px}.hero-stats span{font-size:10px}.hero-visual{min-height:218px}.hero-visual img{max-height:220px}.level-tabs{position:relative;inset:auto;margin:0 12px 14px;grid-template-columns:repeat(6,1fr)}.level-tabs button{height:43px}.level-tabs button>span{font-size:16px}.map-card{padding:24px 16px 28px;border-radius:24px}.section-heading{align-items:flex-start}.section-heading h2{font-size:20px}.progress-summary{min-width:110px}.topic-row{margin-bottom:23px}.stage-grid{grid-template-columns:repeat(4,1fr);gap:19px 6px}.stage-disc{width:50px;height:50px;border-radius:16px}.quiz-page{min-height:calc(100vh - 66px);padding:0 12px 32px}.quiz-topbar{height:67px;grid-template-columns:auto 1fr auto}.icon-text-button{font-size:0}.quiz-title strong{font-size:13px}.quiz-title span{font-size:9px}.quiz-layout{margin-top:18px;display:block}.mission-card{margin-bottom:12px;padding:12px 14px;display:grid;grid-template-columns:68px 1fr;column-gap:13px;align-items:center}.mission-visual{grid-row:1 / 4;width:68px;height:76px;margin:0;border-radius:16px}.mission-visual img{width:92%;height:92%}.mission-label,.mission-card h2,.mission-card>p{grid-column:2}.mission-card h2{margin-top:3px;font-size:17px}.mission-card>p{margin-top:2px;font-size:10px}.mission-steps{grid-column:1 / 3;grid-template-columns:repeat(10,1fr);gap:4px;margin-top:12px}.mission-steps span{border-radius:7px;font-size:9px}.question-card{padding:24px 17px 20px;border-radius:23px}.question-card h1{font-size:19px;margin-top:12px}.code-panel{padding:16px;border-radius:15px}.code-panel code{font-size:12px}.answer-list{grid-template-columns:1fr;gap:9px}.answer-list button{min-height:56px}.question-actions{align-items:flex-end}.question-actions>span{max-width:130px}.result-page{min-height:calc(100vh - 66px);padding:24px 12px}.result-card{padding:35px 18px 28px;border-radius:25px}.result-card h1{font-size:25px}.result-actions{display:grid;grid-template-columns:1fr 1fr}.result-actions .primary-button{grid-column:1 / 3}.progress-hero{padding:28px 20px;border-radius:24px}.progress-hero h1{font-size:25px}.summary-cards{grid-template-columns:1fr;gap:9px}.level-progress-row{grid-template-columns:auto 1fr auto;padding:14px;gap:11px}.level-progress-numbers{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}body{background:#edf3f1}.logo-mark{width:48px;height:48px;border-radius:0;background:transparent;box-shadow:none;flex-shrink:0}.logo-mark img{display:block;width:100%;height:100%}.app-header{height:82px;border-color:#dce6e2;background:#ffffffed;padding-inline:max(28px,calc((100vw - 1240px)/2))}.app-header .brand{gap:10px;color:#2d454b}.app-header .brand strong{font-size:18px;letter-spacing:.04em}.app-header .brand small{color:#839892;letter-spacing:.19em}.app-header .nav-links button{color:#6d8383;padding:11px 18px;border-radius:12px;font-size:13px}.app-header .nav-links button:hover,.app-header .nav-links button.active{color:#3f7770;background:#eaf4ef}.app-header .star-chip{background:#fff5dc;color:#aa7828;border:1px solid #f4e8c6}.app-header .account-avatar{color:#507d76;background:#eef5f1;border-color:#ddeae3;border-radius:12px}.app-header .account-trigger{color:#6b8581}.learning-map{--ink: #2c454b;--muted: #748a8c;--accent: var(--chapter-paint);--accent-deep: var(--chapter-ink);--accent-soft: var(--chapter-soft);padding-top:27px}.map-page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;color:#617e76;font-size:12px}.map-page-heading>span{display:flex;align-items:center;gap:9px}.map-page-heading strong{font-weight:600;color:#5f7d79}.map-page-heading>small{font-size:11px;letter-spacing:.03em}.learning-map .hero-card{min-height:0;display:block;border-radius:26px;border:1px solid #ffffff;background:#fffefa;box-shadow:0 14px 36px #405e5010}.learning-map .hero-card:before{display:none}.hero-main{display:grid;grid-template-columns:1.16fr 1fr;min-height:382px;background:linear-gradient(110deg,#fffefa 40%,var(--chapter-soft))}.learning-map .hero-copy{padding:35px 12px 30px 44px}.learning-map .eyebrow{gap:12px;color:#93a29b;font:700 10px/1 DM Sans,sans-serif;letter-spacing:.14em}.chapter-pill{background:var(--chapter-soft);color:var(--chapter-ink);padding:9px 11px;border-radius:7px;letter-spacing:.07em}.learning-map .hero-copy h1{font-family:Microsoft YaHei,system-ui,sans-serif;font-size:clamp(36px,4vw,48px);color:#2d474b;letter-spacing:.04em;margin:17px 0 0;line-height:1.25}.learning-map .hero-subtitle{color:#587474;font-size:18px;font-weight:600;margin-top:10px}.learning-map .hero-description{color:#657e77;max-width:470px;font-size:13px;line-height:1.95;margin-top:12px}.chapter-start{min-height:43px;margin-top:21px;padding:0 18px;border:1px solid #315f58;background:#426f65;color:#fff;border-radius:10px;display:inline-flex;align-items:center;gap:11px;font-size:12px;font-weight:600;box-shadow:0 4px #31574f;cursor:pointer;transition:transform .18s,background .18s}.chapter-start:hover:not(:disabled){background:#355f56;transform:translateY(-1px)}.chapter-start:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #31574f}.chapter-start:disabled{opacity:.5;cursor:wait}.learning-map .hero-stats{margin-top:25px;gap:0}.learning-map .hero-stats>div{min-width:108px;padding:0 25px;border:0;border-right:1px solid #e5e9dc;border-radius:0;background:transparent}.learning-map .hero-stats>div:first-child{padding-left:0}.learning-map .hero-stats>div:last-child{border-right:0}.learning-map .hero-stats strong{color:#4d6668;font:700 23px/1 DM Sans,sans-serif}.learning-map .hero-stats strong small{font-size:11px;color:#95a4a0;font-weight:500;margin-left:4px}.learning-map .hero-stats>div>span{font-size:11px;color:#6c8177;margin-top:7px}.learning-map .hero-visual{min-height:0;overflow:hidden;display:grid;place-items:center;padding:13px 20px 50px}.learning-map .hero-visual:after{width:145px;height:18px;inset:auto auto 65px;background:#58684c20;filter:blur(9px)}.learning-map .hero-visual img{width:310px;height:351px;max-height:none;max-width:85%;object-fit:contain;filter:drop-shadow(0 14px 12px #536b6420);transform:rotate(-3deg)}.mascot-halo{position:absolute;width:282px;height:282px;border:1px solid #ffffffb3;border-radius:50%;background:#ffffff80;box-shadow:0 0 0 28px #fff3,0 0 0 58px #ffffff1a;top:37px}.mascot-spark{position:absolute;color:var(--chapter-ink);opacity:.42;z-index:2}.spark-one{top:64px;left:19%;transform:rotate(-12deg)}.spark-two{right:17%;top:198px}.mascot-caption{position:absolute;bottom:22px;display:grid;grid-template-columns:7px auto;column-gap:7px;row-gap:4px;align-items:center;text-align:center;z-index:3}.mascot-caption>span{width:6px;height:6px;border-radius:50%;background:var(--chapter-paint)}.mascot-caption strong{color:var(--chapter-ink);font-size:11px;font-weight:600}.mascot-caption small{grid-column:1 / 3;font-size:10px;color:#758678;letter-spacing:.08em}.learning-map .level-tabs{position:relative;inset:auto;padding:0 22px;gap:6px;border:0;border-top:1px solid #edeedf;border-radius:0;background:#ffffffa3;box-shadow:none}.learning-map .level-tabs button{position:relative;height:64px;border-radius:0;color:#6c8175;gap:9px}.learning-map .level-tabs button>span{font-size:16px;width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#f2f5f1;color:#82948d}.learning-map .level-tabs small{font-size:12px}.learning-map .level-tabs button.active{background:transparent;color:#465f58;font-weight:700;box-shadow:none}.learning-map .level-tabs button.active>span{background:var(--chapter-soft);color:var(--chapter-ink)}.learning-map .level-tabs button.active i{position:absolute;bottom:0;width:52%;height:3px;border-radius:3px 3px 0 0;background:var(--chapter-paint)}.learning-map .level-tabs button:hover{color:var(--chapter-ink);background:#eff5ef70}.learning-map .map-card{border:1px solid #fff;border-radius:24px;background:#ffffffde;padding:29px 32px 32px;margin-top:23px;box-shadow:0 12px 32px #405e5008}.learning-map .section-heading{align-items:center}.learning-map .section-kicker{color:#617e76;font-size:11px;letter-spacing:.08em;font-weight:600}.learning-map .section-heading h2{color:#354e51;font-size:23px;margin-top:8px;letter-spacing:.015em;font-weight:650}.learning-map .progress-summary{min-width:190px;color:#8d9d98;font-size:10px}.learning-map .progress-summary>span{display:flex;justify-content:space-between;align-items:center;font:inherit;margin-bottom:9px}.learning-map .progress-summary strong{color:#688a7e;font:700 16px DM Sans,sans-serif}.learning-map .progress-summary small{font-size:10px;font-weight:500;color:#98aaa0}.learning-map .progress-track{height:6px;background:#edf2ec}.learning-map .progress-track i{background:#88ad94}.learning-map .topic-row{border:0;padding:0;margin:18px 0 23px;gap:7px}.learning-map .topic-row span{font-size:11px;font-weight:500;padding:6px 10px;border:1px solid #e9eee4;background:#f6f8f3;color:#647d6b;border-radius:7px}.units-heading{border-top:1px solid #eef1eb;padding-top:21px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;color:#58766e;font-size:12px;font-weight:600}.units-heading>span small{margin-left:7px;padding:2px 6px;border-radius:5px;background:#eef3ed;color:#8ba396;font:600 10px DM Sans,sans-serif}.units-heading>div{display:flex;align-items:center;gap:6px;color:#95a49b;font-size:9px;font-weight:400}.units-heading .legend-next,.units-heading .legend-complete{width:6px;height:6px;border-radius:2px;background:#d6ad55}.units-heading .legend-complete{margin-left:12px;background:#7fad91}.learning-map .stage-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.learning-map .stage-node{position:relative;min-height:86px;display:flex;flex-direction:row;align-items:center;text-align:left;gap:10px;padding:12px 11px 19px;background:#f8faf7;border:1px solid #e7eee5;border-radius:13px;color:#688078;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s}.learning-map .stage-disc{flex-shrink:0;width:35px;height:38px;border:1px solid #e1e9de;border-radius:10px;background:#fff;box-shadow:0 2px #e8ece4;font:700 15px DM Sans,sans-serif;color:#789088}.stage-copy{min-width:0;display:flex;flex-direction:column;gap:7px}.learning-map .stage-label{color:#4e6b60;font-size:12px;font-weight:600;margin:0;line-height:1.4;overflow-wrap:anywhere}.learning-map .stage-stars,.learning-map .stage-node:not(.completed) .stage-stars{margin:0;height:auto;color:#6d8272;opacity:1;font-size:10px;white-space:nowrap}.stage-arrow{margin-left:auto;color:#b2c1b4;flex-shrink:0;width:11px}.stage-mini-progress{position:absolute;height:3px;bottom:10px;left:12px;right:12px;border-radius:3px;background:#e8eee5;overflow:hidden}.stage-mini-progress i{display:block;height:100%;background:#80af91;border-radius:inherit}.learning-map .stage-node.recommended{border-color:#e6d5a9;background:#fffcf3}.learning-map .stage-node.recommended .stage-disc{background:#fbedca;color:#a17932;border-color:#eed9a4;box-shadow:0 2px #ecd8a3}.learning-map .stage-node.recommended .stage-arrow{color:#bca36c}.learning-map .stage-node.completed{border-color:#dcebdd;background:#f0f7ee}.learning-map .stage-node.completed .stage-disc{background:#dceedd;border-color:#cae0cd;color:#598667;box-shadow:0 2px #d0e3d0}.learning-map .stage-node.completed .stage-stars{color:#6b9a7f}.learning-map .stage-node.in-progress .stage-stars{color:#a18036}.learning-map .stage-node.in-progress .stage-mini-progress i{background:#d4ad59}.learning-map .stage-node:hover:not(:disabled){transform:translateY(-3px);border-color:#abc7b6;background:#fff;box-shadow:0 7px 15px #4367570d}.learning-map .stage-node:hover .stage-disc{transform:none;box-shadow:0 2px #e8ece4}.learning-map .stage-node:disabled{cursor:wait}.learning-map button:focus-visible,.app-header button:focus-visible{outline:3px solid #7aaf9866;outline-offset:3px}.learning-map .content-note{display:flex;justify-content:center;align-items:center;gap:7px;color:#6a8274;font-size:11px;line-height:1.7;margin-top:23px}.auth-page,.auth-state-screen{--primary: #426f65;--ink: #2d454b;--muted: #7e9290}.auth-page .auth-submit:hover:not(:disabled){background:#355f56}.auth-page .auth-eyebrow{color:#76988e}.auth-page .auth-card-icon{background:#fff3e3}.auth-page .auth-intro>img{height:285px;margin-left:40px;width:290px;max-width:calc(100% - 40px)}@media(max-width:1120px){.learning-map .stage-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.learning-map .hero-copy{padding-left:30px}.learning-map .level-tabs small{display:inline}}@media(max-width:900px){.learning-map .stage-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hero-main{grid-template-columns:1.1fr .9fr}.learning-map .hero-visual img{width:240px;height:310px;max-width:100%}.mascot-halo{width:225px;height:225px;top:75px}.learning-map .hero-stats>div{min-width:0;padding-inline:16px}.learning-map .hero-description{font-size:12px}}@media(max-width:760px){.app-header{height:auto;min-height:72px;padding:10px 18px;flex-wrap:wrap;gap:10px}.app-header .logo-mark{width:41px;height:41px}.app-header .brand strong{font-size:15px}.app-header .brand small{display:block;font-size:8px}.app-header .nav-links{position:static;display:flex;width:auto;padding:0;border:0;background:transparent;box-shadow:none;order:3;flex-basis:100%;justify-content:center}.app-header .nav-links button{font-size:11px;padding:8px 16px;width:auto}.app-header .header-actions{margin-left:auto}.learning-map{width:calc(100% - 28px);padding-top:18px;max-width:680px}.map-page-heading>small{display:none}.map-page-heading{margin-bottom:14px;font-size:10px}.hero-main{grid-template-columns:1fr .76fr;min-height:0}.learning-map .hero-copy{padding:26px 0 25px 24px}.learning-map .hero-copy h1{font-size:34px;margin-top:14px}.learning-map .hero-subtitle{font-size:14px;line-height:1.6}.learning-map .hero-description{max-width:300px}.learning-map .eyebrow{gap:8px;font-size:8px}.chapter-pill{padding:7px}.chapter-start{margin-top:16px;min-height:39px;padding-inline:13px;font-size:11px}.learning-map .hero-stats{margin-top:22px}.learning-map .hero-stats>div{flex:none;padding-inline:11px}.learning-map .hero-stats strong{font-size:18px}.learning-map .hero-stats>div>span{font-size:10px}.learning-map .hero-stats strong small{font-size:8px;margin-left:2px}.learning-map .hero-visual{padding:20px 12px 58px}.learning-map .hero-visual img{width:225px;height:270px}.mascot-halo{width:185px;height:185px;top:56px}.spark-one{top:46px;left:7%}.spark-two{right:10%;top:195px}.learning-map .level-tabs{margin:0;padding-inline:9px;gap:0}.learning-map .level-tabs button{height:67px;flex-direction:column;gap:4px;padding-inline:2px}.learning-map .level-tabs small{font-size:8px;white-space:nowrap}.learning-map .level-tabs button>span{font-size:13px;width:24px;height:24px}.learning-map .map-card{padding:24px 18px;border-radius:22px}.learning-map .section-heading h2{font-size:19px;line-height:1.4}.learning-map .progress-summary{min-width:100px}.learning-map .progress-summary>span{font-size:8px}.learning-map .progress-summary strong{font-size:13px}.learning-map .stage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.learning-map .stage-node{padding:10px 9px 18px;gap:8px}.learning-map .stage-disc{width:31px;height:35px;font-size:13px}.learning-map .stage-label{font-size:11px}.learning-map .stage-stars{font-size:10px}.learning-map .content-note{align-items:flex-start;text-align:left;font-size:9px;padding-inline:8px}.learning-map .content-note svg{flex-shrink:0;margin-top:2px}}@media(max-width:520px){.hero-main{display:block;position:relative}.learning-map .hero-copy{padding:25px 23px 23px}.learning-map .hero-copy h1,.learning-map .eyebrow{position:relative;z-index:3}.learning-map .hero-description{max-width:195px;margin-top:13px}.learning-map .hero-subtitle{max-width:175px}.learning-map .hero-visual{position:absolute;right:-16px;top:8px;width:165px;height:180px;padding:0;z-index:1;pointer-events:none}.learning-map .hero-visual img{width:143px;height:163px;max-width:none}.learning-map .hero-visual:after{bottom:19px;width:80px}.mascot-halo{width:115px;height:115px;top:30px;box-shadow:0 0 0 13px #fff4}.mascot-caption,.mascot-spark{display:none}.learning-map .hero-stats>div{padding-inline:19px}.learning-map .section-heading{display:grid;grid-template-columns:1fr;gap:13px}.learning-map .section-heading h2{font-size:17px;max-width:none}.learning-map .progress-summary{min-width:0;padding-top:0}.learning-map .progress-summary>span{flex-direction:row;align-items:center;gap:4px;font-size:10px}.learning-map .topic-row{gap:5px;margin-bottom:18px}.learning-map .topic-row span{font-size:9px;padding:5px 8px}.learning-map .stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-map .stage-label{font-size:12px}.learning-map .stage-stars{font-size:10px}.learning-map .stage-disc{width:33px;height:37px}.learning-map .stage-arrow{display:none}}@media(max-width:380px){.learning-map .hero-copy h1{font-size:28px}.learning-map .hero-visual{width:130px;right:-12px}.learning-map .hero-visual img{width:121px;height:137px}.learning-map .hero-description{max-width:150px;font-size:11px}.learning-map .hero-subtitle{max-width:150px;font-size:12px}.learning-map .map-card{padding-inline:13px}.learning-map .stage-node{padding-inline:8px;gap:7px}.learning-map .stage-disc{width:28px;height:34px}.learning-map .stage-label{font-size:11px}.learning-map .stage-stars{font-size:9px}}
