:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base: #0f1117;--bg-surface: #1a1d27;--bg-elevated: #22263a;--border: #2e3248;--accent: #f97316;--accent-hover: #fb923c;--accent-dim: rgba(249, 115, 22, .1);--green: #33ff33;--green-dim: #28c840;--text-primary: #e2e4f0;--text-muted: #6b7280;--text-code: #a5b4fc;--radius: 8px;--font-mono: "Cascadia Code", "Fira Code", Consolas, "Courier New", monospace;--font-ui: system-ui, -apple-system, sans-serif}body{background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-ui)}#root{display:flex;flex-direction:column}.app{display:flex;flex-direction:column;min-height:100vh}.app:has(.workspace){height:100vh;overflow:hidden}.navbar{display:flex;align-items:center;gap:2rem;padding:0 1.5rem;height:52px;flex-shrink:0;background-color:var(--bg-surface);border-bottom:1px solid var(--border)}.navbar-brand{display:flex;align-items:center;gap:8px;text-decoration:none}.navbar-logo{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;color:var(--accent);width:32px}.navbar-title{font-size:1rem;font-weight:700;color:var(--text-primary);letter-spacing:.02em}.navbar-links{display:flex;list-style:none;gap:.25rem;flex:1}.nav-link{display:block;padding:.35rem .75rem;font-size:.875rem;color:var(--text-muted);text-decoration:none;border-radius:var(--radius);transition:color .15s,background-color .15s}.nav-link:hover{color:var(--text-primary);background-color:var(--bg-elevated)}.nav-link.active{color:var(--accent);background-color:var(--accent-dim)}.navbar-actions{display:flex;flex-direction:row;align-items:center;gap:.6rem}.navbar-actions .btn-nav{padding:.35rem 1rem;font-size:.875rem;font-weight:600;color:var(--text-primary);background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,background-color .15s}.navbar-actions .btn-nav:hover{border-color:var(--accent);background-color:var(--accent-dim)}.workspace{display:flex;flex-direction:row;flex:1;overflow:hidden;gap:6px;padding:8px;background-color:var(--bg-base)}.description-pane{flex:0 0 22vw;display:flex;flex-direction:column;gap:1.25rem;background-color:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;overflow-y:auto}.description-pane::-webkit-scrollbar{width:5px}.description-pane::-webkit-scrollbar-track{background:transparent}.description-pane::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.desc-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.desc-title{font-size:1.15rem;font-weight:700;color:var(--text-primary)}.badge{font-size:.7rem;font-weight:700;padding:.2em .65em;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}.badge-easy{background-color:#28c84026;color:#28c840}.badge-medium{background-color:#febc2e26;color:#febc2e}.badge-hard{background-color:#ff5f5726;color:#ff5f57}.desc-section h3{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.5rem}.desc-section p,.desc-section li{font-size:.875rem;color:var(--text-primary);line-height:1.65}.desc-section ul{padding-left:1.25rem;display:flex;flex-direction:column;gap:.25rem}.desc-section code{font-family:var(--font-mono);font-size:.8rem;color:var(--text-code);background-color:var(--bg-elevated);padding:.1em .4em;border-radius:4px}.desc-code{font-family:var(--font-mono);font-size:.8rem;color:var(--text-code);background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;white-space:pre-wrap;line-height:1.6}.editor-pane{flex:1 1 0;min-width:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.editor-titlebar{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0}.editor-lang-dot{width:10px;height:10px;border-radius:50%;background-color:#f7df1e;flex-shrink:0}.editor-lang-label{font-size:.78rem;font-weight:600;color:var(--text-muted);letter-spacing:.04em}.lang-select{appearance:none;background-color:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:.2rem 1.75rem .2rem .6rem;font-size:.78rem;font-family:var(--font-ui);font-weight:500;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:border-color .15s}.lang-select:hover{border-color:var(--accent)}.lang-select:focus{outline:2px solid var(--accent);outline-offset:2px}.editor-titlebar-actions{margin-left:auto}.btn-run{padding:.3rem 1rem;font-size:.8rem;font-weight:700;font-family:var(--font-ui);color:#0d0d0d;background-color:var(--green-dim);border:none;border-radius:var(--radius);cursor:pointer;transition:background-color .15s,opacity .15s}.btn-run:hover{background-color:var(--green)}.btn-run:disabled{opacity:.5;cursor:not-allowed}.editor-body{flex:1;min-height:0}.output{flex:0 0 22vw;display:flex;flex-direction:column;background-color:#0d0d0d;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;font-family:var(--font-mono)}.terminal-titlebar{display:flex;align-items:center;gap:6px;background-color:#1a1a1a;padding:7px 12px;border-bottom:1px solid #2a2a2a;flex-shrink:0}.terminal-titlebar .dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.dot-red{background-color:#ff5f57}.dot-yellow{background-color:#febc2e}.dot-green{background-color:#28c840}.terminal-titlebar span:last-of-type{margin-left:auto;margin-right:auto;font-size:.72rem;color:#555;letter-spacing:.05em}.terminal-body{flex:1;overflow-y:auto;padding:12px 14px;color:var(--green);font-size:.82rem;line-height:1.65;text-align:left;white-space:pre-wrap;word-break:break-word}.terminal-body::-webkit-scrollbar{width:5px}.terminal-body::-webkit-scrollbar-track{background:#0d0d0d}.terminal-body::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:3px}.terminal-placeholder{color:#333;font-style:italic}.terminal-prompt{color:var(--green)}.terminal-cursor{display:inline-block;width:8px;height:1em;background-color:var(--green);vertical-align:text-bottom;animation:blink 1s step-start infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.home-page{flex:1;padding:3rem 2rem;display:flex;flex-direction:column;gap:3rem;align-items:stretch}.home-hero{text-align:center;max-width:640px;margin:0 auto;width:100%}.home-title{font-size:2.25rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:1rem}.home-subtitle{font-size:1rem;color:var(--text-muted);line-height:1.75}.lang-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;width:100%;max-width:1280px}.lang-card{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;background-color:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;cursor:pointer;text-align:left;transition:border-color .15s,background-color .15s,transform .1s;font-family:var(--font-ui)}.lang-card:hover{border-color:var(--accent);background-color:var(--bg-elevated);transform:translateY(-2px)}.lang-card-icon{width:2.25rem;height:2.25rem;object-fit:contain}.lang-card-name-row{display:flex;flex-direction:row;align-items:center;gap:.5rem}.lang-card-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lang-card-name{font-size:1rem;font-weight:700;color:var(--text-primary)}.lang-card-desc{font-size:.8rem;color:var(--text-muted);line-height:1.5;flex:1}.lang-card-cta{font-size:.78rem;font-weight:600;color:var(--accent);margin-top:.25rem}.roadmap-page{flex:1;padding:2.5rem 2rem;display:flex;flex-direction:column;gap:2.5rem;align-items:center;overflow-y:auto}.roadmap-header{text-align:center;max-width:560px}.roadmap-title{font-size:1.75rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:.5rem}.roadmap-subtitle{font-size:.9rem;color:var(--text-muted);line-height:1.65}.roadmap-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.95rem}.tier-track{display:flex;align-items:center;gap:0}.tier-track-item{display:flex;align-items:center}.tier-btn{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.4rem;background-color:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.875rem;font-weight:600;font-family:var(--font-ui);cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}.tier-btn:hover{border-color:var(--accent);color:var(--text-primary)}.tier-btn-active{font-weight:700}.tier-btn-index{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background-color:currentColor;color:var(--bg-base);font-size:.7rem;font-weight:800;flex-shrink:0}.tier-connector{width:48px;height:2px;background:linear-gradient(to right,var(--border),var(--border));flex-shrink:0}.topics-section{width:100%;max-width:820px;display:flex;flex-direction:column;gap:1rem}.topics-section-heading{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.25rem}.topics-grid{display:flex;flex-direction:column;gap:.5rem}.topic-card{background-color:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .15s,background-color .15s}.topic-card-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.85rem 1.1rem;background:none;border:none;color:var(--text-primary);font-family:var(--font-ui);font-size:.95rem;font-weight:600;cursor:pointer;text-align:left;gap:1rem}.topic-card-header:hover .topic-card-title{color:var(--accent)}.topic-card-title{transition:color .15s}.topic-card-meta{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.topic-difficulty-pill{font-size:.68rem;font-weight:700;padding:.15em .55em;border-radius:999px;border:1px solid;text-transform:capitalize;letter-spacing:.04em}.topic-chevron{font-size:1.1rem;color:var(--text-muted);transition:transform .2s;display:inline-block}.exercise-list{border-top:1px solid var(--border);padding:.75rem 1rem;display:flex;flex-direction:column;gap:.75rem}.exercise-group-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding-bottom:.25rem}.exercise-group{display:flex;flex-direction:column;gap:.25rem}.exercise-row{display:flex;align-items:center;gap:.75rem;width:100%;padding:.55rem .75rem;background:none;border:1px solid transparent;border-radius:6px;color:var(--text-primary);font-family:var(--font-ui);font-size:.875rem;cursor:pointer;text-align:left;transition:background-color .12s,border-color .12s}.exercise-row:hover{background-color:var(--bg-elevated);border-color:var(--border)}.exercise-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.exercise-title{flex:1}.exercise-arrow{color:var(--text-muted);font-size:.85rem;transition:transform .12s,color .12s}.exercise-row:hover .exercise-arrow{transform:translate(3px);color:var(--accent)}.back-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.8rem;font-family:var(--font-ui);cursor:pointer;transition:color .15s,border-color .15s;align-self:flex-start}.back-btn:hover{color:var(--text-primary);border-color:var(--accent)}.navbar-lang-badge{display:flex;flex-direction:row;align-items:center;gap:6px;padding:.25rem .75rem;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);font-size:.8rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.footer{width:100%;background-color:var(--bg-surface);border-top:1px solid var(--border);flex-shrink:0;align-self:stretch}.footer-inner{display:flex;flex-direction:row;align-items:flex-start;gap:2rem;padding:1.5rem;width:100%}.footer-brand{flex:1.5;display:flex;flex-direction:column;gap:.75rem}.footer-brand-row{display:flex;align-items:center;gap:8px}.footer-logo{width:28px;height:28px}.footer-brand-name{font-size:.9rem;font-weight:700;color:var(--text-primary);letter-spacing:.02em}.footer-tagline{font-size:.8rem;color:var(--text-muted);line-height:1.65}.footer-links-group{flex:1;display:flex;flex-direction:column;gap:.75rem}.footer-heading{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.footer-links{list-style:none;display:flex;flex-direction:column;gap:.5rem}.footer-links-2col{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.25rem}.footer-links a,.footer-links-2col a{font-size:.83rem;color:var(--text-muted);text-decoration:none;transition:color .15s}.footer-links a:visited,.footer-links-2col a:visited{color:var(--text-muted)}.footer-links a:hover,.footer-links-2col a:hover{color:var(--accent)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-top:1px solid var(--border);width:100%}.footer-copy,.footer-built{font-size:.75rem;color:var(--text-muted)}.footer-heart{color:#ff5f57}
