.blog-page{background:var(--color-surface-subtle)}.blog-kicker{color:var(--pub-primary-on-dark);letter-spacing:.13em;text-transform:uppercase;font-size:11px;font-weight:800}.blog-article-hero{color:var(--pub-on-dark);background:linear-gradient(115deg, #0e0f22eb 14%, #0e0f228c 58%, #0e0f223d), url(/design/night-veil.webp) right top / cover no-repeat, var(--color-night);position:relative;overflow:hidden}.blog-article-hero:after{content:"";background:linear-gradient(90deg,#0000,#977effad,#0000);height:1px;position:absolute;bottom:0;left:0;right:0}.blog-article-hero__glow{opacity:.22;filter:blur(110px);background:#5c53ed;border-radius:50%;width:620px;height:620px;position:absolute;top:-280px;right:8%}.blog-article-hero__inner{z-index:1;padding-top:46px;padding-bottom:72px;position:relative}.blog-article-hero .public-content-breadcrumbs{margin-bottom:44px}.blog-article-hero h1{max-width:900px;font-size:var(--pub-type-h1);letter-spacing:var(--pub-tracking-display);text-wrap:balance;margin:18px 0 20px;line-height:1.08}.blog-article-hero__inner>p{max-width:760px;color:var(--pub-on-dark-muted);margin:0;font-size:clamp(17px,1.5vw,20px);line-height:1.65}.blog-article-meta{color:var(--pub-on-dark-faint);flex-wrap:wrap;align-items:center;gap:8px;margin-top:28px;font-size:13px;display:flex}.blog-article-meta a{color:var(--pub-on-dark-muted);text-underline-offset:3px;font-weight:700}.blog-article-grid{grid-template-columns:minmax(180px,220px) minmax(0,780px);justify-content:center;gap:clamp(44px,7vw,100px);padding-top:72px;padding-bottom:92px;display:grid}.blog-toc nav{border-top:2px solid var(--color-text);padding-top:4px;position:sticky;top:24px}.blog-toc strong{color:var(--color-text);margin:16px 0 14px;font-size:13px;display:block}.blog-toc ol{margin:0;padding:0;list-style:none}.blog-toc li{border-bottom:1px solid var(--color-line)}.blog-toc a{color:var(--color-text-soft);padding:11px 0;font-size:13px;line-height:1.45;text-decoration:none;display:block}.blog-toc a:hover,.blog-toc a:focus-visible{color:var(--color-brand-strong)}.blog-prose{min-width:0;color:var(--color-text-strong);font-size:17px;line-height:1.82}.blog-prose>:first-child{margin-top:0}.blog-prose .blog-lead{color:var(--color-text-strong);font-size:20px;line-height:1.7}.blog-prose h2,.blog-prose h3{color:var(--color-text);text-wrap:balance;scroll-margin-top:28px}.blog-prose h2{font-size:var(--pub-type-h2);letter-spacing:var(--pub-tracking-heading);margin:64px 0 18px;line-height:1.18}.blog-prose h3{font-size:var(--pub-type-h3);letter-spacing:var(--pub-tracking-title);margin:36px 0 12px;line-height:1.3}.blog-prose p{margin:0 0 22px}.blog-prose pre{background:var(--purple-50);border:1px solid var(--purple-200);border-radius:var(--radius-md);max-width:100%;margin:24px 0;padding:18px;font-size:14px;line-height:1.65;overflow-x:auto}.blog-prose pre:focus-visible{outline:3px solid var(--pub-focus-ring);outline-offset:3px}.blog-prose ul,.blog-prose ol{margin:0 0 28px;padding-left:24px}.blog-prose li{margin-bottom:10px;padding-left:6px}.blog-howto{counter-reset:blog-howto;list-style:none;padding-left:0!important}.blog-howto li{background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--pub-radius-control);counter-increment:blog-howto;min-height:52px;padding:14px 18px 14px 66px;scroll-margin-top:28px;position:relative}.blog-howto li:before{content:counter(blog-howto);width:34px;height:34px;color:var(--pub-on-dark);background:var(--color-brand-strong);border-radius:50%;place-items:center;font-size:13px;font-weight:800;line-height:1;display:grid;position:absolute;top:12px;left:14px}.blog-prose a{color:var(--color-brand-strong);text-underline-offset:3px;overflow-wrap:anywhere;text-decoration-thickness:1px}.blog-prose blockquote,.blog-callout,.blog-example,.blog-source-note{background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);margin:34px 0;padding:24px 26px}.blog-prose blockquote{padding-left:58px;font-style:italic;position:relative}.blog-prose blockquote:before{content:"«";color:var(--color-brand);font-size:32px;font-style:normal;font-weight:800;line-height:1;position:absolute;top:16px;left:22px}.blog-prose blockquote p:last-child,.blog-callout p:last-child,.blog-example p:last-child,.blog-source-note p:last-child,.blog-source-note ul:last-child{margin-bottom:0}.blog-callout strong:first-child,.blog-example strong:first-child{color:var(--color-text);margin-bottom:8px;display:block}.blog-source-note{background:var(--color-surface-muted);border-color:#0000;margin-top:70px}.blog-source-note h2{margin-top:0;font-size:24px}.blog-screenshot{background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);margin:34px 0;overflow:hidden;box-shadow:0 16px 40px #1814431a}.blog-screenshot img{width:100%;height:auto;display:block}.blog-screenshot figcaption{color:var(--color-text-soft);border-top:1px solid var(--color-line);padding:13px 16px 15px;font-size:13px;line-height:1.55}.blog-table-wrap{background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);max-width:100%;margin:32px 0;overflow-x:auto}.blog-prose table{border-collapse:collapse;width:100%;min-width:620px;font-size:14px;line-height:1.55}.blog-prose th,.blog-prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--color-line);padding:14px 16px}.blog-prose th{color:var(--color-text-strong);letter-spacing:.06em;text-transform:uppercase;background:var(--color-surface-subtle);font-size:12px}.blog-prose caption{color:var(--color-text-strong);text-align:left;caption-side:top;padding:15px 16px;font-weight:750}.blog-prose tr:last-child td{border-bottom:0}.blog-related{background:var(--color-surface);border-top:1px solid var(--color-line);padding:82px 0}.blog-section-heading>span{color:var(--color-brand-strong);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:800}.blog-section-heading h2{color:var(--color-text);font-size:var(--pub-type-h2);letter-spacing:var(--pub-tracking-heading);margin:10px 0 34px;line-height:1.14}.blog-related__list{border-top:1px solid var(--color-line-strong)}.blog-related__list article{border-bottom:1px solid var(--color-line-strong);grid-template-columns:160px minmax(0,1fr) minmax(220px,.8fr) auto;align-items:start;gap:24px;padding:28px 0;display:grid}.blog-related__list article>div{color:var(--color-text-faint);flex-direction:column;gap:5px;font-size:13px;display:flex}.blog-related__list article>div span{color:var(--color-brand-strong);font-weight:750}.blog-related__list h3,.blog-related__list p{margin:0}.blog-related__list h3{font-size:var(--pub-type-h3);letter-spacing:var(--pub-tracking-title);line-height:1.35}.blog-related__list h3 a{color:var(--color-text);text-decoration:none}.blog-related__list p{color:var(--color-text-soft);font-size:14px;line-height:1.6}.blog-text-link{color:var(--color-brand-strong);white-space:nowrap;font-size:14px;font-weight:750;text-decoration:none}.blog-article-cta{background:var(--color-surface)}.blog-index-intro{border-bottom:1px solid var(--color-line-strong);grid-template-columns:minmax(0,1.25fr) minmax(220px,.55fr);align-items:end;gap:28px;padding:0 0 28px;display:grid}.blog-index-intro h2{max-width:780px;margin:0}.blog-index-intro p{color:var(--color-text-soft);margin:0;font-size:15px;line-height:1.65}.blog-featured{border-bottom:1px solid var(--color-line-strong);grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(36px,6vw,84px);padding:32px 0 40px;display:grid}.blog-featured__number{min-height:200px;color:var(--pub-on-dark-faint);background:var(--color-night-raised);border-radius:var(--radius-lg);align-items:flex-end;padding:26px;font-size:13px;display:flex}.blog-featured__number strong{color:var(--pub-primary-on-dark);letter-spacing:var(--pub-tracking-display);margin-left:auto;font-size:clamp(64px,9vw,112px);line-height:.7}.blog-featured__content{align-self:center}.blog-index-meta{color:var(--color-text-faint);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.blog-index-meta span:first-child{color:var(--color-brand-strong);font-weight:750}.blog-featured h2{font-size:var(--pub-type-h2);letter-spacing:var(--pub-tracking-heading);margin:16px 0 14px;line-height:1.14}.blog-featured h2 a,.blog-index-list h2 a{color:var(--color-text);text-decoration:none}.blog-featured p{color:var(--color-text-soft);margin:0 0 22px;font-size:16px;line-height:1.7}.blog-index-list{margin-bottom:28px}[data-blog-catalog] [hidden]{display:none!important}.blog-catalog-controls{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;align-items:end;gap:16px;padding:20px 0 0;display:grid}.blog-catalog-controls label{min-width:0;color:var(--color-text-strong);gap:8px;font-size:13px;font-weight:650;display:grid}.blog-catalog-controls input,.blog-catalog-controls select,.blog-catalog-controls button{min-width:0;height:var(--control-height-lg);color:var(--color-text);font:inherit;background-color:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--pub-radius-control);padding:0 16px;font-size:15px;font-weight:400;line-height:1.2;transition:border-color .16s,box-shadow .16s}.blog-catalog-controls input,.blog-catalog-controls select{width:100%}.blog-catalog-controls input::placeholder{color:var(--color-text-faint)}.blog-catalog-controls select{cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2364677d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;background-size:12px 8px;padding-right:42px}.blog-catalog-controls input:hover,.blog-catalog-controls select:hover{border-color:var(--purple-200)}.blog-catalog-controls input:focus,.blog-catalog-controls select:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 3px #6d4aff29}.blog-catalog-controls button{color:var(--color-text-strong);cursor:pointer;padding:0 18px;font-weight:650}.blog-catalog-controls button:hover{color:var(--color-brand-strong);border-color:var(--purple-200)}.blog-catalog-controls :is(input,select,button):focus-visible,.blog-pagination a:focus-visible,.blog-table-wrap:focus-visible{outline:3px solid var(--pub-focus-ring);outline-offset:3px}.blog-catalog-controls output,.blog-catalog-note{color:var(--color-text-soft);grid-column:1/-1;font-size:13px}.blog-pagination{grid-template-columns:minmax(0,1fr) minmax(0,auto) minmax(0,1fr);align-items:center;gap:12px;padding:8px 0 28px;display:grid}.blog-pagination__pages{flex-wrap:wrap;justify-content:center;gap:6px;min-width:0;display:flex}.blog-pagination__previous,.blog-pagination__page,.blog-pagination__next{min-width:44px;max-width:100%;min-height:44px;color:var(--color-text-strong);text-align:center;overflow-wrap:anywhere;background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--pub-radius-control);justify-content:center;align-items:center;padding:10px 14px;font-size:14px;font-weight:700;line-height:1.4;text-decoration:none;display:inline-flex}.blog-pagination__previous{justify-self:start}.blog-pagination__next{justify-self:end}.blog-pagination__page{flex:0 0 44px;padding:10px 0}.blog-pagination a:not([aria-current=page]):hover{color:var(--color-brand-strong);background:var(--color-brand-soft);border-color:var(--purple-200)}.blog-pagination__page[aria-current=page]{color:var(--pub-on-dark);background:var(--color-brand-strong);border-color:var(--color-brand-strong)}.blog-pagination [aria-disabled=true]{color:var(--color-text-faint);background:var(--color-surface-muted);border-color:var(--color-line)}.blog-pagination__ellipsis{min-width:16px;min-height:44px;color:var(--color-text-soft);justify-content:center;align-items:center;font-size:14px;display:inline-flex}.blog-prose>section>h2:first-child{margin-top:58px}.blog-prose>section:first-child>h2:first-child{margin-top:0}.blog-prose :is(p,li,th,td){overflow-wrap:anywhere}.blog-example p{white-space:pre-line}.blog-index-list>article{border-bottom:1px solid var(--color-line-strong);grid-template-columns:150px minmax(0,.95fr) minmax(260px,1fr) auto;align-items:start;gap:28px;padding:32px 0;display:grid}.blog-index-list h2,.blog-index-list p{margin:0}.blog-index-list h2{letter-spacing:var(--pub-tracking-title);font-size:22px;line-height:1.3}.blog-index-list p{color:var(--color-text-soft);font-size:14px;line-height:1.7}.blog-wordstat-note{color:var(--color-text-soft);background:var(--color-surface-muted);border-radius:var(--radius-md);gap:14px;margin:42px 0 0;padding:20px 22px;font-size:14px;line-height:1.65;display:flex}.blog-wordstat-note strong{color:var(--color-text);flex:none}.blog-wordstat-note p{margin:0}.blog-wordstat-note a{color:var(--color-brand-strong)}@media (width<=920px){.blog-article-grid{grid-template-columns:1fr;gap:38px}.blog-toc nav{columns:2;column-gap:30px;position:static}.blog-toc strong{column-span:all}.blog-related__list article,.blog-index-list>article{grid-template-columns:130px minmax(0,1fr)}.blog-related__list p,.blog-related__list .blog-text-link,.blog-index-list>article>p,.blog-index-list>article>.blog-text-link{grid-column:2}}@media (width<=600px){.blog-pagination{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 8px}.blog-pagination__pages{grid-area:1/1/auto/-1;gap:2px}.blog-pagination__previous{grid-area:2/1}.blog-pagination__next{grid-area:2/2}}@media (width<=680px){.blog-catalog-controls{grid-template-columns:minmax(0,1fr)}.blog-article-hero__inner{padding-top:30px;padding-bottom:54px}.blog-article-hero .public-content-breadcrumbs{margin-bottom:30px}.blog-article-grid{padding-top:46px;padding-bottom:62px}.blog-toc nav{columns:1}.blog-prose{font-size:16px;line-height:1.75}.blog-prose h2{margin-top:48px}.blog-prose blockquote,.blog-callout,.blog-example,.blog-source-note{margin-left:-4px;margin-right:-4px;padding:20px}.blog-related{padding:58px 0}.blog-related__list article,.blog-index-list>article{grid-template-columns:1fr;gap:12px}.blog-related__list p,.blog-related__list .blog-text-link,.blog-index-list>article>p,.blog-index-list>article>.blog-text-link{grid-column:1}.blog-index-intro,.blog-featured{grid-template-columns:1fr}.blog-featured{gap:24px}.blog-featured__number{min-height:150px}.blog-index-list h2{font-size:20px}.blog-wordstat-note{flex-direction:column}}
