:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--font-mono:"Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;letter-spacing:0}html,body,#app{width:100%;min-width:0;height:100%;margin:0}body{overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.nova-workbench{--bg:#181818;--panel:#1f1f1f;--panel-strong:#252526;--panel-soft:#2d2d30;--border:#3d3d42;--text:#f2f2f2;--muted:#a7a7ad;--accent:#3b82f6;--accent-strong:#2563eb;--success:#22c55e;--warn:#f59e0b;--danger:#ef4444;--terminal:#0f1115;background:var(--bg);width:100%;min-width:0;height:100%;color:var(--text);grid-template-rows:44px minmax(0,1fr) 24px;display:grid}.nova-workbench.light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f4f6;--panel:#fff;--panel-strong:#f8fafc;--panel-soft:#eef2f7;--border:#d4d7dd;--text:#111827;--muted:#5b6472;--accent:#2563eb;--accent-strong:#1d4ed8;--terminal:#111827}.title-bar{border-bottom:1px solid var(--border);background:var(--panel-strong);align-items:center;gap:12px;min-width:0;padding:0 12px;display:flex}.brand-mark{border-radius:6px;flex:none;place-items:center;width:28px;height:28px;display:grid;overflow:hidden}.brand-mark img{width:100%;height:100%;display:block}.title-copy{flex-direction:column;min-width:0;line-height:1.2;display:flex}.title-copy strong{font-size:13px}.title-copy span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.title-actions{align-items:center;gap:7px;min-width:0;margin-left:auto;display:flex}.toolbar-button,.icon-button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:7px}.toolbar-button{white-space:nowrap;justify-content:center;align-items:center;gap:7px;min-height:32px;padding:0 11px;display:inline-flex}.toolbar-button.primary{border-color:var(--accent-strong);background:var(--accent);color:#fff}.icon-button{place-items:center;width:32px;height:32px;padding:0;display:inline-grid}.toolbar-button:hover,.icon-button:hover,.activity-button:hover,.explorer-row:hover,.lesson-row:hover,.lesson-index-row:hover{background:var(--panel-soft)}.toolbar-button.primary:hover{background:var(--accent-strong)}.workbench-body{grid-template-columns:48px auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.workbench-body.no-explorer{grid-template-columns:48px minmax(0,1fr)}.activity-bar{border-right:1px solid var(--border);background:#151515;flex-direction:column;align-items:center;gap:4px;padding:7px 0;display:flex}.light .activity-bar{background:#e9edf3}.activity-button{width:40px;height:40px;color:var(--muted);background:0 0;border:0;border-radius:7px;place-items:center;display:grid;position:relative}.activity-button.active{color:var(--text);background:var(--panel-soft)}.activity-button.active:before{content:"";background:var(--accent);border-radius:999px;width:3px;height:24px;position:absolute;left:-4px}.explorer-panel{border-right:1px solid var(--border);background:var(--panel);width:278px;min-height:0;overflow:auto}.explorer-section{border-bottom:1px solid var(--border);padding:12px 10px}.explorer-heading,.lesson-index-title,.settings-heading,.preview-title,.shell-banner{align-items:center;gap:8px;display:flex}.explorer-heading{color:var(--muted);margin-bottom:9px;font-size:11px;font-weight:700}.explorer-row,.lesson-row,.lesson-index-row{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px}.explorer-row{align-items:center;gap:8px;min-height:32px;padding:0 8px;display:flex}.lesson-row,.lesson-index-row{flex-direction:column;gap:3px;padding:8px;display:flex}.lesson-row small,.lesson-index-row small{color:var(--muted);font-size:11px}.explorer-row.active,.lesson-row.active,.lesson-index-row.active{background:var(--panel-soft)}.editor-shell{background:var(--bg);grid-template-rows:36px minmax(0,1fr);min-width:0;min-height:0;display:grid}.tab-row{border-bottom:1px solid var(--border);background:var(--panel-strong);align-items:end;min-width:0;display:flex;overflow-x:auto}.tab-row button{border:0;border-right:1px solid var(--border);min-width:92px;height:35px;color:var(--muted);text-transform:capitalize;background:0 0}.tab-row button.active{background:var(--bg);color:var(--text)}.tab-row .book-tab{border-right:1px solid var(--border);min-width:92px;height:35px;color:var(--accent);text-transform:capitalize;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.tab-row .book-tab:hover{background:var(--panel-soft);color:var(--text)}.page{min-width:0;min-height:0;overflow:auto}.page-toolbar{z-index:2;border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:10px 16px;display:flex;position:sticky;top:0}.page-toolbar>div:first-child{flex-direction:column;gap:3px;min-width:0;display:flex}.page-toolbar strong{font-size:14px}.page-toolbar span{color:var(--muted);font-size:12px}.toolbar-actions,.inline-actions,.example-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.learn-page{grid-template-columns:minmax(210px,260px) minmax(0,1fr);display:grid}.lesson-index{border-right:1px solid var(--border);background:var(--panel);min-height:0;padding:14px 10px;overflow:auto}.lesson-index-title{color:var(--muted);margin:0 8px 10px}.lesson-content{min-width:0;padding:24px clamp(18px,4vw,54px) 52px}.lesson-hero{border-bottom:1px solid var(--border);max-width:920px;padding-bottom:24px}.lesson-hero span{color:var(--accent);font-size:13px;font-weight:700}.lesson-hero h1{margin:10px 0;font-size:46px;line-height:1}.lesson-hero p{max-width:760px;color:var(--muted);font-size:18px;line-height:1.55}.lesson-section{max-width:1080px;margin-top:24px}.lesson-section h2{margin:0 0 12px;font-size:18px}.lesson-explanation p,.lesson-list{max-width:900px;color:var(--muted);font-size:15px;line-height:1.65}.lesson-list{margin:0;padding-left:20px}.lesson-list li+li{margin-top:7px}.two-column{grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:18px;display:grid}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.chip-list span{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:999px;padding:5px 9px;font-size:12px}.code-sample,.generated-code,.terminal-output{border:1px solid var(--border);background:var(--terminal);color:#f8fafc;font-family:var(--font-mono);border-radius:8px;margin:0;font-size:13px;line-height:1.55;overflow:auto}.code-sample,.generated-code{padding:16px}.editor-page{grid-template-rows:auto minmax(0,1fr);display:grid}.file-title-group{min-width:0}.file-name-input{border:1px solid var(--border);background:var(--panel-strong);width:min(320px,100%);color:var(--text);border-radius:7px;padding:6px 9px}.editor-workspace{grid-template-columns:minmax(0,1fr) minmax(220px,300px);min-width:0;min-height:0;display:grid}.code-editor{background:#171717;grid-template-columns:54px minmax(0,1fr);min-width:0;min-height:0;display:grid}.light .code-editor{background:#fff}.gutter{border-right:1px solid var(--border);background:var(--panel-strong);min-height:0;color:var(--muted);font-family:var(--font-mono);text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px 14px 0;font-size:13px;line-height:1.6;overflow:hidden}.gutter span{display:block}.code-input{resize:none;width:100%;height:100%;min-height:520px;color:var(--text);font-family:var(--font-mono);tab-size:4;white-space:pre-wrap;background:0 0;border:0;outline:0;padding:14px 16px;line-height:1.6}.code-input.nowrap{white-space:pre}.editor-tools{border-left:1px solid var(--border);background:var(--panel);min-width:0;padding:12px;overflow:auto}.tool-tile{border:1px solid var(--border);background:var(--panel-strong);width:100%;min-height:82px;color:var(--text);text-align:left;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:4px 8px;margin-bottom:10px;padding:11px;display:grid}.tool-tile svg{color:var(--accent);grid-row:span 2}.tool-tile span{color:var(--muted);font-size:12px;line-height:1.4}.preview-page{grid-template-rows:auto minmax(0,1fr);display:grid}.preview-layout{grid-template-columns:minmax(0,1fr) minmax(320px,38%);min-height:0;display:grid}.browser-preview,.generated-files{grid-template-rows:40px minmax(0,1fr);min-width:0;min-height:0;display:grid}.browser-preview{border-right:1px solid var(--border)}.preview-title{border-bottom:1px solid var(--border);background:var(--panel);padding:0 12px}.browser-preview iframe{background:#fff;border:0;width:100%;height:100%;min-height:560px}.generated-tabs{border-bottom:1px solid var(--border);background:var(--panel);display:flex}.generated-tabs button{border:0;border-right:1px solid var(--border);min-width:98px;color:var(--muted);background:0 0}.generated-tabs button.active{color:var(--text);background:var(--panel-soft)}.generated-code{border:0;border-radius:0}.terminal-output{white-space:pre-wrap;min-height:420px;margin:14px;padding:16px}.terminal-output .error,.shell-line.error{color:#fecaca}.terminal-output .info,.shell-line.info{color:#bfdbfe}.terminal-output .output,.shell-line.output{color:#dcfce7}.inspect-page{grid-template-rows:auto minmax(0,1fr);display:grid}.token-table{border-collapse:collapse;border:1px solid var(--border);background:var(--panel);width:calc(100% - 28px);margin:14px}.token-table th,.token-table td{border-bottom:1px solid var(--border);text-align:left;padding:9px 10px;font-size:13px}.token-table th{background:var(--panel-strong);color:var(--muted)}.shell-page{grid-template-rows:auto minmax(0,1fr);display:grid}.shell-layout{grid-template-rows:minmax(0,1fr) auto;gap:10px;min-height:0;padding:14px;display:grid}.shell-window{border:1px solid var(--border);background:var(--terminal);color:#f8fafc;min-height:420px;font-family:var(--font-mono);border-radius:8px;padding:14px;overflow:auto}.shell-banner{color:#bfdbfe;margin-bottom:12px}.shell-line{white-space:pre-wrap;gap:8px;min-height:23px;display:flex}.prompt{color:#93c5fd}.shell-entry{border:1px solid var(--border);background:var(--panel);font-family:var(--font-mono);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.shell-entry input{min-width:0;color:var(--text);background:0 0;border:0;outline:0}.examples-page,.settings-page{padding:0 0 34px}.examples-grid,.settings-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;padding:14px;display:grid}.example-card,.settings-section{border:1px solid var(--border);background:var(--panel);border-radius:8px;min-width:0;padding:14px}.example-card.active{border-color:var(--accent)}.example-card-header{align-items:center;gap:10px;display:flex}.example-card-header div{flex-direction:column;min-width:0;display:flex}.example-card-header span,.example-card p,.settings-section p{color:var(--muted)}.example-card p,.settings-section p{line-height:1.5}.settings-section{flex-direction:column;gap:12px;display:flex}.range-field,.switch-field{color:var(--text);align-items:center;gap:10px;display:flex}.range-field input{flex:1;min-width:120px}.switch-field input{width:18px;height:18px}.shortcut-grid{grid-template-columns:minmax(120px,auto) minmax(0,1fr);align-items:center;gap:8px 12px;display:grid}kbd{border:1px solid var(--border);background:var(--panel-strong);font-family:var(--font-mono);border-radius:5px;padding:2px 6px;font-size:12px}.section-kicker,.course-number,.projects-header>span,.course-header>span,.project-band-heading span,.capstone-band>div>span{color:var(--success);text-transform:uppercase;font-size:12px;font-weight:750}.curriculum-page,.course-page,.learning-projects-page{background:var(--bg)}.curriculum-header,.course-header,.projects-header{border-bottom:1px solid var(--border);background:var(--panel);padding:34px 38px}.curriculum-header{justify-content:space-between;align-items:end;gap:28px;display:flex}.curriculum-header>div:first-child,.course-header,.projects-header{max-width:960px}.curriculum-header h1,.course-header h1,.projects-header h1{color:var(--text);margin:8px 0 10px;font-size:40px;line-height:1.1}.curriculum-header p,.course-header p,.projects-header p{max-width:800px;color:var(--muted);margin:0;font-size:16px;line-height:1.65}.curriculum-actions{flex-wrap:wrap;flex:none;gap:8px;display:flex}.curriculum-summary{border-bottom:1px solid var(--border);min-height:62px;color:var(--muted);align-items:center;gap:26px;padding:10px 38px;display:flex}.curriculum-summary span{align-items:baseline;gap:6px;display:flex}.curriculum-summary strong{color:var(--text);font-size:20px}.curriculum-summary .text-command{margin-left:auto}.text-command{color:var(--accent);background:0 0;border:0;align-items:center;gap:6px;padding:5px 0;display:inline-flex}.text-command:hover{color:var(--text)}.track-list{border:1px solid var(--border);border-radius:6px;width:min(1180px,100% - 44px);margin:22px auto 48px;overflow:hidden}.track-row{background:var(--panel);grid-template-columns:64px minmax(0,1fr) 150px;align-items:center;gap:20px;min-width:0;padding:22px;display:grid}.track-row+.track-row{border-top:1px solid var(--border)}.track-row:hover{background:var(--panel-strong)}.track-order{border:1px solid var(--border);width:48px;height:48px;color:var(--success);font-family:var(--font-mono);border-radius:6px;place-items:center;font-weight:800;display:grid}.track-copy{min-width:0}.track-meta,.course-meta{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.track-copy h2{margin:6px 0;font-size:21px}.track-copy p{color:var(--muted);margin:0 0 12px;line-height:1.5}.progress-line{background:var(--panel-soft);width:100%;height:5px;overflow:hidden}.progress-line span{background:var(--success);height:100%;display:block}.track-copy small{color:var(--muted);margin-top:6px;display:block}.track-open{border:1px solid var(--border);background:var(--bg);min-height:44px;color:var(--text);border-radius:6px;grid-template-columns:20px 1fr 16px;align-items:center;gap:8px;padding:9px 11px;display:grid}.track-open:hover{border-color:var(--accent)}.course-header .text-command,.projects-header .text-command{margin-bottom:24px}.course-meta{margin-top:18px}.course-meta span{border-left:2px solid var(--success);padding-left:8px}.course-layout{grid-template-columns:minmax(0,1fr) 320px;gap:20px;width:min(1180px,100% - 44px);margin:22px auto 48px;display:grid}.course-lessons,.course-projects,.project-band,.capstone-band{border:1px solid var(--border);background:var(--panel);border-radius:6px}.section-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px;display:flex}.section-heading span{color:var(--muted);font-size:12px}.section-heading h2{margin:4px 0 0;font-size:20px}.section-heading>strong{color:var(--success);font-family:var(--font-mono);font-size:18px}.course-lesson-row,.capstone-row{border:0;border-bottom:1px solid var(--border);width:100%;min-width:0;color:var(--text);text-align:left;background:0 0;grid-template-columns:20px 32px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:14px 18px;display:grid}.course-lesson-row:hover,.capstone-row:hover{background:var(--panel-strong)}.course-lesson-row:last-child,.capstone-row:last-child{border-bottom:0}.complete-icon{color:var(--success)}.lesson-number{color:var(--muted);font-family:var(--font-mono);font-size:12px}.course-lesson-copy,.capstone-row>span{gap:3px;min-width:0;display:grid}.course-lesson-copy small,.capstone-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.course-projects{align-self:start;padding:22px}.course-projects>svg{color:var(--success)}.course-projects>span{color:var(--muted);margin-top:12px;font-size:12px;display:block}.course-projects h2{margin:5px 0 14px;font-size:21px}.course-projects ul,.challenge-instructions ul,.project-band ul{color:var(--muted);margin:0 0 18px;padding-left:20px;line-height:1.55}.challenge-page{grid-template-rows:44px minmax(0,1fr);display:grid;overflow:hidden}.challenge-toolbar{border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;padding:0 14px;display:flex}.completion-status{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.completion-status.complete{color:var(--success)}.challenge-workspace{grid-template-columns:minmax(340px,42%) minmax(0,1fr);min-width:0;min-height:0;display:grid}.challenge-instructions{border-right:1px solid var(--border);background:var(--panel);min-width:0;padding:28px 30px 56px;overflow:auto}.challenge-instructions header>span{color:var(--accent);font-size:12px;font-weight:700}.challenge-instructions h1{margin:8px 0 12px;font-size:34px;line-height:1.15}.challenge-instructions header p,.challenge-instructions section p,.challenge-instructions li{color:var(--muted);line-height:1.65}.challenge-instructions section{border-top:1px solid var(--border);margin-top:28px;padding-top:22px}.challenge-instructions h2{margin:0 0 10px;font-size:17px}.challenge-task{border-left:3px solid var(--success);padding-left:16px}.challenge-task small{color:var(--warn);margin-top:12px;line-height:1.5;display:block}.challenge-code-panel{background:#14161a;grid-template-rows:42px minmax(240px,1fr) auto minmax(130px,34%) 46px;min-width:0;min-height:0;display:grid}.light .challenge-code-panel{background:#fff}.challenge-code-header,.challenge-actions,.result-heading,.challenge-navigation{justify-content:space-between;align-items:center;gap:8px;display:flex}.challenge-code-header{border-bottom:1px solid var(--border);background:var(--panel-strong);padding:0 10px 0 14px}.challenge-code-header>span{font-family:var(--font-mono);align-items:center;gap:7px;font-size:12px;display:inline-flex}.challenge-code-input{resize:none;width:100%;min-width:0;height:100%;color:var(--text);font-family:var(--font-mono);tab-size:4;white-space:pre;background:0 0;border:0;outline:0;padding:16px;font-size:14px;line-height:1.6}.challenge-actions{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel);justify-content:flex-start;padding:9px 12px}.challenge-results{color:#f8fafc;background:var(--terminal);min-height:0;font-family:var(--font-mono);padding:12px 14px;font-size:12px;overflow:auto}.result-heading{border-bottom:1px solid #343842;margin-bottom:10px;padding-bottom:8px}.result-heading span,.challenge-results .info{color:#bfdbfe}.challenge-results p{white-space:pre-wrap;align-items:flex-start;gap:6px;margin:6px 0;display:flex}.challenge-results .success{color:#bbf7d0}.challenge-results .error{color:#fecaca}.challenge-navigation{border-top:1px solid var(--border);background:var(--panel);padding:6px 10px}.projects-header{max-width:none}.project-requirements,.capstone-band{width:min(1180px,100% - 44px);margin:22px auto}.project-requirements{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.project-band{min-width:0;padding:18px}.project-band-heading{align-items:flex-start;gap:10px;margin-bottom:14px;display:flex}.project-band-heading>svg{color:var(--success)}.project-band-heading h2{margin:3px 0 0;font-size:18px}.capstone-band{margin-bottom:48px;overflow:hidden}.capstone-band>div:first-child{border-bottom:1px solid var(--border);padding:18px}.capstone-band h2{margin:4px 0 0;font-size:22px}.capstone-row{grid-template-columns:20px minmax(0,1fr) 18px}.track-explorer-row>span{width:20px;color:var(--success);font-family:var(--font-mono);font-size:11px}.explorer-lesson-row{grid-template-columns:16px minmax(0,1fr);align-items:center}.explorer-lesson-row>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.empty-page{min-height:380px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:10px;padding:24px;display:grid}.empty-page strong{color:var(--text);font-size:18px}.status-bar{border-top:1px solid var(--border);color:#fff;background:#0e639c;align-items:center;gap:16px;padding:0 10px;font-size:12px;display:flex;overflow:hidden}.status-bar span{white-space:nowrap}@media (width<=980px){.workbench-body{grid-template-columns:48px minmax(0,1fr)}.explorer-panel{display:none}.learn-page,.editor-workspace,.preview-layout,.two-column{grid-template-columns:minmax(0,1fr)}.lesson-index,.editor-tools,.browser-preview{border-left:0;border-right:0}.editor-tools{border-top:1px solid var(--border)}.curriculum-header,.course-layout,.challenge-workspace{grid-template-columns:minmax(0,1fr)}.curriculum-header{flex-direction:column;align-items:flex-start}.course-layout{display:grid}.challenge-page{overflow:auto}.challenge-workspace{min-height:auto}.challenge-instructions{border-right:0;border-bottom:1px solid var(--border);max-height:none}.challenge-code-panel{min-height:760px}}@media (width<=720px){.title-copy span,.title-actions .toolbar-button:not(.primary),.page-toolbar span{display:none}.title-bar{gap:8px}.page-toolbar{flex-direction:column;align-items:flex-start}.activity-bar{width:44px}.tab-row button{min-width:82px}.lesson-content{padding:18px}.lesson-hero h1{font-size:34px}.code-editor{grid-template-columns:42px minmax(0,1fr)}.gutter{font-size:12px}.curriculum-header,.course-header,.projects-header{padding:24px 18px}.curriculum-header h1,.course-header h1,.projects-header h1{font-size:32px}.curriculum-summary{flex-direction:column;align-items:flex-start;gap:8px;padding:14px 18px}.curriculum-summary .text-command{margin-left:0}.track-list,.course-layout,.project-requirements,.capstone-band{width:calc(100% - 20px)}.track-row{grid-template-columns:48px minmax(0,1fr);gap:12px;padding:16px}.track-open{grid-column:1/-1}.project-requirements{grid-template-columns:minmax(0,1fr)}.challenge-instructions{padding:22px 18px 40px}.challenge-instructions h1{font-size:29px}}
