.blog-overlay__article[hidden]{display:none!important}.blog-overlay__toc{position:absolute;left:50%;bottom:clamp(1rem,2.5vh,1.75rem);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.75rem;transform:translate(-50%);pointer-events:none}.blog-overlay__toc-panel{width:min(92vw,30rem);max-height:min(60vh,32rem);overflow-y:auto;overscroll-behavior:contain;padding:1.25rem 1.5rem 1.5rem;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 20px 48px -16px #0d1b1259;opacity:0;transform:translateY(.75rem);visibility:hidden;pointer-events:none;transition:opacity .25s ease,transform .35s cubic-bezier(.22,1,.36,1),visibility 0s linear .35s}.blog-overlay__toc-panel[data-visible=true]{opacity:1;transform:translateY(0);visibility:visible;pointer-events:auto;transition:opacity .25s ease,transform .35s cubic-bezier(.22,1,.36,1)}.blog-overlay__toc-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted);margin:0 0 .875rem}.blog-overlay__toc-list{list-style:none;margin:0;padding:0;counter-reset:toc-item;display:flex;flex-direction:column}.blog-overlay__toc-item{counter-increment:toc-item}.blog-overlay__toc-item button{display:grid;grid-template-columns:1.75rem 1fr;align-items:baseline;gap:.5rem;width:100%;padding:.625rem 0;background:transparent;border:0;border-top:1px solid var(--color-border);color:var(--color-text);font:inherit;font-size:1rem;font-weight:500;line-height:1.35;text-align:left;cursor:pointer;transition:opacity .18s ease,color .18s ease}.blog-overlay__toc-item:first-child button{border-top:0}.blog-overlay__toc-item button:before{content:counter(toc-item,decimal-leading-zero);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600;color:var(--color-muted);letter-spacing:.04em}.blog-overlay__toc-item button:hover{color:var(--color-red)}.blog-overlay__toc-item button:focus-visible{outline:2px solid var(--color-green);outline-offset:2px;border-radius:4px}.blog-overlay__titlebar{--read-progress: 0;pointer-events:auto;display:inline-flex;align-items:center;gap:.625rem;max-width:min(90vw,38rem);padding:.5rem .875rem .5rem .5rem;font:inherit;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:0 12px 32px -8px #0d1b1240;opacity:0;cursor:pointer;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .35s ease,background-color .18s ease,color .18s ease,visibility 0s linear .5s;visibility:hidden;transform:translateY(150%)}.blog-overlay__titlebar[data-visible=true]{transform:translateY(0);opacity:1;visibility:visible;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .35s ease,background-color .18s ease,color .18s ease}.blog-overlay__titlebar:hover{background:var(--color-text);color:var(--color-bg)}.blog-overlay__titlebar:focus-visible{outline:2px solid var(--color-green);outline-offset:3px}.blog-overlay__titlebar:active{transform:translateY(0) scale(.97)}.blog-overlay__titlebar-caret{flex-shrink:0;opacity:.55;transition:transform .3s cubic-bezier(.22,1,.36,1)}.blog-overlay__titlebar[aria-expanded=true] .blog-overlay__titlebar-caret{transform:rotate(180deg)}.blog-overlay__titlebar-progress{display:inline-flex;width:22px;height:22px;flex-shrink:0}.blog-overlay__titlebar-track,.blog-overlay__titlebar-bar{fill:none;stroke-width:2}.blog-overlay__titlebar-track{stroke:currentColor;opacity:.22}.blog-overlay__titlebar-bar{stroke:currentColor;stroke-linecap:round;stroke-dasharray:62.832;stroke-dashoffset:calc(62.832 * (1 - var(--read-progress)));transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .12s linear}.blog-overlay__titlebar-text{display:block;font-size:.9375rem;font-weight:500;line-height:1.2;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:720px){.blog-overlay__toc{bottom:1rem}.blog-overlay__titlebar{max-width:calc(100vw - 5.5rem);padding:.4375rem .875rem .4375rem .4375rem}.blog-overlay__titlebar-progress{width:20px;height:20px}.blog-overlay__titlebar-text{font-size:.875rem}.blog-overlay__toc-panel{padding:1rem 1.125rem 1.25rem}}@media(prefers-reduced-motion:reduce){.blog-overlay__titlebar,.blog-overlay__toc-panel{transition:opacity .2s ease,background-color .18s ease,color .18s ease}.blog-overlay__titlebar-bar,.blog-overlay__titlebar-caret{transition:none}}
