:root{--ink: #111110;--panel: #1a1a17;--panel-hover: #21211d;--line: #2e2e29;--line-strong: #45453e;--paper: #eceae4;--mute: #9a978c;--cmd: #c8c2b4;--prompt: #6e6b63}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--ink);color-scheme:dark}body{min-height:100vh;background:var(--ink);color:var(--paper);font-family:Bricolage Grotesque,ui-sans-serif,system-ui,sans-serif;font-optical-sizing:auto;font-weight:500}::selection{background:#eceae4;color:#111110}a{color:inherit}.page{width:min(40rem,calc(100% - 40px));margin:0 auto;padding:36px 0 88px}.top{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.brand{display:flex;align-items:baseline;gap:18px}.mark{font-size:22px;font-weight:700;letter-spacing:-.04em;color:var(--paper);text-decoration:none}.nav{color:var(--mute);text-decoration:none;font-size:15px}.nav:hover,.nav:focus-visible,.mark:focus-visible{color:var(--paper);outline:none}.mark:focus-visible,.nav:focus-visible,.feed:focus-visible,.back:focus-visible,.prose a:focus-visible{box-shadow:0 0 0 2px var(--ink),0 0 0 4px var(--paper)}.feed{color:var(--mute);font-family:IBM Plex Mono,ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;text-decoration:none}.feed:hover,.feed:focus-visible{color:var(--paper);outline:none}.hero{margin-top:56px}.hero h1{font-size:clamp(28px,5vw,36px);font-weight:700;letter-spacing:-.045em;line-height:1.1}.lede{margin-top:12px;color:var(--mute);font-size:17px;line-height:1.5}.lede code{font-family:IBM Plex Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.85em;color:var(--cmd)}.list{list-style:none;margin-top:40px;border-top:1px solid var(--line)}.list li{border-bottom:1px solid var(--line)}.list a{display:block;padding:18px 0;text-decoration:none}.list a:hover .post-title,.list a:focus-visible .post-title{color:var(--paper)}.list a:focus-visible{outline:none;box-shadow:inset 0 0 0 1px var(--paper)}.post-date{font-family:IBM Plex Mono,ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:var(--prompt)}.post-title{margin-top:6px;font-size:20px;font-weight:600;letter-spacing:-.03em;line-height:1.2;color:var(--cmd)}.post-desc{margin-top:6px;color:var(--mute);font-size:15px;line-height:1.45}.empty{margin-top:40px;color:var(--mute);font-size:16px}.article-head{margin-top:56px;padding-bottom:24px;border-bottom:1px solid var(--line)}.article-head h1{font-size:clamp(28px,5vw,40px);font-weight:700;letter-spacing:-.045em;line-height:1.08}.meta{margin-top:14px;color:var(--prompt);font-family:IBM Plex Mono,ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}.prose{margin-top:28px;font-size:17.5px;line-height:1.65;color:var(--paper)}.prose>*+*{margin-top:1.1em}.prose h2,.prose h3{letter-spacing:-.03em;line-height:1.2}.prose h2{margin-top:2em;font-size:1.35em;font-weight:700}.prose h3{margin-top:1.6em;font-size:1.12em;font-weight:600}.prose a{color:var(--paper);text-underline-offset:3px;text-decoration-color:var(--line-strong)}.prose a:hover{text-decoration-color:var(--paper)}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.35em}.prose blockquote{border-left:2px solid var(--line-strong);padding-left:1em;color:var(--cmd)}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.prose img{display:block;max-width:100%;height:auto}.prose code{font-family:IBM Plex Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.82em;font-weight:400;color:var(--cmd)}.prose :not(pre)>code{padding:.12em .35em;background:var(--panel);border:1px solid var(--line)}.prose pre{padding:16px 18px;overflow-x:auto;background:var(--panel)!important;border:1px solid var(--line);font-size:13.5px;line-height:1.55}.prose pre code{font-size:inherit;color:inherit}.prose table{width:100%;border-collapse:collapse;font-size:15px}.prose th,.prose td{padding:8px 10px;border:1px solid var(--line);text-align:left}.back{display:inline-block;margin-top:40px;color:var(--mute);text-decoration:none;font-size:15px}.back:hover,.back:focus-visible{color:var(--paper);outline:none}.not-found{margin-top:56px}.not-found h1{font-size:32px;letter-spacing:-.04em}.not-found p{margin-top:12px;color:var(--mute)}@media(max-width:480px){.page{width:min(40rem,calc(100% - 28px))}.hero,.article-head{margin-top:40px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
