:root{--paper:#f3f7fc;--surface:#fff;--ink:#0d2540;--text:#33465f;--muted:#566b84;--line:#cbd8e6;--accent:#1767db;--accent-soft:#e8f1ff;--grid:#dce7f5;--code-bg:#edf3fb;--code-ink:#253c58;--syntax-string:#236844;--syntax-number:#6556a8;--syntax-name:#165d96;--syntax-deletion:#bc3540;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}html[data-theme=dark]{--paper:#0b1324;--surface:#101d32;--ink:#edf5ff;--text:#d2dfef;--muted:#aabcd3;--line:#2a405c;--accent:#52d9ff;--accent-soft:#15314a;--grid:#213853;--code-bg:#0f2036;--code-ink:#d7e9fb;--syntax-string:#a4e5c8;--syntax-number:#bdaaff;--syntax-name:#81b7fc;--syntax-deletion:#ff9ea4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--paper);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:18px;line-height:1.7}::selection{background:var(--accent-soft);color:var(--ink)}a{color:inherit;text-underline-offset:4px;text-decoration:none}a:hover{color:var(--accent)}button,input,select,textarea{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img,video{max-width:100%;height:auto}svg{flex-shrink:0}h1,h2,h3,h4,h5,h6{color:var(--ink);margin-top:0;line-height:1.4}p{margin-top:0}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.article-toc summary{color:var(--ink);cursor:pointer;font-size:16px;font-weight:600}.article-toc details[open] summary{margin-bottom:12px}.container{width:min(1120px,100% - 96px);margin-inline:auto}.narrow,.content-width{width:min(800px,100% - 48px);margin-inline:auto}.skip-link{z-index:20;color:var(--paper);background:var(--ink);border-radius:4px;padding:10px 16px;position:absolute;top:-70px;left:20px}.skip-link:focus{top:12px}main{outline:none;min-height:55vh}.site-header{border-bottom:1px solid var(--line);background:var(--surface)}.home-page{scroll-padding-top:0}.home-content{outline:none}.home-page .site-header{z-index:10;--ink:#fff;--muted:#e1e6ee;--accent:#52d9ff;--accent-soft:#ffffff1f;--line:#fff3;color:var(--ink);border-bottom-color:var(--line);background:#0b132429;position:absolute;inset:0 0 auto}.header-inner{justify-content:space-between;align-items:center;gap:32px;min-height:82px;display:flex}.wordmark{color:var(--ink);align-items:center;gap:14px;display:inline-flex}.wordmark-symbol{width:46px;height:46px;display:block}.footer-brand span{color:var(--accent)}.wordmark-name{font:650 21px/1.3 var(--mono);letter-spacing:-.5px}.wordmark-caption{font:14px/1.5 var(--sans);letter-spacing:1px;color:var(--muted);margin-top:4px;display:block}.header-navigation,.main-nav,.header-tools{align-items:center;display:flex}.header-navigation{gap:32px}.main-nav{gap:28px;font-size:16px}.main-nav a{white-space:nowrap;padding:8px 0;position:relative}.main-nav a:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .18s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.main-nav a:hover:after,.main-nav a.active:after{transform:scaleX(1)}.main-nav a.active{color:var(--ink);font-weight:600}.header-tools{border-left:1px solid var(--line);gap:6px;padding-left:18px}.icon-button{width:36px;height:36px;color:var(--ink);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--accent-soft);color:var(--accent)}.theme-icon-sun{display:none}html[data-theme=dark] .theme-icon-sun{display:block}html[data-theme=dark] .theme-icon-moon{display:none}.home-intro{border:1px solid var(--line);border-left:3px solid var(--accent);background-color:var(--surface);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:32px 32px;border-radius:6px;margin-top:32px;padding:32px;position:relative;overflow:hidden}.home-intro:before{content:"";background:linear-gradient(90deg, var(--surface) 0%, var(--surface) 55%, transparent);pointer-events:none;position:absolute;inset:0}.home-intro>*{position:relative}.home-intro h1{font:650 clamp(28px, 3vw, 36px)/1.5 var(--sans);text-wrap:balance;margin-bottom:12px}.home-intro p{color:var(--muted);margin-bottom:0;font-size:17px;line-height:1.9}.eyebrow{color:var(--muted);margin-bottom:16px;font-size:15px}.text-link{color:var(--ink);align-items:center;gap:9px;font-size:16px;font-weight:600;display:inline-flex}.text-link:hover{color:var(--accent)}.button,.button-primary{border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:3px;justify-content:center;align-items:center;gap:10px;padding:10px 19px;font-size:16px;display:inline-flex}.button:hover,.button-primary:hover{background:var(--accent);color:var(--surface);border-color:var(--accent)}.button-secondary{color:var(--ink);background:0 0}.page-section{padding-block:48px}.home-section{padding-top:32px}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;margin-bottom:20px;display:flex}.section-heading h2{font:650 25px/1.5 var(--sans);margin:0}.section-heading h2:before{content:"";background:var(--accent);vertical-align:-.02em;width:3px;height:.8em;margin-right:12px;display:inline-block}.section-heading p{color:var(--muted);margin:0;font-size:15px}.section-heading a{color:var(--muted);font-size:15px}.section-heading a:hover{color:var(--accent)}.section-label{color:var(--muted);font-size:14px}.post-grid,.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.post-list{grid-template-columns:1fr;display:grid}.post-card{border-top:1px solid var(--line);min-width:0;padding:28px 0 26px}.post-grid .post-card,.grid .post-card{background:var(--surface);border:1px solid var(--line);border-radius:4px;flex-direction:column;padding:27px 28px 24px;display:flex}.post-card-meta{color:var(--muted);letter-spacing:.3px;flex-wrap:wrap;gap:6px 10px;font-size:14px;display:flex}.post-card-meta time{white-space:nowrap;font-family:var(--mono)}.post-card-topic{color:var(--accent)}.post-card-title{overflow-wrap:anywhere;margin:14px 0 12px;font-size:24px;font-weight:600;line-height:1.6}.post-card-title a{transition:color .16s}.post-card-description{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 20px;font-size:17px;line-height:1.9;display:-webkit-box;overflow:hidden}.post-card-bottom{justify-content:space-between;align-items:center;gap:16px;margin-top:auto;font-size:14px;display:flex}.post-card-reading{color:var(--muted)}.post-card-read{color:var(--ink);white-space:nowrap;font-weight:600}.post-list .post-card{grid-template-columns:1fr auto;column-gap:36px;display:grid}.post-list .post-card-meta,.post-list .post-card-title,.post-list .post-card-description{grid-column:1}.post-list .post-card-bottom{flex-direction:column;grid-area:1/2/span 3;justify-content:center;align-items:flex-end;margin-top:0}.post-list .post-card-title{margin-block:10px 8px;font-size:23px}.post-list .post-card-description{-webkit-line-clamp:2;margin-bottom:0}.series-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.series-card{background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--accent);border-radius:6px;flex-direction:column;gap:12px;min-width:0;padding:25px;display:flex}.series-card:hover{border-color:var(--accent);background:var(--accent-soft)}.series-card h2,.series-card h3{margin:0;font-size:22px;line-height:1.6}.series-card p{color:var(--muted);margin:0;font-size:16px;line-height:1.8}.series-card .count,.series-card .series-count{color:var(--accent);font:14px/1.5 var(--mono)}.series-card-meta{color:var(--muted);margin-top:auto;padding-top:4px;font-size:14px}.home-courses{border-block:1px solid var(--line);white-space:nowrap;align-items:baseline;gap:22px;margin-top:28px;padding-block:18px;font-size:16px;display:flex;overflow-x:auto}.home-courses>*{flex-shrink:0}.home-courses-label{color:var(--ink);font-weight:600}.home-courses-all{color:var(--muted);margin-left:auto}.collection-summary{color:var(--muted);flex-wrap:wrap;gap:10px 24px;margin-top:20px;font-size:15px;display:flex}.collection-summary strong{color:var(--ink);font-weight:600}.course-domain-nav{flex-wrap:wrap;gap:8px 20px;margin-top:26px;font-size:15px;display:flex}.course-domain-nav a{color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:4px}.course-domain-nav a:hover{color:var(--accent);border-color:var(--accent)}.course-directory{grid-template-columns:minmax(0,1fr);gap:32px;display:grid}.course-domain{min-width:0}.course-domain>h2,.course-domain>h3{font:650 21px/1.6 var(--sans);margin-bottom:14px}.course-directory-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.course-directory-list li{border-bottom:1px solid var(--line)}.course-directory-link{border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:20px;padding:15px 12px;display:flex}.course-directory-link:hover,.course-directory-link:focus-visible{border-left-color:var(--accent);background:var(--accent-soft)}.course-directory-main{min-width:0}.course-directory-title{overflow-wrap:anywhere;color:var(--ink);font-size:20px;font-weight:600;line-height:1.7;display:block}.course-directory-link:hover .course-directory-title{color:var(--accent)}.course-directory-description{color:var(--muted);margin-top:4px;font-size:16px;line-height:1.8;display:block}.course-directory-meta{color:var(--muted);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:4px 10px;font-size:14px;display:flex}.course-directory-meta>:last-child{color:var(--accent);font-size:18px}.course-header{border-bottom:1px solid var(--line);margin-bottom:36px;padding-bottom:30px}.course-layout{grid-template-columns:minmax(0,1fr);gap:28px;display:grid}.course-outline{min-width:0;max-width:360px;font-size:16px}.course-outline>p{color:var(--ink);margin-bottom:12px;font-weight:600}.course-outline ul{margin:0;padding:0;list-style:none}.course-outline li a{color:var(--muted);justify-content:space-between;gap:18px;padding-block:8px;display:flex}.course-outline li a:hover{color:var(--accent)}.course-outline li a>:last-child{font-family:var(--mono);font-size:14px}.course-chapters{min-width:0}.course-chapter+.course-chapter{margin-top:40px}.course-chapter-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;margin-bottom:14px;display:flex}.course-chapter-heading h2{font:650 23px/1.6 var(--sans);margin:0}.course-chapter-heading>span{color:var(--muted);white-space:nowrap;font-size:14px}.course-note-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.course-note-list li{border-bottom:1px solid var(--line)}.course-note-link{grid-template-columns:32px minmax(0,1fr) auto 16px;align-items:baseline;gap:16px;padding:16px 0;display:grid}.course-note-number{font:14px/1.7 var(--mono);color:var(--muted)}.course-note-title{overflow-wrap:anywhere;color:var(--ink);font-size:20px;line-height:1.8}.course-note-link:hover .course-note-title{color:var(--accent)}.course-note-link:hover{background:var(--accent-soft)}.course-note-reading{color:var(--muted);white-space:nowrap;font-size:14px}.course-note-arrow{color:var(--accent);font-size:16px}.page-header{padding-block:56px 32px}.page-header h1{font:650 clamp(30px, 4vw, 42px)/1.5 var(--sans);margin-bottom:14px}.page-header p{color:var(--muted);max-width:700px;line-height:1.9}.breadcrumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:28px;font-size:15px;display:flex}.breadcrumb a:hover{color:var(--accent)}.article-header{border-bottom:1px solid var(--line);margin-bottom:40px;padding-block:48px 36px}.article-header h1{font:650 clamp(27px, 3.8vw, 40px)/1.6 var(--sans);letter-spacing:-.5px;overflow-wrap:anywhere;text-wrap:balance;margin-bottom:22px}.article-description{color:var(--muted);font-size:18px;line-height:1.9}.article-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:15px;display:flex}.article-meta time{font-family:var(--mono)}.tags{flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;display:flex}.tag,.tags a,.tags span{border:1px solid var(--line);background:var(--code-bg);color:var(--muted);border-radius:4px;padding:3px 9px;font-size:14px}.tag:hover,.tags a:hover{background:var(--accent-soft);color:var(--accent)}.article-layout{grid-template-columns:minmax(0,800px) 220px;align-items:start;gap:56px;display:grid}.article-body{min-width:0}.article-content{overflow-wrap:anywhere;min-width:0;font-size:18px;line-height:1.9}.article-content>:first-child{margin-top:0}.article-content p{margin-bottom:1.5em}.article-content h1,.article-content h2,.article-content h3,.article-content h4{scroll-margin-top:28px}.article-content h1{margin:2em 0 .8em;font-size:30px}.article-content h2{font:650 26px/1.7 var(--sans);border-bottom:1px solid var(--line);margin:2.1em 0 .8em;padding-bottom:9px}.article-content h3{margin:1.8em 0 .7em;font-size:21px}.article-content h4{margin:1.6em 0 .6em;font-size:20px}.article-content h5,.article-content h6{margin-block:1.4em .6em;font-size:18px}.article-content a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent), transparent 65%)}.article-content a:hover{text-decoration-color:var(--accent)}.article-content strong{color:var(--ink);font-weight:650}.article-content ul,.article-content ol{margin:0 0 1.5em;padding-left:1.6em}.article-content li{margin-block:.35em}.article-content li>p,.article-content li>ul,.article-content li>ol{margin-bottom:.7em}.article-content blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text);margin:1.8em 0;padding:17px 23px;font-size:17px}.article-content blockquote>:last-child{margin-bottom:0}.article-content hr{background:var(--line);border:0;height:1px;margin:2.8em 0}.article-content img{border-radius:4px;margin:1.6em auto;display:block}.article-content figure{margin:1.8em 0}.article-content figure img{margin-bottom:.6em}.article-content figcaption{text-align:center;color:var(--muted);font-size:14px;line-height:1.7}.article-content code{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);word-break:break-word;border-radius:3px;padding:2px 5px;font-size:.86em}.article-content pre{background:var(--code-bg);color:var(--code-ink);border:1px solid var(--line);tab-size:2;border-radius:5px;margin:1.6em 0;padding:22px 24px;font-size:15px;line-height:1.7;overflow-x:auto}.article-content pre code{color:inherit;font-size:inherit;word-break:normal;background:0 0;padding:0}.article-content pre.astro-code{background:var(--code-bg)!important}.article-content .highlight{border:1px solid var(--line);background:var(--code-bg);border-radius:5px;margin:1.6em 0;line-height:1.7;overflow-x:auto}.article-content .highlight table{border-collapse:collapse;background:0 0;border:0;width:100%;margin:0;font-size:15px;display:table}.article-content .highlight tbody,.article-content .highlight tr{background:0 0}.article-content .highlight td{vertical-align:top;background:0 0;border:0;padding:0}.article-content .highlight td.gutter{border-right:1px solid var(--line);user-select:none;width:44px}.article-content .highlight td.gutter pre{color:var(--muted);text-align:right;padding-inline:13px}.article-content .highlight td.code{width:auto}.article-content .highlight pre{border:0;border-radius:0;margin:0;padding:18px 20px;font-size:15px}.article-content :is(.hljs-comment,.hljs-quote),.article-content .highlight :is(.comment,.quote){color:var(--muted)}.article-content :is(.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-type,.hljs-doctag,.hljs-tag,.hljs-name),.article-content .highlight :is(.keyword,.selector-tag,.built_in,.type,.tag,.name){color:var(--accent)}.article-content :is(.hljs-string,.hljs-regexp,.hljs-attr,.hljs-symbol,.hljs-bullet,.hljs-meta-string),.article-content .highlight :is(.string,.regexp,.attr,.symbol){color:var(--syntax-string)}.article-content :is(.hljs-number,.hljs-literal),.article-content .highlight :is(.number,.literal){color:var(--syntax-number)}.article-content :is(.hljs-title,.hljs-function,.hljs-property,.hljs-attribute,.hljs-selector-id,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo),.article-content .highlight :is(.title,.function,.property,.attribute){color:var(--syntax-name)}.article-content :is(.hljs-variable,.hljs-params,.hljs-subst),.article-content .highlight :is(.variable,.params,.subst){color:var(--code-ink)}.article-content :is(.hljs-meta,.hljs-meta-keyword),.article-content .highlight .meta{color:var(--muted)}.article-content :is(.hljs-section,.hljs-title.class_,.hljs-title.function_),.article-content .highlight .section{font-weight:600}.article-content :is(.hljs-emphasis,.highlight .emphasis){font-style:italic}.article-content :is(.hljs-strong,.highlight .strong){font-weight:600}.article-content :is(.hljs-addition,.highlight .addition){color:var(--syntax-string);background:color-mix(in srgb, var(--syntax-string), transparent 92%)}.article-content :is(.hljs-deletion,.highlight .deletion){color:var(--syntax-deletion);background:color-mix(in srgb, var(--syntax-deletion), transparent 92%)}.article-content table{border-collapse:collapse;border-spacing:0;width:100%;max-width:100%;margin:1.6em 0;font-size:16px;line-height:1.8;display:block;overflow-x:auto}.article-content th{background:var(--code-bg);color:var(--ink);text-align:left;white-space:normal;font-weight:600}.article-content td,.article-content th{border:1px solid var(--line);min-width:80px;padding:10px 14px}.article-content tr:nth-child(2n){background:var(--surface)}.article-content iframe{border:0;max-width:100%}.article-content .MathJax,.article-content mjx-container[display=true]{max-width:100%;overflow:auto hidden}.article-content .katex-display{max-width:100%;padding-block:4px;overflow:auto hidden}.article-content .mermaid{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:5px;margin-block:1.6em;padding:22px;overflow-x:auto}.article-content .mermaid svg{max-width:100%;height:auto}.article-content .footnotes{color:var(--muted);margin-top:48px;font-size:15px}.toc,.article-toc{min-width:0;color:var(--muted);border-left:1px solid var(--line);max-height:calc(100vh - 60px);padding-left:20px;font-size:15px;position:sticky;top:28px;overflow-y:auto}.toc h2,.toc h3{letter-spacing:1px;margin:0 0 14px;font-size:15px}.toc ul,.toc ol{margin:0;padding:0;list-style:none}.toc li{margin-block:9px;line-height:1.6}.toc a:hover,.toc a.active{color:var(--accent)}.toc .depth-3,.toc .toc-level-3{padding-left:12px;font-size:14px}.article-toc>p{color:var(--ink);letter-spacing:1px;margin-bottom:14px;font-size:15px;font-weight:600}.article-toc nav{flex-direction:column;gap:10px;display:flex}.article-toc a{overflow-wrap:anywhere;font-size:15px;line-height:1.7}.article-toc a:hover{color:var(--accent)}.article-toc .toc-sub{padding-left:12px;font-size:14px}.article-nav,.pagination{border-block:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;margin-block:32px;padding-block:28px;font-size:15px;display:flex}.article-nav a{max-width:48%;color:var(--ink)}.article-nav a:hover{color:var(--accent)}.series-navigation,.series-banner{background:var(--surface);border:1px solid var(--line);border-radius:4px;margin-block:28px;padding:22px 24px;font-size:16px}.series-navigation h2,.series-banner h2{margin-bottom:10px;font-size:16px}.series-navigation a,.series-banner a{color:var(--accent)}.series-navigation{max-width:800px;margin-top:32px}.series-navigation .post-grid{gap:22px;margin-top:20px}.series-navigation .post-grid>div{border-top:1px solid var(--line);min-width:0;padding-top:15px}.series-navigation .post-grid .eyebrow{color:var(--muted);font:500 14px/1.5 var(--sans);letter-spacing:1px;margin-bottom:7px}.series-navigation .post-grid a{color:var(--ink);overflow-wrap:anywhere;line-height:1.8;display:block}.series-navigation .post-grid a:hover{color:var(--accent)}.comments{border-top:1px solid var(--line);max-width:800px;margin-top:40px;padding-top:30px}.comments h2{font:650 22px/1.6 var(--sans);margin-bottom:18px}.comments .utterances{max-width:100%;margin:0}.comments iframe{border:0;width:100%;max-width:100%}.archive-nav{flex-wrap:wrap;gap:10px 24px;margin-top:25px;font-size:16px;display:flex}.archive-nav a{border-bottom:1px solid var(--line);padding-bottom:6px}.archive-nav a:hover{color:var(--accent);border-color:var(--accent)}.taxonomy-tags{gap:8px;margin-block:5px 32px}.taxonomy-tags a{background:var(--surface);border:1px solid var(--line);color:var(--text);padding:5px 9px;font-size:16px}.taxonomy-tags a span{color:var(--accent);font:14px/1.5 var(--mono);background:0 0;border:0;margin-left:6px;padding:0}.archive-year{color:var(--accent);font:500 24px/1.5 var(--mono);margin:38px 0 20px}.archive-list{margin:0;padding:0;list-style:none}.archive-list li{border-bottom:1px solid var(--line);align-items:baseline;gap:28px;padding:14px 0;display:flex}.archive-list time{color:var(--muted);font:14px/1.6 var(--mono);flex-shrink:0}.archive-list a{overflow-wrap:anywhere;min-width:0;color:var(--ink);font-size:18px;line-height:1.7}.archive-list a:hover{color:var(--accent)}.search-box,.search-input{width:100%;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:15px 18px}.search-box:focus,.search-input:focus{border-color:var(--accent);outline:none}.search-hint,.empty-state{color:var(--muted);padding-block:28px;font-size:16px}.pagefind-ui{--pagefind-ui-scale:1;--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--text);--pagefind-ui-background:var(--surface);--pagefind-ui-border:var(--line);--pagefind-ui-tag:var(--code-bg);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:4px;--pagefind-ui-font:var(--sans)}.site-footer{border-top:1px solid var(--line);background:var(--surface);margin-top:64px}.footer-inner{padding-block:40px 22px}.footer-top{justify-content:space-between;align-items:center;gap:36px;padding-bottom:28px;display:flex}.footer-brand{color:var(--ink);letter-spacing:-.4px;font-size:19px;font-weight:650}.footer-links{color:var(--muted);flex-wrap:wrap;gap:12px 23px;font-size:15px;display:flex}.footer-links span{color:var(--accent);margin-left:4px}.footer-bottom{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:18px;padding-top:18px;font-size:14px;display:flex}.footer-divider{color:var(--line);margin-inline:9px}.site-statistics{flex-wrap:wrap;gap:8px;display:flex}.site-statistics [id$=-pv],.site-statistics [id$=-uv]{font-family:var(--mono)}.site-duration{color:var(--muted);text-align:right;margin-top:8px;font-size:14px}@media (width>=1600px){.container{width:min(1200px,100% - 120px)}}@media (width<=1020px){.container{width:calc(100% - 64px)}.article-layout{grid-template-columns:minmax(0,1fr)}.toc,.article-toc{border:1px solid var(--line);border-radius:4px;grid-row:1;max-height:240px;padding:18px 20px;position:static}.series-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-directory{gap:28px}.course-directory-link{gap:12px}.course-directory-meta{max-width:82px}}@media (width<=720px){body{font-size:17px}html{scroll-padding-top:24px}.container,.narrow,.content-width{width:calc(100% - 40px)}.header-inner{flex-wrap:wrap;gap:18px;min-height:85px;padding-block:18px 14px}.wordmark{gap:10px}.wordmark-symbol{width:37px;height:37px}.wordmark-name{font-size:18px}.wordmark-caption{font-size:13px}.header-navigation{gap:15px}.main-nav{gap:18px;font-size:15px}.header-tools{gap:0;padding-left:10px}.icon-button{width:31px;height:31px}.home-intro{margin-top:24px;padding:24px 20px}.home-intro h1{font-size:28px}.home-intro p{font-size:16px}.page-section{padding-block:32px}.home-section{padding-top:28px}.section-heading{gap:16px;margin-bottom:22px}.section-heading h2{font-size:22px}.section-heading p{font-size:15px}.post-grid,.grid{grid-template-columns:1fr;gap:16px}.post-grid .post-card,.grid .post-card{padding:22px}.post-card-title{font-size:22px}.post-list .post-card{padding-block:23px;display:block}.post-list .post-card-title{font-size:22px}.post-list .post-card-bottom{flex-direction:row;margin-top:16px;display:flex}.series-grid{grid-template-columns:1fr;gap:14px}.series-card{padding:21px}.home-courses{gap:18px;margin-top:24px;padding-block:16px;font-size:15px}.course-directory{gap:30px}.course-directory-meta{max-width:90px}.course-directory-title{font-size:19px}.course-outline{border:1px solid var(--line);border-radius:4px;padding:18px}.course-outline li a{gap:10px;padding-block:4px}.course-header{margin-bottom:24px}.course-chapter-heading h2{font-size:21px}.course-note-link{grid-template-columns:32px minmax(0,1fr) 16px;gap:12px;padding-block:14px}.course-note-reading{display:none}.course-note-title{font-size:18px}.page-header{padding-block:36px 24px}.page-header h1{font-size:30px}.article-header{margin-bottom:30px;padding-block:32px 27px}.article-header h1{font-size:27px;line-height:1.65}.article-meta{gap:8px 13px;font-size:14px}.article-content{font-size:17px;line-height:1.9}.article-content h2{font-size:24px}.article-content h3{font-size:21px}.article-content blockquote{padding:14px 17px;font-size:16px}.article-content pre{padding:17px;font-size:14px}.article-content table{font-size:15px}.article-content td,.article-content th{padding:8px 11px}.article-content .highlight pre{padding:16px;font-size:14px}.article-content .highlight td.gutter{width:34px}.article-content .highlight td.gutter pre{padding-inline:9px}.archive-list li{gap:18px;padding-block:12px}.archive-list a{font-size:17px}.footer-top{padding-bottom:23px;display:block}.footer-links{gap:12px 16px;margin-top:20px}.footer-bottom{line-height:1.8;display:block}.site-statistics{margin-top:8px}.site-duration{text-align:left;margin-top:6px}.site-footer{margin-top:40px}.footer-inner{padding-top:30px}}@media (width<=480px){.header-inner{grid-template-columns:1fr;gap:14px;display:grid}.header-navigation{justify-content:space-between}.main-nav{gap:8px}.header-tools{border:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}
