.has-hero .uc-hero{margin-top:calc(-1 * var(--header-h))}.site-shell:has(>main.has-hero) .site-header[data-state=top] .header-inner{border-color:#0000}.uc-hero{border-bottom:1px solid var(--line);align-items:flex-end;min-height:clamp(30rem,56vw,44rem);display:flex;position:relative;overflow:hidden}.uc-hero-cover{object-fit:cover;object-position:center 45%;width:100%;height:100%;position:absolute;inset:0}.uc-hero-shade{background:linear-gradient(to top, var(--ink) 0%, #090b0db8 30%, #090b0d1a 62%, #090b0d8c 100%);pointer-events:none;position:absolute;inset:0}.uc-hero-copy{z-index:1;width:100%;max-width:calc(58rem + 2 * max(1.5rem, calc((100vw - var(--max)) / 2 + 1.5rem)));padding-top:calc(var(--header-h) + 2rem);padding-bottom:3rem;position:relative}.uc-hero-copy .eyebrow{margin-bottom:1.375rem}.uc-hero-copy h1{font:600 var(--display-md)/1.04 "Fira Sans", sans-serif;letter-spacing:-.025em;text-shadow:0 2px 24px #090b0d99;margin:0 0 1.25rem}.uc-hero-copy .article-lede{color:#d5d9dc;max-width:46rem}.uc-hero--plain{min-height:0}.uc-hero--plain:after{display:none}.uc-columns{grid-template-columns:16rem minmax(0,47.5rem);align-items:start;gap:3rem;padding-top:3.5rem;display:grid}.uc-columns .article-body{margin-top:0}.uc-rail{top:calc(var(--header-h) + 1rem);flex-direction:column;gap:2rem;display:flex;position:sticky}.uc-back a{color:var(--paper);font:600 var(--text-xs) "Fira Code", monospace;letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.875rem;text-decoration:none;display:inline-flex}.uc-back-rule{background:currentColor;flex:none;width:2.25rem;height:1px;transition:width .3s cubic-bezier(.2,.8,.2,1);position:relative}.uc-back-rule:before{content:"";transform-origin:50%;border-bottom:1px solid;border-left:1px solid;width:.5rem;height:.5rem;position:absolute;top:50%;left:0;transform:translateY(-50%)rotate(45deg)}.uc-back a:focus-visible{outline:2px solid var(--paper);outline-offset:4px}@media (hover:hover){.uc-back a:hover .uc-back-rule{width:3.5rem}}@media (prefers-reduced-motion:reduce){.uc-back-rule{transition:none}}.uc-rail-label,.uc-toc summary{color:var(--muted);font:600 var(--text-2xs) "Fira Code", monospace;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .75rem}.uc-toc summary{cursor:default;list-style:none}.uc-toc summary::-webkit-details-marker{display:none}.uc-toc nav{border-left:1px solid var(--line);flex-direction:column;display:flex}.uc-toc a{color:#979ea4;font-size:var(--text-sm);border-left:1px solid #0000;margin-left:-1px;padding:.5rem 0 .5rem 1rem;line-height:1.35;text-decoration:none;transition:color .15s,border-color .15s}.uc-toc a.is-sub{font-size:var(--text-xs);padding-left:1.75rem}.uc-toc a[aria-current]{color:var(--paper);border-left-color:var(--acid)}@media (hover:hover){.uc-toc a:hover{color:var(--paper)}}.uc-meta{flex-direction:column;gap:1.5rem;display:flex}.uc-meta p{color:var(--muted);font:500 var(--text-xs) "Fira Code", monospace;letter-spacing:.06em;text-transform:uppercase;margin:0}.uc-tags{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.uc-tags li{border:1px solid var(--line);color:var(--paper);font:500 var(--text-xs) "Fira Code", monospace;border-radius:.1875rem;padding:.3125rem .5625rem}.uc-share>div{flex-wrap:wrap;gap:.625rem;display:flex}.uc-share a,.uc-share button{border:1px solid var(--line);color:#979ea4;cursor:pointer;background:0 0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;padding:0;transition:color .15s,border-color .15s;display:inline-flex;position:relative}.uc-share a:focus-visible,.uc-share button:focus-visible{border-color:var(--acid);color:var(--paper);outline:none}@media (hover:hover){.uc-share a:hover,.uc-share button:hover{color:var(--paper);border-color:#5a616a}}.uc-share button[data-state=copied]{color:var(--ink);background:var(--acid);border-color:var(--acid)}.uc-share-toast{background:var(--paper);color:var(--ink);font:600 var(--text-2xs) "Fira Code", monospace;letter-spacing:.06em;white-space:nowrap;padding:.25rem .5rem;position:absolute;bottom:calc(100% + .5rem);left:0}.uc-share-toast:empty{display:none}.article-demo{scroll-margin-top:calc(var(--header-h) + 1rem)}.uc-next{max-width:68.75rem;margin-top:var(--block-gap);border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--paper);grid-template-columns:1fr 21rem;align-items:center;gap:2.5rem;padding:2rem 0;text-decoration:none;display:grid;position:relative}.uc-next-label{color:var(--muted);font:500 var(--text-xs) "Fira Code", monospace;letter-spacing:.08em;margin:0}.uc-next-label span{color:var(--acid);font-weight:600}.uc-next h2{font:600 var(--text-xl)/1.15 "Fira Sans", sans-serif;letter-spacing:-.02em;margin:.75rem 0 .5rem;transition:color .15s}.uc-next h2 a{color:inherit;text-decoration:none}.uc-next h2 a:after{content:"";z-index:1;position:absolute;inset:0}.uc-next:focus-within h2{color:var(--acid)}.uc-next>div>p:last-child{color:#b8bcc0;margin:0}.uc-next-cover{aspect-ratio:3/2;border:1px solid var(--line);overflow:hidden}.uc-next-cover img{object-fit:cover;object-position:center 45%;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.8,.2,1);display:block}@media (hover:hover){.uc-next:hover h2{color:var(--acid)}.uc-next:hover .uc-next-cover img{transform:scale(1.04)}}.article-body .media-frame{margin:1.6em 0;position:relative}.article-body .media-frame>video,.article-body .media-frame>iframe{margin:0}.article-body figure img{cursor:zoom-in}.media-expand{min-width:2.75rem;min-height:2.75rem;color:var(--paper);font:600 var(--text-2xs) "Fira Code", monospace;letter-spacing:.06em;cursor:pointer;opacity:1;background:#090b0d9e;border:1px solid #ebe9e180;justify-content:center;align-items:center;gap:.5rem;padding:0 .75rem;transition:opacity .15s;display:inline-flex;position:absolute;top:.75rem;right:.75rem}.media-expand span{display:none}.media-frame--iframe .media-expand{top:auto;bottom:.75rem;right:.75rem}.media-frame--iframe .media-expand span{display:inline}@media (hover:hover){.media-expand{opacity:.55}.media-frame:hover .media-expand,.media-expand:focus-visible{opacity:1}}[data-expanded]{visibility:hidden}.lightbox{z-index:60;position:fixed;inset:0}.lightbox-backdrop{opacity:0;background:#090b0ddb;transition:opacity .3s;position:absolute;inset:0}.lightbox[data-kind=video] .lightbox-backdrop,.lightbox[data-kind=iframe] .lightbox-backdrop{background:#000}.lightbox.is-open .lightbox-backdrop{opacity:1}.lightbox-stage{will-change:transform;background:#000;position:fixed;overflow:hidden}.lightbox-stage>*{border:0;width:100%;height:100%;margin:0;display:block}.lightbox-stage>img{object-fit:contain}.lightbox[data-kind=image] .lightbox-stage{background:0 0}.lightbox-close{z-index:2;width:2.75rem;height:2.75rem;color:var(--paper);cursor:pointer;opacity:0;background:#090b0d9e;border:1px solid #ebe9e180;justify-content:center;align-items:center;padding:0;font:400 1.5rem/1 Fira Sans,sans-serif;transition:opacity .3s .1s;display:inline-flex;position:absolute;top:1rem;right:1rem}.lightbox.is-open .lightbox-close{opacity:1}.lightbox-close:focus-visible{outline:2px solid var(--acid);outline-offset:2px}.lightbox-bar{z-index:1;border-bottom:1px solid var(--line);background:var(--ink);height:56px;color:var(--paper);font:500 var(--text-xs) "Fira Code", monospace;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;opacity:0;align-items:center;padding:0 4.5rem 0 1.5rem;transition:opacity .3s .1s;display:flex;position:absolute;top:0;left:0;right:0;overflow:hidden}.lightbox.is-open .lightbox-bar{opacity:1}@media (width<=760px){.lightbox[data-kind=image] .lightbox-backdrop{background:#000}}@media (prefers-reduced-motion:reduce){.lightbox-stage{transition:none!important}.lightbox-backdrop,.lightbox-close,.lightbox-bar{transition-duration:.15s}}@media (width<=1100px){.uc-columns{grid-template-columns:minmax(0,1fr);gap:0;padding-top:0;display:grid}.uc-rail{display:contents}.uc-back{order:0;padding-top:1.5rem}.uc-toc{border-bottom:1px solid var(--line);order:1;padding:1rem 0}.uc-toc summary{margin:0 .75rem 0 0}.uc-toc[open]{white-space:nowrap;scrollbar-width:none;align-items:center;gap:.5rem;display:flex;overflow-x:auto}.uc-toc[open]::-webkit-scrollbar{display:none}.uc-toc nav{border-left:0;flex-direction:row;gap:.5rem}.uc-toc a,.uc-toc a.is-sub{border:1px solid var(--line);font-size:var(--text-sm);margin:0;padding:.5rem .75rem}.uc-toc a[aria-current]{border-color:var(--acid)}.uc-meta{border-bottom:1px solid var(--line);flex-flow:wrap;order:0;justify-content:space-between;align-items:center;gap:1rem 2rem;padding:1.25rem 0}.uc-meta .uc-rail-label{display:none}.uc-meta>div:has(.uc-tags){order:2}.uc-columns .article-body{margin-top:var(--block-gap);order:2;max-width:none}.uc-share{order:3;align-items:center;gap:1rem;margin-top:2rem;display:flex}.uc-share .uc-rail-label{margin:0}.uc-hero{min-height:clamp(28rem,72vw,38rem)}.uc-next{grid-template-columns:1fr 17rem}}@media (width<=760px){.uc-hero{min-height:clamp(30rem,150vw,42rem)}.uc-hero-shade{background:linear-gradient(to top, var(--ink) 0%, #090b0dcc 34%, #090b0d26 64%, #090b0d80 100%)}.uc-hero-copy{padding-bottom:2rem}.uc-hero-copy h1{text-shadow:none;font-size:2.375rem}.uc-meta{flex-direction:column;align-items:flex-start;gap:.875rem}.uc-toc[open]{white-space:normal;display:block;overflow:visible}.uc-toc summary{min-height:3.25rem;color:var(--paper);cursor:pointer;pointer-events:auto;justify-content:space-between;align-items:center;margin:0;display:flex}.uc-toc summary:after{content:"";border-right:1px solid var(--muted);border-bottom:1px solid var(--muted);width:.5rem;height:.5rem;transition:transform .2s;transform:rotate(45deg)}.uc-toc[open] summary:after{transform:rotate(-135deg)}.uc-toc{padding:0}.uc-toc nav{border-left:1px solid var(--line);flex-direction:column;gap:0;margin:0 0 1.25rem}.uc-toc a,.uc-toc a.is-sub{border:0;border-left:1px solid #0000;margin-left:-1px;padding:.5rem 0 .5rem 1rem}.uc-toc a.is-sub{padding-left:1.75rem}.uc-toc a[aria-current]{border-left-color:var(--acid)}.uc-columns .article-body{margin-top:2.5rem;padding:1.75rem 1.125rem}.uc-next{grid-template-columns:1fr;gap:1rem}.uc-next-cover{order:-1}.lightbox-close{top:.75rem;right:.75rem}.lightbox-bar{padding-left:1.125rem}}
