﻿@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,700;0,800;1,400&display=swap");:root{--bg: #15161e;--pane: #1a1b26;--elev: #1f2335;--border: #2a2e3f;--border-hi: #3b4261;--fg: #c0caf5;--dim: #787c99;--faint: #565f89;--green: #9ece6a;--cyan: #7dcfff;--blue: #7aa2f7;--magenta: #bb9af7;--yellow: #e0af68;--orange: #ff9e64;--red: #f7768e;--nav: #aab2d8;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--measure: 72ch;--bar-h: 2.2rem;--status-h: 1.9rem}html[data-theme=light]{--bg: #e8e9ee;--pane: #dadbe3;--elev: #dfe0e8;--border: #c5c7d2;--border-hi: #b0b3c1;--fg: #2b3047;--dim: #6a6f88;--faint: #8a90ac;--green: #4d6e2f;--cyan: #007197;--blue: #2e5fd0;--magenta: #7847d6;--yellow: #8a6a2f;--orange: #a85700;--red: #c0392b;--nav: #474c66}*{box-sizing:border-box}html{scroll-behavior:smooth}body.tui{background:var(--bg) !important;color:var(--fg);font-family:var(--mono);font-size:16px;line-height:1.7;margin:0;padding:var(--bar-h) 0 var(--status-h) 0;max-width:none;text-align:left;-webkit-font-smoothing:antialiased}body.tui ::selection{background:rgba(122,162,247,.3)}body.tui>header{position:fixed;inset:0 0 auto 0;height:var(--bar-h);z-index:50;display:flex;align-items:center;gap:1.25rem;padding:0 1rem;background:var(--pane);border-bottom:1px solid var(--border)}body.tui>header .brand{color:var(--dim);font-weight:700;font-size:.84rem;letter-spacing:.02em;text-decoration:none;border:0}body.tui>header .brand:hover{color:var(--fg)}body.tui>header nav{display:flex;gap:.25rem;margin-left:auto}body.tui>header nav a{color:var(--nav);text-decoration:none;border:0;font-size:.84rem;font-weight:500;padding:.2rem .65rem;border-radius:4px}body.tui>header nav a::before{content:""}body.tui>header nav a:hover{color:var(--fg);background:var(--elev)}body.tui>header nav a.active{color:var(--green);background:var(--elev)}body.tui>header .theme-toggle{margin-left:.5rem;background:none;border:0;cursor:pointer;color:var(--nav);font-family:var(--mono);font-size:1rem;line-height:1;padding:.2rem .5rem;border-radius:4px}body.tui>header .theme-toggle:hover{color:var(--fg);background:var(--elev)}body.tui main,body.tui article{display:block;width:min(92vw,1200px);max-width:100%;margin:1.4rem auto 3rem;padding:0;animation:none}body.tui p{margin:0 0 1.15rem}body.tui a{color:var(--cyan);text-decoration:none;border-bottom:1px solid rgba(125,207,255,.28)}body.tui a:hover{border-bottom-color:var(--cyan)}body.tui h1,body.tui h2,body.tui h3,body.tui h4{font-family:var(--mono);line-height:1.25;text-align:left}body.tui h1{display:block;font-size:clamp(1.6rem,3.6vw,2.15rem);font-weight:800;letter-spacing:-.01em;margin:.2rem 0 .5rem;padding:0;overflow:visible;color:var(--fg)}body.tui h1::after{content:none !important;display:none}body.tui h2{display:block;font-size:1.35rem;font-weight:700;color:var(--blue);margin:2.4rem 0 .9rem}body.tui h2::before{content:"## ";display:inline;position:static;color:var(--faint);font-weight:500}body.tui h3{display:block;font-size:1.1rem;font-weight:700;color:var(--magenta);margin:1.8rem 0 .6rem}body.tui h3::before{content:"### ";display:inline;position:static;color:var(--faint);font-weight:500}body.tui pre{background:var(--elev);border:1px solid var(--border);border-radius:6px;padding:1rem 1.1rem;margin:1.4rem 0;overflow-x:auto;position:relative;font-size:.86rem;line-height:1.55;max-width:100%}body.tui pre[data-lang]::before{content:attr(data-lang);position:absolute;top:0;right:0;font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);background:var(--bg);border-left:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0 6px 0 6px;padding:.12rem .5rem}body.tui pre[data-lang=text]::before{content:"";padding:0;border:0}body.tui :not(pre)>code{background:var(--elev);border:1px solid var(--border);border-radius:4px;padding:.05rem .35rem;font-size:.88em;color:var(--orange)}body.tui pre code{background:none;border:0;padding:0;color:inherit}body.tui pre code.hljs{background:none;color:var(--fg)}body.tui .hljs-comment,body.tui .hljs-quote{color:var(--faint);font-style:italic}body.tui .hljs-keyword,body.tui .hljs-selector-tag,body.tui .hljs-meta .hljs-keyword{color:var(--magenta)}body.tui .hljs-string,body.tui .hljs-attr,body.tui .hljs-regexp,body.tui .hljs-addition{color:var(--green)}body.tui .hljs-number,body.tui .hljs-literal,body.tui .hljs-built_in,body.tui .hljs-type{color:var(--orange)}body.tui .hljs-title,body.tui .hljs-section,body.tui .hljs-title.function_{color:var(--blue)}body.tui .hljs-name,body.tui .hljs-variable,body.tui .hljs-tag,body.tui .hljs-attribute{color:var(--cyan)}body.tui .hljs-meta,body.tui .hljs-symbol,body.tui .hljs-bullet{color:var(--yellow)}body.tui .hljs-deletion{color:var(--red)}body.tui .hljs-emphasis{font-style:italic}body.tui .hljs-strong{font-weight:700}body.tui blockquote{border-left:2px solid var(--green);background:rgba(158,206,106,.05);margin:1.4rem 0;padding:.6rem 1rem;color:var(--dim)}body.tui blockquote p:last-child{margin-bottom:0}body.tui hr{height:0;border:0;border-top:1px solid var(--border);margin:2.2rem 0;overflow:visible}body.tui hr::after{content:none !important;display:none}body.tui img{max-width:100%;border-radius:6px}body.tui article>header{text-align:left;border:0;margin-bottom:1.5rem}body.tui article>header>div{color:var(--dim);font-size:.82rem;line-height:1.7}body.tui article>header>div a{color:var(--cyan)}body.tui article>header .icon{vertical-align:-2px;opacity:.7;margin:0 .15rem}body.tui .feed{max-width:100%;margin:1.2rem 0 0;padding:0}body.tui .feed-entry{display:block;text-align:left;border:0;border-top:1px solid var(--border);padding:1.1rem 0 1.1rem 1.4rem;position:relative}body.tui .feed-entry:last-child{border-bottom:1px solid var(--border)}body.tui .feed-entry::before{content:"▸";position:absolute;left:0;top:1.05rem;color:var(--faint)}body.tui .feed-entry:hover::before{color:var(--green)}body.tui .feed-entry .title{display:block;color:var(--fg);font-size:1.12rem;font-weight:700;line-height:1.4;border:0}body.tui .feed-entry:hover .title{color:var(--cyan)}body.tui .feed-meta{margin-top:.35rem;font-size:.78rem;color:var(--dim);display:flex;gap:.9rem;flex-wrap:wrap;align-items:baseline}body.tui .feed-meta .date{color:var(--green)}body.tui .feed-meta .rt{color:var(--faint)}body.tui .feed-meta .tags{display:inline-flex;gap:.5rem;flex-wrap:wrap}body.tui .feed-meta .tags a{color:var(--faint);border:0}body.tui .feed-meta .tags a:hover{color:var(--cyan)}body.tui main li{text-align:left}.tui-status{position:fixed;inset:auto 0 0 0;height:var(--status-h);z-index:50;display:flex;align-items:stretch;font-size:.78rem;font-weight:500;background:var(--pane);border-top:1px solid var(--border);color:var(--dim);overflow:hidden;white-space:nowrap}.tui-status .seg{display:flex;align-items:center;padding:0 .8rem}.tui-status .seg-mode{background:var(--green);color:var(--bg);font-weight:800;letter-spacing:.06em}.tui-status .seg-path{color:var(--fg)}.tui-status .seg-spacer{flex:1}.tui-status .seg-hint{color:var(--dim);border-left:1px solid var(--border)}.tui-status .seg-hint b{color:var(--cyan);font-weight:700}.tui-status .seg-clock{background:var(--elev);color:var(--green);border-left:1px solid var(--border)}.tui-status .seg-sys{color:var(--dim);border-left:1px solid var(--border)}.tui-status .seg-sys:empty{display:none}.tui-status .sys-os{color:var(--cyan)}.tui-status .sys-sep{color:var(--faint);margin:0 .15rem}.tui-status .sys-br{color:var(--dim)}body.tui .home-term{width:min(92vw,1200px);margin:1.4rem auto .5rem;padding:0}body.tui .home-term .cmd{margin:1.1rem 0 .35rem;color:var(--fg);font-weight:500}body.tui .home-term .cmd:first-child{margin-top:0}body.tui .prompt{color:var(--green);font-weight:700;margin-right:.55rem}body.tui .home-term .whoami{color:var(--fg);margin:0 0 .3rem;max-width:var(--measure)}body.tui .home-term .whoami .accent{color:var(--cyan)}body.tui .now{margin:.4rem 0 2.2rem}body.tui .now .cmd{margin:0 0 .7rem;color:var(--fg);font-weight:500}body.tui .now-body{border-left:2px solid var(--green);padding-left:1.2rem;color:var(--dim);max-width:var(--measure)}body.tui .now-body>:first-child{margin-top:0}body.tui .now-body>:last-child{margin-bottom:0}body.tui .now-body a{color:var(--cyan)}body.tui .project-showcase{display:grid;grid-template-columns:minmax(0, 1fr);gap:1.4rem 2rem;margin:.4rem 0 2.4rem}@media (min-width: 880px){body.tui .project-showcase{grid-template-columns:repeat(2, minmax(0, 1fr))}}body.tui .project-card{border-left:2px solid var(--green);padding-left:1.1rem;min-width:0}body.tui a.project-title{display:block;font-size:1.2rem;font-weight:800;line-height:1.3;color:var(--fg);border:0;margin-bottom:.35rem}body.tui a.project-title:hover{color:var(--cyan)}body.tui .project-blurb{color:var(--dim);font-size:.9rem;margin:.4rem 0 .6rem}body.tui .project-blurb>*{margin:0}body.tui .project-links{display:flex;flex-wrap:wrap;gap:1rem;font-size:.82rem;font-weight:500}body.tui .project-links a{color:var(--cyan);border:0}body.tui .project-links a:hover{color:var(--fg)}body.tui .feed-label{margin:0 0 .2rem;color:var(--fg);font-weight:500}body.tui .dir-ls{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:.4rem 0 1.5rem}body.tui .dir-ls::before{content:"❯ filter:";color:var(--green);font-weight:700;margin-right:.2rem;white-space:nowrap}body.tui .dir-ls a{color:var(--dim);background:var(--pane);border:1px solid var(--border);border-radius:5px;padding:.12rem .6rem;font-size:.82rem;text-decoration:none}body.tui .dir-ls a:hover{color:var(--fg);border-color:var(--border-hi);background:var(--elev)}body.tui .dir-ls a.active{color:var(--green);border-color:var(--green);background:var(--elev)}body.tui .series-index{display:grid;grid-template-columns:minmax(0, 1fr);gap:2rem;margin:.6rem 0 2rem}@media (min-width: 880px){body.tui .series-index{grid-template-columns:repeat(2, minmax(0, 1fr))}}body.tui .series-group-head{display:flex;align-items:baseline;gap:.7rem;border-bottom:1px solid var(--border);padding-bottom:.4rem;margin-bottom:.6rem}body.tui a.series-name{color:var(--blue);font-weight:700;font-size:1.05rem;border:0}body.tui a.series-name:hover{color:var(--cyan)}body.tui .series-count{color:var(--faint);font-size:.78rem}body.tui .series-parts{list-style:none;margin:0;padding:0}body.tui .series-parts li{display:flex;gap:.7rem;align-items:baseline;list-style:none;padding:.28rem 0 !important}body.tui .series-parts li::after{content:none !important}body.tui .series-num{color:var(--green);font-variant-numeric:tabular-nums;opacity:.8;flex:none;width:1.2rem;text-align:right}body.tui a.series-part-title{color:var(--fg);border:0}body.tui a.series-part-title:hover{color:var(--cyan)}body.tui .series-parts--full li{padding:.7rem 0;border-top:1px solid var(--border)}body.tui .series-parts--full li:first-child{border-top:0}body.tui .series-parts--full .series-num{font-size:1.1rem}body.tui .series-back{margin-top:1.6rem}body.tui .series-back a{color:var(--dim);border:0}body.tui .series-back a:hover{color:var(--cyan)}body.tui .series-nav{display:block;border-left:2px solid var(--green);background:var(--elev);border-radius:0 4px 4px 0;padding:.6rem .9rem;margin:0 0 1.8rem;max-width:var(--measure)}body.tui a.series-nav-label{display:block;color:var(--green);font-weight:700;font-size:.8rem;letter-spacing:.02em;border:0;margin-bottom:.3rem}body.tui a.series-nav-label:hover{color:var(--cyan)}body.tui .series-nav-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.2rem;font-size:.82rem}body.tui .series-nav-links a{color:var(--cyan);border:0}body.tui .series-nav-links a:hover{color:var(--fg)}body.tui .series-nav-next{margin-left:auto}body.tui pre.neofetch-mini{position:fixed;left:.9rem;bottom:2.7rem;z-index:1;margin:0;padding:0;border:0;background:none;overflow:visible;font-size:5px;line-height:1.12;color:var(--green);opacity:.5;white-space:pre;pointer-events:none}@media (max-width: 1500px){body.tui pre.neofetch-mini{display:none}}body.tui main em:last-child{color:var(--dim)}body.tui a:focus-visible,body.tui button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none !important;transition:none !important}}@media (max-width: 640px){body.tui{font-size:15px}body.tui>header{gap:.5rem;padding:0 .6rem}.tui-status .seg-hint{display:none}body.tui main{padding:0 1rem}}