.page-post .post-hero{padding:56px 0 40px}.page-post .post-byline{align-items:center;gap:12px;min-width:0;max-width:100%;margin-top:8px;display:flex}.page-post .post-byline-text{min-width:0;max-width:100%}.page-post .post-byline .av{background:linear-gradient(135deg, var(--teal), var(--ice));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:flex}.page-post .post-byline-name{color:var(--ink);font-size:15px;font-weight:600}.page-post .post-byline-name a{color:inherit;text-underline-offset:3px;text-decoration:underline}.page-post .post-byline-name a:hover{color:var(--teal)}.page-post .post-byline-name a:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.page-post .post-byline-meta{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;flex-wrap:wrap;align-items:baseline;min-width:0;max-width:100%;font-size:12px;display:flex}.page-post .post-byline-piece{min-width:0}.page-post .post-byline-sep{white-space:pre}.page-post .post-layout{width:100%;min-width:0;max-width:760px;margin:0 auto}.page-post .post-hero-img{aspect-ratio:16/8;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--rule);width:100%;height:auto;margin-bottom:40px}.page-post .post-content{color:var(--ink-2);min-width:0;max-width:100%;font-size:18px;line-height:1.75}.page-post .post-content>:first-child{margin-top:0}.page-post .post-content p{margin:0 0 24px}.page-post .post-content h2{color:var(--ink);letter-spacing:-.01em;margin:48px 0 16px;scroll-margin-top:80px;font-size:clamp(24px,3vw,30px);line-height:1.2}.page-post .post-content h3{color:var(--ink);margin:36px 0 12px;scroll-margin-top:80px;font-size:21px;line-height:1.3}.page-post .post-content .post-toc{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--surface);margin:8px 0 32px;padding:14px 16px 8px}.page-post .post-content .post-toc-label{color:var(--ink);letter-spacing:-.01em;margin:0 0 8px;font-size:14px;font-weight:700}.page-post .post-content .post-toc ol{margin:0;padding-left:1.25em}.page-post .post-content .post-toc li{margin:0 0 6px;font-size:15px;line-height:1.45}.page-post .post-content .post-toc a{overflow-wrap:anywhere}.page-post .post-content .post-toc a:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.page-post .post-content h4{color:var(--ink);text-transform:uppercase;letter-spacing:.06em;font-size:17px;font-family:var(--font-mono);margin:28px 0 10px}.page-post .post-content a{color:var(--teal);text-underline-offset:2px;text-decoration:underline}.page-post .post-content a:hover{color:var(--teal-deep)}.page-post .post-content ul,.page-post .post-content ol{margin:0 0 24px;padding-left:24px}.page-post .post-content li{margin:0 0 10px}.page-post .post-content strong{color:var(--ink);font-weight:700}.page-post .post-content blockquote{border-left:3px solid var(--teal);color:var(--ink);margin:32px 0;padding:8px 0 8px 24px;font-size:20px;font-style:italic}.page-post .post-content figure{margin:32px 0}.page-post .post-content img{border-radius:var(--radius-lg);border:1px solid var(--rule);width:100%;max-width:100%;height:auto}.page-post .post-content figcaption{color:var(--ink-2);text-align:center;margin-top:10px;font-size:13px;line-height:1.45}.page-post .post-content hr{border:none;border-top:1px solid var(--rule);margin:40px 0}.page-post .post-content pre{--code-bg:#fff;--code-label:#24292e;--code-border:#6e7781;border:1px solid var(--code-border);border-radius:var(--radius-sm);background:var(--code-bg);overscroll-behavior:contain;min-width:0;max-width:100%;max-height:600px;margin:0 0 24px;padding:0;position:relative;overflow:auto}.page-post .post-content pre:focus{outline:2px solid var(--teal);outline-offset:2px}.page-post .post-content pre code{width:max-content;min-width:100%;font-family:var(--font-mono);color:var(--code-label);white-space:pre;padding:4px 16px 14px;font-size:14px;line-height:1.6;display:block}.page-post .post-content pre code span{font-family:inherit;font-size:inherit;font-weight:inherit}.page-post .post-content pre:before{content:"Text";z-index:1;box-sizing:border-box;background:var(--code-bg);width:max-content;min-width:100%;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--code-label);padding:10px 16px 8px;font-size:11px;display:block;position:sticky;top:0;left:0}.page-post .post-content pre:has(>code[class~=language-java i]):before{content:"Java"}.page-post .post-content pre:has(>code[class~=language-javascript i]):before{content:"JavaScript"}.page-post .post-content pre:has(>code[class~=language-typescript i]):before{content:"TypeScript"}.page-post .post-content pre:has(>code[class~=language-python i]):before{content:"Python"}.page-post .post-content pre:has(>code[class~=language-sql i]):before{content:"SQL"}.page-post .post-content pre:has(>code[class~=language-bash i]):before{content:"Bash"}.page-post .post-content pre:has(>code[class~=language-json i]):before{content:"JSON"}.page-post .post-content pre:has(>code[class~=language-yaml i]):before{content:"YAML"}.page-post .post-content :not(pre)>code{font-family:var(--font-mono);background:var(--ice-wash);color:var(--ink);overflow-wrap:anywhere;border-radius:4px;padding:.12em .35em;font-size:.9em}.page-post .preview-banner{background:var(--ink);color:var(--bg);text-align:center;padding:10px 16px;font-size:14px;font-weight:600}.page-post .post-content .post-table{overscroll-behavior-x:contain;min-width:0;max-width:100%;margin:0 0 24px;overflow-x:auto}.page-post .post-content .post-table:focus{outline:2px solid var(--teal);outline-offset:2px}.page-post .post-content .post-table table{border-collapse:collapse;background:var(--surface);width:100%;color:var(--ink-2);font-size:inherit;line-height:1.5}.page-post .post-content .post-table th,.page-post .post-content .post-table td{border:1px solid var(--rule);white-space:normal;text-align:left;vertical-align:top;min-width:9rem;padding:10px 14px}.page-post .post-content .post-table th{color:var(--ink);background:var(--ice-wash);font-weight:700}.page-post .post-content .post-table tr:first-child>*{border-top:1px solid #6e7781}.page-post .post-content .post-table tr:last-child>*{border-bottom:1px solid #6e7781}.page-post .post-content .post-table tr>:first-child{border-left:1px solid #6e7781}.page-post .post-content .post-table tr>:last-child{border-right:1px solid #6e7781}.page-post .post-content .post-table tr:first-child:not(:has(>td))>th{border-bottom:1px solid #6e7781}.page-post .post-content .post-table caption{caption-side:top;text-align:left;color:var(--ink-2);padding:0 0 8px;font-size:13px;line-height:1.45}.page-post .post-content .post-table p{margin:0}.page-post .post-footer{border-top:1px solid var(--rule);margin-top:48px;padding-top:32px}
