:root{color-scheme:dark;--bg: #090a0f;--bg-2: #0f121c;--surface: #161923;--surface-2: #202434;--line: #2c3346;--text: #f4f1e8;--muted: #a7adbd;--soft: #747d92;--accent: #ff7a45;--accent-2: #f6b15d;--cyan: #66d9e8;--green: #65d88a;--yellow: #f4d35e;--pink: #e67ab3;--danger: #ff5f70;--shadow: 0 22px 80px rgb(0 0 0 / 45%);--mono: "SFMono-Regular", "Cascadia Code", "JetBrains Mono", Menlo, Consolas, monospace;--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 18% 0%,rgb(102 217 232 / 12%),transparent 28rem),radial-gradient(circle at 85% 8%,rgb(230 122 179 / 10%),transparent 24rem),linear-gradient(180deg,#0b0d13 0%,var(--bg) 55%,#080910 100%);color:var(--text);font-family:var(--sans)}button,input,textarea,select{font:inherit}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.48}.app-shell{min-height:100vh;padding:1rem}.topbar{position:sticky;top:1rem;z-index:20;display:grid;grid-template-columns:minmax(14rem,1fr) auto minmax(16rem,1fr);align-items:center;gap:1rem;max-width:1180px;margin:0 auto 1rem;padding:.7rem;border:1px solid rgb(255 255 255 / 8%);border-radius:8px;background:#0c0e15d1;box-shadow:0 16px 50px #00000040;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:inline-flex;align-items:center;gap:.75rem;min-width:0;border:0;background:transparent;text-align:left;cursor:pointer}.brand strong,.brand small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand strong{font-family:var(--mono);font-size:.98rem}.brand small{color:var(--muted);font-size:.72rem}.brand-mark{display:grid;flex:0 0 auto;width:2.6rem;height:2.6rem;place-items:center;border:1px solid rgb(255 122 69 / 45%);border-radius:8px;background:linear-gradient(135deg,#ff7a4538,#66d9e81f);color:var(--accent-2);font-family:var(--mono);font-size:.9rem;font-weight:800}.main-nav{display:flex;align-items:center;justify-content:center;gap:.35rem}.main-nav button,.ghost-button,.icon-button,.icon-text-button{border:1px solid rgb(255 255 255 / 9%);border-radius:8px;background:#ffffff0a;color:var(--muted);cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease}.main-nav button{min-height:2.3rem;padding:0 .8rem;font-size:.86rem}.main-nav button:hover,.main-nav button.active,.ghost-button:hover,.icon-button:hover,.icon-text-button:hover{border-color:#ff7a458c;background:#ff7a451a;color:var(--text)}.user-cluster{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;min-width:0}.user-pill{max-width:10rem;overflow:hidden;padding:.48rem .7rem;border:1px solid rgb(255 255 255 / 8%);border-radius:8px;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.mini-progress{width:5rem;height:.42rem;overflow:hidden;border-radius:999px;background:#ffffff14}.mini-progress span,.progress-track span,.lesson-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--cyan))}.primary-button,.ghost-button,.icon-text-button{min-height:2.65rem;padding:0 1rem;border-radius:8px;font-weight:750}.primary-button{border:0;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#1b1010;cursor:pointer;box-shadow:0 14px 36px #ff7a4538}.primary-button:hover{transform:translateY(-1px)}.compact{min-height:2.1rem;padding:0 .72rem;font-size:.82rem}.icon-button{display:grid;width:2.4rem;height:2.4rem;place-items:center;padding:0}.home-layout,.page-layout{max-width:1180px;margin:0 auto}.hero-band{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(22rem,.98fr);gap:1.2rem;min-height:calc(100vh - 7rem);align-items:center;padding:clamp(1rem,3vw,3rem) 0 2rem}.hero-copy h1{max-width:12ch;margin:.4rem 0 1rem;font-family:var(--mono);font-size:clamp(2.4rem,6vw,5.8rem);line-height:.96;letter-spacing:0}.hero-copy p{max-width:42rem;color:var(--muted);font-size:clamp(1rem,1.4vw,1.22rem);line-height:1.65}.eyeline{margin:0 0 .4rem;color:var(--accent-2);font-family:var(--mono);font-size:.74rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.hero-actions,.row-actions,.dialog-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.hero-terminal{position:relative;min-height:30rem}.terminal-window{overflow:hidden;border:1px solid rgb(255 255 255 / 9%);border-radius:8px;background:linear-gradient(180deg,rgb(255 255 255 / 5%),transparent 2.8rem),#050608;box-shadow:var(--shadow)}.hero-terminal .terminal-window{min-height:25rem;transform:rotate(1.2deg)}.traffic{display:flex;gap:.45rem;padding:.85rem;border-bottom:1px solid rgb(255 255 255 / 8%)}.traffic span{width:.72rem;height:.72rem;border-radius:50%}.traffic span:nth-child(1){background:var(--danger)}.traffic span:nth-child(2){background:var(--yellow)}.traffic span:nth-child(3){background:var(--green)}pre,code{font-family:var(--mono)}.terminal-window pre{margin:0;padding:1.2rem;color:#ccebd7;font-size:clamp(.82rem,1.7vw,1.08rem);line-height:1.65;white-space:pre-wrap}.orbit-card{position:absolute;right:1.2rem;bottom:2.2rem;width:min(15rem,58%);padding:1rem;border:1px solid rgb(102 217 232 / 35%);border-radius:8px;background:#0e141ed1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.orbit-card strong{display:block;color:var(--cyan);font-family:var(--mono);font-size:2rem}.orbit-card span{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(20rem,.9fr);gap:1rem;margin:0 0 2rem}.progress-panel,.coach-panel,.level-block,.step-card,.comments-panel,.feedback-composer,.feedback-item,.comment,.help-request{border:1px solid rgb(255 255 255 / 8%);border-radius:8px;background:#12151fc7;box-shadow:0 14px 44px #0000002e}.progress-panel,.coach-panel{padding:1.15rem}.panel-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.compact-head{margin-bottom:.75rem}.panel-head h2,.section-head h1,.section-head h2,.coach-panel h2,.feed-column h2{margin:0;font-size:clamp(1.2rem,2vw,1.8rem);letter-spacing:0}.large-percent{color:var(--cyan);font-family:var(--mono);font-size:clamp(2rem,5vw,3.8rem);font-weight:900}.progress-track{height:.7rem;margin:1rem 0;overflow:hidden;border-radius:999px;background:#ffffff14}.progress-track.thin{height:.28rem;margin:0 1rem .5rem}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.metric{min-width:0;padding:.8rem;border-radius:8px;background:#ffffff0a}.metric strong,.metric span{display:block}.metric strong{font-family:var(--mono);font-size:1.25rem}.metric span,.muted{color:var(--muted)}textarea,input,select{width:100%;border:1px solid var(--line);border-radius:8px;background:#050609b3;color:var(--text);outline:none}textarea{min-height:7rem;padding:.85rem;resize:vertical}input,select{min-height:2.65rem;padding:0 .8rem}label{display:grid;gap:.35rem;color:var(--muted);font-size:.88rem}.coach-panel textarea{margin:.7rem 0}.coach-result,.success-message{border:1px solid rgb(101 216 138 / 30%);border-radius:8px;background:#65d88a1a;color:#d7ffe4}.coach-result,.success-message,.form-message{padding:.75rem}.form-message{border:1px solid rgb(255 122 69 / 30%);border-radius:8px;background:#ff7a451a;color:#ffd8c8}.course-section{padding:1rem 0 4rem}.segmented{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem;border:1px solid rgb(255 255 255 / 9%);border-radius:8px;background:#ffffff0a}.segmented button{min-height:2.1rem;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.segmented button.selected{background:#ff7a452e;color:var(--text)}.segmented.small button{padding:0 .75rem}.course-list{display:grid;gap:.8rem;margin-top:1rem}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1rem}.level-block{overflow:hidden}.level-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.9rem;width:100%;align-items:center;padding:1rem;border:0;background:transparent;text-align:left;cursor:pointer}.level-index,.lesson-state{display:grid;place-items:center;border-radius:8px;font-family:var(--mono);font-weight:900}.level-index{width:3rem;height:3rem;border:1px solid;background:#ffffff0a}.level-summary strong,.level-summary small,.lesson-row strong,.lesson-row small{display:block;overflow:hidden;text-overflow:ellipsis}.level-summary small,.lesson-row small{margin-top:.25rem;color:var(--muted)}.level-score{color:var(--accent-2);font-family:var(--mono)}.lesson-stack{display:grid;padding:.25rem .8rem .9rem}.lesson-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.8rem;align-items:center;min-height:4.2rem;padding:.6rem;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer}.lesson-row:hover{background:#ffffff0d}.lesson-row.done{color:#dcffe7}.lesson-state{width:2.15rem;height:2.15rem;background:#ffffff0f;color:var(--cyan)}.lesson-row.done .lesson-state{background:#65d88a24;color:var(--green)}.lesson-duration{color:var(--soft);font-size:.84rem}.lesson-layout{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,760px);min-height:calc(100vh - 7rem);margin:0 auto;border:1px solid rgb(255 255 255 / 8%);border-radius:8px;background:#080a0fb8;box-shadow:var(--shadow)}.lesson-top,.lesson-footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.8rem}.lesson-footer{grid-template-columns:auto auto;justify-content:space-between;border-top:1px solid rgb(255 255 255 / 8%)}.lesson-progress{height:.55rem;overflow:hidden;border-radius:999px;background:#ffffff14}.step-counter{color:var(--muted);font-family:var(--mono)}.lesson-main{overflow:auto;padding:.4rem 1.1rem 1.2rem}.lesson-meta{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.75rem;color:var(--muted)}.lesson-meta p{margin:0}.lesson-meta span{color:var(--accent-2);font-family:var(--mono)}.step-card,.terminal-step{padding:clamp(1rem,3vw,1.35rem)}.step-card h1,.terminal-step h1{margin:.25rem 0 .85rem;font-size:clamp(1.55rem,5vw,2.4rem);line-height:1.08;letter-spacing:0}.lead,.step-card p,.terminal-step p{color:var(--muted);line-height:1.6}.step-title-row{display:flex;align-items:start;justify-content:space-between;gap:1rem}.callout{margin:1rem 0;padding:1rem;border:1px solid rgb(102 217 232 / 20%);border-radius:8px;background:#66d9e814}.callout p{margin:.35rem 0 0}.markdown-step{display:grid;gap:1rem}.markdown-content{display:grid;gap:.85rem}.markdown-content h2,.markdown-content h3,.markdown-content h4{margin:.8rem 0 .15rem;color:var(--text);line-height:1.2;letter-spacing:0}.markdown-content h2{font-size:clamp(1.25rem,3vw,1.7rem)}.markdown-content h3{font-size:1.1rem}.markdown-content h4{font-size:1rem}.markdown-content p,.markdown-content li{color:var(--muted);line-height:1.65}.markdown-content p,.markdown-content ul,.markdown-content ol{margin:0}.markdown-content ul,.markdown-content ol{display:grid;gap:.45rem;padding-left:1.35rem}.markdown-content strong{color:var(--text)}.markdown-content code{padding:.1rem .28rem;border:1px solid rgb(102 217 232 / 18%);border-radius:6px;background:#66d9e814;color:#d9faff;font-size:.92em}.markdown-code{overflow:auto;margin:0;padding:1rem;border:1px solid rgb(255 255 255 / 8%);border-radius:8px;background:#050608;color:#d7ffe4;line-height:1.55;white-space:pre}.markdown-code code{padding:0;border:0;background:transparent;color:inherit}.markdown-table-wrap{overflow-x:auto;border:1px solid rgb(255 255 255 / 8%);border-radius:8px}.markdown-table-wrap table{width:100%;min-width:30rem;border-collapse:collapse}.markdown-table-wrap th,.markdown-table-wrap td{padding:.7rem;border-bottom:1px solid rgb(255 255 255 / 8%);color:var(--muted);text-align:left;vertical-align:top}.markdown-table-wrap th{background:#ffffff0a;color:var(--text)}.markdown-table-wrap tr:last-child td{border-bottom:0}.point-list{display:grid;gap:.55rem;margin:1rem 0;padding-left:1.5rem;color:var(--text)}.terminal-and-files{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,.42fr);gap:.8rem;margin-top:1rem}.interactive-terminal{min-height:20rem}.terminal-log{min-height:13rem;max-height:22rem;overflow:auto;padding:1rem;color:#dcffe5;font-family:var(--mono);font-size:.9rem}.log-entry{margin-bottom:.85rem}.log-entry p{margin:0;color:var(--text)}.log-entry span,.terminal-input-row span{color:var(--green)}.log-entry pre{margin:.22rem 0 0;white-space:pre-wrap}.terminal-input-row{display:flex;align-items:center;gap:.45rem;padding:.75rem 1rem 1rem;border-top:1px solid rgb(255 255 255 / 8%);color:#dcffe5;font-family:var(--mono);font-size:.9rem}.terminal-input-row input{min-width:0;min-height:2.2rem;border:0;background:transparent;color:var(--text);font-family:var(--mono)}.terminal-submit{min-height:2rem;padding:0 .65rem;border:1px solid rgb(102 217 232 / 32%);border-radius:6px;background:#66d9e81a;color:var(--cyan);cursor:pointer;font-family:var(--mono);font-weight:800}.file-panel{min-width:0;padding:.85rem;border:1px solid rgb(255 255 255 / 8%);border-radius:8px;background:#ffffff0a}.file-snapshot{display:grid;gap:.4rem;color:var(--muted);font-family:var(--mono);font-size:.82rem}.file-snapshot p{margin:0 0 .2rem;color:var(--accent-2);overflow-wrap:anywhere}.file-snapshot span{overflow:hidden;padding:.3rem .45rem;border-radius:6px;background:#0000002e;text-overflow:ellipsis;white-space:nowrap}.option-list,.lesson-stack,.feedback-board,.comment-list{display:grid;gap:.6rem}.option-list button{min-height:3.3rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:8px;background:#ffffff0a;color:var(--text);text-align:left;cursor:pointer}.option-list button.correct{border-color:#65d88a99;background:#65d88a1f}.option-list button.wrong{border-color:#ff5f7099;background:#ff5f701f}.file-tree-layout{display:grid;grid-template-columns:minmax(12rem,.75fr) minmax(0,1fr);gap:.8rem}.tree-list{display:grid;gap:.35rem;padding:.6rem;border:1px solid var(--line);border-radius:8px;background:#090b10}.tree-list button{display:flex;align-items:center;gap:.55rem;min-width:0;min-height:2.2rem;border:0;border-radius:6px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.tree-list button.selected{background:#ff7a4526}.tree-list span{color:var(--cyan);font-family:var(--mono);font-size:.72rem}.tree-detail{padding:1rem;border:1px solid rgb(102 217 232 / 18%);border-radius:8px;background:#66d9e812}.tree-detail strong{font-family:var(--mono)}.tree-detail small{color:var(--accent-2)}.match-grid{display:grid;gap:.75rem}.match-grid label{grid-template-columns:minmax(8rem,.5fr) minmax(0,1fr);align-items:center}.match-grid code{color:var(--cyan)}.inline-help-form{display:flex;min-width:0;gap:.45rem}.comments-panel{position:fixed;right:1rem;bottom:1rem;z-index:25;width:min(28rem,calc(100vw - 2rem));max-height:min(42rem,calc(100vh - 2rem));overflow:auto;padding:1rem}.comment-form{display:grid;gap:.6rem}.comment,.help-request,.feedback-item{padding:.85rem}.comment div,.feedback-item div{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.comment small,.help-request span{color:var(--muted)}.vote-button{min-height:2rem;border:1px solid rgb(102 217 232 / 30%);border-radius:6px;background:#66d9e817;color:var(--cyan);cursor:pointer}.help-panel{position:fixed;top:7rem;right:0;z-index:22;pointer-events:none}.help-tab{position:absolute;top:12rem;right:.5rem;display:grid;gap:.25rem;width:3rem;min-height:5.5rem;place-items:center;border:1px solid rgb(255 122 69 / 45%);border-radius:8px;background:#0f121ceb;color:var(--text);cursor:pointer;pointer-events:auto;writing-mode:vertical-rl}.help-tab span{display:grid;width:1.4rem;height:1.4rem;place-items:center;border-radius:50%;background:var(--accent);color:#1b1010;font-weight:900}.help-content{width:min(28rem,calc(100vw - 5rem));min-height:28rem;max-height:calc(100vh - 8rem);overflow:auto;padding:1rem;border:1px solid rgb(255 255 255 / 9%);border-right:0;border-radius:8px 0 0 8px;background:#0a0c12f5;box-shadow:var(--shadow);pointer-events:auto}.help-request{margin-bottom:.65rem}.help-request strong,.help-request span{display:block}.help-request p,.comment p,.feedback-item p{color:var(--muted);line-height:1.55}.page-layout{padding:2rem 0 4rem}.community-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.feed-column{display:grid;gap:.7rem;align-content:start}.wide{width:100%}.feedback-composer{display:grid;grid-template-columns:12rem minmax(0,1fr) auto;gap:.75rem;align-items:start;margin:1rem 0;padding:1rem}.feedback-composer textarea{min-height:4rem}.feedback-board{grid-template-columns:repeat(3,minmax(0,1fr))}.status{padding:.18rem .45rem;border-radius:999px;background:#ffffff14;color:var(--muted);font-family:var(--mono);font-size:.72rem}.status.new{color:var(--cyan)}.status.planned{color:var(--yellow)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1rem;background:#000000b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-dialog{width:min(32rem,100%);max-height:min(48rem,calc(100vh - 2rem));overflow:auto;padding:1rem;border:1px solid rgb(255 255 255 / 10%);border-radius:8px;background:#11141d;box-shadow:var(--shadow)}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.dialog-head h2{margin:0}.auth-dialog label,.auth-dialog .segmented{margin-bottom:.75rem}.import-export{margin-top:.8rem;color:var(--muted)}.import-export summary{cursor:pointer}.import-export textarea{margin:.7rem 0;min-height:6rem}.route-section{margin:0 0 2rem}.route-strip{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.route-chip{display:grid;gap:.3rem;min-width:13rem;flex:1 1 12rem;padding:.9rem 1rem;border:1px solid rgb(255 255 255 / 9%);border-radius:8px;background:#12151fc7;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.route-chip:hover{border-color:#ff7a458c;background:#ff7a451a;transform:translateY(-1px)}.route-chip.selected{border-color:#ff7a45b3;background:#ff7a4524;box-shadow:0 10px 30px #ff7a451f}.route-chip strong{font-size:1rem}.route-chip small{color:var(--muted);font-family:var(--mono);font-size:.82rem}.route-note{margin:.8rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.5}.lesson-row.in-route{border:1px solid rgb(255 122 69 / 32%);background:#ff7a4512}.lesson-row.in-route .lesson-state{background:#ff7a4524;color:var(--accent-2)}.lesson-row.dimmed{opacity:.42}.reference-card{margin-top:1rem;padding:clamp(1rem,3vw,1.5rem);border:1px solid rgb(255 255 255 / 8%);border-radius:8px;background:#12151fc7;box-shadow:0 14px 44px #0000002e}.rubric-checks{display:grid;gap:.6rem;margin:1.2rem 0 .4rem}.rubric-check{display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;border:1px solid rgb(255 255 255 / 9%);border-radius:8px;background:#ffffff0a;cursor:pointer;transition:border-color .16s ease,background .16s ease}.rubric-check:hover{border-color:#66d9e866}.rubric-check.done{border-color:#65d88a66;background:#65d88a14}.rubric-check input{accent-color:var(--green);width:1.1rem;height:1.1rem;flex:0 0 auto;cursor:pointer}.rubric-check strong,.rubric-check small{display:block}.rubric-check small{margin-top:.2rem;color:var(--muted);font-size:.84rem}.rubric-check.done small{color:var(--green)}.rubric-result{margin-top:.6rem;color:var(--accent-2);font-family:var(--mono);font-weight:700}@media(max-width:900px){.topbar{position:static;grid-template-columns:1fr}.main-nav,.user-cluster{justify-content:start;overflow-x:auto}.hero-band,.dashboard-grid,.course-grid,.community-grid,.terminal-and-files,.file-tree-layout,.feedback-board{grid-template-columns:1fr}.hero-band{min-height:auto}.hero-copy h1{max-width:14ch}.hero-terminal{min-height:auto}.lesson-layout{min-height:calc(100vh - 2rem)}.lesson-footer{grid-template-columns:1fr 1fr}.inline-help-form{grid-column:1 / -1}.feedback-composer{grid-template-columns:1fr}}@media(max-width:560px){.app-shell{padding:.6rem}.hero-copy h1{font-size:2.35rem}.stat-row{grid-template-columns:1fr}.section-head,.panel-head{align-items:start;flex-direction:column}.level-summary,.lesson-row{grid-template-columns:auto minmax(0,1fr)}.level-score,.lesson-duration{grid-column:2}.terminal-input-row{align-items:start;flex-direction:column}.match-grid label{grid-template-columns:1fr}.comments-panel{left:.6rem;right:.6rem;bottom:.6rem;width:auto}.help-panel{top:auto;right:.8rem;bottom:.8rem}.help-tab{position:fixed;top:auto;right:.8rem;bottom:.8rem;display:flex;width:auto;min-height:2.55rem;padding:0 .7rem;writing-mode:horizontal-tb}.help-content{position:fixed;right:.8rem;bottom:3.8rem;width:calc(100vw - 4rem);min-height:18rem;max-height:60vh}}
