.chips{flex-wrap:wrap;gap:10px;margin-top:34px;display:flex;position:relative}.chip{border:1px solid var(--line);color:var(--text);border-radius:999px;align-items:center;gap:8px;padding:9px 16px;font-size:.92rem;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.chip span{color:var(--brass);font-variant-numeric:tabular-nums}.chip:hover{border-color:var(--brass);color:var(--brass-hi)}.post-grid-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px;display:grid}.post-card{border-top:1px solid var(--paper-line);flex-direction:column;gap:10px;padding-block:30px 34px;display:flex;position:relative}.post-card:before{content:"";background:var(--brass-ink);transform-origin:0;width:100%;height:1px;transition:transform .5s var(--ease);position:absolute;top:-1px;left:0;transform:scaleX(0)}.post-card:hover:before{transform:scaleX(1)}.post-cat{z-index:1;color:var(--brass-ink);align-self:flex-start;font-size:.82rem;font-weight:600;font-stretch:110%;text-decoration:none;position:relative}.post-cat:hover{text-decoration:underline}.post-title{font-family:var(--serif);letter-spacing:-.012em;font-size:1.55rem;font-stretch:90%;line-height:1.14}.post-title a{color:var(--ink);text-decoration:none}.post-title a:after{content:"";position:absolute;inset:0}.post-title a:focus-visible{outline:none}.post-card:has(.post-title a:focus-visible){outline:2px solid var(--ink);outline-offset:6px;border-radius:4px}.post-desc{color:var(--ink-2);font-size:.98rem}.post-meta{color:var(--ink-2);flex-wrap:wrap;gap:6px 18px;margin-top:auto;font-size:.85rem;display:flex}.post-card.large{border-top:0;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px 40px;padding-block:0 8px;display:grid}.post-card.large:before{display:none}.post-card.large .post-cat{grid-column:1/-1}.post-card.large .post-title{letter-spacing:-.022em;grid-column:1/span 8;font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:1.02}.post-card.large .post-desc{grid-column:1/span 7;font-size:1.12rem}.post-card.large .post-meta{grid-column:1/-1}.empty{color:var(--ink-2)}.read-progress{z-index:40;background:var(--brass);transform-origin:0;height:3px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}@supports (animation-timeline:scroll()){.read-progress{animation:linear both read-grow}html .read-progress{animation-timeline:scroll(root)}}@keyframes read-grow{to{transform:scaleX(1)}}.post-hero{padding-top:clamp(48px,6vw,88px)}.post-hero h1{max-width:17em;font-size:clamp(2.5rem,5.6vw,4.6rem);line-height:1.02}.post-hero .lede{max-width:40em}.post-facts{color:var(--mist);flex-wrap:wrap;gap:8px 24px;margin-top:28px;font-size:.92rem;display:flex;position:relative}.post-facts a{color:var(--text)}.tag-row{flex-wrap:wrap;gap:8px;margin-top:18px;list-style:none;display:flex;position:relative}.tag-row a{border:1px solid var(--line);color:var(--mist);border-radius:999px;padding:5px 12px;font-size:.82rem;text-decoration:none;display:inline-block}.tag-row a:hover{color:var(--brass-hi);border-color:var(--brass)}.post-section{padding-top:clamp(48px,6vw,80px)}.post-layout{grid-template-columns:220px minmax(0,720px);justify-content:start;align-items:start;gap:72px;display:grid}.toc{max-height:calc(100vh - 140px);font-size:.9rem;position:sticky;top:104px;overflow:auto}.toc-h{color:var(--brass-ink);margin-bottom:12px;font-size:.8rem;font-weight:640;font-stretch:110%}.toc ol{border-left:1px solid var(--paper-line);gap:2px;list-style:none;display:grid}.toc a{color:var(--ink-2);border-left:2px solid #0000;margin-left:-1px;padding:6px 0 6px 14px;line-height:1.35;text-decoration:none;display:block}.toc a:hover{color:var(--ink);border-left-color:var(--brass-ink)}.article{min-width:0}.toc-mobile{border:1px solid var(--paper-line);background:#fff;border-radius:10px;margin:-16px 0 40px;font-size:.95rem;display:none}.toc-mobile summary{cursor:pointer;color:var(--brass-ink);padding:14px 20px;font-size:.85rem;font-weight:640;font-stretch:110%}.toc-mobile ol{gap:6px;padding:0 20px 16px 40px;display:grid}.toc-mobile a{color:var(--ink-2);text-decoration:none}.toc-mobile a:hover{color:var(--ink)}.disclaimer{color:var(--ink-2);border:1px dashed #7f5f2a73;border-radius:10px;margin-bottom:20px;padding:14px 18px;font-size:.9rem;line-height:1.55}.in-short{border:1px solid var(--paper-line);background:#fff;border-radius:10px;margin-bottom:40px;padding:22px 26px}.in-short-h{color:var(--brass-ink);margin-bottom:8px;font-size:.82rem;font-weight:640;font-stretch:110%}.in-short ul{gap:8px;padding-left:20px;display:grid}.in-short li{color:var(--ink);line-height:1.55}.in-short li::marker{color:var(--brass-ink)}.post-prose{color:#29344a;font-size:1.08rem;line-height:1.78}.post-prose>*+*{margin-top:1.15em}.post-prose h2{font-family:var(--serif);letter-spacing:-.015em;color:var(--ink);margin-top:2.2em;scroll-margin-top:96px;font-size:clamp(1.75rem,3vw,2.25rem);font-stretch:90%;line-height:1.12}.post-prose h3{font-family:var(--sans);color:var(--ink);margin-top:1.8em;scroll-margin-top:96px;font-size:1.18rem;font-weight:640;font-stretch:104%;line-height:1.3}.post-prose h2+*,.post-prose h3+*{margin-top:.6em}.post-prose a{color:var(--ink);text-decoration-color:var(--brass-ink);text-underline-offset:.2em;text-decoration-thickness:1px}.post-prose a:hover{text-decoration-thickness:2px}.post-prose strong{color:var(--ink);font-weight:620}.post-prose ul,.post-prose ol{gap:.45em;padding-left:1.3em;display:grid}.post-prose li::marker{color:var(--brass-ink)}.post-prose li>ul,.post-prose li>ol{margin-top:.45em}.post-prose blockquote{border-left:3px solid var(--brass-ink);background:var(--paper-2);color:var(--ink-2);border-radius:0 8px 8px 0;padding:14px 20px;font-size:.98rem}.post-prose hr{border:0;border-top:1px solid var(--paper-line);margin-block:2.4em}.post-prose table{border-collapse:collapse;background:linear-gradient(to right, var(--paper) 30%, #eef0f300) left center / 48px 100% no-repeat local, linear-gradient(to left, var(--paper) 30%, #eef0f300) right center / 48px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, #0b132229, transparent) left center / 14px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, #0b132229, transparent) right center / 14px 100% no-repeat scroll;width:max-content;max-width:100%;font-size:.93rem;line-height:1.5;display:block;overflow-x:auto}.post-prose th,.post-prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--paper-line);padding:10px 14px}.post-prose th{color:var(--ink);background:var(--paper-2);white-space:nowrap;font-weight:640}.post-prose td{min-width:9em}.post-prose th:first-child,.post-prose td:first-child{z-index:1;background:var(--paper);box-shadow:1px 0 0 var(--paper-line);position:sticky;left:0}.post-prose th:first-child{background:var(--paper-2)}.post-prose img{border-radius:8px}.post-prose :not(pre)>code{background:var(--paper-2);border:1px solid var(--paper-line);color:var(--ink);overflow-wrap:anywhere;border-radius:5px;padding:.1em .38em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.86em}.post-prose pre{background:var(--night);color:#dde3ec;scrollbar-color:var(--steel) var(--night);scrollbar-width:thin;tab-size:2;border-radius:10px;padding:18px 20px;font-size:.86rem;line-height:1.6;overflow-x:auto}.post-prose pre code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#75839b;font-style:italic}.token.punctuation,.token.operator{color:#93a0b5}.token.keyword,.token.selector,.token.important,.token.atrule,.token.rule{color:var(--brass-hi)}.token.string,.token.char,.token.attr-value,.token.regex,.token.inserted{color:#b5d19c}.token.number,.token.boolean,.token.constant,.token.symbol{color:#eba58a}.token.function,.token.class-name,.token.builtin{color:#a9c6f0}.token.property,.token.attr-name,.token.key,.token.tag,.token.variable,.token.parameter{color:#d7c5a1}.token.deleted{color:#ee8f80}.sources{border-top:1px solid var(--paper-line);margin-top:56px;padding-top:28px}.sources h2{font-family:var(--sans);color:var(--brass-ink);font-size:.85rem;font-weight:640;font-stretch:110%}.sources ol{color:var(--ink-2);gap:8px;margin-top:12px;padding-left:1.4em;font-size:.92rem;display:grid}.sources a{color:var(--ink);text-decoration-color:var(--brass-ink);text-underline-offset:.2em;overflow-wrap:anywhere}.sources span{color:var(--ink-2);margin-left:6px;font-size:.85rem}.author-box{border:1px solid var(--paper-line);background:#fff;border-radius:14px;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:22px;margin-top:48px;padding:24px;display:grid}.author-box img{object-fit:cover;border-radius:50%;width:96px;height:96px}.author-name{font-family:var(--serif);color:var(--ink);font-size:1.3rem}.author-box p{color:var(--ink-2);font-size:.95rem}.author-links{flex-wrap:wrap;gap:8px 20px;margin-top:8px;display:flex}.related-section{padding-top:0}.related-h{font-family:var(--serif);margin-bottom:12px;font-size:clamp(1.9rem,3.4vw,2.6rem);font-stretch:90%}.more-in{border-top:1px solid var(--paper-line);margin-top:40px;padding-top:28px}.more-in h3{font-family:var(--sans);color:var(--brass-ink);font-size:.85rem;font-weight:640;font-stretch:110%}.more-in h3 a{color:inherit}.more-in ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 40px;margin-top:14px;list-style:none;display:grid}.more-in li a{color:var(--ink);text-decoration-color:var(--brass-ink);text-underline-offset:.2em;line-height:1.4}.more-in li a:hover{text-decoration-thickness:2px}@media (width<=620px){.more-in ul{grid-template-columns:minmax(0,1fr)}}.post-group{margin-top:clamp(48px,6vw,72px)}.post-group-h{font-family:var(--serif);letter-spacing:-.015em;margin-bottom:4px;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:400;font-stretch:90%}.post-group-h a{color:var(--ink);text-decoration:none}.post-group-h a:hover{text-decoration:underline;text-decoration-color:var(--brass-ink);text-underline-offset:.18em}.home-blog .post-grid-list{margin-top:8px}@media (width<=1080px){.post-layout{grid-template-columns:minmax(0,1fr);gap:0;max-width:760px;margin-inline:auto}.toc{display:none}.post-grid-list{grid-template-columns:repeat(2,minmax(0,1fr))}.toc-mobile{display:block}}@media (width<=900px){.post-card.large{grid-template-columns:minmax(0,1fr)}.post-card.large .post-title,.post-card.large .post-desc{grid-column:1/-1}}@media (width<=620px){.post-grid-list,.author-box{grid-template-columns:minmax(0,1fr)}.post-prose{font-size:1.04rem}}@media print{.toc,.toc-mobile,.read-progress,.tag-row,.related-section,.author-box{display:none!important}.post-layout{display:block}}
