:is(.ProseMirror,.set-content){font-size:var(--editor-font-size);font-family:var(--font-body);line-height:var(--editor-line-height);color:var(--text);--marker-gutter:calc(1.5 * var(--editor-font-size));--list-indent:calc(1.375 * var(--editor-font-size));--checkbox-size:calc(.95 * var(--editor-font-size));--list-gap:calc(.375 * var(--editor-font-size));--editor-line:calc(var(--editor-line-height) * var(--editor-font-size));width:var(--reading-column);margin-inline:auto}:is(.ProseMirror,.set-content) :where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote){margin:0}:is(.ProseMirror,.set-content) :where(p,li,blockquote,dd,figcaption){text-wrap:pretty}:is(.ProseMirror,.set-content) :where(h1,h2,h3,h4,h5,h6){text-wrap:balance}:is(.ProseMirror,.set-content)>*+*{margin-top:var(--block-gap)}:is(.ProseMirror,.set-content) h1{margin-top:1.75rem;margin-bottom:.85rem;font-size:1.875em;font-weight:700;line-height:1.3}:is(.ProseMirror,.set-content) h2{margin-top:1.5rem;margin-bottom:.75rem;font-size:1.5em;font-weight:600;line-height:1.3}:is(.ProseMirror,.set-content) h3{margin-top:1.15rem;margin-bottom:.6rem;font-size:1.25em;font-weight:600;line-height:1.3}:is(.ProseMirror,.set-content) ul,:is(.ProseMirror,.set-content) ol{padding-left:var(--marker-gutter);margin-left:0}:is(.ProseMirror,.set-content) ul:not([data-type=taskList]),:is(.ProseMirror,.set-content) ol{list-style:none}:is(.ProseMirror,.set-content) ul:not([data-type=taskList])>li,:is(.ProseMirror,.set-content) ol>li{position:relative}:is(.ProseMirror,.set-content) ul:not([data-type=taskList])>li:before{content:"";left:calc(.5 * var(--checkbox-size) - var(--marker-gutter));top:calc(.5 * var(--editor-line));background:var(--text-subtle);border-radius:50%;width:.3em;height:.3em;position:absolute;transform:translate(-50%,-50%)}:is(.ProseMirror,.set-content) ol>li:before{content:counter(list-item) ".";left:calc(-1 * var(--marker-gutter));font-size:.875em;line-height:var(--editor-line);white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-subtle);position:absolute;top:0}:is(.ProseMirror,.set-content) li>ul,:is(.ProseMirror,.set-content) li>ol,:is(.ProseMirror,.set-content) li>div>ul,:is(.ProseMirror,.set-content) li>div>ol{margin-top:var(--list-gap);margin-left:calc(var(--list-indent) - var(--marker-gutter));position:relative}:is(.ProseMirror,.set-content) li>ul:before,:is(.ProseMirror,.set-content) li>ol:before,:is(.ProseMirror,.set-content) li>div>ul:before,:is(.ProseMirror,.set-content) li>div>ol:before{content:"";top:0;bottom:0;left:calc(.5 * var(--checkbox-size) - var(--list-indent));border-left:1px solid var(--border);pointer-events:none;position:absolute}:is(.ProseMirror,.set-content) li+li{margin-top:var(--list-gap)}:is(.ProseMirror,.set-content) ul:not([data-tight]):not([data-type=taskList])>li+li,:is(.ProseMirror,.set-content) ol:not([data-tight])>li+li{margin-top:calc(2 * var(--list-gap))}:is(.ProseMirror,.set-content)>ul+ul,:is(.ProseMirror,.set-content)>ul+ol,:is(.ProseMirror,.set-content)>ol+ul,:is(.ProseMirror,.set-content)>ol+ol{margin-top:var(--list-gap)}:is(.ProseMirror,.set-content) blockquote{border-left:3px solid var(--border);padding-left:calc(var(--marker-gutter) - 3px);color:var(--text-muted)}:is(.ProseMirror,.set-content) a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent-soft);text-decoration-color:var(--accent-soft);text-underline-offset:2px;cursor:pointer}:is(.ProseMirror,.set-content) a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}:is(.ProseMirror,.set-content) code{font-family:var(--font-mono);background-color:var(--bg-elevated);border-radius:4px;padding:.15em .35em;font-size:.875em}:is(.ProseMirror,.set-content) pre{font-family:var(--font-mono);background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;overflow-x:auto}:is(.ProseMirror,.set-content) pre code{background:0 0;padding:0;font-size:.875rem}:is(.ProseMirror,.set-content) pre code .hljs-comment,:is(.ProseMirror,.set-content) pre code .hljs-quote{color:var(--hl-comment);font-style:italic}:is(.ProseMirror,.set-content) pre code .hljs-keyword,:is(.ProseMirror,.set-content) pre code .hljs-literal,:is(.ProseMirror,.set-content) pre code .hljs-selector-tag,:is(.ProseMirror,.set-content) pre code .hljs-section,:is(.ProseMirror,.set-content) pre code .hljs-doctag{color:var(--hl-keyword)}:is(.ProseMirror,.set-content) pre code .hljs-string,:is(.ProseMirror,.set-content) pre code .hljs-regexp,:is(.ProseMirror,.set-content) pre code .hljs-addition{color:var(--hl-string)}:is(.ProseMirror,.set-content) pre code .hljs-number,:is(.ProseMirror,.set-content) pre code .hljs-symbol,:is(.ProseMirror,.set-content) pre code .hljs-bullet{color:var(--hl-number)}:is(.ProseMirror,.set-content) pre code .hljs-title,:is(.ProseMirror,.set-content) pre code .hljs-name,:is(.ProseMirror,.set-content) pre code .hljs-selector-id,:is(.ProseMirror,.set-content) pre code .hljs-selector-class{color:var(--hl-function)}:is(.ProseMirror,.set-content) pre code .hljs-title.class_,:is(.ProseMirror,.set-content) pre code .hljs-type{color:var(--hl-class)}:is(.ProseMirror,.set-content) pre code .hljs-attr,:is(.ProseMirror,.set-content) pre code .hljs-attribute,:is(.ProseMirror,.set-content) pre code .hljs-variable,:is(.ProseMirror,.set-content) pre code .hljs-template-variable,:is(.ProseMirror,.set-content) pre code .hljs-property,:is(.ProseMirror,.set-content) pre code .hljs-selector-attr,:is(.ProseMirror,.set-content) pre code .hljs-selector-pseudo,:is(.ProseMirror,.set-content) pre code .hljs-deletion{color:var(--hl-variable)}:is(.ProseMirror,.set-content) pre code .hljs-built_in,:is(.ProseMirror,.set-content) pre code .hljs-meta,:is(.ProseMirror,.set-content) pre code .hljs-tag{color:var(--hl-builtin)}:is(.ProseMirror,.set-content) pre code .hljs-emphasis{font-style:italic}:is(.ProseMirror,.set-content) pre code .hljs-strong{font-weight:600}:is(.ProseMirror,.set-content) pre code .hljs-link{text-decoration:underline}:is(.ProseMirror,.set-content) hr{--divider-color:var(--border);height:var(--drag-handle-height);margin-block:calc(1.2rem - var(--drag-handle-height) / 2);background-image:linear-gradient(var(--divider-color), var(--divider-color));background-position:50%;background-repeat:no-repeat;background-size:100% 1px;border:none}:is(.ProseMirror,.set-content) ul[data-type=taskList]{list-style:none}:is(.ProseMirror,.set-content) ul[data-type=taskList]>li{align-items:flex-start;gap:0;display:flex}:is(.ProseMirror,.set-content) ul[data-type=taskList]>li>label{width:var(--marker-gutter);margin-left:calc(-1 * var(--marker-gutter));height:var(--editor-line);-webkit-user-select:none;user-select:none;flex:none;align-items:center;display:flex}:is(.ProseMirror,.set-content) ul[data-type=taskList]>li>div{flex:auto;min-width:0}:is(.ProseMirror,.set-content) ul[data-type=taskList]>li>label>input[type=checkbox]{appearance:none;font:inherit;width:var(--checkbox-size);height:var(--checkbox-size);border:1.5px solid var(--text-subtle);cursor:pointer;background:0 0;border-radius:4px;flex:none;margin:0;transition:background-color .12s,border-color .12s;position:relative}:is(.ProseMirror,.set-content) ul[data-type=taskList]>li>label>input[type=checkbox]:hover{border-color:var(--text-muted)}:is(.ProseMirror,.set-content) ul[data-type=taskList]>li>label>input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:is(.ProseMirror,.set-content) ul[data-type=taskList]>li>label>input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}:is(.ProseMirror,.set-content) ul[data-type=taskList]>li>label>input[type=checkbox]:checked:after{content:"";border:solid var(--on-accent);border-width:0 2px 2px 0;width:.3em;height:.58em;position:absolute;top:48%;left:50%;transform:translate(-50%,-55%)rotate(45deg)}:is(.ProseMirror,.set-content) ul[data-type=taskList]>li[data-checked=true]>div>p{color:var(--text-subtle);text-decoration:line-through}:is(.ProseMirror,.set-content) .page-link{border-radius:var(--radius);color:var(--accent);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.25rem .4rem .25rem 0;line-height:1;transition:background-color .12s;display:flex}:is(.ProseMirror,.set-content) .page-link:hover .page-link-title{text-decoration-color:currentColor}:is(.ProseMirror,.set-content) .page-link-icon{color:var(--accent);flex:none;display:inline-flex}:is(.ProseMirror,.set-content) .page-link-title{text-overflow:ellipsis;white-space:nowrap;text-underline-offset:3px;margin-block:-.25em;padding-block:.25em;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;overflow:hidden}:is(.ProseMirror,.set-content) .date-mention{border-radius:var(--radius);color:var(--accent-ink);background-color:var(--accent-soft);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:.3rem;padding:.05rem .35rem .05rem .3rem;transition:background-color .12s;display:inline-flex}:is(.ProseMirror,.set-content) .date-mention-icon{flex:none;font-size:.85em;display:inline-flex}:is(.ProseMirror,.set-content) .date-mention-label{font-size:.9em}:is(.ProseMirror,.set-content) .image-block{display:flex}:is(.ProseMirror,.set-content) .image-frame{max-width:100%;line-height:0;display:inline-block;position:relative}:is(.ProseMirror,.set-content) .image-frame img{border-radius:var(--radius);max-width:100%;height:auto;display:block}:is(.ProseMirror,.set-content) .tableWrapper{overscroll-behavior-x:contain;overflow-x:auto}:is(.ProseMirror,.set-content) table{border-collapse:collapse}:is(.ProseMirror,.set-content) th,:is(.ProseMirror,.set-content) td{border:1px solid var(--border);text-align:left;vertical-align:top;min-width:4em;padding:.3em .65em}:is(.ProseMirror,.set-content) th{background-color:var(--bg-elevated);font-weight:600}:is(.ProseMirror,.set-content) h4{margin-top:1rem;margin-bottom:.5rem;font-size:1.1em;font-weight:600;line-height:1.35}:is(.ProseMirror,.set-content) h5{margin-top:.9rem;margin-bottom:.45rem;font-size:1em;font-weight:600}:is(.ProseMirror,.set-content) h6{color:var(--text-muted);margin-top:.9rem;margin-bottom:.45rem;font-size:.9em;font-weight:600}:is(.ProseMirror,.set-content) .math-inline{cursor:pointer;border-radius:4px;padding-inline:.1em;transition:background-color .12s}:is(.ProseMirror,.set-content) .math-block{border-radius:var(--radius);cursor:pointer;transition:background-color .12s}:is(.ProseMirror,.set-content) .math-preview{text-align:center;padding:.5rem .25rem;overflow-x:auto}:is(.ProseMirror,.set-content) .katex-display{margin:0}:is(.ProseMirror,.set-content) .katex-display>.katex{padding-block:.15em;overflow:auto hidden}:is(.ProseMirror,.set-content) mark{color:inherit;background-color:color-mix(in oklch, var(--warning) 26%, transparent);border-radius:2px;padding-inline:.1em}:is(.ProseMirror,.set-content) .footnote-ref{color:var(--accent);cursor:pointer;padding-inline:.1em;font-size:.75em}:is(.ProseMirror,.set-content) .footnote-definition{color:var(--text-muted);gap:.5rem;font-size:.875em;display:flex}:is(.ProseMirror,.set-content) .footnote-label{color:var(--accent);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;flex:none}:is(.ProseMirror,.set-content) .footnote-body{flex:auto;min-width:0}:is(.ProseMirror,.set-content) .wiki-link{border-radius:var(--radius);color:var(--accent);cursor:pointer;margin-inline:-.05em;padding-inline:.15em;transition:background-color .12s;display:inline}:is(.ProseMirror,.set-content) .wiki-link:hover{background-color:var(--accent-soft);color:var(--accent-ink)}:is(.ProseMirror,.set-content) .wiki-link-icon{vertical-align:-.075em;margin-inline-end:.25em;display:inline-flex}:is(.ProseMirror,.set-content) .wiki-link-title{-webkit-text-decoration:underline dashed;text-decoration:underline dashed;-webkit-text-decoration-color:color-mix(in oklch, currentColor 45%, transparent);text-decoration-color:color-mix(in oklch, currentColor 45%, transparent);text-underline-offset:3px}:is(.ProseMirror,.set-content) .callout{--callout:var(--accent);border-left:3px solid var(--callout);background-color:color-mix(in oklch, var(--callout) 7%, transparent);border-radius:0 var(--radius) var(--radius) 0;padding:.5rem .85rem}:is(.ProseMirror,.set-content) .callout[data-kind=tip]{--callout:var(--hl-string)}:is(.ProseMirror,.set-content) .callout[data-kind=important]{--callout:var(--hl-keyword)}:is(.ProseMirror,.set-content) .callout[data-kind=warning]{--callout:var(--warning)}:is(.ProseMirror,.set-content) .callout[data-kind=caution]{--callout:var(--danger)}:is(.ProseMirror,.set-content) .callout-header{width:fit-content;color:var(--callout);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;margin-bottom:.25rem;font-size:.9em;font-weight:600;display:flex}:is(.ProseMirror,.set-content) .callout-icon{display:inline-flex}:is(.ProseMirror,.set-content) .callout-body>*+*{margin-top:var(--block-gap)}:is(.ProseMirror,.set-content) .inline-image{vertical-align:middle;border-radius:4px;max-width:100%;height:auto}.set-content a:is(.page-link,.wiki-link,.footnote-label),.set-content .footnote-ref a{text-decoration:none}.set-content .page-link{width:fit-content}.set-content :is(.date-mention,.math-inline,.math-block,.callout-header),.set-content ul[data-type=taskList]>li>label>input[type=checkbox]{cursor:default}.set-content ul[data-type=taskList]>li[data-checked=true]>div{color:var(--text-subtle);text-decoration:line-through}.set-content details>summary{cursor:pointer;font-weight:600}.set-content details>summary::marker{color:var(--text-subtle)}.set-content details>:not(summary){margin-top:var(--block-gap);padding-left:var(--marker-gutter)}:root{--editor-font-size:1.0625rem;--block-gap:.85rem;--reading-width:46rem;--toc-width:13rem;--toc-gap:3.5rem;--page-width:calc(var(--reading-width) + var(--toc-gap) + var(--toc-width))}@media (width<=640px){:root{--reading-gutter:1.25rem}}.wide{width:100%;max-width:calc(var(--page-width) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.post{grid-template-columns:minmax(0, var(--reading-width)) var(--toc-width);gap:var(--toc-gap);align-items:start;display:grid}.post .column,.post .set-content{width:min(var(--reading-width), 100%);margin-inline:0}.post .set-content :is(h2,h3){scroll-margin-top:1.5rem}.toc{border-left:1px solid var(--border);padding-left:1rem;font-size:.85rem;position:sticky;top:2rem}.toc p{color:var(--text);margin:0 0 .6rem;font-weight:600}.toc ol{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.toc a{color:var(--text-muted);line-height:1.35;transition:color .15s;display:block;position:relative}.toc a:hover{color:var(--text)}.toc a[aria-current]{color:var(--text);font-weight:600}.toc a:before{content:"";background:var(--accent);opacity:0;border-radius:2px;width:2px;transition:opacity .15s;position:absolute;top:0;bottom:0;left:calc(-1rem - 1px)}.toc .level-3 a:before{left:calc(-1.85rem - 1px)}.toc a[aria-current]:before{opacity:1}.toc .level-3{padding-left:.85rem}@media (width<=1000px){.post{grid-template-columns:minmax(0,1fr)}.toc{display:none}}main{flex:1;padding-block:3.5rem 4.5rem}.page-title{font-size:calc(var(--editor-font-size) * 1.875);letter-spacing:-.02em;text-wrap:balance;margin:0 0 .5rem;font-weight:700;line-height:1.2}.byline{color:var(--text-muted);margin-bottom:2rem;font-size:.875rem;display:block}.listing-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2rem;display:flex}.subscribe-button{border:1px solid var(--control-border);background:var(--control);box-shadow:var(--shadow-control);border-radius:8px;align-items:center;gap:.4rem;padding:.5rem .95rem;font-size:.925rem;font-weight:650;transition:background .2s;display:inline-flex}.subscribe-button:hover{background:var(--control-hover)}.subscribe-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rss-icon{fill:none;width:1em;height:1em;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round}.rss-icon circle{fill:var(--accent);stroke:none}.listing-head h1{letter-spacing:-.03em;margin:0;font-size:1.9rem;font-weight:700;line-height:1.2}.listing-head p{color:var(--text-muted);margin:.35rem 0 0;font-size:1rem}.posts{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.card{border:1px solid var(--border);background:var(--bg);transition:transform .2s var(--ease), box-shadow .2s var(--ease);border-radius:14px;display:block;overflow:hidden}.card:hover{transform:translateY(-3px);box-shadow:0 18px 40px #0000001f}.card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.card img{aspect-ratio:1200/630;object-fit:cover;border-bottom:1px solid var(--border);width:100%;display:block}.card-body{gap:.4rem;padding:1rem 1.1rem 1.15rem;display:grid}.card time{color:var(--text-subtle);font-variant-numeric:tabular-nums;font-size:.85rem}.post-title{letter-spacing:-.02em;text-wrap:balance;font-size:1.1rem;font-weight:700;line-height:1.25}.post-description{-webkit-line-clamp:2;line-clamp:2;color:var(--text-muted);-webkit-box-orient:vertical;font-size:.9rem;display:-webkit-box;overflow:hidden}@media (prefers-reduced-motion:reduce){.card,.card:hover{transition:none;transform:none}}.subscribe-page>section,.subscribe-page>.back{max-width:var(--reading-width);margin-bottom:2.5rem}.subscribe-page h2{margin:0 0 .75rem;font-size:1.15rem;font-weight:650}.feed-url{border:1px solid var(--border);background:var(--bg-hover);border-radius:10px;margin:0;padding:.6rem .85rem;display:flex}.feed-url code{min-width:0;font-family:var(--font-mono);white-space:nowrap;-webkit-user-select:all;user-select:all;flex:1;font-size:.9rem;overflow-x:auto}.subscribe-page .hint{color:var(--text-muted);margin:.75rem 0 0;font-size:.95rem}.subscribe-page .hint a,.back a{color:var(--accent-ink);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:3px}.releases{margin:0;padding:0;list-style:none}.releases>li{grid-template-columns:11rem minmax(0, var(--reading-width));gap:2rem;padding-bottom:3rem;scroll-margin-top:1.5rem;display:grid}.release-meta{flex-wrap:wrap;align-content:start;align-items:center;gap:.35rem .5rem;display:flex;position:sticky;top:1.5rem}.release-meta .version{letter-spacing:-.02em;font-size:1.35rem;font-weight:700}.release-meta .version:hover{color:var(--accent-ink)}.release-meta time{color:var(--text-muted);flex-basis:100%;font-size:.875rem}.latest{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent-ink);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:650}.release-body{border-left:1px solid var(--border);padding-left:2rem}.release-body .set-content{width:100%;margin-inline:0}.release-body .set-content>:first-child{margin-top:0}.release-body .set-content h3{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-top:1.25rem;font-size:.8rem;font-weight:700}.release-body .set-content h3:first-child{margin-top:0}.on-github{color:var(--text-muted);margin-top:1rem;font-size:.875rem;transition:color .2s;display:inline-block}.on-github:hover{color:var(--text)}.older{color:var(--text-muted);font-size:.9rem}.older a{color:var(--accent-ink);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:3px}@media (width<=720px){.releases>li{grid-template-columns:minmax(0,1fr);gap:1rem}.release-meta{position:static}.release-body{padding-left:1rem}}.empty{color:var(--text-muted)}header:has(+.about-set) .byline{margin-bottom:.9rem}.set-content.about-set{margin-bottom:2.25rem;font-size:.875rem;line-height:1.5}.about-set .callout{color:var(--text-muted);margin:0;padding:.45rem .75rem}.set-content.about-set.subscribe-end{margin:3rem 0 0}.subscribe-end .callout-icon circle{fill:var(--callout);stroke:none}.about-set .callout-icon{vertical-align:-.125em;fill:none;width:1em;height:1em;stroke:var(--callout);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;margin-right:.3rem;display:inline}
