*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;margin:0;padding:0}:root{--bg:#fafafa;--surface:#fff;--text:#1a1a1a;--text-light:#666;--text-lighter:#999;--border:#e0e0e0;--accent:#60a5fa;--accent-hover:#3b82f6;--code-bg:#f8f9fa;--code-border:#e5e7eb;--success:#10b981;--error:#ef4444;--warning:#f59e0b;--shadow:#0000000a;--shadow-lg:#00000014}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.7}.skip-link{background:var(--accent);color:#fff;z-index:1000;border-radius:0 0 4px;padding:8px 16px;text-decoration:none;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.error-boundary{text-align:center;max-width:600px;margin:4rem auto;padding:2rem}.error-boundary h2{color:var(--error);margin-bottom:1rem}.error-boundary button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;margin-top:1rem;padding:.75rem 1.5rem;font-size:1rem}.error-boundary button:hover{background:var(--accent-hover)}.error-boundary button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}p,li{line-height:1.75}h1,h2,h3,h4,h5,h6{line-height:1.3}.page-wrapper{flex-direction:column;width:100%;min-height:100vh;display:flex}.container{flex:1 0 auto;width:100%;max-width:1000px;margin:0 auto;padding:3rem 2rem}.container:has(.fixed-back-button){padding-top:4.5rem}header{border-bottom:2px solid var(--border);margin-top:0;margin-bottom:3.5rem;padding-bottom:2.5rem}.header-top{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}header h1{letter-spacing:-.03em;background:linear-gradient(135deg,var(--text)0%,var(--accent)100%);-webkit-text-fill-color:transparent;word-wrap:break-word;overflow-wrap:break-word;-webkit-background-clip:text;background-clip:text;margin-bottom:.75rem;font-size:2.5rem;font-weight:700}.github-link{color:var(--text);border:1px solid var(--border);background:var(--surface);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:Montserrat,sans-serif;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.github-link-text{display:inline-block}.github-link svg{flex-shrink:0;width:20px;height:20px}.github-link:hover{color:var(--accent);border-color:var(--accent);box-shadow:0 2px 6px var(--shadow);background:#60a5fa0d;transform:translateY(-1px)}.rss-link{color:var(--text-light);border:1px solid var(--border);background:var(--surface);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:2.5rem;min-height:2.5rem;padding:.5rem;text-decoration:none;transition:all .2s;display:flex}.rss-link svg{opacity:.7;flex-shrink:0;width:20px;height:20px}.rss-link:hover{color:var(--accent);border-color:var(--accent);box-shadow:0 2px 6px var(--shadow);background:#60a5fa0d;transform:translateY(-1px)}.subtitle{color:var(--text-light);font-size:1.1rem;font-weight:400}.loading-state,.error-state{text-align:center;color:var(--text-light);padding:3rem 2rem}.error-state h2{color:var(--text);margin-bottom:1rem;font-size:1.5rem}.error-state p{color:var(--text-light);margin-bottom:2rem}.back-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.75rem 1.5rem;font-family:Montserrat,sans-serif;font-size:.95rem;font-weight:500;transition:all .2s}.back-button:hover{background:var(--accent-hover);transform:translateY(-1px)}.loading-state{text-align:center;color:var(--text-light);padding:4rem 2rem;font-size:1.1rem}.sources-nav{flex-direction:column;gap:1.5rem;width:100%;margin-top:1rem;display:flex}.lessons-nav{flex-direction:column;gap:2rem;width:100%;margin-top:1rem;display:flex}.source-card-link{color:inherit;width:100%;text-decoration:none;display:block}.source-card{background:var(--surface);border:2px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:1.5rem;width:100%;padding:1.75rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.source-card:hover{border-color:var(--accent);box-shadow:0 8px 24px var(--shadow-lg);transform:translateY(-2px)}.source-card-content{justify-content:space-between;align-items:center;gap:1.5rem;width:100%;display:flex}.source-card-header{flex-direction:column;flex:1;gap:.5rem;display:flex}.source-card h3{letter-spacing:-.01em;color:var(--text);margin:0;font-size:1.5rem;font-weight:600;line-height:1.3}.source-attribution{color:var(--text-light);margin:0;font-size:.95rem}.source-card-footer{flex-shrink:0;align-items:center;display:flex}.source-lesson-count{color:var(--text-light);margin:0;font-size:.95rem}.source-view{margin-top:1.5rem}.source-header{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;gap:2rem;margin-bottom:3.5rem;padding-bottom:2rem;display:flex}.source-header-left{flex-direction:column;flex:1;gap:.75rem;display:flex}.source-header h2{letter-spacing:-.03em;background:linear-gradient(135deg,var(--text)0%,var(--accent)100%);-webkit-text-fill-color:transparent;word-wrap:break-word;overflow-wrap:break-word;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2.5rem;font-weight:700;line-height:1.2}.source-header .source-lesson-count{color:var(--text-light);margin:0;font-size:1rem;font-weight:500}.source-attribution-header{color:var(--accent);white-space:nowrap;background:linear-gradient(135deg,#60a5fa1a 0%,#3b82f61a 100%);border:1px solid #60a5fa33;border-radius:8px;flex-shrink:0;padding:.625rem 1.25rem;font-size:.9rem;font-weight:600;display:inline-block}@media (min-width:1200px){.container{max-width:1000px;padding:4rem 2rem 2rem}.sources-nav{gap:2rem}.source-card{padding:2rem}.source-card h3{font-size:1.65rem}}.lesson-card-link{color:inherit;text-decoration:none;display:block}.lesson-card{background:var(--surface);border:2px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:1.5rem;padding:1.75rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.lesson-card:hover{border-color:var(--accent);box-shadow:0 8px 24px var(--shadow-lg);transform:translateY(-2px)}.lesson-number{color:var(--accent);text-align:center;background:#60a5fa1a;border-radius:8px;min-width:3rem;padding:.5rem;font-size:1rem;font-weight:700}.lesson-card h3{letter-spacing:-.01em;margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.lesson-card p{color:var(--text-light);font-size:.95rem}.lesson-view{animation:.4s fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fixed-back-button{z-index:1000;background:var(--surface);border:1px solid var(--border);width:2.25rem;height:2.25rem;color:var(--text);cursor:pointer;box-shadow:0 1px 3px var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:1;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:border-color .2s,color .2s,background .2s,box-shadow .2s;display:flex;position:fixed;top:1.5rem;left:1.5rem;transform:none}.fixed-back-button svg{width:18px;height:18px;transition:transform .2s}.fixed-back-button:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 2px 6px var(--shadow);background:#60a5fa0d}.fixed-back-button:hover svg{transform:translate(-2px)}.lesson-header{margin-bottom:3rem}.lesson-header h2{letter-spacing:-.02em;color:var(--text);margin-bottom:.75rem;font-size:2.25rem;font-weight:700}.lesson-header .subtitle{color:var(--text-light);margin-bottom:1.5rem;font-size:1.2rem;font-weight:500}.lesson-header .description{color:var(--text-light);font-size:1.05rem;line-height:1.8}.concept-section{background:var(--surface);border:2px solid var(--border);border-radius:12px;margin-bottom:2rem;padding:2rem;transition:all .2s}.concept-section:hover{box-shadow:0 4px 12px var(--shadow)}.concept-section h3{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;font-size:.875rem;font-weight:600}.concept-section p{color:var(--text);margin-bottom:.5rem;font-size:1rem;line-height:1.85}.concept-section ul{margin-top:1rem;padding-left:0;list-style:none}.concept-section li{color:var(--text);padding:.875rem 0 .875rem 2rem;font-size:1rem;line-height:1.75;position:relative}.concept-section li:before{content:"→";color:var(--accent);font-weight:600;position:absolute;left:0}.code-examples{gap:2.5rem;margin-top:3rem;display:grid}.code-example{background:var(--surface);border:2px solid var(--code-border);border-radius:12px;transition:all .2s;overflow:hidden}.code-example:hover{box-shadow:0 8px 24px var(--shadow-lg)}.code-header{background:var(--code-bg);border-bottom:2px solid var(--code-border);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.code-header h4{text-transform:uppercase;letter-spacing:.1em;color:var(--text);font-size:.875rem;font-weight:700}.language-tabs{align-items:center;gap:.5rem;display:flex}.language-tab{border:2px solid var(--border);color:var(--text-light);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;background:0 0;border-radius:6px;padding:.5rem 1rem;font-family:Montserrat,sans-serif;font-size:.875rem;font-weight:600;transition:all .2s}.language-tab:hover{border-color:var(--accent);color:var(--accent);background:#60a5fa0d}.language-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.language-tab.active:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.header-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.reset-button{color:var(--text-light);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1rem;font-family:Montserrat,sans-serif;font-size:.8rem;font-weight:500;transition:all .2s}.reset-button:hover{background:var(--code-bg);border-color:var(--accent);color:var(--accent)}.run-button{background:var(--accent);color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:6px;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .2s}.run-button:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #60a5fa33}.run-button:disabled{background:var(--text-lighter);cursor:not-allowed;transform:none}.action-buttons{align-items:center;gap:.75rem;display:flex}.compile-run-button{background:var(--accent);color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:6px;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .2s}.compile-run-button:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #60a5fa33}.compile-run-button:disabled{background:var(--text-lighter);cursor:not-allowed;transform:none}.compile-button{background:var(--warning);color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:6px;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .2s}.compile-button:hover:not(:disabled){background:#d97706;transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.compile-button:disabled{background:var(--text-lighter);cursor:not-allowed;transform:none}.code-block{-webkit-overflow-scrolling:touch;height:500px;min-height:500px;position:relative;overflow:hidden}.code-block-light{background:var(--code-bg)}.code-block-dark{background:#1e1e1e}.code-content{white-space:pre;tab-size:2;-webkit-overflow-scrolling:touch;word-break:break-word;overflow-wrap:break-word;height:100%;margin:0;padding:1.5rem;font-family:JetBrains Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,monospace;font-size:.9rem;line-height:1.8;overflow:auto}.code-block-light .code-content{background:var(--code-bg);color:var(--text)}.code-block-dark .code-content{color:#d4d4d4;background:#1e1e1e}.code-editor{resize:none;tab-size:2;white-space:pre;-webkit-overflow-scrolling:touch;word-break:break-word;overflow-wrap:break-word;border:none;outline:none;width:100%;height:100%;padding:1.5rem;font-family:JetBrains Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,monospace;font-size:.9rem;line-height:1.8;overflow:auto}.code-block-light .code-editor{background:var(--code-bg);color:var(--text)}.code-block-dark .code-editor{color:#d4d4d4;background:#1e1e1e}.code-block-light .code-editor:focus{box-shadow:inset 0 0 0 2px var(--accent);background:#fff}.code-block-dark .code-editor:focus{box-shadow:inset 0 0 0 2px var(--accent);background:#252526}.code-block-light .code-editor::selection{background:#60a5fa4d}.code-block-dark .code-editor::selection{background:#60a5fa80}.code-block-light .code-editor::placeholder{color:var(--text-lighter);font-style:italic}.code-block-dark .code-editor::placeholder{color:#6a737d;font-style:italic}.output{background:var(--surface);white-space:pre-wrap;word-break:break-word;min-height:4rem;padding:1.25rem 1.5rem;font-family:JetBrains Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,monospace;font-size:.875rem;line-height:1.6}.output-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.output-content{flex:1;min-width:0}.theme-toggle{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;align-self:flex-start;padding:.5rem .75rem;font-size:1.2rem;line-height:1;transition:all .2s}.theme-toggle:hover{background:var(--code-bg);border-color:var(--accent);transform:scale(1.1)}.output.empty{color:var(--text-lighter);font-style:italic}.output.success{color:var(--success);background:#10b9810d}.output.error{color:var(--error);background:#ef44440d}.loading{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;margin-right:.5rem;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.cpp-note{border-left:4px solid var(--warning);color:#92400e;background:#fef3c7;margin-top:0;padding:1.25rem 1.5rem;font-size:.9rem;line-height:1.6}.cpp-note strong{margin-bottom:.5rem;font-weight:600;display:block}.cpp-note code{white-space:pre;background:#0000001a;border-radius:4px;margin-top:.5rem;padding:.25rem .5rem;font-family:JetBrains Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,monospace;font-size:.85rem;display:block}.execution-time{color:var(--text-lighter);margin-top:.5rem;font-size:.75rem;font-style:italic}.app-footer{background:var(--surface);border-top:2px solid var(--border);flex-shrink:0;margin-top:auto;margin-bottom:0;padding:1rem 2rem}.footer-content{text-align:center;max-width:1000px;margin:0 auto}.footer-text{color:var(--text-light);margin:0 0 .5rem;font-size:.85rem;line-height:1.5}.footer-copyright{color:var(--text-lighter);margin:0;font-size:.75rem;line-height:1.5}.footer-sarcasm{color:var(--text);font-style:italic;font-weight:500}.footer-link{color:var(--accent);font-weight:600;text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--accent-hover);text-decoration:underline}@media (max-width:768px){.container{padding:1.5rem 1.25rem}.container:has(.fixed-back-button){padding-top:4.5rem}header{margin-bottom:2rem;padding-bottom:1.5rem}header h1,.source-header h2{font-size:1.75rem;line-height:1.2}.subtitle{font-size:.95rem}.header-top{flex-direction:column;align-items:flex-start;gap:1rem}.github-link{align-self:flex-start;min-height:44px;padding:.625rem 1rem;font-size:.875rem}.sources-nav{gap:1.25rem}.source-card{gap:1rem;padding:1.5rem}.source-card-content{flex-direction:column;align-items:flex-start;gap:.75rem}.source-card h3{font-size:1.3rem}.source-attribution{font-size:.875rem}.source-card-footer{border-top:1px solid var(--border);width:100%;padding-top:.75rem}.lessons-nav{gap:1.5rem;margin-top:.5rem}.source-view{margin-top:1.25rem}.source-header{margin-bottom:2.5rem;padding-bottom:1.5rem}.lesson-card{gap:1rem;min-height:44px;padding:1.25rem}.lesson-number{min-width:2.5rem;padding:.4rem;font-size:.9rem}.lesson-card h3{margin-bottom:.375rem;font-size:1.1rem}.lesson-card p{font-size:.875rem}.fixed-back-button{z-index:1000;width:2.75rem;min-width:44px;height:2.75rem;min-height:44px;top:1rem;left:1rem}.fixed-back-button svg{width:20px;height:20px}.source-header{flex-direction:column;align-items:flex-start;gap:1rem}.source-attribution-header{align-self:flex-start}.lesson-header{margin-bottom:1.5rem;padding-right:0}.lesson-header h2{word-wrap:break-word;overflow-wrap:break-word;margin-bottom:.5rem;font-size:1.5rem;line-height:1.3}.lesson-header .subtitle{margin-bottom:.75rem;font-size:.95rem;line-height:1.5}.lesson-header .description{font-size:.9rem;line-height:1.7}.concept-section{margin-bottom:1.25rem;padding:1.25rem}.concept-section h3{margin-bottom:.75rem;font-size:.75rem;line-height:1.4}.concept-section p{word-wrap:break-word;overflow-wrap:break-word;margin-bottom:.5rem;font-size:.9rem;line-height:1.7}.concept-section ul{margin-top:.75rem}.concept-section li{word-wrap:break-word;overflow-wrap:break-word;padding:.625rem 0 .625rem 1.25rem;font-size:.875rem;line-height:1.6}.code-examples{gap:1.25rem;margin-top:1.5rem}.code-example{border-radius:8px}.code-header{flex-wrap:nowrap;gap:.5rem;padding:.75rem .875rem;overflow:visible}.language-tabs{flex-wrap:nowrap;flex-shrink:1;gap:.25rem;min-width:0}.language-tab{white-space:nowrap;flex-shrink:0;min-height:40px;padding:.5rem .625rem;font-size:.75rem}.header-actions{flex-wrap:nowrap;flex-shrink:0;gap:.375rem;margin-left:auto}.reset-button{white-space:nowrap;min-height:40px;padding:.5rem .75rem;font-size:.75rem}.action-buttons{flex-wrap:nowrap;flex-shrink:0;gap:.375rem;display:flex}.run-button,.compile-button,.compile-run-button{white-space:nowrap;flex:none;min-height:40px;padding:.5rem .75rem;font-size:.75rem}.code-block{height:300px;min-height:300px;max-height:400px}.code-content,.code-editor{padding:1rem;font-size:.8rem;line-height:1.6}.output-header{padding:.875rem 1rem}.output{min-height:3rem;padding:1rem;font-size:.8rem}.output-header{flex-direction:column;align-items:flex-start;gap:.75rem}.output-content{width:100%}.theme-toggle{align-self:flex-end;min-width:44px;min-height:44px;padding:.625rem .875rem;font-size:1.1rem}.app-footer{flex-shrink:0;margin-top:1.5rem;padding:.75rem 1rem}.footer-text{margin-bottom:.25rem;font-size:.75rem;line-height:1.5}.footer-copyright{font-size:.65rem;line-height:1.4}}@media (min-width:769px) and (max-width:1024px){.sources-nav{gap:1.25rem}.source-card{padding:1.75rem}}@media (max-width:480px){.container{padding:1.25rem 1rem}.container:has(.fixed-back-button){padding-top:4rem}header h1,.source-header h2{font-size:1.5rem}.subtitle{font-size:.875rem}.sources-nav{gap:1rem}.source-card{gap:.75rem;padding:1.25rem}.source-card-content{flex-direction:column;gap:.625rem}.source-card h3{font-size:1.2rem}.source-attribution{font-size:.8rem}.source-card-footer{border-top:1px solid var(--border);width:100%;padding-top:.75rem}.source-lesson-count{font-size:.85rem}.lesson-card{flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem}.lesson-number{align-self:flex-start}.lesson-header{margin-bottom:1.25rem}.lesson-header h2{margin-bottom:.5rem;font-size:1.35rem;line-height:1.3}.lesson-header .subtitle{margin-bottom:.625rem;font-size:.875rem}.concept-section{margin-bottom:1.25rem;padding:1rem}.concept-section h3{margin-bottom:.625rem;font-size:.7rem}.concept-section p{margin-bottom:.5rem;font-size:.85rem;line-height:1.65}.concept-section li{padding:.5rem 0 .5rem 1rem;font-size:.85rem;line-height:1.6}.code-header{flex-wrap:nowrap;gap:.375rem;padding:.625rem;overflow:visible}.language-tabs{flex-shrink:1;gap:.2rem;min-width:0}.header-actions{flex-shrink:0;gap:.25rem;margin-left:auto}.language-tab{flex-shrink:0;min-height:38px;padding:.45rem .5rem;font-size:.7rem}.action-buttons{gap:.25rem}.code-block{height:280px;min-height:280px;max-height:350px}.code-content,.code-editor{padding:.875rem;font-size:.75rem;line-height:1.6}.output{min-height:2.5rem;padding:.875rem;font-size:.75rem}.output-header{flex-direction:column;gap:.5rem;padding:.75rem .875rem}.theme-toggle{align-self:flex-end;padding:.5rem .75rem;font-size:1rem}.run-button,.compile-button,.compile-run-button{min-width:auto;min-height:38px;padding:.5rem .625rem;font-size:.7rem}.reset-button{min-height:38px;padding:.5rem .625rem;font-size:.7rem}.fixed-back-button{width:2.5rem;height:2.5rem;top:.75rem;left:.75rem}}@media (max-width:768px) and (orientation:landscape){.code-block{height:300px;min-height:300px}}@media (hover:none) and (pointer:coarse){.source-card:hover{box-shadow:0 4px 12px var(--shadow);transform:none}.source-card:active{box-shadow:0 2px 6px var(--shadow);transform:scale(.98)}.lesson-card:hover{box-shadow:0 4px 12px var(--shadow);transform:none}.lesson-card:active{box-shadow:0 2px 6px var(--shadow);transform:scale(.98)}.run-button:hover:not(:disabled),.compile-button:hover:not(:disabled),.compile-run-button:hover:not(:disabled){transform:none}.run-button:active:not(:disabled),.compile-button:active:not(:disabled),.compile-run-button:active:not(:disabled){transform:scale(.98)}.fixed-back-button:hover{transform:none}.fixed-back-button:active{transform:scale(.95)}}.bookmark-button{border:1px solid var(--border);cursor:pointer;min-width:2.5rem;min-height:2.5rem;color:var(--text-light);background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.bookmark-button svg{width:20px;height:20px}.bookmark-button:hover{background:var(--code-bg);color:var(--text)}.bookmark-button.bookmarked{border-color:var(--accent);color:var(--accent);background:0 0}.bookmark-button.small{min-width:2rem;min-height:2rem;padding:.375rem}.bookmark-button.small svg{width:16px;height:16px}.bookmark-button.large{min-width:3rem;min-height:3rem;padding:.75rem}.bookmark-button.large svg{width:24px;height:24px}.share-button{color:var(--text-light);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;min-width:2.5rem;min-height:2.5rem;padding:.5rem;transition:all .2s;display:flex}.share-button svg{width:20px;height:20px}.share-button:hover{background:var(--code-bg);color:var(--text)}.lesson-actions{align-items:center;gap:.75rem;display:flex}.lesson-header-top{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.bookmarks-section{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin:2rem 0;padding:1.5rem}.bookmarks-section h2{margin-bottom:1rem;font-size:1.5rem}.bookmarks-list{flex-direction:column;gap:.75rem;display:flex}.bookmark-item{background:var(--code-bg);color:var(--text);border:1px solid #0000;border-radius:6px;align-items:center;gap:1rem;padding:1rem;text-decoration:none;transition:all .2s;display:flex}.bookmark-item:hover{border-color:var(--accent);transform:translate(4px)}.bookmark-icon{flex-shrink:0;font-size:1.5rem}.bookmark-content{flex:1}.bookmark-title{margin-bottom:.25rem;font-weight:600}.bookmark-meta{color:var(--text-light);font-size:.85rem}.code-challenge{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin:2rem 0;padding:1.5rem}.challenge-header h3{color:var(--accent);margin-bottom:.5rem}.challenge-header p{color:var(--text-light);margin-bottom:1rem}.challenge-editor{margin:1rem 0}.challenge-code-input{background:var(--code-bg);border:1px solid var(--code-border);width:100%;min-height:200px;color:var(--text);resize:vertical;border-radius:6px;padding:1rem;font-family:JetBrains Mono,monospace;font-size:.9rem}.challenge-actions{flex-wrap:wrap;gap:.75rem;margin:1rem 0;display:flex}.challenge-run-button,.challenge-hint-button,.challenge-solution-button{cursor:pointer;border:none;border-radius:6px;padding:.75rem 1.5rem;font-weight:500;transition:all .2s}.challenge-run-button{background:var(--accent);color:#fff}.challenge-run-button:hover:not(:disabled){background:var(--accent-hover)}.challenge-run-button:disabled{opacity:.5;cursor:not-allowed}.challenge-hint-button,.challenge-solution-button{background:var(--code-bg);color:var(--text);border:1px solid var(--border)}.challenge-hint-button:hover,.challenge-solution-button:hover{background:var(--border)}.challenge-hint,.challenge-solution{background:var(--code-bg);border-left:3px solid var(--accent);border-radius:6px;margin:1rem 0;padding:1rem}.challenge-solution pre{background:var(--bg);border-radius:4px;margin-top:.5rem;padding:.75rem;overflow-x:auto}.challenge-results{background:var(--code-bg);border-radius:6px;margin:1rem 0;padding:1rem}.challenge-results.success{border:2px solid var(--success)}.challenge-results h4{margin-bottom:.75rem}.test-result{border-radius:4px;margin:.5rem 0;padding:.5rem}.test-result.passed{color:var(--success);background:#10b9811a}.test-result.failed{color:var(--error);background:#ef44441a}.challenge-success{border:1px solid var(--success);text-align:center;color:var(--success);background:#10b9811a;border-radius:6px;margin-top:1rem;padding:1rem;font-weight:600}.header-actions{align-items:center;gap:.75rem;display:flex}@media (max-width:768px){.lesson-header-top{flex-direction:column}.lesson-actions{align-self:flex-start}.bookmarks-section,.code-challenge{padding:1rem}.challenge-actions{flex-direction:column}.challenge-run-button,.challenge-hint-button,.challenge-solution-button{width:100%}}@media (max-width:480px){.header-actions{flex-direction:column;width:100%}.github-link,.rss-link{justify-content:center;width:100%}}.code-history-buttons{align-items:center;gap:.5rem;display:flex}.history-button{background:var(--code-bg);border:1px solid var(--border);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;min-width:36px;height:36px;padding:.5rem .75rem;font-size:1.2rem;transition:all .2s;display:flex}.history-button:hover:not(:disabled){background:var(--border);transform:scale(1.05)}.history-button:disabled{opacity:.4;cursor:not-allowed}@media (max-width:768px){.code-history-buttons{gap:.25rem}.history-button{min-width:32px;height:32px;padding:.375rem .5rem;font-size:1rem}}.toast-container{z-index:10000;flex-direction:column;gap:.75rem;max-width:400px;display:flex;position:fixed;top:1rem;right:1rem}.toast{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.75rem;min-width:250px;padding:1rem 1.25rem;animation:.3s slideIn;display:flex;box-shadow:0 4px 12px #00000026}.toast-visible{animation:.3s slideIn}.toast-hidden{animation:.3s slideOut}.toast-success{border-left:4px solid var(--success)}.toast-error{border-left:4px solid var(--error)}.toast-info{border-left:4px solid var(--accent)}.toast-warning{border-left:4px solid var(--warning)}.toast-icon{flex-shrink:0;font-size:1.25rem}.toast-message{color:var(--text);flex:1;font-size:.9rem}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.copy-code-button{border:1px solid var(--border);cursor:pointer;color:var(--text-light);background:0 0;border-radius:4px;justify-content:center;align-items:center;min-width:2rem;min-height:2rem;padding:.5rem;transition:all .2s;display:flex}.copy-code-button svg{width:18px;height:18px}.copy-code-button:hover{background:var(--code-bg);color:var(--text)}.search-bar-container{margin:2rem 0;position:relative}.search-bar{background:var(--surface);border:2px solid var(--border);border-radius:8px;align-items:center;padding:.75rem 1rem;transition:all .2s;display:flex}.search-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #60a5fa1a}.search-icon{color:var(--text-light);margin-right:.75rem;font-size:1.2rem}.search-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.search-input::placeholder{color:var(--text-lighter)}.search-clear{cursor:pointer;color:var(--text-light);background:0 0;border:none;margin-left:.5rem;padding:.25rem;font-size:1.2rem;transition:color .2s}.search-clear:hover{color:var(--text)}.search-results{background:var(--surface);border:1px solid var(--border);z-index:1000;border-radius:8px;max-height:400px;margin-top:.5rem;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.search-result-item{border-bottom:1px solid var(--border);color:var(--text);padding:1rem;text-decoration:none;transition:background .2s;display:block}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--code-bg)}.search-result-title{margin-bottom:.25rem;font-weight:600}.search-result-meta{color:var(--text-light);font-size:.85rem}.search-no-results{text-align:center;color:var(--text-light);padding:1.5rem}.completion-animation-overlay{z-index:10000;background:#000000b3;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.completion-animation{background:var(--surface);text-align:center;border-radius:16px;padding:3rem;animation:.5s scaleIn;box-shadow:0 8px 32px #0000004d}.completion-icon{margin-bottom:1rem;font-size:4rem;animation:.6s bounce}.completion-text{color:var(--accent);margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.completion-subtext{color:var(--text-light);font-size:1rem}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.next-lesson-button{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:6px;justify-content:space-between;align-items:center;gap:.75rem;margin:2rem 0;padding:.875rem 1.25rem;text-decoration:none;transition:all .2s;display:flex}.next-lesson-button:hover{background:var(--code-bg);border-color:var(--accent);color:var(--accent)}.next-lesson-title{color:inherit;font-size:.95rem;font-weight:500}.next-lesson-button svg{color:inherit;flex-shrink:0}.lesson-card{position:relative}.lesson-card-content{flex:1}.code-header-left{flex:1;align-items:center;gap:1rem;display:flex}@media (max-width:768px){.toast-container{max-width:100%;top:.5rem;left:.5rem;right:.5rem}.toast{min-width:auto}.search-bar-container{margin:1.5rem 0}.completion-animation{margin:1rem;padding:2rem}.completion-icon{font-size:3rem}.completion-text{font-size:1.25rem}.next-lesson-button{padding:1.25rem}.code-header-left{flex-direction:column;align-items:flex-start;gap:.75rem}}@media (max-width:480px){.toast{padding:.75rem 1rem;font-size:.85rem}.search-bar{padding:.625rem .875rem}.completion-animation{padding:1.5rem}.completion-icon{font-size:2.5rem}}
