.mermaid-diagram{margin:1.5rem 0;text-align:center;overflow-x:auto}.mermaid-diagram svg{max-width:100%;height:auto}.mermaid-diagram:hover{opacity:.85;transition:opacity .15s ease}.mermaid-error-notice{font-size:.875rem;color:var(--color-subtle);font-style:italic;margin:.5rem 0}.mermaid-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0009;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:zoom-out;opacity:0;transition:opacity .25s ease}.mermaid-overlay--visible{opacity:1}.mermaid-overlay__content{transform:scale(.9);transition:transform .25s cubic-bezier(.16,1,.3,1);max-width:92vw;max-height:90vh;overflow:auto}.mermaid-overlay--visible .mermaid-overlay__content{transform:scale(1)}html.dark .mermaid-overlay{background:#000000bf}.copy-button{position:absolute;top:.5rem;right:.5rem;padding:.375rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;color:var(--color-subtle);cursor:pointer;opacity:0;transition:all .15s ease;display:flex;align-items:center;justify-content:center}pre:hover .copy-button{opacity:1}.copy-button:hover{color:var(--color-text);border-color:var(--color-muted)}.copy-button .icon-check{display:none}.copy-button.copied{color:#22c55e;border-color:#22c55e}.copy-button.copied .icon-copy{display:none}.copy-button.copied .icon-check{display:block}.copy-button.copy-failed{color:#ef4444;border-color:#ef4444}.progress-bar{position:fixed;top:0;left:0;width:0%;height:2px;background:var(--color-text);z-index:100;transition:width .1s linear;opacity:.4}.post-header[data-astro-cid-gjtny2mx]{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--color-border)}.back-link[data-astro-cid-gjtny2mx]{display:inline-flex;align-items:center;gap:.25rem;margin-bottom:1.5rem;font-size:.875rem;color:var(--color-muted);transition:color .15s ease,gap .2s ease}.back-link[data-astro-cid-gjtny2mx]:hover{color:var(--color-text);gap:.5rem}.back-arrow[data-astro-cid-gjtny2mx]{display:inline-block;transition:transform .2s ease}.back-link[data-astro-cid-gjtny2mx]:hover .back-arrow[data-astro-cid-gjtny2mx]{transform:translate(-2px)}.post-header[data-astro-cid-gjtny2mx] h1[data-astro-cid-gjtny2mx]{margin-bottom:.75rem;line-height:1.3}.meta[data-astro-cid-gjtny2mx]{margin:0;font-size:.875rem;color:var(--color-subtle)}.separator[data-astro-cid-gjtny2mx]{margin:0 .25rem}.tags[data-astro-cid-gjtny2mx]{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.875rem}.tag[data-astro-cid-gjtny2mx]{display:inline-block;padding:.125rem .5rem;font-size:.75rem;font-weight:500;color:var(--color-muted);background:var(--color-code-inline-bg);border-radius:4px;text-transform:lowercase;transition:color .15s ease}.draft-banner[data-astro-cid-gjtny2mx]{margin-bottom:1rem;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;color:var(--color-draft-text);background:var(--color-draft-bg);border:1px solid var(--color-draft-bg);border-radius:4px;width:fit-content}.content[data-astro-cid-gjtny2mx]{:global(img){border-radius:8px}:global(table){font-size:.875rem}:global(thead){background:var(--color-border)}:global(th){font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}:global(blockquote){border-left:3px solid var(--color-border);padding-left:1rem;margin-left:0;color:var(--color-muted);font-style:italic}:global(.heading-anchor){margin-left:.375em;color:var(--color-border);text-decoration:none;font-weight:400;opacity:0;transition:opacity .15s ease,color .15s ease}:global(h2:hover .heading-anchor),:global(h3:hover .heading-anchor){opacity:1}:global(.heading-anchor:hover){color:var(--color-muted)}}.post-footer[data-astro-cid-gjtny2mx]{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--color-border)}.post-footer[data-astro-cid-gjtny2mx] .back-link[data-astro-cid-gjtny2mx]{margin-bottom:0}.scroll-top{position:fixed;bottom:2rem;right:2rem;width:36px;height:36px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-muted);font-size:1rem;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s ease,color .15s ease,border-color .15s ease,transform .2s ease;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px)}.scroll-top.visible{opacity:1;pointer-events:auto}.scroll-top:hover{color:var(--color-text);border-color:var(--color-muted);transform:translateY(-2px)}.scroll-top:active{transform:translateY(0) scale(.95)}
