:where(.astro-4sn4zg3r),:where(.astro-4sn4zg3r):before,:where(.astro-4sn4zg3r):after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,sans-serif;font-weight:300}header:where(.astro-4sn4zg3r){position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.2rem 2.5rem;background:var(--header-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.logo:where(.astro-4sn4zg3r){font-size:1.1rem;font-weight:600;letter-spacing:.08em;color:var(--accent);text-decoration:none}.header-nav:where(.astro-4sn4zg3r){display:flex;gap:1.5rem}.nav-link:where(.astro-4sn4zg3r){font-size:.85rem;color:var(--muted);text-decoration:none;letter-spacing:.06em;transition:color .2s}.nav-link:where(.astro-4sn4zg3r):hover{color:var(--text)}.nav-link:where(.astro-4sn4zg3r).active{color:var(--accent)}.post-header:where(.astro-4sn4zg3r){max-width:960px;margin:0 auto;padding:4rem 2.5rem 2rem}.post-date:where(.astro-4sn4zg3r){display:block;font-size:.75rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.8rem}.post-header:where(.astro-4sn4zg3r) h1:where(.astro-4sn4zg3r){font-size:clamp(1.8rem,4vw,2.8rem);font-weight:400;line-height:1.2;letter-spacing:-.01em}.post-description:where(.astro-4sn4zg3r){margin-top:1rem;color:var(--muted);font-size:1rem;line-height:1.7}.post-tags:where(.astro-4sn4zg3r){display:flex;gap:.4rem;margin-top:1rem;flex-wrap:wrap}.tag:where(.astro-4sn4zg3r){font-size:.7rem;color:var(--accent);border:1px solid var(--accent);padding:.1rem .5rem;border-radius:999px;letter-spacing:.04em;text-decoration:none;transition:color .15s,border-color .15s}.tag:where(.astro-4sn4zg3r):hover{color:var(--text);border-color:var(--text)}.prose:where(.astro-4sn4zg3r){max-width:960px;margin:0 auto;padding:0 2.5rem 4rem;line-height:1.8;font-size:1rem}.prose:where(.astro-4sn4zg3r) h2{font-size:1.5rem;font-weight:400;margin-top:2.5rem;margin-bottom:1rem}.prose:where(.astro-4sn4zg3r) h3{font-size:1.2rem;font-weight:400;margin-top:2rem;margin-bottom:.8rem}.prose:where(.astro-4sn4zg3r) p{margin-bottom:1.2rem}.prose:where(.astro-4sn4zg3r) strong{font-weight:600;color:var(--accent)}.prose:where(.astro-4sn4zg3r) a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.prose:where(.astro-4sn4zg3r) ul,.prose:where(.astro-4sn4zg3r) ol{margin-bottom:1.2rem;padding-left:1.5rem}.prose:where(.astro-4sn4zg3r) li{margin-bottom:.4rem}.prose:where(.astro-4sn4zg3r) blockquote{border-left:2px solid var(--accent);padding-left:1rem;margin:1.5rem 0;color:var(--muted);font-style:italic}.prose:where(.astro-4sn4zg3r) pre{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1.2rem;overflow-x:auto;margin-bottom:1.5rem;font-size:.9rem;line-height:1.6}.prose:where(.astro-4sn4zg3r) code{font-family:SF Mono,Fira Code,monospace;font-size:.85em}.prose:where(.astro-4sn4zg3r) :not(pre)>code{background:var(--surface);padding:.15rem .4rem;border-radius:4px;border:1px solid var(--border)}.prose:where(.astro-4sn4zg3r) .astro-code span{color:var(--shiki-dark)}:root[data-theme=light] .prose:where(.astro-4sn4zg3r) .astro-code span{color:var(--shiki-light)}.prose:where(.astro-4sn4zg3r) .code-block{position:relative;margin-bottom:1.5rem}.prose:where(.astro-4sn4zg3r) .code-block>pre{margin-bottom:0}.prose:where(.astro-4sn4zg3r) .code-block[data-language]:before{content:attr(data-language);position:absolute;top:.55rem;right:4.2rem;font-family:SF Mono,Fira Code,monospace;font-size:.7rem;color:var(--muted);letter-spacing:.05em;user-select:none}.prose:where(.astro-4sn4zg3r) .code-copy{position:absolute;top:.45rem;right:.6rem;font-family:SF Mono,Fira Code,monospace;font-size:.7rem;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.15rem .5rem;cursor:pointer;opacity:.6;transition:opacity .15s,color .15s,border-color .15s}.prose:where(.astro-4sn4zg3r) .code-block:hover .code-copy{opacity:1}.prose:where(.astro-4sn4zg3r) .code-copy:hover{color:var(--text);border-color:var(--accent)}.prose:where(.astro-4sn4zg3r) hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.prose:where(.astro-4sn4zg3r) .table-wrap{overflow-x:auto;margin:1.5rem 0;border:1px solid var(--border);border-radius:6px}.prose:where(.astro-4sn4zg3r) table{width:100%;border-collapse:collapse;font-size:.9rem;line-height:1.6}.prose:where(.astro-4sn4zg3r) th,.prose:where(.astro-4sn4zg3r) td{padding:.65rem .9rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.prose:where(.astro-4sn4zg3r) th{background:var(--surface);color:var(--text);font-weight:600;font-size:.8rem;letter-spacing:.04em;white-space:nowrap}.prose:where(.astro-4sn4zg3r) td{min-width:6rem}.prose:where(.astro-4sn4zg3r) td:first-child{font-weight:400;color:var(--text)}.prose:where(.astro-4sn4zg3r) tbody tr:last-child td{border-bottom:none}.prose:where(.astro-4sn4zg3r) tbody tr:hover td{background:color-mix(in srgb,var(--surface) 60%,transparent)}.prose:where(.astro-4sn4zg3r) table code{white-space:nowrap}.prose:where(.astro-4sn4zg3r) td strong{color:var(--text)}.prose:where(.astro-4sn4zg3r) svg[id^=mermaid]{display:block;background:#f8fafc;border:1px solid var(--border);border-radius:6px;padding:1rem;margin:1.5rem 0;box-sizing:border-box}.prose:where(.astro-4sn4zg3r) .diagram-wrap{overflow-x:auto;margin:1.5rem 0}.prose:where(.astro-4sn4zg3r) .diagram-wrap>svg[id^=mermaid]{margin:0}.back-link:where(.astro-4sn4zg3r){display:block;max-width:960px;margin:0 auto;padding:0 2.5rem;font-size:.85rem;color:var(--muted);text-decoration:none;letter-spacing:.04em;transition:color .2s}.back-link:where(.astro-4sn4zg3r):hover{color:var(--accent)}.copy-md-container:where(.astro-4sn4zg3r){max-width:960px;margin:0 auto;padding:0 2.5rem 2rem;display:flex;justify-content:flex-end}.copy-md-btn:where(.astro-4sn4zg3r){font-family:Inter,sans-serif;font-size:.75rem;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.4rem .8rem;cursor:pointer;transition:all .2s;letter-spacing:.04em}.copy-md-btn:where(.astro-4sn4zg3r):hover{color:var(--text);border-color:var(--accent)}.copy-md-btn:where(.astro-4sn4zg3r).copied{color:var(--accent);border-color:var(--accent)}footer:where(.astro-4sn4zg3r){border-top:1px solid var(--border);padding:2rem 2.5rem;margin-top:2rem;color:var(--muted);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
