.prose{--ease-out:cubic-bezier(.23, 1, .32, 1);font-size:1.0625rem;line-height:1.75}.prose>*+*{margin-top:1.25em}.prose p{text-wrap:pretty}.prose strong{font-weight:600}.prose h2{letter-spacing:-.015em;margin-top:2.5em;scroll-margin-top:6rem;font-size:1.5rem;font-weight:650;line-height:1.3}.prose h3{margin-top:2em;scroll-margin-top:6rem;font-size:1.125rem;font-weight:600}.prose h2+*,.prose h3+*{margin-top:.75em}.prose a:not([data-footnote-ref]):not([data-footnote-backref]){color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-underline-offset:3px;transition:text-decoration-color .15s}.prose a:not([data-footnote-ref]):not([data-footnote-backref]):hover{text-decoration-color:var(--accent)}.prose ul{padding-left:1.25rem;list-style:outside}.prose ol{padding-left:1.25rem;list-style:decimal}.prose li+li{margin-top:.5em}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);padding:.25rem 0 .25rem 1rem;font-weight:500}.prose img{border:1px solid var(--border);border-radius:.75rem;width:100%;height:auto}.prose :not(pre)>code{border:1px solid var(--border);background:var(--surface-2);border-radius:.375rem;padding:.1em .35em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.875em}.prose pre{border:1px solid var(--border);border-radius:.75rem;padding:1rem 1.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9375rem;line-height:1.6;overflow-x:auto}.prose .astro-code,.prose .astro-code span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}.dark .prose .astro-code,.dark .prose .astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}.prose pre.astro-code{background-color:var(--surface-2)}.prose pre.astro-code span{background-color:#0000}.prose sup:has(>[data-footnote-ref]){vertical-align:baseline;font-size:inherit;top:0}.prose [data-footnote-ref]{background:var(--accent-soft);min-width:1.125rem;height:1.125rem;color:var(--accent-strong);transition:background-color .15s ease, color .15s ease, transform .16s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;margin-left:.15em;padding-inline:.25rem;font-size:.6875rem;font-weight:650;line-height:1;text-decoration:none;display:inline-flex;position:relative;top:-.55em}.prose [data-footnote-ref]:hover{background:var(--accent);color:#fff}.prose [data-footnote-ref]:active{transform:scale(.94)}.prose [data-footnote-ref][data-flash]{animation:1.2s ease-out ref-ring}.prose .footnotes{border-top:1px solid var(--border);margin-top:4rem;padding-top:2rem;font-size:.9375rem;line-height:1.55}.prose .footnotes h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.75rem;font-weight:600}.prose .footnotes ol{counter-reset:source;margin-top:1rem;padding:0;list-style:none}.prose .footnotes li{counter-increment:source;border-radius:.75rem;margin:0 -.75rem;padding:.75rem .75rem .75rem 3.125rem;scroll-margin-top:6rem;position:relative}.prose .footnotes li+li{margin-top:0}.prose .footnotes li:before{content:counter(source);background:var(--accent-soft);width:1.5rem;height:1.5rem;color:var(--accent-strong);border-radius:999px;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:inline-flex;position:absolute;top:.8125rem;left:.75rem}.prose .footnotes li p{color:var(--muted);margin:0}.prose .footnotes li a:not([data-footnote-backref]){font-weight:500}.prose [data-footnote-backref]{width:1.5rem;height:1.5rem;color:var(--accent);border-radius:.5rem;justify-content:center;align-items:center;margin-left:.25rem;text-decoration:none;transition:background-color .15s;display:inline-flex}.prose [data-footnote-backref]:hover{background:var(--accent-soft)}.prose .footnotes li[data-flash]{animation:1.6s ease-out source-flash}.prose .footnotes li[data-flash]:before{animation:num-pop .4s var(--ease-out)}@keyframes source-flash{0%,30%{background-color:var(--accent-soft)}to{background-color:#0000}}@keyframes num-pop{0%{transform:scale(.85)}60%{background:var(--accent);color:#fff;transform:scale(1.12)}to{transform:scale(1)}}@keyframes ref-ring{0%{box-shadow:0 0 0 0 var(--accent);background:var(--accent);color:#fff}to{box-shadow:0 0 0 8px #0000}}.prose .code-block{position:relative}.prose .code-block pre{padding-right:7.5rem}.prose .code-block pre[data-flash]{animation:.9s ease-out code-flash}.prose .copy-btn{border:1px solid var(--border);background:var(--surface);height:2rem;color:var(--muted);cursor:pointer;transition:color .15s ease, border-color .15s ease, background-color .15s ease, transform .16s var(--ease-out);border-radius:999px;align-items:center;gap:.375rem;padding:0 .75rem;font-size:.8125rem;font-weight:550;line-height:1;display:inline-flex;position:absolute;top:50%;right:.625rem;translate:0 -50%}.prose .copy-btn:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.prose .copy-btn:active{transform:scale(.96)}.prose .copy-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.prose .copy-btn[data-copied]{color:var(--accent-strong);background:var(--accent-soft);border-color:#0000}.prose .copy-icons{width:.9375rem;height:.9375rem;display:grid}.prose .copy-icons svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out), filter .2s var(--ease-out);grid-area:1/1}.prose .check-icon{opacity:0;filter:blur(2px);transform:scale(.5)}.prose .check-icon path{stroke-dasharray:22;stroke-dashoffset:22px}.prose .copy-btn[data-copied] .copy-icon{opacity:0;filter:blur(2px);transform:scale(.5)}.prose .copy-btn[data-copied] .check-icon{opacity:1;filter:none;transform:none}.prose .copy-btn[data-copied] .check-icon path{animation:check-draw .32s 60ms var(--ease-out) forwards}@keyframes check-draw{to{stroke-dashoffset:0}}@keyframes code-flash{0%{border-color:var(--accent);box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}to{border-color:var(--border);box-shadow:0 0 0 8px #0000}}.prose .zoom-img{cursor:zoom-in;background:0 0;border:0;border-radius:.75rem;width:100%;padding:0;display:block;position:relative}.prose .zoom-img img{transition:opacity .15s;display:block}.prose .zoom-img:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.prose p:has(>.zoom-img:only-child){margin-block:2em}.prose .zoom-hint{color:#fff;backdrop-filter:blur(6px);opacity:.75;width:2.25rem;height:2.25rem;transition:opacity .15s ease, transform .2s var(--ease-out);background:#0009;border-radius:999px;place-items:center;display:grid;position:absolute;bottom:.75rem;right:.75rem}.prose .zoom-hint svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem}@media (hover:hover){.prose .zoom-img:hover .zoom-hint{opacity:1;transform:scale(1.08)}}.lightbox{cursor:zoom-out;background:0 0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:1rem}.lightbox[open]{place-items:center;display:grid}.lightbox::backdrop{backdrop-filter:blur(4px);background:#000000d1}.lightbox img{will-change:transform;border-radius:.75rem;width:auto;max-width:min(100%,1600px);height:auto;max-height:calc(100dvh - 2rem);box-shadow:0 24px 64px #00000073}@media (width<=480px){.prose .code-block pre{padding-right:3.75rem}.prose .copy-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.prose .copy-btn{justify-content:center;width:2rem;padding:0}}@media (prefers-reduced-motion:reduce){.prose .copy-icons svg{transition:opacity .15s;filter:none!important;transform:none!important}.prose .copy-btn[data-copied] .check-icon path{stroke-dashoffset:0;animation:none}.prose .code-block pre[data-flash]{animation:none}}.post-in[data-astro-cid-ecjd7rrs]{animation:rise .8s var(--ease-out) both}.reading-progress[data-astro-cid-ecjd7rrs]{z-index:60;background:var(--accent);transform-origin:0;height:2px;transform:scaleX(var(--p,0));position:fixed;inset:0 0 auto}
