:root{--green:#07533d;--blue:#069fe6;--ink:#133b30;--muted:#65746f;--page:#fff;--panel:#fff;--soft:#f0f8f6;--line:#dcebe7;--bluewash:#eaf7fe;--font-size:14px;--code-size:14px;--header-height:76px}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:var(--font-size);line-height:1.55}body.dark{--page:#12201e;--panel:#1b2b28;--soft:#223731;--ink:#e0f1e9;--muted:#a8bbb2;--line:#39534a;--green:#72d4af;--blue:#65caff;--bluewash:#193c4b}button,input,select,textarea{font:inherit}button,a,summary{cursor:pointer}button{color:inherit}button:disabled{opacity:.45;cursor:default}a{color:var(--green)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--blue);outline-offset:3px}button{border:0}header{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);background:var(--panel);padding:10px 24px;min-height:var(--header-height);position:sticky;top:0;z-index:50}.school{display:flex;gap:12px;align-items:center;min-width:240px;text-decoration:none;color:var(--green);font-size:14px;font-weight:800;line-height:1.17}.school img{width:43px;height:48px;object-fit:contain}nav{display:flex;align-items:center;justify-content:space-around;flex:1;gap:8px}nav a{font-size:11px;text-decoration:none;color:var(--ink);display:flex;gap:6px;align-items:center;padding:12px 3px;border-bottom:3px solid transparent;font-weight:600;white-space:nowrap}nav a.active{color:var(--blue);border-color:var(--blue)}svg.lucide{width:20px;height:20px;flex-shrink:0}.switcher{display:flex;gap:5px;align-items:center;font-size:10px;white-space:nowrap}.switch{width:32px;height:18px;border-radius:15px;background:var(--green);padding:3px;display:flex;align-items:center}.switch span{width:12px;height:12px;border-radius:50%;background:white;transform:translateX(0);transition:.15s}.switch[aria-checked=true] span{transform:translateX(14px)}.toptools{display:flex;gap:3px;align-items:center;border-left:1px solid var(--line);padding-left:10px}.toptools button{background:var(--soft);width:27px;height:28px;border-radius:4px;font-size:12px}.toptools svg{width:15px;height:15px}#app{max-width:1600px;margin:auto;padding:26px 32px 40px}h1,h2,h3,h4{line-height:1.25;color:var(--green)}h1{font-size:30px;letter-spacing:-1px;margin:8px 0 14px}h2{font-size:21px;letter-spacing:-.4px;margin:8px 0 16px}h3{font-size:16px;margin:5px 0 12px}h4{font-size:14px}p{margin:9px 0 15px;color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;border-radius:6px;background:var(--green);color:white;padding:10px 15px;font-weight:600;font-size:13px}.dark .btn{color:#09261c}.btn.blue{background:var(--blue);color:#fff}.btn.subtle{background:var(--soft);color:var(--green);border:1px solid var(--line)}.btn.small{padding:6px 10px;font-size:12px}.btn svg{width:16px;height:16px}.hero{display:grid;grid-template-columns:.85fr 1.6fr;align-items:center;gap:32px;min-height:350px}.hero h1{font-size:clamp(32px,3.8vw,56px);font-weight:850;letter-spacing:-2px;max-width:460px}.hero p{max-width:400px;font-size:15px}.heroVisual{display:grid;grid-template-columns:35% 65%;align-items:center}.heroVisual img{width:100%;mix-blend-mode:multiply}.dark .heroVisual img{mix-blend-mode:normal;border-radius:10px}.codeWindow{border:3px solid var(--green);border-radius:11px;overflow:hidden;background:var(--panel)}.windowBar{background:#07533d;color:white;font:11px monospace;padding:9px 13px}.windowBar span{color:#2cc7ed;letter-spacing:5px}.codeWindow pre{padding:15px;font-size:12px;margin:0;line-height:1.7;white-space:pre-wrap}.codeWindow .exampleOutput{padding:10px 15px;background:var(--bluewash);font:12px/1.7 monospace}.ipo{display:flex;margin-top:9px;gap:5px;color:white;font-size:10px;font-weight:700;letter-spacing:1px}.ipo span{background:var(--blue);padding:8px;flex:1;text-align:center}.ipo span:nth-child(2){background:#21a76a}.lessonCards{display:grid;grid-template-columns:repeat(var(--count,5),1fr);margin-top:36px}.lessonCard{padding:15px 22px;border-right:1px solid var(--line);text-decoration:none;color:var(--ink);display:flex;flex-direction:column}.lessonCard:last-child{border:0}.lessonCard:hover{background:var(--soft)}.lessonCard .number{font-size:34px;font-weight:800;line-height:1;color:var(--green)}.lessonCard h3{font-size:14px;margin:13px 0 7px;min-height:34px}.lessonCard p{font-size:12px;min-height:48px}.lessonIcon{color:var(--blue);background:var(--soft);border-radius:50%;width:60px;height:60px;display:grid;place-items:center;margin:12px 0}.lessonIcon svg{width:35px;height:35px}.lessonCard .open{color:var(--blue);font-size:12px;font-weight:700}.pageTop{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.back{color:var(--muted);text-decoration:none;font-size:12px}.unitBadge{color:var(--green);background:var(--soft);border-radius:30px;font-size:11px;padding:5px 12px}.tabs{display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs a{padding:10px 15px;text-decoration:none;color:var(--muted);font-weight:600;font-size:12px;border-bottom:3px solid transparent}.tabs a.active{color:var(--blue);border-bottom-color:var(--blue)}.lessonLayout{display:grid;grid-template-columns:205px 1fr;gap:30px}.lessonNav{border-right:1px solid var(--line);padding-right:20px}.lessonNav a{display:block;text-decoration:none;padding:10px;border-radius:5px;font-size:12px;margin-bottom:3px;color:var(--muted)}.lessonNav a.active{background:var(--bluewash);color:var(--green);font-weight:700}.contentPane{max-width:930px}.goals{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 20px}.goal{background:var(--soft);padding:6px 10px;font-size:11px;border-radius:4px}.block{padding:22px 0;border-bottom:1px solid var(--line)}.block pre,.code{background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:15px;white-space:pre-wrap;line-height:1.7;font:13px/1.8 Consolas,monospace;overflow:auto;color:var(--ink)}.check{background:var(--bluewash);border-radius:6px;padding:15px;margin-top:15px}.check label{font-size:12px;font-weight:600;display:block;margin-bottom:7px}.check input,.check select{border:1px solid var(--line);border-radius:4px;padding:8px;background:var(--panel);color:var(--ink);max-width:100%;width:260px}.feedback{margin-top:10px;font-size:12px;white-space:pre-wrap}.feedback.good{color:#16813a}.dark .feedback.good{color:#8be5a0}.feedback.retry{color:#a54c21}.dark .feedback.retry{color:#f7bb88}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.practiceWorkspace{display:grid;grid-template-columns:var(--left-width,40%) 8px 1fr;height:calc(100dvh - 228px);min-height:480px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}.instructions{overflow:auto;padding:22px}.instructions h2{font-size:19px}.taskPills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}.taskPills button{background:var(--soft);color:var(--muted);padding:7px 10px;border:1px solid var(--line);border-radius:5px;font-size:11px}.taskPills button.active{background:var(--bluewash);color:var(--blue);border-color:var(--blue)}.taskInstructions{font-size:var(--font-size)}.taskInstructions details{padding:12px 0;border-bottom:1px solid var(--line)}.taskInstructions summary{font-size:12px;font-weight:600;color:var(--green)}.taskInstructions textarea{width:100%;min-height:80px;margin-top:8px;border:1px solid var(--line);background:var(--page);color:var(--ink);padding:8px;border-radius:5px}.splitter{background:var(--line);cursor:col-resize;display:flex;align-items:center;justify-content:center;touch-action:none}.splitter:after{content:'';height:35px;width:2px;background:var(--muted);border-radius:4px}.splitter:hover{background:var(--blue)}.ide{display:grid;grid-template-rows:43px minmax(80px,var(--editor-height,55%)) 8px minmax(100px,1fr);min-width:0;min-height:0;background:var(--panel);overflow:hidden}.ideToolbar{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--line);gap:6px;background:var(--soft);font-size:11px}.ideToolbar .row{gap:5px}.ideToolbar button{padding:4px 7px;font-size:11px}.editorMount{min-height:0;overflow:hidden}.editorMount .cm-editor{height:100%}.horizontal{cursor:row-resize}.horizontal:after{width:35px;height:2px}.console{overflow:auto;min-height:0;display:flex;flex-direction:column;background:var(--panel)}.consoleLabel{padding:8px 12px;font-size:10px;font-weight:700;letter-spacing:1px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.consoleText{margin:0;padding:12px;font:var(--code-size)/1.65 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;flex:1}.stderr{color:#d14141}.console form{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--line)}.console form input{flex:1;width:100%;background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:7px}.fallback{padding:8px 12px;border-top:1px solid var(--line);font-size:11px}.fallback textarea{width:100%;height:55px;resize:vertical;border:1px solid var(--line);background:var(--soft);color:var(--ink);font:12px monospace}.standaloneIDE{height:calc(100dvh - 200px);min-height:560px;border:1px solid var(--line);border-radius:8px;overflow:hidden}.standaloneIDE .ide{height:100%;grid-template-rows:43px minmax(80px,var(--editor-height,56%)) 8px minmax(100px,1fr)}.turtleCanvas{min-height:250px;max-height:350px;flex-shrink:0;background:white}.turtleCanvas svg{width:100%;height:100%;min-height:250px}.quizLayout{max-width:900px;margin:auto}.quizHead{display:flex;justify-content:space-between;gap:15px;align-items:center}.question{padding:24px 0;border-bottom:1px solid var(--line)}.question h3{font-size:15px}.question .qtype{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--blue)}.options{display:grid;gap:8px;margin-top:12px}.option{display:flex;align-items:center;text-align:left;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:11px 14px;font-size:13px}.option.selected{background:var(--bluewash);border-color:var(--blue)}.option.correct{background:#e6f8e9;border-color:#218342;color:#175a28}.dark .option.correct{background:#234930;color:#b6efbe}.option.wrong{border-color:#c97945;background:#fff2e7;color:#823c15}.dark .option.wrong{background:#593b2b;color:#ffd6b7}.question input,.question select{padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:4px;color:var(--ink);max-width:100%;min-width:220px}.lineChoice{display:block;width:100%;border:0;text-align:left;background:var(--soft);font:13px/1.9 Consolas,monospace;white-space:pre;padding:3px 12px;overflow-x:auto}.lineChoice span{display:inline-block;width:30px;color:var(--muted)}.token{font-family:monospace;background:var(--soft);border:1px solid var(--line);padding:8px 12px;margin:4px;border-radius:4px}.token.selected{background:var(--bluewash);border-color:var(--blue)}.orderList{list-style:none;margin:10px 0;padding:0}.orderList li{display:flex;gap:6px;align-items:center;padding:7px;background:var(--soft);border:1px solid var(--line);margin:5px 0;border-radius:4px}.orderList code{white-space:pre-wrap;flex:1;font-size:12px}.orderList button{background:var(--panel);color:var(--green);padding:3px 8px}.draghandle{color:var(--muted);cursor:grab}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin:20px 0}.filters label{font-size:11px;color:var(--muted);display:grid;gap:5px}.filters select,.filters input{padding:9px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:5px}.challengeGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.challengeCard{padding:20px;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column}.challengeCard p{font-size:12px;flex:1}.difficulty{font-size:10px;font-weight:600;color:var(--green);background:var(--soft);padding:4px 8px;align-self:flex-start;border-radius:20px;margin-bottom:12px}.challengeCard details{font-size:12px;margin-bottom:15px}.plcTable{width:100%;border-collapse:collapse;font-size:13px}.plcTable td,.plcTable th{padding:13px;border-bottom:1px solid var(--line);text-align:left}.plcTable th{color:var(--muted);font-size:11px}.plcTable td:first-child{width:55%}.plcTable select{padding:6px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:4px}.plcTable input{padding:6px;background:var(--panel);color:var(--ink);border:1px solid var(--line);max-width:200px;width:100%}.glossary{display:grid;grid-template-columns:repeat(3,1fr);gap:0 30px}.term{padding:18px 0;border-bottom:1px solid var(--line)}.term h3{font-size:15px}.term p{font-size:13px}.term code{font-size:12px;color:var(--blue)}.resourceGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.resource{padding:20px;border:1px solid var(--line);border-radius:8px}.ko{width:100%;height:70vh;border:1px solid var(--line);margin-top:20px}.footer{border-top:1px solid var(--line);margin-top:35px;padding-top:16px;display:flex;justify-content:space-between;color:var(--muted);font-size:11px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 18px;background:var(--green);color:white;border-radius:5px;box-shadow:0 5px 25px #0002;z-index:100;display:none}.dark #toast{color:#0e2920}#notice{font-size:12px;background:var(--bluewash);color:var(--green);padding:0 25px}#notice:empty{display:none}.lessonSelect{max-width:240px;background:var(--panel);color:var(--ink);padding:7px;border:1px solid var(--line);border-radius:5px}.progressDots{display:flex;gap:5px;margin-top:15px;flex-wrap:wrap}.progressDots a{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--soft);font-size:10px;text-decoration:none}.progressDots a.done{background:#d9efdf;color:#145728}.practiceDone{padding:10px 0;font-size:11px;color:var(--muted)}@media(max-width:1200px){header{gap:10px;padding:8px 14px}.school{min-width:190px;font-size:11px}.school img{width:34px;height:40px}nav{gap:4px}nav a{font-size:10px;gap:3px}nav svg{width:17px!important}.toptools{padding-left:5px}.hero h1{font-size:42px}.lessonCard{padding:10px 13px}.lessonCards{margin-top:25px}.switcher{font-size:9px}.lessonLayout{grid-template-columns:160px 1fr;gap:20px}}@media(max-width:950px){header{flex-wrap:wrap;position:relative;gap:8px}.school{flex:1}nav{order:3;flex-basis:100%;justify-content:space-between;overflow:auto}nav a{font-size:11px}.hero{grid-template-columns:1fr}.heroVisual{max-width:800px}.lessonCards{grid-template-columns:repeat(3,1fr);gap:20px}.lessonLayout{grid-template-columns:1fr}.lessonNav{display:none}.practiceWorkspace{height:auto;min-height:900px;grid-template-columns:var(--left-width,40%) 8px 1fr}.challengeGrid{grid-template-columns:repeat(2,1fr)}.glossary{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){#app{padding:20px 15px}h1{font-size:25px}.hero h1{font-size:38px}.heroVisual{grid-template-columns:28% 72%}.codeWindow pre{font-size:10px;padding:8px}.lessonCards{grid-template-columns:repeat(2,1fr)}nav a{flex-direction:column;font-size:9px}.practiceWorkspace{display:flex;flex-direction:column;height:auto}.practiceWorkspace>.splitter{display:none}.instructions{max-height:420px}.ide{height:650px}.standaloneIDE .ide{height:100%}.challengeGrid,.glossary,.resourceGrid{grid-template-columns:1fr}.plcTable td,.plcTable th{padding:8px}.plcTable input{min-width:80px}.pageTop{align-items:flex-start}.tabs{gap:0;overflow:auto}.tabs a{padding:10px}.toptools{border:0}.school{font-size:11px}.quizHead{align-items:flex-start}.hero{gap:15px}.plcTable{font-size:11px}.switcher{font-size:9px}}
/* Wide classroom displays and narrow touch screens share the same content. */
#app{max-width:1920px}.hero{min-height:390px}.hero h1{font-size:clamp(34px,3.4vw,60px)}.contentPane{max-width:1100px}.practiceWorkspace,.standaloneIDE{min-height:430px}
@media(min-width:1600px){header{padding-left:36px;padding-right:36px;gap:25px}.school{min-width:275px;font-size:15px}nav a{font-size:12px;gap:8px}nav svg.lucide{width:23px;height:23px}#app{padding-left:42px;padding-right:42px}.hero{grid-template-columns:.9fr 1.5fr;gap:65px}.heroVisual{grid-template-columns:36% 64%}.codeWindow pre{font-size:14px}.hero p{font-size:16px}.lessonCard{padding:20px 30px}.lessonCard h3{font-size:16px}.lessonCard p{font-size:13px}.lessonCards{margin-top:45px}}
@media(max-width:950px){.hero{min-height:0}.hero h1{font-size:40px}}
@media(max-width:650px){.hero h1{font-size:34px}.heroVisual{display:block}.heroVisual img{display:none}.codeWindow pre{font-size:11px}.practiceWorkspace{min-height:0}.practiceWorkspace .ide{flex-shrink:0;height:640px}.instructions{max-height:430px}.plcTable thead{display:none}.plcTable tr{display:block;padding:12px 0;border-bottom:1px solid var(--line)}.plcTable td{display:block!important;border:0!important;width:100%!important;padding:5px 0!important}.plcTable td:first-child{font-size:13px;font-weight:600}.plcTable select{width:100%}.plcTable input{max-width:none}.footer{gap:15px}.standaloneIDE{height:70dvh;min-height:500px}.standaloneIDE .ide{height:100%}.pageTop>.row{max-width:48%}.lessonCards{gap:10px}.lessonCard{padding:10px}}
[hidden]{display:none!important}
/* Display preferences belong to the Python workspace only. */
.ide.ide-dark{--panel:#1b2b28;--soft:#223731;--ink:#e0f1e9;--muted:#a8bbb2;--line:#39534a;--green:#72d4af;--blue:#65caff;--bluewash:#193c4b;color:var(--ink);background:var(--panel)}
.ide.ide-dark .btn{color:#0a2c20}.ide.ide-dark .btn.subtle{color:var(--green)}.ide.ide-dark .stderr{color:#ff9090}.ide.ide-dark .consoleText{color:var(--ink)}
.ideActions{flex-wrap:nowrap}.ideToolbar>span{white-space:nowrap}.ideActions svg{width:13px;height:13px}
@media(max-width:650px){.ideToolbar{height:auto;min-height:43px;gap:4px;padding:6px}.ideToolbar #saveIndicator{display:none}.ideActions{gap:3px!important}.ideActions .btn{padding:4px 5px;font-size:10px}}
