.bs-blog{--bs-blog-measure:68ch;--bs-blog-toc:15rem;--bs-blog-anchor-top:calc(var(--bs-h-touch) + var(--bs-s5))}.bs-blog-head{text-align:center;padding-block:3rem 1rem}.bs-blog-head__title{font-size:var(--bs-mk-fs-display);font-weight:var(--bs-fw-semibold);line-height:var(--bs-mk-lh-display);letter-spacing:var(--bs-mk-tr-display);margin:var(--bs-s4) auto 0;text-wrap:balance;max-width:34rem}.bs-blog-head__lede{font-size:var(--bs-mk-fs-lede);line-height:var(--bs-mk-lh-lede);color:var(--bs-ink-2);margin:var(--bs-s4) auto 0;text-wrap:pretty;max-width:36rem}@media (min-width:40rem){.bs-blog-head{padding-block:4.5rem 1.5rem}}.bs-blog-feed{font-family:var(--bs-font-mono);font-size:var(--bs-mk-fs-micro);letter-spacing:var(--bs-mk-tr-micro);text-transform:uppercase;margin:var(--bs-s4) 0 0}.bs-blog-feed__link{color:var(--bs-ink-4);text-decoration:none}.bs-blog-feed__link:hover{color:var(--bs-brandtext);text-underline-offset:.2em;text-decoration:underline}.bs-blog-filters{justify-content:center;gap:var(--bs-s2);margin-top:var(--bs-s6);flex-wrap:wrap;display:flex}.bs-blog-filter[aria-pressed=true]{background:var(--bs-rail-bg);border-color:var(--bs-rail-bg);color:var(--bs-rail-ink)}.bs-blog-filter[aria-pressed=true]:hover{background:var(--bs-rail-sel);border-color:var(--bs-rail-sel)}.bs-blog-filter__count{font-family:var(--bs-font-mono);font-size:var(--bs-mk-fs-micro);color:var(--bs-ink-4)}.bs-blog-filter[aria-pressed=true] .bs-blog-filter__count{color:var(--bs-rail-muted)}.bs-blog-pill[data-variant=default]{background:var(--bs-rail-bg);border-color:var(--bs-rail-bg);color:var(--bs-rail-ink)}.bs-blog-pill[data-variant=default]:hover{background:var(--bs-rail-sel);border-color:var(--bs-rail-sel)}.bs-blog-pill[data-variant=default]:active{background:var(--bs-rail-line);border-color:var(--bs-rail-line)}.bs-blog-cta__actions{gap:var(--bs-s3);flex-wrap:wrap;display:flex}.bs-blog-read{align-items:center;gap:var(--bs-s2);font-size:var(--bs-mk-fs-body);font-weight:var(--bs-fw-medium);color:var(--bs-ink-2);text-decoration:none;display:inline-flex}.bs-blog-read:hover{color:var(--bs-ink)}.bs-blog-read__arrow{transition:transform var(--bs-dur-2) var(--bs-ease)}.bs-blog-read:hover .bs-blog-read__arrow{transform:translate(.2rem)}.bs-blog-shot{border:1px solid var(--bs-line);border-radius:var(--bs-r-container);background:var(--bs-cloud);display:block;overflow:hidden}.bs-blog-shot .bs-blog-cover{width:100%;height:100%;display:block}.bs-blog-cover__canvas{fill:var(--bs-cloud)}.bs-blog-cover__rule{stroke:var(--bs-line);stroke-width:1px}.bs-blog-cover__trace{fill:none;stroke:var(--bs-ink-5);stroke-width:2.5px;stroke-linejoin:round}.bs-blog-cover__node{fill:var(--bs-brandtext)}.bs-blog-cover__mark{stroke:var(--bs-signal);stroke-width:4px}.bs-blog-cover__rule--fine{stroke-opacity:.45}.bs-blog-cover__ring,.bs-blog-cover__tooth{fill:none;stroke:var(--bs-line-strong);stroke-width:2px}.bs-blog-cover__row,.bs-blog-cover__bar{fill:var(--bs-surface);stroke:var(--bs-line-strong);stroke-width:1px}.bs-blog-cover__cell{fill:var(--bs-ink-5)}.bs-blog-cover__kicker{font-family:var(--bs-font-mono);font-weight:var(--bs-fw-medium);letter-spacing:-.01em;fill:var(--bs-ink)}.bs-blog-cover__label{font-family:var(--bs-font-mono);letter-spacing:.02em;fill:var(--bs-ink-3);font-size:1.0625rem}.bs-blog-featured{gap:var(--bs-s5);margin-top:var(--bs-s6);padding:var(--bs-s5);border:1px solid var(--bs-line);border-radius:var(--bs-r-container);background:var(--bs-surface);box-shadow:var(--bs-e-overlay);grid-template-columns:minmax(0,1fr);display:grid}.bs-blog-featured__cover{aspect-ratio:16/10}.bs-blog-featured__body{flex-direction:column;align-items:flex-start;display:flex}.bs-blog-featured__title{font-size:var(--bs-mk-fs-h2-s);font-weight:var(--bs-fw-semibold);line-height:var(--bs-mk-lh-h);letter-spacing:var(--bs-mk-tr-h3);margin:var(--bs-s3) 0 0;text-wrap:balance;max-width:30rem}.bs-blog-titlelink{color:inherit;text-decoration:none}.bs-blog-titlelink:hover{color:var(--bs-brandtext)}.bs-blog-featured__body .bs-blog-p{-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;max-width:32rem;display:-webkit-box;overflow:hidden}.bs-blog-featured__actions{align-items:center;gap:var(--bs-s4);margin-top:var(--bs-s5);flex-wrap:wrap;display:flex}@media (min-width:48rem){.bs-blog-featured{gap:var(--bs-s7);padding:var(--bs-s6);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center}.bs-blog-featured__cover{aspect-ratio:4/3}.bs-blog-featured__actions{margin-top:var(--bs-s6)}}.bs-blog-rows{margin:var(--bs-s8) 0 0;border-top:1px solid var(--bs-line);padding:0;list-style:none}.bs-blog-row{gap:var(--bs-s4);padding-block:var(--bs-s5);border-bottom:1px solid var(--bs-line);grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.bs-blog-row__thumb{aspect-ratio:1;border-radius:var(--bs-r-notice);width:4.5rem;transition:border-color var(--bs-dur-2) var(--bs-ease)}.bs-blog-row:hover .bs-blog-row__thumb{border-color:var(--bs-line-strong)}.bs-blog-row__title{font-size:var(--bs-mk-fs-h2-s);font-weight:var(--bs-fw-semibold);line-height:var(--bs-mk-lh-h);letter-spacing:var(--bs-mk-tr-h3);margin:var(--bs-s2) 0 0;text-wrap:balance;max-width:34rem}.bs-blog-p.bs-blog-row__excerpt{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-width:42rem;display:-webkit-box;overflow:hidden}.bs-blog-row__act{grid-column:2;align-items:center;display:flex}@media (min-width:48rem){.bs-blog-row{gap:var(--bs-s5);padding-block:var(--bs-s6);grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.bs-blog-row__thumb{width:6.5rem}.bs-blog-row__act{padding-left:var(--bs-s5);grid-column:3;justify-content:flex-end}}.bs-blog-meta{font-family:var(--bs-font-mono);font-size:var(--bs-mk-fs-micro);letter-spacing:var(--bs-mk-tr-micro);text-transform:uppercase;color:var(--bs-ink-4);margin:0}.bs-blog-p{font-size:var(--bs-mk-fs-lede);line-height:var(--bs-mk-lh-lede);color:var(--bs-ink-2);margin:var(--bs-s4) 0 0;max-width:var(--bs-blog-measure);text-wrap:pretty}.bs-blog-p:first-child{margin-top:0}.bs-blog-empty{margin-top:var(--bs-s7);padding:var(--bs-s8) var(--bs-s5);border:1px solid var(--bs-line);border-radius:var(--bs-r-container);background:var(--bs-surface-2);text-align:center}.bs-blog-empty__title{font-size:var(--bs-mk-fs-h2-s);font-weight:var(--bs-fw-semibold);letter-spacing:var(--bs-mk-tr-h3);text-wrap:balance;margin:0}.bs-blog-empty .bs-blog-p{max-width:34rem;margin-inline:auto}.bs-blog-empty__actions{justify-content:center;gap:var(--bs-s3);margin-top:var(--bs-s5);flex-wrap:wrap;display:flex}.bs-blog-crumbs{font-family:var(--bs-font-mono);font-size:var(--bs-mk-fs-micro);letter-spacing:var(--bs-mk-tr-micro);text-transform:uppercase;color:var(--bs-ink-4)}.bs-blog-crumbs ol{align-items:center;gap:var(--bs-s2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.bs-blog-crumbs__link{color:var(--bs-ink-3);text-decoration:none}.bs-blog-crumbs__link:hover{color:var(--bs-brandtext)}.bs-blog-crumbs__sep{color:var(--bs-ink-5)}.bs-blog-post__head{padding-block:2.5rem 0}.bs-blog-post__title{font-size:var(--bs-mk-fs-h1);font-weight:var(--bs-fw-semibold);line-height:var(--bs-mk-lh-h1);letter-spacing:var(--bs-mk-tr-h1);margin:var(--bs-s3) 0 0;text-wrap:balance;max-width:42rem}.bs-blog-post__meta{margin-top:var(--bs-s4)}.bs-blog-post__hero{aspect-ratio:16/9;margin-top:var(--bs-s7)}@media (min-width:40rem){.bs-blog-post__head{padding-block:3.5rem 0}.bs-blog-post__hero{aspect-ratio:27/8}}.bs-blog-answer{margin-top:var(--bs-s7);padding:var(--bs-s1) 0 var(--bs-s1) var(--bs-s5);border-left:3px solid var(--bs-signal);max-width:52rem}.bs-blog-answer__text{font-size:var(--bs-mk-fs-h3);line-height:var(--bs-mk-lh-h3);color:var(--bs-ink);margin:var(--bs-s2) 0 0;text-wrap:pretty}.bs-blog-layout{gap:var(--bs-s6);margin-top:var(--bs-s8);grid-template-columns:minmax(0,1fr);display:grid}.bs-blog-prose{max-width:var(--bs-blog-measure)}.bs-blog-h2{font-size:var(--bs-mk-fs-h2);font-weight:var(--bs-fw-semibold);line-height:var(--bs-mk-lh-h);letter-spacing:var(--bs-mk-tr-h2);margin:var(--bs-s9) 0 0;max-width:var(--bs-blog-measure);scroll-margin-top:var(--bs-blog-anchor-top);text-wrap:balance}.bs-blog-h3{font-size:var(--bs-mk-fs-h2-s);font-weight:var(--bs-fw-semibold);line-height:var(--bs-mk-lh-h);letter-spacing:var(--bs-mk-tr-h3);margin:var(--bs-s7) 0 0;max-width:var(--bs-blog-measure);scroll-margin-top:var(--bs-blog-anchor-top);text-wrap:balance}.bs-blog-ul,.bs-blog-ol{gap:var(--bs-s2);margin:var(--bs-s4) 0 0;padding-left:var(--bs-s5);font-size:var(--bs-mk-fs-lede);line-height:var(--bs-mk-lh-lede);color:var(--bs-ink-2);max-width:var(--bs-blog-measure);flex-direction:column;display:flex}.bs-blog-ul li::marker{color:var(--bs-ink-4)}.bs-blog-ol li::marker{color:var(--bs-ink-4)}.bs-blog-callout{margin:var(--bs-s5) 0 0;padding:var(--bs-s4) var(--bs-s5);border-left:3px solid var(--bs-line-strong);background:var(--bs-surface-2);font-size:var(--bs-mk-fs-lede);line-height:var(--bs-mk-lh-lede);color:var(--bs-ink-2);max-width:var(--bs-blog-measure)}.bs-blog-callout strong{color:var(--bs-ink)}.bs-blog-tablewrap{margin-top:var(--bs-s5);border-block:1px solid var(--bs-line);max-width:var(--bs-blog-measure);overflow-x:auto}.bs-blog-table{border-collapse:collapse;width:100%;min-width:30rem;font-size:var(--bs-mk-fs-body);line-height:var(--bs-mk-lh-body)}.bs-blog-table th{padding:var(--bs-s3) var(--bs-s4);border-bottom:1px solid var(--bs-line);background:var(--bs-surface-2);font-family:var(--bs-font-mono);font-size:var(--bs-mk-fs-micro);font-weight:var(--bs-fw-semibold);letter-spacing:var(--bs-mk-tr-micro);text-transform:uppercase;color:var(--bs-ink-3);text-align:left;white-space:nowrap}.bs-blog-table td{padding:var(--bs-s3) var(--bs-s4);border-bottom:1px solid var(--bs-line);color:var(--bs-ink-2);vertical-align:top}.bs-blog-table tr:last-child td{border-bottom:0}.bs-blog-table td:first-child{color:var(--bs-ink);font-weight:var(--bs-fw-medium)}.bs-blog-toc{margin-top:var(--bs-s2);padding:var(--bs-s4);border:1px solid var(--bs-line);border-radius:var(--bs-r-panel);background:var(--bs-surface-2)}.bs-blog-toc__label{justify-content:space-between;align-items:center;gap:var(--bs-s3);cursor:pointer;font-family:var(--bs-font-mono);font-size:var(--bs-mk-fs-micro);letter-spacing:var(--bs-mk-tr-micro);text-transform:uppercase;color:var(--bs-ink-3);list-style:none;display:flex}.bs-blog-toc__label::-webkit-details-marker{display:none}.bs-blog-toc__label:after{content:"+";color:var(--bs-ink-4)}.bs-blog-toc[open] .bs-blog-toc__label:after{content:"–"}.bs-blog-toc__list{gap:var(--bs-s2);margin:var(--bs-s4) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.bs-blog-toc__link{font-size:var(--bs-mk-fs-body);color:var(--bs-ink-2);line-height:1.45;text-decoration:none}.bs-blog-toc__link:hover{color:var(--bs-brandtext)}.bs-blog-faq{margin-top:var(--bs-s9);max-width:var(--bs-blog-measure)}.bs-blog-faq__item{border-bottom:1px solid var(--bs-line)}.bs-blog-faq__item:first-of-type{border-top:1px solid var(--bs-line)}.bs-blog-faq__q{justify-content:space-between;align-items:baseline;gap:var(--bs-s4);padding-block:var(--bs-s4);cursor:pointer;font-size:var(--bs-mk-fs-h3);font-weight:var(--bs-fw-semibold);letter-spacing:var(--bs-mk-tr-h3);color:var(--bs-ink);list-style:none;display:flex}.bs-blog-faq__q::-webkit-details-marker{display:none}.bs-blog-faq__q:after{content:"+";font-family:var(--bs-font-mono);font-size:var(--bs-mk-fs-body);font-weight:var(--bs-fw-regular);color:var(--bs-ink-4);flex:none}.bs-blog-faq__item[open] .bs-blog-faq__q:after{content:"–"}.bs-blog-faq__a{max-width:var(--bs-blog-measure);padding-bottom:var(--bs-s5)}.bs-blog-sources{margin-top:var(--bs-s9);padding-top:var(--bs-s5);border-top:1px solid var(--bs-line);max-width:var(--bs-blog-measure)}.bs-blog-sources ol{gap:var(--bs-s3);margin:var(--bs-s4) 0 0;padding-left:var(--bs-s5);font-size:var(--bs-mk-fs-body);line-height:var(--bs-mk-lh-body);flex-direction:column;display:flex}.bs-blog-sources a{color:var(--bs-ink-2);text-decoration:underline;-webkit-text-decoration-color:var(--bs-line-strong);text-decoration-color:var(--bs-line-strong);text-underline-offset:.2em;overflow-wrap:anywhere}.bs-blog-sources a:hover{color:var(--bs-brandtext);text-decoration-color:currentColor}.bs-blog-sources__url{font-family:var(--bs-font-mono);font-size:var(--bs-mk-fs-micro);color:var(--bs-ink-4);overflow-wrap:anywhere;display:block}.bs-blog-cards{gap:var(--bs-s6);margin-top:var(--bs-s7);grid-template-columns:minmax(0,1fr);display:grid}.bs-blog-card{color:inherit;flex-direction:column;text-decoration:none;display:flex}.bs-blog-card__cover{aspect-ratio:16/10}.bs-blog-card__title{font-size:var(--bs-mk-fs-h3);font-weight:var(--bs-fw-semibold);line-height:var(--bs-mk-lh-h3);letter-spacing:var(--bs-mk-tr-h3);margin:var(--bs-s4) 0 0;text-wrap:balance}.bs-blog-card:hover .bs-blog-card__title{color:var(--bs-brandtext)}.bs-blog-card__meta{margin-top:var(--bs-s2)}@media (min-width:48rem){.bs-blog-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}.bs-blog-prose a,.bs-blog-answer a{color:var(--bs-ink);text-decoration:underline;-webkit-text-decoration-color:var(--bs-line-strong);text-decoration-color:var(--bs-line-strong);text-underline-offset:.2em}.bs-blog-prose a:hover,.bs-blog-answer a:hover{color:var(--bs-brandtext);text-decoration-color:currentColor}.bs-blog-prose code{font-family:var(--bs-font-mono);border:1px solid var(--bs-line);background:var(--bs-surface-2);color:var(--bs-ink);padding:.1em .3em;font-size:.9em}.bs-blog a:focus-visible,.bs-blog button:focus-visible,.bs-blog summary:focus-visible,.bs-blog .bs-blog-tablewrap:focus-visible{outline:2px solid var(--bs-focus);outline-offset:2px}@media (max-width:47.99rem){.bs-blog-read,.bs-blog-toc__link,.bs-blog-crumbs__link,.bs-blog-feed__link{align-items:center;min-height:40px;display:inline-flex}}@media (min-width:68.75rem){.bs-blog-layout{grid-template-columns:var(--bs-blog-toc) minmax(0, 1fr);gap:var(--bs-s9);align-items:start}.bs-blog-toc{top:var(--bs-blog-anchor-top);max-height:calc(100dvh - var(--bs-blog-anchor-top) - var(--bs-s9));margin-top:0;position:sticky;overflow-y:auto}.bs-blog-layout>:only-child{grid-column:1/-1}.bs-blog-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.bs-blog *,.bs-blog :before,.bs-blog :after{transition:none!important;animation:none!important}}
