:root{--panel:#121822bd;--panel-line:#ffffff1f;--ink:#f2f5f8;--ink-dim:#e8f0f89e;--accent:#7fb4e0;--accent-soft:#7fb4e02e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;background:#0f151d;margin:0;overflow:hidden}#app{position:fixed;inset:0}#app canvas{display:block}.hud{pointer-events:none;z-index:10;position:fixed;inset:0}.hud>*{pointer-events:auto}.brand{align-items:center;gap:12px;display:flex;position:absolute;top:22px;left:24px}.brand-mark{color:#0f151d;letter-spacing:-.5px;background:linear-gradient(150deg,#7fb4e0,#3f6fa8);border-radius:11px;place-items:center;width:38px;height:38px;font-size:19px;font-weight:600;display:grid}.brand-text h1{letter-spacing:.04em;margin:0;font-size:15px;font-weight:600}.brand-text p{color:var(--ink-dim);letter-spacing:.02em;margin:2px 0 0;font-size:11.5px}.panel{background:var(--panel);border:1px solid var(--panel-line);-webkit-backdrop-filter:blur(14px);border-radius:14px;padding:14px 16px;position:absolute}.stats{width:208px;font-size:12.5px;bottom:108px;left:24px}.stats-row{color:var(--ink-dim);justify-content:space-between;padding:5px 0;display:flex}.stats-row b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:500}.stats-note{border-top:1px solid var(--panel-line);color:var(--ink-dim);margin-top:8px;padding-top:9px;font-size:11px;line-height:1.5}.stats-note b{color:var(--accent);font-weight:500}.activity{width:218px;top:22px;right:24px}.activity h2{color:var(--ink-dim);letter-spacing:.06em;margin:0 0 10px;font-size:11.5px;font-weight:500}.act-row{grid-template-columns:62px 1fr 30px;align-items:center;gap:8px;padding:3px 0;font-size:11.5px;display:grid}.act-row span{color:var(--ink-dim);white-space:nowrap}.act-bar{background:#ffffff17;border-radius:2px;height:4px;overflow:hidden}.act-bar i{background:var(--accent);border-radius:2px;height:100%;transition:width .35s;display:block}.act-row b{text-align:right;font-variant-numeric:tabular-nums;color:#ffffffdb;font-weight:500}.card{background:var(--panel);border:1px solid var(--panel-line);-webkit-backdrop-filter:blur(14px);border-radius:14px;width:236px;padding:16px;transition:opacity .2s,transform .2s;position:absolute;top:300px;right:24px}.card.hidden{opacity:0;pointer-events:none;transform:translateY(6px)}.card h3{margin:0;font-size:14.5px;font-weight:500}.card-zone{color:var(--ink-dim);margin:4px 0 12px;font-size:11.5px}.card-stat{background:var(--accent-soft);color:var(--ink-dim);border-radius:8px;justify-content:space-between;padding:8px 10px;font-size:12px;display:flex}.card-stat b{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:500}.card-cap{color:#fff6;font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:10.5px}.card h4{color:var(--ink-dim);letter-spacing:.06em;justify-content:space-between;align-items:baseline;margin:14px 0 6px;font-size:11px;font-weight:500;display:flex}.card-count{letter-spacing:0;font-variant-numeric:tabular-nums;font-weight:400}.card-roster li{font-size:11.5px}.card-roster li span{color:var(--ink-dim);font-size:10.5px}.card-more{color:#ffffff5c;margin:6px 0 0;font-size:10.5px}.card ul{margin:0;padding:0;font-size:12px;list-style:none}.card li{color:#fffc;justify-content:space-between;padding:3.5px 0;display:flex}.card li b{color:var(--ink-dim);font-variant-numeric:tabular-nums;font-weight:400}.card li.empty{color:#ffffff57}.card-close{width:22px;height:22px;color:var(--ink-dim);cursor:pointer;background:#ffffff14;border:none;border-radius:6px;font-size:14px;line-height:1;position:absolute;top:10px;right:10px}.card-close:hover{color:var(--ink);background:#ffffff29}.timeline{background:var(--panel);border:1px solid var(--panel-line);-webkit-backdrop-filter:blur(14px);border-radius:16px;grid-template-columns:38px 78px 1fr auto auto;align-items:center;gap:14px;width:min(900px,100vw - 48px);padding:12px 18px;display:grid;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.tools{gap:6px;display:flex}.tools button{color:var(--ink-dim);cursor:pointer;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff24;border-radius:8px;padding:6px 9px;font-size:11px;transition:background .16s,color .16s,border-color .16s}.tools button:hover{color:var(--ink);background:#7fb4e02e;border-color:#7fb4e06b}.banner{background:var(--panel);border:1px solid var(--panel-line);-webkit-backdrop-filter:blur(14px);border-radius:12px;align-items:center;gap:12px;padding:9px 16px;transition:opacity .4s;display:flex;position:absolute;top:24px;left:50%;transform:translate(-50%)}.banner.hidden{opacity:0;pointer-events:none}.banner-label{letter-spacing:.16em;color:var(--accent);font-size:12px}.banner-track{background:#ffffff24;border-radius:2px;width:220px;height:3px;overflow:hidden}.banner-track i{background:linear-gradient(90deg,#7fb4e0,#cfe6f8);border-radius:2px;width:0%;height:100%;transition:width 80ms linear;display:block}.banner b{font-variant-numeric:tabular-nums;color:var(--ink);text-align:right;min-width:34px;font-size:12px}.play{background:var(--accent);color:#0f151d;cursor:pointer;border:none;border-radius:10px;place-items:center;width:34px;height:34px;padding:0;font-size:11px;font-weight:600;display:grid}.play:hover{filter:brightness(1.08)}.clock{flex-direction:column;line-height:1.15;display:flex}.clock b{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:16px;font-weight:500}.clock span{color:var(--ink-dim);font-size:10.5px}input[type=range]{appearance:none;cursor:pointer;background:#ffffff24;border-radius:2px;outline:none;width:100%;height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border:2px solid #0f151d;border-radius:50%;width:13px;height:13px}input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:2px solid #0f151d;border-radius:50%;width:11px;height:11px}.speeds{background:#ffffff0f;border-radius:9px;gap:3px;padding:3px;display:flex}.speeds button{color:var(--ink-dim);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:6px;padding:4px 7px;font-size:11px}.speeds button:hover{color:var(--ink)}.speeds button.on{color:var(--ink);background:#ffffff24}@media (max-width:880px){.activity{display:none}.card{top:auto;bottom:200px}.timeline{grid-template-columns:38px 66px 1fr}.speeds,.tools{display:none}.banner-track{width:130px}.stats{bottom:178px}}.ev-layer{pointer-events:none;z-index:30;position:fixed;inset:0;overflow:hidden}.ev-card{pointer-events:auto;cursor:pointer;transform-origin:50% 100%;will-change:transform, opacity;width:272px;transition:opacity .22s;position:absolute;top:0;left:0}.ev-glass{-webkit-backdrop-filter:blur(18px)saturate(170%);background:linear-gradient(158deg,#202938f4 0%,#141a24f6 60%,#0f141cf9 100%);border:1px solid #ffffff29;border-radius:15px;padding:13px 15px 12px;transition:transform .2s cubic-bezier(.2,.8,.3,1),box-shadow .2s;animation:3.4s ease-in-out infinite ev-breathe;position:relative;box-shadow:0 20px 46px -12px #0000009e,0 2px 8px #0000004d,inset 0 1px #ffffff2e,inset 0 -1px #0000004d}.ev-glass:before{content:"";background:linear-gradient(90deg, transparent, var(--kc,#ff6b3d), transparent);opacity:.95;filter:blur(.3px);border-radius:2px;height:2px;position:absolute;top:-1px;left:14px;right:14px}.ev-glass:after{content:"";pointer-events:none;background:radial-gradient(120px 74px at 8% 0,#ffffff17,#0000 70%);border-radius:15px 0 40px;width:120px;height:74px;position:absolute;top:0;left:0}.ev-card:hover .ev-glass{box-shadow:0 26px 60px -12px #000000b3, 0 0 0 1px color-mix(in srgb, var(--kc) 55%, transparent), inset 0 1px 0 #ffffff80;transform:translateY(-3px)}.ev-top{z-index:1;justify-content:space-between;align-items:center;gap:8px;display:flex;position:relative}.ev-kind{letter-spacing:.3px;color:var(--kc);background:color-mix(in srgb, var(--kc) 18%, transparent);border:1px solid color-mix(in srgb, var(--kc) 40%, transparent);border-radius:6px;padding:2px 7px;font-size:11px;font-weight:700}.ev-live{color:#ffffffa8;letter-spacing:.4px;align-items:center;gap:5px;font-size:10px;display:inline-flex}.ev-live i{background:var(--kc);width:6px;height:6px;box-shadow:0 0 8px var(--kc);border-radius:50%;animation:1.5s ease-in-out infinite ev-blink}.ev-card h3{z-index:1;color:#fff;letter-spacing:.2px;text-shadow:0 1px 8px #00000080;margin:9px 0 5px;font-size:15px;font-weight:700;line-height:1.35;position:relative}.ev-card p{z-index:1;color:#ffffffbd;margin:0;font-size:11.5px;line-height:1.55;position:relative}.ev-cta{z-index:1;color:#fff;border-top:1px solid #ffffff24;justify-content:space-between;align-items:center;margin-top:10px;padding-top:9px;font-size:11px;font-weight:700;display:flex;position:relative}.ev-cta span{color:var(--kc);font-size:14px;transition:transform .18s}.ev-card:hover .ev-cta span{transform:translate(3px)}.ev-pin{background:linear-gradient(180deg, color-mix(in srgb, var(--kc) 80%, transparent), transparent);width:1px;height:26px;margin:0 auto;position:relative}.ev-pin:after{content:"";background:var(--kc);width:7px;height:7px;box-shadow:0 0 12px var(--kc), 0 0 22px color-mix(in srgb, var(--kc) 60%, transparent);border-radius:50%;margin-left:-3.5px;position:absolute;bottom:-3px;left:50%}.ev-card.done{pointer-events:none}.ev-card.done .ev-glass{border-color:#78e6a09e;animation:none;box-shadow:0 0 0 1px #78e6a06b,0 18px 40px -10px #00000080,0 0 26px -6px #78e6a080}.ev-card.done .ev-glass:before{background:linear-gradient(90deg,#0000,#78e6a0,#0000)}.ev-card.done .ev-live{color:#7fe0a4}.ev-card.done .ev-cta{border-top-color:#78e6a038}.ev-card.done .ev-cta b{color:#7fe0a4;font-size:14px}.ev-card.gone{animation:.4s forwards ev-out}@keyframes ev-out{0%{opacity:1}to{opacity:0}}@keyframes ev-breathe{0%,to{box-shadow:0 20px 46px -12px #0000009e,0 2px 8px #0000004d,inset 0 1px #fff6}50%{box-shadow:0 22px 52px -12px #000000a8, 0 0 22px -6px var(--kc), inset 0 1px 0 #ffffff75}}@keyframes ev-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes ev-pop{0%{opacity:1;transform:translate(-50%,-100%)scale(1)}35%{opacity:1;transform:translate(-50%,-112%)scale(1.06)}to{opacity:0;transform:translate(-50%,-130%)scale(.9)}}.ev-badge{z-index:31;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#e8f0f89e;pointer-events:none;background:#121822b8;border:1px solid #ffffff1f;border-radius:11px;align-items:baseline;gap:5px;padding:8px 13px;font-size:11px;display:flex;position:fixed;top:84px;left:24px}.ev-badge b{color:#fff;font-size:15px;font-weight:700}.ev-badge em{font-style:normal}.eb-i{opacity:.8;font-size:12px}.teach-mask{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#060a109e;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.teach-mask.opening{animation:.2s tp-fade}.teach-mask.opening .teach-panel{animation:.26s cubic-bezier(.2,.9,.3,1) tp-rise}.teach-mask[hidden],.ev-badge[hidden]{display:none!important}@keyframes tp-fade{0%{opacity:0}to{opacity:1}}.teach-panel{background:linear-gradient(170deg,#181f2afa,#10151efc);border:1px solid #ffffff21;border-radius:20px;flex-direction:column;width:min(1120px,100%);max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 40px 90px -30px #000000e6,inset 0 1px #ffffff1a}@keyframes tp-rise{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:none}}.tp-head{background:linear-gradient(#ffffff0b,#0000);border-bottom:1px solid #ffffff17;align-items:center;gap:16px;padding:16px 20px;display:flex}.tp-head-l{align-items:center;gap:11px;min-width:0;display:flex}.tp-kind{color:var(--kc);background:color-mix(in srgb, var(--kc) 16%, transparent);border:1px solid color-mix(in srgb, var(--kc) 38%, transparent);border-radius:7px;flex:none;padding:3px 8px;font-size:11px;font-weight:700}.tp-head h2{color:#fff;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:17px;font-weight:700;overflow:hidden}.tp-sub{color:#e8f0f861;border-left:1px solid #ffffff1f;flex:none;padding-left:10px;font-size:11.5px;font-style:normal}.tp-note{color:#ffe3cde6;background:linear-gradient(100deg,#e8720c1f,#e8720c05);border:1px solid #e8720c47;border-radius:11px;margin-bottom:12px;padding:11px 14px;font-size:12.5px;line-height:1.65}.tp-note b{color:#ffc48a;letter-spacing:.4px;background:#e8720c38;border-radius:5px;margin-right:8px;padding:1px 7px;font-size:10.5px;display:inline-block}.tp-steps{flex:none;gap:6px;margin-left:auto;display:flex}.tp-step{color:#e8f0f857;border-radius:20px;align-items:center;gap:5px;padding:4px 9px 4px 4px;font-size:11px;transition:all .2s;display:inline-flex}.tp-step i{color:#e8f0f873;background:#ffffff14;border-radius:50%;place-items:center;width:17px;height:17px;font-size:10px;font-style:normal;font-weight:700;display:grid}.tp-step.on{color:#fff;background:#ffffff17}.tp-step.on i{color:#fff;background:#e8720c;box-shadow:0 0 14px -2px #e8720c}.tp-step.done i{color:#7fe0a4;background:#78dca02e}.tp-close{color:#e8f0f8b3;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:9px;flex:none;width:30px;height:30px;font-size:17px;line-height:1;transition:all .16s}.tp-close:hover{color:#fff;background:#ff5a5a2e;border-color:#ff5a5a66}.tp-body{flex:1;min-height:0;padding:20px 22px 6px;overflow-y:auto}.tp-body::-webkit-scrollbar{width:8px}.tp-body::-webkit-scrollbar-thumb{background:#ffffff21;border-radius:8px}.tp-foot{background:#00000024;border-top:1px solid #ffffff14;justify-content:flex-end;gap:10px;padding:14px 22px 16px;display:flex}.tp-btn{cursor:pointer;border:0;border-radius:10px;padding:10px 22px;font-family:inherit;font-size:13px;font-weight:700;transition:all .17s}.tp-btn.primary{color:#fff;background:linear-gradient(160deg,#f1801f,#d9620a);box-shadow:0 8px 22px -8px #e8720ce6}.tp-btn.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 26px -8px #e8720c}.tp-btn.primary:disabled{color:#e8f0f847;box-shadow:none;cursor:not-allowed;background:#ffffff14}.tp-btn.ghost{color:#e8f0f8b8;background:#ffffff0f;border:1px solid #ffffff1a}.tp-btn.ghost:hover{color:#fff;background:#ffffff1a}.tp-alert{background:linear-gradient(100deg,#ff6b3d24,#ff6b3d08);border:1px solid #ff6b3d47;border-radius:12px;padding:13px 16px 13px 34px;position:relative}.tp-alert-dot{background:#ff6b3d;border-radius:50%;width:8px;height:8px;animation:1.6s ease-in-out infinite ev-blink;position:absolute;top:17px;left:14px;box-shadow:0 0 0 4px #ff6b3d29}.tp-alert p{color:#ffd9c9;margin:0;font-size:13.5px;font-weight:600;line-height:1.6}.tp-alert em{color:#ffd9c98c;margin-top:5px;font-size:11px;font-style:normal;display:block}.tp-p{color:#e8f0f8c7;margin:15px 0 0;font-size:13px;line-height:1.85}.tp-cards2{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.tp-mini{background:#ffffff0b;border:1px solid #ffffff17;border-radius:12px;padding:13px 15px}.tp-mini.warn{background:#f0b42912;border-color:#f0b4293d}.tp-mini h3{letter-spacing:.4px;color:#e8720c;margin:0 0 6px;font-size:11.5px;font-weight:700}.tp-mini.warn h3{color:#f0b429}.tp-mini p{color:#e8f0f8c2;margin:0;font-size:12.5px;line-height:1.7}.tp-lead{color:#e8f0f89e;margin:0 0 14px;font-size:13px;line-height:1.7}.tp-options{gap:10px;display:grid}.tp-opt{text-align:left;color:inherit;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;gap:5px;padding:14px 16px;font-family:inherit;transition:all .17s;display:flex}.tp-opt:hover{background:#ffffff13;border-color:#ffffff38}.tp-opt.on{background:linear-gradient(100deg,#e8720c29,#e8720c0d);border-color:#e8720c99;box-shadow:0 0 0 1px #e8720c4d,0 10px 26px -14px #e8720ccc}.tp-opt b{color:#fff;font-size:13.5px;font-weight:700}.tp-opt span{color:#e8f0f899;font-size:12px;line-height:1.6}.tp-warn{color:#ffe8b3e0;background:#f0b42914;border:1px solid #f0b42947;border-radius:11px;margin-top:14px;padding:12px 15px;font-size:12.5px;line-height:1.75}.tp-warn b{color:#f0b429;margin-bottom:3px;display:block}.tp-warn em{color:#ffe8b39e;font-size:12px;font-style:normal}.tp-ok{color:#bef5d2e6;background:#78dca014;border:1px solid #78dca042;border-radius:11px;margin-top:14px;padding:12px 15px;font-size:12.5px;line-height:1.7}.tp-ok b{color:#7fe0a4;margin-right:4px}.tp-sensors{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px;display:grid}.tp-sensor{color:inherit;text-align:left;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 13px 11px;font-family:inherit;transition:all .17s;display:flex;position:relative}.tp-sensor:hover{background:#ffffff13;transform:translateY(-2px)}.tp-sensor.on{background:linear-gradient(160deg,#e8720c2e,#e8720c0d);border-color:#e8720c94;box-shadow:0 10px 24px -14px #e8720ce6}.ts-ico{font-size:17px;line-height:1}.tp-sensor b{color:#fff;font-size:12.5px;font-weight:700}.ts-use{color:#e8f0f88c;font-size:11px;line-height:1.5}.ts-price{color:#e8f0f861;font-variant-numeric:tabular-nums;font-size:10.5px;position:absolute;top:11px;right:11px}.tp-sensor.on .ts-price{color:#f5a55b}.tp-basket{color:#e8f0f899;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:16px;margin-top:14px;padding:10px 14px;font-size:11.5px;display:flex}.tp-basket b{color:#fff;font-size:13px}.tp-basket em{color:#e8f0f866;white-space:nowrap;text-overflow:ellipsis;max-width:46%;margin-left:auto;font-size:11px;font-style:normal;overflow:hidden}.tp-code{grid-template-columns:268px 1fr;gap:14px;min-height:340px;display:grid}.tp-palette{background:#0000003d;border:1px solid #ffffff12;border-radius:13px;flex-direction:column;gap:12px;max-height:440px;padding:12px;display:flex;overflow-y:auto}.tp-palette::-webkit-scrollbar{width:6px}.tp-palette::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:6px}.pal-group h4{color:#e8f0f8cc;align-items:baseline;gap:6px;margin:0 0 7px;font-size:11px;font-weight:700;display:flex}.pal-group h4 span{color:#e8f0f852;letter-spacing:.4px;font-size:9.5px;font-weight:500}.pal-empty{color:#e8f0f86b;text-align:center;border:1px dashed #ffffff1c;border-radius:9px;padding:11px 12px;font-size:11px;line-height:1.6}.pal-empty span{color:#e8f0f842;font-size:10px}.blk{text-align:left;color:#0d1117;cursor:pointer;border:0;border-radius:9px;width:100%;margin-bottom:6px;padding:9px 12px;font-family:inherit;font-size:11.5px;font-weight:600;line-height:1.45;transition:transform .13s,filter .13s;display:block;position:relative;box-shadow:inset 0 1px #ffffff80,inset 0 -2px #00000029,0 2px 6px #00000047}.blk:hover{filter:brightness(1.06);transform:translateY(-1px)}.blk:active{transform:translateY(0)}.blk-trigger{background:linear-gradient(170deg,#ffc85c,#f0a92c)}.blk-cond{background:linear-gradient(170deg,#8fc7f0,#63a8dd)}.blk-act{background:linear-gradient(170deg,#9fe0a8,#6cc47b)}.tp-canvas{background:linear-gradient(#ffffff08,#ffffff03),repeating-linear-gradient(0deg,#ffffff06 0 1px,#0000 1px 22px);border:1px solid #ffffff12;border-radius:13px;flex-direction:column;gap:9px;padding:14px;display:flex}.code-row{align-items:flex-start;gap:9px;display:flex}.code-row.grow{flex:1;min-height:0}.code-tag{color:#e8f0f86b;letter-spacing:.5px;flex:none;width:34px;padding-top:9px;font-size:10.5px;font-weight:700}.blk.slot{cursor:default;flex:1;width:auto;margin-bottom:0}.blk.slot.empty{color:#e8f0f857;box-shadow:none;background:#ffffff08;border:1.5px dashed #ffffff29;padding:11px 12px;font-size:11px;font-weight:500}.blk.slot.filled{cursor:pointer;align-items:center;gap:8px;display:flex}.blk.slot.filled i{opacity:.5;background:#00000024;border-radius:5px;place-items:center;width:17px;height:17px;margin-left:auto;font-size:12px;font-style:normal;transition:all .13s;display:grid}.blk.slot.filled:hover i{opacity:1;background:#00000047}.code-stack{flex-direction:column;flex:1;gap:6px;display:flex}.code-stack .blk{margin-bottom:0}.blk-n{background:#0000002e;border-radius:4px;flex:none;place-items:center;width:16px;height:16px;font-size:9.5px;font-weight:700;display:inline-grid}.blk-mv{gap:3px;margin-left:auto;display:flex}.blk-mv i{cursor:pointer;background:#00000021;border-radius:4px;place-items:center;width:20px;height:20px;font-size:11.5px;font-style:normal;transition:background .13s;display:grid}.blk-mv i:hover{background:#0000004d}.code-run{color:#e8f0f880;background:#00000042;border:1px solid #ffffff12;border-radius:9px;align-items:center;gap:8px;margin-top:auto;padding:8px 12px;font-size:11px;display:flex}.code-run b{color:#fff}.run-dot{background:#6cc47b;border-radius:50%;width:7px;height:7px;box-shadow:0 0 9px #6cc47b}.tp-hint-btn{color:#e8f0f88c;cursor:pointer;background:0 0;border:1px dashed #fff3;border-radius:20px;margin:16px auto 6px;padding:8px 16px;font-family:inherit;font-size:11.5px;transition:all .16s;display:block}.tp-hint-btn:hover{color:#fff;background:#e8720c14;border-color:#e8720c80}.tp-hints{background:#7fb4e012;border:1px solid #7fb4e038;border-radius:11px;margin-top:14px;padding:12px 15px}.tp-hints p{color:#cee4f5d9;gap:8px;margin:0 0 8px;font-size:12px;line-height:1.7;display:flex}.tp-hints p:last-child{margin-bottom:0}.tp-hints i{color:#9ecbf0;background:#7fb4e033;border-radius:50%;flex:none;place-items:center;width:16px;height:16px;margin-top:2px;font-size:9.5px;font-style:normal;font-weight:700;display:grid}.tp-hint-more{color:#9ecbf0;cursor:pointer;background:#7fb4e01a;border:1px solid #7fb4e04d;border-radius:14px;margin-top:4px;padding:5px 12px;font-family:inherit;font-size:10.5px}.tp-hint-end{color:#cee4f573;margin-top:4px;font-size:10.5px;font-style:normal;display:block}.tp-result{background:#ffffff09;border:1px solid #ffffff17;border-radius:14px;align-items:center;gap:26px;padding:18px 20px;display:flex}.tp-score{flex-wrap:wrap;flex:none;align-items:baseline;gap:2px;width:128px;display:flex}.tp-score b{color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-2px;font-size:44px;font-weight:800;line-height:1}.tp-score span{color:#e8f0f866;font-size:12px}.tp-score i{color:#7fe0a4;width:100%;margin-top:3px;font-size:12px;font-style:normal;font-weight:700}.tp-result.mid .tp-score i{color:#f0b429}.tp-result.bad .tp-score i{color:#ff7a7a}.tp-bars{flex-direction:column;flex:1;gap:9px;display:flex}.tp-bars>div{align-items:center;gap:10px;display:flex}.tp-bars span{color:#e8f0f88c;flex:none;width:34px;font-size:11px}.tp-bars i{background:#ffffff12;border-radius:4px;flex:1;height:6px;overflow:hidden}.tp-bars i b{background:linear-gradient(90deg,#f0a92c,#e8720c);border-radius:4px;height:100%;transition:width .6s cubic-bezier(.2,.9,.3,1);display:block}.tp-bars em{text-align:right;color:#e8f0f873;font-variant-numeric:tabular-nums;flex:none;width:44px;font-size:10.5px;font-style:normal}.tp-notes{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.tp-notes li{background:#ffffff09;border:1px solid #ffffff12;border-radius:10px;gap:9px;padding:10px 13px;font-size:12.5px;line-height:1.65;display:flex}.tp-notes li i{border-radius:50%;flex:none;place-items:center;width:17px;height:17px;margin-top:1px;font-size:10px;font-style:normal;font-weight:700;display:grid}.tp-notes li.ok i{color:#7fe0a4;background:#78dca029}.tp-notes li.no i{color:#ff8f8f;background:#ff787826}.tp-notes li.ok span{color:#c8f0d7d9}.tp-notes li.no span{color:#ffd6d6d9}.tp-takeaway{color:#ffe3cde6;background:linear-gradient(100deg,#e8720c21,#e8720c08);border:1px solid #e8720c42;border-radius:12px;margin:14px 0 6px;padding:13px 16px;font-size:12.5px;line-height:1.7}.tp-takeaway b{letter-spacing:.6px;color:#e8720c;margin-bottom:4px;font-size:10.5px;display:block}@media (max-width:860px){.tp-code{grid-template-columns:1fr}.tp-palette{max-height:190px}.tp-cards2{grid-template-columns:1fr}.tp-steps{display:none}}.wire-host{margin-top:6px}.wire-stage{background:radial-gradient(120% 90% at 50% 0,#3c4e6859,#0000 70%),repeating-linear-gradient(0deg,#ffffff05 0 1px,#0000 1px 24px),repeating-linear-gradient(90deg,#ffffff05 0 1px,#0000 1px 24px),#0e141d;border:1px solid #ffffff17;border-radius:13px;height:404px;position:relative;overflow:hidden}.wire-parts{position:absolute;inset:0}.wire-svg{z-index:3;position:absolute;inset:0}.hot{cursor:crosshair;stroke:#00000080;stroke-width:1.5px;transition:r .12s,filter .12s}.hot:hover{r:10;filter:drop-shadow(0 0 8px)}.hot-power{fill:#e5484d;color:#e5484d}.hot-gnd{fill:#7d8899;color:#7d8899}.hot-signal{fill:#f0b429;color:#f0b429}.hot-board{fill:#2a3342;stroke:#8fa3bd;stroke-width:1.5px}.hot-label{fill:#d2e0f0cc;text-anchor:middle;pointer-events:none;font-family:inherit;font-size:10.5px;font-weight:600}.wire-line{fill:none;stroke-width:3px;stroke-linecap:round;opacity:.95;filter:drop-shadow(0 2px 4px #0000008c);pointer-events:none}.wire-ghost{fill:none;stroke:#fff9;stroke-width:2.5px;stroke-dasharray:6 5;pointer-events:none}.wire-tip{z-index:4;color:#e8f0f899;pointer-events:none;background:#0a0e14c7;border:1px solid #ffffff1a;border-radius:8px;padding:5px 11px;font-size:10.5px;position:absolute;bottom:12px;left:14px}.wire-bar{color:#e8f0f88c;background:#ffffff0a;border:1px solid #ffffff12;border-radius:10px;align-items:center;gap:14px;margin-top:9px;padding:8px 13px;font-size:11.5px;display:flex}.wire-count b{color:#fff;font-size:13px}.wire-bar em{color:#e8f0f852;font-size:10.5px;font-style:normal}.wire-clear{color:#e8f0f8a6;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff24;border-radius:7px;margin-left:auto;padding:4px 11px;font-family:inherit;font-size:10.5px}.wire-clear:hover{color:#fff;background:#ff787824;border-color:#ff787859}.wire-result{margin-top:10px}.wr-head{border-radius:10px;padding:9px 13px;font-size:12.5px;font-weight:700}.wr-head.ok{color:#7fe0a4;background:#78dca01a;border:1px solid #78dca04d}.wr-head.no{color:#ffab8a;background:#ff8c641a;border:1px solid #ff8c644d}.wr-list{flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.wr-list li{background:#ffffff0a;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:11.5px;display:inline-flex}.wr-list li i{font-style:normal;font-weight:700}.wr-list li.ok{color:#bef0d2d9}.wr-list li.ok i{color:#7fe0a4}.wr-list li.no{color:#ffd2c3e6}.wr-list li.no i{color:#ff8f6b}.wr-skip{color:#e8f0f866;margin:8px 0 0;font-size:11px}.wr-skip-btn{margin-top:10px;padding:7px 14px;font-size:11.5px}@media (max-width:860px){.wire-stage{height:320px}}.blk-host{background:#111722;border:1px solid #ffffff17;border-radius:13px;height:340px;margin-top:4px;position:relative;overflow:hidden}.teach-panel.code-mode{width:min(1560px,97vw);max-height:calc(100vh - 20px)}.teach-panel.code-mode .tp-body{padding:16px 20px 4px}.teach-panel.code-mode .blk-host{height:calc(100vh - 430px);min-height:380px;max-height:620px}.teach-panel.code-mode .tp-lead{margin-bottom:10px;font-size:12.5px}.blk-host .blocklySvg{border-radius:13px}.blk-host .blocklyToolboxDiv{border-right:1px solid #ffffff12}.blk-host .blocklyToolbox{min-width:108px}.blk-host .blocklyToolboxCategoryLabel{white-space:nowrap;font-family:inherit!important;font-size:12px!important}.blk-host .blocklyTreeLabel{font-family:inherit!important;font-size:12px!important}.blk-host .blocklyFlyoutLabelText,.blk-host .blocklyText{font-family:inherit!important}.blk-fail{color:#faac;place-items:center;height:100%;font-size:12.5px;display:grid}.blk-tips{color:#e8f0f880;flex-wrap:wrap;gap:6px 18px;margin:10px 2px 2px;font-size:11px;display:flex}.blk-tips span{align-items:center;gap:6px;display:inline-flex}.blk-tips i{border-radius:3px;flex:none;width:9px;height:9px}.blk-tips .d-trig{background:#e8a33d}.blk-tips .d-cond{background:#4a90d9}.blk-tips .d-act{background:#5bb974}.hw{background:linear-gradient(#ffffff09,#0000002e);border:1px solid #ffffff17;border-radius:13px;margin-top:12px;overflow:hidden}.hw-head{background:#00000029;border-bottom:1px solid #ffffff12;align-items:center;gap:10px;padding:8px 13px;display:flex}.hw-title{color:#e8f0f8d1;letter-spacing:.3px;font-size:11.5px;font-weight:700}.hw-status{color:#e8f0f880;background:#ffffff12;border-radius:20px;margin-left:auto;padding:2px 9px;font-size:10.5px;font-style:normal}.hw-status.running{color:#ffc48a;background:#e8720c33;animation:1.1s ease-in-out infinite hw-blink}.hw-status.done{color:#7fe0a4;background:#78dca029}@keyframes hw-blink{0%,to{opacity:1}50%{opacity:.55}}.hw-body{grid-template-columns:1fr 62px 1fr;align-items:center;gap:12px;padding:10px 13px;display:grid}.hw-group h5{letter-spacing:1px;color:#e8f0f852;text-transform:uppercase;margin:0 0 6px;font-size:9.5px;font-weight:700}.hw-sensors{flex-direction:column;gap:5px;display:flex}.hw-sensor{background:#ffffff0a;border-radius:8px;align-items:center;gap:8px;padding:4px 8px;display:flex}.hs-ico{font-size:12px;line-height:1}.hs-mid{flex:1;min-width:0}.hs-mid b{color:#e8f0f899;margin-bottom:3px;font-size:10px;font-weight:600;display:block}.hs-mid i{background:#ffffff14;border-radius:3px;height:4px;display:block;overflow:hidden}.hs-mid u{background:linear-gradient(90deg,#6cc47b,#f0b429);border-radius:3px;height:100%;transition:width .18s;display:block}.hs-val{color:#fff;font-variant-numeric:tabular-nums;text-align:right;flex:none;min-width:34px;font-size:12px;font-style:normal;font-weight:700}.hw-board{flex-direction:column;align-items:center;gap:4px;display:flex}.hb-chip{color:#e8f0f8b8;background:linear-gradient(160deg,#2b3648,#1a2230);border:1px solid #ffffff24;border-radius:7px;place-items:center;width:46px;height:34px;font-size:9.5px;font-weight:700;display:grid;box-shadow:inset 0 1px #ffffff1f}.hb-pin{background:#e8720c8c;width:1px;height:10px}.hb-note{color:#e8f0f847;white-space:nowrap;font-size:8.5px}.hw-acts{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.hw-act{color:#e8f0f880;background:#ffffff0a;border:1px solid #0000;border-radius:8px;align-items:center;gap:4px;padding:5px 8px;font-size:10px;transition:all .18s;display:flex}.hw-act span{filter:grayscale(.75)brightness(.8);font-size:12px;line-height:1;transition:filter .18s}.hw-act b{font-weight:600}.hw-act-scene{letter-spacing:0;color:#e8f0f852;white-space:nowrap;margin-left:auto;font-size:8.5px;font-style:normal;overflow:hidden}.hw-act.on .hw-act-scene{color:#ffc48abf}.hw-act.on{color:#ffc48a;background:#e8720c29;border-color:#e8720c8c;box-shadow:0 0 16px -4px #e8720cd9}.hw-act.on span{filter:none}.hw-log{color:#e8f0f86b;font-variant-numeric:tabular-nums;background:#00000038;border-top:1px solid #ffffff0f;height:42px;padding:6px 13px 8px;font-size:10px;line-height:1.5;overflow-y:auto}.hw-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hw-line.warn{color:#f0b429}.hw-line.ok{color:#a0e6b9d9}.hw-log::-webkit-scrollbar{width:4px}.hw-log::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:4px}@media (max-width:860px){.hw-body{grid-template-columns:1fr;gap:8px}.hw-board{flex-direction:row;justify-content:center}.blk-host{height:360px}}.tc-btn{z-index:32;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#e8f0f8c7;cursor:pointer;background:#121822c7;border:1px solid #ffffff24;border-radius:11px;align-items:center;gap:6px;padding:9px 15px;font-family:inherit;font-size:12px;font-weight:600;transition:all .17s;display:inline-flex;position:fixed;bottom:92px;right:24px}.tc-btn:hover{color:#fff;background:#1c2430e6;border-color:#e8720c73}.tc-btn.live{color:#f5a55b;border-color:#e8720c80}.tc-btn i{color:#ffc48a;background:#e8720c3d;border-radius:5px;place-items:center;min-width:17px;height:17px;font-size:10px;font-style:normal;font-weight:700;display:grid}.tc-panel{width:min(760px,100%)}.tc-panel .tp-close{margin-left:auto}.tc-h{letter-spacing:.3px;color:#e8f0f88c;margin:18px 0 9px;font-size:11.5px;font-weight:700}.tc-h:first-of-type{margin-top:4px}.tc-kinds{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.tc-kind{color:inherit;text-align:left;cursor:pointer;background:#ffffff09;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 12px 11px;font-family:inherit;transition:all .17s;display:flex;position:relative}.tc-kind:hover{background:#ffffff12}.tc-kind.on{border-color:color-mix(in srgb, var(--kc) 55%, transparent);background:color-mix(in srgb, var(--kc) 12%, transparent);box-shadow:0 8px 22px -14px var(--kc)}.tc-k-ico{font-size:17px;line-height:1}.tc-kind b{color:#fff;font-size:12.5px;font-weight:700}.tc-kind em{color:#e8f0f873;font-size:10.5px;font-style:normal;line-height:1.4}.tc-k-check{color:#0000;border:1px solid #ffffff29;border-radius:5px;place-items:center;width:16px;height:16px;font-size:10px;font-style:normal;display:grid;position:absolute;top:10px;right:10px}.tc-kind.on .tc-k-check{background:var(--kc);border-color:var(--kc);color:#0d1117;font-weight:800}.tc-counts{gap:8px;display:flex}.tc-count{color:#e8f0f8a6;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1c;border-radius:10px;padding:8px 18px;font-family:inherit;font-size:12px;font-weight:600;transition:all .16s}.tc-count:hover{background:#ffffff14}.tc-count.on{color:#ffc48a;background:#e8720c2e;border-color:#e8720c8c}.tc-input{color:#fff;background:#00000040;border:1px solid #ffffff1c;border-radius:10px;outline:none;width:100%;padding:10px 13px;font-family:inherit;font-size:12.5px;transition:border-color .16s}.tc-input:focus{border-color:#e8720c80}.tc-input::placeholder{color:#e8f0f847}.tc-seed-row,.tc-progress-row{color:#e8f0f88c;background:#ffffff09;border:1px solid #ffffff12;border-radius:10px;align-items:center;gap:10px;margin-top:14px;padding:10px 13px;font-size:11.5px;display:flex}.tc-seed-row b{color:#fff;font-variant-numeric:tabular-nums}.tc-seed-row em{color:#e8f0f84d;margin-left:auto;font-size:10.5px;font-style:normal}.tc-reseed{color:#e8f0f8b3;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff24;border-radius:7px;padding:4px 11px;font-family:inherit;font-size:10.5px}.tc-reseed:hover{color:#fff;background:#ffffff1f}.tc-progress-row b{color:#fff}.tc-clear{color:#ffaaaad9;cursor:pointer;background:#ff787814;border:1px solid #ff787847;border-radius:7px;margin-left:auto;padding:4px 11px;font-family:inherit;font-size:10.5px}.tc-clear:hover{color:#fff;background:#ff787829}@media (max-width:860px){.tc-kinds{grid-template-columns:repeat(2,1fr)}.tc-btn{bottom:78px}}
