:root{--bg:#0a0e0c;--bg-soft:#0f1512;--bg-code:#0c110e;--bg-inline:#14201a;--fg:#c6d2c9;--fg-bright:#e9f1eb;--fg-dim:#6c7a72;--accent:#4ee88f;--accent-dim:#2f8f59;--amber:#ffb454;--magenta:#ff6ac1;--cyan:#56d4dd;--red:#ff6e6e;--border:#1a241f;--border-bright:#2a3a32;--sel:rgba(78, 232, 143, 0.22);--glow:0 0 7px rgba(78, 232, 143, 0.40);--font-display:"Space Mono", ui-monospace, monospace;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--measure:76ch;--radius:4px}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-mono);font-size:15.5px;line-height:1.75;font-feature-settings:"liga" 0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::selection{background:var(--sel);color:var(--fg-bright)}body::before{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;background:repeating-linear-gradient( to bottom,transparent 0,transparent 2px,rgba(0,0,0,.16) 3px,transparent 4px );opacity:.35;mix-blend-mode:multiply}body::after{content:"";position:fixed;inset:0;z-index:9998;pointer-events:none;background:radial-gradient( ellipse at center,transparent 55%,rgba(0,0,0,.45) 100% )}.wrap{max-width:var(--measure);margin:0 auto;padding:0 1.4rem}.site{min-height:100vh;display:flex;flex-direction:column}.content{flex:1 0 auto;padding:2.2rem 0 4rem}.masthead{border-bottom:1px solid var(--border);padding:1.1rem 0;position:sticky;top:0;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(6px);z-index:50}.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.brand{font-family:var(--font-display);font-weight:700;font-size:1.02rem;letter-spacing:-.3px;text-decoration:none;color:var(--fg-bright);white-space:nowrap}.brand .dim{color:var(--fg-dim)}.brand .green{color:var(--accent);text-shadow:var(--glow)}.cursor{display:inline-block;width:.62ch;height:1.05em;margin-left:2px;background:var(--accent);box-shadow:var(--glow);transform:translateY(.18em);animation:blink 1.05s steps(2,start)infinite}@keyframes blink{0%,50%{opacity:1}50.01%,100%{opacity:0}}.nav{display:flex;gap:1.3rem;align-items:center}.nav a{color:var(--fg-dim);text-decoration:none;font-size:.9rem;position:relative;transition:color .16s ease}.nav a::before{content:"/";color:var(--border-bright);margin-right:1px}.nav a:hover{color:var(--accent)}.nav a:hover::before{color:var(--accent-dim)}.whoami{border:1px solid var(--border);border-left:2px solid var(--accent);background:var(--bg-soft);border-radius:var(--radius);padding:1.1rem 1.3rem;margin-bottom:2.6rem;font-size:.95rem;color:var(--fg);animation:rise .5s ease both}.whoami .label{color:var(--accent-dim)}.whoami p{margin:.3rem 0 0}.section-title{font-family:var(--font-display);font-weight:700;color:var(--fg-dim);font-size:.82rem;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 1.4rem}.section-title::before{content:"// ";color:var(--accent-dim)}.post-list{list-style:none;margin:0;padding:0}.post-item{padding:1.15rem 0;border-bottom:1px dashed var(--border);animation:rise .5s ease both}.post-item:last-child{border-bottom:0}.post-item .date{color:var(--fg-dim);font-size:.8rem;letter-spacing:.4px}.post-item h2{font-family:var(--font-display);font-weight:700;font-size:1.18rem;line-height:1.35;margin:.25rem 0 .35rem}.post-item h2 a{color:var(--fg-bright);text-decoration:none;transition:color .16s ease,text-shadow .16s ease}.post-item h2 a::before{content:"$ ";color:var(--accent)}.post-item h2 a:hover{color:var(--accent);text-shadow:var(--glow)}.post-item .excerpt{color:var(--fg-dim);margin:.2rem 0 .5rem;font-size:.92rem}.meta-row{display:flex;flex-wrap:wrap;gap:.6rem .9rem;align-items:center;font-size:.8rem}.tags{display:flex;flex-wrap:wrap;gap:.45rem}.tag{color:var(--amber);text-decoration:none;font-size:.78rem;border:1px solid color-mix(in srgb,var(--amber) 35%,transparent);border-radius:var(--radius);padding:.05rem .45rem;transition:background .16s ease}.tag::before{content:"#";opacity:.7}.tag:hover{background:color-mix(in srgb,var(--amber) 14%,transparent)}.rt{color:var(--fg-dim)}.rt::before{content:"~ ";color:var(--accent-dim)}.post-header{margin-bottom:2rem}.post-header .kicker{color:var(--accent-dim);font-size:.8rem;letter-spacing:1px}.post-title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.6rem,4.5vw,2.25rem);line-height:1.18;color:var(--fg-bright);margin:.5rem 0 .9rem;letter-spacing:-.5px}.post-meta{color:var(--fg-dim);font-size:.85rem;display:flex;flex-wrap:wrap;gap:.5rem 1rem}.prose{font-size:1rem}.prose>*+*{margin-top:1.25rem}.prose h2,.prose h3,.prose h4{font-family:var(--font-display);font-weight:700;color:var(--fg-bright);line-height:1.3;margin-top:2.4rem;scroll-margin-top:5rem}.prose h2{font-size:1.4rem}.prose h3{font-size:1.15rem}.prose h4{font-size:1rem;color:var(--fg)}.prose h2::before{content:"## ";color:var(--accent-dim)}.prose h3::before{content:"### ";color:var(--accent-dim)}.prose a{color:var(--accent);text-decoration:none;background-image:linear-gradient(var(--accent-dim),var(--accent-dim));background-size:0% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .22s ease}.prose a:hover{background-size:100% 1px;text-shadow:var(--glow)}.prose strong{color:var(--fg-bright)}.prose em{color:var(--amber);font-style:normal}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin:.35rem 0}.prose li::marker{color:var(--accent-dim)}.prose hr{border:0;border-top:1px dashed var(--border-bright);margin:2.5rem 0}.prose blockquote{border-left:2px solid var(--accent-dim);background:var(--bg-soft);margin:0;padding:.6rem 1.1rem;border-radius:0 var(--radius)var(--radius)0;color:var(--fg-dim)}.prose blockquote::before{content:"[!] ";color:var(--amber)}.prose img{max-width:100%;height:auto;border:1px solid var(--border-bright);border-radius:var(--radius);display:block}.prose table{width:100%;border-collapse:collapse;font-size:.9rem}.prose th,.prose td{border:1px solid var(--border-bright);padding:.5rem .7rem;text-align:left}.prose th{background:var(--bg-soft);color:var(--accent);font-weight:700}.prose :not(pre)>code{background:var(--bg-inline);color:var(--accent);padding:.1rem .4rem;border-radius:var(--radius);font-size:.86em;border:1px solid var(--border)}pre{background:var(--bg-code);border:1px solid var(--border-bright);border-radius:var(--radius);padding:1rem 1.1rem;overflow-x:auto;font-size:.86rem;line-height:1.6;position:relative}pre code{background:0 0;border:0;padding:0;color:var(--fg)}.highlight{margin:0}.highlight pre{margin:0}.copy-btn{position:absolute;top:.55rem;right:.55rem;font-family:var(--font-mono);font-size:.68rem;color:var(--fg-dim);background:var(--bg-soft);border:1px solid var(--border-bright);border-radius:var(--radius);padding:.1rem .5rem;cursor:pointer;opacity:0;transition:opacity .16s ease,color .16s ease}pre:hover .copy-btn{opacity:1}.copy-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.toc{border:1px solid var(--border);background:var(--bg-soft);border-radius:var(--radius);padding:.9rem 1.1rem;margin-bottom:2rem;font-size:.85rem}.toc-label{color:var(--accent-dim);font-size:.74rem;letter-spacing:1.4px;text-transform:uppercase}.toc ul{list-style:none;margin:.4rem 0 0;padding-left:.6rem}.toc li{margin:.18rem 0}.toc a{color:var(--fg-dim);text-decoration:none}.toc a:hover{color:var(--accent)}.post-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.4rem;border-top:1px dashed var(--border-bright);font-size:.88rem}.post-nav a{color:var(--fg-dim);text-decoration:none}.post-nav a:hover{color:var(--accent)}.back{display:inline-block;margin-bottom:1.6rem;color:var(--fg-dim);text-decoration:none;font-size:.86rem}.back::before{content:"cd .. ";color:var(--accent-dim)}.back:hover{color:var(--accent)}.footer{border-top:1px solid var(--border);padding:1.6rem 0;color:var(--fg-dim);font-size:.8rem;flex-shrink:0}.footer .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.footer a{color:var(--fg-dim);text-decoration:none}.footer a:hover{color:var(--accent)}.footer .prompt{color:var(--accent-dim)}.tag-cloud{display:flex;flex-wrap:wrap;gap:.7rem}.tag-cloud .tag{font-size:.9rem;padding:.2rem .7rem}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.cursor{animation:none}}@media(max-width:600px){body{font-size:15px}.masthead{position:static}.nav{gap:1rem}.post-nav{flex-direction:column}}.chroma{background:0 0;color:var(--fg)}.chroma .err{color:var(--red)}.chroma .lntd{vertical-align:top;padding:0;margin:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .ln,.chroma .lnt{color:var(--fg-dim);margin-right:.8em;user-select:none;opacity:.6}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--fg-dim);font-style:italic}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr{color:var(--magenta)}.chroma .kt{color:var(--cyan)}.chroma .n{color:var(--fg)}.chroma .na{color:var(--amber)}.chroma .nb,.chroma .bp{color:var(--cyan)}.chroma .nc,.chroma .nn{color:var(--cyan)}.chroma .nd{color:var(--amber)}.chroma .nf,.chroma .fm{color:var(--accent)}.chroma .nt{color:var(--magenta)}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi{color:var(--fg-bright)}.chroma .no{color:var(--amber)}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .ss,.chroma .dl{color:var(--amber)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .mo,.chroma .il{color:var(--cyan)}.chroma .o,.chroma .ow{color:var(--accent)}.chroma .p{color:var(--fg-dim)}.chroma .gp{color:var(--accent)}.chroma .gi{color:var(--accent)}.chroma .gd{color:var(--red)}.chroma .gh,.chroma .gu{color:var(--cyan);font-weight:700}.chroma .ge{font-style:italic}.chroma .gs{font-weight:700}.pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1.4rem;border-top:1px dashed var(--border-bright);font-size:.88rem}.pagination a{color:var(--fg-dim);text-decoration:none}.pagination a:hover{color:var(--accent)}.pagination .page-of{color:var(--fg-dim);font-size:.8rem}.notfound{padding:2rem 0 4rem}.notfound .nf-code{color:var(--accent-dim);font-size:.85rem}.prose figure{margin:0}.prose figcaption{color:var(--fg-dim);font-size:.8rem;text-align:center;margin-top:.5rem}.asciinema{margin:1.5rem 0}