.post-header[data-astro-cid-yl355ysp]{margin-bottom:2rem}h1[data-astro-cid-yl355ysp]{margin-bottom:.5rem}.meta[data-astro-cid-yl355ysp]{display:flex;gap:.5rem;align-items:center;color:var(--text-muted);font-size:.9rem;margin-bottom:1rem}time[data-astro-cid-yl355ysp]{display:inline}.description[data-astro-cid-yl355ysp]{color:var(--text-muted);font-size:1.1rem;margin-top:.5rem}#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}.toc-link:hover{color:var(--text)}.toc-link.active{color:var(--link)}.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:#fff;box-shadow:0 4px 12px #00000026;color:#1f2937;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 svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8}.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 0 .55rem .75rem;font-size:.95rem;line-height:1.45}.toc-dialog-list .toc-h3 .toc-link{padding-left:2rem;font-size:.875rem}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-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)}}
