.student-learning{--learning-surface: var(--app-surface, #ffffff);--learning-subtle: var(--app-surface-subtle, #f6f8fb);--learning-border: var(--app-border, #d7dee8);--learning-text: var(--app-text, #172033);--learning-muted: #475569;color:var(--learning-text);min-width:0}.student-learning h1,.student-learning h2,.student-learning h3{letter-spacing:0}.course-index-header,.learning-course-header{align-items:end;border-bottom:1px solid var(--learning-border);display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto;margin-bottom:1rem;padding-bottom:1rem}.course-index-header h1,.learning-course-header h1{font-size:1.5rem;line-height:1.25;margin:0}.learning-eyebrow{color:#1d4ed8;font-size:.75rem;font-weight:700;margin-bottom:.25rem;text-transform:uppercase}.course-index-tools{align-items:end;display:flex;gap:.75rem}.course-search{width:min(20rem,42vw)}.course-search .input-group-text,.course-search .form-control,.module-mobile-picker .form-select,.practice-filters .form-control,.practice-filters .form-select{background:var(--learning-surface);border-color:var(--learning-border);color:var(--learning-text)}.student-course-grid{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}.student-course-card{min-width:0}.student-course-link{background:var(--learning-surface);border:1px solid var(--learning-border);border-radius:.5rem;color:var(--learning-text);display:grid;gap:1rem;height:100%;padding:1rem;text-decoration:none;transition:border-color .12s ease,box-shadow .12s ease}.student-course-link:hover{border-color:#7c8da5;box-shadow:0 8px 22px rgba(15,23,42,.09);color:var(--learning-text)}.student-course-link:focus-visible,.module-nav-link:focus-visible,.learning-question-link:focus-visible,.learning-tab:focus-visible{outline:3px solid rgba(37,99,235,.42);outline-offset:2px}.course-card-heading{align-items:start;display:grid;gap:.75rem;grid-template-columns:2.75rem minmax(0,1fr) auto}.course-card-icon{align-items:center;background:#dbeafe;border-radius:.5rem;color:#1d4ed8;display:inline-flex;font-size:1rem;height:2.75rem;justify-content:center;width:2.75rem}.student-course-card.is-ai .course-card-icon{background:#dcfce7;color:#166534}.student-course-card.is-vibe .student-course-link{border-inline-start:4px solid #0f766e}.student-course-card.is-vibe .course-card-icon{background:#fff1f2;color:#be123c}.student-course-card.is-data-structures .student-course-link{border-inline-start:4px solid #d97706}.student-course-card.is-data-structures .course-card-icon{background:#fef3c7;color:#92400e}.student-course-card.is-data-structures .course-progress-fill{background:#d97706}.course-card-code-row{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem}.vibe-course-badge{background:#e6fffb;border:1px solid #5eead4;border-radius:.25rem;color:#0f766e;display:inline-flex;font-size:.66rem;font-weight:700;line-height:1.3;padding:.15rem .35rem;text-transform:none}.ds-course-badge{background:#fef3c7;border:1px solid #f59e0b;border-radius:.25rem;color:#92400e;display:inline-flex;font-size:.66rem;font-weight:700;line-height:1.3;margin-inline-start:.35rem;padding:.15rem .35rem;text-transform:none;vertical-align:middle}.learning-eyebrow .vibe-course-badge{margin-inline-start:.35rem;vertical-align:middle}.course-card-code{color:#1d4ed8;font-size:.75rem;font-weight:700;text-transform:uppercase}.course-card-title{font-size:1rem;font-weight:700;line-height:1.35;margin-top:.15rem}.course-card-arrow{align-items:center;border:1px solid var(--learning-border);border-radius:.375rem;color:#334155;display:inline-flex;height:2.25rem;justify-content:center;width:2.25rem}.course-card-meta,.course-card-metrics{color:var(--learning-muted);display:flex;flex-wrap:wrap;font-size:.82rem;gap:.5rem 1rem}.course-card-meta span,.course-card-metrics span{align-items:center;display:inline-flex;gap:.4rem}.course-progress-row,.learning-overall-progress,.active-module-progress{align-items:center;display:flex;gap:.65rem}.course-progress-track,.learning-progress-track{background:#dbe3ed;border-radius:.25rem;display:block;height:.5rem;min-width:4rem;overflow:hidden;position:relative}.course-progress-track{flex:1 1 auto}.course-progress-fill,.learning-progress-fill{background:#2563eb;display:block;height:100%}.course-progress-value{color:#334155;font-size:.78rem;font-weight:700;min-width:2.5rem;text-align:end}.course-card-cta{align-items:center;color:#1d4ed8;display:flex;font-size:.85rem;font-weight:700;gap:.45rem;justify-content:flex-end}.course-empty-state,.question-filter-empty{border:1px dashed #94a3b8;border-radius:.5rem;color:var(--learning-muted);padding:2rem 1rem;text-align:center}.learning-course-header{align-items:center}.learning-course-heading{align-items:start;display:flex;gap:.8rem;min-width:0}.learning-course-back{align-items:center;border:1px solid var(--learning-border);border-radius:.375rem;color:#334155;display:inline-flex;flex:0 0 2.5rem;height:2.5rem;justify-content:center;text-decoration:none}.learning-course-back:hover{background:#eef2f7;color:#172033}.learning-course-actions{align-items:center;display:flex;gap:.75rem}.learning-overall-progress{min-width:12rem}.learning-overall-progress .learning-progress-track{flex:1 1 auto}.learning-overall-value{font-size:.82rem;font-weight:700;white-space:nowrap}.module-mobile-picker{display:none;margin-bottom:.85rem}.learning-layout{display:grid;gap:1.25rem;grid-template-columns:minmax(14rem,17rem) minmax(0,1fr);min-width:0}.module-rail{border-inline-end:1px solid var(--learning-border);min-width:0;padding-inline-end:1rem}.module-rail-inner{position:sticky;top:calc(var(--app-header-height, 64px) + .75rem)}.module-rail-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.65rem}.module-rail-title{font-size:.82rem;font-weight:700;text-transform:uppercase}.module-nav-list{display:grid;gap:.25rem;max-height:calc(100dvh - var(--app-header-height, 64px) - 8rem);overflow-y:auto;padding:.15rem .25rem .15rem 0}.module-nav-link{border:1px solid transparent;border-radius:.375rem;color:var(--learning-text);display:grid;gap:.35rem;padding:.65rem;text-decoration:none}.module-nav-link:hover{background:#eef2f7;color:var(--learning-text)}.module-nav-link.is-active{background:#eff6ff;border-color:#93c5fd}.module-nav-link.is-locked{color:#64748b}.module-nav-topline{align-items:center;display:flex;gap:.45rem}.module-nav-code{color:#1d4ed8;font-size:.7rem;font-weight:700;min-width:0;text-transform:uppercase}.module-nav-state{color:var(--learning-muted);font-size:.68rem;margin-inline-start:auto;white-space:nowrap}.module-nav-name{font-size:.84rem;font-weight:650;line-height:1.3}.module-nav-progress{align-items:center;color:var(--learning-muted);display:grid;font-size:.68rem;gap:.4rem;grid-template-columns:minmax(0,1fr) auto}.module-nav-progress .learning-progress-track{height:.35rem}.module-workspace{min-width:0}.active-module-header{align-items:start;border-bottom:1px solid var(--learning-border);display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto;margin-bottom:.85rem;padding-bottom:.85rem}.active-module-code{color:#1d4ed8;font-size:.74rem;font-weight:700;text-transform:uppercase}.active-module-title{font-size:1.25rem;line-height:1.3;margin:.2rem 0 .3rem}.active-module-description{color:var(--learning-muted);font-size:.88rem;line-height:1.55;margin:0}.active-module-actions{align-items:center;display:flex;gap:.45rem}.module-step-link{align-items:center;border:1px solid var(--learning-border);border-radius:.375rem;color:#334155;display:inline-flex;height:2.35rem;justify-content:center;text-decoration:none;width:2.35rem}.module-step-link:hover{background:#eef2f7;color:#172033}.module-step-link.is-disabled{color:#94a3b8;pointer-events:none}.active-module-meta{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem 1rem;margin-top:.65rem}.ds-module-brief{color:var(--learning-muted);display:flex;flex-wrap:wrap;font-size:.72rem;gap:.35rem .85rem;margin-top:.55rem}.ds-module-brief span{align-items:center;display:inline-flex;gap:.35rem}.ds-module-brief i{color:#b45309}.module-state{align-items:center;border-radius:.375rem;display:inline-flex;font-size:.75rem;font-weight:700;gap:.35rem;padding:.3rem .5rem}.module-state.available,.question-state.completed{background:#dcfce7;color:#166534}.module-state.locked{background:#ffedd5;color:#9a3412}.question-state.in-progress{background:#dbeafe;color:#1e40af}.question-state.not-started{background:#e2e8f0;color:#334155}.active-module-progress{color:var(--learning-muted);font-size:.78rem;min-width:10rem}.active-module-progress .learning-progress-track{flex:1 1 auto}.ai-capability-section{border-bottom:1px solid var(--learning-border);margin-bottom:.85rem;padding-bottom:.85rem}.ai-capability-heading{font-size:.82rem;font-weight:700;margin-bottom:.55rem;text-transform:uppercase}.ai-capability-grid{display:grid;gap:.55rem;grid-template-columns:repeat(3,minmax(0,1fr))}.ai-capability{align-items:start;background:var(--learning-surface);border:1px solid var(--learning-border);border-radius:.5rem;display:grid;gap:.55rem;grid-template-columns:2rem minmax(0,1fr);padding:.65rem}.ai-capability-icon{align-items:center;background:#dcfce7;border-radius:.375rem;color:#166534;display:inline-flex;height:2rem;justify-content:center;width:2rem}.ai-capability-title{font-size:.8rem;font-weight:700}.ai-capability-copy{color:var(--learning-muted);font-size:.72rem;line-height:1.4;margin-top:.1rem}.learning-tabs{border-bottom:1px solid var(--learning-border);display:flex;gap:.25rem;margin-bottom:1rem}.learning-tab{align-items:center;background:transparent;border:0;border-bottom:3px solid transparent;color:#475569;display:inline-flex;font-weight:650;gap:.45rem;min-height:2.75rem;padding:.55rem .8rem}.learning-tab[aria-selected=true]{border-bottom-color:#2563eb;color:#1d4ed8}.learning-panel[hidden]{display:none!important}.course-material{--course-material-surface: var(--learning-surface, var(--app-surface, #ffffff));--course-material-subtle: var(--learning-subtle, var(--app-surface-subtle, #f6f8fb));--course-material-border: var(--learning-border, var(--app-border, #d7dee8));--course-material-text: var(--learning-text, var(--app-text, #172033));--course-material-muted: var(--learning-muted, #475569);color:var(--course-material-text);margin-bottom:1.5rem;min-width:0}.course-material-header{align-items:start;border-bottom:1px solid var(--course-material-border);display:flex;gap:1rem;justify-content:space-between;padding:.25rem 0 .9rem}.course-material-heading{min-width:0}.course-material-kicker{align-items:center;color:#1d4ed8;display:inline-flex;font-size:.72rem;font-weight:700;gap:.4rem;letter-spacing:0;text-transform:uppercase}.course-material-title{font-size:1.05rem;font-weight:700;line-height:1.35;margin:.25rem 0 0;overflow-wrap:anywhere}.course-material-source{color:var(--course-material-muted);display:grid;flex:0 1 16rem;font-size:.72rem;gap:.15rem;line-height:1.4;margin:0;text-align:end}.course-material-meta{background:var(--course-material-subtle);border-bottom:1px solid var(--course-material-border);display:flex;flex-wrap:wrap;gap:0;margin:0;padding:.7rem .85rem}.course-material-meta>div{align-items:baseline;display:flex;gap:.4rem;padding-inline:.7rem}.course-material-meta>div:first-child{padding-inline-start:0}.course-material-meta>div+div{border-inline-start:1px solid var(--course-material-border)}.course-material-meta dt{color:var(--course-material-muted);font-size:.7rem;font-weight:650}.course-material-meta dd{font-size:.76rem;font-weight:700;margin:0}.course-material-body{display:grid;gap:1.25rem;padding-top:1.1rem}.course-material-section{min-width:0}.course-material-section>h4,.course-material-callout>h4{align-items:center;color:var(--course-material-text);display:flex;font-size:.88rem;font-weight:700;gap:.45rem;line-height:1.35;margin:0 0 .7rem}.course-material-section>h4 i{color:#2563eb;width:1rem}.course-material-orientation{border-bottom:1px solid var(--course-material-border);display:grid;gap:1.5rem;grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:1.1rem}.course-outcome-list,.course-plain-list,.course-material-callout ul{display:grid;gap:.55rem;list-style:none;margin:0;padding:0}.course-outcome-list li,.course-plain-list li{line-height:1.5;padding-inline-start:1.2rem;position:relative}.course-outcome-list li:before,.course-plain-list li:before{background:#16a34a;border-radius:50%;content:"";height:.45rem;inset-inline-start:.1rem;position:absolute;top:.48rem;width:.45rem}.course-plain-list li:before{background:#64748b}.course-outcome-list li>span,.course-material-callout li>span{display:block;font-size:.84rem;font-weight:650}.course-outcome-list li>small,.course-material-callout li>small{color:var(--course-material-muted);display:block;font-size:.76rem;line-height:1.45;margin-top:.1rem}.course-plain-list li{font-size:.82rem}.course-vocabulary-list{border-block:1px solid var(--course-material-border);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.course-vocabulary-list>div{display:grid;gap:.2rem;padding:.7rem 0}.course-vocabulary-list>div:nth-child(odd){padding-inline-end:1rem}.course-vocabulary-list>div:nth-child(2n){border-inline-start:1px solid var(--course-material-border);padding-inline-start:1rem}.course-vocabulary-list>div:nth-child(n+3){border-top:1px solid var(--course-material-border)}.course-vocabulary-list dt{color:#1d4ed8;font-size:.8rem;font-weight:700}.course-vocabulary-list dd{color:var(--course-material-muted);font-size:.76rem;line-height:1.45;margin:0}.course-material-theory{border-inline-start:3px solid #60a5fa;padding-inline-start:.9rem}.course-material-theory p{color:var(--course-material-text);font-size:.86rem;line-height:1.7;margin:0}.course-material-theory p+p{margin-top:.65rem}.course-lesson-units{border-block:1px solid var(--course-material-border);display:grid;list-style:none;margin:0;padding:0}.course-lesson-units>li{min-width:0;padding:.9rem 0}.course-lesson-units>li+li{border-top:1px solid var(--course-material-border)}.course-lesson-unit-heading{align-items:center;display:grid;gap:.65rem;grid-template-columns:1.75rem minmax(0,1fr)}.course-lesson-unit-heading>span{align-items:center;background:#e0f2fe;border-radius:50%;color:#075985;display:inline-flex;font-size:.7rem;font-weight:750;height:1.75rem;justify-content:center;width:1.75rem}.course-lesson-unit-heading h5{font-size:.86rem;font-weight:700;line-height:1.4;margin:0;overflow-wrap:anywhere}.course-lesson-units>li>p{color:var(--course-material-text);font-size:.82rem;line-height:1.65;margin:.55rem 0 0;padding-inline-start:2.4rem}.course-lesson-units>li>ul{color:var(--course-material-muted);display:grid;font-size:.76rem;gap:.35rem;line-height:1.5;margin:.5rem 0 0;padding-inline-start:3.5rem}.course-worked-example{background:var(--course-material-surface);border:1px solid var(--course-material-border);border-radius:.5rem;min-width:0;overflow:hidden}.course-worked-example>header{align-items:center;background:var(--course-material-subtle);border-bottom:1px solid var(--course-material-border);display:flex;gap:.7rem;padding:.75rem .85rem}.course-section-index{align-items:center;background:#dbeafe;border-radius:.375rem;color:#1d4ed8;display:inline-flex;flex:0 0 2rem;height:2rem;justify-content:center;width:2rem}.course-worked-example>header>div>span,.course-practice-bridge>div>span{color:var(--course-material-muted);display:block;font-size:.68rem;font-weight:700;text-transform:uppercase}.course-worked-example h4,.course-practice-bridge h4{font-size:.9rem;line-height:1.35;margin:.12rem 0 0}.course-worked-scenario{font-size:.83rem;line-height:1.6;margin:0;padding:.8rem .9rem 0}.course-worked-result{background:#eff6ff;border-inline-start:3px solid #3b82f6;color:#1e3a8a;display:grid;font-size:.8rem;gap:.15rem;line-height:1.5;margin:.8rem .9rem 0;padding:.65rem .75rem}.course-io-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr));padding:.8rem .9rem 0}.course-io-grid h5,.course-trace-steps h5,.course-material-table-group h5{color:var(--course-material-muted);font-size:.72rem;font-weight:700;margin:0 0 .35rem;text-transform:uppercase}.course-io-grid pre{background:#172033;border:1px solid #334155;border-radius:.375rem;color:#f8fafc;margin:0;min-height:4.4rem;overflow:auto;padding:.7rem;white-space:pre-wrap}.course-io-grid code{color:inherit;font-size:.78rem;overflow-wrap:anywhere}.course-trace-steps{padding:.9rem}.course-trace-steps ol{counter-reset:course-trace;display:grid;gap:0;list-style:none;margin:0;padding:0}.course-trace-steps li{align-items:start;counter-increment:course-trace;display:grid;gap:.65rem;grid-template-columns:1.65rem minmax(0,1fr);min-height:2.35rem;position:relative}.course-trace-steps li:before{align-items:center;background:#e2e8f0;border-radius:50%;color:#334155;content:counter(course-trace);display:flex;font-size:.68rem;font-weight:700;height:1.65rem;justify-content:center;position:relative;z-index:1}.course-trace-steps li:not(:last-child):after{background:var(--course-material-border);content:"";height:calc(100% - 1.35rem);inset-inline-start:.8rem;position:absolute;top:1.45rem;width:1px}.course-trace-steps li>span{font-size:.8rem;line-height:1.5;padding-top:.2rem}.course-invariant{background:#ecfdf5;border-inline-start:3px solid #16a34a;color:#14532d;display:grid;font-size:.8rem;gap:.15rem;line-height:1.5;margin:0 .9rem .9rem;padding:.65rem .75rem}.course-code-examples{display:grid;gap:1rem}.course-code-example{background:var(--course-material-surface);border:1px solid var(--course-material-border);border-radius:.5rem;min-width:0;overflow:hidden}.course-code-example>header{align-items:start;background:var(--course-material-subtle);border-bottom:1px solid var(--course-material-border);display:grid;gap:.7rem;grid-template-columns:2rem minmax(0,1fr);padding:.8rem .9rem}.course-code-example>header>span{align-items:center;background:#dcfce7;border-radius:.375rem;color:#166534;display:inline-flex;font-size:.68rem;font-weight:750;height:2rem;justify-content:center;width:2rem}.course-code-example>header h5{font-size:.88rem;font-weight:700;line-height:1.4;margin:0;overflow-wrap:anywhere}.course-code-example>header p{color:var(--course-material-muted);font-size:.76rem;line-height:1.5;margin:.2rem 0 0}.course-code-example-source{background:#111827;color:#f8fafc;max-width:100%;overflow-x:auto;text-align:left}.course-code-example-source pre{color:inherit;margin:0;min-width:max-content;padding:.9rem;tab-size:4}.course-code-example-source code{color:inherit;font-size:.78rem;line-height:1.55}.course-code-example .course-io-grid{border-top:1px solid var(--course-material-border);padding-bottom:.8rem}.course-code-example-steps{border-top:1px solid var(--course-material-border);display:grid;font-size:.78rem;gap:.4rem;line-height:1.5;margin:0;padding:.8rem 1rem;padding-inline-start:2.5rem}.course-code-example-result{background:#f0fdf4;border-top:1px solid #bbf7d0;color:#14532d;display:grid;font-size:.78rem;gap:.15rem;line-height:1.5;margin:0;padding:.75rem .9rem}.course-material-table-wrap{border-block:1px solid var(--course-material-border);max-width:100%;overflow-x:auto}.course-material-table{border-collapse:collapse;color:var(--course-material-text);font-size:.78rem;min-width:38rem;width:100%}.course-material-table th,.course-material-table td{border-bottom:1px solid var(--course-material-border);line-height:1.45;padding:.65rem .7rem;text-align:start;vertical-align:top}.course-material-table tr:last-child>*{border-bottom:0}.course-material-table thead th{background:var(--course-material-subtle);color:var(--course-material-muted);font-size:.68rem;font-weight:700;text-transform:uppercase;white-space:nowrap}.course-material-table tbody th{font-weight:700}.course-material-table code{color:#9f1239;font-size:.76rem;white-space:nowrap}.course-material-callout{background:#fff7ed;border-block:1px solid #fdba74;color:#7c2d12;padding:.8rem .9rem}.course-material-callout>h4{color:#9a3412}.course-material-callout li{padding-inline-start:1.1rem;position:relative}.course-material-callout li:before{background:#f97316;border-radius:50%;content:"";height:.35rem;inset-inline-start:.1rem;position:absolute;top:.5rem;width:.35rem}.course-material-callout li>small{color:#9a3412}.course-quick-checks{border-top:1px solid var(--course-material-border)}.course-quick-checks details,.course-quick-check-question{border-bottom:1px solid var(--course-material-border);margin:0}.course-quick-checks summary{align-items:center;cursor:pointer;display:grid;font-size:.82rem;font-weight:650;gap:.75rem;grid-template-columns:minmax(0,1fr) auto;line-height:1.45;min-height:3rem;padding:.65rem .2rem}.course-quick-checks summary small{color:#1d4ed8;font-size:.7rem}.course-quick-checks summary:focus-visible{outline:3px solid rgba(37,99,235,.42);outline-offset:2px}.course-quick-checks details>p{background:var(--course-material-subtle);color:var(--course-material-muted);font-size:.8rem;line-height:1.55;margin:0 0 .65rem;padding:.65rem .75rem}.course-quick-check-question{font-size:.82rem;line-height:1.45;padding:.75rem .2rem}.course-slide-deck{display:grid;gap:.65rem}.course-slide-frame{background:#172033;border:1px solid #334155;border-radius:.5rem;color:#f8fafc;min-height:17rem;overflow:hidden;position:relative}.course-slide-frame:focus-visible,.course-slide-control:focus-visible,.course-slide-dot:focus-visible{outline:3px solid rgba(37,99,235,.48);outline-offset:2px}.course-slide{align-content:start;gap:.9rem;min-height:17rem;padding:1.2rem 1.25rem;position:relative}.course-slide.is-active{animation:courseMaterialSlideIn .18s ease-out;display:grid}.course-slide-number{align-items:center;border:1px solid #64748b;border-radius:50%;color:#cbd5e1;display:inline-flex;font-size:.68rem;height:1.8rem;justify-content:center;width:1.8rem}.course-slide h5{color:#fff;font-size:1rem;line-height:1.35;margin:0}.course-slide ul{display:grid;gap:.55rem;margin:0;padding-inline-start:1.15rem}.course-slide li{color:#e2e8f0;font-size:.82rem;line-height:1.5}.course-slide-nav{align-items:center;display:grid;gap:.6rem;grid-template-columns:2.25rem minmax(3rem,1fr) auto 2.25rem}.course-slide-control{align-items:center;background:var(--course-material-surface);border:1px solid var(--course-material-border);border-radius:.375rem;color:var(--course-material-text);display:inline-flex;height:2.25rem;justify-content:center;padding:0;width:2.25rem}.course-slide-control:hover{background:var(--course-material-subtle)}.course-slide-dots{align-items:center;display:flex;gap:.4rem;justify-content:center;min-height:2.25rem}.course-slide-dot{background:#94a3b8;border:0;border-radius:50%;height:.55rem;padding:0;transition:background-color .12s ease,width .12s ease;width:.55rem}.course-slide-dot.is-active{background:#2563eb;border-radius:.25rem;width:1.35rem}.course-slide-current{color:var(--course-material-muted);font-size:.7rem;min-width:4.5rem;text-align:center}.course-material-tables{display:grid;gap:1rem}.course-material-table-group{min-width:0}.course-animation-grid{display:grid;gap:.8rem;grid-template-columns:repeat(2,minmax(0,1fr))}.course-animation{border:1px solid var(--course-material-border);border-radius:.5rem;margin:0;min-width:0;overflow:hidden}.course-animation figcaption{background:var(--course-material-subtle);border-bottom:1px solid var(--course-material-border);font-size:.78rem;font-weight:700;padding:.65rem .75rem}.course-animation-track{align-items:center;display:flex;gap:.4rem;min-height:7.5rem;overflow-x:auto;padding:.85rem}.course-animation-node{align-items:center;animation:courseMaterialNodePulse 2s ease-in-out infinite;background:#dcfce7;border:1px solid #86efac;border-radius:.375rem;color:#14532d;display:inline-flex;flex:0 0 auto;font-size:.72rem;font-weight:700;justify-content:center;min-height:2.4rem;min-width:2.4rem;overflow-wrap:anywhere;padding:.35rem .45rem}.course-animation-node:nth-of-type(2){animation-delay:.16s}.course-animation-node:nth-of-type(3){animation-delay:.32s}.course-animation-node:nth-of-type(4){animation-delay:.48s}.course-animation-edge{background:#64748b;flex:1 0 1rem;height:2px;min-width:1rem;position:relative}.course-animation-edge:after{animation:courseMaterialEdgeFlow 1.6s linear infinite;background:#2563eb;border-radius:50%;content:"";height:.4rem;inset-inline-start:0;position:absolute;top:-.15rem;width:.4rem}.course-animation-stack{align-items:flex-start;flex-direction:column-reverse}.course-animation-stack .course-animation-node{min-width:5rem}.course-animation-tree{display:grid;grid-template-columns:repeat(4,minmax(2.4rem,1fr));justify-items:center}.course-animation-tree .course-animation-node:first-child{grid-column:2 / span 2}.course-animation-tree .course-animation-node:nth-child(2){grid-column:1 / span 2}.course-animation-tree .course-animation-node:nth-child(3){grid-column:3 / span 2}.course-animation>p{border-top:1px solid var(--course-material-border);color:var(--course-material-muted);font-size:.73rem;line-height:1.45;margin:0;padding:.65rem .75rem}.course-practice-bridge{align-items:start;background:#ecfdf5;border-block:1px solid #86efac;color:#14532d;display:grid;gap:.75rem;grid-template-columns:2rem minmax(0,1fr);padding:.85rem}.course-practice-bridge .course-section-index{background:#bbf7d0;color:#166534}.course-practice-bridge p{font-size:.8rem;line-height:1.55;margin:.4rem 0 0}.course-practice-bridge ol{display:grid;font-size:.78rem;gap:.35rem;line-height:1.45;margin:.55rem 0 0;padding-inline-start:1.2rem}@keyframes courseMaterialSlideIn{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}@keyframes courseMaterialNodePulse{0%,to{transform:translateY(0)}50%{transform:translateY(-.2rem)}}@keyframes courseMaterialEdgeFlow{0%{inset-inline-start:0}to{inset-inline-start:calc(100% - .4rem)}}.locked-module-workspace{display:grid;gap:1rem}.locked-module-panel{align-items:start;background:#fff7ed;border:1px solid #fdba74;border-radius:.5rem;color:#7c2d12;display:grid;gap:.75rem;grid-template-columns:2.5rem minmax(0,1fr);padding:1rem}.locked-module-icon{align-items:center;background:#ffedd5;border:1px solid #fdba74;border-radius:.375rem;display:inline-flex;height:2.5rem;justify-content:center;width:2.5rem}.locked-module-message{display:grid;font-size:.82rem;gap:.2rem;line-height:1.5;min-width:0}.locked-module-message strong{font-size:.9rem}.locked-question-preview{border-block:1px solid var(--learning-border);padding-block:.9rem}.locked-question-header{align-items:start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.7rem}.locked-question-header h3{font-size:.92rem;line-height:1.35;margin:0}.locked-question-header p{color:var(--learning-muted);font-size:.78rem;line-height:1.5;margin:.25rem 0 0;max-width:44rem}.locked-question-count{align-items:center;background:#f1f5f9;border:1px solid var(--learning-border);border-radius:.375rem;color:#475569;display:inline-flex;flex:0 0 auto;font-size:.72rem;font-weight:700;gap:.35rem;padding:.35rem .5rem}.locked-question-list{border-top:1px solid var(--learning-border);display:grid}.locked-question-row{align-items:center;border-bottom:1px solid var(--learning-border);cursor:default;display:grid;gap:.75rem;grid-template-columns:2.25rem minmax(0,1fr) auto;min-width:0;padding:.7rem .25rem}.locked-question-number{align-items:center;background:#e2e8f0;border-radius:.375rem;color:#475569;display:inline-flex;font-size:.74rem;font-weight:700;height:2.1rem;justify-content:center;width:2.1rem}.locked-question-concealment{display:grid;gap:.32rem;min-width:0}.locked-question-position{color:var(--learning-muted);font-size:.68rem;font-weight:650}.locked-question-spoiler{align-items:center;display:flex;filter:blur(2px);gap:.35rem;max-width:28rem;padding-block:.1rem;user-select:none;width:min(78%,28rem)}.locked-question-row:nth-child(3n+2) .locked-question-spoiler{width:min(64%,23rem)}.locked-question-row:nth-child(3n) .locked-question-spoiler{width:min(72%,26rem)}.locked-question-spoiler>span{background:#cbd5e1;border-radius:.2rem;display:block;height:.62rem}.locked-question-spoiler>span:first-child{flex:1 1 52%}.locked-question-spoiler>span:nth-child(2){flex:1 1 28%}.locked-question-spoiler>span:last-child{flex:1 1 12%}.locked-question-hidden-label{align-items:center;color:#64748b;display:inline-flex;font-size:.68rem;gap:.3rem}.locked-question-state{align-items:center;background:#fff7ed;border-radius:.375rem;color:#9a3412;display:inline-flex;font-size:.7rem;font-weight:700;gap:.3rem;padding:.3rem .45rem;white-space:nowrap}.practice-toolbar{align-items:end;display:grid;gap:.75rem;grid-template-columns:minmax(12rem,1fr) minmax(9rem,12rem) minmax(9rem,12rem) auto;margin-bottom:.85rem}.practice-toolbar.has-topic{grid-template-columns:minmax(12rem,1fr) repeat(3,minmax(8rem,11rem)) auto}.practice-filters label{color:var(--learning-muted);font-size:.74rem;font-weight:650;margin-bottom:.25rem}.practice-filter-actions{display:flex;gap:.4rem}.practice-results-summary{align-items:center;color:var(--learning-muted);display:flex;font-size:.8rem;justify-content:space-between;margin-bottom:.55rem}.learning-question-list{border-bottom:1px solid var(--learning-border);border-top:1px solid var(--learning-border);display:grid}.learning-question-link{align-items:center;border-bottom:1px solid var(--learning-border);color:var(--learning-text);display:grid;gap:.75rem;grid-template-columns:2.25rem minmax(0,1fr) auto auto 2.25rem;min-width:0;padding:.75rem .25rem;text-decoration:none}.learning-question-link:last-child{border-bottom:0}.learning-question-link:hover{background:#f8fafc;color:var(--learning-text)}.learning-question-number{align-items:center;background:#e2e8f0;border-radius:.375rem;color:#334155;display:inline-flex;font-size:.76rem;font-weight:700;height:2.1rem;justify-content:center;width:2.1rem}.learning-question-title{font-size:.88rem;font-weight:650;line-height:1.35}.learning-question-meta{color:var(--learning-muted);display:flex;flex-wrap:wrap;font-size:.72rem;gap:.4rem .75rem;margin-top:.25rem}.question-state{align-items:center;border-radius:.375rem;display:inline-flex;font-size:.72rem;font-weight:650;gap:.3rem;padding:.3rem .45rem;white-space:nowrap}.question-grade{color:#475569;font-size:.74rem;font-weight:650;white-space:nowrap}.learning-question-arrow{align-items:center;border:1px solid var(--learning-border);border-radius:.375rem;color:#334155;display:inline-flex;height:2.1rem;justify-content:center;width:2.1rem}.student-learning.is-vibe-course .learning-progress-fill,.student-course-card.is-vibe .course-progress-fill{background:#0f766e}.student-learning.is-vibe-course .module-nav-link.is-active{background:#f0fdfa;border-color:#14b8a6}.student-learning.is-vibe-course .learning-tab[aria-selected=true]{border-color:#0f766e;color:#0f766e}.learning-question-link.is-vibe-milestone{border-inline-start:3px solid transparent;padding-inline-start:.65rem}.learning-question-link.is-vibe-milestone:hover{border-inline-start-color:#14b8a6}.learning-question-link.is-vibe-milestone .learning-question-number{background:#e6fffb;color:#0f766e}.vibe-milestone-deliverable{align-items:center;color:#9f1239;display:flex;font-size:.76rem;gap:.35rem;margin-top:.22rem;overflow-wrap:anywhere}.ds-lab-role{border-radius:.25rem;display:inline-flex;font-size:.66rem;font-weight:700;line-height:1.35;margin-top:.25rem;padding:.16rem .38rem}.ds-lab-role-trace{background:#e0f2fe;color:#075985}.ds-lab-role-implement,.ds-lab-role-implementation{background:#dcfce7;color:#166534}.ds-lab-role-apply,.ds-lab-role-application{background:#fef3c7;color:#92400e}.ds-lab-role-challenge{background:#ffe4e6;color:#9f1239}.student-learning.is-data-structures-course .learning-progress-fill{background:#ca8a04}.student-learning.is-data-structures-course .module-nav-link.is-active{background:#fffbeb;border-color:#f59e0b}.student-learning.is-data-structures-course .learning-tab[aria-selected=true]{border-bottom-color:#d97706;color:#92400e}.student-learning .pagination{margin-bottom:0;margin-top:.85rem}html[data-theme=dark] .student-learning{--learning-surface: #111827;--learning-subtle: #090f1a;--learning-border: #334155;--learning-text: #f1f5f9;--learning-muted: #cbd5e1}html[data-theme=dark] .learning-eyebrow,html[data-theme=dark] .course-card-code,html[data-theme=dark] .module-nav-code,html[data-theme=dark] .active-module-code,html[data-theme=dark] .course-card-cta,html[data-theme=dark] .learning-tab[aria-selected=true]{color:#bfdbfe}html[data-theme=dark] .learning-tab{color:#cbd5e1}html[data-theme=dark] .student-course-link:hover,html[data-theme=dark] .module-nav-link:hover,html[data-theme=dark] .learning-question-link:hover{background:#1e293b}html[data-theme=dark] .module-nav-link.is-active{background:#172554;border-color:#60a5fa}html[data-theme=dark] .course-card-icon{background:#1e3a8a;color:#dbeafe}html[data-theme=dark] .student-course-card.is-ai .course-card-icon,html[data-theme=dark] .ai-capability-icon{background:#14532d;color:#dcfce7}html[data-theme=dark] .student-course-card.is-vibe .course-card-icon{background:#4c0519;color:#fecdd3}html[data-theme=dark] .student-course-card.is-data-structures .course-card-icon{background:#78350f;color:#fef3c7}html[data-theme=dark] .student-course-card.is-data-structures .course-progress-fill{background:#fbbf24}html[data-theme=dark] .vibe-course-badge{background:#134e4a;border-color:#2dd4bf;color:#ccfbf1}html[data-theme=dark] .student-learning.is-vibe-course .module-nav-link.is-active{background:#123c3a;border-color:#2dd4bf}html[data-theme=dark] .learning-question-link.is-vibe-milestone .learning-question-number{background:#134e4a;color:#ccfbf1}html[data-theme=dark] .vibe-milestone-deliverable{color:#fda4af}html[dir=rtl] .student-learning .course-card-arrow i,html[dir=rtl] .student-learning .learning-course-back i,html[dir=rtl] .student-learning .module-step-link i,html[dir=rtl] .student-learning .learning-question-arrow i,html[dir=rtl] .student-learning .course-card-cta i{transform:scaleX(-1)}html[dir=rtl] .locked-question-header,html[dir=rtl] .locked-question-row{text-align:start}html[data-theme=dark] .course-card-arrow,html[data-theme=dark] .learning-course-back,html[data-theme=dark] .module-step-link,html[data-theme=dark] .learning-question-arrow,html[data-theme=dark] .course-progress-value,html[data-theme=dark] .question-grade{color:#e2e8f0}html[data-theme=dark] .course-progress-track,html[data-theme=dark] .learning-progress-track{background:#334155}html[data-theme=dark] .course-progress-fill,html[data-theme=dark] .learning-progress-fill{background:#60a5fa}html[data-theme=dark] .student-learning.is-vibe-course .learning-progress-fill,html[data-theme=dark] .student-course-card.is-vibe .course-progress-fill{background:#2dd4bf}html[data-theme=dark] .student-learning.is-vibe-course .learning-tab[aria-selected=true]{border-color:#2dd4bf;color:#5eead4}html[data-theme=dark] .learning-question-number,html[data-theme=dark] .question-state.not-started{background:#334155;color:#e2e8f0}html[data-theme=dark] .question-state.in-progress{background:#1e3a8a;color:#dbeafe}html[data-theme=dark] .module-state.available,html[data-theme=dark] .question-state.completed{background:#14532d;color:#dcfce7}html[data-theme=dark] .module-state.locked,html[data-theme=dark] .locked-module-panel{background:#431407;border-color:#c2410c;color:#ffedd5}html[data-theme=dark] .locked-module-icon{background:#7c2d12;border-color:#c2410c}html[data-theme=dark] .locked-question-count,html[data-theme=dark] .locked-question-number{background:#1e293b;color:#e2e8f0}html[data-theme=dark] .locked-question-spoiler>span{background:#64748b}html[data-theme=dark] .locked-question-hidden-label{color:#cbd5e1}html[data-theme=dark] .locked-question-state{background:#431407;color:#fed7aa}html[data-theme=dark] .ds-course-badge{background:#451a03;border-color:#f59e0b;color:#fde68a}html[data-theme=dark] .ds-module-brief i{color:#fbbf24}html[data-theme=dark] .ds-lab-role-trace{background:#0c4a6e;color:#e0f2fe}html[data-theme=dark] .ds-lab-role-implement,html[data-theme=dark] .ds-lab-role-implementation{background:#14532d;color:#dcfce7}html[data-theme=dark] .ds-lab-role-apply,html[data-theme=dark] .ds-lab-role-application{background:#78350f;color:#fef3c7}html[data-theme=dark] .ds-lab-role-challenge{background:#4c0519;color:#ffe4e6}html[data-theme=dark] .student-learning.is-data-structures-course .learning-progress-fill{background:#fbbf24}html[data-theme=dark] .student-learning.is-data-structures-course .module-nav-link.is-active{background:#451a03;border-color:#f59e0b}html[data-theme=dark] .student-learning.is-data-structures-course .learning-tab[aria-selected=true]{border-bottom-color:#fbbf24;color:#fde68a}html[data-theme=dark] .course-material-kicker,html[data-theme=dark] .course-material-section>h4 i,html[data-theme=dark] .course-vocabulary-list dt,html[data-theme=dark] .course-quick-checks summary small{color:#93c5fd}html[data-theme=dark] .course-section-index{background:#1e3a8a;color:#dbeafe}html[data-theme=dark] .course-lesson-unit-heading>span{background:#0c4a6e;color:#e0f2fe}html[data-theme=dark] .course-code-example>header>span{background:#14532d;color:#dcfce7}html[data-theme=dark] .course-code-example-result{background:#052e16;border-color:#166534;color:#dcfce7}html[data-theme=dark] .course-trace-steps li:before{background:#334155;color:#e2e8f0}html[data-theme=dark] .course-invariant,html[data-theme=dark] .course-practice-bridge{background:#052e16;border-color:#15803d;color:#dcfce7}html[data-theme=dark] .course-worked-result{background:#172554;border-color:#3b82f6;color:#dbeafe}html[data-theme=dark] .course-practice-bridge .course-section-index{background:#14532d;color:#dcfce7}html[data-theme=dark] .course-material-table code{color:#fda4af}html[data-theme=dark] .course-material-callout{background:#431407;border-color:#c2410c;color:#ffedd5}html[data-theme=dark] .course-material-callout>h4,html[data-theme=dark] .course-material-callout li>small{color:#fed7aa}html[data-theme=dark] .course-slide-control{background:#111827;color:#f1f5f9}html[data-theme=dark] .course-slide-control:hover,html[data-theme=dark] .course-quick-checks details>p{background:#1e293b}html[data-theme=dark] .course-animation-node{background:#14532d;border-color:#22c55e;color:#dcfce7}html[dir=rtl] .course-slide-control i{transform:scaleX(-1)}@media(max-width:1199.98px){.practice-toolbar,.practice-toolbar.has-topic{grid-template-columns:minmax(12rem,1fr) repeat(2,minmax(8rem,10rem))}.practice-filter-actions{grid-column:1 / -1;justify-content:flex-end}}@media(max-width:991.98px){.student-course-grid{grid-template-columns:minmax(0,1fr)}.module-mobile-picker{display:block}.learning-layout{grid-template-columns:minmax(0,1fr)}.module-rail{display:none}}@media(max-width:767.98px){.course-index-header,.learning-course-header,.active-module-header{align-items:stretch;grid-template-columns:minmax(0,1fr)}.course-index-tools,.learning-course-actions{align-items:stretch;flex-direction:column}.course-search,.learning-overall-progress,.learning-course-actions .btn{width:100%}.course-card-heading{grid-template-columns:2.5rem minmax(0,1fr) 2.25rem}.course-card-icon{height:2.5rem;width:2.5rem}.ai-capability-grid{grid-template-columns:minmax(0,1fr)}.course-material-header{align-items:stretch;flex-direction:column}.course-material-source{text-align:start}.course-material-orientation,.course-vocabulary-list,.course-io-grid,.course-animation-grid{grid-template-columns:minmax(0,1fr)}.course-vocabulary-list>div:nth-child(odd),.course-vocabulary-list>div:nth-child(2n){border-inline-start:0;padding-inline:0}.course-vocabulary-list>div:nth-child(n+2){border-top:1px solid var(--course-material-border)}.course-slide-frame,.course-slide{min-height:18.5rem}.practice-toolbar,.practice-toolbar.has-topic{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-search-field{grid-column:1 / -1}.practice-filter-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.practice-filter-actions .btn{width:100%}.learning-question-link{align-items:start;grid-template-columns:2.1rem minmax(0,1fr) 2.1rem;padding:.75rem 0}.locked-question-header{align-items:stretch;flex-direction:column}.locked-question-count{align-self:flex-start}.locked-question-row{align-items:start;grid-template-columns:2.1rem minmax(0,1fr);padding-inline:0}.locked-question-state{grid-column:2;justify-self:start}.locked-question-spoiler,.locked-question-row:nth-child(3n+2) .locked-question-spoiler,.locked-question-row:nth-child(3n) .locked-question-spoiler{width:min(88%,28rem)}.question-state,.question-grade{grid-column:2;justify-self:start}.learning-question-arrow{grid-column:3;grid-row:1}}@media(max-width:420px){.practice-toolbar,.practice-toolbar.has-topic{grid-template-columns:minmax(0,1fr)}.practice-search-field,.practice-filter-actions{grid-column:1}.course-card-meta,.course-card-metrics{align-items:flex-start;flex-direction:column}.course-material-meta{display:grid;gap:.4rem}.course-material-meta>div{padding-inline:0}.course-material-meta>div+div{border-inline-start:0}.course-slide-nav{grid-template-columns:2.25rem minmax(2rem,1fr) 2.25rem}.course-slide-current{display:none}}@media(prefers-reduced-motion:reduce){.course-slide.is-active,.course-animation-node,.course-animation-edge:after{animation:none}.course-slide-dot{transition:none}}
