﻿:root{--background-body: #fafafa;--background: #f0f0f1;--background-overlay: #e5e5e6;--border: #e5e5e6;--card-border: #d4d4d5;--selection: #e5e5e6;--text-main: #383a42;--text-bright: #383a42;--text-muted: #a0a1a7;--links: #4078f2;--hover: #a626a4;--inline-code: #e45649;--warning: #c18401}@font-face{font-family:"Newsreader";font-style:normal;font-weight:200 800;font-display:swap;src:url("/fonts/newsreader-normal.woff2") format("woff2")}@font-face{font-family:"Newsreader";font-style:italic;font-weight:200 800;font-display:swap;src:url("/fonts/newsreader-italic.woff2") format("woff2")}@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:100 800;font-display:swap;src:url("/fonts/jetbrains-mono.woff2") format("woff2")}*{box-sizing:border-box}code,pre{font-family:"JetBrains Mono",monospace}:not(pre)>code{font-size:.85em;background:var(--background);color:var(--inline-code);padding:.1em .35em;border-radius:4px}html{font-size:18px}body{margin:0;padding:0 1rem;font-family:"Newsreader",Georgia,serif;font-weight:400;line-height:1.35;color:var(--text-main);background:var(--background-body);word-wrap:break-word;overflow-y:scroll}main{max-width:40rem;margin:1.5rem auto 4rem}.site-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;max-width:40rem;margin:1.5rem auto 0;padding-bottom:1rem;border-bottom:1px solid var(--border)}.site-title{font-size:1.1rem;color:var(--text-bright);font-weight:700}.site-nav a{margin-left:1.25rem;color:var(--text-main)}.site-nav a:first-child{margin-left:0}.site-nav a:hover{color:var(--hover)}.site-nav a.active{color:var(--text-bright)}.site-nav a.active::before{content:"→ "}.site-footer{max-width:40rem;margin:4rem auto 2rem;text-align:center;color:var(--text-muted);opacity:.6;font-size:.8rem}.site-footer a{color:inherit}.site-footer a:hover{color:var(--hover)}.site-footer .sep{margin:0 .5rem;opacity:.6}::selection{background:var(--selection);color:var(--text-bright)}a{color:var(--links);text-decoration:none;transition:color .1s ease}a:hover{color:var(--hover)}.prose a,.list-of-posts a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:color-mix(in srgb, var(--links) 45%, rgba(0,0,0,0))}.prose a:hover,.list-of-posts a:hover{text-decoration-color:var(--hover)}.prose a.heading-anchor{text-decoration:none}.prose .footnote-reference{font-size:.75em;line-height:0}.prose .footnote-reference a{text-decoration:none}.prose .footnotes{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--border);font-size:.88rem;color:var(--text-muted)}.prose .footnotes-list{padding-left:1.25rem}.prose .footnotes-list li{margin:.4rem 0}.prose .footnotes-list p{margin:0}.prose .footnotes-list a[href^="#fr-"]{text-decoration:none;margin-left:.25rem}h1,h2,h3,h4{color:var(--text-bright);font-weight:700;line-height:1.25}h1{font-size:1.9rem;margin:0 0 .6rem;text-align:center}h2{font-size:1.35rem;margin-top:2.4rem}h3{font-size:1.15rem}h4{font-size:1rem;margin:1.5rem 0 .4rem}.article-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2.5em;font-size:.9rem}.article-top a{color:var(--links)}.article-top a:hover{color:var(--hover)}.article-end{margin-top:2.5em;font-size:.9rem}.article-end a{color:var(--links)}.article-end a:hover{color:var(--hover)}.course-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin:1.25rem 0 1rem}.course-card{display:block;color:var(--text-main);border:1px solid var(--card-border);border-radius:4px;overflow:hidden;transition:border-color .12s ease}.course-card:hover{border-color:var(--hover);text-decoration:none}.course-card-head{position:relative;overflow:hidden;border-bottom:1px solid var(--card-border);background:var(--background)}.course-card-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}.course-card-headinner{position:relative;padding:1.2rem 1.2rem .9rem 1.2rem}.course-meta{font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--text-bright);margin-bottom:.1rem}.course-unfinished{color:var(--warning)}.course-card-title{font-size:1.45rem;font-weight:700;line-height:1.2;color:var(--text-bright)}.course-card-body{padding:1rem 1.2rem .9rem 1.2rem}.course-card-body p{margin:0;color:var(--text-main)}.date{font-size:.88rem}.heading-anchor{position:relative;margin-left:.4rem;color:var(--text-muted);font-weight:400;text-decoration:none;cursor:pointer;opacity:0;transition:opacity .12s ease,color .12s ease}h1:hover>.heading-anchor,h2:hover>.heading-anchor,h3:hover>.heading-anchor,h4:hover>.heading-anchor,h5:hover>.heading-anchor,h6:hover>.heading-anchor{opacity:1}.heading-anchor:hover{color:var(--hover)}.heading-anchor.copied{opacity:1;color:var(--text-bright)}.heading-anchor.copied::after{content:"Copied";position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:.45rem;padding:.05rem .4rem;white-space:nowrap;font-size:.68rem;letter-spacing:.02em;color:var(--text-bright);background:var(--background-overlay);border-radius:4px}.course{counter-reset:sec thm}.course h2{counter-reset:subsec thm}.course h2::before{counter-increment:sec;content:counter(sec) "  ";color:var(--text-muted);font-weight:400}.course h3::before{counter-increment:subsec;content:counter(sec) "." counter(subsec) "  ";color:var(--text-muted);font-weight:400}.thmbox{--thm-accent: var(--card-border);counter-increment:thm;margin:1.5rem 0;padding:.75rem 1rem;border:1px solid var(--border);border-left:3px solid var(--thm-accent);border-radius:4px;background:color-mix(in srgb, var(--thm-accent) 7%, rgba(0,0,0,0))}.thmbox-definition{--thm-accent: #4078f2}.thmbox-theorem{--thm-accent: #a626a4}.thmbox-proposition{--thm-accent: #50a14f}.thmbox-lemma{--thm-accent: #0184bc}.thmbox-corollary{--thm-accent: #d75f00}.thmbox-example{--thm-accent: #c18401}.thmbox-exercise{--thm-accent: #e45649}.thmbox-head{margin:0 0 .35rem;font-weight:600;color:var(--text-bright)}.thmbox-name{color:var(--thm-accent)}.thmbox-name::after{content:" " counter(sec) "." counter(thm)}.thmbox-title{font-weight:400;color:var(--text-muted)}.thmbox-body>:first-child{margin-top:0}.thmbox-body>:last-child{margin-bottom:0}.thmbox-body ol{list-style:none;counter-reset:axiom;margin:.5rem 0;padding-left:2.4rem}.thmbox-body ol>li{counter-increment:axiom;position:relative;margin:.3rem 0}.thmbox-body ol>li::before{content:"(" counter(axiom, lower-roman) ")";position:absolute;left:-2.4rem;width:2rem;text-align:right;color:var(--text-muted)}.prose .circled-list ol{list-style:none;margin:.75rem 0;padding-left:2.8rem}.prose .circled-list ol>li{position:relative;margin:1rem 0}.prose .circled-list ol>li::before{content:counter(list-item);position:absolute;left:-2.8rem;box-sizing:border-box;width:1.75rem;height:1.75rem;border:2px solid #d75f00;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;line-height:1;padding-top:.1rem;color:#d75f00}.proofbox{margin:1.25rem 0;padding:.75rem 1rem;border:1px solid var(--border);border-radius:4px}.proofbox>summary{font-style:italic;color:var(--text-bright);cursor:pointer}.proofbox>summary:hover{color:var(--hover)}.proofbox[open]>summary{margin-bottom:.4rem}.proofbox>:last-child::after{content:" ∎"}h2,h3{scroll-margin-top:1.5rem}.toc{margin:2rem 0 2rem;padding:1rem;border:1px solid var(--border);border-radius:6px;background:var(--background);font-size:.95rem}.toc .toc-title{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:.4rem}.toc ul{list-style:none;margin:0;padding:0}.toc>ul{counter-reset:toc2}.toc>ul>li{margin:.2rem 0;counter-increment:toc2}.toc>ul>li>a::before{content:counter(toc2) "  ";color:var(--text-muted)}.toc>ul>li>ul{counter-reset:toc3}.toc ul ul{padding-left:1.1rem}.toc ul ul li{color:var(--text-muted);counter-increment:toc3}.toc ul ul li>a::before{content:counter(toc2) "." counter(toc3) "  ";color:var(--text-muted)}.toc a{color:var(--links)}.toc a:hover{color:var(--hover)}@media screen and (min-width: 84rem){.toc{position:fixed;top:5rem;left:calc(50% - 36rem);width:12rem;max-height:calc(100vh - 7rem);overflow-y:auto;margin:0;padding:0;border:none;background:rgba(0,0,0,0);font-size:.82rem}.toc .toc-title{margin-bottom:.6rem}.toc a{overflow-wrap:anywhere}.toc a.active,.toc a.active::before{color:var(--text-bright)}}.list-of-notes{list-style:none;padding:0}.list-of-notes li{padding:.4rem 0;display:flex;justify-content:space-between;gap:1rem}pre{background:var(--background);padding:.7rem 1rem;border-radius:6px;overflow-x:auto;font-size:.8rem;line-height:1.5}pre[style]{background:var(--background) !important}.code-wrap{position:relative}.code-wrap:hover .copy-btn,.code-wrap .copy-btn:focus-visible{opacity:1}.copy-btn{position:absolute;top:.4rem;right:.4rem;font-family:"JetBrains Mono",monospace;font-size:.7rem;line-height:1;padding:.3rem .5rem;border:1px solid var(--card-border);border-radius:4px;background:var(--background-body);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease,border-color .15s ease}.copy-btn:hover{color:var(--text-main)}.copy-btn.copied{color:var(--links);border-color:var(--links);opacity:1}@media (hover: none){.copy-btn{opacity:1}}blockquote{border-left:2px solid var(--text-muted);margin-left:0;padding-left:1rem;color:var(--text-muted);font-style:italic}.prose ul,.prose ol{margin:.5rem 0}.prose li{margin:.5rem 0}img{max-width:100%}.figure{margin:2rem auto;text-align:center}.figure-media{display:block;width:100%;margin:0 auto;border-radius:6px}.figure figcaption{margin-top:.5rem;font-size:.85rem;font-style:italic;color:var(--text-muted)}.comments{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--border)}.comments .giscus,.comments .giscus-frame{width:100%}.comments .giscus-frame{border:none;color-scheme:light dark}.tangent,.comment{color:var(--text-muted);font-size:.7rem;font-family:"JetBrains Mono",monospace}.tangent summary,.comment summary{cursor:pointer}.spoiler{border:1px solid var(--card-border);border-radius:6px;padding:0 1rem;margin:1rem 0}.spoiler>summary{cursor:pointer;padding:.6rem 0}.spoiler>summary:hover{color:var(--hover)}.spoiler[open]>summary{border-bottom:1px solid var(--border);margin-bottom:.6rem}.katex{font-size:1.1em}.katex .overline-line,.katex .underline-line{border-bottom-width:.1em !important}.katex .text{font-size:.9090909091em}.katex .text,.katex .text .textrm,.katex .text .textit,.katex .text .textbf,.katex .text .mainrm{font-family:"Newsreader",Georgia,serif}