.topic .expressive-code{margin-block:2.25rem 2.5rem}.topic .expressive-code .frame pre{border-style:solid;border-width:1px 0;border-color:var(--rule-strong);background:var(--plane);border-radius:0}.topic .expressive-code .frame.has-title:not(.is-terminal) .header,.topic .expressive-code .frame.is-terminal .header,.topic .expressive-code .frame.has-repo .header{min-height:2rem;color:var(--ink);background:0 0;border:0;border-radius:0;justify-content:flex-start;align-items:center;margin-bottom:.25rem;padding:0;display:flex}.topic .expressive-code .frame .header:before,.topic .expressive-code .frame .header:after,.topic .expressive-code .frame .title:after{display:none}.topic .expressive-code .frame.has-title:not(.is-terminal) .title,.topic .expressive-code .frame.is-terminal .title{color:var(--ink);font-family:var(--f-mono);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:0;min-width:0;padding:0;font-size:.8125rem;overflow:hidden}.topic .expressive-code .frame.has-title pre{border-top:1px solid var(--rule-strong)}.topic .expressive-code .copy button{opacity:.85;background:0 0;width:2rem;height:2rem}.topic .expressive-code .copy button:hover,.topic .expressive-code .copy button:focus-visible{opacity:1}.topic .expressive-code .copy button:before{border:0}.topic .expressive-code :is(.frame.has-title,.frame.is-terminal,.frame.has-repo) .copy{inset-block-start:0;inset-inline-end:0}.topic .expressive-code :is(.frame.has-title,.frame.is-terminal,.frame.has-repo) .copy button{opacity:1;width:auto;color:var(--ink-2);font-family:var(--f-sans);align-items:center;gap:.375rem;padding:0 .125rem;font-size:.8125rem;font-weight:500;display:inline-flex}.topic .expressive-code :is(.frame.has-title,.frame.is-terminal,.frame.has-repo) .copy button:before{content:attr(title);opacity:1;border:0;order:2;position:static}.topic .expressive-code :is(.frame.has-title,.frame.is-terminal,.frame.has-repo) .copy button:after{background-color:currentColor;flex:none;order:1;width:1rem;height:1rem;margin:0;position:static;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain}.topic .expressive-code :is(.frame.has-title,.frame.is-terminal,.frame.has-repo) .copy button div{display:none}.topic .expressive-code :is(.frame.has-title,.frame.is-terminal,.frame.has-repo) .copy button:is(:hover,:focus-visible){color:var(--brick)}.topic .expressive-code pre:focus-visible{outline:2px solid var(--brick);outline-offset:-2px}.topic .expressive-code pre ::selection{background:var(--brick-select)}.topic .expressive-code .repo-link{min-height:2rem;color:var(--ink-2);font-family:var(--f-sans);white-space:nowrap;align-items:center;gap:.375rem;margin-inline:auto 5.75rem;padding:0 .125rem;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex}.topic .expressive-code:lang(en) .repo-link{margin-inline-end:5rem}.topic .expressive-code .repo-link:is(:hover,:focus-visible){color:var(--brick)}.topic .expressive-code .repo-link:focus-visible{outline:2px solid var(--brick);outline-offset:3px}.topic .expressive-code .repo-link svg{flex:none;width:1rem;height:1rem}@media (width<=640px){.topic .expressive-code .repo-link-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topic .expressive-code .repo-link{justify-content:center;min-width:2rem;margin-inline-end:5.25rem}.topic .expressive-code:lang(en) .repo-link{margin-inline-end:4.5rem}}.topic .expressive-code .ec-line.is-output .code span,.topic .expressive-code .ec-line.del .code span{color:var(--ink-2)!important}.prose [data-overflow]{--fade-start:0px;--fade-end:0px;--edge-fade:linear-gradient(to right, transparent, #000 var(--fade-start), #000 calc(100% - var(--fade-end)), transparent);-webkit-mask:var(--edge-fade);mask:var(--edge-fade)}.prose [data-overflow~=start]{--fade-start:2.5rem}.prose [data-overflow~=end]{--fade-end:2.5rem}.topic .expressive-code pre[data-overflow]{-webkit-mask:linear-gradient(#000 0 0) top / 100% 1px no-repeat, linear-gradient(#000 0 0) bottom / 100% 1px no-repeat, var(--edge-fade);mask:linear-gradient(#000 0 0) top / 100% 1px no-repeat, linear-gradient(#000 0 0) bottom / 100% 1px no-repeat, var(--edge-fade)}.prose [data-overflow]:focus-visible{-webkit-mask:none;mask:none}figure.diagram .figure-scroll{overflow-x:auto}figure.diagram .figure-scroll:focus-visible{outline:2px solid var(--brick);outline-offset:2px}figure.diagram .scroll-cue{margin:0;container-type:inline-size}figure.diagram .scroll-cue>span{font-family:var(--f-sans);color:var(--ink-2);justify-content:flex-end;align-items:center;gap:.25rem;margin-bottom:.375rem;font-size:.8125rem;line-height:1.4;transition:opacity .2s ease-out;display:none}figure.diagram .scroll-cue .icon{width:1rem;height:1rem}@container (width<=39.99rem){figure.diagram .scroll-cue>span{display:flex}}figure.diagram:has(>.figure-scroll[data-overflow]:not([data-overflow~=end])) .scroll-cue>span{opacity:0}@media (prefers-reduced-motion:reduce){figure.diagram .scroll-cue>span{transition:none}}figure.diagram .figure-scroll>svg{width:100%;min-width:40rem;height:auto;color:var(--ink);font-family:var(--f-sans);display:block}figure.diagram svg rect.actor{fill:var(--paper)!important;stroke:var(--ink)!important;stroke-width:1.25px!important}figure.diagram svg text.actor,figure.diagram svg text.actor>tspan{fill:var(--ink)!important;stroke:none!important;font-weight:700!important}figure.diagram svg .actor-line{stroke:var(--ink-2)!important;stroke-dasharray:3 4!important}figure.diagram svg .messageLine0,figure.diagram svg .messageLine1{stroke:var(--ink)!important;stroke-width:1.25px!important}figure.diagram svg [id$=-arrowhead] path,figure.diagram svg [id$=-crosshead] path,figure.diagram svg .marker{fill:var(--ink)!important;stroke:var(--ink)!important}figure.diagram svg .messageText,figure.diagram svg .labelText,figure.diagram svg .labelText>tspan,figure.diagram svg .loopText,figure.diagram svg .loopText>tspan{fill:var(--ink)!important;stroke:none!important}figure.diagram svg .messageText{paint-order:stroke;stroke-linejoin:round;font-family:var(--f-mono)!important;stroke:var(--paper)!important;stroke-width:5px!important}figure.diagram svg .note{fill:var(--brick-tint)!important;stroke:var(--brick)!important}figure.diagram svg .noteText,figure.diagram svg .noteText>tspan{fill:var(--ink)!important;stroke:none!important}figure.diagram svg .loopLine{stroke:var(--brick)!important;fill:none!important;stroke-width:1.25px!important}figure.diagram svg .labelBox{fill:var(--paper)!important;stroke:var(--brick)!important}figure.diagram svg .activation0,figure.diagram svg .activation1,figure.diagram svg .activation2{fill:var(--brick-tint)!important;stroke:var(--brick)!important}figure.diagram svg circle.step{fill:var(--brick)!important;stroke:var(--paper)!important;stroke-width:2px!important}figure.diagram svg text.sequenceNumber{font-variant-numeric:tabular-nums;text-anchor:middle;dominant-baseline:central;fill:var(--paper)!important;stroke:none!important;font-family:var(--f-sans)!important;font-size:16px!important;font-weight:700!important}figure.diagram svg g.tx .loopLine{stroke:var(--brick)!important;stroke-width:1.25px!important;stroke-dasharray:4 3!important}figure.diagram svg text.tx-label{paint-order:stroke;stroke:var(--paper);stroke-width:6px;stroke-linejoin:round;font-family:var(--f-sans);font-size:16px;font-weight:600;fill:var(--brick)!important}figure.diagram svg text.actor.actor-sub,figure.diagram svg text.actor.actor-sub>tspan{fill:var(--ink-2)!important;font-size:16px!important;font-weight:400!important}figure.diagram svg .node rect,figure.diagram svg .node circle,figure.diagram svg .node ellipse,figure.diagram svg .node polygon,figure.diagram svg .node path{fill:var(--paper)!important;stroke:var(--ink)!important;stroke-width:1.25px!important}figure.diagram svg .edgePath path,figure.diagram svg path.flowchart-link{stroke:var(--ink)!important;stroke-width:1.25px!important}figure.diagram svg .edgeLabel,figure.diagram svg .edgeLabel rect{background-color:var(--paper)!important;fill:var(--paper)!important;color:var(--ink)!important}figure.diagram svg .nodeLabel,figure.diagram svg .label,figure.diagram svg .label text{color:var(--ink)!important;fill:var(--ink)!important}figure.diagram svg .cluster rect{fill:none!important;stroke:var(--brick)!important;stroke-width:1.25px!important;stroke-dasharray:4 3!important}figure.diagram svg .cluster-label .nodeLabel,figure.diagram svg .cluster-label text{color:var(--brick)!important;fill:var(--brick)!important}figure.diagram svg .labelBkg,figure.diagram svg .edgeLabel p{background-color:var(--paper)!important;color:var(--ink)!important}figure.diagram svg.erDiagram .node path{fill:none!important;stroke:none!important}figure.diagram svg.erDiagram .node .outer-path path:first-child,figure.diagram svg.erDiagram .node :is(.row-rect-odd,.row-rect-even) path:first-child{fill:var(--paper)!important}figure.diagram svg.erDiagram .node :is(.row-rect-odd,.row-rect-even) path:last-child,figure.diagram svg.erDiagram .node .divider path{stroke:var(--rule-strong)!important;stroke-width:1px!important}figure.diagram svg.erDiagram .node .outer-path path:last-child{stroke:var(--ink)!important;stroke-width:1.25px!important}figure.diagram svg.erDiagram .attribute-type .nodeLabel,figure.diagram svg.erDiagram .attribute-keys .nodeLabel{color:var(--ink-2)!important}figure.diagram svg .relationshipLine{stroke:var(--ink)!important;stroke-width:1.25px!important}figure.diagram svg .marker.er,figure.diagram svg .marker.er path{fill:none!important;stroke:var(--ink)!important}figure.diagram svg .marker.er circle{fill:var(--paper)!important;stroke:var(--ink)!important}article.topic{counter-reset:h2 listing figure demo}.topic .prose h2:before{counter-increment:h2;content:var(--topic) "." counter(h2);color:var(--brick);font-variant-numeric:tabular-nums;margin-inline-end:.6em}.topic .prose .expressive-code .frame.has-title .title:before{counter-increment:listing;content:"Listing " var(--topic) "." counter(listing) " · ";font-family:var(--f-sans);font-variant-numeric:tabular-nums;color:var(--brick);white-space:pre;font-weight:700}.topic .prose figure:is(.diagram,.image):not(.demo) figcaption:before{counter-increment:figure;content:"Rysunek " var(--topic) "." counter(figure) " · ";font-variant-numeric:tabular-nums;color:var(--brick);white-space:pre;font-weight:700}.topic .prose figure:is(.diagram,.image):not(.demo) figcaption:lang(en):before{content:"Figure " var(--topic) "." counter(figure) " · "}.topic .prose figure.demo figcaption:before{counter-increment:demo;content:"Demo " var(--topic) "." counter(demo) " · ";font-variant-numeric:tabular-nums;color:var(--brick);white-space:pre;font-weight:700}
