.reading-progress{position:fixed;top:0;left:0;height:2px;background-color:var(--color-text);z-index:60;transition:width .1s linear;width:0%}.back-link{display:inline-block;margin-bottom:1.5rem;color:var(--color-text-muted);font-size:.85rem}.back-link:hover{color:var(--color-text)}.post-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:2rem}.post-content h2{font-size:1.3rem;font-weight:700;margin-top:2.5rem;margin-bottom:1rem;position:relative}.post-content h3{font-size:1.1rem;font-weight:600;margin-top:2rem;margin-bottom:.75rem;position:relative}.post-content .heading-prefix{position:absolute;right:100%;top:50%;transform:translateY(-50%);margin-right:.4rem;color:var(--color-text-muted);user-select:none;display:inline-flex;align-items:center;gap:.05rem;opacity:0;transition:opacity .2s ease}.post-content h2:hover .heading-prefix,.post-content h3:hover .heading-prefix,.post-content h4:hover .heading-prefix,.post-content h5:hover .heading-prefix,.post-content h6:hover .heading-prefix{opacity:1}.post-content .heading-prefix svg{width:.85em;height:.85em}.post-content h2 a,.post-content h3 a{background:none!important;color:inherit!important;padding:0!important;text-decoration:none!important}.post-content h2 a:hover,.post-content h3 a:hover{opacity:1;text-decoration:none!important}.post-content p{margin-bottom:1.25rem;color:var(--color-text-muted)}.post-content p:has(+p){margin-bottom:0}.post-content p+p{margin-top:.75rem}.post-content strong{color:var(--color-text);font-weight:600}.post-content ul,.post-content ol{margin-bottom:1.25rem;padding-left:1.5rem;color:var(--color-text-muted)}.post-content li{margin-bottom:.5rem}.post-content code{font-size:.85em;background:var(--color-bg-secondary);padding:.15rem .4rem;border-radius:3px;border:1px solid var(--color-border)}.post-content .code-block-wrapper{background:var(--color-code-bg)!important;border:1px solid var(--color-border);border-radius:8px;margin-bottom:1.5rem;overflow:hidden}.post-content .code-block-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid var(--color-border);font-size:.75rem}.post-content .code-block-lang{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.post-content .code-block-copy{background:none;border:none;color:var(--color-text-muted);padding:.2rem;cursor:pointer;display:flex;align-items:center;gap:.35rem;font-family:var(--font-sans);font-size:.7rem}.post-content .code-block-copy:hover,.post-content .code-block-copy.copied{color:var(--color-text)}.post-content .code-block-copy svg{width:14px;height:14px}.post-content pre{position:relative;background:var(--color-code-bg)!important;border:none!important;border-radius:0!important;padding:1.25rem!important;overflow-x:auto;margin:0!important;line-height:1.5!important;font-size:.85rem!important}.post-content pre code{background:none!important;border:none!important;padding:0!important;font-size:inherit!important;line-height:inherit!important}.post-content pre code .line.highlighted{background:#8888881f;margin:0 -1.25rem;padding:0 1.25rem;border-left:3px solid var(--color-text-muted);padding-left:calc(1.25rem - 3px);display:inline-block;width:calc(100% + 2.5rem)}.post-content p a,.inline-prose-link{text-decoration:none;background-color:var(--color-text);color:var(--color-bg);padding:.1rem .35rem;border-radius:2px;transition:opacity .2s ease}.post-content p a:hover,.inline-prose-link:hover{opacity:.8;text-decoration:none}.post-content blockquote{border-left:3px solid var(--color-border);padding-left:1rem;margin-bottom:1.25rem;color:var(--color-text-muted);font-style:italic}.post-content table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.9rem}.post-content th,.post-content td{border:1px solid var(--color-border);padding:.5rem .75rem;text-align:left}.post-content th{background:var(--color-bg-secondary);font-weight:600;color:var(--color-text)}.post-content td{color:var(--color-text-muted)}.post-content hr{border:none;border-top:1px solid var(--color-border);margin:2rem 0}.section-header{font-size:1.1rem;font-weight:700;color:var(--color-text);margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between}.section-header:before{content:"# ";color:var(--color-text-muted)}.page-intro{padding-top:52px}.page-intro h1{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.page-intro p{color:var(--color-text-muted)}
