.sidebar{width:280px;background:#111;border-right:1px solid #222;position:fixed;height:100vh;display:flex;flex-direction:column;overflow-y:auto;transition:width .3s ease;z-index:100}.sidebar.collapsed{width:60px}.sidebar-header{padding:24px;background:#1a1a1a;text-align:center;position:relative;border-bottom:1px solid #333}.sidebar.collapsed .sidebar-header{padding:16px 8px}.logo{display:flex;align-items:center;justify-content:center;margin-bottom:8px}.logo-image{width:100%;max-width:200px;height:auto;object-fit:contain;transition:all .3s ease}.sidebar.collapsed .logo-image{max-width:40px}.tagline{font-size:13px;font-weight:500;color:#999;margin:0}.nav-section{flex:1;padding:20px 12px}.chapters-divider{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#666;margin:20px 8px 12px;font-weight:600}.nav-item{width:100%;padding:12px 16px;background:transparent;border:1px solid transparent;border-radius:8px;color:#999;display:flex;align-items:center;gap:12px;text-align:left;margin-bottom:8px;transition:all .2s}.sidebar.collapsed .nav-item{padding:12px;justify-content:center;gap:0}.nav-item:not(.locked):hover{background:#1a1a1a;border-color:#333;color:#fff;transform:translate(4px)}.nav-item.active{background:linear-gradient(135deg,rgba(151,94,255,.1),rgba(196,65,255,.1));border-color:#975eff;color:#fff}.nav-item.locked{opacity:.5;cursor:not-allowed}.nav-icon{font-size:20px}.nav-content{flex:1;display:flex;flex-direction:column;gap:2px}.nav-title{font-size:14px;font-weight:500}.nav-description{font-size:11px;opacity:.7}.sidebar-footer{padding:20px;border-top:1px solid #222}.progress-indicator{background:#1a1a1a;padding:12px;border-radius:8px}.progress-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#666;font-weight:600}.progress-bar{height:4px;background:#222;border-radius:2px;margin:8px 0;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#975eff,#c441ff);transition:width .3s ease}.progress-text{font-size:12px;color:#999}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.welcome{max-width:900px}.welcome-hero{text-align:center;margin-bottom:60px}.duck-animation{font-size:80px;animation:bounce 2s ease-in-out infinite;margin-bottom:20px}.welcome-title{font-size:42px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:12px}.welcome-subtitle{font-size:18px;color:#999}.info-card{background:#111;border:1px solid #222;border-radius:12px;padding:32px;margin-bottom:24px}.info-card h2{font-size:24px;margin-bottom:16px;color:#fff}.features{display:grid;gap:20px;margin-top:24px}.feature{display:flex;gap:16px;align-items:start}.feature-icon{font-size:32px}.feature h3{font-size:16px;margin-bottom:4px;color:#667eea}.feature p{font-size:14px;color:#999}.journey-steps{margin-top:24px}.journey-step{display:flex;gap:20px;margin-bottom:24px;padding:20px;background:#0a0a0a;border-radius:8px;border:1px solid #1a1a1a}.step-number{width:40px;height:40px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.step-content h3{font-size:16px;margin-bottom:4px}.step-content p{font-size:14px;color:#999;margin-bottom:8px}.unlock-hint{display:inline-block;background:rgba(102,126,234,.1);color:#667eea;padding:4px 12px;border-radius:12px;font-size:12px}.tip-card{background:linear-gradient(135deg,rgba(102,126,234,.1),rgba(118,75,162,.1));border-color:#667eea}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.syntax-highlighter{background:#1e1e1e;border-radius:8px;overflow:hidden;margin:20px 0;font-family:JetBrains Mono,monospace;font-size:14px;box-shadow:0 4px 6px #0000004d}.code-header{background:linear-gradient(135deg,#2d2d2d,#353535);padding:8px 15px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #444}.language-label{color:#888;font-size:11px;font-weight:600;letter-spacing:1px}.copy-button{background:#4a4a4a;color:#fff;border:none;padding:4px 12px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.copy-button:hover{background:#5a5a5a;transform:scale(1.05)}.code-with-library{overflow-x:auto}.code-with-library pre{margin:0!important;background:transparent!important}.code-line{display:flex;min-height:22px;line-height:1.5}.code-line.highlighted{background:rgba(255,235,59,.1);margin:0 -15px;padding:0 15px;border-left:3px solid #ffeb3b}.line-number{color:#5a5a5a;margin-right:15px;-webkit-user-select:none;user-select:none;min-width:30px;text-align:right}@keyframes copied{0%{background:#4caf50}to{background:#4a4a4a}}.copy-button.copied{animation:copied .5s}@media (max-width: 768px){.syntax-highlighter{font-size:12px}.code-container{padding:10px}}.chapter-1{padding:40px;max-width:1400px;margin:0 auto}@media (max-width: 768px){.chapter-1{padding:20px}.chapter-header h1{font-size:32px}.chapter-intro{font-size:16px}.concept-section{padding:25px}.concept-section h2{font-size:24px}.code-display-basic{font-size:20px;padding:25px}.builder-controls{grid-template-columns:1fr}.panel-content{padding:20px}.panel-content pre{font-size:14px}.reference-grid{grid-template-columns:1fr}}.chapter-2{padding:40px;max-width:1400px;margin:0 auto}.chapter-badge{display:inline-block;background:linear-gradient(135deg,#4CAF50 0%,#45a049 100%);color:#fff;padding:8px 20px;border-radius:20px;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1px;flex-shrink:0}.basic-button-anatomy{max-width:900px;margin:0 auto}.anatomy-explanation{text-align:center;margin-bottom:40px}.intro-text{font-size:18px;color:#ccc;line-height:1.6}.code-display-basic{font-family:JetBrains Mono,monospace;font-size:32px;padding:40px;background:#0a0a0a;border-radius:12px;border:2px solid #2a2a2a;text-align:center;margin:30px 0;line-height:1.8}.code-part-basic{display:inline;cursor:pointer;padding:5px 10px;border-radius:6px;transition:all .3s ease}.code-part-basic:nth-child(1){color:#4ec9b0}.code-part-basic:nth-child(2){color:#d4d4d4}.code-part-basic:nth-child(3){color:#4ec9b0}.code-part-basic.highlighted{background:rgba(76,175,80,.2);transform:scale(1.05);box-shadow:0 0 20px #4caf504d}.basic-explanation{text-align:center;padding:25px;background:rgba(76,175,80,.1);border-radius:8px;margin:20px 0;animation:fadeIn .3s ease}.basic-explanation h4{color:#4caf50;font-size:22px;margin-bottom:10px}.basic-explanation p{color:#ddd;font-size:16px;margin:0}.basic-preview{text-align:center;padding:40px;background:#0a0a0a;border-radius:12px;border:2px dashed #555;margin-top:30px}.non-interactive-button{background:#444;color:#999;border:2px solid #555;padding:15px 40px;font-size:18px;border-radius:8px;font-weight:600;cursor:not-allowed;opacity:.6}.preview-note{margin-top:20px;color:#888;font-size:16px;font-style:italic}.panel-title{color:#4caf50;font-size:16px;font-weight:600;margin:0;text-transform:uppercase;letter-spacing:1px}.step-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#4CAF50}.checklist-step.checked .label-text{color:#4caf50}.compact-input:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 2px #4caf5026}.compact-preview-btn.ready{background:linear-gradient(135deg,#4CAF50,#45a049);color:#fff;box-shadow:0 3px 10px #4caf504d}.compact-preview-btn.ready:hover{transform:translateY(-2px);box-shadow:0 5px 15px #4caf5066}.builder-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:25px;padding:30px;background:#0a0a0a;border-radius:12px;border:2px solid #2a2a2a;margin-bottom:30px}.control-group{display:flex;flex-direction:column;gap:10px}.control-group label{color:#4caf50;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:1px}.control-group input{background:#1a1a1a;border:2px solid #333;color:#fff;padding:12px 16px;border-radius:8px;font-size:16px;font-family:JetBrains Mono,monospace;transition:all .3s ease}.control-group input.error{border-color:#f44336}.validation-msg{font-size:13px;padding:8px 12px;border-radius:6px;font-weight:500}.validation-msg.error{background:rgba(244,67,54,.1);color:#f44336;border:1px solid #F44336}.validation-msg.warning{background:rgba(255,193,7,.1);color:#ffc107;border:1px solid #FFC107}.validation-msg.success{background:rgba(76,175,80,.1);color:#4caf50;border:1px solid #4CAF50}.match-callout{display:flex;align-items:center;gap:20px;padding:25px 30px;background:linear-gradient(135deg,rgba(76,175,80,.15),rgba(76,175,80,.05));border:2px solid #4CAF50;border-radius:12px;margin-bottom:30px}.match-icon{width:50px;height:50px;background:#4CAF50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;flex-shrink:0}.match-text{flex:1}.match-text strong{color:#4caf50;font-size:20px;display:block;margin-bottom:12px}.match-demo{display:flex;align-items:center;gap:15px;font-family:JetBrains Mono,monospace;font-size:16px;flex-wrap:wrap}.match-part{padding:8px 16px;background:rgba(0,0,0,.3);border-radius:6px;color:#dcdcaa}.match-arrow{color:#4caf50;font-size:24px;font-weight:700}.split-code-view{display:grid;grid-template-rows:1fr 60px 1fr;grid-template-columns:1fr;gap:0;background:#0a0a0a;border-radius:12px;border:2px solid #2a2a2a;overflow:hidden;margin-bottom:30px;min-height:400px}.code-panel{display:flex;flex-direction:column}.panel-header{background:#1a1a1a;padding:15px 20px;border-bottom:1px solid #333;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:1px}.html-panel .panel-header{color:#9cdcfe}.js-panel .panel-header{color:#dcdcaa}.panel-content{flex:1;padding:30px;overflow-x:auto}.panel-content pre{margin:0;font-family:JetBrains Mono,monospace;font-size:16px;line-height:2}.panel-content code{color:#d4d4d4}.attribute{color:#9cdcfe;cursor:pointer;padding:2px 4px;border-radius:4px;transition:all .3s ease}.attribute:hover,.attribute.hover-highlight{background:rgba(156,220,254,.3);box-shadow:0 0 20px #9cdcfe99;transform:scale(1.05)}.keyword{color:#c586c0;font-weight:600}.func-name{color:#dcdcaa;cursor:pointer;padding:2px 4px;border-radius:4px;transition:all .3s ease}.func-name:hover,.func-name.hover-highlight{background:rgba(220,220,170,.3);box-shadow:0 0 20px #dcdcaa99;transform:scale(1.05)}.func-name-in-string{color:#dcdcaa;cursor:pointer;padding:2px 4px;border-radius:4px;transition:all .3s ease}.func-name-in-string:hover,.func-name-in-string.hover-highlight{background:rgba(220,220,170,.3);box-shadow:0 0 20px #dcdcaa99;transform:scale(1.05)}.punctuation{color:gray}.connection-container{display:flex;align-items:center;justify-content:center;background:#0a0a0a;border-top:1px solid #333;border-bottom:1px solid #333}.connection-svg{display:block}.connection-svg line{transition:all .3s ease}.connection-svg line.connection-active{stroke:#4caf50;stroke-width:4;filter:drop-shadow(0 0 12px rgba(76,175,80,.8));animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.live-preview-section{text-align:center;padding:40px;background:#0a0a0a;border-radius:12px;border:2px solid #2a2a2a;margin-bottom:30px}.live-preview-section h4{color:#4caf50;font-size:20px;margin-bottom:25px}.preview-btn{background:linear-gradient(135deg,#4CAF50,#45a049);color:#fff;border:none;padding:15px 50px;font-size:20px;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s ease;box-shadow:0 4px 15px #4caf504d}.preview-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 6px 25px #4caf5080}.preview-btn:active:not(:disabled){transform:translateY(-1px)}.preview-btn:disabled{opacity:.4;cursor:not-allowed;background:#666}.success-note{margin-top:20px;color:#4caf50;font-size:16px;font-weight:600}.generated-code-section{padding:30px;background:#0a0a0a;border-radius:12px;border:2px solid #2a2a2a}.generated-code-section h4{color:#4caf50;font-size:18px;margin-bottom:20px}.progressive-code-display{background:#0a0a0a;border:2px solid #2a2a2a;border-radius:12px;padding:20px;height:fit-content;max-height:700px;overflow-y:auto}.progressive-code-display h4{color:#4caf50;font-size:16px;font-weight:600;margin:0 0 20px;text-transform:uppercase;letter-spacing:1px}.code-section{background:#000;border:1px solid #2a2a2a;border-radius:6px;margin-bottom:12px;overflow:hidden;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.section-label{background:#1a1a1a;padding:6px 12px;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #2a2a2a}.code-content{padding:12px}.code-content pre{margin:0;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.6}.connection-indicator{display:flex;flex-direction:column;align-items:center;margin:8px 0;animation:fadeIn .3s ease}.connection-indicator svg{display:block}.connection-indicator line{transition:all .3s ease}.connection-indicator line.connection-active{filter:drop-shadow(0 0 6px currentColor);animation:pulse 1.5s ease-in-out infinite}.connection-label{font-size:11px;font-weight:600;padding:4px 12px;border-radius:12px;margin-top:-8px}.connection-label.match{background:rgba(76,175,80,.2);color:#4caf50;border:1px solid #4CAF50}.connection-label.mismatch{background:rgba(244,67,54,.2);color:#f44336;border:1px solid #f44336}.func-call{color:#dcdcaa;padding:2px 4px;border-radius:3px;transition:all .3s ease}.attribute.match,.func-name.match{background:rgba(76,175,80,.2);box-shadow:0 0 15px #4caf5066}.attribute.mismatch,.func-name.mismatch{background:rgba(244,67,54,.2);box-shadow:0 0 15px #f4433666}.progressive-builder .live-preview-section{text-align:center;padding:40px;background:#0a0a0a;border-radius:12px;border:2px solid #2a2a2a}.progressive-builder .live-preview-section h4{color:#4caf50;font-size:20px;margin-bottom:25px}.preview-btn.ready{background:linear-gradient(135deg,#4CAF50,#45a049);color:#fff;border:none;padding:15px 50px;font-size:20px;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s ease;box-shadow:0 4px 15px #4caf504d}.preview-btn.ready:hover{transform:translateY(-3px);box-shadow:0 6px 25px #4caf5080}.preview-btn.locked{background:#2a2a2a;color:#666;border:2px dashed #444;padding:15px 50px;font-size:20px;border-radius:8px;cursor:not-allowed;font-weight:600}.preview-note{color:#888;margin-top:15px;font-size:14px}.progressive-builder .success-note{color:#4caf50;margin-top:15px;font-weight:600}.syntax-hoverable{cursor:pointer;padding:2px 3px;border-radius:3px;transition:all .2s ease}.syntax-tooltip{position:fixed;bottom:20px;right:20px;background:#1a1a1a;border:2px solid #4CAF50;border-radius:8px;padding:12px 16px;max-width:300px;z-index:1000;box-shadow:0 4px 20px #00000080;animation:tooltipFadeIn .2s ease}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tooltip-name{color:#4caf50;font-weight:600;font-size:14px;margin-bottom:4px;font-family:JetBrains Mono,monospace}.tooltip-desc{color:#ccc;font-size:13px;line-height:1.4}.quick-reference{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #0f3460}.reference-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:25px;margin-top:30px}.reference-card{background:rgba(255,255,255,.03);padding:30px;border-radius:12px;border:1px solid #333}.reference-card h4{color:#4caf50;margin-bottom:20px;font-size:20px}.rules-list,.mistakes-list{list-style:none;padding:0}.rules-list li,.mistakes-list li{padding:12px 0;color:#ddd;font-size:16px;line-height:1.6;border-bottom:1px solid rgba(255,255,255,.05)}.rules-list li:last-child,.mistakes-list li:last-child{border-bottom:none}.rules-list code,.mistakes-list code{background:rgba(255,255,255,.1);padding:2px 8px;border-radius:4px;color:#dcdcaa;font-family:JetBrains Mono,monospace;font-size:14px}.reference-card.next-steps{grid-column:1 / -1;text-align:center;background:rgba(76,175,80,.05);border-color:#4caf50}.reference-card.next-steps p{color:#ccc;font-size:18px;line-height:1.6;margin-bottom:20px}.teaser{margin-top:20px;padding:20px;background:rgba(76,175,80,.1);border-left:4px solid #4CAF50;border-radius:6px;color:#ddd;font-size:16px;text-align:left}.teaser strong{color:#4caf50;display:block;margin-bottom:8px}@media (max-width: 1024px){.split-code-view{grid-template-columns:1fr;grid-template-rows:auto auto}.connection-container{display:none}.match-demo{flex-direction:column;align-items:flex-start}}@media (max-width: 768px){.chapter-2{padding:20px}.chapter-header h1{font-size:32px}.chapter-intro{font-size:16px}.concept-section{padding:25px}.concept-section h2{font-size:24px}.code-display-basic{font-size:20px;padding:25px}.builder-controls{grid-template-columns:1fr}.panel-content{padding:20px}.panel-content pre{font-size:14px}.reference-grid{grid-template-columns:1fr}}.preview-btn:focus,.non-interactive-button:focus{outline:3px solid #4CAF50;outline-offset:3px}.control-group input:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 3px #4caf5033}@media (prefers-contrast: high){.code-part-basic.highlighted{background:#4CAF50;color:#000}.match-callout{border-width:3px}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.warning-highlight{background:rgba(255,193,7,.15)!important;box-shadow:0 0 12px #ffc10766;animation:warningPulse 2s ease-in-out infinite}@keyframes warningPulse{0%,to{box-shadow:0 0 12px #ffc10766}50%{box-shadow:0 0 20px #ffc10799}}.variable-declaration{color:#9cdcfe;font-weight:600;cursor:pointer;padding:2px 4px;border-radius:4px;transition:all .3s ease}.variable-declaration:hover{background:rgba(156,220,254,.2)}.variable-declaration.match{background:rgba(76,175,80,.2);box-shadow:0 0 15px #4caf5066}.variable-declaration.mismatch{background:rgba(244,67,54,.2);box-shadow:0 0 15px #f4433666}.variable-usage{color:#9cdcfe;font-weight:600;cursor:pointer;padding:2px 4px;border-radius:4px;transition:all .3s ease}.variable-usage:hover{background:rgba(156,220,254,.2)}.variable-usage.match{background:rgba(76,175,80,.2);box-shadow:0 0 15px #4caf5066}.variable-usage.mismatch{background:rgba(244,67,54,.2);box-shadow:0 0 15px #f4433666;animation:mismatchShake .5s ease}@keyframes mismatchShake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.string-literal{background:rgba(206,145,120,.15);padding:2px 6px;border-radius:3px}.operator{color:#d4d4d4;font-weight:700;padding:2px 8px;background:rgba(255,255,255,.05);border-radius:3px}.operator:hover{background:rgba(255,255,255,.1)}.preview-section{background:rgba(76,175,80,.05);border:1px solid rgba(76,175,80,.3);border-radius:8px;padding:16px;margin-top:16px;animation:fadeIn .3s ease}.preview-section h4{color:#4caf50;font-size:13px;font-weight:600;margin:0 0 10px;text-transform:uppercase;letter-spacing:1px}.preview-content{color:#ccc;font-size:13px;line-height:1.6;font-family:JetBrains Mono,monospace}.preview-input{color:#ce9178;background:rgba(206,145,120,.15);padding:2px 6px;border-radius:3px;font-weight:600}.preview-output{color:#9cdcfe;background:rgba(156,220,254,.1);padding:2px 6px;border-radius:3px;font-weight:600}.chapter-3{padding:20px;max-width:1600px;margin:0 auto}.chapter-badge-small{display:inline-block;background:linear-gradient(135deg,#9c27b0 0%,#7b1fa2 100%);color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.reset-btn-compact:hover{border-color:#9c27b0;color:#9c27b0;background:rgba(156,39,176,.1)}.progress-fill-thin{height:100%;background:linear-gradient(90deg,#9c27b0,#ba68c8);transition:width .3s ease}.code-label{font-size:13px;font-weight:600;color:#9c27b0;margin-bottom:4px}.code-highlight-info{background:rgba(156,39,176,.15);border-bottom:2px solid #9c27b0}.code-highlight-info:hover{background:rgba(156,39,176,.25)}.code-tooltip{position:fixed;background:#2a2a2a;border:2px solid #9c27b0;border-radius:8px;padding:10px 14px;color:#fff;font-size:13px;line-height:1.5;max-width:300px;z-index:1000;pointer-events:none;box-shadow:0 4px 16px #0009;animation:tooltipFadeIn .15s ease}.option-compact.selected{border-color:#9c27b0;background:rgba(156,39,176,.1)}.option-compact input[type=radio]{width:16px;height:16px;cursor:pointer;accent-color:#9c27b0;flex-shrink:0}.option-id{font-size:15px;font-weight:600;color:#9c27b0;min-width:22px;flex-shrink:0}.submit-btn{width:100%;padding:12px;background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:auto}.submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#7b1fa2,#6a1b9a);transform:translateY(-1px);box-shadow:0 4px 14px #9c27b066}.correct-answer-note{padding:10px 12px;background:rgba(255,255,255,.05);border-radius:6px;font-size:13px;color:#ccc;border-left:3px solid #9c27b0}.highlight-ref.info{background:rgba(156,39,176,.2);color:#ba68c8}.key-insight-box{padding:14px 16px;background:rgba(156,39,176,.1);border-left:4px solid #9c27b0;border-radius:6px;font-size:14px;line-height:1.6;color:#ddd}.key-insight-box strong{color:#ba68c8;font-weight:600}.mini-demo{display:flex;flex-direction:column;gap:8px;padding:12px;background:rgba(156,39,176,.05);border:1px solid rgba(156,39,176,.2);border-radius:8px}.mini-info{color:#ba68c8;font-family:JetBrains Mono,monospace;font-weight:600}.mini-ne{font-size:18px;font-weight:700;color:#9c27b0;margin:0 4px}.mini-plus{color:#9c27b0;font-weight:700;font-size:14px}.mini-arrow{color:#9c27b0;font-weight:700;font-size:14px;margin:0 4px}.nav-btn-compact:hover:not(:disabled){background:#333;border-color:#9c27b0;color:#ba68c8}@media (max-width: 768px){.chapter-3{padding:16px}.chapter-header-compact h1{font-size:22px}.split-comparison,.comparison-grid,.comparison-grid-full{grid-template-columns:1fr}.quiz-nav-compact{flex-direction:column;gap:10px}.nav-btn-compact{width:100%}}.chapter-4{padding:40px;max-width:1400px;margin:0 auto}.chapter-header{text-align:center;margin-bottom:40px}.header-title-row{display:flex;align-items:center;justify-content:center;gap:15px}.chapter-badge{display:inline-block;background:linear-gradient(135deg,#2196F3 0%,#1976D2 100%);color:#fff;padding:8px 20px;border-radius:20px;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1px;flex-shrink:0}.chapter-header h1{font-size:40px;margin:0;color:#fff}.chapter-intro{font-size:20px;color:#aaa;max-width:700px;margin:0 auto;line-height:1.6}.concept-section{margin:40px 0;padding:30px;background:#1a1a1a;border-radius:16px;border:1px solid #2a2a2a}.concept-section h2{font-size:32px;color:#fff;margin-bottom:25px;display:flex;align-items:center;gap:12px}.section-intro{margin-bottom:30px;font-size:18px;color:#ccc;line-height:1.6}.progressive-builder.dashboard-layout{display:grid;grid-template-columns:320px 1fr;gap:25px;max-width:1200px;margin:0 auto;min-height:600px;align-items:start}.checklist-panel{background:#0a0a0a;border:2px solid #2a2a2a;border-radius:12px;padding:16px;position:sticky;top:20px;align-self:start;height:fit-content;max-height:calc(100vh - 40px);overflow-y:auto}.panel-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-title{color:#2196f3;font-size:16px;font-weight:600;margin:0;text-transform:uppercase;letter-spacing:1px}.panel-reset-btn{background:transparent;border:1px solid #444;color:#888;padding:4px 8px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.panel-reset-btn:hover{border-color:#f44336;color:#f44336;background:rgba(244,67,54,.1)}.checklist-step{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #222}.checklist-step:last-child{border-bottom:none}.checklist-step.disabled{opacity:.4;pointer-events:none}.checklist-step.checked{opacity:1}.step-label{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.step-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#2196F3}.step-label input[type=checkbox]:disabled{cursor:not-allowed}.label-text{color:#fff;font-size:14px;font-weight:500}.checklist-step.checked .label-text{color:#2196f3}.compact-inputs{margin-top:8px;padding-left:28px;display:flex;flex-direction:column;gap:6px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.compact-input{background:#1a1a1a;border:1px solid #333;color:#fff;padding:8px 10px;border-radius:6px;font-size:13px;font-family:JetBrains Mono,monospace;transition:all .2s ease;width:100%}.compact-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px #2196f326}.compact-input.error{border-color:#f44336}.compact-input::placeholder{color:#555;font-size:12px}.compact-error{font-size:11px;padding:4px 8px;border-radius:4px;font-weight:500}.compact-error.error{background:rgba(244,67,54,.15);color:#f44336;border:1px solid rgba(244,67,54,.3)}.compact-error.warning{background:rgba(255,193,7,.15);color:#ffc107;border:1px solid rgba(255,193,7,.3)}.compact-error.success{background:rgba(76,175,80,.15);color:#4caf50;border:1px solid rgba(76,175,80,.3)}.checklist-preview{margin-top:20px;padding-top:20px;border-top:1px solid #333}.compact-preview-btn{width:100%;padding:12px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;border:none}.compact-preview-btn.ready{background:linear-gradient(135deg,#2196F3,#1976D2);color:#fff;box-shadow:0 3px 10px #2196f34d}.compact-preview-btn.ready:hover{transform:translateY(-2px);box-shadow:0 5px 15px #2196f366}.compact-preview-btn.locked{background:#2a2a2a;color:#666;border:2px dashed #444;cursor:not-allowed}.progressive-code-display{background:#0a0a0a;border-radius:12px;border:2px solid #2a2a2a;padding:25px}.progressive-code-display h4{color:#fff;font-size:18px;margin:0 0 20px;padding-bottom:15px;border-bottom:2px solid #2a2a2a}.code-section{margin-bottom:20px;border-radius:8px;overflow:hidden;border:2px solid #2a2a2a}.section-label{background:#1a1a1a;padding:10px 15px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #2a2a2a}.html-section .section-label{color:#9cdcfe}.js-section .section-label{color:#dcdcaa}.code-content{background:#1e1e1e;padding:20px;overflow-x:auto}.code-content pre{margin:0;font-family:JetBrains Mono,monospace;font-size:14px;line-height:1.8}.code-content code{color:#d4d4d4}.tag{color:#4ec9b0}.attribute{color:#9cdcfe}.string{color:#ce9178}.content{color:#d4d4d4}.func-call{color:#dcdcaa}.keyword{color:#c586c0}.func-name{color:#dcdcaa}.punctuation{color:#d4d4d4}.method{color:#dcdcaa}.variable-name,.variable-usage{color:#9cdcfe}.keyword-if{color:#569cd6;font-weight:600}.keyword-elseif{color:#c586c0;font-weight:600}.keyword-else{color:#ce9178;font-weight:600}.comparison-operator{color:#d7ba7d;font-weight:700;padding:0 4px;background:rgba(215,186,125,.1);border-radius:3px}.syntax-hoverable{cursor:help;position:relative;padding:2px 4px;border-radius:3px;transition:background .2s ease}.syntax-hoverable:hover{background:rgba(255,255,255,.1)}.match{background:rgba(76,175,80,.2);box-shadow:0 0 15px #4caf5066;animation:matchPulse 1s ease}.mismatch{background:rgba(244,67,54,.2);box-shadow:0 0 15px #f4433666;animation:mismatchShake .5s ease}@keyframes matchPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes mismatchShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.incomplete-logic{background:rgba(255,193,7,.15);box-shadow:0 0 12px #ffc10766;animation:warningPulse 2s ease-in-out infinite;padding:4px 8px;margin:-4px -8px;border-radius:6px;display:inline-block;cursor:help}@keyframes warningPulse{0%,to{opacity:1;box-shadow:0 0 12px #ffc10766}50%{opacity:.8;box-shadow:0 0 20px #ffc10799}}.complete-logic{background:rgba(76,175,80,.1);box-shadow:0 0 12px #4caf504d;padding:4px 8px;margin:-4px -8px;border-radius:6px;display:inline-block;transition:all .3s ease}.connection-indicator{text-align:center;padding:10px 0;margin:15px 0}.connection-indicator svg{display:block;margin:0 auto}.connection-label{font-size:14px;font-weight:600;margin-top:8px}.connection-label.match{color:#4caf50}.connection-label.mismatch{color:#f44336}.syntax-tooltip{position:fixed;bottom:30px;right:30px;background:#1a1a1a;border:2px solid #2196F3;border-radius:8px;padding:15px 20px;max-width:350px;box-shadow:0 8px 20px #00000080;z-index:1000;animation:tooltipSlide .2s ease}@keyframes tooltipSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tooltip-name{color:#2196f3;font-weight:700;font-size:16px;margin-bottom:8px}.tooltip-desc{color:#ccc;font-size:14px;line-height:1.5}.preview-section{margin-top:30px;padding:25px;background:#0a0a0a;border:2px solid #2a2a2a;border-radius:12px}.preview-section h4{color:#fff;font-size:16px;margin:0 0 20px;padding-bottom:15px;border-bottom:2px solid #2a2a2a}.preview-paths{display:flex;flex-direction:column;gap:15px}.preview-path{padding:15px 20px;border-radius:8px;border-left:4px solid;background:rgba(255,255,255,.03);transition:all .2s ease}.preview-path:hover{transform:translate(5px);background:rgba(255,255,255,.06)}.if-path{border-left-color:#569cd6;background:rgba(86,156,214,.05)}.elseif-path{border-left-color:#c586c0;background:rgba(197,134,192,.05)}.else-path{border-left-color:#ce9178;background:rgba(206,145,120,.05)}.path-label{font-size:14px;color:#ccc;margin-bottom:8px;font-family:JetBrains Mono,monospace}.preview-input{color:#ce9178;font-weight:600;background:rgba(206,145,120,.15);padding:2px 8px;border-radius:4px}.path-result{font-size:14px;color:#fff;font-family:JetBrains Mono,monospace;padding-left:20px}@media (max-width: 1024px){.progressive-builder.dashboard-layout{grid-template-columns:1fr;gap:20px}.checklist-panel{position:relative;top:0;max-height:none}.syntax-tooltip{position:fixed;bottom:20px;right:20px;left:20px;max-width:none}}@media (max-width: 768px){.chapter-4{padding:20px}.chapter-header h1{font-size:28px}.concept-section{padding:20px}.code-content{font-size:12px}.preview-path{padding:12px 15px}}.chapter-5{padding:20px;max-width:1600px;margin:0 auto}.chapter-header-compact{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.header-left{display:flex;align-items:center;gap:10px}.chapter-badge-small{display:inline-block;background:linear-gradient(135deg,#2196F3 0%,#1976D2 100%);color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.chapter-header-compact h1{font-size:26px;margin:0;color:#fff}.reset-btn-compact{padding:6px 14px;background:transparent;border:1px solid #444;color:#888;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s ease}.reset-btn-compact:hover{border-color:#2196f3;color:#2196f3;background:rgba(33,150,243,.1)}.quiz-progress-compact{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:8px 14px;background:#1a1a1a;border-radius:8px;border:1px solid #2a2a2a}.progress-label{font-size:14px;color:#ccc;white-space:nowrap;min-width:100px}.progress-bar-thin{flex:1;height:5px;background:#2a2a2a;border-radius:3px;overflow:hidden}.progress-fill-thin{height:100%;background:linear-gradient(90deg,#2196F3,#64B5F6);transition:width .3s ease}.quiz-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.code-panel{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:20px}.code-label{font-size:13px;font-weight:600;color:#2196f3;margin-bottom:4px}.code-display{font-family:JetBrains Mono,Menlo,Monaco,Courier New,monospace;font-size:13px;background:#0f0f0f;padding:14px;border-radius:8px;overflow-x:auto;line-height:1.7;color:#d4d4d4;margin:0}.code-line{min-height:1.7em}.syntax-tag{color:#569cd6;font-weight:500}.syntax-tag-bracket{color:gray}.syntax-attr-name{color:#9cdcfe}.syntax-keyword{color:#c586c0;font-weight:500}.syntax-string{color:#ce9178}.syntax-function{color:#dcdcaa;font-weight:500}.syntax-number{color:#b5cea8}.syntax-operator,.syntax-punctuation{color:#d4d4d4}.syntax-comment{color:#6a9955;font-style:italic}.syntax-plain{color:#d4d4d4}.code-highlight{padding:2px 4px;border-radius:3px;cursor:help;transition:all .2s ease;position:relative}.code-highlight-error{background:rgba(255,82,82,.15);border-bottom:2px solid #ff5252}.code-highlight-error:hover{background:rgba(255,82,82,.25)}.code-highlight-success{background:rgba(76,175,80,.15);border-bottom:2px solid #4CAF50}.code-highlight-success:hover{background:rgba(76,175,80,.25)}.code-highlight-info{background:rgba(33,150,243,.15);border-bottom:2px solid #2196F3}.code-highlight-info:hover{background:rgba(33,150,243,.25)}.code-tooltip{position:fixed;background:#2a2a2a;border:2px solid #2196F3;border-radius:8px;padding:10px 14px;color:#fff;font-size:13px;line-height:1.5;max-width:300px;z-index:1000;pointer-events:none;box-shadow:0 4px 16px #0009;animation:tooltipFadeIn .15s ease}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.question-panel{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:16px}.question-title{font-size:18px;color:#fff;margin:0;line-height:1.4}.options-compact{display:flex;flex-direction:column;gap:8px}.option-compact{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#0f0f0f;border:2px solid #2a2a2a;border-radius:8px;cursor:pointer;transition:all .2s ease}.option-compact:hover:not(.disabled){border-color:#444;background:#1a1a1a}.option-compact.selected{border-color:#2196f3;background:rgba(33,150,243,.1)}.option-compact input[type=radio]{width:16px;height:16px;cursor:pointer;accent-color:#2196F3;flex-shrink:0}.option-id{font-size:15px;font-weight:600;color:#2196f3;min-width:22px;flex-shrink:0}.option-text-compact{font-size:14px;color:#ccc;line-height:1.4}.submit-btn{width:100%;padding:12px;background:linear-gradient(135deg,#2196F3,#1976D2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:auto}.submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#1976D2,#1565C0);transform:translateY(-1px);box-shadow:0 4px 14px #2196f366}.submit-btn:disabled{background:#2a2a2a;color:#666;cursor:not-allowed}.explanation-panel{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:16px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feedback-badge{padding:10px 14px;border-radius:8px;font-size:16px;font-weight:600;text-align:center}.feedback-badge.correct{background:rgba(76,175,80,.15);color:#4caf50;border:2px solid rgba(76,175,80,.3)}.feedback-badge.incorrect{background:rgba(255,152,0,.15);color:#ff9800;border:2px solid rgba(255,152,0,.3)}.correct-answer-note{padding:10px 12px;background:rgba(255,255,255,.05);border-radius:6px;font-size:13px;color:#ccc;border-left:3px solid #2196F3}.correct-answer-note strong{color:#fff}.explanation-points{display:flex;flex-direction:column;gap:8px}.explanation-points p{margin:0;color:#ccc;font-size:14px;line-height:1.6}.highlight-ref{padding:2px 6px;border-radius:3px;font-weight:600;font-size:13px;font-family:JetBrains Mono,monospace}.highlight-ref.error{background:rgba(255,82,82,.2);color:#ff8080}.highlight-ref.success{background:rgba(76,175,80,.2);color:#81c784}.highlight-ref.info{background:rgba(33,150,243,.2);color:#64b5f6}.demo-wrapper{margin-top:8px}.key-insight-box{padding:14px 16px;background:rgba(33,150,243,.1);border-left:4px solid #2196F3;border-radius:6px;font-size:14px;line-height:1.6;color:#ddd}.key-insight-box strong{color:#64b5f6;font-weight:600}.explanation-panel-compact{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:12px;animation:fadeIn .3s ease;min-height:120px}.explanation-text{font-size:14px;line-height:1.6;color:#e0e0e0;margin:0 0 8px;padding:0;font-weight:400;text-align:left}.corrected-code-section{margin:12px 0}.corrected-code-label{font-size:13px;font-weight:600;color:#4caf50;margin-bottom:8px;display:flex;align-items:center;gap:6px}.corrected-code-section .code-display{background:rgba(76,175,80,.05);border:1px solid rgba(76,175,80,.2);border-radius:8px;padding:12px;font-size:12px;max-height:250px;overflow-y:auto}.mini-demo{display:flex;flex-direction:column;gap:8px;padding:12px;background:rgba(33,150,243,.05);border:1px solid rgba(33,150,243,.2);border-radius:8px}.mini-comparison{display:flex;align-items:center;gap:10px;font-size:14px;flex-wrap:wrap;justify-content:center}.mini-comparison>div{font-size:13px;color:#ccc}.mini-error{color:#ff8080;font-family:JetBrains Mono,monospace;font-weight:600}.mini-info{color:#64b5f6;font-family:JetBrains Mono,monospace;font-weight:600}.mini-success{color:#81c784;font-family:JetBrains Mono,monospace;font-weight:600}.mini-ne{font-size:18px;font-weight:700;color:#2196f3;margin:0 4px}.mini-code{font-family:JetBrains Mono,monospace;background:rgba(255,255,255,.05);padding:2px 6px;border-radius:3px;color:#d4d4d4}.mini-status-red,.mini-status-green{font-size:16px}.mini-hint{font-size:12px;color:#999;text-align:center;font-style:italic}.mini-hint-inline{font-size:11px;color:#999;font-style:italic}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mini-grid-item{padding:8px;border-radius:6px;text-align:center;font-size:13px}.mini-grid-item.mini-error{background:rgba(255,82,82,.1);border:1px solid rgba(255,82,82,.3)}.mini-grid-item.mini-success{background:rgba(76,175,80,.1);border:1px solid rgba(76,175,80,.3)}.mini-alert-box{display:flex;justify-content:center}.mini-alert-content{background:linear-gradient(135deg,#f5f5f5 0%,#e0e0e0 100%);border:2px solid #999;border-radius:6px;padding:12px;box-shadow:0 4px 12px #0000004d;display:flex;flex-direction:column;gap:8px;align-items:center}.mini-alert-text{color:#333;font-size:13px;font-weight:500}.mini-alert-btn{background:#007bff;color:#fff;border:none;padding:4px 12px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer}.mini-line{font-size:12px;color:#ccc;margin:2px 0}.mini-concat{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center;font-size:13px}.mini-string{color:#ce9178;font-family:JetBrains Mono,monospace;background:rgba(206,145,120,.1);padding:3px 6px;border-radius:3px}.mini-var{color:#9cdcfe;font-family:JetBrains Mono,monospace;background:rgba(156,220,254,.1);padding:3px 6px;border-radius:3px}.mini-plus{color:#2196f3;font-weight:700;font-size:14px}.mini-arrow{color:#2196f3;font-weight:700;font-size:14px;margin:0 4px}.mini-result{color:#4caf50;font-family:JetBrains Mono,monospace;background:rgba(76,175,80,.1);padding:3px 8px;border-radius:3px;font-weight:600}.quiz-nav-compact{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#1a1a1a;border-radius:8px;border:1px solid #2a2a2a}.nav-btn-compact{padding:8px 18px;background:#2a2a2a;color:#ccc;border:1px solid #444;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.nav-btn-compact:hover:not(:disabled){background:#333;border-color:#2196f3;color:#64b5f6}.nav-btn-compact:disabled{background:#1a1a1a;color:#555;cursor:not-allowed;border-color:#2a2a2a}.complete-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(76,175,80,.1);border:2px solid rgba(76,175,80,.3);border-radius:8px;color:#4caf50;font-size:14px;font-weight:600}@media (max-width: 900px){.quiz-layout{grid-template-columns:1fr}.code-panel{order:1}.question-panel,.explanation-panel{order:2}}@media (max-width: 768px){.chapter-5{padding:16px}.chapter-header-compact h1{font-size:22px}.split-comparison,.comparison-grid,.comparison-grid-full{grid-template-columns:1fr}.quiz-nav-compact{flex-direction:column;gap:10px}.nav-btn-compact{width:100%}}.app{display:flex;min-height:100vh;background:#0a0a0a}.main-content{flex:1;margin-left:280px;padding:40px;max-width:100%;overflow-y:auto;transition:margin-left .3s ease}.main-content.sidebar-collapsed{margin-left:60px}.chapter-container{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.app{flex-direction:column}.main-content{margin-left:0;padding:20px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#0a0a0a;color:#fff;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:JetBrains Mono,Courier New,monospace}button{cursor:pointer;font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#1a1a1a}::-webkit-scrollbar-thumb{background:#333;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#444}
