.gb-blog-toc-rail{--gb-blog-toc-room:48px;display:none}@media (min-width:1100px){.gb-blog-toc-rail{top:calc(var(--gb-nav-h,64px) + 24px);max-width:360px;margin-top:calc(-1 * var(--gb-blog-toc-room));grid-area:1/1/auto/span 4;align-self:start;display:block;position:sticky}}.gb-blog-toc{padding-top:var(--gb-blog-toc-room);position:relative}.gb-blog-toc__head{position:relative}.gb-blog-toc__label{margin:0 0 var(--space-2);color:var(--gb-ink);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:-.005em;line-height:1.4}.gb-blog-toc__title{color:var(--gb-ink-3);font-size:var(--fs-xs);font-weight:var(--fw-medium);text-wrap:pretty;-webkit-line-clamp:2;line-clamp:2;opacity:0;pointer-events:none;transition:opacity var(--dur-slow) var(--ease-spring), transform var(--dur-slow) var(--ease-spring);-webkit-box-orient:vertical;margin:0;line-height:1.35;display:-webkit-box;position:absolute;bottom:calc(100% + 6px);left:0;right:0;overflow:hidden;transform:translateY(4px)}.gb-blog-toc__title--on{opacity:1;transform:none}.gb-blog-toc__scroll{max-height:calc(100svh - 260px);padding-inline:var(--space-1);overscroll-behavior:contain;scrollbar-width:thin;margin-inline:-4px;overflow-y:auto}.gb-blog-tree{--gb-tree-indent:24px;--gb-tree-spine:4px;--gb-tree-fs:var(--fs-sm);--gb-tree-lh:1.4;--gb-tree-pad:5px;--gb-tree-elbow-y:calc(var(--gb-tree-pad) + var(--gb-tree-fs) * var(--gb-tree-lh) / 2);margin:0;padding:0;list-style:none}.gb-blog-tree--sub{--gb-tree-fs:var(--fs-xs);--gb-tree-pad:4px}.gb-blog-tree__item{padding-left:var(--gb-tree-indent);position:relative}.gb-blog-tree__item:before,.gb-blog-tree__item:after{content:"";left:var(--gb-tree-spine);background:var(--gb-line-3);width:1px;transition:background-color var(--dur-base) var(--ease-spring);position:absolute}.gb-blog-tree__item:before{height:var(--gb-tree-elbow-y);top:0}.gb-blog-tree__item:after{top:var(--gb-tree-elbow-y);bottom:0}.gb-blog-tree__item:last-child:after{content:none}.gb-blog-tree__link{padding-block:var(--gb-tree-pad);border-radius:var(--radius-xs);color:var(--gb-ink-3);font-size:var(--gb-tree-fs);font-weight:var(--fw-medium);line-height:var(--gb-tree-lh);text-wrap:pretty;-webkit-tap-highlight-color:transparent;transition:color var(--dur-base) var(--ease-spring);text-decoration:none;display:block;position:relative}.gb-blog-tree__elbow{top:var(--gb-tree-elbow-y);left:calc(var(--gb-tree-spine) - var(--gb-tree-indent));width:calc(var(--gb-tree-indent) - var(--gb-tree-spine) - 8px);background:var(--gb-line-3);height:1px;transition:background-color var(--dur-base) var(--ease-spring);position:absolute}.gb-blog-tree__elbow:after{content:"";background:var(--gb-lime);width:6px;height:6px;box-shadow:0 0 0 1.5px var(--gb-lime-text);opacity:0;transition:opacity var(--dur-base) var(--ease-spring), transform var(--dur-slow) var(--ease-spring);position:absolute;top:-2.5px;right:0;transform:scale(.4)}.gb-blog-tree__item[data-state=passed]:before,.gb-blog-tree__item[data-state=passed]:after,.gb-blog-tree__item[data-state=within]:before,.gb-blog-tree__item[data-state=here]:before,.gb-blog-tree__item[data-state=passed]>.gb-blog-tree__link .gb-blog-tree__elbow,.gb-blog-tree__item[data-state=within]>.gb-blog-tree__link .gb-blog-tree__elbow,.gb-blog-tree__item[data-state=here]>.gb-blog-tree__link .gb-blog-tree__elbow{background:var(--gb-ink)}.gb-blog-tree__item[data-state=passed]>.gb-blog-tree__link{color:var(--gb-ink-2)}.gb-blog-tree__item[data-state=within]>.gb-blog-tree__link,.gb-blog-tree__item[data-state=here]>.gb-blog-tree__link{color:var(--gb-ink)}.gb-blog-tree__item[data-state=here]>.gb-blog-tree__link .gb-blog-tree__elbow:after{opacity:1;transform:none}.gb-blog-tree__link--preview{color:var(--gb-ink)}.gb-blog-tree__link--preview .gb-blog-tree__elbow{background:var(--gb-ink)}@media (hover:hover) and (pointer:fine){.gb-blog-tree__link:hover{color:var(--gb-ink)}}.gb-blog-tree__link:focus-visible{color:var(--gb-ink);outline:2px solid var(--gb-ink);outline-offset:2px}.gb-blog-tree__subs{visibility:hidden;transition:grid-template-rows var(--dur-slow) var(--ease-spring), visibility 0s linear var(--dur-slow);grid-template-rows:0fr;display:grid}.gb-blog-tree__subs>.gb-blog-tree{min-height:0;padding:2px var(--space-1);opacity:0;transition:opacity var(--dur-base) var(--ease-spring);margin:-2px -4px;overflow:hidden}.gb-blog-tree__subs[data-open=true],.gb-blog-tree__item:focus-within>.gb-blog-tree__subs{visibility:visible;transition:grid-template-rows var(--dur-slow) var(--ease-spring), visibility 0s;grid-template-rows:1fr}.gb-blog-tree__subs[data-open=true]>.gb-blog-tree,.gb-blog-tree__item:focus-within>.gb-blog-tree__subs>.gb-blog-tree{opacity:1;transition:opacity var(--dur-slow) var(--ease-spring) calc(var(--dur-base) / 2)}.gb-blog-progress{gap:9px;margin-top:22px;display:grid}.gb-blog-progress__bar{gap:3px;height:3px;display:flex}.gb-blog-progress__part{background:var(--gb-line-3);flex:1 1 0;min-width:4px;position:relative;overflow:hidden}.gb-blog-progress__fill{background:var(--gb-ink);transform-origin:0;transition:transform .12s linear;position:absolute;inset:0;transform:scaleX(0)}.gb-blog-progress__meta{justify-content:space-between;gap:var(--space-3);color:var(--gb-ink-3);font-family:var(--font-mono);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.4;display:flex}.gb-blog-progress__pct{color:var(--gb-ink)}.gb-blog-readline{top:var(--gb-nav-h,64px);z-index:399;pointer-events:none;height:2px;position:fixed;left:0;right:0}.gb-blog-readline__fill{background:var(--gb-ink);transform-origin:0;height:100%;transition:transform .12s linear;display:block;transform:scaleX(0)}:root:has([data-public-nav]>nav[data-ground=ink]) .gb-blog-readline__fill{background:var(--gb-lime)}:root:has([data-section-line=shown]) .gb-blog-readline{visibility:hidden}@media (min-width:1100px){.gb-blog-readline{display:none}}@media (prefers-reduced-motion:reduce){.gb-blog-toc__title,.gb-blog-tree__item:before,.gb-blog-tree__item:after,.gb-blog-tree__link,.gb-blog-tree__elbow,.gb-blog-tree__elbow:after,.gb-blog-tree__subs,.gb-blog-tree__subs>.gb-blog-tree,.gb-blog-tree__subs[data-open=true],.gb-blog-tree__subs[data-open=true]>.gb-blog-tree,.gb-blog-tree__item:focus-within>.gb-blog-tree__subs,.gb-blog-tree__item:focus-within>.gb-blog-tree__subs>.gb-blog-tree,.gb-blog-progress__fill,.gb-blog-readline__fill{transition:none}.gb-blog-toc__title,.gb-blog-tree__elbow:after{transform:none}}
