.post-toc-button{z-index:40;position:fixed;inset-block-end:calc(2rem + env(safe-area-inset-bottom,0px));inset-inline-end:1rem}.post-toc-trigger{background:var(--background) padding-box;width:3.5rem;height:3.5rem;color:var(--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-toc-progress{z-index:-1;pointer-events:none;width:calc(100% + 8px);height:calc(100% + 8px);position:absolute;inset:-4px;overflow:visible;transform:rotate(-90deg)}.post-toc-track{stroke:var(--muted-foreground);stroke-width:2px}.post-toc-arc{stroke:var(--accent);stroke-width:4px;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--progress,0))}@media (hover:hover){.post-toc-trigger:hover{color:var(--accent)}}.post-toc-trigger:focus-visible{outline:2px dashed var(--accent);outline-offset:4px;color:var(--accent)}.post-toc-icon-close{display:none}.post-toc-button:has(+.toc-popover:popover-open) .post-toc-icon-list{display:none}.post-toc-button:has(+.toc-popover:popover-open) .post-toc-icon-close{display:block}.toc-popover{border:1px solid var(--border);background:var(--background);width:min(22rem,100vw - 2rem);max-height:min(60dvh,30rem);color:var(--foreground);border-radius:.5rem;flex-direction:column;margin:0;padding:0;font-size:1rem;line-height:1.5;position:fixed;inset:auto;inset-block-end:calc(6.25rem + env(safe-area-inset-bottom,0px));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){.post-toc-button,.toc-popover{display:none}}@media (width>=80rem){.post-toc-button:not([data-side-toc-hidden]){display:none}}@media print{.post-toc-button,.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(--foreground) 80%, transparent)}:is(.toc-side,.toc-popover) li{margin-block:.375rem}:is(.toc-side,.toc-popover) nav a{overflow-wrap:anywhere;color:var(--muted-foreground);border-radius:.25rem;padding:.125rem .25rem;display:inline-block;position:relative}:is(.toc-side,.toc-popover) nav a:before{content:"#";content:"#" / "";opacity:.6;position:absolute;inset-block-start:.125rem;inset-inline-start:-.75rem}[data-toc-nav] a:focus-visible,[data-toc-nav] a:hover,[data-toc-nav] a[aria-current=true]{color:var(--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-popover nav a{min-height:2.75rem;padding-block:.625rem;display:block}.toc-popover nav a:before{inset-block-start:.625rem}.toc-popover .toc-back-to-top{min-height:2.75rem}.toc-skip{z-index:1;background:var(--background);color:var(--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:1rem;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(--accent)}:is(.toc-side,.toc-popover) .toc-back-to-top{border-block-start:1px dashed var(--border);border-radius:0;flex-shrink:0;margin-block-start:.5rem;padding-block:.5rem}@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 (prefers-reduced-motion:reduce){html:has([data-toc-nav]){scroll-behavior:auto}}@media print{.toc-side{display:none!important}}
