:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#050505;--panel:#0b0b0a;--text:#f2f2ed;--muted:#92928b;--faint:#62625d;--line:#2a2a27;--line-strong:#484844;--focus:#ddddda;--success:#91ad96;--danger:#c99a94;--text-base:16px;--text-small:14px}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;min-height:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:var(--text-base);text-rendering:optimizelegibility;margin:0;line-height:1.65}button,textarea,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;background:0 0;border:0}button:disabled{cursor:not-allowed;opacity:.36}a{color:inherit}::selection{color:#050505;background:var(--focus)}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.terminal-shell{width:min(100%,1120px);min-height:100vh;margin:0 auto;padding:0 42px 72px}.topbar{z-index:10;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:24px;min-height:68px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.025em;text-align:left;padding:8px 0;font-weight:600}.brand-mark{color:var(--focus)}.session-meta{color:var(--muted);font-size:var(--text-small);align-items:center;gap:22px;display:flex}.session-meta button{color:var(--text);padding:8px 0}.session-meta .prep-switch{border:1px solid var(--line-strong);color:var(--focus);white-space:nowrap;padding:7px 10px}.session-meta .prep-switch:hover{border-color:var(--focus);color:var(--text)}.mode-nav{border-bottom:1px solid var(--line);scrollbar-width:none;gap:28px;padding:23px 0 21px;display:flex;overflow-x:auto}.mode-nav::-webkit-scrollbar{display:none}.mode-nav button{color:var(--muted);font-size:var(--text-small);flex:none;padding:0}.mode-nav button:before{content:"○ ";color:var(--faint)}.mode-nav button.active{color:var(--text)}.mode-nav button.active:before{content:"● ";color:var(--focus)}.practice-surface,.progress-panel{padding:50px 0 0}.question-head{justify-content:space-between;align-items:flex-start;gap:32px;display:flex}.section-kicker,.prompt-label,.answer-entry label,.lesson span,.hint span,.rating-block span,.evaluation-loading span,.evaluation-error span,.next-step span{color:var(--muted);font-size:var(--text-small);letter-spacing:.09em;text-transform:uppercase;font-weight:600;line-height:1.4;display:block}h1,h2,h3,p{margin-top:0}.question-head h1,.progress-panel h1{max-width:27ch;font-size:var(--text-base);letter-spacing:-.02em;margin:12px 0 0;font-weight:650;line-height:1.35}.difficulty{color:var(--focus);font-size:var(--text-small);letter-spacing:4px;flex:none;padding-top:3px}.lesson,.context{border-left:2px solid var(--line-strong);color:#c3c3bd;max-width:82ch;margin:38px 0 0;padding-left:20px}.lesson span{color:var(--focus);margin-bottom:8px}.prompt-block{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:46px 0 0;padding:27px 0 30px}.prompt-block p,.stage-block>p{max-width:68ch;font-size:var(--text-base);margin:9px 0 0;line-height:1.48}.prompt-label:before{content:"> ";color:var(--focus)}.stage-block{border:1px solid var(--line-strong);background:var(--panel);margin-top:28px;padding:24px}.stage-track{border-bottom:1px solid var(--line);color:var(--faint);font-size:var(--text-small);text-transform:uppercase;flex-wrap:wrap;gap:8px 18px;margin-bottom:24px;padding-bottom:20px;display:flex}.stage-track span.done{color:var(--text)}.stage-track span.done:before{content:"✓ ";color:var(--focus)}.response-log{color:var(--muted);font-size:var(--text-small);margin-top:24px}.response-log summary{cursor:pointer;color:var(--text)}.response-log p{border-left:1px solid var(--line);white-space:pre-wrap;margin:14px 0;padding-left:20px}.response-log p span{color:var(--focus)}.answer-entry{margin-top:36px}.answer-entry label{margin-bottom:10px}.answer-entry textarea{resize:vertical;border:1px solid var(--line-strong);width:100%;min-height:190px;color:var(--text);caret-color:var(--focus);background:#080807;border-radius:0;outline:none;padding:20px;line-height:1.6;display:block}.answer-entry textarea::placeholder{color:#5f5f5a}.answer-entry textarea:focus{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}.entry-actions{color:var(--faint);font-size:var(--text-small);justify-content:space-between;align-items:center;gap:20px;margin-top:12px;display:flex}.primary-action{color:var(--focus);text-align:left;padding:11px 0}.primary-action:hover{color:var(--text)}.hint-stack{background:var(--line);border:1px solid var(--line);gap:1px;margin-top:30px;display:grid}.hint{background:var(--panel);padding:20px}.hint span{color:var(--focus)}.hint p{color:#d0d0ca;margin:7px 0 0}.interviewer-nudge span{color:var(--text)}.evaluation-loading,.evaluation-error{border:1px solid var(--line-strong);background:var(--panel);margin-top:30px;padding:20px}.evaluation-loading span{color:var(--focus)}.evaluation-loading p,.evaluation-error p{color:#c3c3bd;margin:8px 0 0}.evaluation-loading p:after{content:"_";color:var(--focus);margin-left:4px;animation:1s step-end infinite cursor-blink}.evaluation-error{border-color:var(--danger);margin:0 0 34px}.evaluation-error span{color:var(--danger)}@keyframes cursor-blink{50%{opacity:0}}.reference-answer{border-top:1px solid var(--text);margin-top:42px;padding-top:36px}.reference-answer>h2{max-width:34ch;font-size:var(--text-base);letter-spacing:-.02em;margin:10px 0 34px;font-weight:650;line-height:1.35}.answer-sections{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.answer-sections>div{background:var(--panel);padding:22px}.reference-answer h3{color:var(--text);font-size:var(--text-small);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;font-weight:600}.answer-sections p{color:#b5b5af;font-size:var(--text-small);margin:0}.diagram{border:1px solid var(--line-strong);color:var(--focus);font-family:var(--font-geist-mono), monospace;font-size:var(--text-small);background:#020202;margin:26px 0 0;padding:24px;line-height:1.65;overflow-x:auto}.two-column{grid-template-columns:1fr 1fr;gap:48px;margin-top:34px;display:grid}.two-column ul{margin:0;padding:0;list-style:none}.two-column li{color:#b5b5af;font-size:var(--text-small);margin:9px 0;padding-left:18px;position:relative}.two-column li:before{content:"—";color:var(--faint);position:absolute;left:0}.follow-ups{border-top:1px solid var(--line);margin-top:38px;padding-top:28px}.follow-ups p{color:#cecec8;gap:18px;margin:12px 0;display:flex}.follow-ups p span{color:var(--focus);font-size:var(--text-small)}.ai-evaluation{border:1px solid var(--line-strong);background:var(--panel);margin:0 0 42px;padding:28px}.evaluation-head{justify-content:space-between;align-items:flex-start;gap:28px;display:flex}.evaluation-head h2{font-size:var(--text-base);letter-spacing:-.02em;margin:8px 0 0;font-weight:650;line-height:1.35}.score-ring{border:1px solid var(--focus);width:64px;height:64px;color:var(--focus);font-size:var(--text-base);border-radius:50%;flex:none;place-items:center;display:grid}.result-badge{border:1px solid var(--line-strong);width:fit-content;color:var(--text);font-size:var(--text-small);text-transform:uppercase;margin-top:20px;padding:5px 8px;font-weight:650}.result-badge.pass{border-color:var(--success);color:var(--success)}.result-badge.fail{border-color:var(--danger);color:var(--danger)}.evaluation-verdict{color:#d1d1ca;max-width:70ch;margin:24px 0}.evaluation-columns{grid-template-columns:1fr 1fr;gap:34px;margin-top:28px;display:grid}.evaluation-columns ul{margin:0;padding:0;list-style:none}.evaluation-columns li{color:#bdbdb6;font-size:var(--text-small);margin:9px 0;padding-left:17px;position:relative}.evaluation-columns li:before{content:"+";color:var(--focus);position:absolute;left:0}.evaluation-columns>div:last-child li:before{content:"−";color:var(--danger)}.improvement-plan{border:1px solid var(--danger);background:var(--panel);margin-top:26px;padding:20px}.improvement-plan span{color:var(--danger);font-size:var(--text-small);letter-spacing:.06em;text-transform:uppercase;font-weight:650;display:block}.improvement-plan p{color:var(--text);margin:8px 0 0}.next-step{border-top:1px solid var(--line);margin-top:26px;padding-top:20px}.next-step span{color:var(--focus)}.next-step p{color:var(--text);margin:7px 0 0}.rating-block{border:1px solid var(--line-strong);justify-content:space-between;align-items:center;gap:28px;margin-top:42px;padding:24px;display:flex}.rating-block p{color:var(--muted);font-size:var(--text-small);margin:5px 0 0}.rating-actions{gap:8px;display:flex}.rating-actions button,.command-row button{border:1px solid var(--line);color:var(--muted);font-size:var(--text-small);padding:8px 10px}.rating-actions button:hover,.command-row button:hover:not(:disabled){border-color:var(--line-strong);color:var(--text)}.rating-actions button.suggested{border-color:var(--focus);color:var(--text)}kbd{color:var(--focus);font:inherit}.practice-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;margin-top:42px;padding-top:18px;display:flex}.command-row{flex-wrap:wrap;gap:8px;display:flex}.practice-footer>a{color:var(--faint);font-size:var(--text-small);text-align:right;text-decoration:none}.practice-footer>a:hover{color:var(--muted)}.progress-panel{max-width:880px}.progress-panel .lede{max-width:60ch;color:var(--muted);margin:24px 0 0}.progress-summary{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:40px;display:grid}.progress-summary>div{background:var(--panel);flex-direction:column;justify-content:space-between;min-height:135px;padding:20px;display:flex}.progress-summary strong{font-size:var(--text-base);letter-spacing:-.02em;font-weight:650}.progress-summary span{color:var(--muted);font-size:var(--text-small)}.topic-list{border-top:1px solid var(--line);margin:32px 0 16px}.topic-row{border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-small);grid-template-columns:1fr 70px 70px;gap:14px;padding:12px 0;display:grid}.topic-row span:first-child{color:var(--text)}.topic-row span:not(:first-child){text-align:right}.technical-prep{padding-top:50px}.technical-hero{justify-content:space-between;align-items:flex-start;gap:48px;display:flex}.technical-hero h1{max-width:40ch;font-size:var(--text-base);letter-spacing:-.02em;margin:12px 0 0;font-weight:650;line-height:1.35}.technical-hero p{max-width:70ch;color:var(--muted);margin:20px 0 0}.technical-total{flex:none;justify-content:flex-end;align-items:baseline;min-width:145px;padding-top:2px;display:flex}.technical-total strong{color:var(--focus);font-size:var(--text-base);font-weight:650}.technical-total span{color:var(--muted);font-size:var(--text-small)}.coding-workspace{border:1px solid var(--line-strong);background:var(--panel);margin-top:38px;padding:26px}.workspace-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:20px;display:flex}.workspace-head h2{font-size:var(--text-base);margin:8px 0 0;font-weight:650;line-height:1.35}.workspace-head>button{color:var(--muted);font-size:var(--text-small);padding:5px 0}.workspace-head>button:hover{color:var(--focus)}.language-row{align-items:center;gap:14px;margin-top:20px;display:flex}.language-row label,.code-entry>label,.problem-brief span,.workspace-error span,.technical-review-note span,.technical-next-step span{color:var(--muted);font-size:var(--text-small);letter-spacing:.07em;text-transform:uppercase;font-weight:600}.language-row select{border:1px solid var(--line-strong);background:var(--bg);min-height:36px;color:var(--text);border-radius:0;outline:none;padding:6px 34px 6px 10px}.language-row select:focus{border-color:var(--focus)}.brief-loading,.workspace-error{border:1px solid var(--line-strong);background:var(--panel);color:var(--muted);margin-top:22px;padding:18px}.brief-loading:after{content:"_";color:var(--focus);margin-left:5px;animation:1s step-end infinite cursor-blink}.workspace-error{border-color:var(--danger)}.workspace-error span{color:var(--danger)}.workspace-error p{margin:7px 0 0}.workspace-error button{color:var(--focus);margin-top:8px;padding:4px 0}.problem-brief{border:1px solid var(--line);background:var(--line);grid-template-columns:1.2fr .8fr;gap:1px;margin-top:22px;display:grid}.problem-brief>div{background:var(--panel);padding:18px}.problem-brief p{color:#c5c5bf;margin:8px 0 0}.problem-brief pre{color:var(--focus);font:inherit;white-space:pre-wrap;margin:8px 0 0;overflow-x:auto}.problem-brief ul{color:#c5c5bf;margin:8px 0 0;padding-left:18px}.brief-examples{grid-column:1/-1;grid-template-columns:repeat(2,1fr);gap:1px;display:grid;background:var(--line)!important;padding:0!important}.brief-examples>div{background:var(--panel);padding:18px}.brief-examples pre{color:var(--text)}.brief-examples p{color:var(--muted);font-size:var(--text-small)}.code-entry{margin-top:24px}.code-entry>label{color:var(--focus);margin-bottom:9px;display:block}.code-entry textarea{resize:vertical;border:1px solid var(--line-strong);width:100%;min-height:360px;color:var(--text);tab-size:2;caret-color:var(--focus);background:#020202;border-radius:0;outline:none;padding:18px;line-height:1.55;display:block}.code-entry textarea:focus{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}.code-entry textarea::placeholder{color:var(--faint)}.code-actions{justify-content:space-between;align-items:center;gap:20px;margin-top:12px;display:flex}.code-actions .submit-code{color:var(--focus);padding:9px 0}.code-actions>span{color:var(--faint);font-size:var(--text-small);text-align:right}.technical-evaluation{border:1px solid var(--line-strong);background:var(--panel);margin-top:28px;padding:22px}.technical-evaluation.pass{border-color:var(--success)}.technical-evaluation.fail{border-color:var(--danger)}.technical-evaluation-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.technical-evaluation-head h3{font-size:var(--text-base);margin:8px 0 0;font-weight:650}.technical-evaluation-head>span{width:44px;height:44px;color:var(--success);border:1px solid;border-radius:50%;place-items:center;display:grid}.technical-evaluation.fail .technical-evaluation-head>span{color:var(--danger)}.technical-verdict{color:#d0d0ca;max-width:72ch;margin:20px 0}.technical-feedback-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:28px;padding:20px 0;display:grid}.technical-feedback-grid h4,.technical-test-cases h4{font-size:var(--text-small);text-transform:uppercase;margin:0 0 7px;font-weight:650}.technical-feedback-grid ul,.technical-test-cases ul{color:var(--muted);margin:0;padding-left:18px}.technical-review-note,.technical-next-step,.technical-test-cases{margin-top:20px}.technical-review-note p,.technical-next-step p{color:#c5c5bf;margin:7px 0 0}.technical-next-step{border-top:1px solid var(--line);padding-top:18px}.technical-next-step span{color:var(--focus)}.technical-stats{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:36px;display:grid}.technical-stats>div{background:var(--panel);justify-content:space-between;align-items:center;gap:18px;padding:14px 16px;display:flex}.technical-stats span{color:var(--muted);font-size:var(--text-small);text-transform:uppercase}.technical-stats strong{font-size:var(--text-small);font-weight:500}.roadmap-panel{margin-top:52px}.roadmap-heading,.catalog-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px;display:flex}.roadmap-heading h2,.catalog-heading h2{font-size:var(--text-base);margin:8px 0 0;font-weight:650}.roadmap-heading>button,.catalog-heading>a{color:var(--muted);font-size:var(--text-small);padding:6px 0;text-decoration:none}.roadmap-heading>button:hover,.roadmap-heading>button.active,.catalog-heading>a:hover{color:var(--focus)}.roadmap-track{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.roadmap-track button{background:var(--panel);text-align:left;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;min-height:62px;padding:12px 14px;display:grid}.roadmap-track button:hover,.roadmap-track button.active{box-shadow:inset 2px 0 var(--focus);background:#111110}.roadmap-track button>span{color:var(--faint);font-size:var(--text-small)}.roadmap-track button>strong{font-size:var(--text-small);font-weight:500;line-height:1.35}.roadmap-track button>small{color:var(--muted);font-size:var(--text-small)}.roadmap-track button.active>span,.roadmap-track button.active>small{color:var(--focus)}.question-catalog{margin-top:56px}.catalog-controls{border:1px solid var(--line);background:var(--panel);grid-template-columns:minmax(220px,1fr) auto auto;align-items:end;gap:16px;padding:18px;display:grid}.question-search span{color:var(--muted);font-size:var(--text-small);text-transform:uppercase;margin-bottom:7px;display:block}.question-search input{border:1px solid var(--line-strong);background:var(--bg);width:100%;min-height:38px;color:var(--text);border-radius:0;outline:none;padding:7px 10px}.question-search input::placeholder{color:var(--faint)}.question-search input:focus{border-color:var(--focus)}.difficulty-filter{flex-wrap:wrap;gap:6px;display:flex}.difficulty-filter button{border:1px solid var(--line);min-height:38px;color:var(--muted);font-size:var(--text-small);padding:7px 9px}.difficulty-filter button:hover,.difficulty-filter button.active{border-color:var(--focus);color:var(--text)}.hide-solved{min-height:38px;color:var(--muted);font-size:var(--text-small);white-space:nowrap;align-items:center;gap:8px;display:flex}.hide-solved input{width:15px;height:15px;accent-color:var(--focus);margin:0}.question-groups{margin-top:22px}.technical-group{margin-top:28px}.technical-group-head{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:baseline;gap:18px;padding-bottom:10px;display:flex}.technical-group-head h3{font-size:var(--text-small);letter-spacing:.06em;text-transform:uppercase;margin:0;font-weight:650}.technical-group-head span{color:var(--faint);font-size:var(--text-small)}.technical-question{border-bottom:1px solid var(--line);grid-template-columns:38px minmax(0,1fr) 76px 74px;align-items:center;gap:12px;min-height:52px;display:grid}.technical-question.solved{color:var(--muted)}.technical-question.solved .question-title{text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.solve-toggle{width:28px;height:28px;color:var(--faint);place-items:center;display:grid}.solve-toggle[aria-pressed=true]{color:var(--focus)}.question-title,.solve-link{text-decoration:none}.question-title{text-align:left;text-overflow:ellipsis;white-space:nowrap;padding:9px 0;overflow:hidden}.question-title:hover,.solve-link:hover{color:var(--focus)}.technical-difficulty,.solve-link{color:var(--muted);font-size:var(--text-small)}.technical-difficulty.easy,.technical-difficulty.hard{color:var(--muted)}.solve-link{text-align:right}.technical-question.selected{box-shadow:inset 2px 0 var(--focus);background:#10100f}.empty-catalog{border:1px solid var(--line);text-align:center;padding:48px 20px}.empty-catalog span{color:var(--text);text-transform:uppercase}.empty-catalog p{color:var(--muted);margin:7px 0}.empty-catalog button{color:var(--focus);padding:8px 0}.catalog-attribution{border-top:1px solid var(--line);max-width:80ch;color:var(--faint);font-size:var(--text-small);margin:40px 0 0;padding-top:18px}@media (max-width:780px){.terminal-shell{padding:0 20px 48px}.topbar{min-height:60px}.session-meta>span{display:none}.mode-nav{gap:20px}.practice-surface,.progress-panel{padding-top:36px}.question-head h1,.progress-panel h1{font-size:var(--text-base)}.answer-sections{grid-template-columns:1fr}.evaluation-columns{grid-template-columns:1fr;gap:20px}.two-column{grid-template-columns:1fr;gap:24px}.rating-block{flex-direction:column;align-items:stretch}.rating-actions{grid-template-columns:1fr;display:grid}.practice-footer{flex-direction:column;align-items:flex-start}.practice-footer>a{text-align:left}.technical-prep{padding-top:36px}.technical-hero{flex-direction:column;gap:20px}.technical-total{justify-content:flex-start}.coding-workspace{padding:20px}.problem-brief,.brief-examples,.technical-feedback-grid{grid-template-columns:1fr}.brief-examples{grid-column:auto}.code-actions{flex-direction:column;align-items:flex-start}.code-actions>span{text-align:left}.roadmap-track{grid-template-columns:repeat(2,1fr)}.catalog-controls{grid-template-columns:1fr;align-items:stretch}.technical-question{grid-template-columns:38px minmax(0,1fr) 66px}.solve-link{display:none}}@media (max-width:520px){body{font-size:var(--text-small)}.brand{max-width:180px;line-height:1.3}.session-meta{gap:10px}.difficulty{display:none}.stage-block{padding:18px}.entry-actions{flex-direction:column;align-items:flex-start}.ai-evaluation{padding:20px}.progress-summary{grid-template-columns:1fr}.progress-summary>div{min-height:100px}.session-meta .prep-switch{padding:6px 8px}.roadmap-track,.technical-stats{grid-template-columns:1fr}.technical-question{grid-template-columns:32px minmax(0,1fr) 58px;gap:8px}.technical-difficulty{text-align:right}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
