@font-face{font-family:system-fallback;src:local('Arial')}
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;--bg:#fff;--side:#fafafa;--text:#202124;--muted:#6d7177;--border:#e9eaec;--hover:#f0f1f3;--active:#e9ebee;--faint:#92969c;--code:#f6f7f9;--accent:#167a8c;--shadow:0 12px 40px #151a2020}
:root[data-theme=dark]{color-scheme:dark;--bg:#111111;--side:#121212;--text:#ececec;--muted:#a1a1a5;--border:#2a2a2c;--hover:#1c1c1e;--active:#262628;--faint:#79797e;--code:#1a1a1c;--accent:#80d4df;--shadow:0 12px 40px #0008}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--bg);color:var(--text);font-size:16px;line-height:1.65}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button,a,summary{touch-action:manipulation}button{color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{cursor:not-allowed}button:disabled:hover{background:transparent}.topbar{height:66px;display:flex;align-items:center;position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--border);padding:0 30px 0 26px;gap:28px}.brand-area{width:232px;display:flex;align-items:center;gap:14px;flex-shrink:0}.brand{font-size:21px;letter-spacing:-.8px;font-weight:700;text-decoration:none;display:flex;align-items:center;gap:5px}.brand-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--text);margin-top:9px}.course-label{font-size:13px;letter-spacing:.02em;color:var(--muted)}.course-label span{color:var(--border);margin:0 12px}.theme-button{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:13px;background:none;border:1px solid var(--border);border-radius:8px;padding:7px 12px;min-height:38px}.theme-button:hover{background:var(--hover)}#theme-icon{font-size:19px;line-height:1}.reading-progress{height:2px;position:fixed;left:280px;right:0;top:65px;z-index:40;pointer-events:none}.reading-progress div{height:100%;background:var(--accent);width:0}.sidebar{width:280px;position:fixed;top:66px;bottom:0;left:0;overflow-y:auto;border-right:1px solid var(--border);background:var(--side);padding:26px 14px 20px;scrollbar-width:thin;scrollbar-color:var(--border) transparent;z-index:25}.sidebar-heading{padding:0 12px 23px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px}.sidebar-heading span{font-family:monospace;font-size:11px;letter-spacing:1.2px;border:1px solid var(--border);padding:1px 5px;border-radius:4px}.module{margin-bottom:12px}.module summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;font-size:14px;font-weight:550;padding:6px 7px}.module summary::-webkit-details-marker{display:none}.module summary::before{content:'›';color:var(--muted);font-size:18px;line-height:1;transform:rotate(0);transition:transform .15s}.module[open]>summary::before{transform:rotate(90deg)}.module-list{margin:7px 0 9px 12px;padding-left:10px;border-left:1px solid var(--border)}.lesson-link{position:relative;display:flex;width:100%;gap:9px;align-items:center;background:none;border:0;border-radius:6px;text-align:left;text-decoration:none;padding:7px 9px;font-size:13px;line-height:1.45;margin:2px 0;color:var(--muted);min-height:34px}.lesson-link:not(:disabled):hover{background:var(--hover);color:var(--text)}.lesson-link.active{color:var(--text);background:var(--active);font-weight:550}.lesson-link.active::before{position:absolute;content:'';width:2px;height:17px;left:-12px;background:var(--text);border-radius:2px}.lesson-link:disabled{color:var(--faint)}.lesson-link .lesson-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.lock{width:12px;height:12px;flex-shrink:0;color:var(--faint)}.module-placeholder{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--faint);padding:8px 7px}.module-placeholder::before{content:'›';font-size:18px}.module-placeholder .lock{margin-left:auto;margin-right:8px}.sidebar-note{border-top:1px solid var(--border);margin:20px 10px 0;padding-top:16px;font-size:12px;line-height:1.6;color:var(--faint)}main{margin-left:280px;min-height:calc(100vh - 66px)}.lesson-wrap{max-width:920px;margin:0 auto;padding:35px 56px 70px}.lesson-tools{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-height:72px}.back-button{background:none;border:0;padding:6px 0;color:var(--muted);font-size:14px}.back-button:hover{color:var(--text)}.toc{position:relative;z-index:15;font-size:14px}.toc>summary{cursor:pointer;display:flex;align-items:center;gap:10px;border:1px solid var(--border);padding:7px 12px;border-radius:8px;background:var(--bg);list-style:none}.toc>summary::-webkit-details-marker{display:none}.chevron{font-size:16px;color:var(--muted)}.toc[open] .chevron{transform:rotate(180deg)}.toc nav{position:absolute;right:0;top:48px;padding:12px;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;width:310px;max-height:65vh;overflow:auto}.toc a{display:block;text-decoration:none;color:var(--muted);font-size:14px;line-height:1.5;padding:7px 9px;border-radius:5px}.toc a:hover{color:var(--text);background:var(--hover)}.eyebrow{font-size:13px;color:var(--muted);margin:5px 0 10px;letter-spacing:.015em}.eyebrow span{padding:0 7px;color:var(--faint)}h1{font-size:36px;line-height:1.25;letter-spacing:-1.15px;font-weight:650;margin:0 0 38px;text-wrap:balance}.article{font-size:16px;line-height:1.85}.article>p:first-child{color:var(--muted);font-size:17px;line-height:1.85;margin-top:0}.article p{margin:18px 0}.article h2,.article h3,.article h4{line-height:1.35;letter-spacing:-.45px;margin:42px 0 18px;font-size:23px;font-weight:600;scroll-margin-top:94px}.article h2 strong,.article h3 strong{font-weight:600}.article h4{font-size:20px}.article hr{border:0;border-top:1px solid var(--border);margin:34px 0}.article ul,.article ol{padding-left:25px;margin:18px 0}.article li{padding-left:3px;margin:8px 0}.article li::marker{color:var(--muted)}.article strong{font-weight:600}.article a{color:var(--accent);text-underline-offset:4px;overflow-wrap:anywhere}.article code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.85em;background:var(--hover);padding:3px 5px;border-radius:4px;overflow-wrap:anywhere}.article blockquote{margin:24px 0;border-left:3px solid var(--accent);padding:3px 20px;background:var(--side);color:var(--muted)}.code-block{margin:24px 0;border:1px solid var(--border);background:var(--code);border-radius:9px;overflow:hidden}.code-block figcaption{height:37px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 15px;color:var(--muted);font-family:monospace;font-size:12px}.copy-code{font-family:inherit;font-size:12px;border:0;background:none;color:var(--muted);padding:6px}.copy-code:hover{color:var(--text)}.code-block pre{margin:0;padding:19px 20px;overflow:auto;tab-size:4;font-size:14px;line-height:1.65}.code-block pre code{padding:0;border-radius:0;font-size:inherit;background:none;white-space:pre;overflow-wrap:normal;color:var(--text)}.article img{max-width:100%;height:auto;display:block;margin:28px auto;border:1px solid var(--border);border-radius:10px;background:white}.video{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;margin:15px 0;display:block;background:var(--code)}.answers{margin-top:40px;border:1px solid var(--border);border-radius:10px;background:var(--side);scroll-margin-top:90px}.answers>summary{font-size:16px;font-weight:600;cursor:pointer;padding:18px 22px}.answers-body{padding:0 22px 18px}.answers-body>:first-child{margin-top:8px}.check-box{color:var(--muted);margin-right:8px}.article table{border-collapse:collapse;display:block;max-width:100%;overflow:auto;font-size:14px}.article th,.article td{border:1px solid var(--border);padding:10px;text-align:left}.lesson-footer{display:flex;gap:20px;border-top:1px solid var(--border);margin-top:60px;padding-top:28px;justify-content:space-between}.footer-link{display:flex;flex-direction:column;gap:6px;flex:1;text-decoration:none;padding:13px 16px;border:1px solid var(--border);border-radius:9px;max-width:49%;font-size:14px;line-height:1.5}.footer-link:hover{background:var(--side)}.footer-link span{font-size:12px;color:var(--muted)}.footer-link.next{margin-left:auto;text-align:right}.module-intro{color:var(--muted);margin-top:-16px;margin-bottom:34px}.module-grid{display:grid;gap:9px}.module-card{width:100%;border:1px solid var(--border);background:var(--bg);padding:18px 20px;display:flex;align-items:center;gap:16px;text-decoration:none;border-radius:9px;text-align:left;font-size:16px;line-height:1.5}.module-card:not(:disabled):hover{background:var(--side);border-color:var(--faint)}.module-card:disabled{color:var(--faint);background:var(--side)}.module-card .number{font-size:12px;font-family:monospace;color:var(--muted)}.module-card .lock,.module-card .arrow{margin-left:auto;flex-shrink:0}.module-card .arrow{color:var(--muted)}.toast{position:fixed;bottom:24px;left:calc(50% + 140px);transform:translateX(-50%) translateY(15px);padding:10px 18px;border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);border-radius:9px;opacity:0;pointer-events:none;z-index:70;font-size:14px;transition:.15s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.icon-button{border:0;background:none;font-size:20px;padding:5px}.mobile-menu{display:none}.backdrop{display:none}.skip-link{position:fixed;top:-100px;background:var(--bg);padding:10px;z-index:100}.skip-link:focus{top:4px}
@media(min-width:1500px){.lesson-wrap{max-width:970px;padding-left:80px;padding-right:80px}}
@media(max-width:1100px){.lesson-wrap{padding:28px 36px 55px}h1{font-size:32px}.course-label{display:none}.brand-area{width:auto}}
@media(max-width:760px){.topbar{height:58px;padding:0 18px;gap:12px}.brand{font-size:20px}.brand-area{gap:12px}.mobile-menu{display:block}.theme-button{border:0;padding:5px;min-width:36px;justify-content:center}#theme-label{display:none}#theme-icon{font-size:24px}.sidebar{top:58px;width:280px;transform:translateX(-100%);transition:transform .18s}.sidebar.open{transform:translateX(0)}.backdrop:not([hidden]){display:block;position:fixed;inset:58px 0 0;border:0;background:#0007;z-index:20}main{margin-left:0}.lesson-wrap{padding:22px 22px 42px}.lesson-tools{min-height:68px}.reading-progress{left:0;top:57px}h1{font-size:29px;letter-spacing:-.7px;margin-bottom:28px}.article,.article>p:first-child{font-size:16px}.article h2,.article h3{font-size:22px}.code-block pre{font-size:13px;padding:16px}.toc nav{width:min(310px,calc(100vw - 44px))}.toast{left:50%;max-width:90%;white-space:nowrap}.answers-body{padding:0 14px 14px}.lesson-footer{gap:10px}.footer-link{padding:12px;font-size:13px}.course-label{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
/* Keep frequently used controls readable at every viewport size. */
.lesson-link,.theme-button,.sidebar-heading{font-size:14px}
