.post-page{--accent:var(--brand);--accent-soft:color-mix(in oklab, var(--brand) 65%, #fff);--accent-bg:color-mix(in oklab, var(--brand) 12%, var(--card));--ink:var(--foreground);--ink-2:var(--secondary-foreground);--paper:var(--card);--bg:var(--background);--line:var(--border);--line-strong:color-mix(in oklab, var(--foreground) 22%, transparent);--muted:var(--muted-foreground);--muted-2:color-mix(in oklab, var(--muted-foreground) 50%, transparent);--surface:var(--secondary);--surface-2:color-mix(in oklab, var(--foreground) 6%, transparent);--good:#31aa40;--r-lg:12px;--r-md:8px;--r-sm:4px;--sans:var(--kc-sans);--mono:var(--kc-mono);--sec-pad-y:72px;background:var(--bg);font-family:var(--sans)}@supports (color:lab(0% 0 0)){.post-page{--good:lab(61.5358% -50.6384 43.17)}}.post-page .eyebrow{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}.post-page .post-shell{max-width:1120px;margin:0 auto;padding:0 40px}@media (max-width:720px){.post-page .post-shell{padding:0 18px}}.post-page .post-crumb{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);align-items:center;gap:10px;padding:26px 0 0;font-size:11px;display:flex}.post-page .post-crumb a{color:var(--ink-2);border-bottom:1px solid #0000;align-items:center;gap:6px;padding-bottom:1px;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.post-page .post-crumb a:hover{color:var(--accent);border-color:var(--accent)}.post-page .post-crumb .sep{color:var(--line-strong)}.post-page .post-head{max-width:820px;padding:32px 0 28px}.post-page .post-head-eyebrow{align-items:center;gap:10px;margin-bottom:22px;display:inline-flex}.post-page .post-head-eyebrow .kick{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:11px}.post-page .post-head-eyebrow .sep{color:var(--line-strong)}.post-page .post-head h1{font-family:var(--sans);letter-spacing:-.032em;color:var(--ink);text-wrap:balance;margin:0 0 20px;font-size:clamp(34px,4.6vw,54px);font-weight:600;line-height:1.06}.post-page .post-head h1 em{color:var(--accent);font-style:normal}.post-page .post-dek{color:var(--ink-2);text-wrap:pretty;max-width:60ch;margin:0;font-size:19px;line-height:1.55}.post-page .post-byline{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;margin-top:28px;padding-top:22px;display:flex}.post-page .post-avatar{background:var(--ink);width:42px;height:42px;color:var(--bg);font-family:var(--mono);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:600;display:grid}.post-page .post-byline-id{flex-direction:column;gap:3px;min-width:0;display:flex}.post-page .post-byline-name{color:var(--ink);letter-spacing:-.01em;font-size:14px;font-weight:600}.post-page .post-byline-meta{font-family:var(--mono);color:var(--muted);align-items:center;gap:9px;font-size:11px;display:flex}.post-page .post-byline-meta .dot{background:var(--line-strong);border-radius:50%;width:3px;height:3px}.post-page .post-share{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.post-page .post-share-btn{border:1px solid var(--line);background:var(--paper);border-radius:var(--r-sm);font-family:var(--sans);color:var(--ink-2);cursor:pointer;align-items:center;gap:7px;padding:8px 12px;font-size:12.5px;font-weight:500;text-decoration:none;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.post-page .post-share-btn:hover{border-color:var(--ink);color:var(--ink)}.post-page .post-share-btn.is-copied{border-color:var(--good);color:var(--good)}.post-page .post-share-icon{justify-content:center;width:34px;height:34px;padding:0}.post-page .post-hero-figure{margin:8px 0 4px}.post-page .post-hero-figure picture{display:block}.post-page .post-hero-figure img{aspect-ratio:16/7;object-fit:cover;border:1px solid var(--line);border-radius:14px;width:100%;display:block}.post-page .post-hero-cap{font-family:var(--mono);color:var(--muted);letter-spacing:.01em;max-width:70ch;margin-top:10px;font-size:11px;line-height:1.55}.post-page .post-hero-cap b,.post-page .post-hero-cap strong{color:var(--ink-2);font-weight:600}.post-page .post-hero-cap p{margin:0}.post-page .post-body{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 220px;align-items:start;gap:56px;margin-top:28px;padding:44px 0 8px;display:grid}@media (max-width:1040px){.post-page .post-body{grid-template-columns:minmax(0,1fr) 200px;gap:40px}}@media (max-width:820px){.post-page .post-body{grid-template-columns:1fr;gap:0}.post-page .post-toc{display:none}}.post-page .post-prose{min-width:0;max-width:68ch}.post-page .post-prose>:first-child{margin-top:0}.post-page .post-prose p{color:var(--ink-2);text-wrap:pretty;margin:0 0 20px;font-size:17px;line-height:1.72}.post-page .post-prose strong{color:var(--ink);font-weight:600}.post-page .post-prose h2{font-family:var(--sans);letter-spacing:-.02em;color:var(--ink);margin:52px 0 16px;scroll-margin-top:90px;font-size:26px;font-weight:600;line-height:1.2;position:relative}.post-page .post-prose h2:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:.34em;left:-22px}@media (max-width:720px){.post-page .post-prose h2:before{display:none}}.post-page .post-prose h3{font-family:var(--sans);letter-spacing:-.01em;color:var(--ink);margin:36px 0 12px;scroll-margin-top:90px;font-size:18px;font-weight:600}.post-page .post-prose ul,.post-page .post-prose ol{counter-reset:ol;flex-direction:column;gap:14px;margin:0 0 22px;padding:0;list-style:none;display:flex}.post-page .post-prose li{color:var(--ink-2);text-wrap:pretty;padding-left:30px;font-size:17px;line-height:1.65;position:relative}.post-page .post-prose ul li:before{content:"";background:var(--line-strong);border-radius:2px;width:6px;height:6px;position:absolute;top:.62em;left:6px}.post-page .post-prose ol li{counter-increment:ol;padding-left:38px}.post-page .post-prose ol li:before{content:counter(ol, decimal-leading-zero);font-family:var(--mono);color:var(--accent);letter-spacing:.02em;font-size:12px;font-weight:600;position:absolute;top:.1em;left:0}.post-page .post-src{font-family:var(--mono);color:var(--accent);letter-spacing:.01em;white-space:nowrap;border-bottom:1px solid color-mix(in oklab, var(--accent) 34%, transparent);border-radius:2px;padding-bottom:.5px;font-size:.78em;font-weight:500;text-decoration:none;transition:color .12s,border-color .12s,background .12s}.post-page .post-src:hover{color:#fff;background:var(--accent);border-color:var(--accent);margin:0 -3px;padding:.5px 3px}.post-page .post-prose a:not(.post-src){color:var(--ink);border-bottom:1px solid var(--line-strong);text-decoration:none;transition:color .12s,border-color .12s}.post-page .post-prose a:not(.post-src):hover{color:var(--accent);border-color:var(--accent)}.post-page .post-banner{background:var(--accent-bg);border:1px solid var(--accent-soft);border-left:3px solid var(--accent);border-radius:var(--r-md);grid-template-columns:auto 1fr;gap:16px;margin:28px 0 32px;padding:20px 22px;display:grid}.post-page .post-banner-mark{background:var(--accent);color:#fff;width:24px;height:24px;font-family:var(--mono);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.post-page .post-banner p{color:var(--ink);margin:0;font-size:15.5px;line-height:1.62}.post-page .post-banner strong{color:var(--ink);font-weight:600}.post-page .post-code{background:var(--ink);border-radius:var(--r-md);border:1px solid var(--ink);margin:0 0 26px;overflow:hidden}.post-page .post-code-bar{background:color-mix(in oklab, var(--ink) 88%, #fff);border-bottom:1px solid color-mix(in oklab, var(--ink) 75%, #fff);justify-content:space-between;align-items:center;padding:9px 14px;display:flex}.post-page .post-code-dots{gap:6px;display:inline-flex}.post-page .post-code-dots span{background:color-mix(in oklab, var(--ink) 55%, #fff);border-radius:50%;width:9px;height:9px}.post-page .post-code-lang{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in oklab, var(--bg) 62%, var(--muted));font-size:10.5px}.post-page .post-code pre{font-family:var(--mono);color:color-mix(in oklab, var(--bg) 90%, var(--accent));white-space:pre;margin:0;padding:18px 20px;font-size:13px;line-height:1.7;overflow-x:auto}.post-page .post-prose blockquote{border-left:3px solid var(--accent);font-family:var(--sans);letter-spacing:-.015em;color:var(--ink);text-wrap:pretty;margin:32px 0;padding:6px 0 6px 26px;font-size:21px;font-weight:500;line-height:1.45}.post-page .post-prose blockquote p{margin:0}.post-page .post-prose blockquote .post-src{font-size:13px}.post-page .post-prose hr{background:var(--line);border:0;height:1px;margin:44px 0 32px}.post-page .post-refs{margin:0}.post-page .post-refs li{color:var(--muted);padding-left:30px;font-size:14px;line-height:1.6}.post-page .post-refs li:before{content:"";background:var(--line-strong);border-radius:2px;width:6px;height:6px;position:absolute;top:.6em;left:6px}.post-page .post-refs a{font-family:var(--mono);font-size:12.5px}.post-page .post-toc{align-self:start;position:sticky;top:88px}.post-page .post-toc-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);padding:18px 18px 16px}.post-page .post-toc-head{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px dashed var(--line);margin-bottom:4px;padding-bottom:12px;font-size:10px}.post-page .post-toc-list{margin:0;padding:0;list-style:none}.post-page .post-toc-link{color:var(--muted);border-left:2px solid var(--line);text-wrap:pretty;padding:7px 0 7px 14px;font-size:12.5px;line-height:1.4;text-decoration:none;transition:color .12s,border-color .12s;display:block}.post-page .post-toc-link.sub{padding-left:26px;font-size:12px}.post-page .post-toc-link:hover{color:var(--ink)}.post-page .post-toc-link.is-active{color:var(--ink);border-left-color:var(--accent);font-weight:600}.post-page .post-toc-prog{border-top:1px dashed var(--line);align-items:center;gap:10px;margin-top:14px;padding-top:14px;display:flex}.post-page .post-toc-prog .track{background:var(--surface-2);border-radius:2px;flex:1;height:3px;overflow:hidden}.post-page .post-toc-prog .fill{background:var(--accent);width:0%;height:100%;transition:width .15s linear}.post-page .post-toc-prog .pct{font-family:var(--mono);color:var(--muted);text-align:right;font-feature-settings:"tnum";min-width:30px;font-size:10px}.post-page .post-related{padding:var(--sec-pad-y) 0 84px}.post-page .post-related-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.post-page .post-related-head h2{letter-spacing:-.02em;color:var(--ink);margin:6px 0 0;font-size:clamp(22px,2.6vw,28px);font-weight:600}.post-page .feed-more{color:var(--ink);border:1px solid var(--ink);border-radius:var(--r-sm);font-size:13px;font-weight:500;font-family:var(--sans);align-items:center;gap:6px;padding:8px 12px;text-decoration:none;display:inline-flex}.post-page .feed-more:hover{background:var(--ink);color:var(--bg)}.post-page .post-related-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}@media (max-width:860px){.post-page .post-related-grid{grid-template-columns:1fr}}.post-page .post-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);color:inherit;flex-direction:column;gap:12px;min-height:220px;padding:18px 18px 16px;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.post-page .post-card:before{content:"";background:var(--topic-color,var(--line-strong));opacity:0;height:2px;transition:opacity .15s;position:absolute;inset:0 0 auto}.post-page .post-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 10px 30px -16px #29261b2e}.post-page .post-card:hover:before{opacity:.6}.post-page .post-card-head{justify-content:space-between;align-items:center;display:flex}.post-page .post-card-num{font-family:var(--mono);color:var(--muted);letter-spacing:.06em;font-size:10px}.post-page .post-card-title{font-family:var(--sans);letter-spacing:-.018em;color:var(--ink);text-wrap:balance;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:18px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.post-page .post-card:hover .post-card-title{color:var(--accent)}.post-page .post-card-dek{color:var(--muted);text-wrap:pretty;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.post-page .post-card-foot{border-top:1px dashed var(--line);font-family:var(--mono);color:var(--muted);letter-spacing:.02em;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;font-size:10.5px;display:flex}.post-page .post-card-read{color:var(--ink-2);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.post-page .post-card-date{white-space:nowrap}.post-page .post-card:hover .post-card-read{color:var(--accent)}.post-page .topic-pill{font-family:var(--mono);color:var(--ink-2);background:var(--surface-2);letter-spacing:.04em;text-transform:lowercase;border-radius:3px;align-items:center;gap:6px;padding:3px 8px;font-size:10px;font-weight:500;display:inline-flex}.post-page .topic-pill:before{content:"";background:var(--topic-color,var(--muted));border-radius:50%;width:6px;height:6px}
