@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=JetBrains+Mono:wght@400;500&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap";:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17243b;background:#f9fafb;font-synthesis:none;--bg: #fff;--surface: #f6f8fa;--text: #17243b;--muted: #60708a;--border: #e4e9f0;--blue: #2878e8;--blue-soft: #eef5ff;--green: #007e6d;--green-soft: #effaf7;line-height:1.65;font-size:14px}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:var(--text);background:var(--bg);border:1px solid var(--border);padding:7px 12px;border-radius:5px}button:disabled{opacity:.5;cursor:not-allowed}button:hover{background:var(--surface)}input,select,textarea{color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:9px 11px;width:100%}textarea{resize:vertical}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.25;letter-spacing:-.035em}h1{font-size:36px}h2{font-size:23px}h3{font-size:17px}p,small{color:var(--muted)}svg{flex-shrink:0;vertical-align:middle}img{max-width:100%;height:auto}.site-header{height:78px;display:flex;align-items:center;gap:45px;padding:0 38px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:20;box-shadow:0 6px 16px -10px #10234230}.wordmark{font-size:20px;font-weight:700;letter-spacing:-.8px;white-space:nowrap}.wordmark span{color:#617088}.top-nav{display:flex;align-items:stretch;height:100%;gap:29px;font-size:13px}.top-nav a{display:flex;align-items:center;position:relative;color:var(--muted)}.top-nav a.active{color:var(--text);font-weight:700}.top-nav a.active:after{content:"";position:absolute;bottom:15px;height:2px;background:var(--blue);left:0;right:0}.header-actions{margin-left:auto;display:flex;align-items:center;gap:13px}.search{position:relative;display:flex;align-items:center}.search>svg{position:absolute;left:11px;color:#7e8fa8}.search input{font-size:12px;padding:7px 12px 7px 34px;width:208px;background:var(--surface)}.search-results{position:absolute;top:42px;right:0;width:360px;max-width:85vw;background:var(--bg);border:1px solid var(--border);box-shadow:0 12px 30px #10234215;border-radius:7px;max-height:420px;overflow:auto}.search-results a{display:block;padding:12px 16px;border-bottom:1px solid var(--border)}.search-results small{display:block}.search-results p{padding:14px;margin:0}.icon-button{background:none;border:0;padding:7px}.mobile-menu{display:none}.notes-layout{max-width:1500px;margin:auto;display:grid;grid-template-columns:245px minmax(0,1fr);align-items:start;background:var(--bg);min-height:calc(100vh - 154px)}.left-sidebar{border-right:1px solid var(--border);padding:27px 20px;background:linear-gradient(110deg,var(--surface),var(--bg));display:flex;flex-direction:column;gap:20px;font-size:12px;position:sticky;top:78px;max-height:calc(100vh - 78px);overflow-y:auto}.lab-brand{display:flex;gap:12px;align-items:center;padding:0 7px 6px}.lab-brand strong{font-size:15px}.lab-brand small{display:block;font-size:11px}.lab-icon{width:37px;height:37px;display:grid;place-items:center;background:#e2e7ec;border-radius:7px;color:#26384e}.overview-link{display:flex;align-items:center;gap:12px;padding:6px 10px;border-radius:4px}.overview-link.active{background:var(--blue-soft);color:var(--blue)}.left-sidebar nav{margin-top:-13px}.left-sidebar details{margin-bottom:7px}.left-sidebar summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:8px 9px;cursor:pointer;border-radius:5px}.left-sidebar summary>span{display:flex;align-items:center;gap:12px}.left-sidebar details[open] summary{background:#e9edf2;color:#174680}.left-sidebar summary::-webkit-details-marker{display:none}.chapter-links{position:relative;padding:5px 0 2px 20px}.chapter-links:before{content:"";position:absolute;top:8px;bottom:12px;left:23px;width:1px;background:var(--border)}.chapter-links a{position:relative;display:flex;gap:10px;align-items:center;padding:6px 5px 6px 0;line-height:1.45;color:var(--muted)}.chapter-links a.active{color:var(--blue);background:var(--blue-soft);border-radius:4px}.chapter-dot{width:7px;height:7px;border-radius:50%;background:#b5bdc9;flex-shrink:0;z-index:1}.chapter-links a.active .chapter-dot{background:var(--blue)}.learning-public{border:1px solid var(--border);border-radius:5px;padding:15px;margin-top:auto;font-size:12px}.learning-public p{font-size:11px;margin:8px 0}.learning-public a{font-size:11px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#42a387;margin-right:6px}.page-content{min-width:0}.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 235px;align-items:start;gap:30px;padding:27px 29px 50px}.article-main{min-width:0;max-width:850px}.breadcrumbs{font-size:10px;display:flex;align-items:center;gap:9px;color:var(--muted);margin-bottom:30px}.article-kicker{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--blue);font-weight:600;margin-bottom:12px}.article-kicker span{color:#b2bdcc;padding:0 6px}.article-header h1{font-size:32px;line-height:1.15;margin-bottom:14px}.subtitle{font-size:18px;line-height:1.6;margin-bottom:14px}.article-meta{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;margin-bottom:5px}.created-date{font-size:10px}.article-header{margin-bottom:22px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.tags a{font-size:10px;border:1px solid var(--border);padding:2px 8px;border-radius:3px;color:var(--muted)}.callout{display:flex;gap:12px;background:var(--green-soft);border:1px solid #bce9df;border-radius:9px;padding:18px;margin:22px 0;color:var(--green);box-shadow:0 8px 20px -16px #0f5a4d50}.callout strong{font-size:14px;font-weight:600}.callout p{font-size:13px;line-height:1.65;margin:5px 0 0;color:#3f6266}.callout.goal{background:var(--blue-soft);border-color:#c3dfff;color:var(--blue)}.callout.goal p{color:#496183}.article-prose{font-size:17px;line-height:1.75;color:var(--muted);max-width:700px;overflow-wrap:anywhere}.article-prose h1,.article-prose h2,.article-prose h3,.article-prose h4,.article-prose h5,.article-prose h6{color:var(--text);scroll-margin-top:25px;margin:46px 0 14px;line-height:1.3}.article-prose h2{font-size:26px}.article-prose h3{font-size:19px;margin-top:34px}.article-prose p{margin-bottom:22px}.article-prose>p:first-of-type{font-size:1.15em;color:var(--text)}.article-prose a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;transition:color .15s ease}.article-prose a:hover{color:var(--green)}.article-prose ul,.article-prose ol{padding-left:24px}.article-prose li p{margin:0}.article-prose blockquote{margin:28px 0;border-left:3px solid var(--blue);padding:6px 22px;background:var(--surface);font-size:1.08em;font-style:italic;color:var(--text)}.article-prose blockquote p:last-child{margin-bottom:0}hr{border:0;border-top:1px solid var(--border);margin:30px 0}.article-prose :not(pre)>code{font-family:JetBrains Mono,monospace;font-size:.85em;background:var(--surface);padding:2px 5px;border-radius:3px;color:var(--text)}.code-block{background:#1d2530;border:1px solid #344150;border-radius:6px;overflow:hidden;margin:18px 0;box-shadow:0 2px 4px #14253f0b;color:#e1e8ee}.code-toolbar{height:36px;display:flex;justify-content:space-between;align-items:center;padding:0 13px;background:#2a3441;font-family:DM Sans,sans-serif;font-size:10px;letter-spacing:.3px}.code-toolbar>div{display:flex;gap:6px}.code-toolbar button{color:#e1e8ee;background:none;border:0;font-size:10px;padding:3px 5px}.code-block pre{margin:0;padding:15px 16px;overflow-x:auto;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.85}.code-block code{font-family:inherit}.token.keyword,.token.tag{color:#81cafa}.token.string,.token.attr-value{color:#b2d99a}.token.number,.token.boolean{color:#e6b58a}.token.comment{color:#94a3b8}.token.function{color:#dfc185}.token.operator,.token.punctuation{color:#d5dee7}.copy-error{display:block;padding:8px}.right-sidebar{min-width:0;position:sticky;top:105px;max-height:calc(100vh - 105px);overflow-y:auto}.side-card{border:1px solid var(--border);background:linear-gradient(130deg,var(--bg),var(--surface));border-radius:9px;padding:18px 16px;margin-bottom:19px;font-size:11px;box-shadow:0 10px 24px -20px #10234260}.side-card h2,.side-card summary{font-size:14px;font-weight:650;letter-spacing:-.3px;margin:0 0 18px}.progress-track{height:5px;background:#dbe3ef;border-radius:4px;overflow:hidden}.progress-track>div{background:var(--blue);height:100%;border-radius:4px}.progress-caption{font-size:10px;margin:8px 0 17px}.lesson-progress{display:grid;gap:10px}.lesson-progress a{display:flex;gap:9px;align-items:flex-start;line-height:1.4;color:var(--muted)}.lesson-progress .current{color:var(--blue)}.toc summary{cursor:pointer}.toc nav{border-left:1px solid #d7dfeb;display:grid;gap:9px}.toc a{line-height:1.55;color:var(--muted);font-size:10px;margin-left:-1px;border-left:2px solid transparent}.toc a.active{color:var(--blue);border-left-color:var(--blue)}.next-up{display:flex;gap:10px;font-size:12px}.next-up small{display:block;font-size:10px;line-height:1.6;margin-top:6px}.related-links{display:grid;gap:12px}.related-links a{display:flex;gap:10px;align-items:flex-start;color:var(--muted)}.margin-note{text-align:center;color:#91a0b3;font-size:10px;margin-top:25px}.article-end{border-top:1px solid var(--border);padding:22px 0;display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted);margin-top:32px}.article-end button{margin-left:auto;font-size:11px}.previous-next{display:flex;gap:16px;margin:15px 0 30px}.previous-next>a{flex:1;border:1px solid var(--border);border-radius:6px;padding:16px}.previous-next small{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:11px}.previous-next strong{font-size:13px}.resource{display:block!important;border:1px solid var(--border);border-radius:7px;padding:20px;margin:22px 0;text-decoration:none!important;color:var(--text)!important;background:var(--surface)}.resource h3{margin:10px 0}.resource p{margin:5px 0}.video-card{padding:0;overflow:hidden}.video-card>img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.video-card>div{padding:18px}.video-action{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--blue);margin-top:12px}.video-embed{width:100%;aspect-ratio:16/9;border:0;border-radius:7px}.article-prose figure{margin:22px 0}.article-prose figure img{border-radius:5px}.article-prose figcaption{text-align:center;font-size:12px;color:var(--muted);margin-top:8px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px 13px;border:1px solid var(--border);text-align:left}th{background:var(--surface);color:var(--text)}.task-list{list-style:none;padding-left:0!important}.task-list li{display:flex;gap:9px}.task-list input{width:auto;margin-top:7px}footer{display:flex;align-items:center;gap:28px;background:#26313e;color:#dfe5ed;padding:24px 38px;font-size:11px}footer .wordmark{font-size:17px;color:#fff}footer>span{color:#a9b4c2}footer nav{display:flex;gap:23px;margin-left:auto}.overview-page{padding:55px;max-width:1100px;margin:auto}.eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--blue);font-weight:650}.overview-page h1{font-size:46px;margin:16px 0}.blue-period{color:var(--blue)}.intro{font-size:17px;max-width:580px;margin-bottom:40px}.section-label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:22px}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.category-card{padding:22px;border:1px solid var(--border);border-radius:9px;transition:border-color .15s,box-shadow .15s,transform .15s}.category-card:hover,.note-card:hover{border-color:#a8c8f6;box-shadow:0 12px 26px -16px #10234250;transform:translateY(-2px)}.category-card>svg{color:var(--blue);margin-bottom:19px}.category-card h2{font-size:18px}.category-card p{font-size:12px;line-height:1.6}.category-card>div{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:20px}.section-title{margin:34px 0 19px;font-size:22px}.note-card{display:block;border:1px solid var(--border);padding:22px;border-radius:9px;margin-bottom:12px;transition:border-color .15s,box-shadow .15s,transform .15s}.note-card h3{margin:9px 0;font-size:18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.note-card p{font-size:13px;margin-bottom:12px}.note-card small{font-size:10px}.featured-grid .note-card{background:var(--blue-soft);border-color:#d5e5fc}.empty{padding:65px 35px;text-align:center}.empty h2{margin:20px 0 10px}.empty a{color:var(--blue)}.primary,.primary-link{background:var(--blue);color:#fff!important;border:1px solid var(--blue);padding:10px 16px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:13px}.primary:hover,.primary-link:hover{background:#1768d7}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;top:-60px;background:var(--bg);padding:10px;z-index:100}.skip-link:focus{top:0}.login-page{max-width:430px;margin:80px auto;padding:25px}.login-page .wordmark{display:block;margin-bottom:60px}.login-page h1{margin:14px 0}.login-page label,label{display:grid;gap:7px;font-size:12px;font-weight:500;margin-bottom:16px}.login-page .primary{width:100%;margin-top:10px}.admin-layout{background:var(--bg);min-height:100vh}.admin-header{padding:22px 35px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.admin-header .wordmark small{font-size:13px;font-weight:400;letter-spacing:0;margin-left:8px}.admin-nav{display:flex;gap:25px;align-items:center;max-width:1250px;margin:auto;padding:20px 30px;border-bottom:1px solid var(--border);text-transform:capitalize}.admin-nav .active{color:var(--blue)}.admin-nav .primary{margin-left:auto}.admin-main{max-width:1250px;margin:auto;padding:35px 30px 80px}.admin-main h1{font-size:33px}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:15px;margin:30px 0}.stat{border:1px solid var(--border);padding:23px;border-radius:6px}.stat strong{font-size:30px;display:block}.stat span{color:var(--muted);font-size:12px}.button-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dashboard-row{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--border);padding:17px 0}.admin-main>h2{margin-top:30px}.filters{display:flex;gap:12px}.admin-table{font-size:12px;margin-top:25px}.table-actions{display:flex;gap:8px;flex-wrap:wrap}.table-actions button{font-size:10px;padding:3px 6px}.table-actions a{font-size:11px;color:var(--blue)}.status{font-size:10px;padding:3px 7px;border-radius:4px;background:var(--surface)}.status.published{background:var(--green-soft);color:var(--green)}.danger{color:#c64d4d}.editor-page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.editor-page-heading h1{margin:8px 0}.editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 25px;margin-top:25px}.wide{grid-column:1/-1}.title-input{font-size:25px;font-weight:600;padding:14px}.editor-fields textarea{min-height:80px}.checkbox-row{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.checkbox-row label,.inline-check{display:flex;align-items:center;gap:7px}.checkbox-row input,.inline-check input{width:auto}fieldset{border:1px solid var(--border);border-radius:5px;margin:0 0 20px;padding:15px}legend{font-size:12px;color:var(--muted)}.rich-editor{border:1px solid var(--border);border-radius:7px;overflow:hidden}.editor-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:10px;background:var(--surface);border-bottom:1px solid var(--border)}.editor-toolbar button{font-size:11px;padding:5px 8px}.editor-toolbar select{width:auto;font-size:11px}.writing-surface{min-height:430px;padding:25px;outline:none}.writing-surface pre{background:#1d2530;color:#e1e8ee;padding:15px;overflow:auto;font-family:monospace}.writing-surface pre code{color:inherit}.writing-surface ul[data-type=taskList]{list-style:none;padding-left:0}.writing-surface li[data-type=taskItem]{display:flex;gap:10px}.writing-surface li[data-type=taskItem] input{width:auto}.callout-editor{background:var(--green-soft);padding:18px;border:1px solid #bce9df;border-radius:5px}.callout-editor>strong{color:var(--green)}.insert-panel{border-top:2px solid var(--blue);padding:25px;background:var(--surface)}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.panel-heading h3{margin:0}.hint{font-size:11px;color:var(--muted);margin:-6px 0 14px}.playground{border:1px solid var(--border);border-radius:9px;overflow:hidden;margin:22px 0;box-shadow:0 10px 24px -20px #10234260}.playground-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--border);font-size:12px;font-weight:650}.playground-head div{display:flex;gap:8px}.playground-head button{font-size:12px;padding:6px 11px;display:inline-flex;align-items:center;gap:6px}.playground-desc{padding:12px 14px 0;font-size:12px;color:var(--muted);margin:0}.playground-code{display:block;width:100%;background:#1d2530;color:#e1e8ee;border:0;border-radius:0;padding:14px;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.6}.playground-code:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.playground-output{padding:12px 14px;background:#12181f;color:#cbd5e1;font-family:JetBrains Mono,monospace;font-size:12px;border-top:1px solid #344150;max-height:220px;overflow-y:auto}.playground-output .muted{color:#64748b}.playground-output .error{color:#f9a8a8}.sql-playground{border:1px solid var(--border);border-radius:9px;overflow:hidden;margin:22px 0;box-shadow:0 10px 24px -20px #10234260;background:var(--bg)}.sql-playground-title{padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--border);font-size:12px;font-weight:650}.sql-playground-grid{display:grid;grid-template-columns:minmax(0,1fr) 200px}.sql-playground-main{padding:14px;border-right:1px solid var(--border);min-width:0}.sql-playground-side{padding:14px;background:var(--surface);min-width:0}.sql-playground-label{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:14px 0 6px}.sql-playground-label:first-child{margin-top:0}.sql-editor{border-radius:6px;resize:vertical}.sql-playground-actions{display:flex;gap:8px;margin-top:10px}.sql-playground-actions button{font-size:12px;padding:7px 12px;display:inline-flex;align-items:center;gap:6px}.sql-result{font-size:13px}.sql-result .error{color:#b3261e;background:#fdecea;padding:10px 12px;border-radius:6px;margin:0}.sql-result .muted{color:var(--muted);margin:0}.sql-result table{font-size:12.5px}.sql-result th,.sql-result td{padding:6px 10px}.sql-stats{width:100%;font-size:12px;border-collapse:collapse}.sql-stats th{text-align:left;font-weight:650;padding:4px 0;border-bottom:1px solid var(--border);color:var(--text)}.sql-stats td{padding:5px 0;border-bottom:1px solid #e4e9f080}.sql-stats tr:last-child td{border-bottom:0}@media(max-width:640px){.sql-playground-grid{grid-template-columns:1fr}.sql-playground-main{border-right:0;border-bottom:1px solid var(--border)}}.editor-atom{border:1px dashed var(--border);padding:12px;margin:16px 0}.editor-atom figure{margin:0}.editor-atom>button{margin-top:8px}.related-editor-row{display:flex;gap:8px;align-items:center;margin:8px 0}.related-editor-row span{margin-right:auto}.taxonomy-form{max-width:650px;border:1px solid var(--border);padding:25px;border-radius:7px;margin:25px 0}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.media-grid article{border:1px solid var(--border);padding:12px;border-radius:6px}.media-grid img{width:100%;height:150px;object-fit:cover;border-radius:4px}.media-grid strong,.media-grid small{display:block;overflow-wrap:anywhere;font-size:12px}.media-grid button{font-size:11px;margin:10px 5px 0 0}.upload-preview{max-height:230px;display:block;margin-bottom:15px}.media-library>label{max-width:600px}.preview-banner,.unsaved-warning{background:#fff5d9;color:#775a14;padding:14px;border:1px solid #edce7c;border-radius:5px;margin-bottom:20px}[data-theme=dark]{--bg: #141c29;--surface: #1b2534;--text: #e0e7f0;--muted: #a1b0c5;--border: #2e3a4c;--blue: #79b0fc;--blue-soft: #1b304b;--green: #85d6c1;--green-soft: #173630;background:#111926;color:var(--text)}[data-theme=dark] .left-sidebar details[open] summary{background:#25344a;color:#a6ccff}[data-theme=dark] .callout{border-color:#2b594d}[data-theme=dark] .callout p{color:#bed1ca}[data-theme=dark] .callout.goal{border-color:#34577e}[data-theme=dark] .callout.goal p{color:#b5c9e2}[data-theme=dark] .primary{background:#286bc5;border-color:#286bc5}[data-theme=dark] .featured-grid .note-card{border-color:#34577e}@media(min-width:1450px){.site-header{padding-left:max(38px,calc((100vw - 1424px)/2));padding-right:max(38px,calc((100vw - 1424px)/2))}.article-grid{padding:35px 42px;gap:40px;grid-template-columns:minmax(0,1fr) 260px}.article-header h1{font-size:37px}}@media(max-width:1150px){.site-header{gap:28px;padding:0 25px}.top-nav{gap:20px}.notes-layout{grid-template-columns:215px minmax(0,1fr)}.left-sidebar{padding:24px 13px}.article-grid{grid-template-columns:minmax(0,1fr) 200px;gap:23px;padding:25px}.article-header h1{font-size:29px}.side-card{padding:15px 12px}.overview-page{padding:40px}.category-grid{grid-template-columns:1fr 1fr}.search input{width:170px}}@media(max-width:950px){.article-grid{display:flex;flex-direction:column;align-items:stretch}.right-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:15px;position:static;max-height:none;overflow-y:visible}.side-card{margin:0}.margin-note{display:none}.top-nav{gap:15px}.header-actions{gap:4px}.search input{width:145px}.wordmark{font-size:18px}.site-header{gap:22px}.article-main{max-width:none}.stat-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.site-header{height:auto;min-height:72px;flex-wrap:wrap;gap:10px;padding:15px 18px}.top-nav{order:3;width:100%;height:30px;justify-content:center;gap:30px}.top-nav a.active:after{bottom:-3px}.header-actions{margin-left:auto}.search input{width:135px}.mobile-menu,.notes-layout{display:block}.left-sidebar{display:none}.left-sidebar.open{display:flex;position:fixed;top:0;bottom:0;left:0;width:265px;z-index:50;overflow:auto;background:var(--bg)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#101c3380;z-index:45;border-radius:0}.article-grid{padding:24px 20px;gap:24px}.article-header h1{font-size:29px}.breadcrumbs{margin-bottom:25px}.article-prose{font-size:14px}.right-sidebar{display:flex;flex-direction:column}.toc{order:-1}.overview-page{padding:35px 22px}.overview-page h1{font-size:37px}.category-grid{gap:12px}.category-card{padding:17px}.intro{font-size:15px}.section-label{font-size:9px}footer{padding:23px;gap:10px;flex-wrap:wrap}footer nav{width:100%;margin-top:10px;gap:22px}.article-end{flex-wrap:wrap}.admin-header{padding:18px}.admin-header .wordmark small{display:none}.admin-nav{gap:16px;padding:15px 18px;overflow:auto;font-size:12px;white-space:nowrap}.admin-main{padding:25px 18px}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.editor-page-heading{display:block}.editor-page-heading .button-row{margin-top:15px}.editor-fields{grid-template-columns:1fr}.wide{grid-column:auto}.filters{flex-wrap:wrap}.media-grid{grid-template-columns:1fr 1fr}.writing-surface{padding:16px}.login-page{margin:30px auto}.dashboard-row{flex-wrap:wrap}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.text-button{background:none;border:0;padding:4px 0;color:var(--muted);text-decoration:underline;text-underline-offset:3px;justify-self:start}.text-button:hover{color:var(--blue);background:none}:root{--bg: #faf8f1;--surface: #f0eee5;--text: #292d29;--muted: #666b60;--border: #dcdcd0;--blue: #356c59;--blue-soft: #e8eee3;--green: #346650;--green-soft: #edf0e4;--mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;background:#efeee6;color:var(--text)}body{background-image:radial-gradient(#999c8625 .65px,transparent .65px);background-size:7px 7px}.site-header{background:var(--bg);height:82px;border-bottom:1px solid #cccfc1;gap:34px}.wordmark{font-family:var(--mono);font-size:16px;font-weight:500;letter-spacing:-.75px}.wordmark span{color:var(--muted)}.wordmark .brand-prompt{color:var(--blue);letter-spacing:-2px;margin-right:6px;font-weight:600}.top-nav{gap:25px;font-family:var(--mono);font-size:11px}.top-nav a>span{color:#929887;margin-right:1px}.top-nav a.active{color:var(--blue);font-weight:500}.top-nav a.active:after{background:var(--blue);bottom:19px;height:1px}.search input{background:transparent;font-family:var(--mono);font-size:10px;border-radius:2px}.search>svg{color:var(--muted)}.notes-layout{border-left:1px solid var(--border);border-right:1px solid var(--border)}.left-sidebar{background:#f1f0e7;border-color:#dadccd;padding-top:32px}.lab-icon{background:transparent;border:1px solid #9aa68e;border-radius:2px;width:35px;height:38px;box-shadow:3px 3px #dfe2d4}.lab-glyph{font-family:Georgia,serif;font-size:26px;color:var(--blue)}.lab-brand strong{font-family:var(--mono);font-size:13px;font-weight:500}.lab-brand small{font-family:var(--mono);font-size:10px;margin-top:4px}.overview-link{font-family:var(--mono);font-size:10px;padding:9px 10px}.left-sidebar summary{border-radius:2px;font-family:var(--mono);font-size:11px}.left-sidebar details[open] summary{background:#e1e6d8;color:#3c624a}.chapter-links{margin-left:2px}.chapter-links a{font-size:11px;line-height:1.55}.chapter-links a.active{background:#e7ecde;color:#315a43;border-radius:0}.chapter-dot{width:5px;height:5px;border-radius:0;background:#b6bdab}.chapter-links:before{left:22px;background:#cfd5c6}.learning-public{border:0;border-top:1px dashed #bdc5af;border-radius:0;padding:18px 8px 4px}.sidebar-comment{font-family:var(--mono);color:#6e7b5e;font-size:10px}.learning-public p{margin:10px 0 13px;font-size:12px}.learning-public a{font-size:10px;text-decoration:underline;text-underline-offset:4px}.article-grid{padding-top:30px}.breadcrumbs,.article-kicker,.article-meta,.created-date,.eyebrow,.section-label,.progress-caption,.margin-note{font-family:var(--mono)}.breadcrumbs{font-size:10px;color:#7b826e}.article-header h1{font-size:32px;letter-spacing:-1.2px;font-weight:650}.article-kicker{letter-spacing:1px;font-size:10px}.subtitle{color:#666d60}.article-prose{color:#535d50;font-size:17px}.article-prose h2{letter-spacing:-.7px;border-top:1px solid var(--border);padding-top:28px;margin-top:46px}.article-prose h2:first-child{border:0;padding-top:0}.article-prose h3{font-weight:600;font-size:19px}.article-prose>p:first-of-type{color:#3f4a3a}.article-prose blockquote{font-family:Georgia,serif}.article-prose a{text-decoration-thickness:1px}.callout{background:#eff0e1;border:0;border-left:2px solid #8e9d69;border-radius:0;padding:16px 18px}.callout.goal{background:#ebeee2;border:0;border-left:2px solid #7c9471;color:#48673f}.callout strong{font-family:var(--mono);font-size:11px;font-weight:500}.callout p,.callout.goal p{color:#53624b}.callout>svg{width:19px;margin-top:2px}.code-block{border-radius:3px;background:#242b26;border:1px solid #414b3e;box-shadow:3px 3px #292d290b}.code-toolbar{background:#30392f;color:#c7d2bc;font-family:var(--mono);font-size:10px;height:35px}.code-toolbar>span:before{content:">_";color:#8aa478;margin-right:9px}.code-toolbar button{font-size:10px;font-family:var(--mono);color:#d0d9c8}.code-block pre{padding:18px;font-size:11px;color:#d9dfcd}.token.keyword,.token.tag{color:#b8d5a0}.token.string,.token.attr-value{color:#dfcf99}.token.comment{color:#93a188}.token.number,.token.boolean{color:#deb695}.token.operator,.token.punctuation{color:#d1d9c8}.side-card{background:transparent;border-radius:0;border:0;border-top:1px solid #cfd3c3;padding:17px 4px 8px;margin-bottom:24px}.side-card h2,.side-card summary{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:-.25px}.progress-track,.progress-track>div{border-radius:0}.progress-track{background:#e2e5d8;height:4px}.progress-track>div{background:#6e8a58}.toc nav{border-color:#d3d9c7}.toc a{font-size:10px}.margin-note{font-size:10px;color:#7c886e;text-align:left;line-height:1.8;border-top:1px dashed var(--border);padding-top:14px}.tags a{border-radius:2px;background:transparent;font-family:var(--mono);font-size:10px}.previous-next>a{border-radius:2px;background:#f2f2e7}.article-end{font-family:var(--mono);font-size:10px}.category-grid{gap:0;border-top:1px solid var(--border);border-left:1px solid var(--border)}.category-card{border-radius:0;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.category-card:hover{background:var(--surface)}.category-card>svg{width:19px}.category-card h2{font-family:var(--mono);font-weight:500;font-size:16px}.category-card>div{font-family:var(--mono);font-size:10px}.overview-page>h1{font-weight:650;letter-spacing:-1.2px}.note-card{border-radius:0;border:0;border-bottom:1px solid var(--border);padding:22px 0}.note-card h3{font-weight:550;font-size:19px}.note-card small{font-family:var(--mono);font-size:10px}.featured-grid .note-card{padding:22px;background:#edf0e4;border:1px solid #d4dbc6;box-shadow:3px 3px #dfe4d4}.eyebrow{letter-spacing:1px;font-size:10px}.resource{background:var(--surface);border-radius:2px}footer{background:#e8ebdf;color:#4b5745;border-top:1px solid #c8cfba;padding-top:25px;padding-bottom:25px;font-family:var(--mono);font-size:10px}footer .wordmark{color:#354d38;font-size:13px}footer>span{color:#707c63}footer nav{gap:19px}.primary,.primary-link{background:#41684d;border-color:#41684d;border-radius:2px}.primary:hover,.primary-link:hover{background:#34583f}.admin-header,.admin-nav{font-family:var(--mono)}.admin-header .wordmark{font-size:15px}.admin-main>h1,.editor-page-heading h1,.login-page h1{font-weight:650;letter-spacing:-1px}.editor-toolbar{background:#eeeee3}.editor-toolbar button{font-family:var(--mono);font-size:10px}.personal-page{padding:35px 48px 24px;max-width:1180px;margin:auto}.file-heading{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding-bottom:14px;color:#68775a;font-family:var(--mono);font-size:10px}.file-kind{color:#92967e;font-size:10px}.notebook-intro{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:45px;padding:40px 0 42px}.personal-greeting{font-family:var(--mono);font-size:11px;color:#6c7f58;margin-bottom:18px}.intro-writing h1{font-size:clamp(27px,2.7vw,41px);line-height:1.15;font-weight:650;letter-spacing:-1.5px;margin:0 0 20px}.intro-writing>p:not(.personal-greeting){font-size:14px;line-height:1.85;max-width:555px;margin-bottom:22px;color:#69715f}.notebook-link{display:inline-flex;align-items:center;gap:16px;border-bottom:1px solid #7b9168;padding-bottom:5px;font-family:var(--mono);color:#416547;font-size:11px}.desk-note{align-self:center;padding:20px 22px;border:1px solid #d7d7b8;background:#f0efd8;box-shadow:3px 4px #b9b99d22;transform:rotate(1deg)}.desk-note-label{font-family:var(--mono);font-size:10px;color:#868566}.desk-note p{font-family:var(--mono);font-size:11px;line-height:2;margin:15px 0;color:#616749}.desk-note-rule{width:38px;height:1px;background:#bcbea0;margin-bottom:12px}.desk-note small{font-family:Georgia,serif;font-style:italic;font-size:14px;color:#858264;line-height:1.5}.notebook-divider{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--border);padding:13px 0 22px;font-family:var(--mono);font-size:10px;color:#839072}.notebook-divider>span:first-child{color:#586d4c}.home-notebook-grid{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:35px}.recent-pages h2{font-size:18px;font-weight:500;display:flex;align-items:center;gap:10px;margin-bottom:6px}.section-description{font-size:12px;margin-bottom:15px}.entry-index{list-style:none;padding:0;margin:15px 0 20px}.entry-index li{display:flex;align-items:center;gap:12px;padding:15px 0;border-top:1px dashed #d4d9c7}.entry-number{align-self:flex-start;font-family:var(--mono);font-size:10px;color:#9da38f;padding-top:3px}.entry-index a{flex:1}.entry-index strong{display:block;font-size:13px;font-weight:500;line-height:1.5}.entry-index a>span{display:block;margin-top:5px;font-family:var(--mono);color:#858e77;font-size:9px}.entry-index a>span>span{color:#b5bba7;padding:0 5px}.entry-index svg{color:#82916e}.text-link{font-family:var(--mono);font-size:10px;color:var(--blue);border-bottom:1px solid #bcc8b0;padding-bottom:4px}.index-message{border-left:2px solid #c4ceb5;padding:10px 14px;background:#f0f2e6;font-size:12px}.index-message a{text-decoration:underline;text-underline-offset:3px}.first-query{align-self:start;background:#283026;border:1px solid #464e3f;border-radius:2px;box-shadow:4px 4px #dfe2d5;color:#d0d8c2}.terminal-caption{display:flex;align-items:center;gap:9px;border-bottom:1px solid #434c3b;padding:10px 12px;color:#b6c0a6;font-family:var(--mono);font-size:10px}.terminal-caption>span:last-child{margin-left:auto;font-size:9px;color:#8d9b7d}.first-query pre{padding:18px 15px 5px;margin:0;overflow-x:auto;font-family:var(--mono);font-size:10px;line-height:1.9}.first-query code{font-family:inherit}.code-comment{color:#93a080;font-size:10px}.code-keyword{color:#bed297}.first-query>p{border-top:1px dashed #46513a;margin:18px 15px 0;padding:13px 0 17px;font-family:var(--mono);font-size:10px;line-height:1.9;color:#9ca68d}.personal-signoff{margin-top:48px;border-top:1px solid var(--border);padding:20px 0 0;display:flex;gap:10px;font-family:var(--mono);font-size:10px;color:#a0a78e}.personal-signoff p{margin:0;color:#7d886d}.personal-body{max-width:660px;border-top:1px solid var(--border);padding-top:27px}.personal-body h2{font-size:21px;font-weight:500}.personal-body p,.personal-body li{color:var(--muted);font-size:14px;line-height:1.9}.personal-body ul{padding-left:20px;margin-bottom:28px}.mono-label{font-family:var(--mono);color:#869570;font-size:11px;display:block;margin-bottom:20px}.now-list{list-style:none;padding:0!important}.now-list li{margin-bottom:17px}.now-list span{color:#8a986f;font-family:var(--mono);margin-right:8px}[data-theme=dark]{--bg: #1d231e;--surface: #252d25;--text: #dadfcd;--muted: #a3b09a;--border: #3e4838;--blue: #b1c993;--blue-soft: #303e2c;--green: #b1c993;--green-soft: #2a3627;background:#171d17}[data-theme=dark] body{background-image:radial-gradient(#9baa7720 .65px,transparent .65px)}[data-theme=dark] .site-header{border-color:#3e4838}[data-theme=dark] .left-sidebar{background:#222a21;border-color:#3e4838}[data-theme=dark] .left-sidebar details[open] summary,[data-theme=dark] .chapter-links a.active{background:#33402d;color:#c0d5a9}[data-theme=dark] .chapter-links:before{background:#48543c}[data-theme=dark] .callout,[data-theme=dark] .callout.goal{background:#2b3727;border-left-color:#829569;color:#c4d7ab}[data-theme=dark] .callout p,[data-theme=dark] .callout.goal p,[data-theme=dark] .subtitle,[data-theme=dark] .article-prose{color:#b1bda6}[data-theme=dark] .side-card{border-top-color:#49533e}[data-theme=dark] .previous-next>a,[data-theme=dark] .featured-grid .note-card,[data-theme=dark] .index-message{background:#293325;border-color:#46543b}[data-theme=dark] .featured-grid .note-card{box-shadow:3px 3px #141c13}[data-theme=dark] footer{background:#232d21;border-color:#44503a;color:#c0c9b3}[data-theme=dark] footer .wordmark{color:#c2d2ae}[data-theme=dark] footer>span,[data-theme=dark] .personal-signoff p,[data-theme=dark] .file-kind,[data-theme=dark] .personal-greeting{color:#a2b38f}[data-theme=dark] .intro-writing>p:not(.personal-greeting){color:#adbaa1}[data-theme=dark] .notebook-link{color:#bdcea9}[data-theme=dark] .desk-note{background:#363d27;border-color:#5d6643}[data-theme=dark] .desk-note p{color:#cbd2ab}[data-theme=dark] .desk-note small,[data-theme=dark] .desk-note-label{color:#b2ba92}[data-theme=dark] .first-query{box-shadow:4px 4px #141b13}[data-theme=dark] .editor-toolbar{background:#283123}[data-theme=dark] .primary,[data-theme=dark] .primary-link{background:#476240;border-color:#617b51}@media(min-width:1450px){.personal-page{padding:42px 60px 28px}.notebook-intro{grid-template-columns:minmax(0,1fr) 210px;gap:70px}.home-notebook-grid{grid-template-columns:minmax(0,1fr) 300px;gap:55px}}@media(max-width:1150px){.site-header{gap:23px}.top-nav{gap:17px}.wordmark{font-size:14px}.personal-page{padding:30px}.notebook-intro{gap:22px;grid-template-columns:minmax(0,1fr) 165px}.desk-note{padding:17px}.home-notebook-grid{grid-template-columns:minmax(0,1fr) 225px;gap:22px}}@media(max-width:950px){.wordmark .brand-prompt{display:none}.top-nav{gap:12px}.notebook-intro{grid-template-columns:1fr}.desk-note{display:none}.home-notebook-grid{grid-template-columns:1fr}.first-query{max-width:370px}.intro-writing h1{font-size:34px}.site-header{gap:16px}}@media(max-width:720px){.site-header{height:auto;padding:15px 16px}.top-nav{gap:25px}.top-nav a.active:after{bottom:-3px}.wordmark{font-size:13px}.search input{font-size:10px;width:128px}.notes-layout{border:0}.personal-page{padding:24px 22px}.file-kind{font-size:9px}.file-heading{font-size:10px}.notebook-intro{padding:29px 0 30px}.intro-writing h1{font-size:32px}.notebook-divider{font-size:9px;gap:8px}.notebook-divider span:last-child{max-width:120px;text-align:right}.personal-signoff{font-size:9px}.article-header h1{font-size:29px}.left-sidebar.open{background:#f1f0e7}[data-theme=dark] .left-sidebar.open{background:#222a21}footer .wordmark{font-size:12px}footer .footer-note{width:100%;font-size:9px}}body,[data-theme=dark] body{background-image:none}.site-header{box-shadow:none;border-color:var(--border)}.wordmark{font-family:DM Sans,sans-serif;font-size:19px;font-weight:650;letter-spacing:-.6px}.wordmark .brand-prompt{display:none}.top-nav{font-family:inherit;font-size:13px;gap:26px}.search input{font-family:inherit;font-size:12px;border-radius:6px}.left-sidebar{top:82px;max-height:calc(100vh - 82px)}.lab-icon{box-shadow:none;border-radius:6px;border-color:var(--border)}.lab-brand strong{font-family:inherit;font-size:15px;font-weight:600}.lab-brand small,.overview-link,.left-sidebar summary,.learning-public a{font-family:inherit;font-size:12px}.chapter-links a{font-size:12px}.learning-public{border-top-style:solid;padding-top:22px}.sidebar-comment{font-family:inherit;font-size:10px;letter-spacing:1px}.personal-page{padding-top:40px;padding-bottom:40px}.file-heading{font-family:inherit;font-size:12px;color:var(--muted)}.file-kind{font-size:11px;color:var(--muted)}.notebook-intro{padding:58px 0 56px;align-items:center}.personal-greeting{font-family:inherit;font-size:13px;color:var(--blue)}.intro-writing h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(36px,3.7vw,54px);line-height:1.12;font-weight:400;letter-spacing:-1.7px;text-wrap:balance}.intro-writing>p:not(.personal-greeting){font-size:16px;line-height:1.85;color:var(--muted);max-width:570px}.notebook-link{font-family:inherit;font-size:13px;font-weight:600}.desk-note{transform:none;box-shadow:none;background:var(--surface);border:1px solid var(--border);border-radius:8px}.desk-note-label{color:var(--muted);font-family:inherit;font-size:10px;letter-spacing:1.3px}.desk-note p{font-family:inherit;font-size:17px;line-height:1.8;color:var(--text)}.desk-note small{color:var(--muted)}.notebook-divider{color:var(--muted);font-family:inherit;font-size:11px;padding-top:17px}.notebook-divider>span:first-child{color:var(--blue);letter-spacing:1.2px;font-weight:600}.recent-pages h2{font-size:22px;font-weight:600}.section-description{font-size:14px}.entry-index li{border-top:1px solid var(--border);padding:19px 0}.entry-index strong{font-size:15px;font-weight:550}.entry-index a>span{font-family:inherit;font-size:12px;color:var(--muted)}.entry-number{font-size:11px;color:var(--muted)}.text-link{font-family:inherit;font-size:13px}.first-query{border-radius:8px;box-shadow:none}.first-query pre{font-size:12px;padding:24px 18px 10px}.terminal-caption{padding:12px 16px;font-size:11px}.first-query>p{font-family:inherit;font-size:12px;border-top-style:solid}.personal-signoff{font-family:inherit;font-size:12px}.personal-signoff p{color:var(--muted)}.personal-body p,.personal-body li{font-size:16px}.category-card:hover,.note-card:hover{box-shadow:none;transform:none}.category-card h2{font-family:inherit;font-size:18px;font-weight:600}.category-card p,.note-card p{font-size:14px}.note-card small,.toc a,.progress-caption{font-size:11px}.featured-grid .note-card{box-shadow:none;border-radius:6px}.article-header h1{font-size:clamp(30px,3vw,40px)}footer{font-family:inherit;font-size:12px;background:var(--surface);border-color:var(--border)}footer .wordmark{font-size:16px}footer>span{color:var(--muted)}@media(max-width:950px){.top-nav{gap:16px}.wordmark{font-size:16px}.notebook-intro{padding:40px 0}}@media(max-width:720px){.site-header{gap:10px}.top-nav{gap:25px;font-size:12px}.wordmark{font-size:15px}.search input{width:120px}.personal-page{padding:25px 22px 32px}.file-heading{flex-wrap:wrap;font-size:11px}.intro-writing h1{font-size:39px}.intro-writing>p:not(.personal-greeting){font-size:15px}.notebook-divider{font-size:10px}.first-query{max-width:none}footer .footer-note{font-size:11px}}@media(prefers-reduced-motion:reduce){.category-card,.note-card{transition:none}}:root{--serif: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--measure: 680px;--rule: var(--border)}.page-intro h1,.overview-page>h1,.article-header h1,.project h2,.topic-heading h2,.empty h1{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;line-height:1.12;text-wrap:balance;color:var(--text)}.eyebrow{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin:0}.eyebrow a:hover{text-decoration:underline;text-underline-offset:3px}.lede{font-size:17px;line-height:1.7;color:var(--muted);max-width:620px;margin:0}.site-header{gap:22px}.site-brand{display:inline-flex;align-items:center;gap:9px;flex-shrink:0}.site-brand>.brand-name{color:inherit}.brand-mark{display:block;flex:none;width:32px;height:32px}footer .brand-mark{width:26px;height:26px}.sidebar-toggle{display:grid;place-items:center;margin-left:-9px;color:var(--muted);border-radius:6px}.sidebar-toggle:hover,.sidebar-toggle[aria-expanded=true]{color:var(--text)}.top-nav{margin-left:14px}.top-nav a{transition:color .15s ease}.top-nav a:hover{color:var(--text)}.search input{font-size:13px;width:220px;padding-right:30px}.search input::-webkit-search-cancel-button{display:none}.search-key{position:absolute;right:9px;font-family:var(--mono);font-size:11px;line-height:1;padding:3px 5px;color:var(--muted);border:1px solid var(--rule);border-radius:4px;pointer-events:none}.search input:focus+.search-key{display:none}.search-results{width:420px;border-radius:8px;box-shadow:0 14px 34px -18px #00000040}.search-results a{padding:12px 16px}.search-results a:last-child{border-bottom:0}.search-results a.selected{background:var(--surface)}.search-results a>small{font-size:11px;letter-spacing:.06em;text-transform:uppercase}.search-results a>span{display:block;font-size:14px;font-weight:600;color:var(--text);margin:2px 0 3px}.search-results a>p{padding:0;font-size:12.5px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-empty{font-size:13px}@media(min-width:721px){.notes-layout.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.notes-layout.sidebar-collapsed .left-sidebar{display:none}}.left-sidebar{gap:6px;padding:28px 18px 24px;font-size:13px}.left-sidebar nav{margin-top:6px}.sidebar-heading{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;padding:0 8px}.overview-link{font-size:13px;padding:7px 8px;color:var(--muted)}.overview-link:hover,.topic-overview:hover,.chapter-links a:hover{color:var(--text)}.left-sidebar summary{justify-content:flex-start;gap:8px;padding:7px 8px;font-size:13px}.left-sidebar summary>span{display:block;flex:1;min-width:0}.left-sidebar summary>small{font-family:var(--mono);font-size:11px}.left-sidebar summary>svg{color:var(--muted);transition:transform .15s ease}.left-sidebar details[open]>summary>svg{transform:rotate(90deg)}.left-sidebar details[open]>summary,[data-theme=dark] .left-sidebar details[open]>summary{background:transparent;color:var(--text)}.left-sidebar summary:hover{background:var(--blue-soft)}.topic>summary{font-weight:600}.topic-body{padding:2px 0 8px 12px;margin-left:14px;border-left:1px solid var(--rule)}.topic-overview{display:block;padding:5px 8px;font-size:12.5px;color:var(--muted);border-radius:4px}.topic-overview.active,.overview-link.active{color:var(--blue);background:var(--blue-soft)}.series-group{margin:0!important}.series-group>summary{font-size:12.5px;line-height:1.4;color:var(--muted);padding:6px 8px}.chapter-links{list-style:none;margin:0;padding:2px 0 6px 12px}.chapter-links:before{display:none}.chapter-links a{align-items:baseline;gap:9px;padding:5px 8px;font-size:12.5px;line-height:1.45;border-radius:4px}.chapter-number{flex:none;min-width:14px;font-family:var(--mono);font-size:10.5px;color:var(--muted);text-align:right}.chapter-links a.active,[data-theme=dark] .chapter-links a.active{background:var(--blue-soft);color:var(--blue);border-radius:4px}.chapter-links a.active .chapter-number{color:var(--blue)}.topic-empty{display:block;padding:5px 8px;color:var(--muted);font-size:13px}.learning-public{margin-top:22px;padding:18px 8px 0}.learning-public p{font-size:12.5px;line-height:1.6;margin:0 0 10px}.learning-public a{font-size:12.5px}.note-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.note-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:baseline;gap:4px 14px;padding:15px 0;border-bottom:1px solid var(--rule)}.note-row-number{font-family:var(--mono);font-size:12px;color:var(--muted)}.note-row a strong{display:block;font-size:16px;font-weight:600;line-height:1.35;color:var(--text);transition:color .15s ease}.note-row a:hover strong{color:var(--blue)}.note-row a span{display:block;margin-top:4px;font-size:14px;line-height:1.55;color:var(--muted)}.note-row small{font-size:12px;white-space:nowrap}.recently-revised ul{list-style:none;margin:0;padding:0}.recently-revised li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:14px}.recently-revised a:hover{color:var(--blue)}.recently-revised time{flex:none;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.text-link{display:inline-block;margin-top:18px;font-size:14px;font-weight:600;transition:border-color .15s ease}.text-link:hover{border-bottom-color:var(--blue)}.personal-page{max-width:1040px;padding:64px 48px 72px}.page-intro{padding-bottom:44px}.page-intro.with-aside{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:56px;align-items:end}.page-intro h1{font-size:clamp(32px,3.6vw,46px);max-width:17em;margin:14px 0 22px}.approach{border-left:1px solid var(--rule);padding:4px 0 4px 24px}.approach ol{list-style:none;margin:14px 0 0;padding:0;font-family:var(--serif);font-size:18px;line-height:1.75;color:var(--text)}.explore{border-top:1px solid var(--rule);padding:22px 0 8px}.explore-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px;border-top:1px solid var(--rule)}.explore-grid a{display:flex;flex-direction:column;padding:22px 26px 22px 0;border-bottom:1px solid var(--rule)}.explore-grid a+a{padding-left:26px;border-left:1px solid var(--rule)}.explore-grid h3{font-family:var(--serif);font-size:22px;font-weight:400;letter-spacing:-.01em;margin:0 0 8px;transition:color .15s ease}.explore-grid a:hover h3{color:var(--blue)}.explore-grid p{font-size:14px;line-height:1.6;margin:0 0 16px}.explore-grid span{margin-top:auto;font-size:13px;font-weight:600;color:var(--blue)}.home-columns{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;padding-top:40px}.home-columns h2:not(.eyebrow){font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:-.01em;margin:0 0 16px}.home-aside{display:grid;gap:34px;align-content:start}.home-aside h3{font-family:var(--serif);font-size:20px;font-weight:400;margin:12px 0 8px}.home-aside p{font-size:14px;line-height:1.6;margin:0}.home-aside .recently-revised ul{margin-top:8px}.home-aside .recently-revised li{font-size:13.5px}.personal-body{max-width:var(--measure);padding-top:34px}.personal-body h2{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:-.01em;margin:34px 0 12px}.personal-body h2:first-child{margin-top:0}.personal-body p,.personal-body li{font-size:17px;line-height:1.75}.personal-body a{color:var(--blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}dl.now-list{margin:0}dl.now-list>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;padding:18px 0;border-bottom:1px solid var(--rule)}dl.now-list dt{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:7px}dl.now-list dd{margin:0;font-size:17px;line-height:1.7;color:var(--text)}.updated{margin-top:22px;font-size:13px!important}.projects{border-top:1px solid var(--rule)}.project{padding:40px 0 8px}.project+.project{border-top:1px solid var(--rule);margin-top:32px}.project h2{font-size:32px;margin:0 0 12px}.project-facts{display:grid;gap:8px;margin:26px 0 0;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.project-facts>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;font-size:14px}.project-facts dt,.project-section h3{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.project-facts dt{padding-top:3px}.project-facts dd{margin:0;color:var(--text);line-height:1.6}.project-section{display:grid;grid-template-columns:130px minmax(0,var(--measure));gap:20px;padding:26px 0;border-bottom:1px solid var(--rule)}.project-section h3{margin:0;padding-top:6px;line-height:1.4}.project-section p{font-size:16px;line-height:1.75;margin:0 0 14px}.project-section p:last-child{margin-bottom:0}.overview-page{max-width:900px;padding:64px 48px 72px}.overview-page>h1{font-size:clamp(34px,3.8vw,48px);margin:14px 0 18px}.intro{font-size:17px;line-height:1.7;max-width:620px;margin-bottom:44px}.section-label{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:0}.section-label span:last-child{font-weight:400;letter-spacing:.04em;text-transform:none;font-size:12px}.start-here,.topic-section,.overview-page .recently-revised{padding-top:40px}.start-here h2,.overview-page .recently-revised h2,.related h2{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}.topic-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 16px;margin-bottom:8px}.topic-heading h2{font-size:30px;margin:0}.topic-heading h2 a:hover{color:var(--blue)}.topic-heading p{grid-column:1 / -1;font-size:15px;max-width:620px;margin:4px 0 0}.topic-heading small{font-size:12px}.syllabus{padding-top:26px}.syllabus>header{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.syllabus h3{font-size:18px;font-weight:600;letter-spacing:-.01em;margin:0}.syllabus>header small{flex:none;font-size:12px}.syllabus>p{font-size:14.5px;max-width:620px;margin:6px 0 0}.syllabus .note-rows{margin-top:14px}.reading-progress{position:fixed;top:82px;left:0;right:0;height:2px;z-index:19;pointer-events:none}.reading-progress>div{height:100%;background:var(--blue);transform-origin:left;opacity:.7}.article-grid{grid-template-columns:minmax(0,720px) 220px;justify-content:center;column-gap:clamp(32px,5vw,72px);padding:48px 40px 72px}.article-main{max-width:720px}.breadcrumbs{flex-wrap:wrap;gap:8px;font-family:inherit;font-size:13px;color:var(--muted);margin-bottom:34px}.breadcrumbs a:hover{color:var(--text)}.article-kicker{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.14em;margin-bottom:14px}.article-header{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--rule)}.article-header h1{font-size:clamp(32px,3.6vw,44px);margin-bottom:16px}.subtitle{font-size:19px;line-height:1.55;margin-bottom:20px}.article-meta{flex-wrap:wrap;gap:4px 0;font-family:inherit;font-size:13px;margin:0}.article-meta>span+span:before{content:"·";padding:0 9px;color:var(--rule)}.article-prose{max-width:var(--measure);line-height:1.75}.article-prose h2{font-family:var(--serif);font-weight:400;font-size:28px;letter-spacing:-.015em}.article-prose h2,.article-prose h3,.article-prose h4{scroll-margin-top:104px}.article-prose :not(pre)>code{font-size:.88em}.code-block pre{font-size:13.5px;line-height:1.7}.code-toolbar,.code-toolbar button{font-size:11.5px}.math-block{margin:26px 0;padding:4px 0;overflow-x:auto;overflow-y:hidden;color:var(--text)}.math-block.math-source{text-align:center}.math-inline{color:var(--text)}.math-inline .katex{font-size:1.05em}.editor-inline-math{display:inline-block}.checkbox-label{display:flex;align-items:center;gap:8px}.checkbox-label input{width:auto}.article-end{flex-wrap:wrap;font-family:inherit;font-size:13px;margin-top:44px}.article-end .tags{margin:0}.article-end button{font-size:13px}.tags a{font-size:12px;padding:3px 9px;transition:color .15s ease,border-color .15s ease}.tags a:hover{color:var(--blue);border-color:var(--blue)}.previous-next{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:8px 0 44px}.previous-next>a{padding:18px 20px;transition:border-color .15s ease}.previous-next>a:hover{border-color:var(--blue)}.previous-next>a.next{text-align:right}.previous-next>a.next small{justify-content:flex-end}.previous-next small{font-size:12px;letter-spacing:.04em}.previous-next strong{font-size:15px;font-weight:600;line-height:1.4}.right-sidebar{top:114px;max-height:calc(100vh - 130px)}.side-card{font-size:13px;padding:16px 0 6px;margin-bottom:26px}.side-card h2,.side-card summary{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.toc a{font-size:13px;line-height:1.45;padding-top:2px;padding-bottom:2px;transition:color .15s ease}.toc a:hover{color:var(--text)}.lesson-progress{list-style:none;margin:0;padding:0;gap:9px}.lesson-progress a{align-items:baseline;font-size:13px;line-height:1.45;transition:color .15s ease}.lesson-progress a:hover{color:var(--text)}.lesson-progress a>span:first-child{flex:none;font-family:var(--mono);font-size:11px}.lesson-progress .current{font-weight:600}.progress-caption{font-family:inherit;font-size:12px;margin:14px 0 0}.margin-note{font-family:inherit;font-size:12px}footer nav a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}@media(max-width:1150px){.article-grid{grid-template-columns:minmax(0,720px) 200px;padding:40px 28px 64px}.personal-page,.overview-page{padding:48px 32px 64px}.home-columns{grid-template-columns:minmax(0,1fr) 250px;gap:36px}.search input{width:170px}}@media(max-width:950px){.site-header{gap:12px}.brand-mark{width:26px;height:26px}.search input{width:130px}.page-intro.with-aside,.home-columns{grid-template-columns:1fr;gap:34px}.approach{border-left:0;border-top:1px solid var(--rule);padding:20px 0 0}.approach ol{display:grid;grid-template-columns:repeat(2,max-content);gap:0 28px}.right-sidebar{grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule);padding-top:8px;margin-top:16px}.side-card{border-top:0}.top-nav{margin-left:0}}@media(max-width:720px){.site-header{gap:8px 10px}.sidebar-toggle{margin-left:-7px}.top-nav{justify-content:flex-start;gap:20px;font-size:13px;overflow-x:auto;scrollbar-width:none}.top-nav::-webkit-scrollbar{display:none}.top-nav a{white-space:nowrap}.search input{width:clamp(88px,calc(100vw - 278px),132px);font-size:16px;padding-right:10px}.search-key{display:none}.search-results{position:fixed;top:64px;left:12px;right:12px;width:auto;max-width:none}.left-sidebar.open{width:min(300px,86vw);padding-top:22px}.reading-progress{top:0;z-index:30}.personal-page,.overview-page{padding:36px 20px 56px}.page-intro{padding-bottom:32px}.page-intro h1,.overview-page>h1{font-size:32px}.lede,.intro{font-size:16px}.explore-grid{grid-template-columns:1fr}.explore-grid a,.explore-grid a+a{padding:18px 0;border-left:0}.note-row{grid-template-columns:24px minmax(0,1fr)}.note-row small{grid-column:2}.topic-heading h2{font-size:26px}.project h2{font-size:27px}.project-section,.project-facts>div,dl.now-list>div{grid-template-columns:1fr;gap:6px}.project-section h3,dl.now-list dt,.project-facts dt{padding-top:0}.article-grid{padding:28px 20px 56px}.article-header h1{font-size:30px}.subtitle{font-size:17px}.article-prose{font-size:16px}.article-prose h2{font-size:24px}.code-block pre{font-size:12.5px}.previous-next{grid-template-columns:1fr}.previous-next>span{display:none}.previous-next>a.next{text-align:left}.previous-next>a.next small{justify-content:flex-start}}@media(max-width:360px){.site-header{column-gap:6px}.site-brand{gap:6px}.brand-mark{width:24px;height:24px}.site-brand .brand-domain{display:none}}@media(max-width:380px){.approach ol{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{.site-header,.left-sidebar,.right-sidebar,.reading-progress,.article-end,.previous-next,.related,footer{display:none!important}.notes-layout,.article-grid{display:block;border:0;padding:0}.article-prose a{color:inherit}}.article-prose>p:first-of-type{color:var(--text);font-size:1.06em}.left-sidebar details[open] summary,[data-theme=dark] .left-sidebar details[open] summary{background:transparent}.left-sidebar details[open] summary:hover{background:var(--blue-soft)}.left-sidebar details:not([open])>summary,.left-sidebar .series-group>summary{color:var(--muted)}.left-sidebar .series-group[open]>summary{color:var(--text)}.article-meta>span+span:before{color:var(--muted);opacity:.6}.callout,.side-card,.code-block{box-shadow:none}.article-prose th p,.article-prose td p{margin:0}.article-prose th,.article-prose td{font-size:.94em;line-height:1.55;vertical-align:top}@media(min-width:721px){.notes-layout{--sidebar-width: 245px;--sidebar-tint: #f1f0e7;background:linear-gradient(to right,var(--sidebar-tint) calc(var(--sidebar-width) - 1px),var(--rule) calc(var(--sidebar-width) - 1px),var(--rule) var(--sidebar-width),var(--bg) var(--sidebar-width))}[data-theme=dark] .notes-layout{--sidebar-tint: #222a21}.notes-layout.sidebar-collapsed{background:var(--bg)}.left-sidebar{border-right:0;background:transparent}}@media(min-width:721px)and (max-width:1150px){.notes-layout{--sidebar-width: 215px}}
