*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Georgia,Times New Roman,serif;color:#1a1a1a;background:#fafafa;line-height:1.6;font-size:18px}#app{max-width:48em;margin:0 auto;padding:2em 1.5em 5em}header{margin-bottom:3em}header h1{font-size:1.8em;font-weight:400;margin:0 0 .3em}header p{color:#555;margin:0}.hdl-guide{margin-bottom:2em;border:1px solid #ddd;border-radius:4px;padding:0 1em}.hdl-guide summary{cursor:pointer;padding:.5em 0;font-weight:700;color:#555}.hdl-guide pre{background:#f5f5f5;padding:.8em;border-radius:4px;font-size:.85em;overflow-x:auto}.hdl-guide code{font-family:SF Mono,Consolas,Liberation Mono,monospace}.hdl-guide p{color:#555;line-height:1.5}.bool-ref-table{font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:.9em;margin:.5em 0;border-spacing:0 .3em}.bool-ref-table td:first-child{padding-right:1.5em;white-space:nowrap}.bool-ref-table td:last-child{color:#555}.exercise{margin-bottom:3em;padding-bottom:3em;border-bottom:1px solid #ddd}.exercise:last-child{border-bottom:none}.exercise h2{font-weight:400;font-size:1.4em;margin:0 0 .3em}.exercise-description{color:#333;margin:.2em 0}.exercise-analogy{color:#666;font-style:italic;margin:.2em 0}.available-chips{font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:.85em;color:#2aa198;margin:.5em 0}.exercise h3{font-weight:400;font-size:1em;color:#555;margin:1.5em 0 .5em}.editor-container{border:2px solid #2aa198;border-radius:4px;overflow:hidden;margin:1em 0}.cm-editor{max-height:300px}.cm-editor.cm-focused{outline:none}.exercise-buttons{display:flex;gap:.5em}.run-btn{background:#2aa198;color:#fff;border:none;padding:.5em 1.5em;font-size:.9em;font-family:inherit;cursor:pointer;border-radius:4px}.run-btn:hover{background:#1a8a80}.reset-exercise-btn{background:none;border:1px solid #ccc;color:#888;padding:.5em 1.5em;font-size:.9em;font-family:inherit;cursor:pointer;border-radius:4px}.reset-exercise-btn:hover{border-color:#c00;color:#c00}.hint-btn{background:none;border:1px solid #ccc;color:#888;padding:.5em 1.5em;font-size:.9em;font-family:inherit;cursor:pointer;border-radius:4px}.hint-btn:hover:not(:disabled){border-color:#e8a317;color:#e8a317}.hint-btn:disabled{opacity:.5;cursor:default}.hint-area{margin:.5em 0}.hint{background:#fdf8e8;border-left:3px solid #e8a317;padding:.5em .8em;margin:.3em 0;font-size:.95em;color:#555}.vim-toggle{float:right;margin-right:.5em;background:none;border:1px solid #ccc;color:#888;padding:.3em .8em;font-size:.8em;font-family:inherit;cursor:pointer;border-radius:4px}.vim-toggle:hover{border-color:#2aa198;color:#2aa198}.reset-btn{float:right;background:none;border:1px solid #ccc;color:#888;padding:.3em .8em;font-size:.8em;font-family:inherit;cursor:pointer;border-radius:4px}.reset-btn:hover{border-color:#c00;color:#c00}.results-area{margin-top:1em}.truth-table{border-collapse:collapse;font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:14px;margin:.5em 0}.truth-table th,.truth-table td{border:1px solid #ccc;padding:.3em .8em;text-align:center}.truth-table thead th{background:#eee;font-weight:700}.truth-table tbody tr:nth-child(2n){background:#f5f5f5}.truth-table .expected-header{background:#e0f0e0}.truth-table .yours-header{background:#e0e8f0}.truth-table td.match{background:#d4edda}.truth-table td.mismatch{background:#f8d7da;color:#721c24;font-weight:700}.success-indicator{color:#28a745;font-weight:700;font-size:1.1em;margin:.5em 0}pre.error{background:#fff0f0;border:1px solid #ffcccc;color:#c00;padding:.8em;border-radius:4px;font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:13px;white-space:pre-wrap;margin:0}.circuit-diagram{margin:1em 0;overflow-x:auto}.circuit-diagram svg{display:block;max-width:100%;height:auto}.gate-box{fill:#fff;stroke:#2aa198;stroke-width:2}.wire{stroke:#999;stroke-width:1.5;fill:none}.pin-dot{fill:#2aa198}.wire-label{font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:10px;fill:#777;paint-order:stroke;stroke:#fafafa;stroke-width:3px}.gate-label{font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:13px;fill:#1a1a1a;text-anchor:middle;dominant-baseline:central}.pin-label{font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:12px;fill:#1a1a1a}.constant-label{font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:10px;fill:#999}.exercise--tutorial{background:#f0f8f6;border:1px solid #c8e0da;border-radius:6px;padding:1.5em}.tutorial-badge{display:inline-block;background:#2aa198;color:#fff;font-size:.5em;font-weight:700;padding:.15em .5em;border-radius:3px;vertical-align:middle;margin-left:.5em;text-transform:uppercase}.tutorial-lead-in{color:#2aa198;font-style:italic}.walkthrough-btn{background:none;border:1px solid #2aa198;color:#2aa198;padding:.5em 1.5em;font-size:.9em;font-family:inherit;cursor:pointer;border-radius:4px}.walkthrough-btn:hover:not(:disabled){background:#2aa198;color:#fff}.walkthrough-btn:disabled{opacity:.5;cursor:default}.tutorial-explanation{background:#e8f5f3;border-left:3px solid #2aa198;padding:.5em .8em;margin:.5em 0;color:#555;line-height:1.5}@media(max-width:600px){#app{padding:1em .75em 3em}.truth-table{font-size:12px}.truth-table th,.truth-table td{padding:.2em .4em}}
