@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=phosphor]{color-scheme:dark;--bg: #0a0e14;--raised: #131a24;--surface: #10161f;--border: #1c2530;--fg: #c9d4e3;--muted: #8494a7;--accent: #6fe3a5;--accent-2: #e6b45a;--error: #ef8080;--info: #7fb3e3}:root[data-theme=amber]{color-scheme:dark;--bg: #14100a;--raised: #1a140c;--surface: #1d1710;--border: #322817;--fg: #e9dcc3;--muted: #a08c6b;--accent: #ffb454;--accent-2: #d4955a;--error: #e07a5f;--info: #c9b458}:root[data-theme=paper]{color-scheme:light;--bg: #f4f2ec;--raised: #efede6;--surface: #ebe8df;--border: #d6d1c3;--fg: #262a31;--muted: #5f656e;--accent: #0b6f47;--accent-2: #8f5212;--error: #bb3a24;--info: #38618e}@media(prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;--bg: #f4f2ec;--raised: #efede6;--surface: #ebe8df;--border: #d6d1c3;--fg: #262a31;--muted: #5f656e;--accent: #0b6f47;--accent-2: #8f5212;--error: #bb3a24;--info: #38618e}}:root{--line: 1.6rem;--font-mono: "JetBrains Mono Variable", ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--hover: color-mix(in srgb, var(--accent) 7%, transparent);--sel: color-mix(in srgb, var(--accent) 25%, transparent);--hl: color-mix(in srgb, var(--fg) 4%, transparent)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{-webkit-tap-highlight-color:transparent;background-color:var(--bg);color:var(--fg);display:flex;flex-direction:column;font-family:var(--font-mono);font-size:.8125rem;line-height:1.6;min-height:100dvh}a,button{touch-action:manipulation}img,picture,video{display:block;max-width:100%}input,button,textarea,select{font:inherit}h1,h2,h3,h4,h5,h6{line-height:1.35;font-weight:700}h1{color:var(--fg);font-size:1.375rem;font-weight:800;letter-spacing:-.01em;text-wrap:balance}h2{color:var(--accent-2);font-size:1rem}h3{color:var(--info);font-size:inherit}a{color:var(--accent);text-decoration:underline;text-underline-offset:.2em}a:hover{background:var(--hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background-color:var(--sel);color:var(--fg)}.prose{max-width:40rem;margin-inline:auto}.prose>*+*{margin-block-start:var(--line)}code,pre,kbd,samp{font-family:var(--font-mono);font-size:.9375em}:not(pre)>code{background-color:var(--raised);border:1px solid var(--border);overflow-wrap:anywhere;padding:.1em .35em}pre{background-color:var(--surface);border:1px solid var(--border);overflow-x:auto;padding:.75rem 1rem}pre code{background:none;border:0;padding:0}kbd{background-color:var(--raised);border:1px solid var(--border);border-bottom-width:2px;border-radius:2px;padding:.05em .4em}hr{border:0;color:var(--muted);letter-spacing:.5em;margin-block:var(--line);overflow:hidden;text-align:center}hr:after{content:"···"}.prose blockquote{border-left:2px solid var(--border);color:var(--muted);padding-left:1rem}.prose blockquote>*+*{margin-block-start:calc(var(--line) / 2)}.prose ul{list-style:none}.prose li>ul{margin-block-start:calc(var(--line) / 4);padding-left:1.25rem}.prose ul:not(.ls):not(.tag-list):not(.tree)>li{padding-left:1.25rem;position:relative}.prose ul:not(.ls):not(.tag-list):not(.tree)>li:before{color:var(--muted);content:"▸";left:0;position:absolute}.prose ul:not(.ls):not(.tag-list):not(.tree) ul>li:before{content:"◦"}.prose table{border-collapse:collapse;display:block;overflow-x:auto;width:100%}.prose th,.prose td{border:1px solid var(--border);padding:.25rem .6rem;text-align:left}.prose th{background-color:var(--surface);color:var(--muted)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border)}.muted{color:var(--muted)}.skip-link{position:absolute;inset-inline-start:-100vw;top:0;z-index:100;background-color:var(--surface);border:1px solid var(--border);padding:.5rem 1rem}.skip-link:focus-visible{inset-inline-start:0}main{padding-block-start:calc(var(--line) * 1.5);padding-inline:clamp(1.25rem,6vw,3rem)}main>*+*{margin-block-start:calc(var(--line) * 1.5)}.meta{color:var(--muted)}.listing{list-style:none}.listing>li+li{margin-block-start:calc(var(--line) * .5)}.card>*+*{margin-block-start:.65rem}.card+.card{border-top:1px dashed var(--border);margin-block-start:var(--line);padding-block-start:var(--line)}.tag-list{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;list-style:none}.status{border:1px solid var(--border);color:var(--muted);display:inline-block;padding-inline:.45em;vertical-align:.1em}.status[data-status=active]{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent)}.status[data-status=open-source]{border-color:color-mix(in srgb,var(--info) 45%,var(--border));color:var(--info)}.status[data-status=archived]{border-color:color-mix(in srgb,var(--error) 40%,var(--border));color:var(--muted)}.meta-list div{display:flex;gap:1ch}.meta-list dt{min-width:6ch}.meta-list dd{margin:0}.post-nav{border-top:1px solid var(--border);display:grid;gap:calc(var(--line) / 2);grid-template-columns:1fr 1fr;padding-top:calc(var(--line) / 2)}.post-nav>a{overflow-wrap:anywhere;text-decoration:none}.post-nav .post-nav-dir{color:var(--muted);display:block;font-size:.75rem}.error{color:var(--error)}h2[id],h3[id]{scroll-margin-block-start:var(--line)}.prose img{border:1px solid var(--border);margin-inline:auto}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}main{flex:1 1 auto;width:100%;max-width:48rem;margin-inline:auto}footer{width:100%;max-width:48rem;margin-inline:auto;padding-block:calc(var(--line) * 1.5) 0;padding-inline:clamp(1.25rem,6vw,3rem)}footer ul{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;list-style:none;margin:0;padding:0}footer .colophon{margin-block-start:var(--line)}time{white-space:nowrap}.astro-code,.astro-code span{color:var(--shiki-dark)}.astro-code{background-color:var(--shiki-dark-bg)}[data-theme=paper] .astro-code,[data-theme=paper] .astro-code span{color:var(--shiki-light)}[data-theme=paper] .astro-code{background-color:var(--shiki-light-bg)}.prompt-line{color:var(--muted);font-size:.75rem;margin-block-end:var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-user{color:var(--accent);font-weight:700}.prompt-cmd{color:var(--fg)}.cursor{background-color:var(--accent);display:inline-block;height:1.15em;margin-left:.25em;transform:translateY(.2em);width:.6em}@media(prefers-reduced-motion:no-preference){.cursor{animation:blink 1.07s steps(1) infinite}}@keyframes blink{50%{opacity:0}}.comment-line{color:var(--muted);font-size:.75rem;margin-block:calc(var(--line) / 2) calc(var(--line) / 4)}.ls{display:grid;grid-template-columns:auto 1fr auto;gap:0 1.25rem}.ls-row{align-items:baseline;column-gap:1.25rem;display:grid;grid-column:1 / -1;grid-template-columns:subgrid;padding-block:calc(var(--line) / 4)}.ls-row:hover,.ls-row:focus-within{background-color:var(--hover)}.ls-meta{color:var(--muted);font-size:.75rem;white-space:nowrap}.ls-main{min-width:0}.ls-tail{color:var(--muted);font-size:.75rem;text-align:right;white-space:nowrap}@media(max-width:719px){.ls{column-gap:.75rem}.ls-tail{max-width:13ch;white-space:normal}}.ls-main a{color:var(--fg);text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent)}.ls-main a:hover{color:var(--accent)}.tree ul{border-left:1px solid var(--border);list-style:none;margin-left:.45rem;padding-left:.9rem}.tree li{padding-block:calc(var(--line) / 8);padding-left:1.1rem;position:relative}.tree li:before{color:var(--muted);content:"▸";left:0;position:absolute}.tree ul ul li:before{content:"◦"}.prompt-path{color:var(--muted)}.section-gap{margin-block-start:calc(var(--line) * 1.5)}.js-only{display:none}html.js .js-only{display:inline-flex}body{padding-block-end:1.75rem}[hidden]{display:none!important}.site-header{width:100%;max-width:48rem;margin-inline:auto;background-color:var(--raised);border-bottom:1px solid var(--border);box-shadow:inset 0 1px 0 var(--hl);font-size:.75rem}.site-header nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;padding:.55rem clamp(1.25rem,6vw,3rem)}.site-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;margin:0;padding:0;list-style:none}.site-header .wordmark{color:var(--accent);font-size:1.25rem;font-weight:800;letter-spacing:-.01em;line-height:1;margin-inline-end:auto;text-decoration:none;white-space:nowrap}.site-nav a{color:var(--muted);text-decoration:none;transition:color .1s}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--accent)}.nav-index{color:var(--muted);opacity:.7;margin-inline-end:.15em}.palette-trigger{align-items:center;background:none;border:1px solid transparent;color:var(--muted);cursor:pointer;font:inherit;padding:.1rem .55rem;transition:color .1s}.palette-trigger:hover,.palette-trigger:focus-visible{border-color:var(--border);color:var(--accent)}.statusline{position:fixed;inset-inline:0;bottom:0;z-index:80;max-width:48rem;margin-inline:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:1.75rem;padding-inline:clamp(1.25rem,6vw,3rem);background-color:var(--raised);border-top:1px solid var(--border);box-shadow:inset 0 1px 0 var(--hl);color:var(--muted);font-size:.75rem;user-select:none;pointer-events:none}.statusline-left{display:flex;align-items:center;gap:.6em;min-width:0}.statusline-mode{background-color:var(--fg);color:var(--bg);flex:none;font-weight:700;padding:0 .35em}.statusline-cwd{color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statusline-mid{justify-self:center;white-space:nowrap}.statusline-right{justify-self:end;white-space:nowrap}@media(max-width:639.98px){.statusline{grid-template-columns:1fr}.statusline-mid,.statusline-right{display:none}}.palette{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;background-color:color-mix(in srgb,var(--bg) 60%,transparent)}.palette-sheet{width:min(100%,48rem);background-color:var(--surface);border:1px solid var(--border);border-bottom:0;box-shadow:inset 0 1px 0 var(--hl)}.palette-prompt{display:flex;align-items:center;gap:.5rem;padding:.45rem .75rem;border-bottom:1px solid var(--border)}.palette-glyph{color:var(--accent);font-weight:700}.palette-input{flex:1;min-width:0;background:none;border:0;color:var(--fg)}.palette-input::placeholder{color:var(--muted)}.palette-list{max-height:calc(var(--line) * 9);margin:0;overflow-y:auto;list-style:none}.palette-option{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--line);padding-inline:.75rem;cursor:pointer;transition:background-color .1s}.palette-option:hover,.palette-option[aria-selected=true]{background-color:var(--hover)}.palette-option-label{white-space:nowrap}.palette-option-hint{color:var(--muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-empty{display:flex;align-items:center;height:var(--line);padding-inline:.75rem;color:var(--muted)}.help-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:1rem;background-color:color-mix(in srgb,var(--bg) 70%,transparent)}.help-panel{width:min(100%,42rem);max-height:85dvh;overflow-y:auto;background-color:var(--surface);border:1px solid var(--border);box-shadow:inset 0 1px 0 var(--hl);padding:1rem 1.25rem}.help-panel h3{margin-block-start:var(--line)}.help-table{width:100%;margin-block-start:calc(var(--line) / 3);border-collapse:collapse}.help-table th,.help-table td{text-align:left;vertical-align:top;padding:.3rem .5rem;border-bottom:1px dashed var(--border)}.toast{position:fixed;inset-inline-end:1rem;bottom:3rem;z-index:400;background-color:var(--surface);border:1px solid var(--border);box-shadow:inset 0 1px 0 var(--hl);color:var(--accent);padding:.2rem .75rem;opacity:0;pointer-events:none}.toast.toast--show{opacity:1}
