:root{--bg:#1a1b26;--bg-side:#16161e;--bg-hl:#292e42;--fg:#a9b1d6;--fg-bright:#c0caf5;--muted:#565f89;--blue:#7aa2f7;--green:#9ece6a;--yellow:#e0af68;--cyan:#7dcfff;--teal:#73daca;--red:#f7768e;--purple:#bb9af7;--orange:#ff9e64;--chart-1:var(--blue);--chart-2:var(--yellow);--chart-3:var(--red);--chart-focus:var(--green);--chart-grid:var(--bg-hl);--img-frame:var(--bg-hl);--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--radius-none:0;--sidebar-width:300px;--prose-max:82ch;--code-border:2px;--breakpoint:860px;--figure-max:100%;--og-width:1200px;--og-height:630px;--font-mono:Albo, "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}.ab,.ab *{box-sizing:border-box}.ab{font-family:var(--font-mono);color:var(--fg);background:var(--bg);font-size:13px;line-height:1.5}.ab a{color:var(--blue);text-decoration:none}.ab-side{width:var(--sidebar-width);background:var(--bg-side);border-right:1px solid var(--bg-hl);flex-direction:column;display:flex}.ab-side__head{padding:var(--space-2) var(--space-3);color:var(--muted)}.ab-side__list{flex:1;margin:0;padding:0;list-style:none}.ab-row{padding:var(--space-1) var(--space-3);color:var(--fg);display:block}.ab-row[aria-current=page]{background:var(--bg-hl)}.ab-row__title{gap:var(--space-1);color:var(--fg-bright);white-space:nowrap;text-overflow:ellipsis;display:flex;overflow:hidden}.ab-row__meta{color:var(--muted);padding-left:2ch;font-size:12px}.ab-dot{flex:none;width:2ch}.ab-dot--pub{color:var(--yellow)}.ab-dot--draft{color:var(--cyan)}.ab-dot--current{color:var(--green)}.ab-tag-draft{color:var(--teal);margin-left:1ch}.ab-side__foot{padding:var(--space-2) var(--space-3);border-top:1px solid var(--bg-hl);gap:2ch;display:flex}.ab-side__foot a{color:var(--muted)}.ab-side__foot .ab-dot--prompt{color:var(--green)}.ab-tabs{background:var(--bg-side);border-bottom:1px solid var(--bg-hl);display:flex}.ab .ab-tab{padding:0 var(--space-2);color:var(--muted);white-space:nowrap}.ab .ab-tab[aria-current=page]{background:var(--blue);color:var(--bg-side)}.ab-status{background:var(--bg-side);border-top:1px solid var(--bg-hl);white-space:nowrap;display:flex;overflow:hidden}.ab-seg{padding:0 var(--space-2) 0 calc(var(--space-2) + 1ch);background:var(--bg-hl);color:var(--fg);position:relative}.ab-seg:after{content:"";border-top:.75em solid #0000;border-bottom:.75em solid #0000;border-left:1ch solid var(--bg-hl);z-index:1;width:0;height:0;position:absolute;top:0;right:-1ch}.ab-seg:first-child{padding-left:var(--space-2);background:var(--blue);color:var(--bg-side);font-weight:700}.ab-seg:first-child:after{border-left-color:var(--blue)}.ab-seg:last-child{background:var(--bg-side);color:var(--muted)}.ab-seg:last-child:after{display:none}.ab-prose{max-width:var(--prose-max);padding:var(--space-4);font-size:15px;line-height:1.65}.ab-prose h1{color:var(--fg-bright);margin:0 0 var(--space-1);font-size:22px;line-height:1.35}.ab-prose .ab-date{color:var(--muted);font-size:13px}.ab-prose h2,.ab-prose h3{color:var(--fg-bright);margin:var(--space-4) 0 var(--space-2)}.ab-prose h2{font-size:17px}.ab-prose h3{font-size:15px}.ab-prose h2:before{content:"## ";color:var(--muted)}.ab-prose h3:before{content:"### ";color:var(--muted)}.ab-prose p{margin:0 0 var(--space-3)}.ab-prose em{font-style:italic}.ab-prose code{color:var(--red);font-size:14px}.ab-prose pre{background:var(--bg-side);border-left:var(--code-border) solid var(--green);padding:var(--space-2) var(--space-3);margin:0 0 var(--space-3);border-radius:var(--radius-none);overflow-x:auto}.ab-prose pre code{color:var(--fg)}.ab-prompt{color:var(--green)}.ab-burger{color:var(--fg-bright);cursor:pointer;padding:0 var(--space-2)}.ab-toggle{opacity:0;pointer-events:none;position:absolute}.ab-overlay{background:#16161eb3;display:none;position:absolute;inset:0}.ab-drawer{z-index:2;transition:transform .2s;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.ab-toggle:checked~.ab-overlay{display:block}.ab-toggle:checked~.ab-drawer{transform:none}.ab-meta{color:var(--muted);font-size:13px}.ab-meta .ab-dot--prompt{color:var(--green)}.ab-meta>*+:before{content:" · ";color:var(--muted)}.ab-meta .ab-tag-draft:before{content:" "}.ab-prose .ab-dek{color:var(--fg);margin:var(--space-3) 0 var(--space-4);font-style:italic}.ab-prose blockquote{margin:0 0 var(--space-3);color:var(--fg);padding:0 0 0 2ch;position:relative}.ab-prose blockquote:before{content:">";color:var(--muted);position:absolute;left:0}.ab-prose hr{text-align:center;color:var(--muted);margin:var(--space-4) 0;border:0}.ab-prose hr:after{content:"* * *"}.ab-prose sup a{color:var(--blue);font-size:11px}.ab-footnotes{border-top:1px solid var(--bg-hl);margin-top:var(--space-4);padding-top:var(--space-2);font-size:13px}.ab-footnotes ol{margin:0;padding-left:3ch}.tok-kw{color:var(--purple)}.tok-fn{color:var(--blue)}.tok-str{color:var(--green)}.tok-num{color:var(--orange)}.tok-type{color:var(--cyan)}.tok-com{color:var(--muted);font-style:italic}.ab-prose pre[data-lang]:before{content:attr(data-lang);color:var(--muted);margin-bottom:var(--space-1);font-size:12px;display:block}.ab-table-wrap{margin:0 0 var(--space-3);overflow-x:auto}.ab-table{border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:100%;font-size:14px}.ab-table th{text-align:left;color:var(--fg-bright);padding:var(--space-1) 2ch var(--space-1) 0;border-bottom:1px solid var(--bg-hl);white-space:nowrap;font-weight:700}.ab-table td{padding:var(--space-1) 2ch var(--space-1) 0;color:var(--fg);border-bottom:1px solid var(--bg-hl)}.ab-table .num{text-align:right;white-space:nowrap}.ab-table tr.is-focus td{color:var(--fg-bright)}.ab-table tr.is-focus td:first-child:before{content:"● ";color:var(--green)}.ab-fig{margin:0 0 var(--space-4);border:1px solid var(--img-frame);background:var(--bg);max-width:var(--figure-max)}.ab-fig__bar{background:var(--bg-side);border-bottom:1px solid var(--img-frame);padding:0 var(--space-2);color:var(--muted);justify-content:space-between;gap:2ch;font-size:12px;display:flex}.ab-fig__bar b{color:var(--fg-bright);font-weight:400}.ab-fig__body{padding:var(--space-3)}.ab-fig__body--bleed{padding:0;line-height:0}.ab-fig__body--bleed img,.ab-fig__body--bleed svg{width:100%;height:auto;display:block}.ab-fig figcaption{padding:var(--space-2) var(--space-3);color:var(--fg);border-top:1px solid var(--img-frame);font-size:13px}.ab-fig figcaption .ab-ai{color:var(--muted)}.ab-fig pre.ab-diagram{color:var(--fg);background:0 0;border:0;margin:0;padding:0;font-size:13px;line-height:1.35;overflow-x:auto}.ab-chart{width:100%;height:auto;font-family:var(--font-mono);display:block}.ab-chart text{fill:var(--fg);font-size:12px}.ab-chart .lbl{fill:var(--fg)}.ab-chart .val{fill:var(--fg-bright)}.ab-chart .axis{stroke:var(--chart-grid);stroke-width:1px}.ab-chart .s1{fill:var(--chart-1)}.ab-chart .s2{fill:var(--chart-2)}.ab-chart .s3{fill:var(--chart-3)}.ab-chart .focus{fill:var(--chart-focus)}.ab-chart .s1,.ab-chart .s2,.ab-chart .s3,.ab-chart .focus{stroke:var(--bg);stroke-width:2px}.ab-chart .hit:hover+.bar,.ab-chart .bar:hover{opacity:.8}.ab-legend{color:var(--fg);margin-bottom:var(--space-2);gap:2ch;font-size:12px;display:flex}.ab-legend i{width:1ch;height:1ch;margin-right:1ch;display:inline-block}@font-face{font-family:Albo;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/albo/Albo-Regular.woff2)format("woff2")}@font-face{font-family:Albo;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/albo/Albo-Bold.woff2)format("woff2")}@font-face{font-family:Albo;font-weight:400;font-style:italic;font-display:swap;src:url(/fonts/albo/Albo-Italic.woff2)format("woff2")}html,body{background:var(--bg);margin:0}body.ab{-webkit-font-smoothing:antialiased;min-height:100vh}pre,code,kbd,samp{font-family:var(--font-mono)}.ab a:hover{text-decoration:underline}::selection{background:var(--bg-hl);color:var(--fg-bright)}.ab-side{z-index:10;position:fixed;inset:0 auto 0 0}.ab-side__head{display:block}.ab-side__head:hover{color:var(--fg);text-decoration:none}.ab-side__list{padding:var(--space-1) 0;overflow-y:auto}.ab-row:hover{text-decoration:none}.ab .ab-tag-draft{margin-left:0}.ab-row__title>span:last-child{text-overflow:ellipsis;overflow:hidden}.ab-side__foot a:hover{color:var(--fg);text-decoration:none}.main{margin-left:var(--sidebar-width);flex-direction:column;min-height:100vh;display:flex}.ab-tabs,.ab-status{z-index:5;line-height:24px;position:sticky}.ab-tabs{scrollbar-width:none;top:0;overflow-x:auto}.ab-status{bottom:0}.ab-seg:after{border-top-width:12px;border-bottom-width:12px}.ab-tabs{background:var(--bg);padding:0 var(--space-2);border-bottom:0;gap:12px}.ab .ab-tab{background:var(--bg-hl);text-align:center;flex:none;min-width:10ch;padding:0 2ch}.ab .ab-tab[aria-current=page]{font-weight:700}.ab .ab-tab:hover{color:var(--fg-bright);text-decoration:none}.ab .ab-tab[aria-current=page]:hover{color:var(--bg-side)}.ab-tab--post{text-overflow:ellipsis;max-width:50vw;overflow:hidden}.ab-burger{display:none}.ab .ab-burger{min-width:0;padding:0 1ch}.content{flex:1}.ab-prose{padding-bottom:64px}.ab-prose strong{color:var(--fg-bright)}.ab-prose ul,.ab-prose ol{margin:0 0 var(--space-3);padding-left:2.2ch}.ab-prose li::marker{color:var(--muted)}.ab-prose pre.astro-code{font-size:13.5px;line-height:1.55;background-color:var(--bg-side)!important}.ab-prose table .num{text-align:right}.ab-fig figcaption .ab-dot--prompt{color:var(--green)}.ab-meta>*+:before,.ab-meta .ab-tag-draft:before{content:none}.ab-meta{margin:0}.ab-tag-draft{color:var(--teal)}.ab-pager{margin-top:var(--space-4);padding-top:var(--space-2);border-top:1px solid var(--bg-hl);grid-template-columns:1fr 1fr;gap:2ch;font-size:13px;display:grid}.ab-pager a{color:var(--fg-bright);flex-direction:column;display:flex}.ab-pager a:hover{text-decoration:none}.ab-pager a:hover .ab-pager__title{text-decoration:underline}.ab-pager__dir{color:var(--muted)}.ab-pager__next{text-align:right;grid-column:2}.prompt{margin:var(--space-4) 0 var(--space-1);color:var(--fg-bright)}.prompt:first-child{margin-top:0}.prompt .ok{color:var(--green)}.prompt .err,.out.err{color:var(--red)}.out{margin:0 0 var(--space-3) 2ch}.out.muted{color:var(--muted)}.out.links{flex-wrap:wrap;gap:0 2ch;display:flex}.index-list{margin:0;list-style:none;padding:0 0 0 2ch!important}.index-list li{margin-bottom:var(--space-3);grid-template-columns:11ch 1fr;gap:1ch;display:grid}.index-list .date{color:var(--muted)}.index-list .desc{color:var(--fg);margin:0}@media (width>=861px){.ab-drawer{transform:none}.ab-overlay{display:none!important}}@media (width<=860px){.ab-drawer{width:min(86vw, var(--sidebar-width));position:fixed}.ab-overlay{z-index:9;cursor:pointer;position:fixed}.main{margin-left:0}.ab-burger{display:inline}.ab-prose{padding:var(--space-3) var(--space-3) 48px}.index-list li{grid-template-columns:1fr;gap:0}.ab-seg:not(:first-child):not(:last-child){display:none}.ab-pager{grid-template-columns:1fr}.ab-pager__next{grid-column:1}}
