.post-article{max-width:none;margin:48px 0;padding:0 24px 80px}.post-header{margin-bottom:36px}.post-header-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}.post-cat-link{font-family:var(--font-serif);font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);transition:opacity .15s}.post-cat-link:hover{opacity:.7;color:var(--accent)}.post-date{font-family:var(--font-serif);font-size:14px;color:var(--fg-mute);font-style:italic}.post-updated{font-family:var(--font-serif);font-size:13px;color:var(--fg-mute);font-style:italic}.post-title{font-family:var(--font-serif);margin:0 0 16px;font-size:34px;font-weight:700;line-height:1.25;letter-spacing:-.025em;color:var(--fg)}.post-byline{display:flex;align-items:center;gap:14px;font-family:var(--font-serif);font-size:14px;color:var(--fg-mute);margin-bottom:24px}.post-author-link{font-family:var(--font-serif);color:var(--fg-soft);font-weight:500;transition:color .15s}.post-author-link:hover{color:var(--accent)}.post-header-rule{height:1px;background:var(--border-strong)}.post-content{font-family:var(--font-serif);font-size:19px;line-height:1.75;color:var(--fg)}.post-content p{margin:0 0 1.4em}.post-content h2{font-family:var(--font-serif);margin:2.2em 0 .65em;font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--fg);line-height:1.3;padding-bottom:8px;border-bottom:1px solid var(--border)}.post-content h3{font-family:var(--font-serif);margin:1.8em 0 .55em;font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--fg);line-height:1.35}.post-content h4{font-family:var(--font-serif);margin:1.5em 0 .45em;font-size:17px;font-weight:700;color:var(--fg)}.post-content ul,.post-content ol{padding-left:1.6em;margin:.6em 0 1.4em}.post-content li{margin:.4em 0}.post-content blockquote{border-left:3px solid var(--accent);margin:1.8em 0;padding:12px 22px;color:var(--fg-soft);font-style:italic;background:var(--bg-soft)}.post-content code{font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.84em;background:var(--bg-code);color:var(--fg);padding:2px 6px;border-radius:3px;border:1px solid var(--border)}.post-content pre{background:var(--bg-code);border:1px solid var(--border);border-radius:4px;padding:18px 22px;overflow-x:auto;margin:1.4em 0;font-size:15px;line-height:1.65}.post-content pre code{background:none;border:none;padding:0;font-size:inherit}.post-content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.post-content a:hover{opacity:.8}.post-content strong{font-weight:700}.post-content em{font-style:italic}.post-content hr{border:none;border-top:1px solid var(--border);margin:2.5em 0}.post-content table{width:100%;border-collapse:collapse;font-family:var(--font-serif);font-size:16px;line-height:1.55;margin:2em 0}.post-content th{background:var(--bg-th);color:var(--fg);font-family:var(--font-serif);font-weight:700;font-size:13px;letter-spacing:.03em;text-align:left;padding:11px 14px;border:1px solid var(--border-strong)}.post-content td{padding:10px 14px;border:1px solid var(--border);vertical-align:top;color:var(--fg-soft);font-size:16px}.post-content tbody tr:nth-child(2n) td{background:var(--bg-zebra)}.post-content tbody tr:hover td{background:var(--bg-hover)}.post-tags{display:flex;flex-wrap:wrap;gap:7px;margin:36px 0 24px}.post-tags .tag{font-family:var(--font-serif);font-size:12px;font-weight:600;color:var(--fg-mute);border:1px solid var(--border);padding:4px 10px;border-radius:2px;letter-spacing:.02em}.post-source{font-family:var(--font-serif);font-size:13px;color:var(--fg-mute);margin:18px 0;font-style:italic}.post-source a{color:var(--fg-mute);text-decoration:underline}.post-share{display:flex;gap:8px;margin:32px 0;flex-wrap:wrap}.post-share button{background:none;border:1px solid var(--border-strong);padding:9px 18px;font-family:var(--font-serif);font-size:14px;font-weight:500;cursor:pointer;color:var(--fg-soft);transition:border-color .15s,color .15s}.post-share button:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:640px){.post-article{padding:0 16px 56px;margin-top:28px}.post-title{font-size:24px}.post-content{font-size:17px}.post-content h2{font-size:20px}.post-content h3{font-size:18px}.post-content .table-scroll-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:2em 0}.post-content .table-scroll-wrapper table{margin:0;min-width:480px;white-space:nowrap}}
