:root{--bg:#000000;--fg:#c6c6be;--bright:#f1f1ea;--dim:#7e7e75;--faint:#4c4c46;--line:#171717;--line-2:#262624;--green:#46e06a;--green-mid:#2aa74a;--green-dim:#1c6b33;--amber:#d8a657;--w:760px;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", "SF Mono",
            Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}::selection{background:#2a3a20;color:var(--bright)}a{color:inherit;text-decoration:none}.wrap{max-width:var(--w);margin:0 auto;padding:0 20px}.main{max-width:var(--w);margin:0 auto;padding:8px 20px 70px}hr,.rule{border:none;border-top:1px solid var(--line);margin:22px 0}.masthead{padding:34px 0 4px}.logo-art{margin:0;padding:0;font-family:var(--mono);font-size:clamp(4px,1.28vw,9.5px);line-height:1;white-space:pre;overflow-x:auto;overflow-y:hidden;color:var(--green);scrollbar-width:none;text-shadow:0 0 6px rgba(70,224,106,.28)}.logo-art::-webkit-scrollbar{display:none}.logo-art b{color:var(--green);font-weight:400}.logo-art i{color:var(--green-dim);font-style:normal;text-shadow:none}.logo-art.ansi-art{color:inherit;text-shadow:none;line-height:1;font-size:clamp(5px,1.3vw,11px)}.logo-art.ansi-art span{display:inline}.masthead-bar{margin:14px 0 0;padding:7px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);color:var(--dim);font-size:.8rem;letter-spacing:.02em}.masthead-bar .hn{color:var(--green)}.masthead-bar .sep{color:var(--faint)}.nav{margin-top:0;padding:13px 0 11px;border-bottom:1px solid var(--line-2);display:flex;flex-wrap:wrap;gap:4px 22px;align-items:baseline;font-size:.86rem}.nav .prompt{color:var(--faint)}.nav a{color:var(--dim)}.nav a:hover{color:var(--fg)}.nav a.active{color:var(--green)}.nav a.active::before{content:"*";color:var(--faint);margin-right:2px}.nav .ext{color:var(--faint);font-size:.75em;vertical-align:super}.whoami{display:flex;gap:20px;align-items:flex-start;padding:26px 0 4px}.whoami img{width:82px;height:82px;object-fit:cover;border:1px solid var(--line-2);filter:grayscale(.35)contrast(1.02)brightness(.95);flex-shrink:0}.whoami h1{margin:0 0 2px;font-size:1.05rem;font-weight:600;color:var(--bright)}.whoami .role{margin:0 0 8px;color:var(--dim);font-size:.82rem}.whoami .bio{margin:0 0 12px;color:var(--fg);font-size:.88rem;max-width:58ch}.whoami .links{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.whoami .social-icons{display:inline-flex;gap:13px}.whoami .social-icons a{color:var(--dim);display:inline-flex}.whoami .social-icons a:hover{color:var(--green)}.whoami .social-icons svg{width:17px;height:17px}.whoami .disc{color:var(--dim);font-size:.82rem;border-bottom:1px solid var(--line-2);padding-bottom:1px}.whoami .disc:hover{color:var(--green);border-color:var(--green-dim)}.sect{margin:34px 0 6px;color:var(--dim);font-size:.82rem}.sect .prompt{color:var(--faint)}.sect b{color:var(--fg);font-weight:600}.index{margin:6px 0 0}.index a.row{display:grid;grid-template-columns:6.4em 1fr auto;gap:0 18px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line)}.index a.row:hover{background:#101010}.index .date{color:var(--dim);font-size:.8rem;white-space:nowrap}.index .ttl{color:var(--fg)}.index a.row:hover .ttl{color:var(--green)}.index .rt{color:var(--faint);font-size:.76rem;white-space:nowrap;text-align:right}.index .tags{grid-column:2/-1;color:var(--faint);font-size:.75rem;margin-top:1px}.index .tags span::before{content:"#"}.pager{display:flex;justify-content:space-between;margin-top:26px;font-size:.84rem}.pager a{color:var(--dim)}.pager a:hover{color:var(--green)}.pager .next{margin-left:auto}.page-head{padding:22px 0 4px}.page-head h1{margin:0;font-size:1.1rem;color:var(--bright);font-weight:600}.page-head h1 .prompt{color:var(--faint);font-weight:400}.page-head .desc{color:var(--dim);font-size:.85rem;margin-top:6px}.crumbs{color:var(--faint);font-size:.78rem;margin-bottom:14px}.crumbs .prompt{color:var(--green-dim)}.crumbs a{color:var(--dim)}.crumbs a:hover{color:var(--fg)}.crumbs .sep{color:var(--faint)}.cloud{display:flex;flex-wrap:wrap;gap:8px 10px;margin:16px 0}.cloud a{color:var(--dim);font-size:.85rem;border-bottom:1px solid var(--line);padding-bottom:1px}.cloud a::before{content:"#";color:var(--faint)}.cloud a .n{color:var(--faint);font-size:.78em}.cloud a:hover{color:var(--green);border-color:var(--green-dim)}.article{padding-top:6px}.art-head{padding:6px 0 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.art-title{margin:4px 0 10px;font-size:1.55rem;line-height:1.28;font-weight:700;color:var(--bright);letter-spacing:-.01em}.art-meta{color:var(--dim);font-size:.8rem;display:flex;flex-wrap:wrap;gap:4px 10px}.art-meta .sep{color:var(--faint)}.art-desc{color:var(--dim);font-size:.9rem;margin:8px 0 0;font-style:italic}.art-tags{margin-top:10px;color:var(--faint);font-size:.78rem;display:flex;flex-wrap:wrap;gap:4px 12px}.art-tags a{color:var(--dim)}.art-tags a::before{content:"#";color:var(--faint)}.art-tags a:hover{color:var(--green)}.art-sep{border:none;border-top:1px solid var(--line-2);margin:20px 0 26px}.content{font-size:.95rem;line-height:1.78;color:var(--fg)}.content p{margin:1.05em 0}.content h1,.content h2,.content h3,.content h4{color:var(--bright);font-weight:700;line-height:1.35;margin:1.9em 0 .55em;scroll-margin-top:18px}.content h2{font-size:1.22rem}.content h3{font-size:1.06rem}.content h4{font-size:.96rem;color:var(--fg)}.content h1::before,.content h2::before,.content h3::before,.content h4::before{color:var(--faint);font-weight:400;margin-right:.5em}.content h1::before{content:"#"}.content h2::before{content:"##"}.content h3::before{content:"###"}.content h4::before{content:"####"}.content h1 a.anchor,.content h2 a.anchor,.content h3 a.anchor,.content h4 a.anchor{color:var(--faint)}.content a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:2px}.content a:hover{color:var(--green);text-decoration-color:var(--green-dim)}.content ul,.content ol{padding-left:1.5em;margin:1em 0}.content li{margin:.28em 0}.content ul{list-style:none;padding-left:1.4em}.content ul>li{position:relative}.content ul>li::before{content:"-";position:absolute;left:-1.4em;color:var(--faint)}.content ol{list-style-position:outside}.content img{max-width:100%;height:auto;border:1px solid var(--line-2);display:block;margin:1.4em 0}.content figure{margin:1.4em 0}.content figure img{margin:0}.content figure figcaption{color:var(--dim);font-size:.8rem;margin-top:6px}.content blockquote{border-left:2px solid var(--line-2);padding-left:1em;margin:1.3em 0;color:var(--dim)}.content hr{border:none;border-top:1px dashed var(--line-2);margin:2em 0}.content :not(pre)>code{font-family:var(--mono);font-size:.86em;background:#151513;border:1px solid var(--line-2);padding:.08em .38em;color:var(--amber)}.content pre{background:#0a0a0a!important;border:1px solid var(--line-2);padding:14px 16px;overflow-x:auto;font-size:.84rem;line-height:1.6;margin:1.3em 0;position:relative}.content pre code{font-family:var(--mono);background:0 0;border:none;padding:0;color:inherit}.highlight{position:relative;margin:1.3em 0}.highlight pre{margin:0}.content table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:.86rem;display:block;overflow-x:auto}.content th,.content td{border:1px solid var(--line-2);padding:6px 11px;text-align:left}.content th{background:#141412;color:var(--bright)}.copy-code{position:absolute;top:6px;right:6px;font-family:var(--mono);font-size:.68rem;color:var(--faint);background:#141412;border:1px solid var(--line-2);padding:2px 7px;cursor:pointer;opacity:0;transition:opacity .12s ease,color .12s ease}pre:hover .copy-code,.highlight:hover .copy-code{opacity:1}.copy-code:hover{color:var(--green)}.toc{border:1px solid var(--line);padding:12px 16px;margin:20px 0;font-size:.85rem}.toc summary{color:var(--dim);cursor:pointer}.toc ul{list-style:none;padding-left:1.2em;margin:8px 0 0}.toc a{color:var(--dim)}.toc a:hover{color:var(--green)}.art-foot{margin-top:40px;padding-top:18px;border-top:1px solid var(--line)}.navlinks{display:flex;justify-content:space-between;gap:20px;font-size:.84rem}.navlinks a{color:var(--dim);max-width:46%}.navlinks a:hover{color:var(--green)}.navlinks .label{color:var(--faint);font-size:.75rem}.navlinks .next{text-align:right;margin-left:auto}#searchInput{width:100%;background:#0a0a0a;border:1px solid var(--line-2);padding:11px 13px;color:var(--bright);font-family:var(--mono);font-size:.92rem;margin-top:6px}#searchInput::placeholder{color:var(--faint)}#searchInput:focus{outline:none;border-color:var(--green-dim)}#searchResults{list-style:none;padding:0;margin:14px 0 0}#searchResults li{border-bottom:1px solid var(--line)}#searchResults li a{display:block;padding:9px 0;color:var(--dim)}#searchResults li:hover a,#searchResults .focus a{color:var(--green)}.foot{max-width:var(--w);margin:0 auto;padding:20px 20px 46px;border-top:1px solid var(--line);color:var(--faint);font-size:.76rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}.foot a{color:var(--dim)}.foot a:hover{color:var(--fg)}.top-link{display:none}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#1e1e1c}::-webkit-scrollbar-thumb:hover{background:var(--green-dim)}@media(max-width:620px){.whoami{flex-direction:column;gap:14px}.whoami img{width:66px;height:66px}.art-title{font-size:1.28rem}.index a.row{grid-template-columns:1fr auto}.index .date{grid-column:1/-1}.nav{gap:4px 16px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}