:root{color-scheme:light;--background:#fff8f2;--surface:#ffeadb;--foreground:#42302a;--accent:#b4410f;--secondary:#76605a;--emphasized:#42302a;--border-color:#e9c1ae;--border-strong:#c3663c;--code-color:var(--foreground);--selection-bg:Highlight;--selection-fg:HighlightText;--text-glow:none;--field-overlay:none;--error:#a8321f;--font-ui:"Unifont", "Unifont Upper", monospace;--font-size:1rem;--text-medium:1.5rem;--leading-medium:2rem;--text-large:2rem;--line-height:1.5rem;--leading-prose:1.75rem;--text-page-title:var(--text-large);--leading-page-title:2.5rem;--text-card-title:var(--text-medium);--leading-card-title:var(--leading-medium);--text-h2:var(--text-medium);--leading-h2:var(--leading-medium);--text-h3:var(--font-size);--leading-h3:var(--line-height);--text-meta:var(--font-size);--leading-meta:var(--line-height);--text-code:var(--font-size);--leading-code:var(--line-height);--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--space-7:4rem;--cell-gap:2ch;--prose-width:38rem;--toc-width:20rem;--page-width:60rem;--header-width:75rem;--control-size:2.5rem;--menu-item-height:2rem;--thumb-size:4rem;--pixel-icon-size:1rem;--rule:2px;--hairline:1px;--radius:0;--focus-width:2px;--focus-offset:2px;--underline-offset:.2em;--cursor-blink:cursor-blink 1s steps(1, end) infinite}:root[data-theme=tty]{color-scheme:dark;--background:#141a03;--surface:#1d2606;--foreground:#d4ff3a;--emphasized:#d4ff3a;--accent:#f0ff9a;--secondary:#a8cc2a;--border-color:#6a811c;--border-strong:var(--border-color);--code-foreground:#e8fff0;--code-color:var(--code-foreground);--selection-bg:var(--accent);--selection-fg:var(--background);--error:#728b1d;--text-glow:var(--tty-glow);--field-overlay:var(--tty-scanlines), var(--tty-vignette);--tty-glow:0 0 2px currentColor, 0 0 8px color-mix(in srgb, var(--foreground) 45%, transparent);--tty-scanlines:repeating-linear-gradient(to bottom, #0000001f 0, #0000001f 1px, transparent 1px, transparent 3px);--tty-vignette:radial-gradient(ellipse at center, transparent 55%, #00000073 100%)}@media (prefers-contrast:more){:root,:root[data-theme=tty]{--text-glow:none;--field-overlay:none}}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-latin.woff2)format("woff2");unicode-range:U+0-36F,U+2000-206F,U+20A0-20CF,U+2100-214F,U+2190-21FF,U+25??,U+FFFD}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-01.woff2)format("woff2");unicode-range:U+4E02-531F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-02.woff2)format("woff2");unicode-range:U+5321-583F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-03.woff2)format("woff2");unicode-range:U+5840-5D5F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-04.woff2)format("woff2");unicode-range:U+5D60-627D}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-05.woff2)format("woff2");unicode-range:U+6281-679F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-06.woff2)format("woff2");unicode-range:U+67A0-6CBA}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-07.woff2)format("woff2");unicode-range:U+6CC0-71DF}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-08.woff2)format("woff2");unicode-range:U+71E0-76FF}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-09.woff2)format("woff2");unicode-range:U+7700-7C1F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-10.woff2)format("woff2");unicode-range:U+7C20-813F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-11.woff2)format("woff2");unicode-range:U+8140-865F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-12.woff2)format("woff2");unicode-range:U+8660-8B7F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-13.woff2)format("woff2");unicode-range:U+8B80-909F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-14.woff2)format("woff2");unicode-range:U+90A0-95BF}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-15.woff2)format("woff2");unicode-range:U+95C0-9ADF}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-16.woff2)format("woff2");unicode-range:U+9AE0-9FFF}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-greek-cyrillic.woff2)format("woff2");unicode-range:U+370-52F,U+1E00-1FFF}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-scripts.woff2)format("woff2");unicode-range:U+530-1DFF}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-symbols.woff2)format("woff2");unicode-range:U+2070-209F,U+20D0-20FF,U+2150-218F,U+2200-24FF,U+2600-2E7F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-ext.woff2)format("woff2");unicode-range:U+2E80-2FFF,U+3130-31EF,U+3200-4DFF}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-hangul.woff2)format("woff2");unicode-range:U+AC00-D7FF}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-other.woff2)format("woff2");unicode-range:U+A000-ABFF,U+F900-FDFF,U+FE2?,U+FE50-FEFF,U+FFF0-FFFC,U+1F12F,U+2000B-3237F}@font-face{font-family:Unifont;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-18.0.01-cjk-common.woff2)format("woff2");unicode-range:U+3000-312F,U+31F?,U+4E00-9F9F,U+FE1?,U+FE30-FE4F,U+FF00-FFEF}@font-face{font-family:Unifont Upper;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/unifont-symbols-18.0.01.woff2)format("woff2");unicode-range:U+1F000-1FAFF}html{box-sizing:border-box}@supports selector(::-webkit-scrollbar){::-webkit-scrollbar{background:var(--background);width:12px;height:12px}pre::-webkit-scrollbar,.table-scroll::-webkit-scrollbar,.toc::-webkit-scrollbar{width:8px;height:8px}pre::-webkit-scrollbar{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius)}::-webkit-scrollbar-button,::-webkit-scrollbar-corner{display:none}}@supports not selector(::-webkit-scrollbar){html{scrollbar-color:var(--border-strong) var(--background)}pre{scrollbar-color:var(--border-strong) var(--surface)}pre,.table-scroll,.toc{scrollbar-width:thin}}*,:before,:after{box-sizing:inherit;margin:0;padding:0}body{font-family:var(--font-ui);font-synthesis:none;font-variant-ligatures:none;font-size:var(--font-size);font-weight:400;line-height:var(--line-height);background-color:var(--background);color:var(--foreground);text-rendering:optimizelegibility;text-shadow:var(--text-glow);-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%;margin:0;padding:0}body:after{content:"";z-index:-1;pointer-events:none;background:var(--field-overlay);position:fixed;inset:0}h1{font-size:var(--text-page-title);line-height:var(--leading-page-title);letter-spacing:0}h2{font-size:var(--text-h2);line-height:var(--leading-h2);letter-spacing:0}h3{font-size:var(--text-h3);line-height:var(--leading-h3);letter-spacing:0}h4,h5,h6{font-size:var(--font-size);line-height:var(--line-height);letter-spacing:0}h1,h2,h3,h4,h5,h6,p,ul,ol,img,figure,video,table{margin:var(--space-4) 0}.page-frame{width:var(--page-width);max-width:calc(100% - var(--space-5));padding:var(--space-6) var(--space-3);margin:auto}.page-frame-article{width:var(--prose-width);padding:var(--space-3)}.page-title{margin:0 0 var(--space-5) 0;font-weight:700}.article-head{border-block-end:var(--hairline) solid var(--border-strong);margin-block-end:var(--space-4);padding-block-end:var(--space-4)}.article-head .post-meta{margin-block-end:var(--space-2)}.article-head .page-title{margin:0}.article-body>:first-child{margin-block-start:0}.article-body>:last-child{margin-block-end:0}@media (width>=1280px){.page-frame-article:has(>.article>.toc){width:calc(var(--prose-width) + var(--space-5) + var(--toc-width))}.article:has(>.toc){grid-template-columns:minmax(0, 1fr) var(--toc-width);column-gap:var(--space-5);align-items:start;display:grid}.article>*{grid-column:1}.page-frame-article .article>.toc{max-height:calc(100vh - var(--space-4) * 2);grid-area:1/2/span 2;margin:0;position:sticky;inset-block-start:var(--space-4);overflow-y:auto}}.article-body :is(h2,h3,h4,h5,h6){color:var(--emphasized)}.article-body h2{margin-block-start:var(--space-6)}.article-body h2:before{content:"## ";content:"## " / "";color:var(--accent)}.article-body h3:before{content:"### ";content:"### " / "";color:var(--accent)}.article-body{text-shadow:none}.article-body :is(h2,h3,h4,h5,h6){text-shadow:var(--text-glow)}.article-comments{border-block-start:var(--hairline) solid var(--border-strong);margin-block-start:var(--space-4);padding-block-start:var(--space-4)}.prose{line-height:var(--leading-prose);overflow-wrap:anywhere}.prose a{overflow-wrap:anywhere;word-break:break-word}a{color:var(--accent);text-decoration:underline;text-decoration-thickness:var(--hairline);text-underline-offset:var(--underline-offset)}a:hover{color:var(--emphasized)}.post-title a,.toc a{color:var(--foreground);text-decoration:none}.post-title a:hover,.toc a:hover{color:var(--accent);text-decoration:underline}.menu-item,.control{border-radius:var(--radius);color:var(--foreground);font:inherit;white-space:nowrap;cursor:pointer;appearance:none;background:0 0;border:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.menu-item{min-height:var(--menu-item-height);padding:0 var(--space-1);position:relative}.control{gap:var(--space-2);min-height:var(--control-size);padding:0 var(--space-2)}.menu-item:hover,a.control:hover{color:var(--accent);text-decoration:underline;text-decoration-thickness:var(--hairline);text-underline-offset:var(--underline-offset)}.menu-item[aria-current],.control[aria-current]{color:var(--accent)}.menu-item[aria-current]:after{content:"*";content:"*" / ""}span.control{cursor:default}.menu-label{color:var(--secondary)}.menu-item-icon{width:var(--menu-item-height);color:var(--accent);padding:0}.pixel-icon{width:var(--pixel-icon-size);height:var(--pixel-icon-size);vertical-align:-2px;flex-shrink:0;display:inline-block}:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:var(--focus-offset)}input,textarea,select{color:var(--foreground);border:var(--hairline) solid var(--foreground);border-radius:var(--radius);padding:var(--space-2);font:inherit;appearance:none;background:0 0}input[type=checkbox],input[type=radio]{width:var(--space-3);height:var(--space-3);vertical-align:middle;padding:0}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--accent)}img{border:var(--hairline) solid var(--border-color);border-radius:var(--radius);max-width:100%;display:block;overflow:hidden}figure img,figure video{margin-bottom:0}figure figcaption{margin-top:var(--space-2);color:var(--secondary);font-size:var(--text-meta);line-height:var(--leading-meta)}ul,ol{margin-inline-start:var(--space-5);padding:0}ul ul,ul ol,ol ul,ol ol{margin-top:0}li::marker{color:var(--accent)}ul li,ol li{position:relative}code,kbd{background:var(--surface);color:var(--code-color);padding:0 var(--space-1);font-family:inherit;font-size:inherit;border:var(--hairline) solid var(--border-strong)}code code{background:0 0;margin:0;padding:0}pre{tab-size:4;color:var(--foreground);margin:var(--space-4) 0;padding:var(--space-3);font-family:inherit;line-height:var(--leading-code);text-shadow:none;border-radius:var(--radius);border:var(--hairline) solid var(--border-strong);overflow:auto;background:var(--surface)!important;font-size:var(--text-code)!important}.code-block{margin:var(--space-4) 0;display:grid}.code-block>pre,.code-block>.code-copy{grid-area:1/1}.code-block>pre{min-width:0;margin:0}.code-copy{z-index:1;min-height:var(--leading-code);margin:var(--hairline) var(--hairline) 0 0;padding:var(--space-3) var(--space-3) var(--space-1) var(--space-2);background:var(--surface);color:var(--secondary);font-size:var(--text-code);line-height:var(--leading-code);place-self:start end;gap:0;position:sticky;top:0}.code-copy:hover,.code-copy:focus-visible{color:var(--accent);text-decoration:underline}pre code{font-size:inherit;border:none;margin:0;padding:0;background:0 0!important}small,sub,sup{font-size:inherit}sup{line-height:0}mark{background:var(--accent);color:var(--background)}::selection{background:var(--selection-bg);color:var(--selection-fg);text-shadow:none}.prose small{opacity:1!important;font-size:inherit!important}blockquote{margin:var(--space-4) 0;padding:0 0 0 var(--space-3);border-inline-start:var(--rule) solid var(--border-strong);color:var(--secondary);font-style:normal}blockquote p{margin:var(--space-2) 0}blockquote p:first-child{margin-top:0}blockquote p:last-child{margin-bottom:0}table{table-layout:auto;border-collapse:collapse}.table-scroll{max-width:100%;margin:var(--space-4) 0;overflow-x:auto}.table-scroll>table{margin:0}th,td{word-break:keep-all;overflow-wrap:normal}th code,td code{white-space:nowrap}table,th,td{border:var(--hairline) solid var(--border-strong);padding:var(--space-2)}th{background:var(--surface);color:var(--emphasized);text-align:start}hr{background:var(--border-color);width:100%;height:var(--rule);border:none}.post-list{margin:0;padding:0;list-style:none}.post-item{border-block-end:var(--hairline) solid var(--border-color);margin-block-end:var(--space-4);padding-block-end:var(--space-4)}.post-item:last-child{border-block-end:none;margin-block-end:0;padding-block-end:0}.post-list-compact .post-title{margin-bottom:var(--space-2)}.post-title{font-size:var(--text-card-title);line-height:var(--leading-card-title);margin:0 0 var(--space-3) 0;overflow-wrap:anywhere;font-weight:600}h1,h2,h3,h4,h5,h6,b,strong,th{font-weight:600}strong,b{color:var(--accent);text-decoration:none}em,i{color:var(--secondary);font-style:normal;text-decoration:none}a :is(strong,b,em,i){color:inherit}.term-prompt{margin:var(--space-4) 0 0;color:var(--secondary)}.term-prompt:first-child{margin-top:0}.term-command{color:var(--foreground)}.term-output{margin:0;list-style:none}.term-output li{align-items:start;column-gap:var(--cell-gap);flex-wrap:wrap;display:flex}.term-output li>*{min-width:0;color:var(--secondary);overflow-wrap:break-word}.term-output li>:first-child{width:min(var(--term-left), 100%);flex:none}.term-output li>:last-child{flex:1 1 0}.term-output .term-cell>a{color:var(--foreground);text-decoration:none}.term-output .term-cell>a:hover{color:var(--accent);text-decoration:underline}.term-output-stack{--term-row:calc(var(--term-left) + var(--cell-gap) + var(--term-right))}.term-output-stack li>:first-child{width:max(min(var(--term-left), 100%), calc((var(--term-row) - 100%) * 999));max-width:100%}.term-output-stack li>:last-child{padding-inline-start:clamp(0px, calc((var(--term-row) - 100%) * 999), var(--cell-gap))}.term-text{line-height:var(--line-height)}.term-text>:first-child{margin-top:0}.term-text>:last-child{margin-bottom:0}.term-text ul{margin-inline-start:0;list-style:none}.term-text ul>li{padding-inline-start:2ch}.term-text ul>li:before{content:"- ";content:"- " / "";color:var(--secondary);position:absolute;inset-inline-start:0}@keyframes cursor-blink{50%{opacity:0}}@media (prefers-reduced-motion:no-preference){:where([data-pausable]) .cursor[data-blink]{animation:var(--cursor-blink)}}[data-paused] .cursor{animation:none}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}:root[data-theme=tty],:root[data-theme=tty]:before,:root[data-theme=tty]:after,:root[data-theme=tty] *,:root[data-theme=tty] :before,:root[data-theme=tty] :after,:root[data-theme-switching],:root[data-theme-switching]:before,:root[data-theme-switching]:after,:root[data-theme-switching] *,:root[data-theme-switching] :before,:root[data-theme-switching] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (prefers-reduced-motion:no-preference){:root[data-theme=tty]:not([data-theme-switching]) [data-pausable] .cursor[data-blink]:not([data-paused] *){animation:var(--cursor-blink)!important}}:root[data-theme=tty] .astro-code,:root[data-theme=tty] .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}footer[data-astro-cid-jo6i4kqk]{padding:var(--space-6) var(--space-3);background:var(--background);color:var(--secondary);text-align:center;border-block-start:var(--rule) solid var(--accent);margin-top:var(--space-7)}.copyright[data-astro-cid-jo6i4kqk]{margin-bottom:var(--space-3);font-size:var(--text-meta);line-height:var(--leading-meta)}.copyright[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{margin-inline-start:var(--space-2)}.social-links[data-astro-cid-jo6i4kqk]{justify-content:center;gap:var(--space-2);display:flex}.language-switcher[data-astro-cid-l4evwy7q]{gap:var(--cell-gap);flex-wrap:wrap;align-items:center;display:flex}#theme-toggle[data-astro-cid-l6lhmie6]{min-width:var(--menu-item-height)}:root[data-theme=tty] #theme-toggle[data-astro-cid-l6lhmie6] .theme-sun,:root:not([data-theme=tty]) #theme-toggle[data-astro-cid-l6lhmie6] .theme-moon{display:none}header[data-astro-cid-nen7h5rs]{padding:var(--space-1) var(--space-3);background:var(--surface);border-block-end:var(--hairline) solid var(--border-strong);margin:0}nav[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:var(--space-3);max-width:var(--header-width);margin:0 auto;display:flex}.site-title[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-1);display:flex}.site-title[data-astro-cid-nen7h5rs] .site-logo{width:var(--pixel-icon-size);height:var(--pixel-icon-size);color:var(--accent)}h2[data-astro-cid-nen7h5rs]{white-space:nowrap;font-size:var(--font-size);line-height:var(--line-height);margin:0}.tagline[data-astro-cid-nen7h5rs]{font-size:var(--text-meta);line-height:var(--leading-meta);color:var(--secondary);white-space:nowrap;margin:0;margin-inline-start:var(--space-1)}.internal-links[data-astro-cid-nen7h5rs],.right-section[data-astro-cid-nen7h5rs],.social-links[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--cell-gap);display:flex}.internal-links[data-astro-cid-nen7h5rs] .menu-item,.right-section[data-astro-cid-nen7h5rs] .menu-item{padding-inline:0}.right-section[data-astro-cid-nen7h5rs] #theme-toggle,.social-links[data-astro-cid-nen7h5rs] .menu-item-icon{width:2ch;min-width:0}.social-links[data-astro-cid-nen7h5rs] .menu-item-icon svg{width:var(--pixel-icon-size);height:var(--pixel-icon-size)}.status-sep[data-astro-cid-nen7h5rs]{color:var(--secondary)}.internal-links[data-astro-cid-nen7h5rs]{flex-wrap:wrap;flex:1;min-width:0}@media (width<=960px){nav[data-astro-cid-nen7h5rs]{flex-wrap:wrap}.brand-sep[data-astro-cid-nen7h5rs]{display:none}}@media (720px<width<=960px){.internal-links[data-astro-cid-nen7h5rs]{flex-basis:100%;order:3}}@media (width<=720px){nav[data-astro-cid-nen7h5rs]{justify-content:flex-start;gap:var(--space-1)}.site-title[data-astro-cid-nen7h5rs]{flex-basis:100%}.internal-links[data-astro-cid-nen7h5rs]{flex:0 auto}.right-section[data-astro-cid-nen7h5rs]{flex:auto}.status-sep[data-astro-cid-nen7h5rs]{display:none}.right-section[data-astro-cid-nen7h5rs] #theme-toggle{flex:none;margin-inline-start:auto}.social-links[data-astro-cid-nen7h5rs],.tagline[data-astro-cid-nen7h5rs]{display:none}}
