:root{--font-family:system-ui, -apple-system, "Segoe UI", Roboto, Emoji, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;--code-font-family:"SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-size:16px;--line-height:1.5rem;--header-height:3.5rem;--bg:#fff;--bg-header:#f8f8f8;--bg-soft:#f8f8f8;--text:#161209;--text-muted:#a9a9b3;--accent:#2d96bd;--accent-hover:#ef3982;--border:#f0f0f0;--border-strong:#e8e8e8;--code-bg:#272c34;--code-text:#e5e9f0;--inline-code:#d6336c;--shadow:0 0 18px #0000001a}:root[data-theme=dark]{--bg:#252627;--bg-header:#252627;--bg-soft:#252627;--text:#a9a9b3;--text-muted:#5d5d5f;--accent:#55bde2;--accent-hover:#bdebfc;--border:#363636;--border-strong:#3c3c3d;--code-bg:#272c34;--code-text:#e5e9f0;--inline-code:#ff7b9c;--shadow:0 0 18px #00000080}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{padding-top:var(--header-height);background:var(--bg);color:var(--text);font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height);margin:0;transition:background .3s,color .3s}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-hover)}img{max-width:100%;height:auto}.container{max-width:720px;margin:0 auto;padding:0 20px}@keyframes flipInX{0%{opacity:0;transform:perspective(400px)rotateX(-20deg)}to{opacity:1;transform:perspective(400px)rotateX(0)}}@keyframes pulse{0%{opacity:.6}to{opacity:1}}.page-title{animation:.5s pulse}.site-header{height:var(--header-height);line-height:var(--header-height);background:var(--bg-header);z-index:150;box-shadow:none;transition:box-shadow .3s;position:fixed;top:0;left:0;right:0}.site-header:hover,.site-header.scrolled{box-shadow:var(--shadow)}.header-inner{align-items:center;gap:20px;max-width:1100px;height:100%;margin:0 auto;padding:0 20px;display:flex}.site-title{color:var(--text);font-size:1.35rem;font-weight:700;line-height:var(--header-height);white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.site-title:hover{color:var(--accent)}.site-logo{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-family:Georgia,Times New Roman,serif;font-size:.9rem;display:inline-flex}.site-nav{flex:1;align-items:center;gap:4px;display:flex}.site-nav a.menu-item{color:var(--text);font-size:.95rem;line-height:var(--header-height);padding:0 10px;position:relative}.site-nav a.menu-item:hover{color:var(--accent)}.site-nav a.menu-item.active{color:var(--accent);font-weight:600}.site-nav a.menu-item.active:after{content:"";background:var(--accent);border-radius:1px;height:2px;position:absolute;bottom:8px;left:10px;right:10px}.header-actions{align-items:center;gap:6px;display:flex}.theme-toggle{cursor:pointer;width:32px;height:32px;color:var(--text);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:15px;line-height:1;transition:background .15s,color .15s;display:inline-flex}.theme-toggle:hover{background:var(--border);color:var(--accent)}.menu-toggle{cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;justify-content:space-between;width:32px;height:32px;padding:7px 6px;display:none}.menu-toggle span{background:var(--text);border-radius:1px;width:100%;height:2px;transition:transform .2s,opacity .2s;display:block}.menu-toggle.open span:first-child{transform:translateY(6px)rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.mobile-menu{top:var(--header-height);background:var(--bg-header);border-top:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:var(--shadow);z-index:149;flex-direction:column;padding:8px 20px;display:none;position:fixed;left:0;right:0}.mobile-menu.open{display:flex}.mobile-menu a.menu-item{color:var(--text);border-bottom:1px dashed var(--border);padding:10px 0;font-size:1rem}.mobile-menu a.menu-item:last-of-type{border-bottom:none}.mobile-menu a.menu-item.active{color:var(--accent);font-weight:600}.search-toggle-btn{cursor:pointer;width:32px;height:32px;color:var(--text);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:15px;transition:background .15s,color .15s;display:inline-flex}.search-toggle-btn:hover{background:var(--border);color:var(--accent)}.search-panel{top:var(--header-height);z-index:149;width:min(680px,100% - 32px);display:none;position:fixed;left:50%;transform:translate(-50%)}@keyframes dropIn{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.search-panel.open{animation:.18s dropIn;display:block}.search-panel .pagefind-ui{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;max-height:70vh;padding:12px;overflow-y:auto}.home-profile{text-align:center;padding:3rem 0 1rem}.home-avatar{background:var(--bg-soft);border:3px solid var(--border);border-radius:50%;width:7rem;height:7rem;margin-bottom:1rem;transition:transform .3s;display:inline-block;overflow:hidden}.home-avatar:hover{transform:rotate(6deg)scale(1.04)}.home-avatar img{object-fit:cover;width:100%;height:100%}.home-avatar .avatar-letter{width:100%;height:100%;color:var(--accent);justify-content:center;align-items:center;font-family:Georgia,Times New Roman,serif;font-size:2.6rem;display:flex}.home-title{margin:.5rem 0;font-size:1.3rem;font-weight:700}.home-subtitle{color:var(--text-muted);min-height:1.5rem;margin:.5rem 0;font-size:1rem}.home-subtitle .typeit-cursor{color:var(--accent);animation:1s step-start infinite blink}@keyframes blink{50%{opacity:0}}.home-links{margin:.75rem 0;font-size:1.4rem}.home-links a{color:var(--text-muted);justify-content:center;align-items:center;margin:0 .4rem;transition:color .15s,transform .15s;display:inline-flex}.home-links a:hover{color:var(--accent);transform:translateY(-2px)}.home-links svg{fill:currentColor;width:1.35rem;height:1.35rem}.post-list{margin:1.5rem 0 3rem;padding:0;list-style:none}.summary{border-bottom:1px dashed var(--border);padding:1.2rem 0 1rem}.summary .featured-image{aspect-ratio:3;border-radius:8px;width:100%;margin:.4rem auto .8rem;position:relative;overflow:hidden}.summary .featured-image img{object-fit:cover;width:100%;height:100%;transition:transform .4s;position:absolute;top:0;left:0}.summary .featured-image:hover img{transform:scale(1.03)}.summary-title{color:var(--text);overflow-wrap:break-word;word-break:break-word;margin:.4rem 0;font-size:1.25rem;font-weight:700;line-height:140%;display:block}.summary-title:hover{color:var(--accent)}.summary-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.875rem;display:flex}.summary-meta .author{color:var(--text);font-weight:500}.summary-content{color:var(--text-muted);-webkit-line-clamp:3;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;-webkit-box-orient:vertical;margin-top:.3rem;font-size:1rem;line-height:1.5;display:-webkit-box;overflow:hidden}.summary-content p{margin:0;display:inline}.summary-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:.5rem;font-size:.875rem;display:flex}.summary-footer .post-meta{color:var(--text-muted);align-items:center;gap:8px;display:flex}.summary-footer .read-more{color:var(--accent);font-weight:500}.summary-footer .read-more:hover{color:var(--accent-hover)}.post-tags{flex-wrap:wrap;gap:4px;display:inline-flex}.post-tags .tag{color:var(--text-muted);font-size:.85rem}.post-tags .tag:hover{color:var(--accent)}.meta-dot{color:var(--text-muted);opacity:.5}.archive{padding:2rem 0 3rem}.group-title{border-bottom:1px solid var(--border);margin:1.8rem 0 .6rem;padding-bottom:.4rem;font-size:1.3rem}.archive-item{justify-content:space-between;align-items:baseline;gap:12px;padding:5px 0;display:flex}.archive-item-link{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.archive-item-link:hover{color:var(--accent)}.archive-item-date{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.85rem}.archive-count{color:var(--text-muted);background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;margin-left:8px;padding:1px 9px;font-size:.75rem;font-weight:400}.archive-year{margin:1.6rem 0}.archive-year-title{border-bottom:1px solid var(--border);align-items:center;margin:0 0 .4rem;padding-bottom:.4rem;font-size:1.3rem;display:flex}.archive-month{margin:.9rem 0 .9rem 10px}.archive-month-title{color:var(--accent);align-items:center;margin:0 0 .5rem;font-size:1.05rem;display:flex}.archive-week{margin:.6rem 0 .6rem 10px}.archive-week-title{color:var(--text-muted);margin:0 0 .3rem;font-size:.85rem;font-weight:600}.archive-post-list{margin:0;padding:0 0 0 4px;list-style:none}.archive-post-list li{justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;display:flex}.archive-post-list a{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.archive-post-list a:hover{color:var(--accent)}.archive-post-date{color:var(--text-muted);flex-shrink:0;font-size:.8rem}.tag-cloud{flex-wrap:wrap;gap:.4rem 1.2rem;margin:1.5rem 0;display:flex}.tag-cloud a{color:var(--text);font-size:1rem}.tag-cloud a:hover{color:var(--accent)}.tag-cloud a sup{color:var(--text-muted);margin-left:2px;font-size:.7em}.categories-card{margin:1.5rem 0 3rem}.card-item{margin-bottom:1.2rem}.card-item-wrapper{border:1px solid var(--border);border-radius:10px;padding:1rem 1.2rem;transition:box-shadow .2s,border-color .2s}.card-item-wrapper:hover{box-shadow:var(--shadow);border-color:var(--accent)}.card-item-title{margin:0 0 .6rem;font-size:1.1rem}.card-item-title a{color:var(--text);font-weight:700}.card-item-title a:hover{color:var(--accent)}.more-post{margin-top:.6rem;font-size:.9rem}.more-single-link{color:var(--accent)}.single{padding:1.5rem 0 3rem}.single-title{overflow-wrap:break-word;word-break:break-word;margin:1.5rem 0 .5rem;font-size:1.6rem;font-weight:700;line-height:140%;animation:.4s flipInX}.post-meta{color:var(--text-muted);font-size:.875rem}.post-meta-line{flex-wrap:wrap;align-items:center;gap:6px;margin:.2rem 0;display:flex}.post-meta-line .post-author a,.post-meta-line .post-category a{color:var(--accent);font-weight:500}.post-meta-line svg{fill:currentColor;vertical-align:-.1em;width:.9rem;height:.9rem}.single .featured-image{border-radius:8px;margin:1.2rem 0;overflow:hidden}.single .featured-image img{width:100%;display:block}.article-body{overflow-wrap:break-word;word-break:break-word;font-size:1rem;line-height:1.7}.article-body h2{border-bottom:1px solid var(--border);margin:1.4rem 0 .6rem;padding-bottom:.3rem;font-size:1.4rem;font-weight:700}.article-body h3{margin:1.2rem 0 .5rem;font-size:1.18rem;font-weight:700}.article-body h4,.article-body h5,.article-body h6{margin:1.1rem 0 .5rem;font-weight:700}.article-body p{margin:.8em 0}.article-body blockquote{border-left:4px solid var(--accent);background:var(--bg-soft);color:var(--text-muted);border-radius:0 8px 8px 0;margin:1em 0;padding:.4em 1.2em}.article-body code{font-family:var(--code-font-family);font-size:.88em}.article-body :not(pre)>code{background:var(--bg-soft);color:var(--inline-code);border:1px solid var(--border);border-radius:4px;padding:.15em .4em}.article-body pre:not(.astro-code){background:var(--bg-soft);border:1px solid var(--border-strong);border-radius:8px;padding:14px 16px;overflow-x:auto}.article-body pre:not(.astro-code) code{font-family:var(--code-font-family);background:0 0}.article-body table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:.95rem}.article-body th,.article-body td{border:1px solid var(--border-strong);text-align:left;padding:7px 12px}.article-body th{background:var(--bg-soft);font-weight:600}.article-body img{cursor:zoom-in;border-radius:6px;margin:1.2em auto;display:block}.article-body hr{border:none;border-top:1px dashed var(--border-strong);margin:2em 0}.article-body ul,.article-body ol{padding-left:1.5em}.article-body li{margin:.3em 0}.katex-display{padding:.4em 0;overflow:auto hidden}.code-block{border:1px solid var(--border-strong);border-radius:8px;margin:1em 0;overflow:hidden}.code-header{background:var(--bg-soft);color:var(--text-muted);border-bottom:1px solid var(--border-strong);user-select:none;justify-content:space-between;align-items:center;padding:.4rem .75rem;font-size:.8rem;display:flex}.code-title{font-family:var(--code-font-family);letter-spacing:.5px}.code-title .arrow{color:var(--accent);margin-right:6px;font-style:normal;transition:transform .2s;display:inline-block}.code-block.collapsed .arrow{transform:rotate(90deg)}.code-actions{align-items:center;gap:12px;display:flex}.code-actions button{cursor:pointer;color:var(--text-muted);font-size:.78rem;font-family:var(--font-family);background:0 0;border:none;padding:0;transition:color .15s}.code-actions button:hover{color:var(--accent)}.code-block pre{background-color:var(--shiki-light-bg);border:none;border-radius:0;margin:0;padding:14px 16px;font-size:.875rem;line-height:1.6;overflow-x:auto}:root[data-theme=dark] .code-block pre{background-color:var(--shiki-dark-bg)}.code-block pre code{color:var(--shiki-light);font-family:var(--code-font-family);background:0 0}:root[data-theme=dark] .code-block pre code{color:var(--shiki-dark)}.code-block pre code span{color:var(--shiki-light)}:root[data-theme=dark] .code-block pre code span{color:var(--shiki-dark)}.code-block.has-lines pre code{counter-reset:step}.code-block.has-lines pre code .line:before{counter-increment:step;content:counter(step);text-align:right;width:1.6em;color:var(--text-muted);user-select:none;border-right:1px solid var(--border);margin-right:1em;padding-right:.6em;display:inline-block}.code-block.collapsed pre{display:none}.admonition{border:1px solid var(--border-strong);border-radius:8px;margin:1em 0;overflow:hidden}.admonition-title{align-items:center;gap:8px;padding:.55rem 1rem;font-weight:600;display:flex}.admonition-title+*{margin-top:0}.admonition>p,.admonition>ul,.admonition>ol,.admonition>div{margin:0;padding:.4rem 1rem .7rem}.admonition p{margin:.4rem 0}.admonition.note{background:#f0f5ff;border-left:4px solid #448aff}.admonition.note .admonition-title{color:#1a3f8f}.admonition.tip,.admonition.hint,.admonition.important{background:#edfff4;border-left:4px solid #00c853}.admonition.tip .admonition-title,.admonition.hint .admonition-title,.admonition.important .admonition-title{color:#008f3d}.admonition.info{background:#ecfbff;border-left:4px solid #00b8d4}.admonition.info .admonition-title{color:#00788a}.admonition.success,.admonition.check,.admonition.done{background:#edfff4;border-left:4px solid #00c853}.admonition.success .admonition-title,.admonition.check .admonition-title,.admonition.done .admonition-title{color:#008f3d}.admonition.question,.admonition.help,.admonition.faq{background:#f3ffe6;border-left:4px solid #64dd17}.admonition.question .admonition-title,.admonition.help .admonition-title,.admonition.faq .admonition-title{color:#4a9f0e}.admonition.warning,.admonition.caution,.admonition.attention{background:#fff7e8;border-left:4px solid #ff9100}.admonition.warning .admonition-title,.admonition.caution .admonition-title,.admonition.attention .admonition-title{color:#b06500}.admonition.danger,.admonition.error,.admonition.failure{background:#fff0f2;border-left:4px solid #ff1744}.admonition.danger .admonition-title,.admonition.error .admonition-title,.admonition.failure .admonition-title{color:#b00020}.admonition.bug{background:#fff0f6;border-left:4px solid #f50057}.admonition.bug .admonition-title{color:#a00038}.admonition.example{background:#f4f0ff;border-left:4px solid #651fff}.admonition.example .admonition-title{color:#4527a0}.admonition.quote,.admonition.cite{background:#fafafa;border-left:4px solid #9e9e9e}.admonition.quote .admonition-title,.admonition.cite .admonition-title{color:#616161}.admonition.abstract,.admonition.summary,.admonition.tldr{background:#ecfff9;border-left:4px solid #00bfa5}.admonition.abstract .admonition-title,.admonition.summary .admonition-title,.admonition.tldr .admonition-title{color:#008674}.admonition.todo{background:#fff7e8;border-left:4px solid #ff9100}.admonition.todo .admonition-title{color:#b06500}:root[data-theme=dark] .admonition{background:0 0}:root[data-theme=dark] .admonition-title{color:var(--text)!important}:root[data-theme=dark] .admonition.note{background:#1b2733}:root[data-theme=dark] .admonition.tip,:root[data-theme=dark] .admonition.hint,:root[data-theme=dark] .admonition.important{background:#1d2e22}:root[data-theme=dark] .admonition.info{background:#1b2e33}:root[data-theme=dark] .admonition.success,:root[data-theme=dark] .admonition.check,:root[data-theme=dark] .admonition.done{background:#1d2e22}:root[data-theme=dark] .admonition.question,:root[data-theme=dark] .admonition.help,:root[data-theme=dark] .admonition.faq{background:#22301b}:root[data-theme=dark] .admonition.warning,:root[data-theme=dark] .admonition.caution,:root[data-theme=dark] .admonition.attention{background:#33291b}:root[data-theme=dark] .admonition.danger,:root[data-theme=dark] .admonition.error,:root[data-theme=dark] .admonition.failure{background:#331f22}:root[data-theme=dark] .admonition.bug{background:#331f2a}:root[data-theme=dark] .admonition.example{background:#251e33}:root[data-theme=dark] .admonition.quote,:root[data-theme=dark] .admonition.cite{background:#2a2a2a}:root[data-theme=dark] .admonition.abstract,:root[data-theme=dark] .admonition.summary,:root[data-theme=dark] .admonition.tldr{background:#1d2e2c}:root[data-theme=dark] .admonition.todo{background:#33291b}.container-wide{max-width:1100px}.post-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:48px;display:grid}.post-layout.no-toc{grid-template-columns:minmax(0,1fr)}.article-body h1,.article-body h2,.article-body h3,.article-body h4{scroll-margin-top:calc(var(--header-height) + 16px)}.toc-sidebar{top:calc(var(--header-height) + 24px);max-height:calc(100vh - var(--header-height) - 48px);padding-right:8px;position:sticky;overflow-y:auto}.toc{font-size:.875rem}.toc-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.toc-title{color:var(--text);letter-spacing:.5px;font-size:1.1rem;font-weight:700}.toc-toggle{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;width:24px;height:24px;font-size:1rem;line-height:1;transition:background .15s,color .15s}.toc-toggle:hover{background:var(--border);color:var(--accent)}.toc-list{border-left:2px solid var(--border);margin:0;padding:0;list-style:none}.toc-list.collapsed{display:none}.toc-item a{color:var(--text-muted);border-left:2px solid #0000;margin-left:-2px;padding:4px 0 4px 14px;line-height:1.5;transition:color .15s,border-color .15s;display:block}.toc-item.depth-3 a{padding-left:26px}.toc-item a:hover{color:var(--accent)}.toc-item a.active{color:var(--accent);border-left-color:var(--accent);font-weight:600}.inline-toc{border:1px solid var(--border);border-radius:8px;margin:1rem 0;padding:.6rem .9rem;display:none}.inline-toc .toc{font-size:.85rem}@media (width<=900px){.post-layout{grid-template-columns:minmax(0,1fr)}.toc-sidebar{display:none}.inline-toc{display:block}}.post-footer{border-top:1px dashed var(--border);margin-top:2.5rem;padding-top:1rem}.post-info-more{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:.6rem;font-size:.875rem;display:flex}.post-share{align-items:center;gap:8px;display:inline-flex}.post-share a{color:var(--text-muted);font-size:.85rem}.post-share a:hover{color:var(--accent)}.post-nav{border-top:1px dashed var(--border);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:1.4rem;padding-top:1rem;display:flex}.post-nav a{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:48%;font-size:.95rem;overflow:hidden}.post-nav a:hover{color:var(--accent)}.post-nav .nav-arrow{color:var(--text-muted);margin:0 4px}.site-footer{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);margin-top:2rem;padding:2rem 0;font-size:.85rem;line-height:1.8}.site-footer a{color:var(--text-muted)}.site-footer a:hover{color:var(--accent)}.footer-line{margin:.2rem 0}.back-to-top{background:var(--bg-soft);border:1px solid var(--border-strong);width:38px;height:38px;color:var(--text-muted);cursor:pointer;opacity:0;visibility:hidden;z-index:120;box-shadow:var(--shadow);border-radius:50%;justify-content:center;align-items:center;font-size:16px;transition:opacity .25s,transform .25s,visibility .25s,background .15s,color .15s;display:flex;position:fixed;bottom:24px;right:24px;transform:translateY(10px)}.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.lightbox{z-index:200;cursor:zoom-out;background:#000000e0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{cursor:default;border-radius:6px;max-width:92vw;max-height:92vh;box-shadow:0 0 60px #0009}.lightbox-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:2rem;line-height:1;position:absolute;top:20px;right:28px}.lightbox-caption{text-align:center;color:#ccc;padding:0 20px;font-size:.85rem;position:absolute;bottom:18px;left:0;right:0}:root{--heat-0:#ebedf0;--heat-0-fg:#57606a;--heat-1:#9be9a8;--heat-1-fg:#1a7f37;--heat-2:#40c463;--heat-2-fg:#116329;--heat-3:#30a14e;--heat-3-fg:#fff;--heat-4:#216e39;--heat-4-fg:#fff}:root[data-theme=dark]{--heat-0:#21262d;--heat-0-fg:#8b949e;--heat-1:#0e4429;--heat-1-fg:#7ee787;--heat-2:#006d32;--heat-2-fg:#7ee787;--heat-3:#26a641;--heat-3-fg:#fff;--heat-4:#39d353;--heat-4-fg:#04260f}.contrib{background:var(--bg);border:1px solid var(--border);border-radius:10px;margin:1.5rem 0;padding:1.1rem 1.2rem}.contrib-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.contrib-title{color:var(--text);font-size:1rem;font-weight:600}.contrib-nav{align-items:center;gap:10px;display:flex}.contrib-select{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:4px 8px;font-size:.85rem}.contrib-select:focus{border-color:var(--accent);outline:none}.contrib-total{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.contrib-grid{gap:2px;width:100%;display:grid}.month-label{color:var(--text-muted);white-space:nowrap;font-size:.68rem;line-height:18px}.weekday{color:var(--text-muted);white-space:nowrap;justify-content:flex-end;align-items:center;padding-right:3px;font-size:.62rem;display:flex}.cell{cursor:default;user-select:none;background:0 0;border-radius:2px}.cell:hover{outline:1px solid var(--accent);outline-offset:-1px}.cell.empty{background:0 0}.heat-0{background:var(--heat-0);color:var(--heat-0-fg)}.heat-1{background:var(--heat-1);color:var(--heat-1-fg)}.heat-2{background:var(--heat-2);color:var(--heat-2-fg)}.heat-3{background:var(--heat-3);color:var(--heat-3-fg)}.heat-4{background:var(--heat-4);color:var(--heat-4-fg)}.contrib-legend{justify-content:flex-end;align-items:center;gap:4px;margin-top:14px;display:flex}.contrib-legend .cell{border-radius:3px;width:12px;height:12px}.legend-label{color:var(--text-muted);margin:0 4px;font-size:.72rem}.contrib-tooltip{background:var(--bg);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow);pointer-events:none;z-index:100;white-space:nowrap;border-radius:8px;padding:6px 12px;font-size:.8rem;display:none;position:fixed}.pagefind-ui{--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--text);--pagefind-ui-background:var(--bg);--pagefind-ui-border:var(--border);--pagefind-ui-tag:var(--bg-soft);--pagefind-ui-font:inherit}.pagefind-ui__search-input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;outline:none;padding:10px 14px;font-size:.95rem}.pagefind-ui__search-input:focus{border-color:var(--accent)}.pagefind-ui__search-input::placeholder{color:var(--text-muted)}.pagefind-ui__result-link{color:var(--accent)}.pagefind-ui__result-excerpt,.pagefind-ui__search-clear{color:var(--text-muted)}.hero{padding:2rem 0 0}.hero h1{margin:0 0 8px;font-size:2rem;line-height:1.3;animation:.4s flipInX}.hero p{color:var(--text-muted);margin:0;font-size:1.02rem}.search-empty{color:var(--text-muted);text-align:center;padding:20px 0}.not-found{text-align:center;padding:90px 20px}.not-found h1{color:var(--accent);margin:0;font-size:5rem}@media (width<=768px){.site-nav{display:none}.menu-toggle{display:flex}.header-inner{justify-content:space-between}.single-title{font-size:1.35rem}.hero h1{font-size:1.6rem}.summary .featured-image{aspect-ratio:2}}@media (width<=600px){.post-nav a{max-width:100%}.home-avatar{width:5.5rem;height:5.5rem}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2)format("woff2"),url(/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff)format("woff"),url(/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Main-Bold.Cx986IdX.woff2)format("woff2"),url(/_astro/KaTeX_Main-Bold.Jm3AIy58.woff)format("woff"),url(/_astro/KaTeX_Main-Bold.waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2)format("woff2"),url(/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff)format("woff"),url(/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2)format("woff2"),url(/_astro/KaTeX_Main-Italic.BMLOBm91.woff)format("woff"),url(/_astro/KaTeX_Main-Italic.3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Main-Regular.B22Nviop.woff2)format("woff2"),url(/_astro/KaTeX_Main-Regular.Dr94JaBh.woff)format("woff"),url(/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2)format("woff2"),url(/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff)format("woff"),url(/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Math-Italic.t53AETM-.woff2)format("woff2"),url(/_astro/KaTeX_Math-Italic.DA0__PXp.woff)format("woff"),url(/_astro/KaTeX_Math-Italic.flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2)format("woff2"),url(/_astro/KaTeX_Script-Regular.D5yQViql.woff)format("woff"),url(/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2)format("woff2"),url(/_astro/KaTeX_Size1-Regular.C195tn64.woff)format("woff"),url(/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2)format("woff2"),url(/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff)format("woff"),url(/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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)format("woff2"),url(/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff)format("woff"),url(/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2)format("woff2"),url(/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff)format("woff"),url(/_astro/KaTeX_Size4-Regular.DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2)format("woff2"),url(/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff)format("woff"),url(/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.18.4"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
