:root,[data-theme=dark]{--color-bg:#0b0c0e;--color-heading:#fff;--color-text:#f1f3f7;--color-text-muted:#949eb0;--color-text-subtle:#576070;--color-border:#1a1d24;--color-border-hover:#2a2f3a;--color-accent:#38bdf8;--color-accent-hover:#7dd3fc;--color-code-bg:#101217;--color-selection:#38bdf833;--font-sans:"Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", Consolas, monospace;--max-width:740px}[data-theme=light]{--color-bg:#fff;--color-heading:#111;--color-text:#334155;--color-text-muted:#536070;--color-text-subtle:#64748b;--color-border:#e5e7eb;--color-border-hover:#cbd5e1;--color-accent:#1683ff;--color-accent-hover:#0264d8;--color-code-bg:#f8fafc;--color-selection:#1683ff26}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg:#fff;--color-heading:#111;--color-text:#334155;--color-text-muted:#536070;--color-text-subtle:#64748b;--color-border:#e5e7eb;--color-border-hover:#cbd5e1;--color-accent:#1683ff;--color-accent-hover:#0264d8;--color-code-bg:#f8fafc;--color-selection:#1683ff26}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--color-selection);color:var(--color-heading)}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);flex-direction:column;min-height:100vh;line-height:1.65;display:flex}header{border-bottom:1px solid var(--color-border);padding:1.5rem 1.5rem 1.25rem}header .header-container{max-width:var(--max-width);flex-direction:column;gap:.35rem;margin:0 auto;display:flex}header .header-top{justify-content:space-between;align-items:center;display:flex}header a.logo{color:var(--color-heading);letter-spacing:-.02em;font-size:20px;font-weight:700;text-decoration:none}header a.logo:hover{color:var(--color-accent)}header .header-tagline{color:var(--color-text-muted);font-size:15px;font-weight:500;line-height:1.5}header .nav-right{align-items:center;gap:1.25rem;display:flex}header a:not(.logo){color:var(--color-text-muted);font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}header a:not(.logo):hover,header a:not(.logo).active{color:var(--color-heading)}.theme-toggle{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.25rem;transition:color .15s;display:flex}.theme-toggle:hover{color:var(--color-heading)}.theme-toggle svg{fill:currentColor;width:18px;height:18px}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-moon,[data-theme=light] .theme-toggle .icon-sun{display:none}[data-theme=light] .theme-toggle .icon-moon{display:block}main{max-width:var(--max-width);flex:1;width:100%;margin:0 auto;padding:2.75rem 1.5rem 2rem}h1,h2,h3,h4{color:var(--color-heading);line-height:1.25}h1{letter-spacing:-.025em;margin-bottom:.6rem;font-size:32px;font-weight:800;line-height:1.15}h2{letter-spacing:-.02em;margin:2.5rem 0 1rem;font-size:22px;font-weight:700}h3{margin:2rem 0 .75rem;font-size:18px;font-weight:600}p{color:var(--color-text);margin-bottom:1.25rem;font-size:16px;font-weight:400;line-height:1.65}p.lead{color:var(--color-text-muted);margin-bottom:2.75rem;font-size:18px;font-weight:400;line-height:1.6}a{color:var(--color-accent);text-decoration:none;transition:color .15s}a:hover{color:var(--color-accent-hover);text-underline-offset:3px;text-decoration:underline}.section-label{font-family:var(--font-mono);letter-spacing:.25em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:1.75rem;font-size:12px;font-weight:600}.post-list,.post-item{flex-direction:column;display:flex}.post-item+.post-item{border-top:1px solid var(--color-border);margin-top:2.5rem;padding-top:2.5rem}.post-item .meta-line{font-family:var(--font-mono);color:var(--color-text-subtle);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;font-size:13px;font-weight:500}.post-item h2{letter-spacing:-.02em;margin:0 0 .6rem;font-size:24px;font-weight:700;line-height:1.25}.post-item.featured h2{letter-spacing:-.025em;font-size:32px;font-weight:800;line-height:1.15}.post-item h2 a{color:var(--color-heading);text-decoration:none;transition:color .15s}.post-item h2 a:hover{color:var(--color-accent)}.post-item p{color:var(--color-text-muted);margin:0 0 .6rem;font-size:16px;font-weight:400;line-height:1.65}.post-tags{color:var(--color-accent);letter-spacing:.01em;margin-bottom:.75rem;font-size:14px;font-weight:500}.post-tags span{color:var(--color-text-subtle);margin:0 .35rem}.post-actions{justify-content:space-between;align-items:center;margin-top:.4rem;display:flex}.read-more{color:var(--color-accent);align-items:center;gap:.25rem;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.read-more:hover{color:var(--color-accent-hover);text-underline-offset:3px;text-decoration:underline}.share-card-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);background:0 0;border-radius:4px;align-items:center;gap:.35rem;padding:.25rem .65rem;transition:all .15s;display:inline-flex}.share-card-btn:hover{border-color:var(--color-border-hover);color:var(--color-heading)}.share-card-btn.copied{border-color:var(--color-accent);color:var(--color-accent)}code,pre{font-family:var(--font-mono)}code{background:var(--color-code-bg);border:1px solid var(--color-border);color:var(--color-heading);border-radius:4px;padding:.15em .4em;font-size:.875em}pre{background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:6px;margin:1.75rem 0;padding:1.15rem 1.25rem;font-size:.875rem;line-height:1.6;overflow-x:auto}pre code{background:0 0;border:none;padding:0}pre.diagram{background:var(--color-code-bg);border:1px solid var(--color-border);color:var(--color-text-muted);font-size:.8125rem;line-height:1.45}blockquote{border-left:2px solid var(--color-accent);color:var(--color-text-muted);margin:1.75rem 0;padding-left:1.25rem;font-size:1rem}table{border-collapse:collapse;width:100%;margin:2rem 0;font-size:.875rem}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.75rem .85rem}th{color:var(--color-heading);font-weight:600}td{color:var(--color-text-muted)}.faq-list{margin:1.75rem 0 2.5rem}.faq-list h3{color:var(--color-heading);margin:1.5rem 0 .4rem;font-size:1.05rem;font-weight:600}.faq-list p{color:var(--color-text-muted);margin-bottom:1.25rem;font-size:.95rem;line-height:1.6}article img,figure img{border:1px solid var(--color-border);border-radius:8px;max-width:100%;height:auto;margin:1.75rem 0;display:block}figure{margin:2rem 0}figcaption{color:var(--color-text-subtle);text-align:center;font-size:.825rem;font-family:var(--font-mono);margin-top:-1rem;margin-bottom:1.75rem}article header{border-bottom:1px solid var(--color-border);margin-bottom:2.25rem;padding-bottom:1.75rem}article header h1{letter-spacing:-.025em;color:var(--color-heading);margin-bottom:.6rem;font-size:32px;font-weight:800;line-height:1.15}article .subtitle{color:var(--color-text-muted);margin-bottom:.85rem;font-size:18px;font-weight:500;line-height:1.5}article .meta{font-family:var(--font-mono);letter-spacing:.06em;color:var(--color-text-subtle);text-transform:uppercase;font-size:13px;font-weight:500}article ul,article ol{color:var(--color-text);margin:1.35rem 0;padding-left:1.5rem}article li{margin-bottom:.45rem}.toc{border:1px solid var(--color-border);border-radius:6px;margin:2rem 0;padding:1.25rem 1.5rem}.toc-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:.75rem;font-size:12px;font-weight:600}.toc ol{margin:0;padding-left:1.25rem}.toc li{margin-bottom:.35rem;font-size:.9rem}.toc a{color:var(--color-text-muted)}.toc a:hover{color:var(--color-heading)}.article-share{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:3rem 0 1.5rem;padding:1.15rem 0;display:flex}.article-share .share-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-subtle);font-size:12px;font-weight:600}.article-share .share-buttons{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.share-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);background:0 0;border-radius:4px;align-items:center;gap:.35rem;padding:.35rem .75rem;text-decoration:none;transition:all .15s;display:inline-flex}.share-btn:hover{border-color:var(--color-border-hover);color:var(--color-heading);text-decoration:none}.share-btn.copied{border-color:var(--color-accent);color:var(--color-accent)}.recommended-section{border-top:1px solid var(--color-border);margin:3.5rem 0 2rem;padding-top:2rem}.recommended-section .section-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-subtle);align-items:center;gap:.5rem;margin-bottom:1.25rem;font-size:11px;font-weight:600;display:flex}.recommended-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;display:grid}.recommended-card{background:var(--color-code-bg);border:1px solid var(--color-border);color:inherit;border-radius:6px;flex-direction:column;padding:1.25rem;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.recommended-card:hover{border-color:var(--color-accent);text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 14px #0000002e}.recommended-card .meta-line{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:.5rem;font-size:11px;font-weight:600}.recommended-card h3{color:var(--color-heading);margin:0 0 .5rem;font-size:16px;font-weight:600;line-height:1.35;transition:color .15s}.recommended-card:hover h3{color:var(--color-accent)}.recommended-card p{color:var(--color-text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex-grow:1;margin:0 0 .85rem;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.recommended-card .read-link{color:var(--color-accent);align-items:center;gap:.25rem;margin-top:auto;font-size:12px;font-weight:600;display:inline-flex}.recommended-card:hover .read-link{color:var(--color-accent-hover)}footer{width:100%;max-width:var(--max-width);border-top:1px solid var(--color-border);color:var(--color-text-subtle);justify-content:space-between;align-items:center;margin:3.5rem auto 0;padding:1.75rem 1.5rem 2.5rem;font-size:.85rem;display:flex}footer .footer-links{align-items:center;gap:.75rem;display:flex}footer .footer-links a{color:var(--color-accent);text-decoration:none}footer .footer-links a:hover{color:var(--color-accent-hover);text-decoration:underline}footer .footer-links span{color:var(--color-text-subtle)}@media (width<=640px){main{padding:2rem 1rem}h1,article header h1{font-size:26px;line-height:1.2}.post-item.featured h2{font-size:24px;line-height:1.2}.article-share{flex-direction:column;align-items:flex-start}footer{flex-direction:column;align-items:flex-start;gap:.75rem}}.astro-code,.astro-code span{color:var(--shiki-light)}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code span{color:var(--shiki-dark)}.astro-code{background:var(--color-code-bg)!important}pre.diagram,pre.diagram span{color:var(--color-text-muted)!important}article ul,article ol{margin:1rem 0;padding-left:1.4rem}article li{margin:.35rem 0}article li>p{margin:.25rem 0}table{display:block;overflow-x:auto}article p:has(>img){-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=640px){article p>img{width:620px;min-width:620px;max-width:none;height:auto}.post-tags a{color:inherit;text-decoration:none}.post-tags a:hover{color:var(--color-accent);text-decoration:underline}.tag-cloud{flex-wrap:wrap;gap:.6rem;display:flex}.tag-chip{border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;padding:.3rem .85rem;font-size:.875rem;text-decoration:none}.tag-chip span{color:var(--color-text-muted);font-family:var(--font-mono);margin-left:.25rem;font-size:.75rem}.tag-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.back-link{margin-top:2rem}#search{--pagefind-ui-primary:var(--color-accent);--pagefind-ui-text:var(--color-text);--pagefind-ui-background:var(--color-bg);--pagefind-ui-border:var(--color-border);--pagefind-ui-tag:var(--color-code-bg);--pagefind-ui-font:var(--font-sans,inherit)}@media (width<=480px){header .nav-right{gap:.85rem;font-size:.9rem}}@media (width<=380px){header .nav-right{gap:.6rem;font-size:.85rem}header .header-top{flex-wrap:wrap;row-gap:.5rem}}main,article{min-width:0;max-width:100%}article p:has(>img){contain:inline-size}article p code,article li code,article td code{overflow-wrap:anywhere}}
