:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#142d32;background:#f9fcfa;font-synthesis:none;line-height:1.6;--teal: #04d9c4;--orange: #ff6a00;--magenta: #ff2d92;--green: #18e36b;--ink: #142d32;--muted: #466068}*{box-sizing:border-box}body{margin:0}a{color:#075e59;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a.button{cursor:pointer}button,.button{border:1px solid #b4c7c4;border-radius:7px;padding:.55rem .85rem;min-height:44px;background:#fff;color:var(--ink);font-weight:650}.button{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none}button:hover,.button:hover{background:#e5f9f2}button:disabled{opacity:.5;cursor:default}.primary{background:var(--teal);border-color:#087e73}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #80264f;outline-offset:3px}.skip-link{position:absolute;top:-100px;left:1rem;background:#fff;padding:1rem;z-index:100}.skip-link:focus{top:1rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,4rem);border-bottom:1px solid #cddbd5;background:#fff}.site-header nav{display:flex;gap:1.4rem;flex-wrap:wrap}.site-header a{text-decoration:none}.site-header nav a[aria-current]{border-bottom:3px solid var(--orange)}.wordmark{font-size:1.2rem;font-weight:850;color:var(--ink)}.wordmark span{font-size:.75rem;letter-spacing:.12em}.brand{font-weight:900;color:var(--ink);letter-spacing:.14em}.hero{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.3fr 1fr;gap:4rem;padding:5rem 2rem}.hero h1{font-size:clamp(2.7rem,6vw,5.8rem);line-height:1.03;letter-spacing:-.05em;margin:1rem 0}.hero h1 em{font-style:normal;color:#086a5b}.hero p{max-width:38rem}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.13em;font-weight:800;color:#47615c}.lede{font-size:1.4rem}.hero-program{align-self:center;background:#fff9e8;border:2px solid var(--ink);border-radius:12px;padding:2rem;box-shadow:10px 10px 0 var(--teal);transform:rotate(1deg)}pre,code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}pre{white-space:pre-wrap;overflow-wrap:anywhere}.hero-program pre{font-size:2.5rem;line-height:1.5}.hero-output{border-top:1px solid #c7bda5;padding-top:1rem;font-size:.8rem;letter-spacing:.1em}.hero-output strong{display:block;font-size:3rem;letter-spacing:0}.reading-section{max-width:1100px;margin:0 auto;padding:3rem 1.5rem}.reading-section>p{max-width:75ch}.reading-section h1,.page-intro h1{font-size:clamp(2rem,4vw,3rem);line-height:1.15;letter-spacing:-.03em}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin:2rem 0}.steps article{border-top:3px solid var(--orange);padding-top:1rem}.steps span{font-family:ui-monospace,monospace;font-size:.85rem}.page-intro{max-width:1440px;margin:auto;padding:2rem 1.5rem 1rem}.panel{border:1px solid #bdcfcb;border-radius:10px;background:#fff;padding:1.2rem}.muted{color:var(--muted)}.error{border-left:4px solid #ad2349;background:#fff1f3;color:#87213e;padding:.7rem 1rem}.field{display:flex;flex-direction:column;gap:.3rem}input,select,textarea{border:1px solid #8aaca6;border-radius:5px;padding:.5rem;background:#fff;color:var(--ink)}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;margin:1.5rem 0;text-align:start}caption{text-align:start;font-weight:800;margin-bottom:.6rem}th,td{padding:.8rem;border-bottom:1px solid #cddbd5}tbody th{font-size:.9rem}td.emoji{font-size:1.5rem}.site-footer{padding:2.5rem 1.5rem;text-align:center;border-top:1px solid #cddbd5;background:#edf6f1}.lab{max-width:1440px;margin:auto;padding:1rem 1.5rem 3rem}.lab-toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.lab-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.2rem;margin-top:1rem}.lab-editor textarea{width:100%;min-height:310px;font-family:ui-monospace,monospace;line-height:1.75;tab-size:2;direction:ltr;text-align:left}.lab-palette{display:flex;flex-wrap:wrap;gap:.35rem;margin:1rem 0}.lab-palette button{min-width:44px}.lab-registers{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.lab-registers>*{border:1px solid #bed6c8;border-radius:5px;padding:.5rem;background:#f4fbf7}.lab-memory-grid{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:3px;direction:ltr}.memory-cell{font-size:.65rem;text-align:center;border:1px solid #c4d6d1;border-radius:3px;min-width:0;padding:.15rem;background:#f4f9f7;overflow:hidden}.memory-cell.read{border:2px dashed #00534c;background:#b8f4e9}.memory-cell.write{border:2px solid #8d3a00;background:#ffdec0}.lab-output pre{background:#f0f8f3;border-left:4px solid var(--green);padding:1rem;min-height:5rem}.lab-share input{width:100%;font-family:monospace}.lab-trace{margin-top:1rem}.lab-trace ol{max-height:200px;overflow:auto}.lab-status{margin:.6rem 0}.lab-breakpoints{margin:1rem 0}@media(max-width:800px){.site-header{flex-wrap:wrap}.site-header nav{order:3;width:100%;gap:1rem}.hero{grid-template-columns:1fr;gap:2rem;padding:2.5rem 1.5rem}.hero-program{margin-inline-end:10px}.steps,.lab-grid{grid-template-columns:1fr}.lab{padding:1rem .7rem 2rem}.lab-memory-grid{grid-template-columns:repeat(16,minmax(0,1fr))}.panel{padding:.8rem}.memory-cell{font-size:.58rem}.site-header nav a{padding:.4rem 0}.lab-toolbar{gap:.4rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media print{.site-header,.site-footer,.lab,.skip-link,.no-print{display:none!important}body{background:#fff;color:#000}.reading-section{max-width:none;padding:0}a{color:inherit;text-decoration:none}pre,article{break-inside:avoid}}.example{display:grid;grid-template-columns:1fr 1fr;gap:1rem 2rem;border-top:2px solid #cddbd5;padding:1.5rem 0}.example h2{margin:0}.example pre{background:#eef6f1;padding:1rem;max-height:220px;overflow:auto;margin:0}.example>div:last-child{grid-column:1/-1}@media(max-width:700px){.example{grid-template-columns:1fr}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lab-machine{display:flex;flex-direction:column;gap:1rem}.lab-registers dd{margin:0;font:700 1.25rem ui-monospace,monospace;overflow-wrap:anywhere}.lab-cpu-meta{font-size:.9rem}.lab-cpu-meta>div{display:flex;flex-wrap:wrap;gap:.7rem;padding:.3rem 0}.lab-cpu-meta dt{font-weight:700}.lab-cpu-meta dd{margin:0}.lab-editor-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}.lab-memory,.lab-trace{margin-top:1rem}.memory-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.72rem;line-height:1.2;cursor:pointer}.memory-cell.memory-read{border:2px dashed #00534c;background:#b8f4e9}.memory-cell.memory-written{border:2px solid #8d3a00;background:#ffdec0}.memory-cell[aria-pressed=true]{outline:2px solid #642164;outline-offset:1px}.memory-cell .memory-address{font-size:.65rem;color:#415b54}.memory-cell .memory-marker{height:.8rem;font-size:.65rem;font-weight:800}.lab-console{background:#eef8f1;border-left:4px solid #137a45;padding:.6rem 1rem;font:1rem/1.7 ui-monospace,monospace;min-height:85px;max-height:200px;overflow:auto}.lab-output form,.lab-memory form,.lab-trace form,.lab-breakpoint-controls{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.lab-output input,.lab-memory input,.lab-trace input{max-width:130px}.lab-notice{padding:.8rem;border:1px solid #68aa96;background:#e1f6e9}.palette-name{font-size:.65rem;display:block}.lab-trace-list{display:flex;flex-direction:column;gap:.3rem}.lab-trace-list button{text-align:start;font-family:ui-monospace,monospace;font-size:.8rem}.lab-trace-snapshots pre{max-height:300px;overflow:auto}.lab-instruction-list{padding-left:1rem}.lab-instruction-list li{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.3rem 0}.lab-instruction-list li[aria-current]{background:#e4fbea;border-left:3px solid #176a3a}.lab-share textarea{width:100%;direction:ltr;font-family:ui-monospace,monospace;font-size:.8rem}.lab summary{font-weight:750;cursor:pointer;padding:.3rem 0;min-height:44px}@media(max-width:850px){.lab-memory-grid{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(max-width:650px){.lab-memory-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}@media(max-width:480px){.lab-memory-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.site-header{gap:.6rem}.wordmark{font-size:1rem}.hero-program{padding:1.3rem}.lab-registers{grid-template-columns:repeat(2,1fr)}}.lab-code-wrap{display:flex;align-items:stretch;border:1px solid #8aaca6;border-radius:5px;overflow:hidden;direction:ltr}.lab-code-wrap textarea{flex:1;min-width:0;border:0;border-radius:0;resize:vertical;margin:0;line-height:1.75;padding:.5rem;min-height:310px}.lab-line-numbers{overflow:hidden;min-width:38px;padding:.5rem .3rem;background:#edf5ef;font:1rem/1.75 ui-monospace,monospace;-webkit-user-select:none;user-select:none;text-align:right}.lab-line-numbers>div{padding-inline:3px}.lab-line-numbers .line-current{background:#baf0d0;color:#0b4327;font-weight:800;border-left:3px solid #155a34}.lab-line-numbers .line-error{background:#ffd5e0;color:#74112c;border-left:3px solid #74112c}.systems-content{max-width:1240px;margin:auto;padding:0 1.5rem 3rem}.systems-modes button{margin-inline-end:.5rem}.systems-modes button[aria-pressed=true]{background:var(--teal);border-color:#12655b}.systems-options{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.systems-options .field{min-width:170px}.systems-core-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;margin-top:1rem}.systems-core-strip .panel{border-top:4px solid var(--orange)}.systems-builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.systems-builder-grid .field{margin-bottom:.75rem}.systems-builder-grid textarea{width:100%;min-height:170px;font:1rem/1.6 ui-monospace,monospace}.systems-builder-grid input{min-width:0;width:100%}.systems-pcb{margin-bottom:1rem;border-inline-start:5px solid #137a45}.systems-pcb h3{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}.process-state{font-size:.78rem;background:#d5f5e5;padding:.2rem .5rem;border:1px solid #517663;border-radius:20px}.process-state-error{background:#ffd6df;color:#80283c}.process-state-waiting,.process-state-sleeping{background:#ffe4c2;color:#78420e}.systems-output{background:#eef8f1;border-inline-start:4px solid #137a45;padding:1rem;max-height:140px;overflow:auto}.systems-timeline ol{max-height:450px;overflow:auto;padding-left:2rem}.systems-timeline li{padding:.6rem;border-bottom:1px solid #ccdad3;font-size:.9rem}.systems-timeline details{margin-top:.2rem}.systems-interrupt{border-top:2px solid var(--magenta);margin-top:1.5rem}.systems-toolbar{padding:1rem 0}.systems-pcb details pre{max-height:180px;overflow:auto}@media(max-width:750px){.systems-builder-grid{grid-template-columns:1fr}.systems-content{padding:0 .8rem 2rem}.systems-options .field{width:100%}.systems-core-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}.course-progress{max-width:1100px;margin:0 auto 2rem}.course-progress progress{display:block;width:100%;height:18px;accent-color:#137a45}.course-units{max-width:1100px;margin:0 auto;padding-bottom:2rem}.course-unit{border:0;border-top:4px solid var(--teal);border-radius:0;margin:1.5rem 0;padding:1.5rem;background:transparent}.course-unit:nth-child(3n+2){border-color:var(--orange)}.course-unit:nth-child(3n){border-color:var(--magenta)}.course-unit h2{margin-top:.2rem}.course-lesson-list{padding-inline-start:1.7rem}.course-lesson-list li{padding:.65rem 0;border-bottom:1px solid #ccdad3}.course-lesson-list a{font-weight:750;font-size:1.1rem}.course-lesson-list p{margin:.2rem 0}.course-complete,.case-passed{color:#126339;font-weight:700}.course-badges{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;padding:0}.course-badges li{border:1px solid #5f8c70;border-radius:6px;padding:.5rem 1rem;background:#d9f7e3}.guide-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.guide-card pre,.lesson-try pre,.lesson-challenge pre{background:#f0f8f2;padding:1rem;border-left:4px solid #117454}.lesson-try,.lesson-challenge,.lesson-checker{max-width:1100px;margin:1.5rem auto}.course-lesson>.reading-section{max-width:1100px;padding-top:1rem;padding-bottom:1rem}.course-lesson>.page-intro{max-width:1100px}.course-lesson .lab{max-width:1148px}.lesson-challenge summary{font-weight:700;cursor:pointer;min-height:44px;padding:.5rem 0}.lesson-navigation{max-width:1100px;margin:2rem auto;display:flex;gap:1rem;flex-wrap:wrap;justify-content:space-between}.lesson-navigation .button{max-width:100%;white-space:normal}.challenge-results{list-style:none;padding:0}.challenge-results li{padding:.6rem 1rem;margin:.5rem 0;border:1px solid #adc7b6;border-radius:5px}.case-failed{color:#7c253f}.challenge-results p{font-weight:400;color:var(--ink)}@media(max-width:1150px){.course-progress,.lesson-try,.lesson-challenge,.lesson-checker,.lesson-navigation{margin:1.5rem}}@media(max-width:800px){.guide-cards{grid-template-columns:1fr}.course-unit{padding:1.1rem}.course-progress,.lesson-try,.lesson-challenge,.lesson-checker,.lesson-navigation{margin:1rem .8rem}}.teacher-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}.teacher-unit-summary,.teacher-session{border-top:3px solid var(--teal);padding:1rem 0}.teacher-unit-summary:nth-child(2n){border-color:var(--orange)}.teacher-mapping{margin-top:3rem;border-top:3px solid var(--magenta);padding-top:1rem;overflow-wrap:anywhere}.teacher-packet{max-width:1100px}.teacher-lesson-section{padding:1.5rem 0;border-top:2px solid #cddbd5}.worksheet-code{background:#f0f8f2;border-inline-start:4px solid #137a45;padding:1rem;direction:ltr;text-align:left}.writing-line{min-height:2rem;border-bottom:1px solid #80968e}.worksheet-writing-lines{margin:1rem 0}.worksheet-trace{font-size:.8rem;table-layout:fixed;min-width:620px}.worksheet-trace th,.worksheet-trace td{padding:.5rem;overflow-wrap:anywhere;vertical-align:top}.worksheet-trace code{white-space:pre-wrap}.worksheet-trace tbody td{height:3rem}.teacher-fixture{padding:.5rem 1rem;border-inline-start:3px solid var(--green);margin:1rem 0}.teacher-fixture dl>div{display:flex;gap:1rem;flex-wrap:wrap}.teacher-fixture dt{font-weight:700}.teacher-fixture dd{margin:0}@media print{.print-page-break{break-before:page}.teacher-lesson-section{break-inside:auto;border:0}.teacher-lesson-section h2,.teacher-lesson-section h3,.teacher-lesson-section h4{break-after:avoid}.worksheet-trace{min-width:0;font-size:8pt}.worksheet-trace th,.worksheet-trace td{padding:3pt}.table-scroll{overflow:visible}.worksheet-code{background:#fff;padding:6pt;font-size:10pt}.teacher-fixture,.worksheet-writing-lines{break-inside:avoid}}.language-picker select{max-width:130px;min-height:44px}.site-header nav{gap:1rem}.site-header nav a{display:inline-flex;align-items:center;min-height:44px}.hero h1{max-width:10ch}.lab-code-wrap,.lab-registers,.lab-cpu-meta code{direction:ltr}.lab-memory-row{display:contents}.lab-memory-cell{min-width:0}.lab-memory-cell button{width:100%}[dir=rtl] .lab-line-numbers{text-align:right}[dir=rtl] ol,[dir=rtl] ul{padding-inline-start:1.7rem;padding-inline-end:0}@media(max-width:1100px){.site-header{flex-wrap:wrap}.site-header nav{order:3;width:100%;justify-content:flex-start}.language-picker{margin-inline-start:auto}}@media(max-width:480px){.site-header{padding:.7rem}.site-header nav{gap:.2rem .8rem}.site-header nav a{font-size:.9rem}.language-picker select{max-width:110px}.hero h1{font-size:clamp(2.5rem,11vw,4rem)}.hero-program pre{font-size:2rem}}input,select,textarea,.lab-code-wrap,button,.button{border-color:#557b72}.lab-registers>span{overflow-wrap:anywhere;min-width:0}.systems-pcb h3,.systems-core-strip p{overflow-wrap:anywhere}.systems-pcb h3,.systems-processes{min-width:0}.systems-builder-grid>*{min-width:0}.systems-builder-grid select{min-width:0;max-width:100%;width:100%}@media(max-width:750px){.systems-builder-grid{grid-template-columns:minmax(0,1fr)}}.guide-card{min-width:0;overflow-wrap:anywhere}@media(max-width:800px){.guide-cards{grid-template-columns:minmax(0,1fr)}}@media(max-width:750px){.systems-options .field{min-width:0}}.reference-try summary{min-height:44px;cursor:pointer;font-weight:650}.reference-try pre{min-width:170px;background:#eff8f2;padding:.7rem;direction:ltr;text-align:left}.reference-try p{font-size:.9rem}.page-intro{max-width:1240px}.page-intro>p{max-width:78ch}.page-intro>.lede{max-width:52ch}.course-intro{max-width:1100px}pre:focus-visible,.table-scroll:focus-visible{outline:3px solid #80264f;outline-offset:3px}
