.post-hero{padding-block:48px 40px}.post-hero .h1{max-width:22ch;margin-top:20px}.post-hero .dek{letter-spacing:-.015em;color:var(--muted-foreground);text-wrap:pretty;max-width:46ch;margin:20px 0 0;font-size:clamp(19px,2cqi,23px);line-height:1.45}.post-meta{border-top:1px solid var(--border);font-family:var(--font-geist-mono), ui-monospace, monospace;color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:10px 20px;margin-top:28px;padding-top:16px;font-size:13px;display:flex}.post-meta .sep{background:var(--border-strong);border-radius:50%;width:4px;height:4px}.post-cover{border:1px solid var(--border);background:var(--muted);border-radius:8px;margin-top:40px;position:relative;overflow:hidden}.post-hero .crumbs{animation:post-fade-up .5s var(--ease-out) both}.post-hero .h1{animation:post-fade-up .6s var(--ease-out) 60ms both}.post-hero .dek{animation:post-fade-up .6s var(--ease-out) .16s both}.post-meta{animation:post-fade-up .6s var(--ease-out) .24s both}.post-cover{animation:post-fade-up .7s var(--ease-in-out) .3s both}@keyframes post-fade-up{0%{opacity:0;transform:translateY(16px)}}@container (min-width:768px){.post-hero{padding-block:88px 56px}}
.post-progress{z-index:60;background:var(--accent);transform-origin:0;pointer-events:none;height:2px;position:fixed;inset:64px 0 auto;transform:scaleX(0)}@supports (animation-timeline:scroll()){.post-progress{animation:linear both post-progress-grow;animation-timeline:scroll(root)}}@keyframes post-progress-grow{to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.post-progress{display:none}}.section.post-article{padding-top:24px}.post-article .article{grid-template-columns:minmax(0,1fr);gap:28px;display:grid}.post-body{max-width:680px}.toc-m+.post-body{margin-top:28px}.toc{display:none}.toc-title{font-family:var(--font-geist-mono), ui-monospace, monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);margin:0;font-size:12px}.toc ol{border-left:1px solid var(--border);margin:12px 0 0;padding:0;list-style:none}.toc a{color:var(--muted-foreground);transition:color .12s var(--ease-out), border-color .2s var(--ease-out);border-left:2px solid #0000;margin-left:-1px;padding:6px 0 6px 16px;font-size:14px;line-height:1.4;text-decoration:none;display:block}.toc a:hover{color:var(--foreground)}.toc a[aria-current=true]{color:var(--foreground);border-left-color:var(--accent)}.toc .sub a{padding-left:30px}.toc-m{border:1px solid var(--border);border-radius:8px}.toc-m summary{min-height:48px;font-family:var(--font-geist-mono), ui-monospace, monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);cursor:pointer;justify-content:space-between;align-items:center;padding:0 16px;font-size:12px;list-style:none;display:flex}.toc-m summary::-webkit-details-marker{display:none}.toc-m summary svg{width:16px;height:16px;transition:transform .2s var(--ease-out)}.toc-m[open] summary svg{transform:rotate(180deg)}.toc-m ol{margin:0;padding:0 16px 12px;list-style:none}.toc-m a{border-top:1px solid var(--border);align-items:center;min-height:44px;font-size:15px;text-decoration:none;display:flex}.post-foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:680px;margin-top:56px;padding-top:24px;display:flex}.post-foot-actions{flex-wrap:wrap;gap:8px;display:flex}.pn{grid-template-columns:minmax(0,1fr);gap:12px;max-width:680px;margin-top:40px;display:grid}.pn a{border:1px solid var(--border);transition:border-color .15s var(--ease-out), background-color .15s var(--ease-out);border-radius:8px;flex-direction:column;gap:6px;padding:20px;text-decoration:none;display:flex}.pn a:hover{border-color:var(--foreground)}.pn .dir{font-family:var(--font-geist-mono), ui-monospace, monospace;color:var(--muted-foreground);align-items:center;gap:6px;font-size:12px;display:flex}.pn .dir svg{width:14px;height:14px}.pn .t{letter-spacing:-.02em;font-size:17px;font-weight:600;line-height:1.3}.pn .next{text-align:right;align-items:flex-end}.post-list{border-top:1px solid var(--border-strong);margin:0;padding:0;list-style:none}.post-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr);gap:8px;padding:24px 0;display:grid;position:relative}.post-row time,.post-row .rt{font-family:var(--font-geist-mono), ui-monospace, monospace;color:var(--muted-foreground);font-size:13px}.post-row h3{letter-spacing:-.025em;margin:0;font-size:clamp(20px,2cqi,24px);font-weight:600;line-height:1.25}.post-row h3 a{text-decoration:none}.post-row h3 a:after{content:"";position:absolute;inset:0}.post-row:hover h3 a{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;text-decoration-thickness:1.5px}.post-row .ex{color:var(--muted-foreground);max-width:62ch;margin:6px 0 0;font-size:15px;line-height:1.55}@container (min-width:640px){.pn{grid-template-columns:repeat(2,minmax(0,1fr))}.pn .next:only-child{grid-column:2}}@container (min-width:768px){.post-row{grid-template-columns:150px minmax(0,1fr) 110px;align-items:baseline;gap:24px}.post-row .rt{text-align:right}}@container (min-width:1000px){.post-article .article{grid-template-columns:minmax(0,680px) 220px;justify-content:space-between;gap:64px}.toc{order:2;align-self:start;display:block;position:sticky;top:96px}.toc-m{display:none}.toc-m+.post-body{margin-top:0}}
