.blog-page{overflow-wrap:anywhere;line-height:1.7}.article-nav .logo-tile img{width:auto;height:24px;display:block}.article-nav .article-links{flex-direction:row;flex-basis:auto;order:0;align-items:center;gap:18px;margin-left:auto;padding:0;display:flex}.article-nav .article-links a{border:0;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.article-nav .article-links [aria-current]{color:var(--cyan);font-weight:600}.blog-footer a{align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.blog-page a:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.blog-main{max-width:1120px;margin:40px auto 80px;padding:0 24px}.blog-header{max-width:760px;margin:0 auto 40px}.blog-header h1{letter-spacing:-.035em;margin:12px 0 24px;font-size:clamp(2rem,5vw,3.4rem);font-weight:500;line-height:1.2}.blog-summary{color:var(--ink-2);font-size:1.15rem;line-height:1.7}.blog-meta{color:var(--ink-3);margin:12px 0;font-size:.8rem}.blog-layout{grid-template-columns:minmax(0,760px) 200px;grid-template-areas:"body toc";justify-content:center;gap:48px;display:grid}.blog-layout.no-toc{grid-template-columns:minmax(0,760px);grid-template-areas:"body"}.blog-toc{grid-area:toc;align-self:start;font-size:.9rem;position:sticky;top:24px}.blog-toc ol{padding-left:20px}.blog-toc li{margin:0}.blog-toc a{min-height:44px;color:var(--ink-2);padding-block:8px;text-decoration:none;display:block}.blog-body{grid-area:body;min-width:0;max-width:76ch;font-size:1rem}.blog-body p,.blog-body ul,.blog-body ol{margin:0 0 24px}.blog-body li{margin:8px 0}.blog-body ul,.blog-body ol{padding-left:24px}.blog-body h2{margin:48px 0 20px;scroll-margin-top:24px;font-size:1.8rem;font-weight:500;line-height:1.3}.blog-body h3{margin:32px 0 16px;scroll-margin-top:24px;font-size:1.3rem;line-height:1.4}.blog-in-short{border-left:3px solid var(--cyan);background:var(--surface-2);border-radius:0 8px 8px 0;margin:32px 0;padding:24px}.blog-in-short:first-child{margin-top:0}.blog-in-short>h2:first-child{margin-top:0;font-size:1.3rem}.blog-in-short>:last-child{margin-bottom:0}.blog-in-short li::marker{color:var(--cyan)}.blog-body a{color:var(--cyan);text-underline-offset:3px;text-decoration:underline}.blog-body img,.blog-cover{border-radius:8px;max-width:100%;height:auto;margin:24px 0;display:block}.blog-body blockquote{border-left:3px solid var(--cyan);color:var(--ink-2);background:var(--surface-2);margin:24px 0;padding:12px 24px}.blog-body blockquote p:last-child{margin-bottom:0}.blog-body pre{background:var(--surface-2);border:1px solid var(--line);font-family:var(--mono);white-space:pre;border-radius:8px;margin:24px 0;padding:20px;font-size:.875rem;line-height:1.7;overflow-x:auto}.blog-body code{font-family:var(--mono);background:var(--surface-2);padding:.1em .25em;font-size:.9em}.blog-body pre code{font-size:inherit;background:0 0;padding:0}.blog-table{margin:24px 0;overflow-x:auto}.blog-table table{border-collapse:collapse;width:100%;min-width:420px;font-size:.95rem}.blog-table th,.blog-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:12px}.blog-table th{background:var(--surface-2)}.blog-body hr{border:0;border-top:1px solid var(--line);margin:40px 0}.blog-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-start;gap:24px;padding-block:24px;font-size:.9rem;display:flex}.blog-skip{background:var(--surface);z-index:10;padding:12px;position:absolute;top:-100px;left:16px}.blog-skip:focus{top:8px}@media (width<=900px){.blog-layout{grid-template-columns:minmax(0,760px);grid-template-areas:"toc""body";gap:24px}.blog-toc{border-bottom:1px solid var(--line);padding-bottom:16px;position:static}.blog-main{margin-top:24px}.blog-header{margin-bottom:24px}}@media (width<=480px){.article-nav .wrap{gap:12px}.article-nav .article-links{flex-direction:row;flex-basis:auto;margin-left:auto;display:flex}.article-nav .article-links a{padding-block:8px}.blog-main{padding:0 16px}.blog-header h1{font-size:2rem}.blog-footer{gap:16px;padding:16px}.blog-body pre{padding:14px}.blog-table th,.blog-table td{padding:8px}}