:root{--primary:#22c55e;--secondary:#28c76f;--warning:#ff9f43;--pro-gold:#ffc107;--card-bg:#282a3c;--text-primary:#e7e7ff;--text-secondary:#a8aabc;--border-color:rgba(255, 255, 255, 0.06)}.chapter-page-container{padding:1rem 1.25rem}@media (max-width:991.98px){.sticky-md-top{position:static!important}.mobile-course-summary{order:-1;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.mobile-course-summary h5{font-size:1.1rem}}@media (min-width:992px){.sticky-md-top{position:static}}.page-header{padding:.5rem 0}.breadcrumb-enhanced{display:flex;align-items:center;gap:.375rem;margin:0;padding:0;background:0 0}.breadcrumb-item{display:flex;align-items:center}.breadcrumb-link{display:flex;align-items:center;color:var(--text-secondary);text-decoration:none;padding:.25rem .5rem;border-radius:6px;transition:all .2s ease;font-weight:500;font-size:.8125rem}.breadcrumb-link:hover{background:rgba(34,197,94,.12);color:var(--text-primary)}.breadcrumb-separator{color:rgba(255,255,255,.3);margin:0 .125rem;font-size:.7rem}.breadcrumb-item.active span{color:var(--text-secondary);font-weight:500;font-size:.8125rem}.course-title{font-size:1.35rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem;line-height:1.2;letter-spacing:-.01em}.course-subtitle{color:var(--text-secondary);font-size:.9375rem;margin:0;line-height:1.5}.course-progress-bar{margin-bottom:1rem}.course-progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.course-progress-label{color:var(--text-secondary);font-size:.85rem}.course-progress-pct{color:#5dade2;font-size:.85rem;font-weight:500}.course-progress-track{background:#34495e;border-radius:10px;height:6px;overflow:hidden}.course-progress-fill{background:linear-gradient(90deg,#5dade2,#2ecc71);height:100%;border-radius:10px;transition:width .6s ease}.lab-practice-card{background:var(--card-bg);border:1px solid rgba(40,199,111,.2);border-radius:8px;margin-bottom:1.5rem;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.1)}.lab-header-content{padding:1rem 1.25rem}.lab-badge{display:inline-flex;align-items:center;gap:.375rem;background:rgba(40,199,111,.12);color:var(--secondary);padding:.375rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;border:1px solid rgba(40,199,111,.25);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.02em}.lab-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem;line-height:1.2}.lab-description{color:var(--text-secondary);margin:0 0 1rem 0;font-size:.875rem;line-height:1.5}.lab-metadata{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.meta-tag{display:inline-block;padding:.25rem .5rem;background:rgba(255,255,255,.05);color:var(--text-secondary);border-radius:4px;font-size:.75rem;font-weight:500;border:1px solid var(--border-color)}.lab-skills-inline{display:flex;align-items:center;gap:.5rem;margin:.75rem 0;flex-wrap:wrap}.skills-label{color:var(--text-primary);font-size:.8125rem;font-weight:600;white-space:nowrap}.skills-inline{display:flex;flex-wrap:wrap;gap:.375rem;flex:1}.skill-tag-inline{background:rgba(40,199,111,.12);color:var(--secondary);padding:.25rem .5rem;border-radius:4px;font-size:.6875rem;font-weight:500;border:1px solid rgba(40,199,111,.25)}.lab-cta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:1rem;padding:.875rem;background:rgba(255,255,255,.03);border-radius:8px;border:1px solid var(--border-color)}.lab-access-info{display:flex;align-items:center}.access-type{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.875rem}.btn-start-lab,.btn-upgrade-lab{background:var(--secondary);border:none;border-radius:6px;padding:.625rem 1.25rem;color:#fff;font-weight:600;font-size:.8125rem;text-decoration:none;display:inline-flex;align-items:center;gap:.375rem;transition:all .2s ease;cursor:pointer;box-shadow:0 2px 8px rgba(40,199,111,.25)}.btn-upgrade-lab{background:var(--pro-gold);color:#212529;box-shadow:0 2px 8px rgba(255,193,7,.25)}.btn-start-lab:hover,.btn-upgrade-lab:hover{box-shadow:0 4px 12px rgba(40,199,111,.35);color:#fff;text-decoration:none}.btn-upgrade-lab:hover{box-shadow:0 4px 12px rgba(255,193,7,.35);color:#212529}.chapter-content-wrapper{color:#d0d2e0;line-height:1.75;font-size:1.0625rem;margin-bottom:2rem}.chapter-content-wrapper>*{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;max-width:none!important}.chapter-content-wrapper>:first-child{margin-top:0!important;padding-top:0!important}.chapter-content-wrapper h1,.chapter-content-wrapper h2,.chapter-content-wrapper h3,.chapter-content-wrapper h4,.chapter-content-wrapper h5{color:var(--text-primary);margin-top:1.75rem;margin-bottom:.75rem}.chapter-content-wrapper h2{font-size:1.5rem}.chapter-content-wrapper h3{font-size:1.25rem}.chapter-content-wrapper h4{font-size:1.1rem}.chapter-content-wrapper p{margin-bottom:1rem}.chapter-content-wrapper ol,.chapter-content-wrapper ul{margin-bottom:1rem;padding-left:1.5rem}.chapter-content-wrapper li{margin-bottom:.375rem}.chapter-content-wrapper pre{margin:1.25rem 0;border-radius:8px}.chapter-content-wrapper blockquote{margin:1.25rem 0;padding:.75rem 1rem;border-left:3px solid var(--primary);background:rgba(255,255,255,.02);border-radius:0 6px 6px 0}.chapter-content-wrapper code:not(pre code){background:rgba(255,255,255,.06);padding:.125rem .375rem;border-radius:4px;font-size:.9375rem}.chapter-content-wrapper img{max-width:100%;height:auto;border-radius:8px;margin:1rem 0}.chapter-content-wrapper a{color:var(--primary);text-decoration:none}.chapter-content-wrapper a:hover{text-decoration:underline}.checkpoint-section{margin:2rem 0 1.5rem}.checkpoint-separator{display:flex;align-items:center;gap:12px;margin-bottom:1.25rem}.checkpoint-separator::after,.checkpoint-separator::before{content:"";flex:1;height:1px;background:rgba(255,255,255,.06)}.checkpoint-separator-label{color:#64748b;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.checkpoint-card{background:rgba(30,30,45,.85);border:1px solid rgba(34,197,94,.4);border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.3),0 0 30px rgba(34,197,94,.12)}.checkpoint-card-accent{height:3px;background:linear-gradient(90deg,#22c55e,#06b6d4)}.checkpoint-card-body{padding:1.5rem}.checkpoint-header{display:flex;align-items:center;gap:10px;margin-bottom:1rem}.checkpoint-dot{width:6px;height:6px;background:var(--primary);border-radius:50%;box-shadow:0 0 8px rgba(34,197,94,.5);flex-shrink:0;animation:dotPulse 2s ease-in-out infinite}@keyframes dotPulse{0%,100%{opacity:1}50%{opacity:.4}}.checkpoint-title{color:var(--text-primary);font-size:.875rem;font-weight:600;margin:0}.checkpoint-xp{color:var(--primary);font-size:.75rem;font-weight:600;margin-left:auto}.checkpoint-question{border-left:2px solid rgba(34,197,94,.3);padding:.625rem .875rem;margin-bottom:1.25rem;background:rgba(34,197,94,.03);border-radius:0 6px 6px 0}.checkpoint-question-text{color:#cbd5e1;font-size:.875rem;line-height:1.6;margin:0;word-wrap:break-word}.checkpoint-answer{display:flex;gap:.5rem}.checkpoint-input{flex:1;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.625rem .875rem;color:var(--text-primary);font-size:.8125rem;transition:all .2s ease;min-width:0}.checkpoint-input:focus{background:rgba(255,255,255,.06);border-color:var(--primary);box-shadow:0 0 0 2px rgba(34,197,94,.15);outline:0}.checkpoint-input::placeholder{color:rgba(255,255,255,.3)}.checkpoint-input.success-state{border-color:var(--secondary);box-shadow:0 0 0 2px rgba(40,199,111,.2);background:rgba(40,199,111,.06)}.checkpoint-input.error-state{border-color:#ea5455;box-shadow:0 0 0 2px rgba(234,84,85,.2);background:rgba(234,84,85,.06)}.checkpoint-input.loading-state,.checkpoint-input[readonly]{background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.06);color:rgba(255,255,255,.5);cursor:not-allowed;opacity:.7}.btn-checkpoint{background:var(--primary);border:none;border-radius:8px;padding:.625rem 1.25rem;color:#fff;font-weight:600;font-size:.8125rem;display:flex;align-items:center;justify-content:center;gap:.375rem;transition:all .2s ease;cursor:pointer;box-shadow:0 2px 8px rgba(34,197,94,.25);white-space:nowrap}.btn-checkpoint:hover{box-shadow:0 4px 12px rgba(34,197,94,.35);transform:translateY(-1px)}.btn-checkpoint.btn-login{background:var(--primary);box-shadow:0 2px 8px rgba(34,197,94,.25)}.btn-checkpoint.btn-login:hover{box-shadow:0 4px 12px rgba(34,197,94,.35)}.btn-checkpoint.loading{background:rgba(34,197,94,.6);cursor:not-allowed;transform:none}.btn-checkpoint.success{background:var(--secondary);animation:successPulse .6s ease}.btn-checkpoint.error{background:#ea5455;animation:errorShake .5s ease}@keyframes successPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes errorShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}.error-shake{animation:errorShake .5s ease}@media (max-width:576px){.checkpoint-answer{flex-direction:column}.btn-checkpoint{width:100%}}.floating-indicator{position:fixed;bottom:1.5rem;right:1.5rem;background:rgba(30,30,45,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(34,197,94,.2);border-radius:10px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.45),0 0 10px rgba(34,197,94,.08);cursor:pointer;z-index:1050;transition:transform .3s ease,opacity .3s ease}.floating-indicator:hover{box-shadow:0 4px 24px rgba(0,0,0,.5),0 0 16px rgba(34,197,94,.15)}.floating-indicator.hidden{transform:translateY(20px);opacity:0;pointer-events:none}.floating-indicator-content{padding:9px 14px;display:flex;align-items:center;gap:9px}.floating-dot{width:6px;height:6px;background:var(--primary);border-radius:50%;box-shadow:0 0 8px rgba(34,197,94,.6);flex-shrink:0;animation:dotPulse 2s ease-in-out infinite}.floating-label{color:#e2e8f0;font-size:12px;font-weight:600;letter-spacing:.2px}.floating-xp{color:var(--primary);font-size:11px;font-weight:600}.floating-arrow{color:#64748b;font-size:13px;line-height:1}.floating-progress{height:2px;background:rgba(255,255,255,.04)}.floating-progress-fill{height:100%;background:linear-gradient(90deg,#22c55e,#06b6d4);border-radius:0 1px 1px 0;transition:width .5s ease}@media (max-width:576px){.floating-indicator{right:1rem;bottom:1rem}}.quiz-badge{background:linear-gradient(135deg,#22c55e,#06b6d4);color:#fff;font-size:9px;font-weight:700;padding:2px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.success-card{background:rgba(30,30,45,.6);border:1px solid rgba(40,199,111,.15);border-radius:12px;overflow:hidden}.success-card-accent{height:2px;background:linear-gradient(90deg,#22c55e,#06b6d4)}.success-card-body{padding:2rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem}.success-check-icon{font-size:3rem;color:var(--secondary);line-height:1;animation:bounceIn .6s cubic-bezier(.34,1.56,.64,1) both}@keyframes bounceIn{0%{transform:scale(0);opacity:0}60%{transform:scale(1.15);opacity:1}100%{transform:scale(1)}}.success-title{color:var(--secondary);font-size:1.25rem;font-weight:700;margin:0;line-height:1.3}.success-xp-badge{display:inline-flex;align-items:center;gap:.375rem;background:rgba(40,199,111,.15);color:var(--secondary);padding:.375rem .875rem;border-radius:20px;font-size:.875rem;font-weight:700;border:1px solid rgba(40,199,111,.3);box-shadow:0 0 12px rgba(40,199,111,.15);margin:.25rem 0 .5rem}.success-xp-badge i{font-size:.875rem}.btn-next-chapter{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1.5rem;background:var(--primary);color:#fff;font-weight:600;font-size:.9375rem;border-radius:8px;text-decoration:none;transition:all .2s ease;box-shadow:0 2px 8px rgba(34,197,94,.25)}.btn-next-chapter:hover{color:#fff;box-shadow:0 4px 12px rgba(34,197,94,.35);transform:translateY(-1px)}.btn-next-chapter:hover .ti-arrow-right{transform:translateX(3px)}.btn-next-chapter .ti-arrow-right{transition:transform .2s ease}.progress-card{background:linear-gradient(135deg,rgba(34,197,94,.06) 0,var(--card-bg) 60%);border:1px solid rgba(34,197,94,.15);border-radius:8px;padding:1rem;margin-bottom:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.1);overflow:hidden;animation:sidebarFadeIn .5s ease both}.progress-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.progress-icon{width:36px;height:36px;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.2);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:1.125rem}.progress-title{color:var(--text-primary);font-size:.9375rem;font-weight:600;margin-bottom:.25rem}.progress-subtitle{color:var(--text-secondary);margin:0;font-size:.75rem}.progress-circle-container{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.progress-circle-svg{width:100px;height:100px;transform:rotate(-90deg);filter:drop-shadow(0 0 6px rgba(34, 197, 94, .3))}.progress-track{fill:none;stroke:rgba(40,199,111,0.15);stroke-width:5}.progress-fill{fill:none;stroke:url(#progressGradient);stroke-width:5;stroke-linecap:round;stroke-dasharray:0 251.2;transition:stroke-dasharray 1s cubic-bezier(.4, 0, .2, 1)}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.progress-number{font-size:1.5rem;font-weight:700;color:var(--secondary);line-height:1}.progress-total{font-size:1rem;color:rgba(255,255,255,.6)}.progress-details{display:flex;justify-content:space-around;text-align:center}.progress-stat{display:flex;flex-direction:column}.progress-stat .stat-value{color:var(--primary);font-weight:600}.progress-stat .stat-label{font-size:.8rem;color:rgba(255,255,255,.6);margin-top:.25rem}.chapters-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.1);animation:sidebarFadeIn .5s ease .1s both}.chapters-header{padding:1rem;background:rgba(255,255,255,.02);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.chapters-title{color:var(--text-primary);font-size:.9375rem;font-weight:600;margin:0;display:flex;align-items:center}.chapters-filter{display:flex;background:rgba(255,255,255,.04);padding:.1875rem;border-radius:6px;border:1px solid rgba(255,255,255,.06);position:relative}.filter-pill-bg{position:absolute;top:.1875rem;left:.1875rem;height:calc(100% - .375rem);border-radius:4px;background:rgba(34,197,94,.15);transition:transform .3s cubic-bezier(.4, 0, .2, 1),width .3s cubic-bezier(.4, 0, .2, 1);pointer-events:none}.filter-btn{background:0 0;border:none;color:var(--text-secondary);padding:.375rem .625rem;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:color .2s ease,font-weight .2s ease;position:relative;z-index:1}.filter-btn.active{color:var(--primary);font-weight:600}.filter-btn:hover:not(.active){color:rgba(34,197,94,.7)}.chapters-list{padding:.625rem}.chapters-list-scroll{max-height:85vh;overflow-y:auto;padding-right:.25rem}.chapters-list-scroll::-webkit-scrollbar{width:6px}.chapters-list-scroll::-webkit-scrollbar-track{background:0 0}.chapters-list-scroll::-webkit-scrollbar-thumb{background:rgba(34,197,94,.3);border-radius:3px}.chapters-list-scroll::-webkit-scrollbar-thumb:hover{background:rgba(34,197,94,.5)}.chapter-list-item{display:block;text-decoration:none;border-radius:6px;transition:all .2s ease;overflow:hidden}.chapter-list-item:hover{background:rgba(255,255,255,.03)}.chapter-list-item:hover .chapter-chevron{color:var(--primary)}.chapter-list-item.current-chapter{background:rgba(34,197,94,.08)}.chapter-list-item.completed-chapter{opacity:.7}.chapter-list-item.completed-chapter:hover{opacity:1}.chapter-list-item.upcoming-chapter{opacity:.5;cursor:default}.chapter-list-item.upcoming-chapter.date-emphasis .chapter-release-date{color:#00cfe8;transform:scale(1.1)}.chapter-list-item.upcoming-chapter .chapter-release-date{transition:color .3s ease,transform .3s ease;transform-origin:left center}.status-indicator.upcoming{background:rgba(0,207,232,.2);border:1px solid rgba(0,207,232,.4)}.chapter-list-item .badge-soon{display:inline-flex;align-items:center;gap:.25rem;background:rgba(0,207,232,.15);color:#00cfe8;font-size:.625rem;font-weight:600;padding:.0625rem .375rem;border-radius:100px}.chapter-release-date{display:inline-flex;align-items:center;gap:.2rem;color:var(--text-secondary);font-size:.625rem}.chapter-item-content{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem}.chapter-status{display:flex;align-items:center;justify-content:center;flex-shrink:0}.status-indicator{width:8px;height:8px;border-radius:50%;transition:all .2s ease}.status-indicator.completed{background:var(--secondary)}.status-indicator.current{background:var(--text-primary);box-shadow:0 0 0 3px rgba(231,231,255,.2)}.status-indicator.pending{background:rgba(255,255,255,.12)}.chapter-details{flex-grow:1;min-width:0}.chapter-title-row{display:flex;align-items:baseline;gap:.375rem;margin-bottom:.25rem}.chapter-number{font-size:.6875rem;color:var(--text-secondary);font-weight:600;white-space:nowrap}.chapter-item-title{color:var(--text-primary);font-size:.8125rem;font-weight:600;margin:0;line-height:1.3}.chapter-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.chapter-type{font-size:.6875rem;padding:.125rem .375rem;border-radius:4px;font-weight:500;text-transform:uppercase;letter-spacing:.02em}.chapter-type.free{background:rgba(40,199,111,.12);color:var(--secondary);border:1px solid rgba(40,199,111,.25)}.chapter-type.pro{background:rgba(255,193,7,.12);color:var(--pro-gold);border:1px solid rgba(255,193,7,.25)}.chapter-type.free-today{background:rgba(6,182,212,.14);color:#06b6d4;border:1px solid rgba(6,182,212,.4);border-radius:999px;padding:.125rem .55rem;text-transform:none;letter-spacing:0;font-weight:600}.daily-free-chapter-banner{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.625rem .875rem;border-radius:8px;background:linear-gradient(90deg,rgba(6,182,212,.12),rgba(40,199,111,.08));border:1px solid rgba(6,182,212,.3);color:#06b6d4;font-size:.875rem;font-weight:500}.daily-free-chapter-banner i{font-size:1.1rem}.daily-free-chapter-banner a{color:#5eead4;font-weight:700;text-decoration:none;border-bottom:1px solid rgba(94,234,212,.5);transition:color .15s ease,border-color .15s ease}.daily-free-chapter-banner a:hover{color:#a7f3d0;border-bottom-color:rgba(167,243,208,.8)}.chapter-xp{display:flex;align-items:center;gap:.25rem;color:var(--text-secondary);font-size:.75rem}.chapter-xp i{color:var(--warning);font-size:.6875rem}.chapter-duration{font-size:.6875rem;color:var(--text-secondary)}.chapter-chevron{color:rgba(255,255,255,.2);font-size:.875rem;transition:color .2s ease;flex-shrink:0}.no-results-message{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic;display:none}.no-results-message i{font-size:2rem;opacity:.5}@keyframes sidebarFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.pro-notice{background:linear-gradient(135deg,rgba(255,171,0,.12) 0,rgba(255,107,0,.08) 100%);border:1px solid rgba(255,171,0,.25)}.pro-notice-icon{width:80px;height:80px;background:linear-gradient(135deg,#ffab00 0,#ff6b00 100%);box-shadow:0 8px 25px rgba(255,171,0,.4)}.pro-notice-icon i{font-size:2.2rem;color:#fff}.pro-notice-title{color:#ffab00;font-weight:700}.pro-notice-badge{background:linear-gradient(135deg,#ffab00 0,#ff6b00 100%);color:#fff;padding:.2rem .6rem;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase}.pro-notice-desc{color:#9ca3af;font-size:1rem}.pro-notice-feature{color:#9ca3af}.pro-notice-feature i{color:#28c76f}.pro-notice-btn{background:linear-gradient(135deg,#ffab00 0,#ff6b00 100%);border:none;color:#fff;font-weight:600;font-size:1rem;border-radius:8px;box-shadow:0 4px 20px rgba(255,171,0,.45);transition:all .2s ease}.pro-notice-btn i{font-size:1.25rem}.pro-notice-btn i.ti-chevron-right{font-size:1.1rem}.pro-notice-footer{color:#6b7280}.pro-teaser{background:var(--card-bg);border:1px solid rgba(255,171,0,.2);border-left:3px solid rgba(255,171,0,.5);border-radius:8px;padding:1.25rem;margin-bottom:1.5rem}.pro-teaser-header{display:flex;align-items:center;gap:.625rem;margin-bottom:.75rem}.pro-teaser-lock{width:32px;height:32px;background:rgba(255,171,0,.1);border:1px solid rgba(255,171,0,.2);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:#ffab00;flex-shrink:0}.pro-teaser-title{color:var(--text-primary);font-size:.9375rem;font-weight:600;margin:0}.pro-teaser-body{color:var(--text-secondary);font-size:.875rem;line-height:1.6;margin:0}.confetti-particle{position:fixed;width:8px;height:8px;border-radius:2px;pointer-events:none;z-index:9999;animation:confettiPop 1.2s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes confettiPop{0%{transform:translate(0,0) rotate(0) scale(1);opacity:1}100%{transform:translate(var(--cx),var(--cy)) rotate(var(--cr)) scale(0);opacity:0}}@media (max-width:768px){.course-title{font-size:1.2rem}.chapters-list-scroll{max-height:none;overflow-y:visible}.chapter-meta{flex-direction:column;gap:.375rem;align-items:flex-start}.lab-header-content{padding:1.25rem}.lab-cta{flex-direction:column;text-align:center}.btn-start-lab,.btn-upgrade-lab{width:100%}.checkpoint-header{flex-direction:column;text-align:center}}@media (max-width:576px){.course-title{font-size:1.125rem}.breadcrumb-link{padding:.25rem .375rem;font-size:.75rem}}.chapter-content-wrapper.is-sectioned{max-width:860px;margin-left:auto;margin-right:auto;color:#cbd5e1}.ch-section{padding:0 0 1.5rem}.ch-section>h2{font-size:1.5rem;font-weight:600;letter-spacing:-.01em;color:#f1f5f9;margin:0 0 1rem;padding:0 0 .6rem;border-bottom:1px solid rgba(255,255,255,.08)}.ch-section>h2:focus{outline:0}.ch-section>h2:focus-visible{outline:2px solid #00cfe8;outline-offset:4px}.ch-section h3{font-size:1.05rem;font-weight:600;color:#e2e8f0;margin:1.6rem 0 .5rem}.ch-section li,.ch-section p{font-size:1rem;line-height:1.6}.ch-section p{margin:0 0 .9rem}.ch-section ol,.ch-section ul{margin:0 0 1rem;padding-left:1.25rem}.ch-section li{margin-bottom:.3rem}.ch-section strong{font-weight:600;color:#e2e8f0}.chapter-content-wrapper.is-sectioned code:not(pre code),.chapter-content-wrapper.is-sectioned kbd{font:0.875em/1.4 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-ligatures:none;color:#e2e8f0;background:rgba(255,255,255,.07);padding:.1em .4em;border-radius:4px}.chapter-content-wrapper.is-sectioned kbd{border:1px solid rgba(255,255,255,.14);border-bottom-width:2px;background:rgba(255,255,255,.04);font-size:.8em;padding:.1em .45em}.ch-expect,.ch-note,.ch-warn{position:relative;margin:1rem 0 1.2rem;padding:.8rem 1rem .8rem 2.7rem;border-radius:8px;border:1px solid rgba(255,255,255,.08);border-left:3px solid #64748b;background:rgba(255,255,255,.03);color:#c3cdd9;font-size:.95rem}.ch-callout-icon{position:absolute;left:.95rem;top:.85rem;font-size:1.1rem;line-height:1;color:#94a3b8}.ch-warn{border-left-color:#d97706;background:rgba(217,119,6,.06)}.ch-warn .ch-callout-icon{color:#f59e0b}.ch-expect{border-left-color:#22c55e;background:rgba(34,197,94,.05)}.ch-expect .ch-callout-icon{color:#22c55e}.ch-note .ch-callout-icon{color:#00cfe8}.ch-expect strong,.ch-note strong,.ch-warn strong{color:#e2e8f0}.ch-example{margin:1.25rem 0 1.5rem;padding:1rem 1.1rem .25rem;border:1px solid rgba(0,207,232,.25);border-radius:10px;background:rgba(0,207,232,.04)}.ch-example>h3{display:flex;align-items:center;gap:.5rem;margin:0 0 .9rem;font:600 0.72rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:#67d9e8}.ch-example>h3 i{font-size:1rem}.ch-example pre{margin-top:.75rem}.ch-exsteps{margin:1.25rem 0 1.5rem}.ch-exstep{position:relative;display:grid;grid-template-columns:2.25rem 1fr;gap:0 1rem;padding-bottom:1.4rem}.ch-exstep::before{content:'';position:absolute;left:1.05rem;top:2.3rem;bottom:0;width:2px;background:rgba(255,255,255,.08)}.ch-exstep:last-child::before{display:none}.ch-exstep:last-child{padding-bottom:.25rem}.ch-exstep-num{width:2.25rem;height:2.25rem;border-radius:50%;background:#22c55e;color:#0b1220;font:700 1rem/2.25rem 'JetBrains Mono',ui-monospace,monospace;text-align:center}.ch-exstep-body>h3{margin:.35rem 0 .5rem;font-size:1.05rem}.ch-exstep-body>:last-child{margin-bottom:0}.ch-assess{display:flex;align-items:center;gap:1rem;margin:0 0 1.25rem;padding:1rem 1.1rem;border:1px solid rgba(34,197,94,.35);border-radius:10px;background:rgba(34,197,94,.05)}.ch-assess-icon{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:rgba(34,197,94,.15);color:#22c55e;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.ch-assess-title{margin:0;font-size:1rem;color:#f1f5f9}.ch-assess-sub{margin:.15rem 0 0;font-size:.88rem;color:#94a3b8}.ch-assess-score{margin-left:auto;display:flex;gap:.35rem}.ch-assess-dot{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.2);transition:background .3s,border-color .3s}.ch-assess-dot.is-done{background:#22c55e;border-color:#22c55e}.ch-step-num{margin-left:.5rem;color:#94a3b8;font-weight:500;letter-spacing:.04em;text-transform:none}ul.ch-recap{list-style:none;padding:0;margin:.75rem 0 1.25rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1.25rem}ul.ch-recap>li{position:relative;margin:0;padding:.55rem .75rem .55rem 2.1rem;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.02);font-size:.92rem;line-height:1.45}ul.ch-recap>li::before{content:'\2713';position:absolute;left:.75rem;top:.5rem;width:1rem;height:1rem;border-radius:50%;background:rgba(34,197,94,.18);color:#22c55e;font:700 0.65rem/1rem 'JetBrains Mono',ui-monospace,monospace;text-align:center}@media (max-width:700px){ul.ch-recap{grid-template-columns:1fr}}ol.ch-steps{list-style:none;padding:0;margin:1rem 0 1.25rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;counter-reset:chstep}ol.ch-steps>li{margin:0;padding:.9rem .9rem 1rem;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.02);font-size:.92rem;line-height:1.5}ol.ch-steps>li::before{counter-increment:chstep;content:counter(chstep);display:flex;width:26px;height:26px;margin-bottom:.6rem;border-radius:50%;background:#22c55e;color:#0b1220;font:700 0.85rem/26px 'JetBrains Mono',ui-monospace,monospace;justify-content:center}.ch-steps-lead{display:block;color:#f1f5f9;margin-bottom:.2rem}@media (max-width:700px){ol.ch-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}.ch-toast{position:fixed;left:50%;bottom:1.5rem;z-index:60;display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:999px;border:1px solid rgba(34,197,94,.5);background:#0f1a2e;color:#e2e8f0;font-weight:600;font-size:.92rem;box-shadow:0 10px 30px rgba(0,0,0,.45);transform:translate(-50%,30px);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.2, .8, .2, 1),opacity .35s}.ch-toast i{color:#22c55e;font-size:1.15rem}.ch-toast.is-on{transform:translate(-50%,0);opacity:1}.ch-story{margin:0 0 1rem;color:#b6c2d2}.ch-story p{font-style:italic}.ch-brief{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem 1.25rem;padding:.9rem 1rem;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin:1.1rem 0 1.25rem}.ch-brief dt{font:600 0.68rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;margin-bottom:.3rem}.ch-brief dd{margin:0;font-size:.92rem}.chapter-content-wrapper.is-sectioned table{width:100%;border-collapse:collapse;margin:.9rem 0 1.25rem;font-size:.95rem}.chapter-content-wrapper.is-sectioned th{text-align:left;font:600 0.68rem/1.2 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;padding:.45rem .75rem .45rem 0;border-bottom:1px solid rgba(255,255,255,.14)}.chapter-content-wrapper.is-sectioned td{padding:.5rem .75rem .5rem 0;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:top;color:#cbd5e1}.chapter-content-wrapper.is-sectioned td:first-child{color:#e2e8f0;font-weight:500;white-space:nowrap}.chapter-content-wrapper.is-sectioned pre{position:relative;margin:.9rem 0 1.1rem;padding:.75rem .9rem;background:#0b1220;border:1px solid rgba(255,255,255,.08);border-radius:6px;color:#d7dee8;font:0.86rem/1.55 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-ligatures:none;overflow-x:auto}.chapter-content-wrapper.is-sectioned pre code{color:inherit;background:0 0;padding:0;font:inherit}.chapter-content-wrapper.is-sectioned pre.is-multiline[data-lang]{padding-top:1.9rem}.chapter-content-wrapper.is-sectioned pre.is-multiline[data-lang]::before{content:attr(data-lang);position:absolute;top:.45rem;left:.9rem;font:600 0.62rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.ch-copy{position:absolute;top:.4rem;right:.5rem;font:500 0.7rem/1 inherit;padding:.25rem .5rem;border-radius:4px;border:1px solid rgba(255,255,255,.12);background:0 0;color:#94a3b8;cursor:pointer}.ch-copy:hover{color:#e2e8f0;border-color:rgba(255,255,255,.3)}.ch-deeper{border:1px solid rgba(255,255,255,.08);border-radius:6px;margin:.6rem 0}.ch-deeper>summary{cursor:pointer;padding:.75rem .9rem;font-weight:600;font-size:.95rem;list-style:none;color:#e2e8f0}.ch-deeper>summary::-webkit-details-marker{display:none}.ch-deeper>summary::before{content:'+';display:inline-block;width:1.1rem;color:#94a3b8;font-family:'JetBrains Mono',ui-monospace,monospace}.ch-deeper[open]>summary::before{content:'\2212'}.ch-deeper>:not(summary){padding:0 .9rem}.ch-deeper>:last-child{padding-bottom:.9rem}.chapter-content-wrapper.is-sectioned{--ch-hex:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 66L0 50V16l28-16 28 16v34L28 66zm0-2l26-15V18L28 3 2 18v31l26 15zM0 0l28 16L56 0H0z' fill='none' stroke='%2322c55e' stroke-opacity='0.08'/%3E%3C/svg%3E")}.ch-section{position:relative}.ch-head{position:absolute;top:-.35rem;right:0;pointer-events:none}.ch-head-num{font:700 6.5rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:-.04em;color:rgba(34,197,94,.07)}.chapter-content-wrapper.is-sectioned>.ch-section>h2{position:relative;font-size:1.9rem;margin:0 0 .75rem;padding:1.25rem 0 0;border:0}.ch-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .9rem;margin:0 0 1.5rem;padding:0 0 .9rem;border-bottom:1px solid rgba(255,255,255,.08);font:500 0.78rem/1 'JetBrains Mono',ui-monospace,monospace;color:#94a3b8}.ch-meta-kind{padding:.3rem .55rem;border-radius:999px;background:rgba(34,197,94,.12);color:#22c55e;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.ch-meta-time{display:inline-flex;align-items:center;gap:.35rem}.ch-segs{display:flex;gap:4px;margin-left:auto}.ch-seg{width:16px;height:4px;border-radius:2px;background:rgba(255,255,255,.12);transition:background .3s}.ch-seg.is-done{background:#22c55e}.ch-seg.is-current{background:#00cfe8}.ch-step-right{display:inline-flex;align-items:center;gap:.6rem}.ch-step-req{font:500 0.68rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.03em;color:#94a3b8}.ch-step-card.is-done .ch-step-req{color:#22c55e}@media (max-width:640px){.ch-step-req{display:none}}@media (max-width:640px){.ch-head-num{font-size:4rem}.ch-head{top:-.2rem}.ch-meta-time{white-space:nowrap}.ch-segs{width:100%;margin-left:0}.ch-seg{flex:1;width:auto}}@keyframes chEnter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.ch-section.ch-enter{animation:chEnter .32s cubic-bezier(.2,.8,.2,1)}@keyframes chTickPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.3);opacity:1}100%{transform:scale(1)}}.toc-item.is-just-done .toc-tick::before{display:inline-block;animation:chTickPop .45s cubic-bezier(.2,.8,.2,1)}@keyframes chPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}100%{box-shadow:0 0 0 14px rgba(34,197,94,0)}}.ch-next.is-pulse{animation:chPulse .9s ease-out 2}@keyframes chGlow{0%{box-shadow:0 0 0 0 rgba(34,197,94,.45)}100%{box-shadow:0 0 0 18px rgba(34,197,94,0)}}.ch-step-card.is-done{animation:chGlow .8s ease-out}.ch-step-card.is-done .ch-step-tick::before{display:inline-block;animation:chTickPop .45s cubic-bezier(.2,.8,.2,1)}.ch-end{position:relative;overflow:hidden;margin:1.75rem 0 .5rem;padding:1.25rem 1.25rem 1.35rem;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.025)}.ch-end.is-complete{border-color:rgba(34,197,94,.55);background:rgba(34,197,94,.05)}.ch-end.is-complete::before{content:'';position:absolute;inset:0;background-image:var(--ch-hex);-webkit-mask-image:radial-gradient(70% 80% at 100% 0%,#000 10%,transparent 70%);mask-image:radial-gradient(70% 80% at 100% 0%,#000 10%,transparent 70%);pointer-events:none}.ch-end>*{position:relative}.ch-end-head{display:flex;align-items:center;gap:1rem}.ch-end-tick{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.18);color:transparent;font:700 1.3rem/40px 'JetBrains Mono',ui-monospace,monospace;text-align:center;transition:background .3s,color .3s,border-color .3s}.ch-end.is-complete .ch-end-tick{background:#22c55e;border-color:#22c55e;color:#0b1220;animation:chTickPop .5s cubic-bezier(.2,.8,.2,1)}.ch-end-title{margin:0;font-size:1.2rem;color:#f1f5f9}.ch-end-sub{margin:.15rem 0 0;color:#94a3b8;font-size:.92rem}.ch-end-open{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:1rem 0 0}.ch-end-open:empty{display:none}.ch-end-open-label{font:600 0.66rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;margin-right:.25rem}.ch-end-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .65rem .35rem .4rem;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:0 0;color:#cbd5e1;font-size:.85rem;cursor:pointer}.ch-end-chip:hover{border-color:#00cfe8;color:#fff}.ch-end-chip-num{width:1.3rem;height:1.3rem;border-radius:50%;background:rgba(255,255,255,.08);font:600 0.65rem/1.3rem 'JetBrains Mono',ui-monospace,monospace;text-align:center;color:#94a3b8}.ch-end-desc{margin:1rem 0 0;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.ch-end-desc p{margin:0;color:#b6c2d2;font-size:.95rem}.ch-end-desc p+p{margin-top:.6rem}.ch-end-next{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.6rem 1.1rem;border-radius:6px;border:1px solid rgba(255,255,255,.18);color:#e2e8f0;font-weight:600;text-decoration:none}.ch-end-next:hover{color:#fff;border-color:rgba(255,255,255,.4);text-decoration:none}.ch-end.is-complete .ch-end-next{background:#22c55e;border-color:#22c55e;color:#0b1220}.ch-end.is-complete .ch-end-next:hover{color:#0b1220;filter:brightness(1.08)}.ch-reference{margin:2rem 0 0}.ch-reference-label{margin:0 0 .5rem;font:600 0.66rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;color:#94a3b8}.ch-reference .ch-deeper{margin:0;border-radius:0;border-width:0 0 1px;background:0 0}.ch-reference .ch-deeper:first-of-type{border-top-width:1px}.ch-reference .ch-deeper>summary{padding:.7rem .25rem;font-size:.95rem}.ch-reference .ch-deeper>:not(summary){padding:0 .25rem}.chapter-content-wrapper.is-sectioned .hljs-comment,.chapter-content-wrapper.is-sectioned .hljs-quote{color:#7fb08a;font-style:italic}.chapter-content-wrapper.is-sectioned .hljs-keyword,.chapter-content-wrapper.is-sectioned .hljs-name,.chapter-content-wrapper.is-sectioned .hljs-section,.chapter-content-wrapper.is-sectioned .hljs-tag{color:#67d9e8}.chapter-content-wrapper.is-sectioned .hljs-attr,.chapter-content-wrapper.is-sectioned .hljs-attribute{color:#b7c4d6}.chapter-content-wrapper.is-sectioned .hljs-literal,.chapter-content-wrapper.is-sectioned .hljs-meta,.chapter-content-wrapper.is-sectioned .hljs-number,.chapter-content-wrapper.is-sectioned .hljs-string{color:#e2b96f}@media (prefers-reduced-motion:reduce){.ch-end.is-complete .ch-end-tick,.ch-next.is-pulse,.ch-section.ch-enter,.ch-step-card.is-done,.ch-step-card.is-done .ch-step-tick::before,.toc-item.is-just-done .toc-tick::before{animation:none}.ch-toast{transition:none}}.ch-step{margin:1.5rem 0 .5rem}.ch-step-card{border:1px solid rgba(34,197,94,.35);border-radius:8px;background:rgba(34,197,94,.04);padding:1rem 1.1rem 1.1rem}.ch-step-card.is-done{border-color:#22c55e}.ch-step-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.ch-step-kicker{display:inline-flex;align-items:center;gap:.4rem;font:600 0.65rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;color:#22c55e}.ch-step-kicker i{font-size:.95rem}.ch-step-card.is-done .ch-step-tick::before{content:'\2713';color:#22c55e;font-weight:700}.ch-step-prompt{font-weight:600;font-size:1rem;color:#f1f5f9;margin:0 0 .75rem}.ch-step-foot{display:flex;align-items:center;gap:.75rem;margin-top:.75rem;flex-wrap:wrap}.ch-step-submit{padding:.5rem 1rem;border-radius:6px;border:0;background:#22c55e;color:#0b1220;font-weight:600;cursor:pointer}.ch-step-submit:disabled{opacity:.6;cursor:default}.ch-step-submit.is-loading{opacity:.7;pointer-events:none}.ch-step-status{margin:0;font-size:.9rem}.ch-step-status.is-correct{color:#22c55e}.ch-step-status.is-wrong{color:#f87171}.ch-step-explain{margin-top:.75rem;padding:.15rem 0 .15rem .9rem;border-left:2px solid #22c55e;color:#b6c2d2;font-size:.95rem}.course-eyebrow{display:flex;align-items:center;gap:.5rem;margin:0 0 .35rem;font:500 0.8rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.course-eyebrow-sep{color:#475569}.chapter-h1{font-size:1.75rem;margin-bottom:.25rem}.is-sectioned-page .daily-free-chapter-banner{padding:.55rem .9rem;font-size:.9rem;margin-bottom:1rem}.toc-track{height:6px;margin:0 1rem;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}.toc-fill{height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,#22c55e,#00cfe8);transition:width .6s cubic-bezier(.2, .8, .2, 1)}.toc-reward{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:.6rem;row-gap:.15rem;margin:.4rem .75rem .75rem;padding:.65rem .8rem;border-radius:8px;border:1px dashed rgba(255,255,255,.16);color:#94a3b8;font-size:.82rem;transition:border-color .3s,background .3s,color .3s}.toc-reward-icon{font-size:1.15rem;color:#64748b}.toc-reward-xp{font:700 0.8rem/1 'JetBrains Mono',ui-monospace,monospace;color:#94a3b8}.toc-reward-text{grid-column:1/-1;line-height:1.3}.toc-reward-lock{grid-column:3;grid-row:1;color:#64748b}.toc-reward-icon{grid-column:1;grid-row:1}.toc-reward-xp{grid-column:2;grid-row:1}.toc-reward.is-unlocked{border-style:solid;border-color:rgba(34,197,94,.55);background:rgba(34,197,94,.08);color:#e2e8f0}.toc-reward.is-unlocked .toc-reward-icon,.toc-reward.is-unlocked .toc-reward-xp{color:#22c55e}.toc-reward.is-unlocked .toc-reward-lock{display:none}.course-tree{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;overflow:hidden;margin-bottom:1rem}.course-tree .toc-header{padding:.9rem 1rem .8rem;border-bottom:1px solid var(--border-color);background:linear-gradient(180deg,rgba(255,255,255,.025),transparent)}.course-tree .toc-title{display:inline-flex;align-items:center;gap:.45rem;font-size:.95rem;color:#f1f5f9}.course-tree .toc-title i{color:#00cfe8;font-size:1.05rem}.tree-course-bar{flex-basis:100%;display:flex;gap:3px;margin-top:.55rem}.tree-course-seg{flex:1;height:4px;border-radius:2px;background:rgba(255,255,255,.1)}.tree-course-seg.is-done{background:#22c55e}.tree-course-seg.is-current{background:#00cfe8}.tree-list{list-style:none;margin:0;padding:.35rem 0 .4rem}.tree-fold>summary{list-style:none;cursor:pointer}.tree-fold-body{overflow:hidden;transition:height .18s ease,opacity .18s ease}.tree-fold>summary::-webkit-details-marker{display:none}.tree-chapter-row{display:grid;grid-template-columns:1.5rem 1fr auto 1rem;align-items:center;gap:.6rem;padding:.55rem .85rem .55rem 1rem;color:#cbd5e1;font-size:.9rem;line-height:1.3}.tree-fold>summary:hover{background:rgba(255,255,255,.03);color:#fff}.tree-chevron{color:#64748b;font-size:.9rem;transition:transform .2s}.tree-fold[open]>summary .tree-chevron{transform:rotate(180deg)}.tree-mark{position:relative;display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;border:1.5px solid rgba(255,255,255,.18);font:600 0.68rem/1 'JetBrains Mono',ui-monospace,monospace;color:#94a3b8}.tree-mark>*{grid-area:1/1}.tree-mark-done,.tree-mark-lock{display:none;font-size:.8rem}.tree-chapter.is-done .tree-mark{background:#22c55e;border-color:#22c55e;color:#0b1220}.tree-chapter.is-done .tree-mark-num{display:none}.tree-chapter.is-done .tree-mark-done{display:block}.tree-chapter.is-locked:not(.is-done) .tree-mark{border-style:dashed;color:#64748b}.tree-chapter.is-locked:not(.is-done) .tree-mark-num{display:none}.tree-chapter.is-locked:not(.is-done) .tree-mark-lock{display:block}.tree-chapter.is-locked .tree-title,.tree-chapter.is-upcoming .tree-title{color:#8794a8}.tree-chapter.is-upcoming .tree-chapter-row{grid-template-columns:1.5rem 1fr auto}.tree-state{display:inline-flex;align-items:center;gap:.35rem;color:#64748b;font-size:.8rem}.tree-pct{font:600 0.7rem/1 'JetBrains Mono',ui-monospace,monospace;color:#00cfe8}.tree-chapter.is-current{background:rgba(0,207,232,.045);border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);margin:.25rem 0}.tree-chapter.is-current .tree-chapter-row{color:#fff;font-weight:600;box-shadow:inset 3px 0 0 #00cfe8;padding-top:.7rem}.tree-chapter.is-current .tree-mark{border-color:#00cfe8;color:#00cfe8;box-shadow:0 0 0 3px rgba(0,207,232,.15)}.tree-track{margin:.15rem 1rem .5rem 3.1rem;height:4px}.tree-sections{position:relative;padding:.1rem 0 .2rem}.tree-sections::before{content:'';position:absolute;left:1.72rem;top:.4rem;bottom:.4rem;width:1px;background:rgba(255,255,255,.12)}.tree-sections .toc-link{grid-template-columns:1.5rem 1fr 1rem;gap:.6rem;padding:.42rem .85rem .42rem 1rem;font-size:.86rem;font-weight:400}.tree-sections .toc-num{position:relative;z-index:1;display:grid;place-items:center;width:1.5rem;height:1.5rem}.tree-sections .toc-num::before{content:'';position:absolute;inset:0.45rem;border-radius:50%;background:var(--card-bg);border:1.5px solid rgba(255,255,255,.22);z-index:-1}.tree-sections .toc-num{font-size:0}.tree-sections .toc-item.is-done .toc-num::before{background:#22c55e;border-color:#22c55e}.tree-sections .toc-item.is-current .toc-num::before{inset:0.32rem;background:#00cfe8;border-color:#00cfe8;box-shadow:0 0 0 3px rgba(0,207,232,.18)}.tree-sections .toc-item.is-current .toc-link{box-shadow:none;color:#fff;font-weight:600}.tree-sections .toc-item.is-done .toc-text{color:#94a3b8}.tree-sections .toc-item.is-done.is-current .toc-text{color:#fff}.tree-chapter.is-current .toc-reward{margin:.35rem .85rem .8rem 3.1rem}.tree-chapter-body{padding:.15rem 1rem .8rem 3.1rem}.tree-meta{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:0 0 .55rem;font:500 0.74rem/1 'JetBrains Mono',ui-monospace,monospace;color:#94a3b8}.tree-meta>span{display:inline-flex;align-items:center;gap:.35rem}.tree-meta i{color:#64748b}.tree-open{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:6px;border:1px solid rgba(255,255,255,.16);color:#e2e8f0;font-size:.82rem;font-weight:600;text-decoration:none}.tree-open:hover{border-color:#00cfe8;color:#fff;text-decoration:none}.tree-chapter.is-locked .tree-open{color:#94a3b8}.toc-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.35rem .5rem;padding:.85rem 1rem;border-bottom:1px solid var(--border-color)}.toc-title{margin:0;font-size:.9rem;white-space:nowrap}.toc-progress{font:600 0.65rem/1 'JetBrains Mono',ui-monospace,monospace;color:#94a3b8;white-space:nowrap}.toc-list{list-style:none;margin:0;padding:.4rem 0}.toc-link{display:grid;grid-template-columns:1.6rem 1fr 1rem;align-items:center;gap:.5rem;padding:.5rem 1rem;color:#cbd5e1;text-decoration:none;font-size:.9rem}.toc-link:hover{background:rgba(255,255,255,.03);color:#fff;text-decoration:none}.toc-num{font:600 0.7rem/1 'JetBrains Mono',ui-monospace,monospace;color:#64748b}.toc-item.is-current .toc-link{color:#fff;box-shadow:inset 3px 0 0 #00cfe8}.toc-item.is-done .toc-num{color:#22c55e}.toc-item.is-done .toc-tick::before{content:'\2713';color:#22c55e;font-weight:700}.toc-bar{display:none}@media (max-width:991.98px){.is-sectioned-page .content-layout .row>.col-lg-9{order:1}.is-sectioned-page .content-layout .row>.mobile-course-summary{order:2}.toc-bar{display:block;position:sticky;top:0;z-index:5;margin:0 0 1rem;border:1px solid var(--border-color);border-radius:10px;background:var(--card-bg);box-shadow:0 8px 24px rgba(0,0,0,.25)}.toc-bar-summary{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .9rem;cursor:pointer;list-style:none}.toc-bar-summary::-webkit-details-marker{display:none}.toc-bar-text{display:flex;flex-direction:column;gap:.2rem;min-width:0}.toc-bar-pos{font:600 0.66rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:#00cfe8}.toc-bar-title{font-weight:600;font-size:.95rem;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toc-bar-summary>i{color:#94a3b8;transition:transform .2s}.toc-bar[open] .toc-bar-summary>i{transform:rotate(180deg)}.toc-bar[open]{position:static}.toc-bar>.course-tree{margin:0;border:0;border-top:1px solid var(--border-color);border-radius:0 0 10px 10px;overflow:hidden;transition:height .18s ease,opacity .18s ease}.is-sectioned-page .mobile-course-summary{display:none}}.chapter-content-wrapper.is-sectioned>.ch-section{display:none}.chapter-content-wrapper.is-sectioned>.ch-section.is-current{display:block;border-bottom:0;margin-bottom:0}.chapter-content-wrapper.is-sectioned>.ch-reference{display:none}.chapter-content-wrapper.is-sectioned.is-last-section>.ch-reference{display:block}.ch-nav{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.06)}.ch-nav-right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.ch-next,.ch-prev{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:6px;border:1px solid rgba(255,255,255,.14);background:0 0;color:#e2e8f0;font-weight:600;font-size:.95rem;cursor:pointer;transition:border-color .2s,background .2s,color .2s}.ch-prev{color:#94a3b8}.ch-skip{background:0 0;border:0;padding:.5rem .25rem;color:#94a3b8;font-size:.9rem;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}.ch-skip:hover{color:#e2e8f0}.ch-next.is-ready{border-color:#22c55e;color:#22c55e}.ch-next.is-ready:hover{background:rgba(34,197,94,.1)}.ch-next.is-done{background:#22c55e;border-color:#22c55e;color:#0b1220}.ch-next.is-done:hover{background:#16a34a}.ch-next.is-locked{border-style:dashed;border-color:rgba(255,255,255,.18);color:#7c8aa0;cursor:not-allowed}.ch-next.is-locked:hover{border-color:rgba(255,255,255,.3);color:#94a3b8}.ch-nav-hint{flex-basis:100%;display:flex;justify-content:flex-end;align-items:center;gap:.4rem;margin:-.25rem 0 0;font-size:.82rem;color:#94a3b8}.ch-nav-hint i{color:#7c8aa0}@media (max-width:575.98px){.ch-nav-right{width:100%;justify-content:space-between;margin-left:0}.ch-nav-hint{justify-content:flex-start}}.ch-deeper{border:1px solid var(--border-color);border-radius:10px;margin:.75rem 0;background:rgba(255,255,255,.015)}.ch-deeper>summary{cursor:pointer;padding:.85rem 1rem;font-weight:600;list-style:none}.ch-deeper>summary::-webkit-details-marker{display:none}.ch-deeper>summary::before{content:'+';display:inline-block;width:1.2rem;color:#22c55e;font-family:'JetBrains Mono',ui-monospace,monospace}.ch-deeper[open]>summary::before{content:'\2212'}.ch-deeper>:not(summary){padding:0 1rem}.ch-deeper>:last-child{padding-bottom:1rem}