.post-fab{z-index:50;opacity:0;visibility:hidden;transition:opacity .5s,translate .5s,visibility .5s;position:fixed;inset-block-end:2rem;inset-inline-end:1rem;translate:0 3.5rem}.post-fab[data-visible]{opacity:1;visibility:visible;translate:0}.post-fab-btn{background:var(--color-background) padding-box;width:3.5rem;height:3.5rem;color:var(--color-foreground);border:2px solid #0000;border-radius:9999px;justify-content:center;align-items:center;display:flex;position:relative;box-shadow:0 10px 15px -3px #00000026,0 4px 6px -4px #00000026}.post-fab-progress{--fab-track:var(--color-muted-foreground);z-index:-1;border-radius:inherit;background:conic-gradient(var(--color-accent) var(--progress,0%), transparent 0), radial-gradient(closest-side, transparent calc(100% - 4px), var(--fab-track) 0 calc(100% - 2px), transparent 0);position:absolute;inset:-4px}@media (hover:hover){.post-fab-btn:hover{color:var(--color-accent)}}.post-fab-btn:focus-visible{outline:2px dashed var(--color-accent);outline-offset:4px;color:var(--color-accent)}.post-fab-icon-toc,.post-fab-icon-close,[data-has-toc] .post-fab-icon-top{display:none}[data-has-toc] .post-fab-icon-toc{display:block}.post-fab:has(+.toc-popover:popover-open) .post-fab-icon-toc{display:none}.post-fab:has(+.toc-popover:popover-open) .post-fab-icon-close{display:block}.toc-popover{border:1px solid var(--color-border);background:var(--color-background);width:min(20rem,100vw - 2rem);max-height:min(60dvh,28rem);color:var(--color-foreground);border-radius:.5rem;flex-direction:column;margin:0;padding:0;font-size:.9rem;position:fixed;inset:auto;inset-block-end:6.25rem;inset-inline-end:1rem;box-shadow:0 20px 25px -5px #0003}.toc-popover:popover-open{display:flex}.toc-popover nav{padding:.75rem 1.25rem .25rem 1rem}@supports not selector(:popover-open){.toc-popover{display:none}}@media (width>=80rem){.post-fab:has([data-has-toc]):not([data-side-toc-hidden]){display:none}}@media print{.post-fab,.toc-popover{display:none!important}}.post-body{position:relative}:is(.toc-side,.toc-popover) ol{margin:0;padding-inline-start:1rem;list-style:none}:is(.toc-side,.toc-popover) ol ol{color:color-mix(in oklab, var(--color-foreground) 80%, transparent)}:is(.toc-side,.toc-popover) li{margin-block:.375rem}:is(.toc-side,.toc-popover) nav a{overflow-wrap:anywhere;border-radius:.25rem;padding:.125rem .25rem;transition:color .2s;display:inline-block;position:relative}:is(.toc-side,.toc-popover) nav a:before{content:"#";content:"#" / "";opacity:.6;position:absolute;inset-inline-start:-.75rem}[data-toc-nav] a:hover,[data-toc-nav] a[aria-current=true]{color:var(--color-accent)}[data-toc-nav] a[aria-current=true]{text-underline-offset:4px;text-decoration:underline dashed}.toc-label{flex-shrink:0;padding-block-end:.5rem;font-size:.875rem;font-weight:700}:is(.toc-side,.toc-popover) nav{flex-direction:column;min-height:0;display:flex}:is(.toc-side,.toc-popover) nav>ol{overscroll-behavior:contain;scrollbar-width:thin;min-height:0;position:relative;overflow-y:auto}.toc-skip{z-index:1;background:var(--color-background);color:var(--color-accent);padding:.125rem .25rem;font-size:.875rem;position:absolute;inset-block-start:0;inset-inline-start:0}.toc-skip:not(:focus){clip-path:inset(50%)}.toc-side{display:none}.toc-side>nav{max-height:calc(100dvh - 4rem);font-size:.875rem;line-height:1.4;position:sticky;top:2rem}.toc-back-to-top{border-radius:.25rem;align-items:center;gap:.375rem;padding:.125rem .25rem;font-size:.875rem;display:flex}.toc-back-to-top:hover{color:var(--color-accent)}:is(.toc-side,.toc-popover) .toc-back-to-top{border-block-start:1px dashed var(--color-border);border-radius:0;flex-shrink:0;margin-block-start:.5rem;padding-block:.5rem}.post-body:has(.toc-side) .toc-inline{display:none}@media (width>=80rem){.toc-side{--toc-space:calc((100vw - 100%) / 2);--toc-gap:clamp(.75rem, calc(var(--toc-space) - 14.5rem), 2.5rem);--toc-edge:clamp(.75rem, calc(var(--toc-space) - 15.5rem), 1.5rem);width:min(16rem, calc(var(--toc-space) - var(--toc-gap) - var(--toc-edge)));margin-inline-start:var(--toc-gap);display:block;position:absolute;inset-block:0;inset-inline-start:100%;container-type:inline-size}@container (width<7.5rem){.toc-side>nav,.toc-skip{display:none}}}@media print{.toc-side{display:none!important}}
