.lb-entry--first{border-top:none}.blog-rss{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:4px;font-size:11px;text-decoration:none;display:inline-block}.blog-rss:hover{color:var(--vermilion)}.blog-list{margin:8px 0 0;padding:0;list-style:none}.blog-list__item{border-top:1px solid var(--rule-blue);padding:26px 0}.blog-list__item:last-child{border-bottom:1px solid var(--rule-blue)}.blog-list__date{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 6px;font-size:11px}.blog-list__link{color:var(--ink);text-decoration:none}.blog-list__link:hover .blog-list__title{color:var(--vermilion)}.blog-list__title{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 8px;font-size:25px;font-weight:600;line-height:1.22;transition:color .15s}.blog-list__excerpt{color:var(--ink-soft);max-width:40em;margin:0 0 12px}.blog-tags{flex-wrap:wrap;gap:8px;display:flex}.blog-tag{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-2);border:1px solid var(--rule-red);border-radius:2px;padding:2px 7px;font-size:10.5px}.blog-post__back{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:22px;font-size:12px;text-decoration:none;display:inline-block}.blog-post__back:hover{color:var(--vermilion)}.blog-post__meta{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 10px;font-size:11px}.blog-post__title{font-family:var(--serif);letter-spacing:-.015em;margin:0 0 16px;font-size:clamp(30px,4.6vw,46px);font-weight:600;line-height:1.14}.blog-post__excerpt{color:var(--ink-soft);border-bottom:1px solid var(--rule-blue);max-width:34em;margin:0 0 30px;padding-bottom:26px;font-size:20px;font-style:italic}.blog-article{max-width:42em;font-size:18px;line-height:1.62}.blog-article>*{margin:0 0 18px}.blog-article h2{font-family:var(--serif);letter-spacing:-.01em;margin:42px 0 12px;font-size:27px;font-weight:600}.blog-article h3{font-family:var(--serif);margin:30px 0 10px;font-size:21px;font-weight:600}.blog-article p{color:var(--ink-soft)}.blog-article a{color:var(--vermilion);text-underline-offset:2px;text-decoration:underline}.blog-article a:hover{color:var(--accent-bright)}.blog-article strong{color:var(--ink);font-weight:600}.blog-article ul,.blog-article ol{color:var(--ink-soft);padding-left:24px}.blog-article li{margin:6px 0}.blog-article blockquote{border-left:3px solid var(--rule-red);color:var(--ink-soft);margin:22px 0;padding:4px 20px;font-style:italic}.blog-article hr{border:none;border-top:1px solid var(--rule-blue);margin:34px 0}.blog-article :not(pre)>code{font-family:var(--mono);background:var(--vermilion-soft);color:var(--ink);border-radius:3px;padding:1px 5px;font-size:.86em}.blog-article pre{background:var(--paper-2);border:1px solid var(--rule-red);font-family:var(--mono);color:#3a3025;border-radius:4px;padding:16px 18px;font-size:13.5px;line-height:1.62;overflow-x:auto}.blog-article pre code{font-family:var(--mono);color:inherit;font-size:inherit;background:0 0;border:none;padding:0}.blog-article .token.comment,.blog-article .token.prolog,.blog-article .token.doctype,.blog-article .token.cdata{color:#8c7d64;font-style:italic}.blog-article .token.punctuation{color:#7a6f5c}.blog-article .token.keyword,.blog-article .token.boolean,.blog-article .token.control-flow,.blog-article .token.tag,.blog-article .token.selector{color:#c2410c}.blog-article .token.function,.blog-article .token.class-name,.blog-article .token.builtin,.blog-article .token.attr-name{color:#9a3412}.blog-article .token.string,.blog-article .token.char,.blog-article .token.attr-value,.blog-article .token.triple-quoted-string{color:#5f6f41}.blog-article .token.number,.blog-article .token.constant{color:#946b3a}.blog-article .token.operator,.blog-article .token.variable,.blog-article .token.property{color:#3a3025}.blog-article table{border-collapse:collapse;width:100%;margin:22px 0;font-size:15px}.blog-article th,.blog-article td{border:1px solid var(--rule-blue);text-align:left;vertical-align:top;padding:8px 12px}.blog-article th{background:var(--paper-2);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);font-size:12px}.blog-article td{color:var(--ink-soft)}.blog-mermaid{justify-content:center;margin:26px 0;display:flex}.blog-mermaid svg{max-width:100%;height:auto}.blog-mermaid--error{color:#9a3412}.blog-cardgrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:22px 0;display:grid}.blog-card{background:var(--paper-2);border:1px solid var(--rule-red);border-radius:4px;padding:16px 18px}.blog-card__title{font-family:var(--serif);color:var(--ink);margin:0 0 6px;font-size:18px;font-weight:600}.blog-card__body{color:var(--ink-soft);font-size:16px}.blog-card__body>:last-child{margin-bottom:0}.blog-tabs{border:1px solid var(--rule-red);border-radius:4px;margin:24px 0;overflow:hidden}.blog-tabs__bar{background:var(--paper-2);border-bottom:1px solid var(--rule-red);flex-wrap:wrap;gap:2px;display:flex}.blog-tabs__tab{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px;font-size:12px}.blog-tabs__tab:hover{color:var(--vermilion)}.blog-tabs__tab.is-active{color:var(--ink);border-bottom-color:var(--vermilion)}.blog-tabs__panel{padding:16px 18px}.blog-tabs__panel>:last-child{margin-bottom:0}.blog-aside{border-left:3px solid var(--vermilion);background:var(--paper-2);border-radius:4px;margin:24px 0;padding:14px 18px}.blog-aside--tip{border-left-color:#5f6f41}.blog-aside--caution{border-left-color:#b8860b}.blog-aside--danger{border-left-color:#9a3412}.blog-aside__title{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin:0 0 6px;font-size:11px}.blog-aside__body{color:var(--ink-soft)}.blog-aside__body>:last-child{margin-bottom:0}.blog-post__nav{border-top:1px solid var(--rule-blue);justify-content:space-between;gap:16px;margin-top:48px;padding-top:24px;display:flex}.blog-post__nav a{max-width:46%;color:var(--ink-soft);font-size:16px;text-decoration:none}.blog-post__nav a:hover{color:var(--vermilion)}.blog-post__nav .dir{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:3px;font-size:10.5px;display:block}.blog-post__nav .next{text-align:right;margin-left:auto}
