@font-face{font-family:Red Hat Display Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/_astro/red-hat-display-latin-ext-wght-normal.Do32GAgg.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Red Hat Display Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/_astro/red-hat-display-latin-wght-normal.BX-N26TK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Red Hat Text Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/red-hat-text-latin-ext-wght-normal.BYbCslLJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Red Hat Text Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/red-hat-text-latin-wght-normal.ZHr5wXre.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Red Hat Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/red-hat-mono-latin-ext-wght-normal.BQQ6IFDA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Red Hat Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/red-hat-mono-latin-wght-normal.Dwfc5A3M.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--shelf:#eeefec;--label:#fff;--ink:#111315;--muted:#4e555c;--line:#cfd2cd;--promo:#ffd43b;--promo-ink:#111315;--danger:#b42318;--on-ink:var(--label);--disp:"Red Hat Display Variable", system-ui, sans-serif;--text:"Red Hat Text Variable", system-ui, sans-serif;--mono:"Red Hat Mono Variable", ui-monospace, monospace;--r:4px;--max:1280px;--gut:40px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--shelf:#000;--label:#58181f;--ink:#f4f1f1;--muted:#c2b6b9;--line:#7a3440;--danger:#ff9aa6;color-scheme:dark}}:root[data-theme=dark]{--shelf:#000;--label:#58181f;--ink:#f4f1f1;--muted:#c2b6b9;--line:#7a3440;--danger:#ff9aa6;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--shelf);min-height:100dvh;color:var(--ink);font:400 16px/1.5 var(--text);flex-direction:column;margin:0;display:flex}body>main{flex:1 0 auto}img{max-width:100%}a{color:var(--ink);text-underline-offset:3px}button,input,select,textarea{font:inherit;color:inherit}h1,h2{font-family:var(--disp);color:var(--ink)}h1{letter-spacing:-.025em;font-size:clamp(34px,4.2vw,52px);font-weight:900;line-height:1.05}h2{letter-spacing:-.015em;font-size:clamp(24px,2.4vw,30px);font-weight:700;line-height:1.15}code,kbd,samp{font-family:var(--mono)}:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.wrap{max-width:var(--max);padding:0 var(--gut);margin:0 auto}.skip{background:var(--ink);color:var(--on-ink);border-radius:var(--r);z-index:50;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.src{color:var(--muted);margin:0;font-size:14px}.crumbs{color:var(--muted);margin:0 0 14px;font-size:14px}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--ink)}.syn{font:500 .875em/1.3 var(--mono);color:var(--ink);background:var(--label);white-space:nowrap;padding:2px 6px}.top{z-index:20;background:var(--label);border-bottom:1px solid var(--line);position:sticky;top:0}.top-in{max-width:var(--max);padding:12px var(--gut);align-items:center;gap:28px;margin:0 auto;display:flex;position:relative}.mark{font:900 21px/1 var(--disp);letter-spacing:-.01em;white-space:nowrap;color:var(--ink);text-decoration:none}.nav{margin-left:auto}.nav-list{white-space:nowrap;align-items:center;gap:22px;margin:0;padding:0;list-style:none;display:flex}.nav-list>li>a,.sub-btn{color:var(--ink);text-underline-offset:8px;cursor:pointer;background:0 0;border:0;align-items:center;gap:3px;padding:6px 0;font-weight:500;text-decoration:none;display:inline-flex}.nav-list>li>a:hover,.sub-btn:hover{text-decoration:underline 1px}.nav-list>li>a[aria-current=page],.sub-btn[aria-current=page]{text-decoration:underline 2px}.sub-btn svg{width:14px;height:14px;transition:transform .15s}.sub-btn[aria-expanded=true] svg{transform:rotate(180deg)}.has-sub{position:relative}.sub{background:var(--label);border:1.5px solid var(--ink);z-index:30;white-space:normal;min-width:270px;margin:0;padding:6px 0;list-style:none;display:none;position:absolute;top:calc(100% + 12px);left:-14px}.js .sub.open,html:not(.js) .has-sub:hover .sub,html:not(.js) .has-sub:focus-within .sub{display:block}.sub a{color:var(--ink);padding:8px 14px;line-height:1.35;text-decoration:none;display:block}.sub a:hover{text-decoration:underline}.sub a[aria-current=page]{text-decoration:underline 2px}.sub-all{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.nav-fav{color:var(--ink);white-space:nowrap;align-items:center;gap:6px;padding:6px 0;font-weight:500;text-decoration:none;display:inline-flex}.nav-fav:hover{text-underline-offset:8px;text-decoration:underline}.nav-fav svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linejoin:round;flex:none;width:16px;height:16px}.nav-fav.has svg{fill:currentColor}.nav-fav-n{font-variant-numeric:tabular-nums}.theme-btn{border-radius:var(--r);width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;margin:-4px -6px -4px 0;padding:0;display:grid}.theme-btn svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.theme-btn:hover{background:var(--shelf)}.theme-btn .i-sun{display:none}:root[data-theme=dark] .theme-btn .i-sun{display:block}:root[data-theme=dark] .theme-btn .i-moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-btn .i-sun{display:block}:root:not([data-theme=light]) .theme-btn .i-moon{display:none}}html:not(.js) .theme-btn{display:none}.qbar{flex:0 380px;min-width:0;margin:0;position:relative}.qbar .mirror,.qbar input{font:500 14px/20px var(--mono);white-space:pre;letter-spacing:0;padding:9px 40px 9px 12px}.qbar input{z-index:1;border:1.5px solid var(--ink);border-radius:var(--r);color:#0000;width:100%;caret-color:var(--ink);background:0 0;position:relative}.qbar input::placeholder{color:var(--muted)}.qbar input:focus{outline:none}.qbar input:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.qbar input::-webkit-search-cancel-button{display:none}.qbar .mirror{border-radius:var(--r);background:var(--label);color:var(--ink);pointer-events:none;border:1.5px solid #0000;position:absolute;inset:0;overflow:hidden}.qbar kbd{z-index:2;border:1px solid var(--line);border-radius:var(--r);font:500 12px/18px var(--mono);color:var(--muted);pointer-events:none;padding:0 6px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.tk{text-decoration:underline;text-decoration-color:var(--ink);text-underline-offset:4px;text-decoration-thickness:1.5px}.top--home .qbar{visibility:hidden;opacity:0;transition:opacity .15s}.top--home.show-q .qbar{visibility:visible;opacity:1}.hero{max-width:var(--max);padding:48px var(--gut) 32px;margin:0 auto}.hero h1{text-wrap:balance;max-width:22ch;margin:0}.hero>p{max-width:62ch;margin:14px 0 0;font-size:18px;line-height:1.55}.hero .src{margin-top:12px;font-size:14px}.btn{background:var(--label);min-height:40px;color:var(--ink);border:1.5px solid var(--ink);border-radius:var(--r);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{background:var(--shelf)}.btn-solid{background:var(--ink);color:var(--on-ink)}.btn-solid:hover{background:var(--ink);text-underline-offset:3px;text-decoration:underline}.btn:disabled{opacity:.6;cursor:progress}.link-btn{cursor:pointer;font:inherit;color:inherit;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.tag{--hole:var(--shelf);background:var(--label);min-width:96px;color:var(--ink);clip-path:polygon(16px 0,100% 0,100% 100%,16px 100%,0 50%);flex-direction:column;justify-content:center;padding:8px 16px 8px 30px;text-decoration:none;display:inline-flex;position:relative}.tag:before{content:"";background:var(--hole);border-radius:50%;width:8px;height:8px;margin-top:-4px;position:absolute;top:50%;left:12px}.tag b{font:900 34px/1 var(--disp);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tag span{margin-top:2px;font-size:13px;font-weight:500;line-height:1.25}.tag.kit{background:var(--promo);color:var(--promo-ink)}.tag.lg{clip-path:polygon(22px 0,100% 0,100% 100%,22px 100%,0 50%);min-width:150px;padding:14px 22px 14px 40px}.tag.lg:before{width:10px;height:10px;margin-top:-5px;left:16px}.tag.lg b{font-size:64px}.tag.lg span{font-size:15px}.tag.sm{min-width:64px;padding:6px 12px 6px 26px}.tag.sm b{font-size:22px}.tag.sm span{font-size:12px}a.tag:hover span{text-decoration:underline}.strip{background:var(--label);grid-template-columns:minmax(0,4fr) minmax(0,5fr) 168px;align-items:center;gap:32px;margin:0 0 10px;padding:20px 0 20px 28px;display:grid}.strip>.tag{--hole:var(--label);justify-self:end;min-width:148px}.strip-h{font:900 28px/1.05 var(--disp);letter-spacing:-.02em;margin:0}.strip-p{color:var(--muted);margin:4px 0 0;font-size:15px}.strip-k{margin-top:8px;font-size:15px;font-weight:600;display:block}.minis{gap:6px;margin:0;padding:0;list-style:none;display:grid}.minis li{grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;font-size:15px;display:grid}.minis img,.minis .av{border-radius:var(--r);background:var(--shelf);width:24px;height:24px;display:block}.minis a{text-overflow:ellipsis;white-space:nowrap;font-weight:500;text-decoration:none;overflow:hidden}.minis a:hover{text-decoration:underline}.minis .s{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);grid-template-columns:28px minmax(0,1fr) auto 32px;grid-template-areas:"av body meta fav";align-items:start;gap:0 16px;min-width:0;padding:14px 0;display:grid}.row:last-child{border-bottom:0}.row.ranked{grid-template-columns:24px 28px minmax(0,1fr) auto 32px;grid-template-areas:"n av body meta fav"}.row-n{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:n;padding-top:3px;font-size:14px;font-weight:600}.row>.av{border-radius:var(--r);background:var(--line);object-fit:cover;grid-area:av;width:28px;height:28px;margin-top:1px;display:block}.row-b{grid-area:body;min-width:0}.row h3{font:600 16px/1.4 var(--text);letter-spacing:0;overflow-wrap:anywhere;margin:0}.row h3 a{color:var(--ink);text-decoration:none}.row h3 a:hover{text-decoration:underline}.row h3 .own{color:var(--muted);font-weight:500}.row-s{color:var(--muted);max-width:78ch;margin:2px 0 0;font-size:15px;line-height:1.45}.row-f{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.55}.row-f a{color:var(--muted);text-decoration:none}.row-f a:hover{color:var(--ink);text-decoration:underline}.row-m{color:var(--muted);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;flex-direction:column;grid-area:meta;align-items:flex-end;gap:1px;padding-top:1px;font-size:14px;line-height:1.45;display:flex}.row-m .st{color:var(--ink);font-weight:500}.row-m .gain,.row-m .clicks{color:var(--ink);font-weight:600}.row-m .lic{font:500 13px/1.5 var(--mono)}.row-m .arch{color:var(--ink);font-weight:600}.row>.fav{grid-area:fav;margin-top:-4px}.fav{border-radius:var(--r);width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.fav svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linejoin:round;width:18px;height:18px}.fav:hover{color:var(--ink);background:var(--shelf)}.fav[aria-pressed=true]{color:var(--ink)}.fav[aria-pressed=true] svg{fill:currentColor}.article-wrap{max-width:var(--max);padding:56px var(--gut) 24px;margin:0 auto}.prose{max-width:70ch;color:var(--ink);font-size:17px;line-height:1.65}.prose>:first-child{margin-top:0}.prose h2{margin:1.9em 0 .5em;font-size:26px;line-height:1.2}.prose h3{font:700 19px/1.3 var(--disp);margin:1.6em 0 .4em}.prose p,.prose ul,.prose ol{margin:0 0 1.1em}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.3em 0}.prose li::marker{color:var(--muted)}.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:3px}.prose a:hover{text-decoration-color:var(--ink);text-decoration-thickness:2px}.prose strong{font-weight:600}.prose code{background:var(--label);padding:1px 5px;font-size:.88em}.prose blockquote{border-left:2px solid var(--line);color:var(--muted);margin:0 0 1.1em;padding-left:16px}.prose table{border-collapse:collapse;background:var(--label);width:100%;margin:0 0 1.2em;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 12px}.prose th{border-bottom-color:var(--ink);font-weight:600}.prose .updated{color:var(--muted);margin-top:2em;font-size:14px}.foot{background:var(--label);border-top:1px solid var(--line);margin-top:64px}.foot-in{max-width:var(--max);padding:24px var(--gut) 32px;color:var(--muted);margin:0 auto;font-size:14px}.foot-nav{flex-wrap:wrap;gap:6px 22px;margin-bottom:14px;display:flex}.foot-nav ul{flex-wrap:wrap;gap:6px 22px;margin:0;padding:0;list-style:none;display:flex}.foot-nav ul[hidden]{display:none}.foot-nav a,.foot-nav .link-btn{color:var(--muted);text-underline-offset:3px;text-decoration:underline}.foot-nav a:hover,.foot-nav .link-btn:hover{color:var(--ink)}.foot-text p{max-width:90ch;margin:0 0 4px}.foot-indep{margin-top:8px!important}.consent{z-index:60;background:var(--label);border:1.5px solid var(--ink);gap:12px;max-width:560px;margin-left:auto;padding:16px 18px;display:grid;position:fixed;bottom:16px;left:16px;right:16px}.consent[hidden]{display:none}.consent p{margin:0}.consent a{margin-left:4px}.consent-btns{justify-content:flex-end;gap:8px;display:flex}@media (width<=1100px){.top-in{flex-wrap:wrap;gap:10px 24px;padding-bottom:14px}.qbar{flex:1 0 100%;order:5}.top--home .qbar{display:none}.strip{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px;gap:24px}}@media (width<=700px){:root{--gut:16px}.top{position:static}.top-in{gap:4px 14px;padding-top:10px;padding-bottom:12px}.mark{margin-right:auto;font-size:20px}.nav{flex:1 0 100%;order:4;margin:0}.nav-list{flex-wrap:wrap;gap:0 18px;font-size:15px}.nav-list>li>a,.sub-btn{padding:9px 0}.has-sub{position:static}.sub{left:var(--gut);right:var(--gut);min-width:0;max-height:70vh;margin-top:2px;top:auto;overflow-y:auto}.sub a{padding:11px 14px}.nav-fav{padding:9px 0}.qbar{margin-top:4px}.qbar .mirror,.qbar input{padding-top:10px;padding-bottom:10px;font-size:16px}.hero{padding-top:28px;padding-bottom:24px}.hero>p{font-size:16px}.tag.lg{min-width:0}.tag.lg b{font-size:48px}.strip{margin:0 calc(var(--gut) * -1) 8px;grid-template-columns:minmax(0,1fr) auto;gap:14px 12px;padding:16px 0 16px 16px}.strip>div:first-child{grid-column:1}.strip>.tag{grid-area:1/2;align-self:start;min-width:0;padding:6px 12px 6px 26px}.strip>.tag b{font-size:26px}.strip>.tag{max-width:128px}.strip>.tag span{font-size:12px}.strip-h{font-size:22px}.minis{grid-column:1/-1;padding-right:16px}.row{grid-template-columns:28px minmax(0,1fr) 40px;grid-template-areas:"av body fav"".meta meta";gap:0 12px}.row.ranked{grid-template-columns:20px 28px minmax(0,1fr) 40px;grid-template-areas:"n av body fav"". .meta meta";gap:0 10px}.row-m{text-align:left;white-space:normal;flex-flow:wrap;align-items:baseline;gap:2px 14px;margin-top:8px}.row-m>*{white-space:nowrap}.row>.fav{margin-top:-8px}.fav{width:40px;height:40px}.article-wrap{padding-top:40px}.prose{font-size:16px}.foot{margin-top:48px}.foot-nav,.foot-nav ul{gap:0 20px}.foot-nav a,.foot-nav .link-btn{padding:9px 0;display:inline-block}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (hover:none){.qbar kbd{display:none}}
