.post-wrap{max-width:780px; margin:0 auto; padding:52px 28px 64px;}
.post-wrap.wide{max-width:900px;}
.post-meta{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink-soft); margin-bottom:8px;}
.lede{color:var(--ink-soft); font-size:17px; max-width:640px;}
.post-body{font-size:17px; line-height:1.75; overflow-wrap:anywhere;}
.post-body h1,.post-body h2,.post-body h3,.post-body h4{margin:1.6em 0 .5em;}
.post-body h2{font-size:25px;} .post-body h3{font-size:20px;} .post-body h4{font-size:17px; font-family:'IBM Plex Sans',sans-serif; font-weight:600;}
.post-body p{margin:0 0 16px;}
.post-body ul,.post-body ol{margin:0 0 16px; padding-left:24px;}
.post-body li{margin-bottom:6px;}
.post-body a{word-break:break-word;}
.post-body code{font-family:'IBM Plex Mono',monospace; font-size:.88em; background:var(--paper-raised); padding:1px 5px; border-radius:4px;}
.post-body pre{background:var(--ink); color:#E9E6DC; padding:16px 18px; border-radius:8px; overflow-x:auto; font-size:13.5px; line-height:1.7; margin:0 0 18px;}
.post-body pre code{background:none; padding:0; font-size:inherit; color:inherit;}
.post-body blockquote{border-left:3px solid var(--accent); margin:0 0 16px; padding:2px 16px; color:var(--ink-soft);}
.post-body img{max-width:100%; height:auto; vertical-align:middle;}
.post-body hr{border:0; border-top:1px solid var(--line); margin:28px 0;}
.table-wrap{overflow-x:auto; margin:0 0 18px;}
.post-body table{border-collapse:collapse; width:100%; font-size:14.5px;}
.post-body th,.post-body td{border:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top;}
.post-body th{background:var(--paper-raised);}
.post-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:30px;}
.post-nav{display:flex; justify-content:space-between; gap:12px; margin-top:32px; padding-top:18px; border-top:1px solid var(--line); font-size:14.5px;}
.mirror-note{font-size:13.5px; color:var(--ink-soft); margin-top:26px;}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 10px;}
.chip{font:500 13px 'IBM Plex Sans',sans-serif; border:1px solid var(--line); background:var(--paper); color:var(--ink); padding:6px 12px; border-radius:999px; cursor:pointer;}
.chip:hover{border-color:var(--accent);}
.chip.active{background:var(--accent); border-color:var(--accent); color:#fff;}
.rel-row{display:grid; grid-template-columns:104px 1fr; gap:14px; padding:14px 0; border-top:1px solid var(--line);}
.rel-row:last-child{border-bottom:1px solid var(--line);}
.rel-date{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--ink-soft); padding-top:3px;}
.rel-ex{font-size:14.5px; color:var(--ink-soft); margin-top:2px;}
.tag-list{padding-left:20px; color:var(--ink-soft); font-size:14.5px;}
.post-row{padding:20px 0; border-top:1px solid var(--line);}
.post-row:last-of-type{border-bottom:1px solid var(--line);}
.post-row h3{font-size:19px; margin:0 0 4px;}
.post-row .meta{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--ink-soft); margin-bottom:6px;}
.post-row p{margin:0; color:var(--ink-soft); font-size:15px;}
.guide-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:14px;}
.guide-card{display:block; border:1px solid var(--line); border-radius:10px; padding:18px 20px; background:var(--paper-raised); text-decoration:none; color:var(--ink);}
.guide-card:hover{border-color:var(--accent);}
.guide-card h3{font-size:17px; margin:0 0 6px;}
.guide-card p{margin:0; font-size:14px; color:var(--ink-soft);}
@media (max-width:680px){.guide-grid{grid-template-columns:1fr;} .rel-row{grid-template-columns:1fr; gap:2px;} .post-wrap{padding-top:36px;}}
