.post-header[data-astro-cid-yl355ysp]{display:flex;flex-direction:column;margin-bottom:2.25rem}h1[data-astro-cid-yl355ysp]{margin:.6rem 0 .9rem;font-size:clamp(2rem,5.5vw,2.6rem);line-height:1.2}.meta[data-astro-cid-yl355ysp]{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;order:-1;font:400 1.05rem/1 var(--font-hand);color:var(--text-muted);transition:color .3s ease-in-out}.meta[data-astro-cid-yl355ysp] span[data-astro-cid-yl355ysp]:last-child{color:var(--link);transition:color .3s ease-in-out}.description[data-astro-cid-yl355ysp]{margin:0;color:var(--text-muted);font-size:1.12rem;transition:color .3s ease-in-out}.markdown-link[data-astro-cid-yl355ysp]{color:var(--text-muted);text-decoration:underline;text-underline-offset:.2em;transition:color .3s ease-in-out,background .3s ease-in-out,border-color .3s ease-in-out}.markdown-link[data-astro-cid-yl355ysp]:hover{color:var(--link)}#back-to-top[data-astro-cid-wlspcwf4]{position:fixed;bottom:calc(2rem + env(safe-area-inset-bottom));right:2rem;width:3rem;height:3rem;padding:0;border-radius:50%;background:var(--link);color:#fff;border:none;display:inline-flex;align-items:center;justify-content:center;appearance:none;cursor:pointer;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s,transform .2s;box-shadow:0 4px 12px #00000026;z-index:1000}#back-to-top[data-astro-cid-wlspcwf4] svg[data-astro-cid-wlspcwf4]{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#back-to-top[data-astro-cid-wlspcwf4]:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0003}#back-to-top[data-astro-cid-wlspcwf4].visible{opacity:1;visibility:visible}@media(prefers-color-scheme:dark){#back-to-top[data-astro-cid-wlspcwf4]{box-shadow:0 4px 12px #0006}#back-to-top[data-astro-cid-wlspcwf4]:hover{box-shadow:0 6px 16px #00000080}}.toc-desktop{position:fixed;top:8rem;right:max(2rem,calc(50vw - 37rem));width:200px;max-height:calc(100vh - 10rem);overflow-y:auto;opacity:.6;transition:opacity .3s ease-in-out,color .3s ease-in-out,background-color .3s ease-in-out,border-color .3s ease-in-out}.toc-desktop.animate{opacity:0;animation:tocFadeSlide .35s ease-out forwards}.toc-desktop:hover{opacity:1}.toc-nav{font-size:.85rem}.toc-title{margin:0 0 .75rem;color:var(--text-muted);font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;transition:color .3s ease-in-out}.toc-list{margin:0!important;padding:0;list-style:none}.toc-item{margin:0}.toc-desktop .toc-item{opacity:0;animation:tocItemFade .3s ease-out forwards;animation-delay:var(--toc-delay)}.toc-h2 .toc-link{padding:.25rem 0}.toc-h3 .toc-link{padding:.25rem 0 .25rem 1.25rem;font-size:.8rem}.toc-link{display:block;color:var(--text-muted);line-height:1.4;text-decoration:none;cursor:pointer;transition:color .3s ease-in-out,border-color .3s ease-in-out,box-shadow .3s ease-in-out}.toc-link:hover{text-decoration:none}@media(hover:hover){.toc-link:hover{color:var(--text)}}.toc-link.active{color:var(--link)}.prose :is(h2,h3)[tabindex="-1"]:focus{outline:none}.toc-toggle{position:fixed;z-index:1000;right:2rem;bottom:calc(2rem + env(safe-area-inset-bottom));left:auto;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:3rem;min-width:3rem;max-width:3rem;height:3rem;padding:0;border:0;border-radius:50%;appearance:none;background:var(--bg);box-shadow:0 4px 12px #00000026;color:var(--text);font:600 .875rem/1 var(--font-heading);cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(.5rem) scale(.92);transition:bottom .3s cubic-bezier(.22,1,.36,1),color .3s ease-in-out,background-color .3s ease-in-out,border-color .3s ease-in-out,box-shadow .3s ease-in-out,opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s linear .2s}.toc-toggle.back-to-top-visible{bottom:calc(6rem + env(safe-area-inset-bottom))}.toc-toggle:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0003;text-decoration:none}.toc-toggle:focus-visible,.toc-close:focus-visible{outline:2px solid var(--link);outline-offset:3px}.toc-toggle .toc-icon{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8}.toc-progress{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke-width:2;transform:rotate(-90deg);pointer-events:none}.toc-progress-track{stroke:var(--border);transition:stroke .3s ease-in-out}.toc-progress-value{stroke:var(--link);stroke-linecap:round;stroke-dasharray:141.372;stroke-dashoffset:141.372;transition:stroke .3s ease-in-out}.toc-dialog{position:fixed;inset:calc(var(--header-offset) + .75rem) 1rem 1rem auto;width:min(24rem,calc(100% - 2rem));max-width:none;height:auto;max-height:none;margin:0;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:1rem;background:var(--bg);box-shadow:0 18px 60px color-mix(in srgb,#000 35%,transparent);color:var(--text);transition:color .3s ease-in-out,background-color .3s ease-in-out,border-color .3s ease-in-out}.toc-dialog[open]{display:flex;flex-direction:column;animation:tocDrawerIn .24s cubic-bezier(.22,1,.36,1) both}.toc-dialog[open].is-closing{pointer-events:none;animation:tocDrawerOut .18s ease-in both}.toc-dialog::backdrop{background:transparent}.toc-dialog-header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem 1.25rem;border-bottom:1px solid var(--border);transition:border-color .3s ease-in-out}.toc-dialog-title{margin:0;font-size:1rem}.toc-close{display:grid;width:2.5rem;height:2.5rem;padding:0;place-items:center;border:0;border-radius:50%;background:var(--code-bg);color:var(--text-muted);cursor:pointer;transition:color .3s ease-in-out,background-color .3s ease-in-out,border-color .3s ease-in-out}.toc-close:hover{color:var(--text)}.toc-close svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8}.toc-dialog-nav{min-height:0;padding:.75rem .75rem 1.25rem;overflow-y:auto;overscroll-behavior:contain}.toc-dialog-list .toc-link{padding:.55rem .5rem .55rem .75rem;border-radius:0;font-size:.95rem;line-height:1.45}.toc-dialog-list .toc-h3 .toc-link{padding-left:2rem;font-size:.875rem}.toc-dialog-list .toc-link.active{box-shadow:inset 2px 0 0 var(--link)}.toc-dialog-nav:focus{outline:none}.toc-dialog-list .toc-link:focus-visible{outline-offset:-2px}html{scroll-padding-top:5rem}@media(max-width:1200px){.toc-desktop{display:none}.toc-toggle{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition-delay:0s}.toc-toggle:hover{transform:translateY(-2px) scale(1)}}@media(max-width:48rem){.toc-dialog{inset:auto .75rem max(.75rem,env(safe-area-inset-bottom));width:auto;max-height:min(70vh,40rem);max-height:min(70dvh,40rem);border-radius:1rem}.toc-dialog[open]{animation-name:tocSheetIn}.toc-dialog[open].is-closing{animation-name:tocSheetOut}}@media(prefers-color-scheme:dark){.toc-toggle{box-shadow:0 4px 12px #0006}.toc-toggle:hover{box-shadow:0 6px 16px #00000080}}@media(prefers-reduced-motion:reduce){.toc-desktop.animate,.toc-item,.toc-dialog{animation:none!important}.toc-desktop.animate{opacity:.6}.toc-desktop .toc-item{opacity:1}.toc-dialog,.toc-toggle{transition-duration:.01ms}}.toc-desktop{scrollbar-width:none;-ms-overflow-style:none}.toc-desktop::-webkit-scrollbar{display:none}.toc-dialog-nav::-webkit-scrollbar{width:4px}.toc-dialog-nav::-webkit-scrollbar-track{background:transparent}.toc-dialog-nav::-webkit-scrollbar-thumb{border-radius:2px;background:var(--border);transition:background-color .3s ease-in-out}.toc-dialog-nav::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes tocItemFade{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:translate(0)}}@keyframes tocFadeSlide{0%{opacity:0;transform:translateY(6px)}to{opacity:.6;transform:translateY(0)}}@keyframes tocDrawerIn{0%{opacity:0;transform:translate(1.25rem)}to{opacity:1;transform:translate(0)}}@keyframes tocDrawerOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(1rem)}}@keyframes tocSheetIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes tocSheetOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(.75rem)}}.post-nav[data-astro-cid-bknnyp27]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border);transition:border-color .3s ease-in-out}.post-nav-link[data-astro-cid-bknnyp27]{display:flex;flex-direction:column;gap:.35rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:6px;color:inherit;text-decoration:none;transition:color .3s ease-in-out,background-color .3s ease-in-out,border-color .3s ease-in-out}.post-nav-link[data-astro-cid-bknnyp27]:hover{border-color:var(--link);text-decoration:none}.post-nav-link[data-astro-cid-bknnyp27].newer{grid-column:2;text-align:right}.post-nav-label[data-astro-cid-bknnyp27]{color:var(--text-muted);font:600 .75rem/1.2 var(--font-heading);letter-spacing:.04em;text-transform:uppercase;transition:color .3s ease-in-out}.post-nav-title[data-astro-cid-bknnyp27]{font-family:var(--font-heading);font-size:.95rem;line-height:1.4;transition:color .3s ease-in-out}.post-nav-link[data-astro-cid-bknnyp27]:hover .post-nav-title[data-astro-cid-bknnyp27]{color:var(--link)}@media(max-width:640px){.post-nav[data-astro-cid-bknnyp27]{grid-template-columns:1fr}.post-nav-link[data-astro-cid-bknnyp27].newer{grid-column:auto}.post-nav[data-astro-cid-bknnyp27]>span[data-astro-cid-bknnyp27]:empty{display:none}}
