.blog-page{--blog-hairline:var(--site-api-border);--blog-surface:var(--site-api-panel);--blog-bar:var(--site-api-bar);--blog-link-rule:var(--site-chrome-border)}@keyframes blog-rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.blog-page .blog-rise{animation:blog-rise-in .5s var(--ease-out-strong) backwards}.blog-page .blog-rise-2{animation-delay:60ms}@media (prefers-reduced-motion:reduce){.blog-page .blog-rise{animation:none}}.blog-page .blog-link,.blog-page .blog-prose a{color:var(--site-chrome-text);text-decoration-line:underline;-webkit-text-decoration-color:var(--blog-link-rule);text-decoration-color:var(--blog-link-rule);text-underline-offset:4px;transition:text-decoration-color .12s var(--ease-out-strong);text-decoration-thickness:1px}.blog-page .blog-link:hover,.blog-page .blog-prose a:hover{-webkit-text-decoration-color:var(--site-chrome-text);text-decoration-color:var(--site-chrome-text)}.blog-page .blog-link:focus-visible,.blog-page .blog-prose a:focus-visible{outline:2px solid var(--site-chrome-text);outline-offset:2px;box-shadow:none}.blog-page .blog-prose p{color:var(--site-chrome-body);text-wrap:pretty;margin:0 0 20px;font-size:18px;line-height:1.65}.blog-page .blog-prose h2{font-family:var(--font-editorial-old);letter-spacing:-.5px;color:var(--site-chrome-text);text-wrap:balance;scroll-margin-top:calc(var(--sticky-offset,0px) + 2rem);border:0;margin:48px 0 16px;padding:0;font-size:28px;font-weight:400;line-height:1.2}.blog-page .blog-section-anchor{scroll-margin-top:calc(var(--sticky-offset,0px) + 2rem)}.blog-page .blog-prose h3{font-family:var(--font-editorial-old);letter-spacing:-.3px;color:var(--site-chrome-text);scroll-margin-top:calc(var(--sticky-offset,0px) + 2rem);margin:36px 0 12px;font-size:22px;font-weight:400;line-height:1.25}.blog-page .blog-prose table{border-radius:0}.blog-page .blog-prose th{font-size:13px}.blog-page .blog-prose td{color:var(--site-chrome-body-muted);font-size:14px}.blog-page .blog-prose li{color:var(--site-chrome-body);font-size:18px;line-height:1.6}.blog-page .blog-prose strong{color:var(--site-chrome-text);font-weight:500}.blog-page .blog-code{border:1px solid var(--blog-hairline);background:var(--blog-surface);margin:32px 0}.blog-page .blog-code-bar{border-bottom:1px solid var(--blog-hairline);background:var(--blog-bar);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:0 8px 0 16px;display:flex}.blog-page .blog-code-label{color:var(--site-chrome-muted);font-size:13px}.blog-page .blog-code-copy{border:1px solid var(--site-chrome-border);height:30px;color:var(--site-chrome-body);font:inherit;cursor:pointer;transition:color .12s var(--ease-out-strong), border-color .12s var(--ease-out-strong), background-color .12s var(--ease-out-strong);background:0 0;border-radius:0;padding:0 10px;font-size:13px}.blog-page .blog-code-copy:hover{color:var(--site-chrome-text);border-color:var(--site-chrome-muted);background:var(--site-api-well)}.blog-page .blog-code-copy:active{transform:scale(.98)}.blog-page .blog-code-copy:focus-visible{outline:2px solid var(--site-chrome-text);outline-offset:2px}.blog-page .blog-code pre{max-height:480px;font-family:var(--font-site-mono);color:var(--site-api-code);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:16px;font-size:13px;line-height:1.6;overflow:auto}.blog-page .blog-button{border:1px solid var(--site-chrome-border);min-height:36px;font:inherit;white-space:nowrap;color:var(--site-chrome-text);transition:opacity .12s var(--ease-out-strong);background:0 0;border-radius:0;justify-content:center;align-items:center;padding:6px 16px;font-size:14px;display:inline-flex}.blog-page .blog-button-filled{background:var(--site-chrome-text);color:var(--site-chrome-canvas);border-color:var(--site-chrome-text)}.blog-page .blog-button:hover{opacity:.8}.blog-page .blog-button:focus-visible{outline:2px solid var(--site-chrome-text);outline-offset:2px}.blog-page .blog-icon-button{border:1px solid var(--site-chrome-border);width:36px;height:36px;color:var(--site-chrome-body);transition:color .12s var(--ease-out-strong), border-color .12s var(--ease-out-strong), background-color .12s var(--ease-out-strong);justify-content:center;align-items:center;display:inline-flex}.blog-page .blog-icon-button:hover{color:var(--site-chrome-text);border-color:var(--site-chrome-muted);background:var(--blog-surface)}.blog-page .blog-icon-button:active{transform:scale(.98)}
