@keyframes hero-scale-in{0%{transform:scale(1.03);opacity:0}to{transform:scale(1);opacity:1}}#reading-progress[data-astro-cid-fvyenut7]{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--color-secondary);transform-origin:left center;transform:scaleX(0);z-index:200;border-radius:0 2px 2px 0;opacity:.9;pointer-events:none}.content-prose{color:var(--color-on-surface-variant);font-family:var(--font-body-md);font-size:1rem;line-height:1.8;max-width:none}.content-prose h1,.content-prose h2,.content-prose h3,.content-prose h4,.content-prose h5,.content-prose h6{font-family:var(--font-headline-md);color:var(--color-on-surface);font-weight:600;letter-spacing:-.02em;line-height:1.3;margin-top:2.2em;margin-bottom:.6em;scroll-margin-top:5rem}.content-prose h1{font-size:1.75rem}.content-prose h2{font-size:1.35rem;padding-bottom:.4em;border-bottom:1px solid var(--color-outline-variant)}.content-prose h3{font-size:1.15rem}.content-prose h4{font-size:1rem;color:var(--color-on-surface)}.content-prose>:first-child{margin-top:0}.content-prose>:last-child{margin-bottom:0}.content-prose p{margin-top:0;margin-bottom:1.4em}.content-prose a{color:var(--color-secondary);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-secondary) 40%,transparent);text-underline-offset:3px;transition:text-decoration-color .2s ease,color .2s ease}.content-prose a:hover{text-decoration-color:var(--color-secondary)}.content-prose strong{color:var(--color-on-surface);font-weight:600}.content-prose em{color:var(--color-on-surface-variant);font-style:italic}.content-prose ul,.content-prose ol{margin-bottom:1.4em;padding-left:1.6em}.content-prose ul{list-style-type:disc}.content-prose ol{list-style-type:decimal}.content-prose li{margin-bottom:.4em;padding-left:.3em}.content-prose li::marker{color:var(--color-secondary)}.content-prose li>p{margin-bottom:.4em}.content-prose ul ul,.content-prose ol ol,.content-prose ul ol,.content-prose ol ul{margin-top:.4em;margin-bottom:.4em}.content-prose blockquote{margin:1.8em 0;padding:1em 1.25em;border-left:3px solid var(--color-secondary);background:color-mix(in srgb,var(--color-secondary) 6%,transparent);border-radius:0 8px 8px 0;color:var(--color-on-surface-variant);font-style:italic}.content-prose blockquote p{margin-bottom:0}.content-prose blockquote strong{color:var(--color-secondary)}.content-prose code:not(pre code){font-family:var(--font-code-sm);font-size:.85em;color:var(--color-secondary);background:color-mix(in srgb,var(--color-secondary) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-secondary) 20%,transparent);padding:.15em .45em;border-radius:5px;white-space:nowrap}.content-prose pre{margin:1.8em 0;padding:1.25em 1.5em;background:var(--color-surface-lowest);border:1px solid var(--color-outline-variant);border-radius:10px;overflow-x:auto;font-family:var(--font-code-sm);font-size:.875rem;line-height:1.7;scrollbar-width:thin;scrollbar-color:var(--color-outline-variant) transparent}.content-prose pre code{background:none;border:none;padding:0;color:var(--color-on-surface);font-size:inherit;white-space:pre}.content-prose table{width:100%;border-collapse:collapse;margin:1.8em 0;font-size:.9rem;overflow:hidden;border-radius:8px;border:1px solid var(--color-outline-variant)}.content-prose thead{background:color-mix(in srgb,var(--color-secondary) 8%,transparent)}.content-prose th{font-family:var(--font-headline-md);font-weight:600;color:var(--color-on-surface);text-align:left;padding:.7em 1em;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-outline-variant)}.content-prose td{padding:.65em 1em;border-bottom:1px solid color-mix(in srgb,var(--color-outline-variant) 50%,transparent);vertical-align:top}.content-prose tr:last-child td{border-bottom:none}.content-prose tbody tr:hover{background:color-mix(in srgb,var(--color-outline-variant) 15%,transparent)}.content-prose img{max-width:100%;height:auto;border-radius:10px;border:1px solid var(--color-outline-variant);margin:1.8em 0;display:block}.content-prose hr{margin:2.5em 0;border:none;border-top:1px solid var(--color-outline-variant)}.content-prose details{margin:1.4em 0;border:1px solid var(--color-outline-variant);border-radius:8px;overflow:hidden}.content-prose summary{padding:.75em 1em;font-family:var(--font-headline-md);font-weight:500;color:var(--color-on-surface);cursor:pointer;user-select:none;background:color-mix(in srgb,var(--color-outline-variant) 20%,transparent);transition:background .2s}.content-prose summary:hover{background:color-mix(in srgb,var(--color-secondary) 8%,transparent)}.content-prose details[open] summary{border-bottom:1px solid var(--color-outline-variant)}.content-prose details>*:not(summary){padding:1em}.reading-progress{position:fixed;top:0;left:0;height:2px;background:var(--color-secondary);z-index:100;transform-origin:left;transform:scaleX(0);transition:transform .1s linear;border-radius:0 2px 2px 0}.toc-link{display:block;padding:.3em .75em;font-size:.8rem;color:var(--color-outline);border-left:2px solid var(--color-outline-variant);transition:color .2s,border-color .2s;text-decoration:none;line-height:1.5}.toc-link:hover,.toc-link.active{color:var(--color-secondary);border-left-color:var(--color-secondary)}.toc-link.depth-3{padding-left:1.5rem}.toc-link.depth-4{padding-left:2.25rem}.code-block-wrapper{position:relative}.copy-btn{position:absolute;top:.6em;right:.6em;padding:.3em .6em;background:color-mix(in srgb,var(--color-outline-variant) 40%,transparent);border:1px solid var(--color-outline-variant);border-radius:6px;color:var(--color-outline);font-size:.7rem;font-family:var(--font-headline-md);cursor:pointer;opacity:0;transition:opacity .2s,background .2s,color .2s}.code-block-wrapper:hover .copy-btn{opacity:1}.copy-btn:hover{background:color-mix(in srgb,var(--color-secondary) 15%,transparent);color:var(--color-secondary);border-color:color-mix(in srgb,var(--color-secondary) 40%,transparent)}.copy-btn.copied{color:#22c55e;border-color:#22c55e;opacity:1}.content-prose .footnotes{margin-top:3em;padding-top:1.5em;border-top:1px solid var(--color-outline-variant);font-size:.875rem;color:var(--color-outline)}.content-prose .footnotes ol{padding-left:1.2em}.content-prose sup a{color:var(--color-secondary);text-decoration:none;font-size:.75em;font-weight:600}.callout{display:flex;gap:.75em;margin:1.8em 0;padding:1em 1.25em;border-radius:8px;border:1px solid;font-size:.9rem;line-height:1.6}.callout-note{background:color-mix(in srgb,#3b82f6 8%,transparent);border-color:color-mix(in srgb,#3b82f6 30%,transparent)}.callout-warning{background:color-mix(in srgb,#f59e0b 8%,transparent);border-color:color-mix(in srgb,#f59e0b 30%,transparent)}.callout-danger{background:color-mix(in srgb,#ef4444 8%,transparent);border-color:color-mix(in srgb,#ef4444 30%,transparent)}.callout-tip{background:color-mix(in srgb,#22c55e 8%,transparent);border-color:color-mix(in srgb,#22c55e 30%,transparent)}@media(max-width:640px){.content-prose h1{font-size:1.4rem}.content-prose h2{font-size:1.15rem}.content-prose pre{padding:1em;font-size:.8rem;border-radius:8px}.content-prose table{font-size:.8rem}.content-prose th,.content-prose td{padding:.5em .7em}}@keyframes content-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.content-article-enter{animation:content-fade-in .4s ease both}@media print{.reading-progress,.copy-btn{display:none}.content-prose pre{white-space:pre-wrap;word-break:break-word}}
