.toc__bar,.toc-scrim{display:none}.post{row-gap:0}.post>.rail{grid-area:1/2/span 2}.post>.post__pager{grid-area:2/1}@media (width<=1080px){.post>.rail,.post>.post__pager{grid-area:auto/1}.post>.rail{order:1;margin-top:32px}.post>.post__pager{order:2;margin-top:32px}.post>.rail .rail__inner{border:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);grid-template-columns:minmax(0,1fr);gap:0;padding:0;display:grid}.post>.rail .rail__inner>div{padding:18px 20px}.post>.rail .rail__inner>div:has(.rail__tags){border-top:1px solid var(--line);grid-column:1/-1;padding-bottom:8px}.post>.rail .rail__label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:10px;font-size:10.5px}.post>.rail .rail__inner time{font-size:14px;line-height:1.4}.post>.rail .rail__reading{margin-top:6px}.post>.rail .rail__tags{border-top:0}.post>.rail .rail__tags li:last-child{border-bottom:0}.post__body :is(h2,h3,h4)[id]{scroll-margin-top:calc(var(--fixedbar-h,56px) + 20px)}.post .toc{z-index:20;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(12px)saturate(1.2);opacity:0;visibility:hidden;flex-basis:auto;transition:opacity .25s,transform .25s,visibility 0s linear .25s;position:fixed;top:0;left:0;right:0;transform:translateY(-8px)}.post .toc.is-pinned{opacity:1;visibility:visible;transition:opacity .25s,transform .25s;transform:none}.post .toc:after{content:"";background:var(--accent-red,#e5484d);height:1px;transform:scaleX(var(--read,0));transform-origin:0;position:absolute;bottom:-1px;left:0;right:0}.toc-scrim{z-index:19;backdrop-filter:blur(2px);opacity:0;visibility:hidden;background:#00000073;transition:opacity .28s,visibility 0s linear .28s;display:block;position:fixed;inset:0}.toc-scrim.is-on{opacity:1;visibility:visible;transition:opacity .28s}.post .toc .toc__label{display:none}.toc__bar{width:100%;min-height:var(--fixedbar-h,56px);padding:0 var(--fixedbar-clear,64px) 0 20px;color:var(--text);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) 12px;align-items:center;gap:12px;margin:0;display:grid}.toc__bar:focus-visible{outline:2px solid var(--text);outline-offset:-2px}.toc__barcount{font-family:var(--mono);color:var(--accent-red,#e5484d);font-variant-numeric:tabular-nums;font-size:11px}.toc__bartitle{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.toc__chev{width:12px;height:12px;position:relative}.toc__chev:before,.toc__chev:after{content:"";background:var(--muted);width:12px;height:1.5px;transition:transform .3s cubic-bezier(.3,1.4,.5,1);position:absolute;top:calc(50% - .75px);left:0}.toc__chev:after{transform:rotate(90deg)}.toc.is-open .toc__chev:after{transform:rotate(0)}.post .toc .toc__body{clip-path:inset(0 0 100%);opacity:0;transition:clip-path .3s cubic-bezier(.2, .8, .2, 1), transform .3s cubic-bezier(.2, .8, .2, 1), opacity .22s ease, display .3s allow-discrete;max-height:calc(100dvh - var(--fixedbar-h,56px) - 32px);overscroll-behavior:contain;border-top:1px solid var(--line);padding:12px 20px 16px;display:none;overflow-y:auto;transform:translateY(-6px)}.post .toc.is-open .toc__body{clip-path:inset(0);opacity:1;display:block;transform:none}@starting-style{.post .toc.is-open .toc__body{clip-path:inset(0 0 100%);opacity:0;transform:translateY(-6px)}}.post .toc .toc__track{top:16px;bottom:20px;left:23px}.post .toc.has-active .toc__pin{transform:translate(-50%, calc(var(--pin-y,0px) - 16px - 50%)) scale(1)}.post .toc .toc__item a{padding:8px 0;font-size:14px}}@media (width<=720px){.post>.rail{margin-inline:-20px}.post>.rail .rail__inner{border-inline:0}}@media (width<=1080px) and (prefers-reduced-motion:reduce){.post .toc,.post .toc.is-pinned,.post .toc .toc__body,.toc-scrim,.toc-scrim.is-on,.toc__chev:before,.toc__chev:after{transition:none}}.post__byline[data-astro-cid-zg7dkzxc]{border-top:0;margin:24px 0 16px;padding-top:0}.post__rule[data-astro-cid-zg7dkzxc]{border-top:1px solid var(--line);height:0;margin-bottom:32px}
