.jr-page{--jr-radius:var(--voco-r-lg,24px);--jr-radius-inner:var(--voco-r,16px);--jr-hairline:hsla(0,0%,4%,.06);--jr-prose-width:42rem}.jr-shell{width:100%;max-width:var(--voco-container,1240px);margin:0 auto;padding:clamp(2rem,5vw,3.5rem) var(--voco-gutter,1.25rem) clamp(4rem,8vw,6rem)}.jr-page .jr-meta{display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;letter-spacing:-.01em;color:var(--voco-ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.jr-page .jr-meta-strong{color:var(--voco-ink)}.jr-page .jr-tags{display:flex;flex-wrap:wrap;gap:.375rem}.jr-page .jr-tag{display:inline-flex;align-items:center;padding:.25rem .625rem;border:1px solid var(--voco-line-strong);border-radius:var(--voco-r-pill,999px);font-size:.75rem;line-height:1rem;font-weight:500;color:var(--voco-ink);text-decoration:none;background:transparent}a.jr-tag:hover{background:var(--voco-surface)}.jr-page .jr-cover{overflow:hidden;border:1px solid var(--jr-hairline);border-radius:var(--jr-radius-inner);aspect-ratio:400/265;background:var(--voco-bg)}.jr-page .jr-cover svg{display:block;width:100%;height:100%;transition:transform .5s var(--voco-ease,ease)}.jr-page .jr-btn{display:inline-flex;align-items:center;gap:.625rem;min-height:2.5rem;padding:.375rem 1rem .375rem .375rem;border-radius:.625rem;font-size:.875rem;font-weight:500;letter-spacing:-.01em;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .2s,border-color .2s,color .2s}[dir=rtl] .jr-page .jr-btn{padding:.375rem .375rem .375rem 1rem}.jr-page .jr-btn{text-decoration:none!important}.jr-page .jr-btn-primary{background:var(--voco-on-dark);color:var(--voco-accent-ink)!important}.jr-page .jr-btn-primary:hover{background:#fff}.jr-page .jr-btn-chip{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:.4rem;background:var(--voco-accent);color:var(--voco-accent-ink)}.jr-page .jr-btn-on-dark{padding-inline:1rem;color:var(--voco-on-dark)!important;border-color:var(--voco-line-dark-strong)}.jr-page .jr-btn-on-dark:hover{border-color:var(--voco-on-dark-2)}.jr-page .jr-btn-ghost{padding-inline:1.25rem;background:var(--voco-surface);color:var(--voco-ink)!important;border-color:var(--voco-line)}.jr-page .jr-btn-ghost:hover{border-color:var(--voco-line-strong)}.jr-progress{position:fixed;inset:0 0 auto 0;height:3px;background:var(--voco-accent);transform-origin:left;z-index:9999;pointer-events:none}[dir=rtl] .jr-progress{transform-origin:right}.jr-head{max-width:36rem;margin-bottom:2rem}.jr-page .jr-title{margin:0 0 .75rem;font-size:clamp(2.25rem,1.6rem + 2.4vw,3rem)!important;line-height:1.05!important;font-weight:500!important;letter-spacing:-.04em!important}.jr-page .jr-lead{margin:0;font-size:1.125rem;line-height:1.75rem;font-weight:500;letter-spacing:-.01em;color:var(--voco-ink-2)!important;text-wrap:pretty}.jr-toolbar{align-items:center;justify-content:space-between;gap:.75rem 1.5rem;margin-bottom:1.5rem}.jr-pills,.jr-toolbar{display:flex;flex-wrap:wrap}.jr-pills{gap:.375rem}.jr-page .jr-pill{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:1px solid var(--voco-line-strong);border-radius:var(--voco-r-pill,999px);background:transparent;color:var(--voco-ink);font-size:.8125rem;font-weight:500;line-height:1.25rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.jr-page .jr-pill:hover{background:var(--voco-surface)}.jr-page .jr-pill[aria-pressed=true]{background:var(--voco-fill);border-color:var(--voco-fill);color:var(--voco-on-dark)}.jr-pill-count{font-size:.6875rem;color:var(--voco-ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.jr-pill[aria-pressed=true] .jr-pill-count{color:var(--voco-on-dark-2)}.jr-search{display:inline-flex;align-items:center;gap:.5rem;width:min(100%,15rem);height:2.25rem;padding:0 .75rem;border:1px solid var(--voco-line-strong);border-radius:var(--voco-r-pill,999px);color:var(--voco-ink-2);background:transparent}.jr-search:focus-within{background:var(--voco-surface);border-color:var(--voco-ink)}
/* !important: globals.css styles every input as a filled, bordered field. */.jr-page .jr-search input{flex:1 1;min-width:0;height:auto!important;border:0!important;border-radius:0!important;outline:0;padding:0!important;background:transparent!important;color:var(--voco-ink);font-size:.875rem;box-shadow:none!important}.jr-page .jr-search button{display:inline-grid;place-items:center;padding:0;border:0;background:none;color:var(--voco-ink-2);cursor:pointer}.jr-page .jr-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:.75rem;gap:.75rem;padding:.75rem;background:var(--voco-surface);border:1px solid var(--jr-hairline);border-radius:var(--jr-radius);color:inherit;text-decoration:none}.jr-feature-body{display:flex;flex-direction:column;justify-content:center;gap:1rem;padding:1.5rem clamp(1rem,3vw,2.5rem)}.jr-page .jr-feature-title{margin:0;font-size:clamp(1.5rem,1.2rem + 1vw,1.875rem)!important;line-height:1.2!important;letter-spacing:-.025em!important;text-wrap:balance}.jr-page .jr-excerpt{margin:0;font-size:1rem;line-height:1.5rem;font-weight:500;letter-spacing:-.01em;color:var(--voco-ink-2)!important}.jr-page .jr-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.jr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem;margin-top:1rem}.jr-page .jr-card{display:flex;flex-direction:column;padding:.75rem;background:var(--voco-surface);border:1px solid var(--jr-hairline);border-radius:var(--jr-radius);color:inherit;text-decoration:none}.jr-card-body{display:flex;flex:1 1;flex-direction:column;gap:.75rem;padding:1.25rem .75rem .75rem}.jr-page .jr-card-title{margin:0;font-size:1.25rem!important;line-height:1.75rem!important;letter-spacing:-.02em!important;text-wrap:balance}.jr-page .jr-card-meta{margin-top:auto;padding-top:.5rem;font-size:.8125rem}.jr-page :is(.jr-card,.jr-feature):hover .jr-cover svg{transform:scale(1.02)}.jr-page :is(.jr-card,.jr-feature):focus-visible{outline:2px solid var(--voco-ink);outline-offset:3px}.jr-more{display:flex;justify-content:center;margin-top:2.5rem}.jr-empty{padding:4rem 0;text-align:center;color:var(--voco-ink-2)}.jr-page .breadcrumbs,.jr-page nav[aria-label*=readcrumb]{margin-bottom:1.5rem}.jr-article-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;grid-gap:clamp(2rem,5vw,4rem);gap:clamp(2rem,5vw,4rem);padding-bottom:clamp(3rem,6vw,5rem)}.jr-article-intro{display:flex;flex-direction:column;gap:1rem}.jr-page .jr-article-title{margin:0;font-size:clamp(2rem,1.4rem + 2.2vw,3rem)!important;line-height:1.08!important;letter-spacing:-.04em!important;text-wrap:balance}.jr-article-cover{border-radius:var(--jr-radius);overflow:hidden;border:1px solid var(--jr-hairline);aspect-ratio:400/265}.jr-article-cover svg{display:block;width:100%;height:100%}.jr-byline{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.jr-avatar{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:999px;background:var(--voco-fill);color:var(--voco-accent);font-size:.875rem;font-weight:600}.jr-byline-text{display:flex;flex-direction:column;font-size:.8125rem;line-height:1.15rem;color:var(--voco-ink-2)}.jr-byline-text strong,.jr-page .jr-share{color:var(--voco-ink);font-weight:500}.jr-page .jr-share{display:inline-flex;align-items:center;gap:.375rem;-webkit-margin-start:auto;margin-inline-start:auto;padding:.375rem .75rem;border:1px solid var(--voco-line-strong);border-radius:var(--voco-r-pill,999px);background:transparent;font-size:.75rem;cursor:pointer}.jr-page .jr-share:hover{background:var(--voco-surface)}.jr-article-layout{display:grid;grid-template-columns:14rem minmax(0,var(--jr-prose-width));grid-gap:clamp(2rem,6vw,6rem);gap:clamp(2rem,6vw,6rem);justify-content:start}.jr-toc-col{position:relative}.jr-toc{position:-webkit-sticky;position:sticky;top:6rem;max-height:calc(100vh - 8rem);overflow:auto}.jr-toc details>summary{list-style:none}.jr-toc details>summary::-webkit-details-marker{display:none}.jr-toc-title{margin-bottom:.75rem;font-size:.875rem;font-weight:500;color:var(--voco-ink);cursor:default}.jr-toc ol{margin:0;padding:0;list-style:none;-webkit-border-start:1px solid var(--voco-line-strong);border-inline-start:1px solid var(--voco-line-strong)}.jr-page .jr-toc a{display:block;-webkit-margin-start:-1px;margin-inline-start:-1px;padding:.375rem 0 .375rem .875rem;-webkit-border-start:2px solid transparent;border-inline-start:2px solid transparent;font-size:.8125rem;line-height:1.15rem;color:var(--voco-ink-2);text-decoration:none}[dir=rtl] .jr-page .jr-toc a{padding:.375rem .875rem .375rem 0}.jr-page .jr-toc a:hover{color:var(--voco-ink)}.jr-page .jr-toc a[aria-current]{color:var(--voco-ink);border-inline-start-color:var(--voco-ink)}.jr-prose{min-width:0}.jr-section{scroll-margin-top:6rem}.jr-section+.jr-section{margin-top:3rem}.jr-page .jr-prose h2{margin:0 0 1rem;font-size:clamp(1.5rem,1.25rem + .8vw,1.875rem)!important;line-height:1.25!important;letter-spacing:-.025em!important;text-wrap:balance}.jr-page .jr-prose h3{margin:2rem 0 .75rem;font-size:1.25rem!important;line-height:1.4!important;letter-spacing:-.02em!important}.jr-page .jr-prose h4{margin:1.5rem 0 .5rem;font-size:1.0625rem;font-weight:500;color:var(--voco-ink)}.jr-page .jr-prose :is(p,li){font-size:1.0625rem;line-height:1.8rem;font-weight:450;letter-spacing:-.005em;color:var(--voco-prose)!important}.jr-page .jr-prose p{margin:0 0 1.25rem}.jr-page .jr-prose :is(ul,ol){margin:0 0 1.5rem;-webkit-padding-start:1.25rem;padding-inline-start:1.25rem}.jr-page .jr-prose li{margin-bottom:.5rem;-webkit-padding-start:.25rem;padding-inline-start:.25rem}.jr-page .jr-prose ul li::marker{color:var(--voco-ink-3)}.jr-page .jr-prose ol li::marker{color:var(--voco-ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.jr-page .jr-prose strong{color:var(--voco-ink);font-weight:600}.jr-page .jr-prose a:not(.jr-btn){color:var(--voco-ink)!important;text-decoration:underline;-webkit-text-decoration-color:var(--voco-accent-line);text-decoration-color:var(--voco-accent-line);text-decoration-thickness:2px;text-underline-offset:3px}.jr-page .jr-prose a:not(.jr-btn):hover{-webkit-text-decoration-color:var(--voco-ink);text-decoration-color:var(--voco-ink)}.jr-page .jr-prose :not(pre)>code{font-family:var(--font-mono);font-size:.875em;padding:.1em .375em;border:1px solid var(--voco-line);border-radius:6px;background:var(--voco-surface);color:var(--voco-ink)}.jr-page .jr-prose blockquote{margin:1.75rem 0;padding:1.25rem 1.5rem;border:0;-webkit-border-start:3px solid var(--voco-accent);border-inline-start:3px solid var(--voco-accent);border-radius:0 var(--jr-radius-inner) var(--jr-radius-inner) 0;background:var(--voco-surface);font-size:1rem;line-height:1.7rem;color:var(--voco-ink)}[dir=rtl] .jr-page .jr-prose blockquote{border-radius:var(--jr-radius-inner) 0 0 var(--jr-radius-inner)}.jr-page .jr-prose .blog-table-wrap{margin:1.75rem 0;overflow-x:auto;border:1px solid var(--jr-hairline);border-radius:var(--jr-radius-inner);background:var(--voco-surface)}.jr-page .jr-prose table{width:100%;border-collapse:collapse;font-size:.9375rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.jr-page .jr-prose th{text-align:start;font-weight:500;color:var(--voco-ink);background:var(--voco-bg);white-space:nowrap}.jr-page .jr-prose td,.jr-page .jr-prose th{padding:.75rem 1rem;border-bottom:1px solid var(--voco-line)}.jr-page .jr-prose td{color:var(--voco-prose);vertical-align:top}.jr-page .jr-prose tr:last-child td{border-bottom:0}.jr-page .jr-prose .blog-code-block{margin:1.75rem 0;border-radius:var(--jr-radius-inner);overflow:hidden}.jr-figure{margin:2.5rem 0;padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;background:var(--voco-surface);border:1px solid var(--jr-hairline);border-radius:var(--jr-radius)}.jr-figure :is(svg,img){display:block;max-width:100%;height:auto;border-radius:var(--jr-radius-inner)}.jr-figure-narrow>div{width:100%;max-width:22rem}.jr-figure figcaption{font-size:.8125rem;color:var(--voco-ink-2)}.jr-embed{margin:2rem 0}.jr-page .jr-embed div[style*=monospace]{white-space:pre;overflow-x:auto;line-height:1.6;font-family:var(--font-mono)!important;font-size:.8125rem!important;background:var(--voco-dark)!important;border-radius:var(--jr-radius-inner)!important}.jr-page .jr-embed div[style*=monospace] span{font-family:inherit!important}.jr-faq{margin-top:4rem}.jr-faq details{border-top:1px solid var(--voco-line-strong)}.jr-faq details:last-of-type{border-bottom:1px solid var(--voco-line-strong)}.jr-faq summary{display:flex;justify-content:space-between;gap:1rem;padding:1.125rem 0;font-size:1.0625rem;font-weight:500;letter-spacing:-.015em;color:var(--voco-ink);cursor:pointer;list-style:none}.jr-faq summary::-webkit-details-marker{display:none}.jr-faq summary:after{content:"+";flex:none;font-weight:400;color:var(--voco-ink-2)}.jr-faq details[open] summary:after{content:"−"}.jr-page .jr-faq details p{margin:0 0 1.25rem}.jr-cta{margin-top:4rem;padding:clamp(1.5rem,4vw,2.5rem);border-radius:var(--jr-radius);background:var(--voco-dark);background-image:linear-gradient(hsla(0,0%,100%,.035) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.035) 1px,transparent 0);background-size:20px 20px;color:var(--voco-on-dark)}.jr-page .jr-cta h2{margin:0 0 1.75rem;color:var(--voco-on-dark)!important;font-size:clamp(1.375rem,1.2rem + .6vw,1.75rem)!important}.jr-cta ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1.25rem;gap:1.25rem;margin:0 0 2rem;padding:0;list-style:none}.jr-cta li{display:flex;flex-direction:column;gap:.5rem}.jr-page .jr-cta li strong{color:var(--voco-on-dark);font-size:.9375rem;font-weight:500}.jr-page .jr-cta li span:not(.jr-cta-icon){color:var(--voco-on-dark-2)!important;font-size:.875rem;line-height:1.35rem}.jr-cta-icon{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:.4rem;background:var(--voco-accent);color:var(--voco-accent-ink)}.jr-cta-actions{display:flex;flex-wrap:wrap;gap:.75rem}.jr-related{margin-top:clamp(4rem,8vw,6rem);padding-top:3rem;border-top:1px solid var(--voco-line-strong)}.jr-page .jr-related>h2{margin:0 0 .5rem;font-size:1.875rem!important;letter-spacing:-.03em!important}@media (max-width:1024px){.jr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jr-article-layout{grid-template-columns:minmax(0,1fr)}.jr-toc{position:static;max-height:none;padding:1rem 1.25rem;background:var(--voco-surface);border:1px solid var(--jr-hairline);border-radius:var(--jr-radius-inner)}.jr-toc-title{margin:0;cursor:pointer}.jr-toc details[open] .jr-toc-title{margin-bottom:.75rem}}@media (max-width:760px){.jr-article-head,.jr-page .jr-feature{grid-template-columns:minmax(0,1fr)}.jr-pills{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(-1 * var(--voco-gutter, 1rem));padding-inline:var(--voco-gutter,1rem);scrollbar-width:none}.jr-pills::-webkit-scrollbar{display:none}.jr-page .jr-pill{flex:none}.jr-feature-body{padding:.75rem .5rem .5rem}.jr-article-cover{order:-1}.jr-cta ul,.jr-grid{grid-template-columns:minmax(0,1fr)}.jr-search{width:100%}}[dir=rtl].jr-page :is(h1,h2,h3,h4,p,li,span){letter-spacing:0!important}@media (prefers-reduced-motion:reduce){.jr-page .jr-cover svg{transition:none}.jr-page :is(.jr-card,.jr-feature):hover .jr-cover svg{transform:none}}