.article{padding:56px 0 70px}.article-wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}.article .blog-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:40px;flex-wrap:wrap}.article .crumb{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:flex;gap:12px;align-items:center;flex-wrap:wrap}.article .crumb a{color:var(--ink-3)}.article .crumb a:hover{color:var(--magenta)}.article .crumb .cur{color:var(--ink)}.article .crumb .sep{color:var(--line-2)}.a-cat{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--magenta);margin-bottom:18px}.a-title{font-family:var(--sans);font-weight:800;font-size:clamp(32px,4.8vw,52px);line-height:1.14;letter-spacing:-.03em;color:var(--ink);text-wrap:balance;margin-bottom:28px}.a-byline{display:flex;align-items:center;gap:14px;margin-bottom:26px}.a-avatar{width:46px;height:46px;flex-shrink:0;background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-size:17px}.a-avatar-img{width:46px;height:46px;flex-shrink:0;object-fit:cover;border-radius:0}.a-who .a-author{font-family:var(--sans);font-weight:700;font-size:15.5px;color:var(--ink);margin-bottom:3px}.a-who .a-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ink-3)}.a-who .a-info .dot{color:var(--line-2)}.a-dek{font-family:var(--sans);font-size:clamp(17px,1.7vw,20px);line-height:1.65;color:var(--ink-2);margin-bottom:30px}.a-divider{height:1px;background:var(--line);margin:6px 0 40px}.a-actions{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:52px 0 8px}.a-actions .aa-left,.a-actions .aa-right{display:flex;align-items:center;gap:6px}.aa-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:14px;font-weight:500;color:var(--ink-3);padding:8px 12px;border-radius:2px;transition:color .18s,background .18s}.aa-btn:hover{color:var(--magenta);background:var(--bg-2)}.aa-svg{width:19px;height:19px;flex-shrink:0;transition:transform .18s}.aa-btn .aa-n,.aa-btn .aa-label{font-weight:500}.aa-btn.on{color:var(--magenta)}.aa-btn.clap.on .aa-svg{fill:var(--magenta);transform:scale(1.04)}.aa-btn.bookmark.on .aa-svg{fill:var(--magenta)}.aa-btn:active .aa-svg{transform:scale(.9)}.prose{max-width:none}.prose>p:first-of-type{font-family:var(--sans);font-size:clamp(18px,1.6vw,21px);line-height:1.7;color:var(--ink);font-weight:500;margin-bottom:36px}.prose h2{font-family:var(--sans);font-weight:700;font-size:clamp(23px,2.6vw,30px);line-height:1.25;letter-spacing:-.02em;color:var(--ink);margin:56px 0 16px}.prose h3{font-family:var(--sans);font-weight:700;font-size:19px;letter-spacing:-.01em;color:var(--ink);margin:38px 0 12px}.prose p{font-family:var(--sans);font-size:17px;line-height:1.85;color:var(--ink-2);margin:18px 0}.prose strong{color:var(--ink);font-weight:700}.prose em{color:var(--magenta);font-style:normal;font-weight:600}.prose a:not(.link){color:var(--magenta);border-bottom:1px solid var(--magenta-3)}.prose a:not(.link):hover{border-color:var(--magenta)}.prose a.link{color:var(--magenta);border-bottom:1px solid var(--magenta-3)}.prose ul,.prose ol{margin:18px 0;padding-left:0;list-style:none}.prose li{position:relative;font-family:var(--sans);font-size:17px;line-height:1.8;color:var(--ink-2);padding-left:28px;margin-bottom:12px}.prose ul li:before{content:"—";position:absolute;left:0;color:var(--magenta);font-family:var(--mono)}.prose ol{counter-reset:li}.prose ol li:before{counter-increment:li;content:counter(li,decimal-leading-zero);position:absolute;left:0;top:4px;font-family:var(--mono);font-size:12px;color:var(--magenta);font-weight:500}.prose blockquote{margin:36px 0;padding:8px 0 8px 28px;border-left:3px solid var(--magenta);font-family:var(--sans);font-size:clamp(19px,1.8vw,23px);line-height:1.55;font-weight:500;color:var(--ink);letter-spacing:-.005em}.prose blockquote p{margin:0;font-size:inherit;color:inherit;line-height:inherit}.prose code{font-family:var(--mono);font-size:.88em;background:var(--bg-2);border:1px solid var(--line);padding:1px 6px;color:var(--magenta-2)}.prose pre{background:var(--ink);color:var(--bg);padding:20px 22px;overflow-x:auto;margin:28px 0;font-family:var(--mono);font-size:13.5px;line-height:1.7}.prose pre code{background:none;border:0;padding:0;color:inherit}.prose table{width:100%;border-collapse:collapse;border:1px solid var(--line);margin:40px 0;font-size:15px;table-layout:fixed;background:var(--bg)}.prose thead{background:var(--ink);color:var(--bg)}.prose th{text-align:left;padding:15px 20px;font-family:var(--mono);font-size:13px;letter-spacing:.06em;font-weight:700}.prose td{padding:16px 20px;border-top:1px solid var(--line);border-right:1px solid var(--line);color:var(--ink);font-weight:500;line-height:1.7;vertical-align:middle}.prose td:last-child{border-right:0}.prose tbody tr:nth-child(2n) td{background:#00000005}.prose tbody td:first-child{font-weight:700}.prose hr{border:0;border-top:1px solid var(--line);margin:48px 0}.prose img{max-width:100%;height:auto;margin:28px 0;border:1px solid var(--line)}.article-end{margin-top:28px}.tags{display:flex;flex-wrap:wrap;gap:10px}.tags a{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--line-2);padding:7px 13px;transition:all .18s}.tags a:hover{border-color:var(--ink);color:var(--magenta)}.author-card{margin-top:36px;display:flex;gap:22px;padding:32px;background:var(--bg-2);border-left:3px solid var(--magenta)}.author-card .avatar{width:56px;height:56px;flex-shrink:0;background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-size:19px}.author-card .avatar-img{width:56px;height:56px;flex-shrink:0;object-fit:cover;border-radius:0}.author-card .name{font-family:var(--sans);font-weight:700;font-size:16px;color:var(--ink);margin-bottom:6px}.author-card .bio{font-family:var(--sans);font-size:14.5px;line-height:1.65;color:var(--ink-2);max-width:52ch}.related .eyebrow{margin-bottom:36px}.cmeta{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);display:flex;gap:9px;align-items:center}.cmeta .cat{color:var(--magenta);font-weight:600}.cmeta .sep{color:var(--line-2)}.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 32px}.post-card{display:flex;flex-direction:column}.post-card .cover{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--bg-3);aspect-ratio:16 / 10;transition:border-color .2s}.post-card:hover .cover{border-color:var(--ink)}.post-card .cover .ctag{position:absolute;top:14px;left:16px;z-index:2;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink-2)}.post-card .cover .glyph{position:absolute;right:-8px;bottom:-34px;z-index:1;font-family:var(--display);font-style:italic;font-weight:800;font-size:210px;line-height:.7;letter-spacing:-.05em;color:var(--ink);opacity:.08;user-select:none}.cover.is-notes{background:var(--bg-3)}.cover.is-echo{background:var(--magenta-3)}.cover.is-echo .ctag{color:var(--magenta-2)}.cover.is-echo .glyph{color:var(--magenta);opacity:.16}.cover.is-trans{background:var(--bg-2)}.cover.is-trans .glyph{color:var(--ink-3);opacity:.14}.cover.is-paper{background:var(--ink)}.cover.is-paper .ctag{color:#f4f1eabf}.cover.is-paper .glyph{color:var(--bg);opacity:.12}.cover.is-policy{background:var(--magenta-2)}.cover.is-policy .ctag{color:#ffffffe0}.cover.is-policy .glyph{color:#fff;opacity:.18}.card-body{padding-top:16px}.card-body .cmeta{margin-bottom:11px}.card-body .ctitle{font-family:var(--sans);font-weight:600;font-size:17px;line-height:1.42;letter-spacing:-.005em;color:var(--ink)}.post-card:hover .ctitle{color:var(--magenta)}.card-body .arrow{display:inline-block;margin-top:14px;font-family:var(--mono);font-size:15px;color:var(--magenta);transition:transform .18s}.post-card:hover .arrow{transform:translate(6px)}@media(max-width:920px){.rel-grid{grid-template-columns:1fr}}
