@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-ext-400-normal-BwJdxs7r.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-400-normal-BqOlcezh.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-400-normal-DjhbW-4D.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-400-normal-DkNBMcYd.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-ext-400-normal-CpIwTHMM.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-400-normal-CN4VBqpr.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-400-normal-DZReXJla.woff2)format("woff2"),url(/assets/source-sans-3-greek-400-normal-DyO2Yfz5.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-vietnamese-400-normal-CwtaIDr2.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-400-normal-eMQk7hmk.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-ext-400-normal-UNsKFIBq.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-400-normal-D5P-Ud2J.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2)format("woff2"),url(/assets/source-sans-3-latin-400-normal-RR2C27NP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-ext-600-normal-6AhwUnSr.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-600-normal-Cjpx_pje.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-600-normal-BnFu5nHC.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-600-normal-CloKWf-q.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-ext-600-normal-DynePNDL.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-600-normal-CnpzyT-3.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-600-normal-BSO157bq.woff2)format("woff2"),url(/assets/source-sans-3-greek-600-normal-B42bzTIr.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-vietnamese-600-normal-B2sTNYey.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-600-normal-BzH4Q14_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-ext-600-normal-AEyhgUpm.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-600-normal-D2VZAM8_.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-600-normal-DeckBYAU.woff2)format("woff2"),url(/assets/source-sans-3-latin-600-normal-Ck0n4g8U.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-ext-700-normal-BhUSqjb8.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-700-normal-COA7LiPB.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-700-normal-CIuudVLB.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-700-normal-D_p3L75o.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-ext-700-normal-Dd6uIcuy.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-700-normal-KTP46hTS.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-700-normal-C8Tp2qRF.woff2)format("woff2"),url(/assets/source-sans-3-greek-700-normal-C-sAg5NG.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-vietnamese-700-normal-Bgamivog.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-700-normal-W-J7ohm4.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-ext-700-normal-6Xi0A2be.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-700-normal-C1ecyfgK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-700-normal-CkzU-mV9.woff2)format("woff2"),url(/assets/source-sans-3-latin-700-normal-B-h9tW5h.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-ext-400-normal-C_uLvvQ5.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-400-normal-Bh0R7Dhr.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-vietnamese-400-normal-ByoDsISC.woff2)format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f1f3f5;--panel:#fff;--ink:#1b1f23;--mute:#5b6570;--line:#d3d8de;--accent:#1f6feb;--accent-ink:#fff;--ok:#1a7f37;--ok-bg:#e6f4ea;--warn:#8a5a00;--warn-bg:#fff4d6;--bad:#c62828;--canvas:#e6e9ed;--pcb:#0b7d86;--pcb-edge:#075a61;--silk:#d6f0f2;--leg:#8b929a;--code-bg:#fff;--gutter:#8a939d;--active-line:#dcebff;--error-line:#fde2e0;--tok-comment:#6a737d;--tok-string:#0a7a4a;--tok-keyword:#b42d71;--tok-function:#1f5fbf;--tok-const:#8a4b00;--tok-number:#6f42c1;--log-bg:#14181c;--log-ink:#e3e7ea;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:"Source Sans 3",system-ui,sans-serif}[data-theme=dark]{--bg:#0f1317;--panel:#171c21;--ink:#e5e8eb;--mute:#99a3ad;--line:#2b333b;--accent:#5aa2ff;--accent-ink:#08111c;--ok:#5ac07a;--ok-bg:#16281d;--warn:#e3b341;--warn-bg:#2b2412;--bad:#ff7b72;--canvas:#1d242b;--pcb:#0a6a72;--pcb-edge:#064c52;--leg:#6f7780;--code-bg:#12171b;--gutter:#66717c;--active-line:#1d3350;--error-line:#4a2220;--tok-comment:#7d8793;--tok-string:#7ee2a8;--tok-keyword:#ff7ab8;--tok-function:#79b8ff;--tok-const:#f0b072;--tok-number:#b392f0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);flex-direction:column;min-height:100vh;margin:0;font-size:16px;line-height:1.45;display:flex}button,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,textarea:focus-visible,.terminal:focus-visible,.wire:focus-visible,.button-cap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:5;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex;position:sticky;top:0}.brand{letter-spacing:.01em;align-items:center;gap:9px;font-size:18px;font-weight:700;display:flex}.mark{background:var(--pcb);border-radius:4px;width:18px;height:18px;position:relative}.mark:after{content:"";background:#f2b705;border-radius:50%;position:absolute;inset:5px}.toolbar-actions{align-items:center;gap:10px;display:flex}.speed{color:var(--mute);align-items:center;gap:6px;font-size:14px;display:flex}.speed select{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:5px 6px}.icon-button{border:1px solid var(--line);width:36px;height:36px;color:var(--mute);background:0 0;border-radius:6px;place-items:center;display:grid}.run{background:var(--accent);min-width:84px;color:var(--accent-ink);border:0;border-radius:6px;padding:8px 18px;font-weight:700}.run.is-running{background:var(--ink);color:var(--bg)}.workspace{background:var(--line);border-bottom:1px solid var(--line);flex:1;grid-template-columns:270px minmax(400px,1fr) minmax(360px,440px);align-items:stretch;gap:1px;display:grid}.panel{background:var(--panel);min-width:0;padding:14px 16px}.footnote{color:var(--mute);margin:0;padding:10px 16px 16px;font-size:13px}.lesson-list{flex-direction:column;gap:2px;margin-bottom:16px;display:flex}.lesson-tab{text-align:left;color:var(--mute);background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:7px 8px;font-weight:600;display:flex}.lesson-tab:hover{background:var(--bg)}.lesson-tab.is-current{background:var(--bg);color:var(--ink)}.lesson-no{border:1.5px solid var(--line);border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;display:grid}.lesson-tab.is-current .lesson-no{border-color:var(--accent);color:var(--accent)}h1{margin:0 0 4px;font-size:22px;line-height:1.2}.blurb{color:var(--mute);margin:0 0 14px}.steps{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.steps li{border-top:1px solid var(--line);grid-template-columns:24px 1fr;gap:10px;padding:10px 0;display:grid}.steps p{color:var(--mute);margin:2px 0 0;font-size:14px}.step-no{border:1.5px solid var(--line);width:22px;height:22px;color:var(--mute);border-radius:50%;place-items:center;margin-top:1px;font-size:12px;font-weight:700;display:grid}.steps .is-current .step-no{border-color:var(--accent);color:var(--accent)}.steps .is-done .step-no{background:var(--ok);border-color:var(--ok);color:#fff}.steps .is-done strong{color:var(--mute);text-decoration:line-through;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.note{border-radius:6px;margin:10px 0 0;padding:8px 10px;font-size:14px}.note.hint{background:var(--warn-bg);color:var(--warn)}.note.good{background:var(--ok-bg);color:var(--ok);font-weight:600}.helpers{border-top:1px solid var(--line);flex-wrap:wrap;gap:4px 14px;margin-top:18px;padding-top:12px;display:flex}.link-button{color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:2px 0;font-size:14px;font-weight:600;text-decoration:underline}.link-button[hidden]{display:none}.panel-bar{justify-content:space-between;align-items:center;gap:10px;min-height:34px;margin-bottom:8px;font-size:14px;display:flex}.hint{color:var(--mute)}.bar-actions{flex-shrink:0;gap:6px;display:flex}.small{border:1px solid var(--line);background:0 0;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600}.small[aria-pressed=true]{background:var(--bg);border-color:var(--accent)}#zoom{display:none}.stage-scroll{background:var(--canvas);border-radius:6px;overflow-x:auto}#board{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.stage-scroll.zoomed #board{width:190%}.pcb{fill:var(--pcb);stroke:var(--pcb-edge);stroke-width:3px}.usb{fill:#aeb5bb;stroke:#7a8288;stroke-width:2px}.chip{fill:#21262b}.chip-pin{fill:#9aa3ab}.reset{fill:#d8d3c5;stroke:#8a8470;stroke-width:2px}.header{fill:#1d2125}.board-led-off{fill:#3a4a4c}.board-led-on{fill:#f2b705}.silk{fill:var(--silk);font-weight:700}.silk.big{letter-spacing:.08em;font-size:24px}.silk.small{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:400}.silk.tiny{font-size:9px}.leg{stroke:var(--leg);stroke-width:3.5px;fill:none;stroke-linecap:round}.resistor{fill:#dcc690;stroke:#a58a4a;stroke-width:1.5px}.part-label{fill:var(--mute);font-size:11px;font-weight:600}.led-body{fill:var(--led);opacity:.45;stroke:#00000059;stroke-width:1.5px;transition:opacity 60ms}.led-body[data-state=lit]{opacity:1}.led-body[data-state=burnt]{fill:#3d3d3d;opacity:.9}.led-shine{fill:none;stroke:#fff;stroke-width:3px;opacity:.5;stroke-linecap:round}.spark{fill:none;stroke:#f2b705;stroke-width:3px;opacity:0;transform-box:fill-box;transform-origin:50%}.spark.pop{animation:.6s ease-out forwards pop}@keyframes pop{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(2.2)}}.button-body{fill:#cfd4d9;stroke:#8b929a;stroke-width:1.5px}.button-cap{fill:#2b3036;stroke:#111;stroke-width:1.5px;cursor:pointer;touch-action:none}.button-cap.down{fill:#11161a;transform:translateY(2px)}.terminal{cursor:pointer}.terminal .hit{fill:#0000}.terminal .pad{fill:#d2ab4e;stroke:#5f4a15;stroke-width:1.5px}.terminal:hover .pad,.terminal.picked .pad{fill:#fff3c6;stroke:var(--accent);stroke-width:2.5px}.pin-label{fill:var(--silk);pointer-events:none;font-size:11px;font-weight:700}.wire{fill:none;stroke-width:5px;stroke-linecap:round;cursor:pointer;opacity:.95}.wire:hover{stroke-dasharray:2 9}.w0{stroke:#d9480f}.w1{stroke:#1971c2}.w2{stroke:#7048e8}.w3{stroke:#2f9e44}.w4{stroke:#c2255c}.trace{border:1px solid var(--line);border-radius:6px;margin-top:10px;padding:6px 10px 2px}.trace-head{letter-spacing:.04em;text-transform:uppercase;color:var(--mute);justify-content:space-between;font-size:12px;font-weight:700;display:flex}#trace{width:100%;height:auto;display:block}.trace-line{fill:none;stroke:var(--accent);stroke-width:2.2px;stroke-linejoin:round}.trace-label{fill:var(--mute);font-size:11px;font-weight:600}.trace-empty{fill:var(--mute);font-size:13px}.file{color:var(--mute);font-family:JetBrains Mono,monospace;font-size:13px}.editor{background:var(--code-bg);border:1px solid var(--line);border-radius:6px;height:330px;font:400 13.5px/22px JetBrains Mono,monospace;position:relative;overflow:hidden}.gutter-clip,.mirror-clip{pointer-events:none;position:absolute;top:0;bottom:0;overflow:hidden}.gutter-clip{border-right:1px solid var(--line);width:38px;left:0}.gutter{text-align:right;color:var(--gutter);padding:8px 0}.gutter .row{padding-right:8px}.mirror-clip{left:38px;right:0}.mirror{white-space:pre;width:max-content;min-width:100%;padding:8px 12px}.mirror .row{min-height:22px;margin:0 -12px;padding:0 12px}.row.is-active{background:var(--active-line)}.row.is-error{background:var(--error-line)}.gutter .row.is-active,.gutter .row.is-error{color:var(--ink);font-weight:700}#source{resize:none;color:#0000;width:calc(100% - 38px);height:100%;caret-color:var(--ink);font:inherit;white-space:pre;tab-size:2;outline-offset:-2px;background:0 0;border:0;margin:0;padding:8px 12px;position:absolute;inset:0 0 0 38px;overflow:auto}.tok-comment{color:var(--tok-comment);font-style:italic}.tok-string{color:var(--tok-string)}.tok-keyword{color:var(--tok-keyword)}.tok-function{color:var(--tok-function)}.tok-const{color:var(--tok-const)}.tok-number{color:var(--tok-number)}.tabs{border-bottom:1px solid var(--line);align-items:center;gap:2px;margin-top:10px;display:flex}.tabs [role=tab]{color:var(--mute);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:6px 12px;font-weight:600}.tabs [role=tab][aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.tabs .push{margin-bottom:4px;margin-left:auto}.pane{height:150px;overflow:auto}.pane[hidden]{display:none}.log{background:var(--log-bg);min-height:100%;color:var(--log-ink);border-radius:0 0 6px 6px;padding:8px 12px;font:400 13px/1.5 JetBrains Mono,monospace}.log .note{color:#8fb8a3}.log .error{color:#ff9a8f}.wiring{margin:0;padding:8px 4px 8px 18px;font-size:14px}.wiring .empty{color:var(--mute);margin-left:-18px;list-style:none}.reference{margin:0;padding:8px 2px;font-size:14px}.reference dt{color:var(--tok-function);margin-top:6px;font:400 13px JetBrains Mono,monospace}.reference dd{color:var(--mute);margin:0}.dialog{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;max-width:360px;padding:18px 20px}.dialog::backdrop{background:#0a0e128c}.dialog h2{margin:0 0 6px;font-size:18px}.dialog p{color:var(--mute);margin:0 0 16px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.dialog-actions button{border:1px solid var(--line);background:0 0;border-radius:6px;padding:7px 14px;font-weight:600}.dialog-actions .primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.view-nav{display:none}@media (width<=900px){body{padding-bottom:56px}.workspace{background:0 0;border:0;display:block}.panel{border-bottom:1px solid var(--line);min-height:calc(100vh - 109px);display:none}body[data-view=lesson] #lesson-panel,body[data-view=board] #stage-panel,body[data-view=code] #code-panel{display:block}#zoom{display:inline-block}.speed span,.speed{font-size:13px}.editor{height:300px}.view-nav{z-index:6;background:var(--panel);border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.view-nav button{min-height:56px;color:var(--mute);background:0 0;border:0;border-top:3px solid #0000;font-weight:600}.view-nav button[aria-pressed=true]{color:var(--accent);border-top-color:var(--accent)}.footnote{display:none}.small,.link-button,.lesson-tab{min-height:36px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width>=901px){body{height:100vh;overflow:hidden}.workspace{min-height:0}.panel{overflow-y:auto}#board{max-height:calc(100vh - 330px)}.footnote{padding:6px 16px 8px}}.builder{margin-top:4px;display:none}body[data-free=true] .builder{display:block}body[data-free=true] #steps,body[data-free=true] #notes,body[data-free=true] #show-wiring,body[data-free=true] #show-code{display:none}.side-title{letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin:14px 0 6px;font-size:12px}.search{border:1px solid var(--line);background:var(--panel);width:100%;color:var(--ink);font:inherit;border-radius:6px;padding:6px 10px;font-size:14px}.catalog{border:1px solid var(--line);border-radius:6px;max-height:230px;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.catalog li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.catalog li:first-child{border-top:0}.catalog p{color:var(--mute);margin:1px 0 0;font-size:13px}.catalog .empty{color:var(--mute);font-size:14px}.view-tools{gap:4px;display:none}body[data-free=true] .view-tools{display:inline-flex}.workspace-bg{cursor:grab;touch-action:none}.grid-dot{fill:var(--line)}.part-list{flex-flow:column wrap;margin:4px 0 8px;padding:0;list-style:none;display:flex}.part-list li{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.part-list .part-name{flex:1;font-weight:600}.part-list small{color:var(--mute);margin-left:4px;font-weight:400}.part-list .empty{color:var(--mute);font-size:14px}.part-list select{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:3px 4px;font-size:13px}.check{color:var(--mute);align-items:center;gap:8px;font-size:14px;display:flex}.part.movable{cursor:grab}.part.movable.dragging{cursor:grabbing}.part.movable:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.buzzer-body{fill:#23282d;stroke:#0c0f12;stroke-width:1.5px}.buzzer-hole{fill:#0c0f12}.waves{opacity:0;fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round}.waves.sounding{opacity:1;animation:.18s linear infinite alternate buzz}@keyframes buzz{to{transform:translate(2px)}}.switch-slot{fill:#8b929a}.switch-knob{fill:#2b3036;stroke:#111;stroke-width:1.5px;cursor:pointer;transition:x 80ms}.switch-knob.on{fill:var(--accent)}.switch-knob:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rgb-body{fill:var(--led,#ccc)}.rgb-body[data-state=off]{fill:#cdd2d7;opacity:.55}@media (prefers-reduced-motion:reduce){.waves.sounding{animation:none}.switch-knob{transition:none}}body[data-free=true] #zoom{display:none}@media (width<=900px){body[data-free=true] .stage .panel-bar{flex-wrap:wrap}body[data-free=true] .stage .hint{flex:100%;font-size:13px}body[data-free=true] .stage .bar-actions{flex:100%;justify-content:flex-start}}.bb-body{fill:#e8e4d8;stroke:#b9b3a1;stroke-width:1.5px}[data-theme=dark] .bb-body{fill:#cfcab9}.bb-channel{fill:#cdc8b8}.bb-stripe{opacity:.8}.bb-plus{fill:#d33f3a}.bb-minus{fill:#2f6fd6}.bb-mark{fill:#6d6a5f;font-family:JetBrains Mono,monospace;font-size:9px}.hole{fill:#4a4a44;stroke:#0000;stroke-width:9px;paint-order:stroke;pointer-events:all;cursor:pointer}.hole.tied{fill:var(--accent)}.hole.picked{fill:#fff3c6;stroke:var(--accent);stroke-width:2px;paint-order:normal}.pot-body{fill:#3b5a73;stroke:#1c2b36;stroke-width:1.5px}.pot-knob{fill:#d9dde1;stroke:#222;stroke-width:1.5px;cursor:grab;touch-action:none}.pot-knob:active{cursor:grabbing}.pot-knob:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pot-pointer{stroke:#b3261e;stroke-width:4px;stroke-linecap:round;pointer-events:none}.pot-control{flex-basis:100%;order:3;align-items:center;gap:6px;display:inline-flex}.pot-control input{flex:1;min-width:0}.pot-control output{font-variant-numeric:tabular-nums;min-width:5ch;font-size:12px}.pad-unwired{fill:none;stroke:var(--silk);stroke-width:1.5px;stroke-dasharray:2 2;opacity:.55;pointer-events:none}.pin-label.unwired{opacity:.6;font-weight:500}.ldr-disk{fill:#c9a56a;stroke:#5b4520;stroke-width:1.5px;cursor:ns-resize;touch-action:none}.ldr-disk:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ldr-track{fill:none;stroke:#6b4f1d;stroke-width:2.5px;stroke-linejoin:round;pointer-events:none}.ldr-sun circle{fill:#f2b705}.ldr-sun path{stroke:#f2b705;stroke-width:2px;stroke-linecap:round}.ldr-sun{pointer-events:none}.seg-body{fill:#1d2125;stroke:#000;stroke-width:1.5px}.seg{fill:#4a2326}.seg[data-state=lit]{fill:#ff4d4f}.seg[data-state=burnt]{fill:#3d3d3d}.servo-body{fill:#3b6ea5;stroke:#1c3552;stroke-width:1.5px}.servo-body[data-state=idle]{fill:#7d8ea3}.servo-ear{fill:#2d557f;stroke:#1c3552;stroke-width:1px}.servo-arm{stroke:#f4f1e8;stroke-width:9px;stroke-linecap:round;fill:none}.servo-hub{fill:#f4f1e8;stroke:#1c3552;stroke-width:1.5px}.servo-horn{transform-box:fill-box;transform-origin:100%;transition:transform .18s ease-out}@media (prefers-reduced-motion:reduce){.servo-horn{transition:none}}.part-label.quiet{opacity:0;transition:opacity .12s}g:hover>.part-label.quiet,g:focus-within>.part-label.quiet,g.picked-part>.part-label.quiet{opacity:1}g.picked-part{filter:drop-shadow(0 0 3px var(--accent))}.example-pick{align-items:stretch;gap:8px;display:flex}.example-pick .search{flex:1;min-width:0}@media (width<=380px){.toolbar{gap:8px;padding:8px 10px}.toolbar-actions{gap:6px;min-width:0}.speed{gap:4px}.speed span{display:none}.brand{font-size:16px}.tabs [role=tab]{padding:6px 8px}.tabs .push{padding-inline:8px}}.lcd-body{fill:#26529c;stroke:#122c5e;stroke-width:1.5px}[data-theme=dark] .lcd-body{fill:#1d427e}.lcd-screen{fill:#9db38a;stroke:#4c5c40;stroke-width:1.5px}.lcd-screen[data-state=on]{fill:#b8d49a}.lcd-cell{fill:#25301c;font-family:JetBrains Mono,monospace;font-size:15px}.part-label.leg-name{font-size:8px}.tmp-body{fill:#1c1e22;stroke:#000;stroke-width:1.5px;cursor:ns-resize;touch-action:none}.tmp-body:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pir-pcb{fill:#3f6d4e;stroke:#1e3a29;stroke-width:1.5px}.pir-dome{fill:#efe9dc;stroke:#b9b3a1;stroke-width:1.5px;cursor:pointer;touch-action:none}.pir-dome[data-state=motion]{fill:#ffd66e}.pir-dome:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.npn-body{fill:#1c1e22;stroke:#000;stroke-width:1.5px}.npn-face{fill:#2b2e33;stroke:#000;stroke-width:1px}.motor-body{fill:#8b9299;stroke:#4a4f54;stroke-width:1.5px}.motor-body[data-state=live]{fill:#a7b0b8}.motor-cap{fill:#6d7378;stroke:#4a4f54;stroke-width:1px}.motor-shaft,.motor-blade{fill:#d9dde1;stroke:#4a4f54;stroke-width:1px}.motor-hub{fill:#8b9299;stroke:#4a4f54;stroke-width:1px}.motor-fan.spinning{animation:motor-spin var(--spin,.4s) linear infinite;transform-box:fill-box;transform-origin:50%}@keyframes motor-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.motor-fan.spinning{animation:none}}.sonar-pcb{fill:#26529c;stroke:#122c5e;stroke-width:1.5px;cursor:ns-resize;touch-action:none}.sonar-pcb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sonar-can{fill:#c8ccd2;stroke:#6d7378;stroke-width:1.5px}.sonar-mesh{fill:#8b9299;stroke:#4a4f54;stroke-width:1px}.dht-body{fill:#3d6fb4;stroke:#1e3d6e;stroke-width:1.5px;cursor:ns-resize;touch-action:none}.dht-body:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dht-hole{fill:#16305c}.sr-body{fill:#1c1e22;stroke:#000;stroke-width:1.5px}.sr-body[data-state=live]{stroke:var(--accent)}.sr-dot{fill:#3a3f45;stroke:#000;stroke-width:1px}.sr-dot[data-state=on]{fill:#ffd66e}.relay-body{fill:#26529c;stroke:#122c5e;stroke-width:1.5px}.relay-body[data-state=on]{stroke:var(--accent)}.relay-cube{fill:#3d6fb4;stroke:#16305c;stroke-width:1px}.relay-contact{fill:#c8ccd2;stroke:#6d7378;stroke-width:1px}.relay-arm{stroke:#ffd66e;stroke-width:2.5px;stroke-linecap:round;fill:none}.lcd-backpack{fill:#16305c;stroke:#0c1e3d;stroke-width:1px}.lcd-cell-i2c{font-size:13px}.stepper-pcb{fill:#26529c;stroke:#122c5e;stroke-width:1.5px}.stepper-body{fill:#c8ccd2;stroke:#6d7378;stroke-width:1.5px}.stepper-body[data-state=live]{stroke:var(--accent)}.stepper-hub{fill:#8b9299;stroke:#4a4f54;stroke-width:1px}.stepper-hand path{stroke:var(--accent)}.stepper-hand{transform-box:fill-box;transform-origin:50%}
