@font-face{font-family:berkeley mono;src:url(/assets/fonts/BerkeleyMono-Regular.woff2)format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:berkeley mono;src:url(/assets/fonts/BerkeleyMono-Bold.woff2)format('woff2');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:berkeley mono;src:url(/assets/fonts/BerkeleyMono-Oblique.woff2)format('woff2');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:berkeley mono;src:url(./fonts/BerkeleyMono-Bold-Oblique.woff2)format('woff2');font-weight:700;font-style:italic;font-display:swap}html{--zb-bg:#3f3f3f;--zb-bg-soft:#2b2b2b;--zb-bg-alt:#4f4f4f;--zb-fg:#dcdccc;--zb-fg-muted:#c0c0a0;--zb-fg-dim:#a6a68a;--zb-blue:#8cd0d3;--zb-cyan:#93e0e3;--zb-green:#7f9f7f;--zb-yellow:#f0dfaf;--zb-orange:#dfaf8f;--zb-red:#cc9393;--zb-border:#2e2e2e;--zb-sep-top:rgba(220, 220, 204, 0.08);--zb-sep-bot:rgba(0, 0, 0, 0.35);--max-width:740px;--med-width:600px;--small-width:480px}*{box-sizing:border-box}html{height:100%}body{background:var(--zb-bg);color:var(--zb-fg);margin:0;font-family:berkeley mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-weight:400;font-size:16px;line-height:1.5;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--zb-blue);text-decoration-color:rgba(140,208,211,.4);text-underline-offset:2px}a:hover{color:var(--zb-cyan);text-decoration-color:rgba(147,224,227,.7)}.navlink-icon{text-decoration:none}.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}hr{overflow:visible;height:1px;margin:.5rem 0;color:var(--zb-fg-dim);border:none;border-top:1px dashed var(--zb-fg-dim)}code{font-family:berkeley mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-optical-sizing:auto;font-style:normal;line-height:1.2;background:var(--zb-bg-alt);color:var(--zb-yellow);padding:.1em .3em;border-radius:4px}.pull-left{float:left}.pull-right{float:right}.container{max-width:var(--max-width);margin:0 auto;padding:0 8px}.navbar{padding:30px 0 20px}.navbar .nav-items{display:inline-block;margin-left:20px}.navbar ul{display:inline-block;margin:0;padding:0}.navbar .nav-text{margin:0;padding:5px 0}.navbar .nav-icons{margin:0;padding:5px 0}.navbar li{list-style:none;margin:0 5px;color:var(--zb-fg-muted);display:inline-block}.navbar .site-title{font-size:32px;display:inline-block;color:var(--zb-fg)}.post-card{margin:1em 0;padding:.6em .4em}.post-card .title{max-width:500px;display:inline-block;font-size:21px;color:var(--zb-fg)}.post-card .title a{color:var(--zb-fg)}.post-card .title a:hover{color:var(--zb-yellow)}.post-card .details{float:right;text-align:right;margin-left:20px;font-size:15px;color:var(--zb-fg-dim)}.no-post{text-align:center;margin-top:10px;font-style:italic;color:var(--zb-fg-dim)}.page-title{font-family:berkeley mono,monospace;font-weight:400;text-align:center;font-size:xx-large;line-height:1.3;color:var(--zb-yellow);text-shadow:none}.page-subtitle{text-align:center;margin-bottom:1em;color:var(--zb-fg-muted)}.footer{text-align:center;font-size:small;margin:2em 0 1em;color:var(--zb-fg-dim)}.footer a{color:var(--zb-blue)}@media(max-width:800px){.container{max-width:var(--med-width);transition:.3s ease all}}@media(max-width:650px){.container{max-width:83%}.navbar ul{margin-top:5px}}@media(max-width:500px){.navbar{text-align:center}.navbar .site-title{display:block;margin-bottom:10px}.navbar .nav-items{display:block;text-align:center}.navbar .nav-text,.navbar .nav-icons{display:block;margin:5px 0;padding:0}.navbar .nav-text li,.navbar .nav-icons li{display:inline-block;margin:0 8px}.pull-right{float:none;display:block}.container{max-width:83%}}.content{line-height:1.55;color:var(--zb-fg)}.content h1,.content h2,.content h3,.content h4{margin-block-start:2em!important;margin-block-end:0!important;color:var(--zb-fg)}.content h1::after,.content h2::after,.content h3::after,.content h4::after{content:"";display:block;width:50%;height:1px;border:none;border-top:1px dashed var(--zb-fg-dim);margin-top:.5rem}.content ol{counter-reset:list;padding:0 30px}.content ol>li{position:relative;list-style:none;margin:5px 0}.content ol>li::before{content:"[" counter(list,decimal)"] ";counter-increment:list;position:absolute;left:-30px;color:var(--zb-fg-dim)}.content ul{padding:0 20px}.content ul>li{margin:5px 0}.content blockquote{border-left:5px solid var(--zb-fg);margin:5px 0;padding:0 8px;font-style:italic;color:var(--zb-fg-muted);background:rgba(0,0,0,.1)}.content .avatar{border-radius:100%;border:1px solid var(--zb-border);margin:5px;float:right}@media(max-width:var(--small-width)){.content .avatar img{margin-top:-5px}}.content img{text-align:center;margin:10px;max-width:100%;border:1px solid var(--zb-border);background:var(--zb-bg-soft)}.content .color-red{color:var(--zb-red)}.content .color-orange{color:var(--zb-orange)}.content .color-green{color:var(--zb-green)}.content .color-blue{color:var(--zb-blue)}.content .highlight-red{background:rgba(204,147,147,.25)}.content .highlight-orange{background:rgba(223,175,143,.25)}.content .highlight-green{background:rgba(127,159,127,.25)}.content .highlight-blue{background:rgba(140,208,211,.25)}table{margin:15px 0;border-collapse:collapse;width:100%;background:var(--zb-bg-soft)}table tr{border-top:1px solid var(--zb-border);background:var(--zb-bg-soft)}table tr:nth-child(2n){background:var(--zb-bg-alt)}table th,table td{border:1px solid var(--zb-border);text-align:left;margin:0;padding:6px 13px;color:var(--zb-fg)}table th{font-weight:600;color:var(--zb-fg);background:#454545}table tr th :first-child,table tr td :first-child{margin:0}table tr th :last-child,table tr td :last-child{margin:0}img,a,button,input,textarea,select{outline-color:var(--zb-yellow);outline-offset:2px}.post-card:hover{background:rgba(240,223,175,6%)}@font-face{font-family:'font awesome 6 brands';font-style:normal;font-weight:400;font-display:block;src:url(/assets/fa/webfonts/fa-brands-subset.woff2)format("woff2")}.fab{font-family:'font awesome 6 brands';font-weight:400;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-github::before{content:"\f09b"}.fa-x-twitter::before{content:"\e61b"}.fa-bluesky::before{content:"\e671"}