@media (max-width:800px){.explorer{opacity:0!important;pointer-events:none!important;height:0!important;display:none!important;position:absolute!important;overflow:hidden!important}.right{flex-direction:column;height:auto;padding:12px;display:flex;overflow-y:visible}.site-garden .right .graph,.site-garden .right .backlinks,[data-site-type=garden] .right .graph,[data-site-type=garden] .right .backlinks{display:block!important}.site-garden .right .toc,.site-garden .right .tag-list,.site-garden .right .recent-notes,.site-garden .right .archive-link-container,[data-site-type=garden] .right .toc,[data-site-type=garden] .right .tag-list,[data-site-type=garden] .right .recent-notes,[data-site-type=garden] .right .archive-link-container{display:none!important}.site-blog .right .archive-link-container,.site-blog .right .tag-list,[data-site-type=blog] .right .archive-link-container,[data-site-type=blog] .right .tag-list{display:block!important}.site-blog .right .graph,.site-blog .right .backlinks,.site-blog .right .toc,.site-blog .right .recent-notes,[data-site-type=blog] .right .graph,[data-site-type=blog] .right .backlinks,[data-site-type=blog] .right .toc,[data-site-type=blog] .right .recent-notes{display:none!important}.right .graph,.right .backlinks,.right .tag-list,.right .archive-link-container{border-top:none!important;border-bottom:none!important;margin:0!important;padding:8px 0!important}.right>:first-child{margin-top:0!important;padding-top:0!important}.right h3{font-size:.9rem;border-bottom:none!important;margin-top:0!important;margin-bottom:4px!important}.archive-link-container{margin-top:0!important;padding-top:8px!important}}@media (max-width:500px){p.caption,[data-caption]{margin-top:-.25rem;margin-bottom:1.5rem;padding-left:.75rem;font-size:.8rem}}@media print{body{letter-spacing:normal;line-height:1.4;color:#000!important;background:#fff!important}a{text-decoration:underline;color:#000!important}.callout{break-inside:avoid;background:#f9f9f9;border:1px solid #ccc}}body{letter-spacing:.018em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65;background:var(--light)!important;color:var(--dark)!important}a{color:var(--secondary);transition:color var(--transition-fast)}a:hover{color:var(--tertiary)}article p,article li,article blockquote{letter-spacing:.018em;margin-bottom:1.2rem;line-height:1.7}h1,h2,h3,h4,h5,h6{letter-spacing:.02em;font-weight:600;line-height:1.3}.article-title{letter-spacing:.01em;font-weight:700}.content-meta{letter-spacing:.01em;opacity:.85;font-size:.85rem}.tag-list-item{letter-spacing:normal;font-size:.85rem}blockquote{letter-spacing:.02em;border-left:4px solid var(--secondary);background:var(--highlight);border-radius:0 var(--radius-md) var(--radius-md) 0;margin:1.5rem 0;padding:1rem 1.5rem;font-style:italic}.callout{border-left:4px solid var(--callout-color,var(--link-color));background:var(--bg-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);margin:1.5rem 0;padding:1rem 1.5rem}.callout .callout-title{color:var(--callout-color);letter-spacing:.02em;align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:600;display:flex}.callout .callout-content{letter-spacing:.018em;margin-top:.25rem;line-height:1.65}.callout .callout-content>:last-child{margin-bottom:0}.callout[data-callout=note],.callout[data-callout=info]{--callout-color:var(--secondary)}.callout[data-callout=tip],.callout[data-callout=success]{--callout-color:var(--tertiary)}.callout[data-callout=quote]{--callout-color:var(--link-color);font-style:italic}.callout[data-callout=quote] .callout-title{font-style:normal}.external:after,.external:before,.internal:after,.internal:before,a[href^=http]:after,a[href^=http]:before{content:none!important;opacity:0!important;visibility:hidden!important;background:0 0!important;width:0!important;height:0!important;display:none!important}.external svg,.external img,.internal svg,.internal img,a[href^=http] svg,a[href^=http] img{display:none!important}.external:not(.footer-link):not(.no-external-icon){position:relative}.external:not(.footer-link):not(.no-external-icon):after{opacity:.6;transition:opacity var(--transition-fast);margin-left:.25em;font-size:.8em;content:"↗"!important;color:var(--text-muted)!important;visibility:visible!important;background:0 0!important;width:auto!important;height:auto!important;display:inline-block!important}.external:not(.footer-link):not(.no-external-icon):hover:after{opacity:1;color:var(--link-color)!important}.footer-link:after,.footer-link:before{display:none!important}.right{flex-direction:column;height:100%;padding-bottom:20px;display:flex;overflow-y:auto}.archive-link-container{border-top:1px solid var(--border-color);padding:var(--spacing-md) 0;background:var(--bg-primary);z-index:5;margin-top:auto;position:sticky;bottom:0}.archive-link{font-size:var(--font-size-lg);transition:all var(--transition-fast);letter-spacing:normal;align-items:center;gap:.25em;font-weight:600;text-decoration:none;display:inline-flex;color:#ac1517!important}.archive-link:after{content:" →"!important;opacity:.9!important;color:#ac1517!important;font-size:1.2em!important}.archive-link:hover{transform:translate(4px);color:#8a1012!important}.archive-link:hover:after{color:#8a1012!important}[data-site-type=blog] .explorer,.blog .explorer,.page[data-slug*=blog] .explorer{display:none!important}.left.sidebar{z-index:100;will-change:transform;transition:transform .3s;position:sticky;top:0}.left.sidebar.hidden{transform:translateY(-100%)!important}@media (max-width:800px){.explorer{opacity:0!important;pointer-events:none!important;height:0!important;display:none!important;position:absolute!important;overflow:hidden!important}.right{flex-direction:column;height:auto;padding:12px;display:flex;overflow-y:visible}.site-garden .right .graph,.site-garden .right .backlinks,[data-site-type=garden] .right .graph,[data-site-type=garden] .right .backlinks{display:block!important}.site-garden .right .toc,.site-garden .right .tag-list,.site-garden .right .recent-notes,.site-garden .right .archive-link-container,[data-site-type=garden] .right .toc,[data-site-type=garden] .right .tag-list,[data-site-type=garden] .right .recent-notes,[data-site-type=garden] .right .archive-link-container{display:none!important}.site-blog .right .archive-link-container,.site-blog .right .tag-list,[data-site-type=blog] .right .archive-link-container,[data-site-type=blog] .right .tag-list{display:block!important}.site-blog .right .graph,.site-blog .right .backlinks,.site-blog .right .toc,.site-blog .right .recent-notes,[data-site-type=blog] .right .graph,[data-site-type=blog] .right .backlinks,[data-site-type=blog] .right .toc,[data-site-type=blog] .right .recent-notes{display:none!important}.right .graph,.right .backlinks,.right .tag-list,.right .archive-link-container{border-top:none!important;border-bottom:none!important;margin:0!important;padding:8px 0!important}.right>:first-child{margin-top:0!important;padding-top:0!important}.right h3{font-size:.9rem;border-bottom:none!important;margin-top:0!important;margin-bottom:4px!important}.archive-link-container{margin-top:0!important;padding-top:8px!important}}.blog-index-item{border-bottom:1px solid var(--border-color);margin-bottom:48px!important;padding-bottom:48px!important}.blog-index-item:last-child{border-bottom:none;margin-bottom:0!important;padding-bottom:0!important}.blog-index-item h2{letter-spacing:.01em;border-bottom:none!important;margin-bottom:12px!important}.blog-index-date{color:var(--text-muted);letter-spacing:.01em;margin-bottom:8px;font-size:.85rem}.blog-index-description{letter-spacing:.015em;margin-bottom:12px;line-height:1.6}p.caption,[data-caption]{color:var(--text-muted);border-left:2px solid var(--secondary);letter-spacing:.01em;margin-top:-.5rem;margin-bottom:2rem;padding-left:1rem;font-size:.9rem;font-style:italic;line-height:1.5}p.caption:before,[data-caption]:before{content:"× ";color:var(--secondary);margin-right:.25rem;font-weight:700}p.caption strong,[data-caption] strong{color:var(--text-primary)}@media (max-width:500px){p.caption,[data-caption]{margin-top:-.25rem;margin-bottom:1.5rem;padding-left:.75rem;font-size:.8rem}}.blog-index-item h2{margin-bottom:.5rem!important;font-size:1.5rem!important;font-weight:600!important;line-height:1.3!important}.recent-notes .recent-note-item,.recent-notes .recent-note-title,.recent-notes a{padding:.25rem 0!important;font-size:.9rem!important;line-height:1.4!important}.recent-notes .recent-note-meta,.recent-notes .recent-note-date,.recent-notes time,.recent-notes .note-date{opacity:.9;color:var(--text-primary)!important;letter-spacing:.02em!important;margin-top:.3rem!important;font-size:.75rem!important;line-height:1.2!important;display:block!important}.recent-notes .recent-note-item time,.recent-notes .recent-note-item .note-date{margin-left:.25rem!important;font-size:.7rem!important}.recent-notes ul{margin:0!important;padding:0!important}.recent-notes li{margin:0!important;list-style:none!important}a.internal.broken-link{background-color:#da595926}a.internal.broken-link:hover{background-color:#cf8f4626;text-decoration:line-through}a.internal.broken-link .popover{display:none!important}.spoiler-text{filter:blur(.5rem);cursor:pointer;transition:filter .3s}.revealed{filter:initial}.page-sparkle-divider{text-align:center;color:var(--text-muted);letter-spacing:.1em;margin:2rem 0}.forced-row{flex-flow:wrap;justify-content:flex-start;gap:1rem;display:flex}.forced-column{flex-direction:column;justify-content:flex-start;gap:.5rem;display:flex}img.inline-icons{vertical-align:middle;margin:0;display:inline-block}@media print{body{letter-spacing:normal;line-height:1.4;color:#000!important;background:#fff!important}a{text-decoration:underline;color:#000!important}.callout{break-inside:avoid;background:#f9f9f9;border:1px solid #ccc}}*{transition-property:background-color,border-color,color,fill,stroke;transition-duration:var(--transition-base);transition-timing-function:ease}body{line-height:var(--line-height-base);font-feature-settings:"kern", "liga", "clig", "calt";text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary)}h1,h2,h3,h4,h5,h6{line-height:var(--line-height-tight);color:var(--text-primary);margin-top:1.5em;margin-bottom:.5em;font-weight:600}p{margin-bottom:var(--spacing-md);line-height:var(--line-height-base);color:var(--text-primary)}a.internal{border-bottom:1px dashed var(--link-color);background-color:#0000!important}a.internal:hover{border-bottom-color:var(--link-hover);background-color:var(--highlight)!important}pre{border:1px solid var(--border-color);border-radius:var(--radius-lg);margin:var(--spacing-lg) 0;box-shadow:var(--shadow-md);overflow-x:auto;background:var(--bg-secondary)!important;padding:var(--spacing-lg)!important}pre code{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--text-primary);padding:0;line-height:1.5;background:0 0!important}pre.terminal{position:relative}pre.terminal:before{content:"● ● ●";background:var(--bg-secondary);padding:var(--spacing-sm) var(--spacing-lg);color:var(--text-muted);font-size:var(--font-size-xs);letter-spacing:.5em;border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-md);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:block}pre[data-language]:after{content:attr(data-language);top:0;right:var(--spacing-md);background:var(--bg-secondary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:0 0 var(--radius-sm) var(--radius-sm);font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--border-color);border-top:none;position:absolute}code:not(pre code){background:var(--highlight);color:var(--link-color);border-radius:var(--radius-sm);font-size:.9em;font-family:var(--font-family-mono);white-space:nowrap;padding:.2em .4em}@media (max-width:500px){code:not(pre code){white-space:normal}}.tag,.tags a{color:var(--link-color);border-radius:var(--radius-sm);transition:all var(--transition-fast);font-size:var(--font-size-sm);border:1px solid var(--border-color);background:0 0;padding:.25rem .75rem;text-decoration:none;display:inline-block}.tag:hover,.tags a:hover{background:var(--link-color);color:#fff;border-color:var(--link-color);box-shadow:var(--shadow-sm);transform:translateY(-1px)}::selection{background:var(--highlight);color:var(--text-primary)}body,pre,code,.callout,.tag,button,input{transition:background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast)}blockquote{border-left:4px solid var(--link-color);padding:var(--spacing-md) var(--spacing-lg);margin:var(--spacing-lg) 0;background:var(--bg-secondary);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--text-secondary);box-shadow:var(--shadow-sm);font-style:italic}hr{border:none;border-top:2px solid var(--border-color);margin:var(--spacing-xxl) 0;width:100%}hr.fancy{text-align:center;border:none}hr.fancy:after{content:"✦ ✦ ✦";color:var(--text-muted);font-size:var(--font-size-sm);letter-spacing:.5em}img{border-radius:var(--radius-md);max-width:100%;height:auto}img.img-rounded{border-radius:var(--radius-lg)}img.img-circle{border-radius:50%}img.img-border{border:1px solid var(--border-color);padding:var(--spacing-xs)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}article{animation:.5s slideUp}.tag{animation:.3s scaleIn}@media (max-width:500px){h1{font-size:calc(var(--font-size-xxxl) * .8)}h2{font-size:calc(var(--font-size-xxl) * .8)}h3{font-size:calc(var(--font-size-xl) * .8)}pre{border-radius:var(--radius-md);padding:var(--spacing-md)!important}pre[data-language]:after{display:none}blockquote{padding:var(--spacing-sm) var(--spacing-md)}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{a{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}pre,code{border:1px solid #ddd;color:#000!important;background:#f5f5f5!important}.tag{border:1px solid #999;color:#000!important}.tag:hover{background:0 0}blockquote{background:#f9f9f9;border-left-color:#999}}:root{--bg-primary:var(--light);--bg-secondary:var(--lightgray);--text-primary:var(--dark);--text-secondary:var(--darkgray);--text-muted:color-mix(in srgb, var(--darkgray) 80%, transparent);--border-color:var(--gray);--link-color:var(--secondary);--link-hover:var(--tertiary);--highlight:var(--highlight);--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:3rem;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--transition-fast:.2s ease;--transition-normal:.3s ease;--transition-slow:.5s ease;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", monospace;--search-height:40px;--search-radius:var(--radius-md);--explorer-item-height:32px;--explorer-indent:1.5rem;--graph-node-size:100px;--graph-link-width:1.5px;--tag-padding:.25rem .75rem;--tag-radius:var(--radius-sm);--code-font:var(--font-mono);--code-bg:var(--bg-secondary);--code-border:var(--border-color)}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.article-title{border-bottom:2px solid var(--link-hover);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-lg);font-weight:600;font-size:var(--font-size-xxxl);line-height:var(--line-height-tight);color:var(--link-color)!important}@media (max-width:500px){.article-title{font-size:calc(var(--font-size-xxxl) * .8);margin-bottom:var(--spacing-md)}}h1,h2,h3,h4,h5,h6{color:var(--text-primary);scroll-margin-top:var(--header-height,2rem);position:relative}h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor,h5:hover .anchor,h6:hover .anchor{color:var(--link-color);opacity:1}h1 .anchor,h2 .anchor,h3 .anchor,h4 .anchor,h5 .anchor,h6 .anchor{color:var(--link-color);opacity:.3;transition:opacity var(--transition-fast);margin-left:var(--spacing-xs);font-size:.8em;text-decoration:none}h1 .anchor:hover,h2 .anchor:hover,h3 .anchor:hover,h4 .anchor:hover,h5 .anchor:hover,h6 .anchor:hover{opacity:1;text-decoration:none}h1 .anchor:before,h2 .anchor:before,h3 .anchor:before,h4 .anchor:before,h5 .anchor:before,h6 .anchor:before{content:"#"}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--line-height-tight);margin-top:1.5em;margin-bottom:.5em}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}h1{font-size:var(--font-size-xxxl)}h2{font-size:var(--font-size-xxl);border-bottom:1px solid var(--border-light);padding-bottom:var(--spacing-xs)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg);color:var(--text-secondary)}h5{font-size:var(--font-size-md);text-transform:uppercase;letter-spacing:.5px}h6{font-size:var(--font-size-sm);color:var(--text-muted)}a{color:var(--link-color);transition:all var(--transition-fast);text-decoration:none}a:hover{color:var(--link-hover);text-decoration:underline}a.internal{border-bottom:1px dashed var(--link-color)}a.internal:hover{border-bottom-color:var(--link-hover);text-decoration:none}a[href^=http]:not(.internal):not(.no-external-icon):after{content:" ↗";opacity:.5;transition:opacity var(--transition-fast);font-size:.8em}a[href^=http]:not(.internal):not(.no-external-icon):hover:after{opacity:1}a.button{background:var(--link-color);color:#fff;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);border:none;display:inline-block}a.button:hover{background:var(--link-hover);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}a.button:active{transform:translateY(0)}.tag,.tags a{color:var(--link-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);transition:all var(--transition-fast);background:0 0;margin:.15rem;text-decoration:none;display:inline-block}.tag:hover,.tags a:hover{background:var(--link-color);color:#fff;border-color:var(--link-color);box-shadow:var(--shadow-sm);text-decoration:none;transform:translateY(-1px)}.tag:active,.tags a:active{transform:translateY(0)}.tag.tag-count,.tags a.tag-count{background:var(--highlight);color:var(--text-secondary);font-size:var(--font-size-xs);border-color:#0000}.tag.tag-count:hover,.tags a.tag-count:hover{background:var(--highlight-strong);color:var(--text-primary)}.content-meta{color:var(--text-muted);font-size:var(--font-size-sm);margin:var(--spacing-sm) 0 var(--spacing-lg) 0;gap:var(--spacing-md);flex-wrap:wrap;align-items:center;display:flex}.content-meta svg{fill:var(--link-color);margin-right:var(--spacing-xs);width:1em;height:1em}.content-meta time,.content-meta span{align-items:center;display:inline-flex}.content-meta .meta-separator{color:var(--border-color);opacity:.5}.content-meta .meta-separator:after{content:"·";margin:0 var(--spacing-xs)}.content-meta .reading-time:before{content:"☕️";margin-right:var(--spacing-xs);opacity:.7}@media (max-width:500px){.content-meta{gap:var(--spacing-sm);font-size:var(--font-size-xs)}}.breadcrumb-container{margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm)}.breadcrumb-container a{color:var(--link-color)}.breadcrumb-container a:hover{color:var(--link-hover)}.breadcrumb-container .breadcrumb-separator{color:var(--text-muted);margin:0 var(--spacing-xs)}.breadcrumb-container .breadcrumb-separator:after{content:"›";font-size:1.2em}.breadcrumb-container .breadcrumb-current{color:var(--text-primary);font-weight:500}.breadcrumb-container .breadcrumb-home:before{content:"🏡";margin-right:var(--spacing-xs)}pre{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin:var(--spacing-lg) 0;border:1px solid var(--border-color);position:relative;background:var(--bg-secondary)!important;padding:var(--spacing-lg)!important}pre code{font-family:var(--font-family-mono);font-size:var(--font-size-sm);line-height:1.5}pre:before{content:attr(data-language);top:0;right:var(--spacing-md);background:var(--bg-secondary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:0 0 var(--radius-sm) var(--radius-sm);font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--border-color);border-top:none;position:absolute}blockquote{border-left:4px solid var(--link-color);background:var(--bg-secondary);padding:var(--spacing-md) var(--spacing-lg);margin:var(--spacing-lg) 0;border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--text-secondary);box-shadow:var(--shadow-sm);font-style:italic}blockquote p:last-child{margin-bottom:0}blockquote cite{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-muted);font-style:normal;display:block}blockquote cite:before{content:"— ";opacity:.5}table{border-collapse:collapse;width:100%;margin:var(--spacing-lg) 0;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}table th{background:var(--bg-secondary);color:var(--text-primary);padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:2px solid var(--link-color);font-weight:600}table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-light)}table tr:last-child td{border-bottom:none}table tr:hover{background:var(--highlight)}table tbody tr:nth-child(2n){background:var(--bg-secondary)}table tbody tr:nth-child(2n):hover{background:var(--highlight)}@media (max-width:500px){h1{font-size:calc(var(--font-size-xxxl) * .8)}h2{font-size:calc(var(--font-size-xxl) * .8)}h3{font-size:calc(var(--font-size-xl) * .8)}.article-title{font-size:calc(var(--font-size-xxxl) * .9)}pre{border-radius:var(--radius-md)}pre:before{display:none}table{display:block;overflow-x:auto}}:root[saved-theme=dark] .tag:hover{background:var(--link-hover);border-color:var(--link-hover)}:root[saved-theme=dark] pre{box-shadow:var(--shadow-lg)}:root[saved-theme=dark] blockquote,:root[saved-theme=dark] table th{background:var(--bg-secondary)}@media print{a{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}pre,code{border:1px solid #ddd;color:#000!important;background:#f5f5f5!important}.tag{border:1px solid #999;color:#000!important}.tag:hover{background:0 0}blockquote{background:#f9f9f9;border-left-color:#999}}