:root{--bg:#1c2631;--panel:#292c3c;--panel-soft:#34384c;--text:#d1d5db;--muted:#b5bfe2;--secondary:#8caaee;--accent:#f2d5cf;--green:#a6d189;--red:#e78284;--yellow:#e5c890;--border:#626880;--active:#babbf1;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;max-width:100%;scroll-padding-top:1.5rem;overflow-x:hidden}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--mono);flex-direction:column;margin:0;padding:1rem;font-size:1rem;font-weight:400;line-height:1.65;display:flex;overflow-x:hidden}a{color:var(--accent);text-decoration:none}a:hover,a:focus-visible{color:var(--green)}.terminal{width:100%;max-width:88ch}.terminal.article{max-width:none;margin-left:0;margin-right:0}.terminal.wide{max-width:112ch}.site-nav{flex-wrap:wrap;gap:.35rem 1rem;width:100%;max-width:88ch;margin-bottom:2rem;display:flex}.container{width:100%;max-width:88ch}body>.container{flex:1}nav{width:100%;max-width:88ch}.site-nav a:before{color:var(--muted);content:"./"}.prompt,.typeme{color:var(--text);margin:1.25rem 0 .5rem}.typeme{width:min(var(--typing-width,31ch), 100%);white-space:nowrap;border-right:.6rem solid var(--accent);max-width:100%;animation:.75s steps(31,end) typing,.6s step-end infinite alternate blink;overflow:hidden}.user{color:var(--secondary)}.path{color:var(--muted)}.cursor{color:var(--accent)}.output{width:100%;animation:.8s both fade}.section-title{color:#fafafa;font-size:inherit;background:#684eff;margin:1.8rem 0 .45rem;padding:0 .45rem;font-weight:700;display:inline-block}.lead{max-width:76ch}.links,.command-list{padding-left:1.25rem}.links{flex-wrap:wrap;gap:.25rem 1.2rem;display:flex}.links li{min-width:10ch}.links .telegram-item{min-width:11.5ch}.button-row{flex-wrap:wrap;gap:.75rem;margin:1.25rem 0;display:flex}.button{border:1px solid var(--border);background:var(--panel);min-height:2.35rem;color:var(--accent);align-items:center;padding:.25rem .75rem;display:inline-flex}.custom-button{align-items:center;min-width:0;min-height:2.35rem;border:1px solid var(--border)!important;background:var(--panel)!important;color:var(--accent)!important;border-radius:4px!important;padding:.25rem .75rem!important;font-family:IBM Plex Mono,monospace!important;font-size:.9rem!important;font-weight:700!important;line-height:1.4!important;display:inline-flex!important}.button:hover,.button:focus-visible,.custom-button:hover,.custom-button:focus-visible{border-color:var(--active);background:var(--panel-soft)!important}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:1rem;margin:1rem 0 2rem;display:grid}.repo-list{border-left:1px solid var(--border);margin:1rem 0 2rem}.repo-line{color:var(--text);padding:.65rem 0 .65rem 1.75rem;display:block;position:relative}.repo-line:before{content:"$";color:var(--green);position:absolute;left:.6rem}.repo-line:hover,.repo-line:focus-visible{background:var(--panel);color:var(--text)}.repo-line:hover .repo-name,.repo-line:focus-visible .repo-name{color:var(--green)}.repo-name{color:var(--accent);font-weight:700;display:inline}.repo-description{color:var(--text);margin-top:.2rem;display:block}.repo-meta{color:var(--muted);margin-left:.75rem;font-size:.88rem;display:inline}.post-list{border-left:1px solid var(--border);margin:1rem 0 2rem}.post-line{color:var(--text);padding:.65rem 0 .65rem 1.75rem;display:block;position:relative}.post-line:before{content:"$";color:var(--green);position:absolute;left:.6rem}.post-line:hover,.post-line:focus-visible{background:var(--panel);color:var(--text)}.post-line:hover .post-title,.post-line:focus-visible .post-title{color:var(--green)}.post-title{color:var(--accent);font-weight:700;display:inline}.post-meta{color:var(--muted);margin-left:.75rem;font-size:.88rem;display:inline}.post-description{color:var(--text);margin-top:.2rem;display:block}.post-tags{flex-wrap:wrap;gap:.35rem;margin-top:.45rem;display:flex}.post-tag{border:1px solid var(--border);min-height:1.55rem;color:var(--muted);background:#232634;align-items:center;padding:0 .45rem;font-size:.78rem;line-height:1.35;display:inline-flex}.post-tag:before{content:"#";color:var(--green)}.address-list{border-left:1px solid var(--border);margin:1rem 0 2rem}.address-line{padding:.65rem 0 .65rem 1.75rem;position:relative}.address-line:before{content:"$";color:var(--green);position:absolute;left:.6rem}.address-line h2{color:var(--accent);margin:0;font-size:1rem;display:inline}.address-line h2 span{color:var(--muted);margin-left:.5rem;font-size:.88rem;font-weight:500}.address-line code{overflow-wrap:anywhere;color:var(--text);-webkit-user-select:all;user-select:all;margin-top:.2rem;display:block}.address-line:hover{background:var(--panel)}.card{border:1px solid var(--border);background:var(--panel);border-radius:4px;min-width:0;padding:1rem}.card:hover{border-color:var(--active)}.card h2,.card h3{color:var(--secondary);margin:0 0 .5rem;font-size:1rem}.card p{margin:.45rem 0}.meta,.muted{color:var(--muted)}.meta{font-size:.88rem}.address{overflow-wrap:anywhere;border:1px solid var(--border);max-width:100%;color:var(--text);-webkit-user-select:all;user-select:all;background:#232634;margin-top:.35rem;padding:.65rem;display:block}.article{max-width:none}.post-layout{width:min(100%,92ch);max-width:none;margin:2rem auto 0;display:block}.post-article{width:100%;max-width:92ch;color:color-mix(in srgb, var(--text) 92%, #fff);font-family:var(--sans);overflow-wrap:break-word;border-left:0;margin:0 auto;padding-left:0;font-size:1rem;line-height:1.62}.article .prompt{max-width:none;color:var(--muted);margin-top:.5rem;margin-left:0;margin-right:0;font-size:.86rem}.article-back-row{font-family:var(--mono);margin:1.2rem 0 0}.post-header{font-family:var(--mono);margin-bottom:2.6rem}.back-link{border:1px solid var(--border);background:var(--panel);min-height:2.1rem;color:var(--accent);align-items:center;padding:.15rem .6rem;display:inline-flex}.back-link:before{content:"< ";color:var(--green)}.back-link:hover,.back-link:focus-visible{border-color:var(--active);background:var(--panel-soft)}.post-article h1{max-width:26ch;color:var(--text);margin:1.35rem 0 .55rem;font-size:clamp(1.7rem,4vw,2.35rem);line-height:1.16}.post-date{color:var(--muted);margin:0;font-size:.84rem}.post-header .post-tags{margin-top:.85rem}.post-article h2,.post-article h3,.post-article h4{max-width:100%;color:var(--secondary);font-family:var(--mono);letter-spacing:-.02em;background:0 0;margin:2.6rem 0 .75rem;padding:0;scroll-margin-top:1.5rem;font-weight:700;line-height:1.3}.post-article h2{font-size:1.14rem}.post-article h3{font-size:1rem}.post-article h4{color:var(--muted);font-size:.94rem}.post-article p{max-width:100%;margin:.85rem 0}.post-article ul,.post-article ol{max-width:100%;margin:.85rem 0;padding-left:1.35rem}.post-article li{margin:.3rem 0}.post-article p code,.post-article li code{color:var(--accent);background:var(--panel);border-radius:3px;padding:.05rem .28rem;font-size:.88em}.post-article img{border:1px solid var(--border);object-fit:contain;background:#232634;width:auto;max-width:100%;height:auto;max-height:min(42rem,78vh);margin:1.35rem auto;display:block}.post-bottom-nav{font-family:var(--mono);margin-top:3rem}pre,code{font-family:var(--mono)}pre{border:1px solid var(--border);background:#232634;max-width:100%;margin:1.35rem 0;padding:.9rem 1rem;font-size:.84rem;line-height:1.55;overflow-x:auto}pre code{color:var(--text)}.mermaid{border:1px solid var(--border);text-align:center;background:#232634;max-width:100%;margin:1.35rem auto;padding:1rem;overflow-x:auto}.post-article table{border-collapse:collapse;max-width:100%;margin:1.35rem 0;font-size:.9rem;display:block;overflow-x:auto}.post-article th,.post-article td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.5rem .65rem}.post-article th{color:var(--secondary);font-family:var(--mono);font-weight:700}.mermaid svg{max-width:100%;height:auto;margin:0 auto;display:block}.table-of-contents{border-left:1px solid var(--border);width:min(18rem,50vw - 50ch - 4rem);max-height:calc(100vh - 2.5rem);color:var(--muted);font-family:var(--sans);padding:.25rem 0 .25rem 1rem;font-size:.82rem;line-height:1.45;transition:top .18s;position:fixed;top:8rem;left:calc(50% + 48ch + clamp(3rem,5vw,5rem));overflow-y:auto}.table-of-contents.compact{top:1.5rem}.table-of-contents ol{margin:0;padding:0;list-style:none}.table-of-contents li{margin:.25rem 0}.table-of-contents a{color:color-mix(in srgb, var(--muted) 82%, transparent);display:block}.table-of-contents a:hover,.table-of-contents a:focus-visible,.table-of-contents a.active{color:var(--text)}.table-of-contents a.active{font-weight:700}.table-of-contents .toc-level-3{padding-left:.85rem}.table-of-contents .toc-level-4{padding-left:1.7rem}.hljs-keyword,.hljs-selector-tag,.hljs-literal{color:var(--secondary)}.hljs-title,.hljs-section,.hljs-function{color:var(--green)}.hljs-type,.hljs-built_in{color:var(--yellow)}.hljs-string,.hljs-bullet,.hljs-addition,.hljs-regexp{color:var(--green)}.hljs-comment,.hljs-quote{color:var(--muted);font-style:italic}.hljs-number,.hljs-symbol,.hljs-deletion{color:var(--yellow)}.hljs-meta,.hljs-params,.hljs-attr{color:var(--accent)}.hljs-variable,.hljs-operator,.hljs-punctuation{color:var(--text)}footer{width:100%;max-width:88ch;color:var(--muted);margin-top:auto;padding-top:2rem;font-size:.9rem}.youtube:hover{color:#ff6b6b}.github:hover{color:var(--green)}.twitter:hover{color:#99d1db}.telegram:hover{color:#74c7ec}@keyframes fade{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes typing{0%{width:0}to{width:min(var(--typing-width,31ch), 100%)}}@keyframes blink{50%{border-color:#0000}}@media (width>=700px){body{padding:1.5rem;font-size:1.04rem}}@media (width<=1350px){.post-layout{width:100%;max-width:92ch;display:block}.table-of-contents{width:100%;max-width:100%;max-height:none;margin:0 0 2rem;padding:.75rem 0 .75rem 1rem;position:static}}@media (width<=700px){.post-layout{margin-top:1.5rem}.post-article h1{max-width:100%}.table-of-contents{display:none}pre,.mermaid{width:100%}}@media (width<=520px){.site-nav{flex-direction:column}.links{display:block}.repo-line{grid-template-columns:1fr;gap:0;padding:.6rem 0 .6rem 1.75rem}.repo-line:before{content:"$";left:.6rem}.repo-name,.repo-meta,.repo-description{display:block}.repo-meta{margin-top:.1rem;margin-left:0}.repo-description{margin-top:.1rem}}
