.gr{--hb:color-mix(in oklab, var(--gs-bad) 34%, transparent);--hg:color-mix(in oklab, var(--gs-good) 54%, transparent);--hm:color-mix(in oklab, var(--tx) 4%, transparent);background:var(--g0);margin:0}.gr+.gr{margin-top:40px}.gr .cap{margin-top:14px}.gr code{font:.93em var(--mono)}.gr i{margin-right:.12em}.gr-ph code{color:var(--tx2);font:var(--w4) 12.5px var(--mono)}.gr-hi{color:color-mix(in oklab, var(--gs-good), #fff 12%)}.gr-lo{color:color-mix(in oklab, var(--gs-bad), #fff 22%)}.gr-scroll{overscroll-behavior-x:contain;max-width:100%;overflow-x:auto}.gr-scroll:focus-visible{outline:1px solid var(--tx3);outline-offset:4px}.gr-tbl{border-collapse:separate;border-spacing:0;border-top:1px solid var(--rule2);border-bottom:1px solid var(--rule2);color:var(--tx);font:var(--w4) 14px / 1.2 var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}.gr-tbl abbr{text-decoration:none}.gr-tbl th,.gr-tbl td{text-align:right;background-clip:padding-box;padding:7px 14px}.gr-tbl td{min-width:72px;position:relative}.gr-tbl thead th{color:var(--tx3);font:var(--w45) 12.5px / 1.25 var(--sans);vertical-align:bottom;padding-top:9px;padding-bottom:8px}.gr-tbl thead code{color:var(--tx2);font-weight:var(--w4)}.gr-tbl thead tr:first-child th{padding-top:12px}.gr-tbl thead tr:last-child th{border-bottom:1px solid var(--rule2)}.gr-tbl .gr-g{border-left:3px solid #0000}.gr-tbl .gr-var{z-index:1;background:var(--g0);text-align:left;padding-left:0;padding-right:22px;position:sticky;left:0}.gr-tbl thead .gr-var{border-bottom:1px solid var(--rule2)}.gr-tbl tbody .gr-var{color:var(--tx2);font-weight:var(--w4)}.gr-tbl tbody .gr-var code{color:var(--tx);font-size:13.5px}.gr-tbl thead .gr-ed{box-shadow:inset 0 -1px 0 var(--rule2);color:var(--tx);font-size:13px;font-weight:var(--w5);letter-spacing:.04em;text-align:center;padding-bottom:7px}.gr-tbl thead .gr-up{padding-bottom:0}.gr-note{color:var(--tx3);font-size:13.5px}.gr-dag{font-family:var(--mono)}.gr-tbl .gr-dag{color:var(--tx2);font:10.5px / 1 var(--mono);position:absolute;top:5px;right:4px}.gr-tbl .gr-gl{background:var(--g0);color:var(--tx2);font:var(--w5) 11.5px / 1.3 var(--sans);letter-spacing:.085em;text-align:left;text-transform:uppercase;padding:16px 0 7px;font-stretch:87.5%}.gr-tbl tbody+tbody .gr-gl{border-top:1px solid var(--rule)}.gr-gl>span{position:sticky;left:0}.gr-sub{color:var(--tx3)}.gr-tbl tbody tr:last-child>*{padding-bottom:8px}.gr-t10 tbody .gr-var{font-family:var(--sans)}.gr-tbl td.gr-bn{box-shadow:inset 2px 0 0 var(--gs-post)}.gr-bnk{background:var(--gs-post);vertical-align:-.12em;width:2px;height:.95em;margin:0 7px 0 1px;display:inline-block}.gr-t10 tbody tr{cursor:default}.gr-t10 tbody tr.gr-on>*{box-shadow:inset 0 1px 0 var(--tx3), inset 0 -1px 0 var(--tx3)}.gr-t10 tbody tr.gr-on>td.gr-bn{box-shadow:inset 2px 0 0 var(--gs-post), inset 0 1px 0 var(--tx3), inset 0 -1px 0 var(--tx3)}.gr-t10 tr.gr-on .gr-var{color:var(--tx)}.gr-key{color:var(--tx3);flex-wrap:wrap;gap:6px 24px;margin:0 0 14px;padding:0;font-size:13.5px;list-style:none;display:flex}.gr-key li{align-items:center;gap:9px;display:inline-flex}.gr-key svg{flex:none;overflow:visible}.gr-panels{border:1px solid var(--rule);background:var(--rule);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;display:grid;position:relative}.gr-sl{z-index:1;pointer-events:none;position:absolute;inset:-1px}.gr-sl:focus-visible{outline:1px solid var(--tx3);outline-offset:3px}.gr-pane{background:var(--gs-well,#020203);min-width:0;padding:12px 14px 6px 12px;container-type:inline-size}.gr-box{height:330px}@container (width<440px){.gr-box{height:278px}}.gr-ph{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin:0 0 4px 2px;display:flex}.gr-ph h3{color:var(--tx);font:var(--w5) 13.5px / 1.3 var(--sans);margin:0}.gr-rd{color:var(--tx3);font:11.5px / 1.3 var(--mono);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:2px 14px;margin:0;display:flex}.gr-rd[data-idle]{visibility:hidden}.gr-rdi{white-space:nowrap}.gr-rd b{color:var(--tx);font-weight:500;display:inline-block}.gr-svg{touch-action:pan-y;-webkit-user-select:none;user-select:none;display:block;overflow:visible}.gr-svg text{fill:var(--tx3);font:10.5px var(--mono);font-variant-numeric:tabular-nums}.gr-svg .gr-ax{font:var(--w5) 10px var(--sans);letter-spacing:.085em;text-transform:uppercase;font-stretch:87.5%}.gr-svg .gr-bnt{fill:color-mix(in oklab, var(--gs-post), #fff 18%)}@media (width<=760px){.gr-panels{grid-template-columns:minmax(0,1fr)}.gr-tbl{font-size:13.5px}.gr-tbl th,.gr-tbl td{padding:7px 11px}.gr-tbl td{min-width:62px}.gr-tbl .gr-var{padding-right:14px}.gr-tbl tbody .gr-var code,.gr-note{font-size:12.5px}.gr-key{gap:6px 18px;font-size:13px}.gr-rd{gap:2px 10px;font-size:10.5px}}.ew{container-type:inline-size}.ew-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;display:grid}.ew-panel{flex-direction:column;min-width:0;display:flex}.ew-well{border:1px solid var(--rule);background:var(--gs-well);height:400px}.ew-well canvas{touch-action:manipulation;display:block}.ew-well canvas:focus-visible{outline:1px solid var(--tx);outline-offset:-2px}.ew .ew-name{color:var(--tx2);text-transform:uppercase;letter-spacing:.1em;top:12px;left:13px}.ew .ew-rd{white-space:pre;top:12px;right:13px}.ew .ew-rd[data-bad]{color:color-mix(in oklab, var(--gs-bad), #fff 25%)}.ew .ew-low{flex-wrap:wrap;gap:5px 2.2em;max-width:calc(100% - 150px);display:flex;bottom:17px;left:13px}.ew-low>span{white-space:pre}.ew-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.ew-seg{border:0;flex:1;min-width:0;margin:0;padding:0;display:flex}.ew-seg .btn{font:11.5px var(--mono);letter-spacing:.02em;text-transform:none;flex:auto;justify-content:center;padding:0 9px}.ew-seg .btn+.btn{margin-left:-1px}.ew-bar .btn:focus-visible{z-index:1;outline:1px solid var(--tx);outline-offset:2px;position:relative}.ew-acts{z-index:4;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.ew-act{color:#ece9e2e6;height:26px;font:10.5px / 1 var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer;background:#0a0b0dc7;border:1px solid #ece9e242;padding:0 10px}.ew-act:hover{border-color:#ece9e299}.ew-act:active{translate:0 1px}.ew-act[aria-pressed=true]{border-color:var(--tx);background:var(--tx);color:#0a0b0d}.ew-run{min-width:62px}.ew-act:focus-visible{outline:1px solid var(--tx);outline-offset:2px}@media (pointer:coarse){.ew-act{height:32px;padding:0 12px}}@container (width<=880px){.ew-grid{grid-template-columns:minmax(0,1fr)}.ew-ray .ew-well{height:clamp(270px,76cqi,400px)}.ew-oth .ew-well{height:clamp(300px,100cqi + 44px,440px)}}@container (width<=420px){.ew-oth .ew-seg{grid-template-columns:1fr 1fr;display:grid}.ew-oth .ew-seg .btn:nth-child(odd of .btn){margin-left:0}.ew-oth .ew-seg .btn:nth-child(n+3 of .btn){margin-top:-1px}}.gl{margin:0;container-type:inline-size}.gl-well{border:1px solid var(--rule);background:var(--gs-well);min-height:486px;overflow-x:auto}@container (width>=824px){.gl-well{min-height:327px}}.gl-svg{margin:0 auto;display:block;overflow:visible}.gl-reg{fill:color-mix(in oklab, var(--g1), transparent 35%);stroke:var(--rule);stroke-width:1px;shape-rendering:crispedges}.gl-rl{fill:var(--tx3);font-family:var(--sans);font-weight:var(--w5);letter-spacing:.085em;text-transform:uppercase;font-stretch:87.5%}.gl-rlv{letter-spacing:.05em}.gl-flake{fill:none;stroke:var(--tx3);stroke-width:1px;stroke-linecap:square}.gl-w{color:var(--tx3)}.gl-line{fill:none;stroke:currentColor;stroke-width:1px;shape-rendering:crispedges}.gl-head{fill:currentColor}.gl-pre{color:var(--gs-pre)}.gl-post{color:var(--gs-post)}.gl-mute{color:var(--tx3)}.gl-off{color:var(--tx4)}.gl-off .gl-line,.gl-measure .gl-line{stroke-dasharray:3 3}.gl-measure{color:var(--tx3)}.gl-gap{fill:var(--gs-well)}.gl-meas{fill:var(--tx3);font-family:var(--sans)}.gl-measb{fill:var(--tx2);font-weight:var(--w6)}.gl-m{font-family:var(--serif);fill:var(--tx);font-style:italic}.gl-up{font-style:normal}.gl-hat{fill:none;stroke:var(--tx);stroke-width:1px}.gl-hat.gl-tmute{stroke:var(--tx2)}.gl-hat.gl-tpre{stroke:var(--gs-pre)}.gl-hat.gl-tpost{stroke:var(--gs-post)}.gl-tmute{fill:var(--tx2)}.gl-tpre{fill:var(--gs-pre)}.gl-tpost{fill:var(--gs-post)}.gl-box rect{fill:var(--g2);stroke:var(--tx4);stroke-width:1px;shape-rendering:crispedges}.gl-bmute rect{fill:var(--g1);stroke:var(--rule2)}.gl-bpost rect{stroke:var(--gs-post)}.gl-bt{fill:var(--tx2);font-family:var(--mono)}.gl-box .gl-m{fill:var(--tx)}.gl-bmute .gl-m,.gl-bmute .gl-bt{fill:var(--tx3)}.gl-tag{fill:var(--tx3);font-family:var(--mono);letter-spacing:.04em}.gl-tag.gl-tpost{fill:var(--gs-post)}.gl-abbr{fill:var(--gs-post);font-family:var(--mono);letter-spacing:.06em;font-weight:600}.gl-under{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:18px 48px;margin-top:16px;display:grid}.gl-bar{border:0;flex-wrap:wrap;gap:14px 28px;min-width:0;margin:0;padding:0;display:flex}.gl-grp{border:0;min-width:0;margin:0;padding:0}.gl-grp legend{float:left;white-space:nowrap;width:100%;margin:0 0 8px;padding:0}.gl-seg{clear:both;display:flex}.gl-seg .btn{min-width:56px;font-family:var(--mono);letter-spacing:.06em;justify-content:center}.gl-seg .btn+.btn{margin-left:-1px}.gl-seg .btn:focus-visible{z-index:1;outline:1px solid var(--tx);outline-offset:2px;position:relative}.gl-read{min-width:0;display:grid}.gl-one{visibility:hidden;grid-area:1/1;min-width:0}.gl-one[data-on]{visibility:visible}.gl-tex{color:var(--tx);margin:0;font-size:18px;line-height:1.5;overflow:auto hidden}.gl-tex .katex{font-size:1.12em}.gl-desc{max-width:64ch;color:var(--tx2);font-size:15px;line-height:calc(1.5 * var(--k-lead));margin:4px 0 0}.gl-desc b{color:var(--tx);font-weight:var(--w5)}@container (width<=720px){.gl-under{grid-template-columns:minmax(0,1fr)}.gl-tex{font-size:16px}}.gs{--gs-pre:oklch(80% .12 205);--gs-post:oklch(70% .2 350);--gs-good:oklch(72% .15 150);--gs-bad:oklch(63% .19 27);--gs-well:color-mix(in oklab, var(--g0), #000 30%)}.gs .prose{max-width:68ch;color:var(--tx2);font:var(--w4) 17px / calc(1.65 * var(--k-lead)) var(--serif)}.gs .prose p{margin:0 0 1em}.gs .prose p:last-child{margin-bottom:0}.gs-statement{max-width:38ch;color:var(--tx);font:var(--w4) clamp(21px, 2vw, 27px) / 1.4 var(--sans);letter-spacing:-.005em;text-wrap:balance;margin:0 0 52px}.gs-demo{margin-top:32px}.gs-demo>.cap{max-width:76ch}.gs-idea{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:center;gap:24px 48px;margin:32px 0 0;display:grid}.gs-stage{--pw-well:var(--gs-well);--sim-pre:var(--gs-pre);--sim-post:var(--gs-post)}.gs-stage .pw-well{aspect-ratio:16/10;border:var(--hair) solid var(--rule);background:var(--pw-well);position:relative;overflow:hidden}.gs-stage .pw-well canvas{width:100%;height:100%;position:absolute;inset:0}.gs-stage canvas:focus-visible{outline:1px solid var(--tx);outline-offset:-1px}.gs-steps{gap:18px;margin:0;padding:0;list-style:none;display:grid}.gs-steps li{border-left:1px solid var(--rule2);color:var(--tx3);font:var(--w4) 15.5px / 1.55 var(--sans);gap:4px;padding-left:14px;display:grid}.gs-steps b{color:var(--tx3);font:var(--w5) 12.5px / 1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase}.gs-steps li[data-on],.gs-steps[data-all] li{color:var(--tx2)}.gs-steps li[data-on] b,.gs-steps[data-all] li b{color:var(--tx)}.gs-steps li[data-on]{border-left-color:var(--tx)}.gs-steps li[data-on][data-k="1"],.gs-steps li[data-on][data-k="2"]{border-left-color:var(--gs-post)}.gs-steps-col .cap{margin-top:22px}.gs-sec{border-top:1px solid var(--rule);padding:44px 0 52px}.gs-h{max-width:34ch;font-weight:inherit;gap:10px;margin:0 0 22px;display:grid}.gs-k{color:var(--tx3);font:var(--w5) 12.5px / 1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase}.gs-hl{color:var(--tx);font:var(--w45) clamp(22px, 2.1vw, 27px) / 1.25 var(--sans);letter-spacing:-.01em;text-wrap:balance}.gs-sec>.prose+*{margin-top:32px}.gs-split{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:32px 56px;display:grid}.gs-sec>.gs-split+*{margin-top:40px}.gs-side.prose,.gs-side .prose{max-width:54ch}.gs-finds{gap:14px;max-width:54ch;margin:26px 0 0;padding:0;list-style:none;display:grid}.gs-finds li{border-left:1px solid var(--rule2);color:var(--tx2);font:var(--w4) 15.5px / 1.55 var(--sans);gap:3px;padding-left:14px;display:grid}.gs-finds b{color:var(--tx);font:var(--w5) 12.5px / 1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase}.gs-v{font-family:var(--mono);white-space:nowrap;font-size:.86em}.gs-roll{margin:36px 0 0}.gs-roll-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.gs-roll-cell{gap:8px;min-width:0;display:grid}.gs-roll-lbl{color:var(--tx3);font:12px / 1.3 var(--mono)}.gs-roll-crop{aspect-ratio:512/391;outline:1px solid var(--rule2);position:relative;overflow:hidden}.gs-roll-crop img{top:0;left:calc(var(--k) * -536 / 512 * 100%);width:414.063%;max-width:none;height:100%;image-rendering:pixelated;position:absolute}.gs-roll .cap{max-width:76ch}.gs-after{margin-top:36px}.gs-limit{max-width:76ch;color:var(--tx3);margin-top:18px}@media (width<=1180px){.gs-split{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.gs-idea{grid-template-columns:minmax(0,1fr)}.gs-sec{padding:36px 0 40px}.gs-roll-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}}.gs-au{color:var(--tx2);flex-wrap:wrap;gap:4px 14px;margin:14px 0 0;font-size:16px;display:flex}.gs-au b{color:var(--tx);font-weight:var(--w5)}.gs-au .gs-af{color:var(--tx3)}
