.mobile-meta[data-astro-cid-5uq7evlv]{display:none;margin-bottom:var(--space-xl)}.mobile-meta-details[data-astro-cid-5uq7evlv]{border:1px solid var(--color-border)}.mobile-meta-summary[data-astro-cid-5uq7evlv]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);cursor:pointer;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);list-style:none}.mobile-meta-summary[data-astro-cid-5uq7evlv]::-webkit-details-marker{display:none}.mobile-meta-chevron[data-astro-cid-5uq7evlv]{transition:transform .15s ease}.mobile-meta-details[data-astro-cid-5uq7evlv][open] .mobile-meta-chevron[data-astro-cid-5uq7evlv]{transform:rotate(180deg)}.mobile-meta-content[data-astro-cid-5uq7evlv]{padding:var(--space-sm) var(--space-md) var(--space-md);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-sm)}.mobile-meta-item[data-astro-cid-5uq7evlv]{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-md)}.mobile-meta-key[data-astro-cid-5uq7evlv]{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.mobile-meta-value[data-astro-cid-5uq7evlv]{font-size:.8125rem;color:var(--color-text);text-align:right}.mobile-meta-links[data-astro-cid-5uq7evlv]{display:flex;flex-wrap:wrap;gap:var(--space-sm);padding-top:var(--space-xs);border-top:1px solid var(--color-border);margin-top:var(--space-xs)}.mobile-meta-link[data-astro-cid-5uq7evlv]{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;color:var(--color-accent)}.mobile-meta-link[data-astro-cid-5uq7evlv]:hover{text-decoration:underline}.article-image[data-astro-cid-5uq7evlv]{margin-bottom:var(--space-2xl);overflow:hidden;border:1px solid var(--color-border)}.article-image[data-astro-cid-5uq7evlv] img{width:100%;height:auto}.testimonials-section[data-astro-cid-5uq7evlv]{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border)}.section-heading[data-astro-cid-5uq7evlv]{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:var(--space-lg)}.testimonial[data-astro-cid-5uq7evlv]{border-left:3px solid var(--color-accent);padding-left:var(--space-lg);margin-bottom:var(--space-xl)}.testimonial-quote[data-astro-cid-5uq7evlv]{font-size:1rem;line-height:1.7;color:var(--color-text-secondary);font-style:italic;margin-bottom:var(--space-sm)}.testimonial-footer[data-astro-cid-5uq7evlv]{font-style:normal}.testimonial-cite[data-astro-cid-5uq7evlv]{display:flex;flex-direction:column;gap:1px}.testimonial-name[data-astro-cid-5uq7evlv]{font-size:.875rem;font-weight:500;color:var(--color-text)}.testimonial-role[data-astro-cid-5uq7evlv],.testimonial-company[data-astro-cid-5uq7evlv]{font-size:.75rem;color:var(--color-text-muted)}.learnings-section[data-astro-cid-5uq7evlv],.related-section[data-astro-cid-5uq7evlv]{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border)}.learnings-list[data-astro-cid-5uq7evlv]{padding-left:var(--space-lg)}.learnings-list[data-astro-cid-5uq7evlv] li[data-astro-cid-5uq7evlv]{font-size:.9375rem;line-height:1.6;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.related-list[data-astro-cid-5uq7evlv]{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.related-link[data-astro-cid-5uq7evlv]{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--color-accent)}.related-link[data-astro-cid-5uq7evlv]:hover{text-decoration:underline}.sidebar-meta-item[data-astro-cid-5uq7evlv]{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);margin-top:var(--space-xs)}.sidebar-meta-key[data-astro-cid-5uq7evlv]{font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.sidebar-meta-value[data-astro-cid-5uq7evlv]{font-size:.8125rem;color:var(--color-text-secondary)}.sidebar-links[data-astro-cid-5uq7evlv]{display:flex;flex-direction:column;gap:var(--space-xs);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border)}.sidebar-link[data-astro-cid-5uq7evlv]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs) 0;font-size:.8125rem;color:var(--color-text-secondary);transition:color .1s ease}.sidebar-link[data-astro-cid-5uq7evlv]:hover{color:var(--color-text)}.sidebar-link[data-astro-cid-5uq7evlv] svg[data-astro-cid-5uq7evlv]{flex-shrink:0;opacity:.5}.sidebar-section[data-astro-cid-5uq7evlv]{padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border)}.sidebar-section-label[data-astro-cid-5uq7evlv]{display:block;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:var(--space-sm)}.sidebar-stack-list[data-astro-cid-5uq7evlv]{list-style:none}.sidebar-stack-item[data-astro-cid-5uq7evlv]{font-size:.8125rem;color:var(--color-text-secondary);padding:2px 0}.sidebar-chips[data-astro-cid-5uq7evlv]{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.sidebar-chip[data-astro-cid-5uq7evlv]{font-size:.6875rem;padding:3px 8px;background:var(--color-bg-alt);color:var(--color-text-secondary)}.share-btn[data-astro-cid-5uq7evlv][data-copied=true]{color:var(--color-accent);border-color:var(--color-accent)}.toc-nav[data-astro-cid-5uq7evlv]{position:relative;border-left:1px solid var(--color-border);padding-left:var(--space-md)}.toc-indicator[data-astro-cid-5uq7evlv]{position:absolute;left:-1px;top:0;width:1px;height:24px;background:var(--color-accent);transition:top .15s ease,height .15s ease}@media(prefers-reduced-motion:reduce){.toc-indicator[data-astro-cid-5uq7evlv]{transition:none}}.toc-list[data-astro-cid-5uq7evlv]{list-style:none}.toc-link[data-astro-cid-5uq7evlv]{display:block;padding:var(--space-xs) 0;font-size:.8125rem;line-height:1.4;color:var(--color-text-muted);transition:color .1s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toc-link[data-astro-cid-5uq7evlv]:hover{color:var(--color-text)}.toc-link[data-astro-cid-5uq7evlv].active{color:var(--color-text);font-weight:500}.toc-item-h3[data-astro-cid-5uq7evlv] .toc-link[data-astro-cid-5uq7evlv]{padding-left:var(--space-md);font-size:.75rem}@media(max-width:768px){.project-page[data-astro-cid-5uq7evlv]{grid-template-columns:1fr;--code-sticky-top: 106px }.project-main[data-astro-cid-5uq7evlv]{border-right:none;padding:var(--space-2xl) var(--space-xl);padding-bottom:calc(var(--space-2xl) + 60px)}.article-layout[data-astro-cid-5uq7evlv]{max-width:100%}.sidebar[data-astro-cid-5uq7evlv],.back-link[data-astro-cid-5uq7evlv]{display:none}.mobile-meta[data-astro-cid-5uq7evlv]{display:block}}.mobile-bar[data-astro-cid-5uq7evlv]{display:none;position:sticky;top:61px;z-index:90;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.mobile-bar-progress[data-astro-cid-5uq7evlv]{position:absolute;bottom:-1px;left:0;height:1px;width:0%;background:var(--color-accent);transition:width 50ms linear}@media(prefers-reduced-motion:reduce){.mobile-bar-progress[data-astro-cid-5uq7evlv]{transition:none}}.mobile-bar-inner[data-astro-cid-5uq7evlv]{display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 var(--space-md)}.mobile-bar-back[data-astro-cid-5uq7evlv]{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--color-text-muted);white-space:nowrap}.mobile-bar-back[data-astro-cid-5uq7evlv]:hover{color:var(--color-text)}.mobile-bar-back[data-astro-cid-5uq7evlv] svg[data-astro-cid-5uq7evlv]{flex-shrink:0}.mobile-bar-section[data-astro-cid-5uq7evlv]{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-xs);background:none;border:none;font-family:inherit;font-size:.8125rem;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-xs) 0;flex:1;height:100%}.mobile-bar-spacer[data-astro-cid-5uq7evlv]{flex:1}.mobile-bar-section-text[data-astro-cid-5uq7evlv]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-bar-chevron[data-astro-cid-5uq7evlv]{flex-shrink:0;transition:transform .15s ease}.mobile-bar-section[data-astro-cid-5uq7evlv][aria-expanded=true] .mobile-bar-chevron[data-astro-cid-5uq7evlv]{transform:scaleY(-1)}.mobile-toc-dropdown[data-astro-cid-5uq7evlv]{position:absolute;top:100%;left:0;right:0;background:var(--color-bg);border-bottom:1px solid var(--color-border);max-height:60vh;overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .15s ease,transform .15s ease,visibility .15s ease}@media(prefers-reduced-motion:reduce){.mobile-toc-dropdown[data-astro-cid-5uq7evlv]{transition:opacity 0ms,transform 0ms,visibility 0ms}}.mobile-toc-dropdown[data-astro-cid-5uq7evlv][aria-hidden=false]{opacity:1;visibility:visible;transform:translateY(0)}.mobile-toc-list[data-astro-cid-5uq7evlv]{list-style:none;padding:var(--space-sm) 0}.mobile-toc-link[data-astro-cid-5uq7evlv]{display:block;padding:var(--space-sm) var(--space-md);font-size:.875rem;color:var(--color-text-secondary);transition:background-color .1s ease,color .1s ease}.mobile-toc-list[data-astro-cid-5uq7evlv] .toc-item-h3[data-astro-cid-5uq7evlv] .mobile-toc-link[data-astro-cid-5uq7evlv]{padding-left:var(--space-xl);font-size:.8125rem}.mobile-toc-link[data-astro-cid-5uq7evlv]:hover{background:var(--color-bg-alt);color:var(--color-text)}.mobile-toc-link[data-astro-cid-5uq7evlv].active{color:var(--color-text);background:var(--color-bg-alt)}@media(max-width:768px){.mobile-bar[data-astro-cid-5uq7evlv]{display:block}}.floating-share[data-astro-cid-5uq7evlv]{display:none}@media(max-width:768px){.floating-share[data-astro-cid-5uq7evlv]{display:block;position:fixed;bottom:var(--space-md);right:var(--space-md);z-index:80}}@media(max-width:480px){.floating-share[data-astro-cid-5uq7evlv]{right:var(--space-sm)}}.floating-share-btn[data-astro-cid-5uq7evlv]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--color-bg);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-secondary);transition:background-color .1s ease,color .1s ease}.floating-share-btn[data-astro-cid-5uq7evlv]:hover{background:var(--color-bg-alt);color:var(--color-text)}.floating-share-btn[data-astro-cid-5uq7evlv]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.prose h1,.prose h2,.prose h3,.prose h4{margin-top:var(--space-2xl);margin-bottom:var(--space-md);scroll-margin-top:var(--prose-anchor-offset)}.prose h1{font-size:1.75rem}.prose h2{font-size:1.5rem}.prose h3{font-size:1.25rem}.prose a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.prose a:hover{text-decoration:none}.prose ul,.prose ol{margin-bottom:var(--space-lg);padding-left:var(--space-lg)}.prose li{margin-bottom:var(--space-sm);color:var(--color-text-secondary)}.prose pre{padding:var(--space-lg);margin-bottom:var(--space-lg);overflow-wrap:break-word;word-break:break-word;white-space:pre-wrap}.prose pre code{background:transparent;padding:0}.prose blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-lg);margin:var(--space-lg) 0;font-style:italic;color:var(--color-text-secondary)}.prose :is(p,figure,blockquote,li,td,details) img{max-width:100%;height:auto}.prose .table-scroll-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;margin-bottom:var(--space-lg);position:relative}.prose .table-scroll-wrapper.is-scrollable:after{content:"";position:absolute;top:0;right:0;bottom:0;width:2rem;background:linear-gradient(to right,transparent,var(--color-bg-primary));pointer-events:none;transition:opacity .15s ease}.prose .table-scroll-wrapper.is-scrolled-end:after{opacity:0}.prose .table-scroll-wrapper::-webkit-scrollbar{height:6px}.prose .table-scroll-wrapper::-webkit-scrollbar-track{background:var(--color-bg-secondary)}.prose .table-scroll-wrapper::-webkit-scrollbar-thumb{background:var(--color-text-muted)}.prose .table-scroll-wrapper{scrollbar-width:thin;scrollbar-color:var(--color-text-muted) var(--color-bg-secondary)}.prose table{width:100%;margin-bottom:var(--space-lg);border-collapse:collapse;font-size:.875rem}.prose .table-scroll-wrapper table{margin-bottom:0}.prose th,.prose td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}@media(max-width:768px){.prose th,.prose td{white-space:normal;overflow-wrap:anywhere;word-break:normal}}.prose th{font-weight:600;color:var(--color-text)}.prose td{color:var(--color-text-secondary)}.prose thead th{border-bottom:1px solid var(--color-border)}.prose hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-2xl) 0}.prose .heading-link{opacity:0;margin-left:.5rem;color:var(--color-text-muted);text-decoration:none;transition:opacity .15s ease,color .15s ease;cursor:pointer}.prose h2:hover .heading-link,.prose h3:hover .heading-link,.prose h4:hover .heading-link{opacity:1}.prose .heading-link:hover{color:var(--color-accent-hover)}.prose .mermaid-diagram{display:flex;flex-direction:column;margin:var(--space-2xl) 0;align-items:center;max-width:100%;min-width:0}.prose .mermaid-wrapper{max-width:100%;min-width:0;overflow-x:auto}.prose .mermaid-diagram.frame-simple>.diagram-frame{border:1px solid var(--color-border);background:var(--color-bg);padding:var(--space-lg);box-sizing:border-box;max-width:100%;min-width:0}.prose .mermaid-wrapper svg{display:block;max-width:100%;height:auto}.prose sup a[data-footnote-ref]{font-size:.75em;text-decoration:none;color:var(--color-accent);font-weight:500;padding:0 1px}.prose sup a[data-footnote-ref]:hover{text-decoration:underline}.prose .footnotes{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border);font-size:.875rem;scroll-margin-top:var(--prose-anchor-offset)}.prose .footnotes h2{font-size:1rem;font-weight:600;margin-top:0;margin-bottom:var(--space-md);scroll-margin-top:var(--prose-anchor-offset)}.prose .footnotes ol{padding-left:var(--space-lg)}.prose .footnotes li{color:var(--color-text-secondary);margin-bottom:var(--space-sm);scroll-margin-top:var(--prose-anchor-offset)}.prose .footnotes li p{margin-bottom:var(--space-xs)}.prose a[data-footnote-backref]{font-size:.75em;text-decoration:none;color:var(--color-text-muted);margin-left:.25em}.prose a[data-footnote-backref]:hover{color:var(--color-accent)}
