*,*::before,*::after{box-sizing:border-box}*{margin:0}html,body{height:100%}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}:root{--bg:#0b0f0d;--fg:#d1d8d4;--accent:#00e685;--accent-soft:#8bd49c;--accent-dim:#2a3d35;--text-muted:#5f6b67;--text-secondary:#8f9b96;--border:#1a2320;--border-section:#1c1c1c;--border-subtle:#2c3a35;--bg-surface:#0f1a17;--link:#9aa69e;--accent-muted:#209b67}body{margin:0;background:var(--bg);color:var(--fg);font-family:jetbrains mono,monospace;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--link);text-decoration:none}a:hover{color:var(--accent)}.container{display:block;width:min(100% - 5rem,72rem);margin-inline:auto}.header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:70px 0 0}.header h1{margin:0}.menu{display:flex;align-items:center;gap:2rem}.menu a:hover{transition:color .3s ease}.logo{display:inline-flex;align-items:center;gap:.4rem}.logo-mark{display:block}.logo-mark circle{fill:var(--link);transition:fill .2s ease,opacity .2s ease}.logo-mark circle.bar-dot{transition:opacity .7s cubic-bezier(.34,1.56,.64,1),fill .2s ease}.logo-mark .bar-fill{fill:var(--accent);opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.4);transition:opacity .7s cubic-bezier(.34,1.56,.64,1),transform .7s cubic-bezier(.34,1.56,.64,1)}.logo:hover .logo-mark circle{fill:var(--accent-muted)}.logo:hover .logo-mark circle.bar-dot{opacity:0;transition:opacity .25s ease}.logo:hover .logo-mark .bar-fill{opacity:1;transform:scale(1);transition:opacity .25s ease,transform .25s ease}@media(hover:none){.logo .logo-mark circle{fill:var(--accent-muted)}.logo .logo-mark circle.bar-dot{opacity:0}.logo .logo-mark .bar-fill{opacity:1;transform:scale(1)}}footer{color:var(--text-muted);padding:35px 0}.blog-desc,.articles,.article-layout{border-bottom:1px solid var(--border-section)}.article-layout{display:grid;grid-template-columns:minmax(0,1fr)19rem;gap:3rem;padding-top:2.2rem;padding-bottom:2.5rem}.article-main{min-width:0}.article-header h1{margin:0;font-size:42px;line-height:1.12;letter-spacing:-.01em}.articles-main h2,.article-main h3,.article-main h4,.article-main h5,.article-main h6{margin:45px 0 18px}.article-meta,.article-path{color:var(--text-muted)}.article-path .prompt{color:var(--accent)}.article-path{margin:10px 0}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem;margin:1.6rem 0 0;font-size:.95rem}.article-meta a{color:var(--accent);transition:color .15s ease}.article-meta:has(a:hover) a{color:var(--accent-dim)}.article-meta:has(a:hover) a:hover{color:var(--accent)}.article-description{margin:2.8rem 0 3.4rem;color:var(--text-secondary);font-size:22px;line-height:1.55}.article-sidebar{position:sticky;top:1.4rem;align-self:start;color:#7e8b86}.article-sidebar h2{margin:0 0 1rem;color:var(--text-muted);font-size:.95rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase}.toc-block{margin-bottom:3rem}.toc-block nav#TableOfContents>ul{margin:0;padding:0;list-style:none;counter-reset:toc-item;border-left:1px solid #15211d}.toc-block nav#TableOfContents li{margin:.75rem 0}.toc-block nav#TableOfContents ul ul{margin:.5rem 0 .25rem;padding-left:1.1rem;list-style:none;border-left:1px solid #101917}.toc-block nav#TableOfContents li>a::before{counter-increment:toc-item;content:counter(toc-item,decimal-leading-zero)" \00B7 ";color:var(--text-muted);margin-right:.25rem}.toc-block nav#TableOfContents a{display:inline-block;color:var(--text-secondary);line-height:1.45}.toc-block nav#TableOfContents li:hover>a::before,.toc-block nav#TableOfContents li.is-active>a::before{color:var(--accent);transition:color .3s ease}.toc-block nav#TableOfContents a:hover,.toc-block nav#TableOfContents li.is-active>a{color:var(--accent);transition:color .3s ease}.toc-block nav#TableOfContents li.is-active{position:relative}.toc-block nav#TableOfContents li.is-active::after{content:"";position:absolute;left:-1.32rem;top:.15rem;width:2px;height:1.25em;background:var(--accent)}.meta-block p{margin:.65rem 0;color:var(--text-secondary)}.article-content{font-size:18px;line-height:1.72}.article-content p{margin:0 0 1rem}.article-content h1,.article-content h2,.article-content h3,.article-content h4,.article-content h5{font-weight:400}.article-content h2,.article-content h3{color:var(--accent);letter-spacing:.06em;text-transform:uppercase}.article-content h2{font-size:1.95rem}.article-content :not(pre)>code{padding:.15em .45em;border-radius:4px;background:var(--bg-surface);color:var(--accent-soft);font-size:.9em}.article-content a:not(.footnote-ref):not(.footnote-backref){color:var(--accent-soft);text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:var(--accent-soft);text-underline-offset:5px;transition:color .15s ease,text-decoration-color .15s ease}.article-content a:not(.footnote-ref):not(.footnote-backref):hover{color:var(--accent);text-decoration-color:var(--accent)}.article-content table{width:100%;margin:1.5rem 0;border-collapse:collapse;font-size:.95rem}.article-content th,.article-content td{padding:.75rem 1rem;border:1px solid var(--border);text-align:left}.article-content th{background:var(--bg-surface);color:var(--accent);font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-size:.8rem}.article-content tr:hover td{background:#0d1714}.article-content ul,.article-content ol{margin:0 0 1rem;padding-left:1.5rem}.article-content li{margin:.4rem 0}.article-content ul{list-style:none;padding-left:0}.article-content ul li{padding-left:1.5rem;position:relative}.article-content ul li::before{content:"›";position:absolute;left:0;color:var(--accent)}.article-content ol{list-style:none;padding-left:0;counter-reset:ol-item}.article-content ol>li{padding-left:3rem;position:relative;counter-increment:ol-item}.article-content ol>li::before{content:counter(ol-item,decimal-leading-zero)".";position:absolute;left:0;color:var(--text-muted)}.article-content ul ul,.article-content ol ol,.article-content ul ol,.article-content ol ul{margin:.4rem 0 .4rem 1rem;border-left:1px solid var(--border);padding-left:1rem}.article-content hr{width:80%;height:0;margin:3rem auto;border:none;border-top:1px dashed var(--border-subtle)}.article-content blockquote{margin:2rem 0;padding:2rem 2.1rem;border-left:4px solid var(--accent);background:rgba(9,22,19,.45)}.article-content blockquote p{margin:0;color:#d2d9d5;font-size:1.1rem;line-height:1.8}.article-content blockquote p strong{color:var(--accent);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;margin-right:.5rem}.footnote-ref{color:var(--accent);text-decoration:none}.footnote-ref:hover{color:var(--accent)}.footnotes{margin-top:3.5rem;padding-top:2.2rem;border-top:1px dotted var(--border-subtle);color:#9ba5a1}.footnotes hr{display:none}.footnotes ol{margin:0;padding:0;list-style:none;counter-reset:footnote-item}.article-content .footnotes ol>li{position:relative;margin:0 0 1rem;padding-left:3rem;font-size:.9rem;line-height:1.8;counter-increment:footnote-item}.article-content .footnotes ol>li::before{content:"[" counter(footnote-item)"]";position:absolute;left:0;top:0;color:var(--accent)}.footnotes p{margin:0}.footnote-backref{margin-left:.35rem;color:var(--accent-soft);text-decoration:none}.footnote-backref:hover{color:var(--accent)}.code-box{width:100%;margin:2rem 0;border:1px solid var(--border);border-radius:12px;background:var(--bg);overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,1%)inset;font-family:jetbrains mono,monospace}.code-box__header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.7rem;border-bottom:1px solid #121b18}.code-box__path{color:#61706a;font-size:14px;font-weight:500;line-height:1.1;letter-spacing:.02em}.code-box__lang{color:#7fb4ca;font-size:14px;font-weight:500;line-height:1}.code-box__body{margin:0;padding:1.6rem 1.7rem 1.85rem;color:#d4d9d7;font-size:1rem;font-weight:500;line-height:1.62;overflow-x:auto}.code-box{--code-bg:#0b0f0d;--code-bg-sel:#161d19;--code-fg:#e8efe9;--code-punct:#bbbbbb;--code-namespace:#7a8a84;--code-comment:#5b6660;--code-blue:#7fb4ca;--code-green:#8bd49c;--code-orange:#f78c6c;--code-yellow:#e8c46a;--code-magenta:#c792ea;--code-cyan:#3eebab;--code-red:#e67e80}.code-box__body .highlight,.code-box__body .chroma{margin:0;background:0 0;color:var(--code-fg)}.code-box__body .chroma .hl{background:rgba(19,50,42,.35)}.code-box__body pre{margin:0;background:0 0;white-space:pre;overflow-wrap:normal;word-break:normal}.code-box__body code{font:inherit;color:var(--code-fg);white-space:inherit}.code-box .chroma .c,.code-box .chroma .ch,.code-box .chroma .cm,.code-box .chroma .c1,.code-box .chroma .cs,.code-box .chroma .cpf{color:var(--code-comment);font-style:italic}.code-box .chroma .k,.code-box .chroma .kc,.code-box .chroma .kd,.code-box .chroma .kn,.code-box .chroma .kp,.code-box .chroma .kr,.code-box .chroma .kt{color:var(--code-blue)}.code-box .chroma .s,.code-box .chroma .sa,.code-box .chroma .sb,.code-box .chroma .sc,.code-box .chroma .dl,.code-box .chroma .sd,.code-box .chroma .s2,.code-box .chroma .se,.code-box .chroma .sh,.code-box .chroma .si,.code-box .chroma .sx,.code-box .chroma .sr,.code-box .chroma .s1,.code-box .chroma .ss{color:var(--code-yellow)}.code-box .chroma .nf,.code-box .chroma .fm,.code-box .chroma .na{color:var(--code-green)}.code-box .chroma .nt,.code-box .chroma .nc,.code-box .chroma .nn{color:var(--code-orange)}.code-box .chroma .m,.code-box .chroma .mb,.code-box .chroma .mf,.code-box .chroma .mh,.code-box .chroma .mi,.code-box .chroma .il{color:var(--code-red)}.code-box .chroma .o,.code-box .chroma .ow,.code-box .chroma .p{color:var(--code-cyan)}.code-box .chroma .n{color:var(--code-fg)}.code-box .chroma .nb,.code-box .chroma .bp{color:var(--code-blue)}.code-box .chroma .no,.code-box .chroma .vc,.code-box .chroma .vg,.code-box .chroma .vi,.code-box .chroma .vm{color:var(--code-magenta)}.code-box .chroma .cp,.code-box .chroma .cs,.code-box .chroma .gh,.code-box .chroma .gu{color:var(--code-magenta)}.code-box .chroma .ne,.code-box .chroma .nl,.code-box .chroma .nn{color:var(--code-namespace)}.code-box .chroma .mi,.code-box .chroma .m,.code-box .chroma .mf,.code-box .chroma .mh,.code-box .chroma .mo,.code-box .chroma .mb,.code-box .chroma .il{color:var(--code-red)}.code-box .chroma .s,.code-box .chroma .sb,.code-box .chroma .sc,.code-box .chroma .sd,.code-box .chroma .s2,.code-box .chroma .se,.code-box .chroma .sh,.code-box .chroma .si,.code-box .chroma .sx,.code-box .chroma .sr,.code-box .chroma .s1,.code-box .chroma .ss,.code-box .chroma .dl{color:var(--code-yellow)}.code-box .chroma .p{color:var(--code-punct)}.blog-desc{font-size:30px;padding:50px 0}.post-row{display:flex;align-items:center;gap:2rem;padding:2.25rem 0}.post-date{color:var(--text-muted);font-size:.95rem;letter-spacing:.04em}.post-title{margin:0;line-height:1.15}.post-title a{color:var(--fg)}.post-title a:hover{color:var(--accent);transition:color .3s ease}.post-caret{color:var(--accent);margin-right:.4rem}.single-content{padding:1.5rem 0 3rem;border-bottom:1px solid var(--border-section)}.single-content p{margin:0 0 1rem;font-size:1.3rem}.articles-list{border-bottom:1px solid var(--border-section);padding-bottom:3rem}.empty-state{color:var(--link);font-size:.95rem;padding:2.25rem 0}.tags-list{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;border-bottom:1px solid var(--border-section);padding:0 0 3rem}.tag-card{display:flex;flex-direction:column;gap:.35rem}.tag-card-name{color:var(--accent);font-size:1rem;transition:color .15s ease}.tag-card-count{color:var(--text-muted);font-size:.8rem;letter-spacing:.04em;transition:color .15s ease}.tags-list:has(.tag-card:hover) .tag-card-name{color:var(--accent-dim)}.tags-list:has(.tag-card:hover) .tag-card:hover .tag-card-name{color:var(--accent)}.tags-list:has(.tag-card:hover) .tag-card-count{color:#1a2a22}.tags-list:has(.tag-card:hover) .tag-card:hover .tag-card-count{color:var(--text-muted)}.tag-header{width:100%;padding-top:2.2rem;padding-bottom:.5rem}.tag-name{font-size:1.5rem;color:var(--text-muted)}.year-section{display:grid;grid-template-columns:10rem 1fr;gap:0 3rem;padding-top:1.5rem}.year-col{padding-top:.3rem}.year-number{display:block;font-size:2.375rem;font-weight:700;color:var(--accent);line-height:1;letter-spacing:-.01em}.year-count{display:block;margin-top:.6rem;color:var(--text-muted);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.entry-row{display:grid;grid-template-columns:4.5rem 1fr;gap:0 1.5rem;padding:0 0 1.75rem;border-bottom:1px dotted rgba(148,162,156,.12)}.entry-row+.entry-row{padding-top:1.75rem}.entry-row:last-child{border-bottom:none}.entry-date{color:var(--text-muted);font-size:.9rem;padding-top:.25rem}.entry-title{margin:0;font-weight:400;font-size:1.25rem;line-height:1.3}.entry-title a{color:var(--fg)}.entry-title a:hover{color:var(--accent)}.entry-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.entry-tag{color:var(--accent);font-size:.85rem;transition:color .15s ease}.entry-tags:has(.entry-tag:hover) .entry-tag{color:var(--accent-dim)}.entry-tags:has(.entry-tag:hover) .entry-tag:hover{color:var(--accent)}@media(max-width:1100px){.article-layout{grid-template-columns:1fr;gap:2rem}.article-sidebar{position:static}}@media(max-width:900px){.post-row{display:grid;grid-template-columns:1fr;row-gap:.85rem}}