@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/electronics-kit/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/electronics-kit/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/electronics-kit/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(/electronics-kit/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff)format("woff")}:root{--mat:#2e6b57;--mat-line:#3f7f69;--mat-line-major:#5c9a82;--on-mat:#f1f5f0;--ink:#1e2925;--board:#fbfbf8;--board-edge:#d6dad2;--hole:#3a403c;--hole-active:#ffd23f;--plastic:#eef0eb;--plastic-edge:#b9bfb6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Atkinson Hyperlegible,system-ui,sans-serif;font-size:18px;line-height:1.45}body{min-height:100vh;color:var(--on-mat);background-color:var(--mat);background-image:linear-gradient(var(--mat-line-major) 1px, transparent 1px), linear-gradient(90deg, var(--mat-line-major) 1px, transparent 1px), linear-gradient(var(--mat-line) 1px, transparent 1px), linear-gradient(90deg, var(--mat-line) 1px, transparent 1px);background-size:200px 200px,200px 200px,40px 40px,40px 40px;margin:0}main{max-width:960px;margin:0 auto;padding:16px}main.level{max-width:1280px;padding:12px 16px}h1{margin:0;font-size:1.75rem;line-height:1.2}h2{margin:1.5em 0 .5em;font-size:1.3rem}:focus-visible{outline:3px solid var(--hole-active);outline-offset:2px}.board{touch-action:none;filter:drop-shadow(0 4px #0003);flex:0 auto;width:100%;height:auto;min-height:0;display:block;overflow:visible}.fit-screen{box-sizing:border-box;height:100vh;flex-direction:column;height:100dvh;display:flex}.workbench{-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;min-height:0;display:flex}.meter{border:4px solid var(--hole-active);color:#1c2414;background:#c7d3a6;border-radius:10px;flex-wrap:wrap;align-items:baseline;column-gap:10px;max-width:220px;margin-top:8px;padding:6px 10px;display:flex;box-shadow:inset 0 2px 4px #00000040}.meter-part{font-size:.85rem}.meter-value{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}@media (min-width:761px) and (orientation:landscape){.workbench{grid-template:"tray supply""tray warning""tray board""wires board""tools board""meter board""aside board"1fr/max-content minmax(0,1fr);align-items:start;column-gap:16px;display:grid}.workbench>.workbench-aside{grid-area:aside;align-self:end}.workbench-aside .volty{position:relative;bottom:auto;right:auto}.workbench-aside .volty-bubble{border-radius:16px 16px 16px 4px;width:max-content;max-width:360px;margin:0;position:absolute;bottom:40px;left:100%}.workbench>.tray{flex-direction:column;grid-area:tray;align-items:stretch;margin-top:0}.workbench>.wire-hint{grid-area:wires}.workbench>.tools{grid-area:tools;grid-template-columns:1fr 1fr;margin:0;display:grid}.workbench>.meter{grid-area:meter}.workbench>.warning{grid-area:warning}.workbench>.supply-control{grid-area:supply}.workbench>.board{grid-area:board;height:100%}.workbench>.board-zoomable{height:auto;max-height:100%}}.board-zoomable{width:auto;max-width:100%;margin-inline:auto;overflow:hidden}.held{pointer-events:none;filter:drop-shadow(0 6px 6px #0000004d)}.part-moving{opacity:.3}.held .led-puff,.part-ghost .led-puff{animation:none}.board-body{fill:var(--board);stroke:var(--board-edge);stroke-width:2px}.hole{fill:var(--hole);stroke:var(--board-edge);stroke-width:3px}.rail line{stroke-width:3px}.lead{stroke-width:4px;stroke-linecap:round}.lead-plus{stroke:#e5484d}.lead-minus{stroke:#2b2b2b}.rail text{text-anchor:middle;font-weight:700}.rail-plus line{stroke:#e5484d}.rail-plus text{fill:#e5484d}.rail-minus line{stroke:#3d8bfd}.rail-minus text{fill:#3d8bfd}.board-snap .hole{fill:#cfd4cd;stroke:#8b928a;stroke-width:4px}.hole-active,.board-snap .hole-active{fill:var(--hole-active)}button{font:inherit;border:2px solid var(--plastic-edge);background:var(--plastic);min-height:44px;color:var(--ink);cursor:pointer;border-bottom-width:5px;border-radius:10px;padding:8px 16px;font-weight:700}button:active:not(:disabled){border-bottom-width:2px;transform:translateY(3px)}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true]{background:var(--hole-active);border-color:#b8931b}.tools{flex-wrap:wrap;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.tools button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.tool-icon{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;flex:none}.tray{box-sizing:border-box;width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--ink);background:#d9ddd5;border-radius:12px;flex-wrap:wrap;align-items:stretch;gap:6px;margin:12px 0;padding:6px;list-style:none;display:flex;box-shadow:inset 0 2px 4px #00000040}.tray-item{touch-action:none;align-items:center;gap:8px;height:100%;display:flex}.tray-icon{pointer-events:none;width:56px;height:32px;overflow:visible}.wire-hint{align-items:center;gap:.4em;margin:0 0 12px;display:flex}.wire-hint-icon{fill:#d64545;stroke:#d64545;stroke-width:3px;stroke-linecap:round;flex:none;width:32px;height:16px}.wire-hint-icon path{fill:none}.tray-count{opacity:.7;font-weight:400}.leg{stroke:#8a8780;stroke-width:4px;stroke-linecap:round}.wire{stroke:#d64545;stroke-width:7px;stroke-linecap:round}.body{stroke:var(--ink);stroke-width:2px}.battery-body{fill:#2b2a28}.supply-body{fill:#5d6670}.supply-screen{fill:#16231b}.supply-reading{fill:#7dffa0;font-variant-numeric:tabular-nums;text-anchor:middle;font-size:15px;font-weight:700}.supply-knob{fill:#2b2a28;stroke:#9aa2ab;stroke-width:2px}.supply-pointer{stroke:#fff;stroke-width:3px;stroke-linecap:round}.supply-terminal{stroke:var(--ink);stroke-width:1.5px}.supply-plus{fill:#e5484d}.supply-minus{fill:#2b2b2b}.supply-screen,.supply-reading,.supply-knob,.supply-pointer,.supply-terminal{pointer-events:none}.battery-nub{fill:#b8bcc2}.battery-plus{fill:#d64545}.battery-plus,.battery-bolt{pointer-events:none}.battery-bolt{fill:#f6d02f}.body-label,.led-anode{pointer-events:none}.body-label{fill:#fff;text-anchor:middle;font-size:16px;font-weight:700}.bulb-body{fill:#fff6d6}.bulb-glow{fill:#ffd84d}.led-body{fill:#e5484d}.led-glow{fill:#ff8a8d}.part-blown .led-body{fill:#6b6b6b}.led-puff{fill:#c8c8c8;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.6s ease-out led-puff}@keyframes led-puff{0%{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(1.6)}}.led-cathode{stroke:#7a1d20;stroke-width:3px}.led-anode{text-anchor:middle;fill:#7a1d20;font-weight:700}.resistor-body{fill:#d9b98c}.capacitor-body{fill:#5b8bd6}.capacitor-charge{fill:#ffd23f;pointer-events:none}.buzzer-body{fill:#2b2b2b}.buzzer-hole{fill:#6b6b6b}.buzzer-on .buzzer-shake{animation:80ms linear infinite alternate buzz}@keyframes buzz{0%{transform:rotate(-6deg)}to{transform:rotate(6deg)}}.buzzer-waves{fill:none;stroke:var(--ink);stroke-width:3px;stroke-linecap:round}.sensor-body{fill:#c9473d}.sensor-track{fill:none;stroke:#f3d9a4;stroke-width:2.5px;stroke-linejoin:round}.sensor-rays line{stroke:#f6b221;stroke-width:4px;stroke-linecap:round}.light-control{align-items:center;gap:10px;margin:0 0 12px;font-weight:700;display:flex}.supply-control{align-items:center;gap:8px;margin:0 0 8px;font-weight:700;display:flex}.supply-control button{min-width:48px;font-size:1.3rem;line-height:1}.supply-control output{color:#7dffa0;font-variant-numeric:tabular-nums;text-align:center;background:#16231b;border-radius:6px;min-width:4.5em;padding:6px 10px}.light-control input{accent-color:#f6b221;width:200px}.blinker-body{fill:#26282a}.blinker-notch{fill:#4a4e52}.blinker-light{fill:#5a3a3a}.blinker-on{fill:#ff5a4f}.motor-body{fill:#b8bcc2}.motor-blade{fill:#f28c28}.motor-hub{fill:var(--ink)}.motor-on{animation-name:spin;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes spin{to{transform:rotate(360deg)}}.switch-body,.button-body{fill:#e6e1d6}.switch-knob,.button-cap{fill:#f28c28}.part-ghost{opacity:.5;pointer-events:none}.part-selected .body,.part-selected .wire{stroke:#2f7de1;stroke-width:4px}.flow{stroke:#fff;stroke-width:4px;stroke-linecap:round;pointer-events:none;animation-name:flow;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes flow{to{stroke-dashoffset:-16px}}.part-hot .battery-body{fill:#d64545;animation:.6s ease-in-out infinite alternate hot-pulse}@keyframes hot-pulse{to{fill:#f28c28}}.hot-label{fill:#d64545;text-anchor:middle;pointer-events:none;font-size:18px;font-weight:700}.warning{min-height:1.6em;margin:0 0 8px;font-weight:700}.warning:not(:empty){background:var(--hole-active);width:-moz-fit-content;width:fit-content;color:var(--ink);border-radius:8px;padding:4px 12px}@media (prefers-reduced-motion:reduce){.flow,.part-hot .battery-body,.led-puff,.buzzer-on .buzzer-shake,.motor-on{animation:none}}.level-header{align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.level-header h1{margin:0}.level-goal{max-width:70ch;margin:2px 0 0;font-size:1.1rem}.success{z-index:2;box-sizing:border-box;background:var(--board);border-top:8px solid var(--hole-active);width:min(640px,100% - 32px);color:var(--ink);border-radius:12px;padding:12px 16px;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000059}.success h2{margin:0 0 4px}.more summary{cursor:pointer;padding:12px 0;font-weight:700}.more p{margin-top:0}.stars{color:#e0a800;letter-spacing:2px;margin-left:8px;font-size:1.4em}.stars-missing{color:var(--plastic-edge)}.primary{background:var(--hole-active);border-color:#b8931b}.list-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.playing-as{align-items:center;gap:10px;margin:8px 0 0;display:flex}.avatar{font-size:1.6rem;line-height:1}.players{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:0;list-style:none;display:grid}.player{text-align:left;align-items:center;gap:10px;width:100%;display:flex}.player .stars{color:inherit;margin-left:auto;font-size:1rem}.new-player{background:var(--board);max-width:40rem;color:var(--ink);border-radius:12px;padding:16px}.new-player h2{margin-top:0}.new-player input{font:inherit;border:2px solid var(--plastic-edge);border-radius:8px;padding:8px 10px}.avatars{border:none;flex-wrap:wrap;gap:8px;margin:12px 0;padding:0;display:flex}.avatars legend{margin-bottom:6px}.avatar-choice{min-width:56px;font-size:1.6rem}.level-header .share{margin-left:auto}.share-link{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;display:flex}.share-link input{font:inherit;border:2px solid var(--plastic-edge);background:var(--board);min-width:16em;color:var(--ink);border-radius:8px;flex:1;padding:6px 10px}.level-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:0;list-style:none;display:grid}.level-list button{text-align:left;justify-content:space-between;align-items:center;width:100%;display:flex}.version{justify-content:space-between;align-items:center;gap:16px;margin-top:32px;font-size:.85em;display:flex}.version-text{opacity:.6}.version button{font-size:inherit;opacity:.8}.gate,.teacher-settings{max-width:40rem}.gate input{font:inherit;width:4em;margin:0 8px 0 4px;padding:6px 8px}.update{background:var(--board);color:var(--ink);border:2px solid var(--board-edge);border-radius:12px;align-items:center;gap:12px;margin:12px 0;padding:8px 16px;display:flex}.volty{z-index:2;pointer-events:none;align-items:flex-end;gap:8px;max-width:min(420px,100% - 32px);display:flex;position:fixed;bottom:16px;right:16px}.volty-button{pointer-events:auto}.volty-bubble{color:var(--ink);border:2px solid var(--board-edge);background:#fff;border-radius:16px 16px 4px;margin:0 0 40px;padding:10px 14px;box-shadow:0 4px 12px #0000001f}.volty-button{background:0 0;border:none;flex-direction:column;align-items:center;padding:4px 8px;display:flex}.volty-label{color:var(--on-mat);font-weight:700}.volty-body{fill:#f28c28;stroke:#b85f0f;stroke-width:3px}.volty-cap{fill:#e6e1d6;stroke:#8a8780;stroke-width:2px}.volty-plus{fill:#2b2a28;text-anchor:middle;font-size:14px;font-weight:700}.volty-arm{stroke:#b85f0f;stroke-width:6px;stroke-linecap:round}.volty-eye{fill:#2b2a28}.volty-smile{fill:none;stroke:#2b2a28;stroke-width:4px;stroke-linecap:round}.volty-offering svg{animation:.8s ease-in-out infinite alternate volty-bob}@keyframes volty-bob{to{transform:translateY(-6px)}}.part-hinted{animation:.9s ease-in-out infinite alternate hint-pulse}.part-ghost.part-hinted{opacity:.6}@keyframes hint-pulse{to{opacity:.35}}@media (prefers-reduced-motion:reduce){.volty-offering svg,.part-hinted{animation:none}}.confetti{z-index:3;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti span{opacity:0;border-radius:2px;width:10px;height:14px;animation:ease-in forwards confetti-fall;position:absolute;top:-16px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(540deg)}}@media (prefers-reduced-motion:reduce){.confetti{display:none}}@media (orientation:landscape) and (max-height:500px){:root{font-size:14px}main.level{padding:6px 10px}.level-header{gap:10px;margin-bottom:4px}.level-header h1{font-size:1.25rem;line-height:1.2}.level-goal{font-size:.9rem;line-height:1.3}button{border-bottom-width:4px;min-height:40px;padding:4px 10px}.tray{gap:4px;padding:4px}.workbench>.tray{grid-template-columns:1fr 1fr;display:grid}.tray-item{gap:4px;width:100%;padding:4px 6px}.tray-icon{width:44px;height:26px}.wire-hint{margin-bottom:6px}.warning{margin-bottom:4px}.workbench>.tools{grid-template-columns:1fr 1fr 1fr;gap:6px;margin:6px 0}.volty-button svg{width:48px;height:62px}.workbench-aside .volty-bubble{border-radius:12px;width:auto;max-width:none;position:fixed;inset:4px 8px auto 100px}}.rotate-prompt,.small-screen-note{display:none}@media (orientation:portrait) and (max-width:600px){.rotate-prompt{z-index:10;background:var(--mat);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;font-size:1.3rem;font-weight:700;display:flex;position:fixed;inset:0}}.rotate-phone{fill:var(--plastic);stroke:var(--ink);stroke-width:2px}.rotate-arrow{fill:none;stroke:var(--hole-active);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}@media (orientation:landscape) and (max-height:500px){.small-screen-note{background:var(--plastic);width:-moz-fit-content;width:fit-content;color:var(--ink);border-radius:8px;padding:4px 12px;display:block}}.board-snap{margin-inline:auto}@media (min-width:761px) and (orientation:landscape){.workbench>.board-snap{place-self:center}}.tray-item-guided{outline:4px solid var(--hole-active);outline-offset:2px;animation:1s ease-in-out infinite alternate guided-pulse}@keyframes guided-pulse{to{outline-color:#0000}}@media (prefers-reduced-motion:reduce){.tray-item-guided{animation:none}}
