:root{--text-body:1rem;--text-reading:1.125rem;--text-badge:.875rem;color:#d9e4f2;font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0d141f;font-family:Inter,Segoe UI,sans-serif;font-size:100%;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;font-size:var(--text-body);background:0 0;border:1px solid #0000;border-radius:7px;padding:7px 11px;transition:background .15s}button:hover{background:#263548}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #82ddbd}input,select{color:#dce6f4;background:#141e2c;border:1px solid #334257;border-radius:7px;padding:10px}select{font-size:var(--text-body);padding:4px}.primary{color:#112b23;background:#8be0bd;padding:10px 18px;font-weight:700}.primary:hover{background:#aff3d7}.muted{color:#768ba3}.eyebrow{color:#85d7b9;font-size:var(--text-body);letter-spacing:2px;font-weight:700}.project-browser{max-width:1220px;margin:auto;padding:36px 48px}.brand{align-items:center;gap:13px;font-size:1.125rem;font-weight:700;display:flex}.brand-mark{color:#14283a;letter-spacing:-2px;background:#91e2c1;border-radius:11px;padding:7px 10px;font-size:1.5625rem}.brand-mark span{color:#49757b}.brand-tagline{color:#71859c;font-size:var(--text-body);margin-top:4px;font-weight:400;display:block}.local-badge{color:#8ca197;font-size:var(--text-badge);margin-left:auto;font-weight:400}.welcome{justify-content:space-between;align-items:center;gap:30px;padding:68px 0 58px;display:flex}.welcome h1{letter-spacing:-1.5px;margin:18px 0;font-size:2.6875rem;line-height:1.2}.welcome h1 span{color:#8fe0c0}.welcome p{font-size:var(--text-body);color:#8b9eb5;line-height:1.8}.welcome form{gap:10px;margin-top:28px;display:flex}.welcome form input{width:200px;font-size:var(--text-body)}.welcome-art{background:radial-gradient(#1f403b66,#0000 70%);flex-shrink:0;width:360px;height:280px;position:relative}.art-sphere{background:radial-gradient(circle at 30% 25%,#ffde98,#f29448 50%,#8c4832);border-radius:50%;width:122px;height:122px;position:absolute;top:45px;left:88px;box-shadow:30px 40px 80px #ef974422}.art-cube{background:linear-gradient(125deg,#94e5c7,#448577);border-radius:8px;width:77px;height:77px;position:absolute;top:151px;left:218px;transform:rotate(-23deg)skewY(12deg);box-shadow:12px 14px #254c4e}.orbit{border:1px solid #385650;border-radius:50%;width:310px;height:100px;position:absolute;top:113px;left:15px;transform:rotate(-22deg)}.orbit-two{border-color:#344459;top:93px;transform:rotate(32deg)}.code-chip{font:var(--text-body) Consolas, monospace;color:#b6d7cc;background:#172433;border:1px solid #334757;border-radius:7px;padding:12px;position:absolute;bottom:12px;left:8px}.art-coordinate{color:#64877e;font-size:var(--text-body);position:absolute;top:35px;right:10px}.section-title{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.section-title h2{font-size:1.1875rem}.section-title h2 span{font-size:var(--text-badge);color:#91a4ba;background:#1e2a3a;border-radius:5px;margin-left:8px;padding:4px 7px}.section-title>.muted{font-size:var(--text-body)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.project-card{background:#151e2c;border:1px solid #28364a;border-radius:12px;overflow:hidden}.project-open{text-align:left;border-radius:0;width:100%;padding:0}.project-preview{object-fit:cover;width:100%;height:150px}.placeholder{background:linear-gradient(135deg,#203644,#192333);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.placeholder span{color:#edb176;font-size:3.25rem}.placeholder code{font-size:var(--text-body);color:#7e9f9a}.project-card-info{padding:17px;position:relative}.project-card h3{margin:0 0 8px;font-size:1.25rem}.project-card-info>span{font-size:var(--text-body);color:#8293a9}.project-card-info b{color:#88dabd;font-size:1.125rem;position:absolute;top:20px;right:20px}.project-actions{flex-wrap:wrap;justify-content:space-between;padding:2px 8px 8px;display:flex}.project-actions button{font-size:var(--text-body);color:#8095ad}.example-card{text-align:left;background:linear-gradient(125deg,#192e2d77,#151e2c);border:1px dashed #3b5d59;min-height:267px;padding:25px}.example-symbol{color:#8fdbbd;margin-bottom:15px;font-size:1.5625rem;display:block}.example-card h3{margin:12px 0;font-size:1.25rem}.example-card p{font-size:var(--text-body);color:#8a9fae;line-height:1.7}.example-card strong{font-size:var(--text-body);color:#9bdfc5}.browser-footer{font-size:var(--text-body);color:#546a81;text-align:center;margin-top:60px}.ide{flex-direction:column;min-width:0;height:100dvh;display:flex}.ide-toolbar{background:#121c29;border-bottom:1px solid #2a374a;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:13px;min-height:58px;padding:8px 17px;display:flex}.back-button{font-size:var(--text-body);color:#97aabd}.toolbar-divider{background:#304055;width:1px;height:20px}.brand-mini{color:#90e0be;font-weight:800}.ide-toolbar strong{font-size:var(--text-body);text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.run-controls{flex-wrap:wrap;align-items:center;gap:5px;margin:auto;display:flex}.run-controls .primary{padding:7px 17px}.runtime-status{font-size:var(--text-body);color:#99acbf}.workbench{flex:1;min-height:0;display:flex;position:relative;overflow:auto}.project-tree{resize:horizontal;background:#111a27;border-right:1px solid #2a374a;flex-direction:column;width:260px;min-width:220px;max-width:360px;display:flex;overflow:auto}.panel-heading{min-height:44px;font-size:var(--text-body);letter-spacing:1px;color:#a2b4cb;border-bottom:1px solid #233246;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 15px;display:flex}.panel-heading button{font-size:var(--text-body);letter-spacing:0}.tree-tools{flex-wrap:wrap;gap:1px;padding:9px 4px;display:flex}.tree-tools button{font-size:var(--text-body);color:#94a7bc;padding:5px 7px}.tree-row{border-left:2px solid #0000;align-items:center;min-height:40px;display:flex}.tree-row.selected{background:#203345;border-left-color:#8ddfbd}.tree-label{text-align:left;min-width:0;font-size:var(--text-body);text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:8px;padding:5px 1px;display:flex;overflow:hidden}.python-icon{color:#e9bf78;font:var(--text-badge) Consolas, monospace}.file-icon{color:#849bb4}.tree-actions{display:none}.tree-row:hover .tree-actions{display:flex}.tree-actions button{font-size:var(--text-body);padding:3px}.tree-help{color:#688096;font-size:var(--text-body);margin-top:auto;padding:20px 16px;line-height:1.8}.tree-help>span{color:#749f91;font-size:1.25rem}.editor-and-output{flex-direction:column;flex:1;min-width:0;display:flex}.editor-and-world{resize:vertical;flex:1;height:65%;min-height:160px;display:flex;overflow:hidden}.editor-slot{resize:horizontal;border-right:1px solid #2a374a;width:51%;min-width:280px;max-width:80%;overflow:hidden}.code-panel{background:#131b27;flex-direction:column;height:100%;display:flex}.file-tabs{background:#111a27;border-bottom:1px solid #263449;flex-shrink:0;min-height:39px;display:flex;overflow-x:auto}.file-tabs button{white-space:nowrap;font-size:var(--text-body);color:#8e9fb5;border-top:2px solid #0000;border-right:1px solid #253246;border-radius:0;padding:8px 17px}.file-tabs button.active{color:#e0e9f4;background:#131b27;border-top-color:#8bdebe}.code-breadcrumb{font-size:var(--text-body);color:#8fa6be;flex-wrap:wrap;gap:6px;padding:11px 18px 0;display:flex}.code-breadcrumb span{color:#567088}.code-breadcrumb [role=status]{margin-left:auto}.monaco-host{flex:1;min-height:0}.viewport-panel{background:#111b29;flex-direction:column;flex:1;min-width:180px;display:flex}.viewport{flex:1;min-height:0;position:relative;overflow:hidden}.viewport canvas{display:block}.live-dot{background:#80d6b5;border-radius:50%;width:5px;height:5px;margin-left:7px;display:inline-block}.viewport-footer{color:#6d849e;font-size:var(--text-body);pointer-events:none;flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex;position:absolute;bottom:12px;left:15px;right:15px}.axis-widget{gap:3px;display:flex;position:absolute;top:12px;right:12px}.axis-widget button{width:34px;height:34px;font-size:var(--text-body);background:#182637;border-radius:50%;padding:2px}.axis-X{color:#ef9693}.axis-Y{color:#9dddac}.axis-Z{color:#8daff1}.output-panel{background:#101925;border-top:1px solid #2b3c50;flex-direction:column;height:23%;min-height:110px;max-height:65%;display:flex}.output-lines{font:var(--text-body)/1.7 Consolas, monospace;flex:1;padding:13px 18px;overflow:auto}.output-line{white-space:pre-wrap;overflow-wrap:anywhere}.output-line.stderr{color:#eea2a5}.output-line.system{color:#708aa3}.console-input{border-top:1px solid #2b3c50;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 14px;display:flex}.console-input label{font-size:var(--text-body);color:#9dceff}.console-input input{color:#e5efff;background:#172639;border:1px solid #577a9d;border-radius:4px;flex:1;min-width:120px;padding:7px 10px}.console-input [role=alert]{color:#eea2a5;width:100%}.run-controls select{color:#e5efff;background:#172639;border:1px solid #364962;border-radius:5px;max-width:130px;padding:6px}.course-catalog{margin:24px 0 38px}.course-catalog>p{color:#a2b4cb;max-width:850px;line-height:1.6}.lesson-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.lesson-card{text-align:left;background:#142235;border:1px solid #30435a;border-radius:10px;flex-direction:column;gap:9px;padding:18px;display:flex}.lesson-card:hover{background:#1c3049;border-color:#81b9fb}.lesson-series{font-size:var(--text-body);color:#7cb8e5}.lesson-card strong{font-size:1.25rem}.lesson-card span{color:#a2b4cb;font-size:var(--text-body)}.lesson-panel{resize:horizontal;background:#152132;border-right:1px solid #30435a;flex-shrink:0;width:380px;min-width:260px;max-width:45vw;overflow:auto}.lesson-panel .panel-heading{background:#152132;position:sticky;top:0}.lesson-content{overflow-wrap:anywhere;font-size:var(--text-reading);color:#d2dfef;padding:4px 18px 25px;line-height:1.65}.lesson-content h2{color:#f3f6ff;font-size:1.25rem;line-height:1.35}.lesson-content h3{color:#96cdff;margin-top:25px;font-size:1.25rem}.lesson-content p{white-space:pre-line}.lesson-content ul{padding-left:18px}.lesson-content pre{font:var(--text-body)/1.6 Consolas, monospace;background:#0c1522;padding:10px;overflow:auto}.lesson-content details{margin:15px 0}.lesson-content summary{cursor:pointer;color:#a5d6ff}.lesson-content details button{margin-top:8px}.workbench:has(.lesson-panel) .project-tree{width:220px;min-width:180px}@media (width<=1000px){.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-panel{z-index:8;width:370px;max-width:90vw;position:absolute;top:0;bottom:0;box-shadow:12px 0 30px #0008}}.statusbar{min-height:32px;font-size:var(--text-body);color:#91a9bc;background:#182536;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:30px;padding:0 15px;display:flex}.statusbar>span:last-child{color:#657f96;margin-left:auto}.statusbar>span:first-child{color:#92cdb7}.error-toast{color:#ffd1d5;z-index:100;max-width:80%;font-size:var(--text-body);background:#3b2733;border:1px solid #a76871;border-radius:10px;padding:15px 20px;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.error-toast button{margin-left:15px}.bottom-panels{flex-shrink:0;min-height:110px;max-height:65vh;display:flex}.bottom-panels .output-panel{flex:1;min-width:200px;height:100%;max-height:none}.output-resizer{cursor:ns-resize;touch-action:none;background:#243348;flex-shrink:0;height:5px}.output-resizer:hover{background:#79c4ac}.debug-panel{background:#111b28;border-left:1px solid #334158;width:49%;min-width:280px;overflow:auto}.debug-details{font-size:var(--text-body);grid-template-columns:1fr 1.3fr;gap:12px;padding:0 12px 12px;display:grid}.debug-details h4{color:#7d91a9;font-size:var(--text-body);letter-spacing:1px;margin:12px 0 8px}.debug-details button{width:100%;font-size:var(--text-body);text-align:left;justify-content:space-between;gap:6px;display:flex}.debug-details button.selected{background:#273c4c}.debug-variable{overflow-wrap:anywhere;border-bottom:1px solid #1f3043;justify-content:space-between;gap:12px;padding:5px;display:flex}.debug-variable code{color:#e9c788}.debug-variable span{color:#a7ccb9}.debug-toolbar{font-size:var(--text-body);background:#243133;border-bottom:1px solid #3c4959;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:5px 16px;display:flex}.debug-toolbar>span{color:#e9c788;margin-right:14px}.debug-toolbar .debug-note{color:#90a399;margin-left:auto}.breakpoint-glyph:after{content:"";background:#ed777e;border-radius:50%;width:10px;height:10px;margin:7px auto;display:block}.debug-current-line{background:#e9bf7825;border-top:1px solid #e9bf7840;border-bottom:1px solid #e9bf7840}.debug-current-glyph:after{content:"➜";color:#f2ce85;font-size:1.125rem}.asset-preview{height:100%;overflow:auto}.asset-preview img{object-fit:contain;max-width:100%;max-height:80%}.asset-preview p{color:#9aadc3;font-size:var(--text-body);padding:20px}.viewport-error{color:#efa1a1;padding:20px;position:absolute}.busy{cursor:progress}@media (width<=900px){.project-browser{padding:24px}.welcome-art{width:260px;transform:scale(.85)}.welcome h1{font-size:2.1875rem}.project-grid{grid-template-columns:repeat(2,1fr)}.local-badge,.runtime-status{display:none}}@media (width<=650px){.welcome-art{display:none}.project-grid{grid-template-columns:1fr}.welcome{padding:45px 0}.welcome form{flex-wrap:wrap}.section-title>.muted{display:none}}
