.stack-app{color-scheme:light;--background:var(--card-background);--foreground:var(--card-text-color-main);--muted-foreground:var(--card-text-color-secondary);--border:var(--card-separator-color);--card:var(--card-background);--primary:var(--accent-color);--primary-foreground:var(--accent-color);--accent:var(--accent-color);--accent-foreground:var(--accent-color);--muted:var(--card-text-color-secondary);--secondary:var(--card-text-color-secondary);--secondary-foreground:var(--card-text-color-secondary);--destructive:#ad4537;--font-size-base:14px;--viz-series-1:#267c87;--viz-series-2:#b16337;--viz-series-3:#617c3a;--viz-series-4:#705d8a;--viz-series-5:#a27820;--viz-series-6:#417581;--blue:#267c87;--orange:#b16337;--green:#617c3a;--red:#ad4537;--purple:#705d8a;--yellow:#a27820}
.stack-app *{box-sizing:border-box}.stack-app{scroll-behavior:smooth;scroll-padding-top:26px}.stack-app{background:var(--card-background);color:inherit;font-family:var(--base-font-family);-webkit-font-smoothing:antialiased}.stack-app a{color:inherit;text-underline-offset:.2em}.stack-app button:focus-visible,
.stack-app select:focus-visible,
.stack-app a:focus-visible,
.stack-app summary:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.stack-app .layout{display:grid;grid-template-columns:242px minmax(0,1fr);gap:50px;max-width:1380px;margin:auto;padding:0 44px 0 24px}.stack-app aside{position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto;padding:32px 0 32px 8px;font-size:13px;line-height:1.65}.stack-app aside .brand{font-size:14px;color:inherit;letter-spacing:.08em;margin-bottom:22px}.stack-app aside details{border:0;padding:0;margin:0}.stack-app aside summary{font-weight:700;cursor:pointer}.stack-app nav a{display:block;color:inherit;text-decoration:none;padding:7px 0;border-bottom:1px solid var(--card-separator-color)}.stack-app nav a:hover{color:inherit}.stack-app nav .group{display:block;margin:22px 0 8px;font-size:12px;color:inherit;letter-spacing:.07em}.stack-app main{min-width:0;max-width:900px;width:100%;margin:auto}.stack-app .cover{padding:72px 0 52px;border-bottom:1px solid var(--card-separator-color)}.stack-app .edition{font-size:13px;letter-spacing:.08em;color:inherit;display:flex;align-items:center;gap:14px}.stack-app .edition:before{content:'';width:34px;height:3px;background:var(--card-background)}.stack-app h1,
.stack-app h2{font-family:var(--base-font-family)}.stack-app h1{font-size:clamp(3.84rem,4.4vw,6.4rem);line-height:1.32;font-weight:400;letter-spacing:.02em;margin:28px 0}.stack-app .subtitle{display:block;font-size:.53em;margin-top:15px;line-height:1.7}.stack-app .lead{font-size:20px;max-width:720px;line-height:1.85}.stack-app .scope,
.stack-app .source-note{font-size:14px;color:inherit}.stack-app .facts{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:14px;color:inherit;margin:28px 0}.stack-app .tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.stack-app .tools button,
.stack-app .btn{font-family:var(--base-font-family);border:1px solid var(--card-separator-color);background:var(--card-background);color:inherit;border-radius:var(--card-border-radius);padding:8px 12px;cursor:pointer;max-width:100%}.stack-app .btn[aria-pressed=true],
.stack-app .btn-primary{background:var(--card-background);color:inherit;border-color:var(--card-separator-color)}.stack-app .tools button:hover,
.stack-app .btn:hover{filter:brightness(.97)}.stack-app section{padding:48px 0 26px;border-bottom:1px solid var(--card-separator-color);scroll-margin-top:25px}.stack-app h2{font-size:2.96rem;line-height:1.55;font-weight:700;margin:0 0 22px}.stack-app h3{font-size:1.76rem;line-height:1.7;margin:30px 0 14px}.stack-app p{margin:0 0 1.1em;overflow-wrap:anywhere}.stack-app li{margin-bottom:.55em}.stack-app ul,
.stack-app ol{padding-left:1.6em}.stack-app strong{font-weight:700}.stack-app .eyebrow{font-size:12px;letter-spacing:.06em;color:inherit;margin-bottom:12px}.stack-app .goal{border-left:1px solid var(--card-separator-color);padding:3px 0 3px 18px;margin:24px 0 30px;font-size:15px}.stack-app .goal p{margin:0 0 7px}.stack-app .goal p:last-child{margin:0}.stack-app .goal .why{color:inherit}.stack-app .eq{font-family:var(--base-font-family);padding:16px 18px;margin:23px 0;background:var(--card-background);border-left:1px solid var(--card-separator-color);text-align:center;overflow-x:auto}.stack-app .eq math{display:block;width:max-content;margin:auto}.stack-app math{font-family:var(--base-font-family);font-size:1.05em}.stack-app mtext{font-family:var(--base-font-family);font-size:.85em}.stack-app .math-inline{white-space:nowrap}.stack-app blockquote{margin:24px 0;border-left:1px solid var(--card-separator-color);padding:8px 0 8px 18px;color:inherit}.stack-app blockquote p:last-child{margin-bottom:0}.stack-app .table-wrap{overflow:auto;margin:22px 0 28px}.stack-app table{width:100%;border-collapse:collapse;min-width:500px;font-size:15px;line-height:1.8}.stack-app th,
.stack-app td{text-align:left;vertical-align:top;padding:11px 13px;border-bottom:1px solid var(--card-separator-color)}.stack-app th{background:var(--card-background);font-weight:700}.stack-app thead{display:table-header-group}.stack-app .diagram{margin:30px auto;padding:20px 16px 14px;max-width:740px;background:var(--card-background);border-top:1px solid var(--card-separator-color);border-bottom:1px solid var(--card-separator-color);break-inside:avoid}.stack-app .diagram-live{font-size:14px;line-height:1.8;--font-size-base:14px}.stack-app .diagram figcaption{font-size:12px;line-height:1.85;color:inherit;margin-top:16px}.stack-app .figure-no{color:inherit;font-weight:700;margin-right:8px}.stack-app .diagram-print{display:none}.stack-app .viz-controls,
.stack-app .viz-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:16px}.stack-app .viz-controls{align-items:flex-end}.stack-app .form-label{display:flex;flex-direction:column;gap:5px;font-size:13px;max-width:100%;min-width:0}.stack-app .form-select,
.stack-app .form-control{font-family:var(--base-font-family);color:inherit;border:1px solid var(--card-separator-color);background:var(--card-background);border-radius:var(--card-border-radius);padding:7px 9px;max-width:100%;min-width:0}.stack-app .form-check{display:flex;align-items:center;gap:7px;font-size:13px}.stack-app .form-check input{accent-color:var(--primary)}.stack-app .form-check-label{font-size:13px}.stack-app .viz-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:14px}.stack-app .text-small{font-size:12px}.stack-app .text-muted{color:inherit}.stack-app .tabular-nums{font-variant-numeric:tabular-nums}.stack-app .sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stack-app .diagram [aria-live]{font-size:13px;line-height:1.9;margin-top:12px}.stack-app .card{background:var(--card-background);border:1px solid var(--card-separator-color);padding:12px;border-radius:var(--card-border-radius)}.stack-app .viz-badge{display:inline-block;padding:2px 7px;background:var(--card-background);color:inherit;font-size:12px}.stack-app .diagram [hidden],
.stack-app [hidden]{display:none!important}.stack-app .diagram svg{font-family:'Microsoft YaHei',sans-serif}.stack-app .figure-link{font-size:14px}.stack-app details.answer{border-top:1px solid var(--card-separator-color);border-bottom:1px solid var(--card-separator-color);padding:13px 0;margin:18px 0}.stack-app details.answer summary{font-size:15px;font-weight:700;cursor:pointer;color:inherit}.stack-app .answer-body{padding-top:16px}.stack-app footer{padding:45px 0 60px;font-size:14px;color:inherit}.stack-app footer h2{font-size:1.92rem}.stack-app .route{border-top:1px solid var(--card-separator-color);border-bottom:1px solid var(--card-separator-color);padding:17px 0;margin:24px 0;color:inherit}.stack-app .finish-list li{margin-bottom:12px}.stack-app .lesson h3 strong{font-weight:700}.stack-app .formula-error{color:var(--stack-danger)}
@media(min-width:1050px){.stack-app aside summary{display:none}.stack-app aside details:not([open])>nav{display:block}}
@media(max-width:1049px){.stack-app .layout{display:block;padding:0 30px;max-width:900px}.stack-app aside{position:static;max-height:none;padding:18px 0;border-bottom:1px solid var(--card-separator-color)}.stack-app aside .brand{display:none}.stack-app nav{columns:2;column-gap:25px}.stack-app nav a{break-inside:avoid}.stack-app nav .group{break-after:avoid}.stack-app .cover{padding-top:45px}}
@media(max-width:540px){.stack-app .layout{padding:0 16px}.stack-app{}.stack-app .cover{padding:34px 0}.stack-app h1{font-size:3.52rem}.stack-app h2{font-size:2.4rem}.stack-app .lead{font-size:18px}.stack-app nav{columns:1}.stack-app section{padding-top:34px}.stack-app .diagram{padding:16px 0 12px;margin:25px 0}.stack-app .eq{padding:12px;font-size:16px}.stack-app .goal{font-size:14px}.stack-app .form-select{font-size:16px}.stack-app .diagram .viz-controls{gap:12px}.stack-app .diagram .form-label{width:100%}.stack-app th,
.stack-app td{padding:9px}.stack-app .scope{font-size:13px}}
@media(prefers-reduced-motion:reduce){.stack-app{scroll-behavior:auto}}
.stack-app .logical-overline{border-top:1px solid var(--card-separator-color);padding-top:.05em}.stack-app .logical-overline>mo:last-child{visibility:hidden}
@media(max-width:360px){.stack-app .diagram{width:100vw;max-width:none;margin-left:-16px;margin-right:-16px}.stack-app .diagram figcaption{padding:0 12px}.stack-app .diagram-live>div>.viz-controls{padding:0 12px}}
@page{size:A4;margin:16mm 16mm 18mm}
@media print{.stack-app{scroll-behavior:auto}.stack-app{background:var(--card-background);color:inherit;line-height:1.85}.stack-app .layout{display:block;max-width:none;padding:0}.stack-app aside,
.stack-app .tools,
.stack-app .figure-link{display:none!important}.stack-app main{max-width:none}.stack-app .cover{padding:10mm 0 8mm;break-after:page}.stack-app h1{font-size:30pt}.stack-app h2{font-size:17pt}.stack-app h3{font-size:11pt}.stack-app h2,
.stack-app h3,
.stack-app summary{break-after:avoid}.stack-app .lead{font-size:13pt}.stack-app .scope,
.stack-app .source-note,
.stack-app .facts{font-size:9pt}.stack-app .eyebrow{font-size:8.5pt}.stack-app section{padding:22px 0 12px;break-before:auto}.stack-app .goal{font-size:9.5pt;margin:14px 0 20px}.stack-app .eq{font-size:11.5pt;padding:11px;margin:16px 0;overflow:visible;break-inside:avoid}.stack-app .eq math{max-width:none}.stack-app table{min-width:0;font-size:8.9pt;line-height:1.7}.stack-app th,
.stack-app td{padding:7px 8px}.stack-app tr{break-inside:avoid}.stack-app .table-wrap{overflow:visible;margin:14px 0}.stack-app p,
.stack-app li{orphans:3;widows:3}.stack-app .diagram{width:100%;max-width:155mm;background:var(--card-background);margin:20px auto;padding:12px 8px;break-inside:avoid}.stack-app .diagram-live{display:none!important}.stack-app .diagram-print{display:block;--font-size-base:14px;font-size:14px;line-height:1.8}.stack-app .diagram-print svg{display:block;width:100%;height:auto!important;max-height:170mm;overflow:visible}.stack-app .diagram-print [aria-live]{font-size:11px;line-height:1.6}.stack-app .diagram figcaption{font-size:8pt;line-height:1.65;margin-top:8px}.stack-app a{color:inherit;text-decoration:none}.stack-app details.answer{break-inside:avoid}.stack-app details.answer:not([open])>.answer-body{display:block!important}.stack-app details::details-content{display:block;content-visibility:visible}.stack-app footer{font-size:9pt;padding:25px 0}.stack-app .chapter-start{break-before:page}.stack-app *{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

@media print{.stack-app .diagram{break-inside:auto}.stack-app .print-variant{break-inside:avoid;margin:0 0 20px}.stack-app .print-state{font-size:9pt;color:inherit;margin:0 0 8px}.stack-app .diagram-print .diode-drawing{max-width:90mm}.stack-app .diagram-print p:last-child{margin-bottom:0}}
.stack-app main li,
.stack-app main p{overflow-wrap:anywhere}.stack-app .collection-math-display,
.stack-app .collection-math-inline{position:relative}.stack-app .collection-math-display{max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;padding-block:.3em}.stack-app .collection-math-display>.katex-display{margin:.35em 0;text-align:inherit}.stack-app .collection-math-inline{display:inline-block;max-width:100%;vertical-align:-.15em;overflow-x:auto;overflow-y:hidden;font-family:var(--base-font-family);background:transparent!important;padding:0!important}.stack-app .collection-math-inline>.katex{font-size:1.04em}.stack-app .collection-math-svg{overflow:visible;pointer-events:none}.stack-app .collection-math-svg .katex{font-size:1em}.stack-app .eq:has(>.katex),
.stack-app .formula:has(>.katex){font-family:inherit}.stack-app .katex-display>.katex{white-space:nowrap} .stack-app .katex .katex-mathml{white-space:nowrap}
.stack-app #diode-gates-primer .diode-drawing{display:block;width:100%;max-width:360px;height:auto;margin:auto}
.stack-app #print-1-0-diode-gates-primer .diode-drawing{display:block;width:100%;max-width:360px;height:auto;margin:auto}

    .stack-app #de-mos-switch .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #de-mos-switch .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #de-mos-switch .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-mos-switch .de-circuit .active{stroke:var(--viz-series-1)}
    .stack-app #de-mos-switch .de-circuit .muted{stroke:var(--border)}
  

    .stack-app #print-2-0-de-mos-switch .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #print-2-0-de-mos-switch .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #print-2-0-de-mos-switch .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-2-0-de-mos-switch .de-circuit .active{stroke:var(--viz-series-1)}
    .stack-app #print-2-0-de-mos-switch .de-circuit .muted{stroke:var(--border)}
  

    .stack-app #de-cmos-inverter .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #de-cmos-inverter .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #de-cmos-inverter .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-cmos-inverter .de-circuit .active{stroke:var(--viz-series-1)}
    .stack-app #de-cmos-inverter .de-circuit .idle{stroke:var(--border)}
  

    .stack-app #print-3-0-de-cmos-inverter .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #print-3-0-de-cmos-inverter .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #print-3-0-de-cmos-inverter .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-3-0-de-cmos-inverter .de-circuit .active{stroke:var(--viz-series-1)}
    .stack-app #print-3-0-de-cmos-inverter .de-circuit .idle{stroke:var(--border)}
  

    .stack-app #nor-waveform-method .de-circuit { display:block; width:100%; overflow:visible; }
    .stack-app #nor-waveform-method .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #nor-waveform-method .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #nor-waveform-method .trace { fill:none; stroke:var(--foreground); stroke-width:2; stroke-linejoin:round; }
    .stack-app #nor-waveform-method .output { stroke:var(--viz-series-1); stroke-width:2.5; }
    .stack-app #nor-waveform-method .grid { stroke:var(--border); stroke-width:1; }
    .stack-app #nor-waveform-method .selection { fill:var(--viz-series-1); fill-opacity:.08; }
  

    .stack-app #print-4-0-nor-waveform-method .de-circuit { display:block; width:100%; overflow:visible; }
    .stack-app #print-4-0-nor-waveform-method .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #print-4-0-nor-waveform-method .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #print-4-0-nor-waveform-method .trace { fill:none; stroke:var(--foreground); stroke-width:2; stroke-linejoin:round; }
    .stack-app #print-4-0-nor-waveform-method .output { stroke:var(--viz-series-1); stroke-width:2.5; }
    .stack-app #print-4-0-nor-waveform-method .grid { stroke:var(--border); stroke-width:1; }
    .stack-app #print-4-0-nor-waveform-method .selection { fill:var(--viz-series-1); fill-opacity:.08; }
  

    .stack-app #gate-delay-exercise-four .de-circuit { display:block; width:100%; }
    .stack-app #gate-delay-exercise-four .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #gate-delay-exercise-four .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #gate-delay-exercise-four .wire { fill:none; stroke:var(--foreground); stroke-width:1.6; stroke-linejoin:round; }
    .stack-app #gate-delay-exercise-four .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.6; }
    .stack-app #gate-delay-exercise-four .trace { fill:none; stroke:var(--foreground); stroke-width:2; stroke-linejoin:round; }
    .stack-app #gate-delay-exercise-four .output { stroke:var(--viz-series-1); stroke-width:2.5; }
    .stack-app #gate-delay-exercise-four .grid { stroke:var(--border); stroke-width:1; }
    .stack-app #gate-delay-exercise-four .guide { stroke:var(--muted-foreground); stroke-width:1; stroke-dasharray:3 4; }
    .stack-app #gate-delay-exercise-four .span { fill:none; stroke:var(--foreground); stroke-width:1; }
  

    .stack-app #print-5-0-gate-delay-exercise-four .de-circuit { display:block; width:100%; }
    .stack-app #print-5-0-gate-delay-exercise-four .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #print-5-0-gate-delay-exercise-four .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #print-5-0-gate-delay-exercise-four .wire { fill:none; stroke:var(--foreground); stroke-width:1.6; stroke-linejoin:round; }
    .stack-app #print-5-0-gate-delay-exercise-four .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.6; }
    .stack-app #print-5-0-gate-delay-exercise-four .trace { fill:none; stroke:var(--foreground); stroke-width:2; stroke-linejoin:round; }
    .stack-app #print-5-0-gate-delay-exercise-four .output { stroke:var(--viz-series-1); stroke-width:2.5; }
    .stack-app #print-5-0-gate-delay-exercise-four .grid { stroke:var(--border); stroke-width:1; }
    .stack-app #print-5-0-gate-delay-exercise-four .guide { stroke:var(--muted-foreground); stroke-width:1; stroke-dasharray:3 4; }
    .stack-app #print-5-0-gate-delay-exercise-four .span { fill:none; stroke:var(--foreground); stroke-width:1; }
  

    .stack-app #de-cmos-gate-networks .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #de-cmos-gate-networks .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #de-cmos-gate-networks .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-cmos-gate-networks .de-circuit .active{stroke:var(--viz-series-1)}
  

    .stack-app #print-6-0-de-cmos-gate-networks .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #print-6-0-de-cmos-gate-networks .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #print-6-0-de-cmos-gate-networks .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-6-0-de-cmos-gate-networks .de-circuit .active{stroke:var(--viz-series-1)}
  

    .stack-app #print-6-1-de-cmos-gate-networks .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #print-6-1-de-cmos-gate-networks .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #print-6-1-de-cmos-gate-networks .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-6-1-de-cmos-gate-networks .de-circuit .active{stroke:var(--viz-series-1)}
  

    .stack-app #de-cmos-compound-paths .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-cmos-compound-paths .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-cmos-compound-paths .de-circuit .small{font-size:12px}
    .stack-app #de-cmos-compound-paths .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-cmos-compound-paths .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #de-cmos-compound-paths .de-circuit .off{stroke:var(--border)}
  

    .stack-app #print-7-0-de-cmos-compound-paths .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-7-0-de-cmos-compound-paths .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-7-0-de-cmos-compound-paths .de-circuit .small{font-size:12px}
    .stack-app #print-7-0-de-cmos-compound-paths .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-7-0-de-cmos-compound-paths .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #print-7-0-de-cmos-compound-paths .de-circuit .off{stroke:var(--border)}
  

    .stack-app #de-mos-exercise-seven-a .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #de-mos-exercise-seven-a .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #de-mos-exercise-seven-a .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-mos-exercise-seven-a .de-circuit .active{stroke:var(--viz-series-1)}
    .stack-app #de-mos-exercise-seven-a .de-circuit .idle{stroke:var(--border)}
  

    .stack-app #print-8-0-de-mos-exercise-seven-a .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #print-8-0-de-mos-exercise-seven-a .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #print-8-0-de-mos-exercise-seven-a .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-8-0-de-mos-exercise-seven-a .de-circuit .active{stroke:var(--viz-series-1)}
    .stack-app #print-8-0-de-mos-exercise-seven-a .de-circuit .idle{stroke:var(--border)}
  

    .stack-app #print-8-1-de-mos-exercise-seven-a .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #print-8-1-de-mos-exercise-seven-a .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #print-8-1-de-mos-exercise-seven-a .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-8-1-de-mos-exercise-seven-a .de-circuit .active{stroke:var(--viz-series-1)}
    .stack-app #print-8-1-de-mos-exercise-seven-a .de-circuit .idle{stroke:var(--border)}
  

    .stack-app #de-cmos-exercise-seven-bc .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-cmos-exercise-seven-bc .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-cmos-exercise-seven-bc .de-circuit .small{font-size:12px}
    .stack-app #de-cmos-exercise-seven-bc .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-cmos-exercise-seven-bc .de-circuit .signal-high{stroke:var(--viz-series-1)}
  

    .stack-app #print-9-0-de-cmos-exercise-seven-bc .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-9-0-de-cmos-exercise-seven-bc .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-9-0-de-cmos-exercise-seven-bc .de-circuit .small{font-size:12px}
    .stack-app #print-9-0-de-cmos-exercise-seven-bc .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-9-0-de-cmos-exercise-seven-bc .de-circuit .signal-high{stroke:var(--viz-series-1)}
  

    .stack-app #print-9-1-de-cmos-exercise-seven-bc .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-9-1-de-cmos-exercise-seven-bc .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-9-1-de-cmos-exercise-seven-bc .de-circuit .small{font-size:12px}
    .stack-app #print-9-1-de-cmos-exercise-seven-bc .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-9-1-de-cmos-exercise-seven-bc .de-circuit .signal-high{stroke:var(--viz-series-1)}
  

    .stack-app #de-gates-as-inverters .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-gates-as-inverters .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-gates-as-inverters .de-circuit .small{font-size:12px}
    .stack-app #de-gates-as-inverters .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-gates-as-inverters .de-circuit .high{stroke:var(--viz-series-1)}
  

    .stack-app #print-10-0-de-gates-as-inverters .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-10-0-de-gates-as-inverters .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-10-0-de-gates-as-inverters .de-circuit .small{font-size:12px}
    .stack-app #print-10-0-de-gates-as-inverters .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-10-0-de-gates-as-inverters .de-circuit .high{stroke:var(--viz-series-1)}
  

    .stack-app #de-unused-gate-inputs .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-unused-gate-inputs .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-unused-gate-inputs .de-circuit .small{font-size:12px}
    .stack-app #de-unused-gate-inputs .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-unused-gate-inputs .de-circuit .high{stroke:var(--viz-series-1)}
  

    .stack-app #print-11-0-de-unused-gate-inputs .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-11-0-de-unused-gate-inputs .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-11-0-de-unused-gate-inputs .de-circuit .small{font-size:12px}
    .stack-app #print-11-0-de-unused-gate-inputs .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-11-0-de-unused-gate-inputs .de-circuit .high{stroke:var(--viz-series-1)}
  

    .stack-app #de-open-drain .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #de-open-drain .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #de-open-drain .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-open-drain .de-circuit .active{stroke:var(--viz-series-1)}
  

    .stack-app #print-12-0-de-open-drain .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #print-12-0-de-open-drain .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #print-12-0-de-open-drain .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-12-0-de-open-drain .de-circuit .active{stroke:var(--viz-series-1)}
  

    .stack-app #od-pullup-exercises .de-circuit { display:block; width:100%; }
    .stack-app #od-pullup-exercises .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #od-pullup-exercises .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #od-pullup-exercises .wire { fill:none; stroke:var(--foreground); stroke-width:1.5; stroke-linejoin:round; }
    .stack-app #od-pullup-exercises .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.5; }
    .stack-app #od-pullup-exercises .junction { fill:var(--foreground); }
    .stack-app #od-pullup-exercises .current { fill:none; stroke:var(--viz-series-1); stroke-width:2; }
    .stack-app #od-pullup-exercises .arrow { fill:var(--viz-series-1); }
  

    .stack-app #print-13-0-od-pullup-exercises .de-circuit { display:block; width:100%; }
    .stack-app #print-13-0-od-pullup-exercises .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #print-13-0-od-pullup-exercises .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #print-13-0-od-pullup-exercises .wire { fill:none; stroke:var(--foreground); stroke-width:1.5; stroke-linejoin:round; }
    .stack-app #print-13-0-od-pullup-exercises .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.5; }
    .stack-app #print-13-0-od-pullup-exercises .junction { fill:var(--foreground); }
    .stack-app #print-13-0-od-pullup-exercises .current { fill:none; stroke:var(--viz-series-1); stroke-width:2; }
    .stack-app #print-13-0-od-pullup-exercises .arrow { fill:var(--viz-series-1); }
  

    .stack-app #print-13-1-od-pullup-exercises .de-circuit { display:block; width:100%; }
    .stack-app #print-13-1-od-pullup-exercises .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #print-13-1-od-pullup-exercises .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #print-13-1-od-pullup-exercises .wire { fill:none; stroke:var(--foreground); stroke-width:1.5; stroke-linejoin:round; }
    .stack-app #print-13-1-od-pullup-exercises .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.5; }
    .stack-app #print-13-1-od-pullup-exercises .junction { fill:var(--foreground); }
    .stack-app #print-13-1-od-pullup-exercises .current { fill:none; stroke:var(--viz-series-1); stroke-width:2; }
    .stack-app #print-13-1-od-pullup-exercises .arrow { fill:var(--viz-series-1); }
  

    .stack-app #de-mos-pass-levels .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-mos-pass-levels .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-mos-pass-levels .de-circuit .small{font-size:12px}
    .stack-app #de-mos-pass-levels .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #de-mos-pass-levels .de-circuit .channel-on{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #de-mos-pass-levels .de-circuit .channel-off{stroke:var(--border)}
    .stack-app #de-mos-pass-levels .de-circuit .channel-edge{stroke:currentColor;stroke-dasharray:3 3}
  

    .stack-app #print-14-0-de-mos-pass-levels .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-14-0-de-mos-pass-levels .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-14-0-de-mos-pass-levels .de-circuit .small{font-size:12px}
    .stack-app #print-14-0-de-mos-pass-levels .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #print-14-0-de-mos-pass-levels .de-circuit .channel-on{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #print-14-0-de-mos-pass-levels .de-circuit .channel-off{stroke:var(--border)}
    .stack-app #print-14-0-de-mos-pass-levels .de-circuit .channel-edge{stroke:currentColor;stroke-dasharray:3 3}
  

    .stack-app #print-14-1-de-mos-pass-levels .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-14-1-de-mos-pass-levels .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-14-1-de-mos-pass-levels .de-circuit .small{font-size:12px}
    .stack-app #print-14-1-de-mos-pass-levels .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #print-14-1-de-mos-pass-levels .de-circuit .channel-on{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #print-14-1-de-mos-pass-levels .de-circuit .channel-off{stroke:var(--border)}
    .stack-app #print-14-1-de-mos-pass-levels .de-circuit .channel-edge{stroke:currentColor;stroke-dasharray:3 3}
  

    .stack-app #print-14-2-de-mos-pass-levels .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-14-2-de-mos-pass-levels .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-14-2-de-mos-pass-levels .de-circuit .small{font-size:12px}
    .stack-app #print-14-2-de-mos-pass-levels .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #print-14-2-de-mos-pass-levels .de-circuit .channel-on{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #print-14-2-de-mos-pass-levels .de-circuit .channel-off{stroke:var(--border)}
    .stack-app #print-14-2-de-mos-pass-levels .de-circuit .channel-edge{stroke:currentColor;stroke-dasharray:3 3}
  

    .stack-app #de-textbook-tg-structure .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-textbook-tg-structure .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-textbook-tg-structure .de-circuit .small{font-size:12px}
    .stack-app #de-textbook-tg-structure .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #de-textbook-tg-structure .de-circuit .on{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #de-textbook-tg-structure .de-circuit .off{stroke:var(--border)}
    .stack-app #de-textbook-tg-structure .de-circuit .edge{stroke:currentColor;stroke-dasharray:3 3}
  

    .stack-app #print-15-0-de-textbook-tg-structure .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-15-0-de-textbook-tg-structure .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-15-0-de-textbook-tg-structure .de-circuit .small{font-size:12px}
    .stack-app #print-15-0-de-textbook-tg-structure .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #print-15-0-de-textbook-tg-structure .de-circuit .on{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #print-15-0-de-textbook-tg-structure .de-circuit .off{stroke:var(--border)}
    .stack-app #print-15-0-de-textbook-tg-structure .de-circuit .edge{stroke:currentColor;stroke-dasharray:3 3}
  

    .stack-app #de-textbook-tg-xor .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-textbook-tg-xor .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-textbook-tg-xor .de-circuit .small{font-size:12px}
    .stack-app #de-textbook-tg-xor .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #de-textbook-tg-xor .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
  

    .stack-app #print-16-0-de-textbook-tg-xor .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-16-0-de-textbook-tg-xor .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-16-0-de-textbook-tg-xor .de-circuit .small{font-size:12px}
    .stack-app #print-16-0-de-textbook-tg-xor .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #print-16-0-de-textbook-tg-xor .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
  

    .stack-app #de-textbook-analog-switch .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-textbook-analog-switch .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-textbook-analog-switch .de-circuit .small{font-size:12px}
    .stack-app #de-textbook-analog-switch .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #de-textbook-analog-switch .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
  

    .stack-app #print-17-0-de-textbook-analog-switch .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-17-0-de-textbook-analog-switch .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-17-0-de-textbook-analog-switch .de-circuit .small{font-size:12px}
    .stack-app #print-17-0-de-textbook-analog-switch .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #print-17-0-de-textbook-analog-switch .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
  

    .stack-app #print-17-1-de-textbook-analog-switch .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-17-1-de-textbook-analog-switch .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-17-1-de-textbook-analog-switch .de-circuit .small{font-size:12px}
    .stack-app #print-17-1-de-textbook-analog-switch .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .stack-app #print-17-1-de-textbook-analog-switch .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
  

    .stack-app #de-transmission-exercise-seven .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #de-transmission-exercise-seven .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #de-transmission-exercise-seven .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-transmission-exercise-seven .de-circuit .active{stroke:var(--viz-series-1)}
    .stack-app #de-transmission-exercise-seven .de-circuit .junction{fill:currentColor}
  

    .stack-app #print-18-0-de-transmission-exercise-seven .de-circuit{width:100%;display:block;color:inherit}
    .stack-app #print-18-0-de-transmission-exercise-seven .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base)}
    .stack-app #print-18-0-de-transmission-exercise-seven .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-18-0-de-transmission-exercise-seven .de-circuit .active{stroke:var(--viz-series-1)}
    .stack-app #print-18-0-de-transmission-exercise-seven .de-circuit .junction{fill:currentColor}
  

    .stack-app #de-transmission-selector-waveform .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-transmission-selector-waveform .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-transmission-selector-waveform .de-circuit .small{font-size:12px}
    .stack-app #de-transmission-selector-waveform .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-transmission-selector-waveform .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #de-transmission-selector-waveform .de-circuit .inactive{stroke:var(--border)}
    .stack-app #de-transmission-selector-waveform .de-circuit .grid{fill:none;stroke:var(--border);stroke-width:1}
    .stack-app #de-transmission-selector-waveform .de-circuit .selected{fill:var(--viz-series-1);opacity:0.08}
  

    .stack-app #print-19-0-de-transmission-selector-waveform .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-19-0-de-transmission-selector-waveform .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-19-0-de-transmission-selector-waveform .de-circuit .small{font-size:12px}
    .stack-app #print-19-0-de-transmission-selector-waveform .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-19-0-de-transmission-selector-waveform .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #print-19-0-de-transmission-selector-waveform .de-circuit .inactive{stroke:var(--border)}
    .stack-app #print-19-0-de-transmission-selector-waveform .de-circuit .grid{fill:none;stroke:var(--border);stroke-width:1}
    .stack-app #print-19-0-de-transmission-selector-waveform .de-circuit .selected{fill:var(--viz-series-1);opacity:0.08}
  

    .stack-app #tg-disconnected-output .de-circuit { display:block; width:100%; }
    .stack-app #tg-disconnected-output .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #tg-disconnected-output .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #tg-disconnected-output .wire { fill:none; stroke:var(--foreground); stroke-width:1.5; stroke-linejoin:round; }
    .stack-app #tg-disconnected-output .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.5; }
    .stack-app #tg-disconnected-output .junction { fill:var(--foreground); }
    .stack-app #tg-disconnected-output .active { stroke:var(--viz-series-1); stroke-width:2.2; }
  

    .stack-app #print-20-0-tg-disconnected-output .de-circuit { display:block; width:100%; }
    .stack-app #print-20-0-tg-disconnected-output .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #print-20-0-tg-disconnected-output .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #print-20-0-tg-disconnected-output .wire { fill:none; stroke:var(--foreground); stroke-width:1.5; stroke-linejoin:round; }
    .stack-app #print-20-0-tg-disconnected-output .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.5; }
    .stack-app #print-20-0-tg-disconnected-output .junction { fill:var(--foreground); }
    .stack-app #print-20-0-tg-disconnected-output .active { stroke:var(--viz-series-1); stroke-width:2.2; }
  

    .stack-app #de-tri-state-output-and-bus .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #de-tri-state-output-and-bus .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #de-tri-state-output-and-bus .de-circuit .small{font-size:12px}
    .stack-app #de-tri-state-output-and-bus .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #de-tri-state-output-and-bus .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #de-tri-state-output-and-bus .de-circuit .off{stroke:var(--border)}
    .stack-app #de-tri-state-output-and-bus .de-circuit .conflict{stroke:var(--viz-series-2);stroke-width:2.5}
  

    .stack-app #print-21-0-de-tri-state-output-and-bus .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-21-0-de-tri-state-output-and-bus .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-21-0-de-tri-state-output-and-bus .de-circuit .small{font-size:12px}
    .stack-app #print-21-0-de-tri-state-output-and-bus .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-21-0-de-tri-state-output-and-bus .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #print-21-0-de-tri-state-output-and-bus .de-circuit .off{stroke:var(--border)}
    .stack-app #print-21-0-de-tri-state-output-and-bus .de-circuit .conflict{stroke:var(--viz-series-2);stroke-width:2.5}
  

    .stack-app #print-21-1-de-tri-state-output-and-bus .de-circuit{display:block;width:100%;color:inherit}
    .stack-app #print-21-1-de-tri-state-output-and-bus .de-circuit text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-21-1-de-tri-state-output-and-bus .de-circuit .small{font-size:12px}
    .stack-app #print-21-1-de-tri-state-output-and-bus .de-circuit .wire{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
    .stack-app #print-21-1-de-tri-state-output-and-bus .de-circuit .active{stroke:var(--viz-series-1);stroke-width:2.5}
    .stack-app #print-21-1-de-tri-state-output-and-bus .de-circuit .off{stroke:var(--border)}
    .stack-app #print-21-1-de-tri-state-output-and-bus .de-circuit .conflict{stroke:var(--viz-series-2);stroke-width:2.5}
  

    .stack-app #high-impedance-exercise-eight .de-panels { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:16px; }
    .stack-app #high-impedance-exercise-eight .de-circuit { display:block; width:100%; }
    .stack-app #high-impedance-exercise-eight .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #high-impedance-exercise-eight .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #high-impedance-exercise-eight .wire { fill:none; stroke:var(--foreground); stroke-width:1.5; stroke-linejoin:round; }
    .stack-app #high-impedance-exercise-eight .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.5; }
    .stack-app #high-impedance-exercise-eight .junction { fill:var(--foreground); }
    .stack-app #high-impedance-exercise-eight .trace { fill:none; stroke:var(--foreground); stroke-width:2; stroke-linejoin:round; }
    .stack-app #high-impedance-exercise-eight .output { stroke:var(--viz-series-1); stroke-width:2.3; }
    .stack-app #high-impedance-exercise-eight .grid { stroke:var(--border); stroke-width:1; }
    .stack-app #high-impedance-exercise-eight .selection { fill:var(--viz-series-1); fill-opacity:.08; }
    .stack-app #high-impedance-exercise-eight .z-stroke { fill:none; stroke:var(--muted-foreground); stroke-width:1; stroke-opacity:.35; }
  

    .stack-app #print-22-0-high-impedance-exercise-eight .de-panels { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:16px; }
    .stack-app #print-22-0-high-impedance-exercise-eight .de-circuit { display:block; width:100%; }
    .stack-app #print-22-0-high-impedance-exercise-eight .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #print-22-0-high-impedance-exercise-eight .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #print-22-0-high-impedance-exercise-eight .wire { fill:none; stroke:var(--foreground); stroke-width:1.5; stroke-linejoin:round; }
    .stack-app #print-22-0-high-impedance-exercise-eight .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.5; }
    .stack-app #print-22-0-high-impedance-exercise-eight .junction { fill:var(--foreground); }
    .stack-app #print-22-0-high-impedance-exercise-eight .trace { fill:none; stroke:var(--foreground); stroke-width:2; stroke-linejoin:round; }
    .stack-app #print-22-0-high-impedance-exercise-eight .output { stroke:var(--viz-series-1); stroke-width:2.3; }
    .stack-app #print-22-0-high-impedance-exercise-eight .grid { stroke:var(--border); stroke-width:1; }
    .stack-app #print-22-0-high-impedance-exercise-eight .selection { fill:var(--viz-series-1); fill-opacity:.08; }
    .stack-app #print-22-0-high-impedance-exercise-eight .z-stroke { fill:none; stroke:var(--muted-foreground); stroke-width:1; stroke-opacity:.35; }
  

    .stack-app #cmos-input-exercise-twelve .de-panels { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:16px; }
    .stack-app #cmos-input-exercise-twelve .de-circuit { display:block; width:100%; }
    .stack-app #cmos-input-exercise-twelve .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #cmos-input-exercise-twelve .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #cmos-input-exercise-twelve .wire { fill:none; stroke:var(--foreground); stroke-width:1.5; stroke-linejoin:round; }
    .stack-app #cmos-input-exercise-twelve .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.5; }
    .stack-app #cmos-input-exercise-twelve .junction { fill:var(--foreground); }
    .stack-app #cmos-input-exercise-twelve .active { stroke:var(--viz-series-1); stroke-width:2.2; }
  

    .stack-app #print-23-0-cmos-input-exercise-twelve .de-panels { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:16px; }
    .stack-app #print-23-0-cmos-input-exercise-twelve .de-circuit { display:block; width:100%; }
    .stack-app #print-23-0-cmos-input-exercise-twelve .de-circuit text { fill:var(--foreground); font-size:var(--font-size-base); font-weight:400; }
    .stack-app #print-23-0-cmos-input-exercise-twelve .de-circuit .small { font-size:calc(var(--font-size-base) * .86); }
    .stack-app #print-23-0-cmos-input-exercise-twelve .wire { fill:none; stroke:var(--foreground); stroke-width:1.5; stroke-linejoin:round; }
    .stack-app #print-23-0-cmos-input-exercise-twelve .gate { fill:var(--background); stroke:var(--foreground); stroke-width:1.5; }
    .stack-app #print-23-0-cmos-input-exercise-twelve .junction { fill:var(--foreground); }
    .stack-app #print-23-0-cmos-input-exercise-twelve .active { stroke:var(--viz-series-1); stroke-width:2.2; }
  

    .stack-app #bjt-loaded-lesson .de-circuit{display:block;width:100%;overflow:visible}
    .stack-app #bjt-loaded-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #bjt-loaded-lesson .active{fill:none;stroke:var(--viz-series-1);stroke-width:3}
    .stack-app #bjt-loaded-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #bjt-loaded-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-24-0-bjt-loaded-lesson .de-circuit{display:block;width:100%;overflow:visible}
    .stack-app #print-24-0-bjt-loaded-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-24-0-bjt-loaded-lesson .active{fill:none;stroke:var(--viz-series-1);stroke-width:3}
    .stack-app #print-24-0-bjt-loaded-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-24-0-bjt-loaded-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-24-1-bjt-loaded-lesson .de-circuit{display:block;width:100%;overflow:visible}
    .stack-app #print-24-1-bjt-loaded-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-24-1-bjt-loaded-lesson .active{fill:none;stroke:var(--viz-series-1);stroke-width:3}
    .stack-app #print-24-1-bjt-loaded-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-24-1-bjt-loaded-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #ttl-internal-lesson .de-circuit{display:block;width:100%}
    .stack-app #ttl-internal-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #ttl-internal-lesson .current{fill:none;stroke:var(--viz-series-1);stroke-width:3}
    .stack-app #ttl-internal-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #ttl-internal-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-25-0-ttl-internal-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-25-0-ttl-internal-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-25-0-ttl-internal-lesson .current{fill:none;stroke:var(--viz-series-1);stroke-width:3}
    .stack-app #print-25-0-ttl-internal-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-25-0-ttl-internal-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #ttl-fanout-lesson .de-circuit{display:block;width:100%}
    .stack-app #ttl-fanout-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #ttl-fanout-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #ttl-fanout-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-26-0-ttl-fanout-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-26-0-ttl-fanout-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-26-0-ttl-fanout-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-26-0-ttl-fanout-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #ttl-input-r-lesson .de-circuit{display:block;width:100%}
    .stack-app #ttl-input-r-lesson [hidden]{display:none!important}
    .stack-app #ttl-input-r-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #ttl-input-r-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #ttl-input-r-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-27-0-ttl-input-r-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-27-0-ttl-input-r-lesson [hidden]{display:none!important}
    .stack-app #print-27-0-ttl-input-r-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-27-0-ttl-input-r-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-27-0-ttl-input-r-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-27-1-ttl-input-r-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-27-1-ttl-input-r-lesson [hidden]{display:none!important}
    .stack-app #print-27-1-ttl-input-r-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-27-1-ttl-input-r-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-27-1-ttl-input-r-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-27-2-ttl-input-r-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-27-2-ttl-input-r-lesson [hidden]{display:none!important}
    .stack-app #print-27-2-ttl-input-r-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-27-2-ttl-input-r-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-27-2-ttl-input-r-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #ttl-meter-lesson .de-circuit{display:block;width:100%}
    .stack-app #ttl-meter-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #ttl-meter-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #ttl-meter-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-28-0-ttl-meter-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-28-0-ttl-meter-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-28-0-ttl-meter-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-28-0-ttl-meter-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #ttl-delay-power-lesson .de-circuit{display:block;width:100%}
    .stack-app #ttl-delay-power-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #ttl-delay-power-lesson .guide{fill:none;stroke:var(--border);stroke-width:1;stroke-dasharray:4 4}
    .stack-app #ttl-delay-power-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #ttl-delay-power-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-29-0-ttl-delay-power-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-29-0-ttl-delay-power-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-29-0-ttl-delay-power-lesson .guide{fill:none;stroke:var(--border);stroke-width:1;stroke-dasharray:4 4}
    .stack-app #print-29-0-ttl-delay-power-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-29-0-ttl-delay-power-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #ttl-oc-lesson .de-circuit{display:block;width:100%}
    .stack-app #ttl-oc-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #ttl-oc-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #ttl-oc-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-30-0-ttl-oc-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-30-0-ttl-oc-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-30-0-ttl-oc-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-30-0-ttl-oc-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #ecl-bicmos-lesson .de-circuit{display:block;width:100%}
    .stack-app #ecl-bicmos-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #ecl-bicmos-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #ecl-bicmos-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-31-0-ecl-bicmos-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-31-0-ecl-bicmos-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-31-0-ecl-bicmos-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-31-0-ecl-bicmos-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-31-1-ecl-bicmos-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-31-1-ecl-bicmos-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-31-1-ecl-bicmos-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-31-1-ecl-bicmos-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #logic-interface-lesson .de-circuit{display:block;width:100%}
    .stack-app #logic-interface-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #logic-interface-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #logic-interface-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-32-0-logic-interface-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-32-0-logic-interface-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-32-0-logic-interface-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-32-0-logic-interface-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-32-1-logic-interface-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-32-1-logic-interface-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-32-1-logic-interface-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-32-1-logic-interface-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-32-2-logic-interface-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-32-2-logic-interface-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-32-2-logic-interface-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-32-2-logic-interface-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-32-3-logic-interface-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-32-3-logic-interface-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-32-3-logic-interface-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-32-3-logic-interface-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  

    .stack-app #print-32-4-logic-interface-lesson .de-circuit{display:block;width:100%}
    .stack-app #print-32-4-logic-interface-lesson .wire{fill:none;stroke:var(--foreground);stroke-width:1.5}
    .stack-app #print-32-4-logic-interface-lesson svg text{fill:var(--foreground);font-size:var(--font-size-base);font-weight:400}
    .stack-app #print-32-4-logic-interface-lesson svg .small{font-size:calc(var(--font-size-base)*.857)}
  