:root{--navy: #1f3a5f;--navy-700: #16293f;--accent: #2e86c1;--accent-600: #2575a8;--green: #1e8a4c;--amber: #b9770e;--ink: #222a33;--grey: #5a6573;--line: #e3e8ee;--bg: #ffffff;--bg-soft: #f4f7fa;--code-bg: #f2f4f7;--card-bg: #ffffff;--heading: var(--navy);--radius: 12px;--maxw: 1120px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "Cascadia Code", "Consolas", "SFMono-Regular", Menlo, monospace}:root[data-theme=dark]{--navy: #12243b;--navy-700: #0c1a2c;--accent: #2e86c1;--accent-600: #74b8ea;--ink: #e6edf3;--grey: #9fb0c0;--line: #283442;--bg: #0d1117;--bg-soft: #131b24;--code-bg: #11181f;--card-bg: #131b24;--heading: #eaf2fb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6}a{color:var(--accent-600);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.site-header{background:var(--navy);border-bottom:4px solid var(--accent);color:#fff}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{color:#fff;font-weight:800;font-size:1.15rem;letter-spacing:.2px}.brand:hover{text-decoration:none;opacity:.9}.nav a{color:#cfe2f3;margin-left:22px;font-weight:600;font-size:.95rem}.nav a:hover{color:#fff;text-decoration:none}.theme-toggle{background:transparent;border:0;color:#cfe2f3;cursor:pointer;font-size:1.15rem;margin-left:22px;line-height:1;padding:4px}.theme-toggle:hover{color:#fff}.auth-area a{margin-left:16px}.auth-area a:first-child{font-weight:700}.hero{background:linear-gradient(160deg,var(--navy),var(--navy-700));color:#fff;padding:64px 0}.hero h1{font-size:2.6rem;margin:0 0 12px;line-height:1.15}.hero p{font-size:1.2rem;color:#cfe2f3;margin:0 0 24px;max-width:640px}.btn{display:inline-block;background:var(--accent);color:#fff;font-weight:700;padding:12px 22px;border-radius:10px;border:0;cursor:pointer}.btn:hover{background:var(--accent-600);text-decoration:none}.btn.secondary{background:transparent;border:2px solid #cfe2f3;color:#fff}.grid{display:grid;gap:20px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}section.block{padding:56px 0}section.block.soft{background:var(--bg-soft)}h2.section-title{font-size:1.9rem;color:var(--heading);margin:0 0 8px}.section-sub{color:var(--grey);margin:0 0 28px}.search-input{width:100%;max-width:560px;padding:12px 16px;font:inherit;border:1px solid var(--line);border-radius:10px;background:var(--card-bg);color:var(--ink)}.search-input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.search-results{margin-top:20px}.search-results .topic-list li .lz{margin-left:8px;margin-right:0;font-size:.82rem}.lesson-progress{margin:18px 0 26px}.done-badge{color:var(--green);font-weight:700;margin-right:10px}.course-progress{display:inline-block;margin:8px 0 0;font-weight:700;color:var(--accent-600)}.topic-list li.lesson-done>a:after{content:" ✓";color:var(--green);font-weight:700}.card{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 1px 2px #14283c0a}.card .badge{display:inline-block;background:var(--accent);color:#fff;font-weight:700;border-radius:999px;padding:2px 12px;font-size:.85rem}.card h3{margin:12px 0 6px;color:var(--heading);font-size:1.25rem}.card .theme{color:var(--grey);margin:0 0 14px}.topic-list{list-style:none;padding:0;margin:0}.topic-list li{padding:7px 0;border-top:1px solid var(--line);font-size:.96rem}.topic-list li .lz{color:var(--grey);font-variant-numeric:tabular-nums;margin-right:8px}.topic-list li.has-video a:after{content:" ▶";color:var(--accent);font-size:.8em}.topic-list li.todo{color:var(--grey)}.lesson{padding:40px 0 72px}.breadcrumb{color:var(--grey);font-size:.9rem;margin-bottom:10px}.lesson h1{color:var(--heading);font-size:2.1rem;margin:4px 0 6px}.lesson .summary{color:var(--grey);font-size:1.1rem;margin:0 0 22px}.lesson-body{font-size:1.05rem}.lesson-body h2{color:var(--heading);margin-top:34px}.lesson-body h3{color:var(--accent-600)}.lesson-body pre{background:var(--code-bg);padding:16px 18px;border-radius:10px;overflow-x:auto;border-left:5px solid var(--accent);font-size:.92rem}.lesson-body code{font-family:var(--mono)}.lesson-body :not(pre)>code{background:var(--code-bg);padding:1px 6px;border-radius:5px}.objectives{background:var(--bg-soft);border-radius:var(--radius);padding:18px 24px;margin:0 0 26px}.objectives h3{margin:0 0 8px;color:var(--heading)}.video-wrap{margin:0 0 28px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#000}.video-wrap video{display:block;width:100%;height:auto}.video-missing{background:var(--bg-soft);border:1px dashed var(--line);border-radius:var(--radius);padding:28px;text-align:center;color:var(--grey);margin:0 0 28px}.quiz{border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin:36px 0;background:var(--card-bg)}.quiz h2{margin:0 0 6px;color:var(--heading)}.quiz .quiz-sub{color:var(--grey);margin:0 0 18px}.q{padding:16px 0;border-top:1px solid var(--line)}.q .qtext{font-weight:700;margin-bottom:10px}.options{display:grid;gap:8px}.opt{text-align:left;border:1px solid var(--line);background:var(--card-bg);border-radius:9px;padding:10px 14px;cursor:pointer;font:inherit;color:var(--ink);transition:.12s}.opt:hover{border-color:var(--accent)}.opt.correct{border-color:var(--green);background:#1e8a4c29}.opt.wrong{border-color:#d9534f;background:#d9534f29}.opt[disabled]{cursor:default}.reveal-btn{margin-top:8px}.explain{margin-top:10px;padding:10px 14px;border-left:4px solid var(--green);background:#1e8a4c1f;border-radius:6px;color:var(--ink);font-size:.95rem;display:none}.explain.show{display:block}.short-answer .explain{border-left-color:var(--accent);background:#2e86c11f}.resources ul{padding-left:18px}.callout{border-left:5px solid var(--amber);background:#b9770e1f;padding:12px 16px;border-radius:8px;margin:18px 0}.lesson-nav{display:flex;justify-content:space-between;gap:12px;margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}.site-footer{background:var(--navy);color:#cfe2f3;padding:30px 0;margin-top:40px;font-size:.9rem}.site-footer a{color:#fff}
