:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--zs-fill:#004cc0;--zs-on-fill:#fff;--zs-glow:#0068ff;--zs-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--zs-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--zs-fs:1;--zs-type-screen-title:calc(27px * var(--zs-fs));--zs-type-app-bar-title:calc(22px * var(--zs-fs));--zs-type-pro-headline:calc(22px * var(--zs-fs));--zs-type-sheet-title:calc(18px * var(--zs-fs));--zs-type-sheet-title-big:calc(22px * var(--zs-fs));--zs-type-section-label:calc(13px * var(--zs-fs));--zs-type-panel-value:calc(19px * var(--zs-fs));--zs-type-number:calc(20px * var(--zs-fs));--zs-type-version:calc(17px * var(--zs-fs));--zs-type-body:calc(15px * var(--zs-fs));--zs-type-key:calc(15px * var(--zs-fs));--zs-type-key-main:calc(16px * var(--zs-fs));--zs-type-header-key:calc(13px * var(--zs-fs));--zs-type-item-name:calc(15px * var(--zs-fs));--zs-type-feature-name:calc(15px * var(--zs-fs));--zs-type-pitch:calc(14.5px * var(--zs-fs));--zs-type-hint:calc(14px * var(--zs-fs));--zs-type-small:calc(13.5px * var(--zs-fs));--zs-type-feature-line:calc(13px * var(--zs-fs));--zs-type-nav-label:calc(12.5px * var(--zs-fs));--zs-type-chip:calc(12.5px * var(--zs-fs));--zs-type-meta:calc(12.5px * var(--zs-fs));--zs-type-axis:calc(12px * var(--zs-fs));--zs-r-plate:16px;--zs-r-key:14px;--zs-r-key-focus-inner:10px;--zs-r-header-key:12px;--zs-r-icon-button:12px;--zs-r-row:12px;--zs-r-note:12px;--zs-r-theme-tile:14px;--zs-r-tile-preview:9px;--zs-r-feature-tile:10px;--zs-r-list-icon:10px;--zs-r-sheet-top:24px;--zs-r-grab:4px;--zs-r-pill:999px;--zs-r-chip:999px;--zs-r-switch:999px;--zs-key-h:52px;--zs-header-key-h:48px;--zs-touch:48px;--zs-row-h:52px;--zs-item-h:56px;--zs-nav-item-h:56px;--zs-pill-w:60px;--zs-pill-h:32px;--zs-pro-row-h:60px;--zs-content-max:1100px;--zs-press-ms:70ms;--zs-release-ms:.14s;--zs-look-ms:.25s;--zs-pill-ms:.2s;--zs-s0:2px;--zs-s1:4px;--zs-s2:6px;--zs-s3:8px;--zs-s4:10px;--zs-s5:12px;--zs-s6:14px;--zs-s7:16px;--zs-s8:18px;--zs-s9:22px;--zs-s10:26px;--zs-s11:28px;--zs-s12:32px;--zs-s13:48px;--zs-ground:#f6f7f9;--zs-plate:#fff;--zs-well:#eceef2;--zs-line:#dfe2e8;--zs-edge:#7b808c;--zs-bevel:#fff;--zs-text:#121418;--zs-soft:#3d414a;--zs-blue:#0a45ad;--zs-on-blue:#fff;--zs-ok:#0a5530;--zs-warn:#5c3a00;--zs-bad:#931313;--zs-scrim:#12141861;--zs-chosen:#e8f0ff;--zs-on-chosen:#0a3f9e;--zs-risky-fill:#fde8e7;--zs-risky-text:#8a1010;--zs-risky-line:#d42a20;--zs-live-dot:#1a7f4b}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-look]),:root[data-look=auto]{--zs-ground:#000;--zs-plate:#0d0d10;--zs-well:#16171b;--zs-line:#24252b;--zs-edge:#646771;--zs-bevel:#34363e;--zs-text:#fff;--zs-soft:#b6b8c0;--zs-blue:#7aaeff;--zs-on-blue:#04132e;--zs-ok:#6fdc9b;--zs-warn:#f2c06b;--zs-bad:#ff9d97;--zs-scrim:#0009;--zs-chosen:#0a2350;--zs-on-chosen:#fff;--zs-risky-fill:#2a0d10;--zs-risky-text:#ffb4ae;--zs-risky-line:#ff5a4f;--zs-live-dot:#3ecf8e}}:root[data-look=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--zs-ground:#f6f7f9;--zs-plate:#fff;--zs-well:#eceef2;--zs-line:#dfe2e8;--zs-edge:#7b808c;--zs-bevel:#fff;--zs-text:#121418;--zs-soft:#3d414a;--zs-blue:#0a45ad;--zs-on-blue:#fff;--zs-ok:#0a5530;--zs-warn:#5c3a00;--zs-bad:#931313;--zs-scrim:#12141861;--zs-chosen:#e8f0ff;--zs-on-chosen:#0a3f9e;--zs-risky-fill:#fde8e7;--zs-risky-text:#8a1010;--zs-risky-line:#d42a20;--zs-live-dot:#1a7f4b}:root[data-look=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--zs-ground:#111215;--zs-plate:#18191d;--zs-well:#1f2126;--zs-line:#2a2c33;--zs-edge:#6c707b;--zs-bevel:#3a3d46;--zs-text:#eceef2;--zs-soft:#b5b8c1;--zs-blue:#86b6ff;--zs-on-blue:#04132e;--zs-ok:#6fdc9b;--zs-warn:#f2c06b;--zs-bad:#ff9d97;--zs-scrim:#0000008c;--zs-chosen:#0a2350;--zs-on-chosen:#fff;--zs-risky-fill:#2a0d10;--zs-risky-text:#ffb4ae;--zs-risky-line:#ff5a4f;--zs-live-dot:#3ecf8e}:root[data-look=black]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--zs-ground:#000;--zs-plate:#0d0d10;--zs-well:#16171b;--zs-line:#24252b;--zs-edge:#646771;--zs-bevel:#34363e;--zs-text:#fff;--zs-soft:#b6b8c0;--zs-blue:#7aaeff;--zs-on-blue:#04132e;--zs-ok:#6fdc9b;--zs-warn:#f2c06b;--zs-bad:#ff9d97;--zs-scrim:#0009;--zs-chosen:#0a2350;--zs-on-chosen:#fff;--zs-risky-fill:#2a0d10;--zs-risky-text:#ffb4ae;--zs-risky-line:#ff5a4f;--zs-live-dot:#3ecf8e}@media (prefers-reduced-motion:reduce){:root{--zs-press-ms:0s;--zs-release-ms:0s;--zs-look-ms:0s;--zs-pill-ms:0s}}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-latin-700.woff2)format("woff2")}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--zs-ground)}body{overflow-wrap:break-word;background:var(--zs-ground);color:var(--zs-text);font-family:var(--zs-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:var(--zs-blue);text-underline-offset:.2em}h1,h2,h3{text-wrap:balance;overflow-wrap:anywhere;margin:0}h1,h2,.label{font-family:var(--zs-mono);letter-spacing:0;font-weight:700}h1{font-size:clamp(1.75rem,1.2rem + 2.4vw,2.9rem);line-height:1.12}h2{font-size:clamp(1.45rem,1.1rem + 1.5vw,2.05rem);line-height:1.15}h3{font-size:1.06rem;font-weight:600;line-height:1.3}.label{color:var(--zs-soft);margin:0 0 10px;font-size:.82rem;line-height:1.45;display:block}p{text-wrap:pretty;margin:0}.soft{color:var(--zs-soft)}:focus-visible{outline:2px solid var(--zs-glow);outline-offset:3px;border-radius:6px}.skip{z-index:100;background:var(--zs-fill);min-height:48px;color:var(--zs-on-fill);border-radius:var(--zs-r-key);padding:12px 18px;font-weight:600;text-decoration:none;position:absolute;top:-80px;left:12px}.skip:focus{top:8px}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.wrap{width:100%;max-width:calc(var(--zs-content-max) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}:root{--gutter:clamp(18px, 4vw, 40px)}.plate{background:var(--zs-plate);border:1px solid var(--zs-line);border-radius:var(--zs-r-plate);box-shadow:0 1px 0 var(--zs-bevel) inset}.lit{position:relative;overflow:hidden}.lit:before{content:"";background:linear-gradient(90deg, transparent, var(--zs-glow), transparent);height:1px;position:absolute;top:0;left:12%;right:12%}.lit:after{content:"";background:radial-gradient(60% 100% at 50% 0%, color-mix(in srgb, var(--zs-glow) 14%, transparent), transparent);pointer-events:none;height:90px;position:absolute;inset:0 0 auto}.lit>*{z-index:1;position:relative}.key{min-height:var(--zs-key-h);border-radius:var(--zs-r-key);font:600 .9375rem/1.3 var(--zs-sans);text-align:center;cursor:pointer;transition:transform var(--zs-release-ms) ease, filter var(--zs-release-ms) ease;border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:0 18px;text-decoration:none;display:inline-flex}.key:active{transition-duration:var(--zs-press-ms);transform:scale(.97)}.key svg{flex:none;width:20px;height:20px}.key.filled{color:var(--zs-on-fill);background:linear-gradient(var(--zs-fill), var(--zs-fill)) padding-box, linear-gradient(to bottom, #ffffff52, color-mix(in srgb, var(--zs-fill) 65%, #000) 45%) border-box}.key.filled:hover{filter:brightness(1.08)}.key.filled:active{filter:brightness(.82)}.key.tonal{color:var(--zs-text);background:linear-gradient(var(--zs-well), var(--zs-well)) padding-box, linear-gradient(to bottom, var(--zs-bevel), var(--zs-line) 45%) border-box}.key.tonal svg{color:var(--zs-blue)}.key.tonal:hover{background:linear-gradient(color-mix(in srgb, var(--zs-well) 80%, var(--zs-line)), color-mix(in srgb, var(--zs-well) 80%, var(--zs-line))) padding-box, linear-gradient(to bottom, var(--zs-bevel), var(--zs-line) 45%) border-box}.keys{flex-wrap:wrap;gap:10px;display:flex}.keys .key{flex:1 1 0;min-width:max-content}@media not (min-width:420px){.keys .key{min-width:100%}}.ban,.chips li{--ban:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'><circle cx='12' cy='12' r='9.5'/><path d='m5.3 5.3 13.4 13.4'/></svg>")}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chips li{font:600 .8rem/1.45 var(--zs-sans);border-radius:var(--zs-r-chip);background:var(--zs-risky-fill);color:var(--zs-risky-text);padding:5px 10px 5px 2.1em;position:relative}.chips li:before,.ban:before{content:"";background:var(--zs-risky-line);-webkit-mask:var(--ban) center / contain no-repeat;-webkit-mask:var(--ban) center / contain no-repeat;mask:var(--ban) center / contain no-repeat}.chips li:before{width:1.05em;height:1.05em;margin-top:-.525em;position:absolute;top:50%;left:.7em}.ban:before{flex:none;width:1.05em;height:1.05em;margin-top:.27em;display:inline-block}.promises{margin:0;padding:0;list-style:none;display:grid}.promises li{gap:10px;padding:12px 0;font-weight:500;display:flex}.promises li+li{border-top:1px solid var(--zs-line)}.bar{z-index:50;background:var(--zs-ground);border-bottom:1px solid var(--zs-line);position:sticky;top:0}.bar-in{justify-content:space-between;align-items:center;gap:12px;min-height:64px;display:flex}.brand{min-height:48px;color:var(--zs-text);font:700 1.05rem/1 var(--zs-mono);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand img{border-radius:9px;width:34px;height:34px}.bar nav{align-items:center;gap:2px;display:flex}.bar nav a:not(.key){border-radius:var(--zs-r-row);min-height:48px;color:var(--zs-soft);align-items:center;padding:0 12px;font-size:.94rem;font-weight:500;text-decoration:none;display:inline-flex}.bar nav a:not(.key):hover,.bar nav a[aria-current=page]:not(.key){color:var(--zs-text);background:var(--zs-well)}.bar .key{border-radius:var(--zs-r-header-key);white-space:nowrap;min-height:48px;margin-left:8px;padding:0 16px;font-size:.9rem}@media not (min-width:21.25em){.brand-name{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.bar .key{margin-left:0;padding:0 12px}}@media not (min-width:900px){.bar nav a.lesser{display:none}}.foot{border-top:1px solid var(--zs-line);color:var(--zs-soft);padding-block:28px 36px;font-size:.94rem}.foot-in{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;display:flex}.foot nav{flex-wrap:wrap;gap:0 2px;margin-inline:-8px;display:flex}.foot nav a,.foot .by a{min-height:48px;color:var(--zs-soft);align-items:center;padding:0 8px;text-decoration:none;display:inline-flex}.foot .by a{color:var(--zs-text);padding:0;font-weight:600}.foot nav a:hover,.foot .by a:hover{color:var(--zs-text);text-decoration:underline}.foot nav a[aria-current=page]{color:var(--zs-text);font-weight:600}.looks{border:0;min-width:0;margin:22px 0 0;padding:0}.looks legend{margin-left:0;padding:0}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:640px;display:grid}@media (min-width:600px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}.tt{border-radius:var(--zs-r-theme-tile);border:1px solid var(--zs-line);background:var(--zs-well);min-height:48px;color:var(--zs-text);font:600 .88rem/1.35 var(--zs-sans);cursor:pointer;flex-direction:column;gap:8px;padding:8px 8px 10px;display:flex;position:relative}.tt small{color:var(--zs-soft);font-size:.78rem;font-weight:400;display:block}.tt:has(input:checked){background:var(--zs-chosen);color:var(--zs-on-chosen);border-color:var(--zs-glow);box-shadow:0 0 0 1px var(--zs-glow)}.tt:has(input:checked) small{color:var(--zs-on-chosen)}.tt:has(input:focus-visible){outline:2px solid var(--zs-glow);outline-offset:3px}.tt .tk{background:var(--zs-fill);color:#fff;width:22px;height:22px;box-shadow:0 0 0 2px var(--zs-plate);border-radius:50%;place-items:center;display:none;position:absolute;top:4px;right:4px}.tt .tk svg{width:13px;height:13px}.tt:has(input:checked) .tk{display:grid}.pv{border-radius:var(--zs-r-tile-preview);border:1px solid #7f7f7f59;flex-direction:column;gap:5px;height:46px;padding:8px;display:flex;overflow:hidden}.pv i{border-radius:3px;height:5px;display:block}.pv .t{width:44%;height:6px}.pv .p{border-radius:5px;height:16px;position:relative}.pv .p:after{content:"";background:#0068ff;border-radius:3px;height:5px;position:absolute;top:5px;left:6px;right:40%}.pv.l{background:#f6f7f9}.pv.l .t{background:#121418}.pv.l .p{background:#fff;box-shadow:0 0 0 1px #dfe2e8}.pv.d{background:#111215}.pv.d .t{background:#eceef2}.pv.d .p{background:#18191d;box-shadow:0 0 0 1px #2a2c33}.pv.b{background:#000}.pv.b .t{background:#fff}.pv.b .p{background:#0d0d10;box-shadow:0 0 0 1px #24252b}.pv.a{background:linear-gradient(135deg,#f6f7f9 50%,#000 50%)}.pv.a .t{background:linear-gradient(90deg,#121418 60%,#fff 60%)}.pv.a .p{background:linear-gradient(135deg,#fff 50%,#0d0d10 50%);box-shadow:0 0 0 1px #8a8d96}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.key:active{transform:none}}@media (min-width:2400px){html{zoom:1.5}}@media (min-width:3200px){html{zoom:2}}html{scroll-behavior:smooth;scroll-padding-top:76px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.sprite{width:0;height:0;position:absolute;overflow:hidden}svg.i{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.top{background:radial-gradient(70% 420px at 50% 0%, color-mix(in srgb, var(--zs-glow) 13%, transparent), transparent)}.paper-head{padding-block:clamp(36px,7vw,88px) clamp(32px,5vw,56px)}.paper-head h1{text-wrap:balance;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.15}.lede{max-width:60ch;color:var(--zs-soft);margin-top:20px;font-size:clamp(1.02rem,.96rem + .3vw,1.14rem)}.toc{flex-wrap:wrap;gap:6px 8px;margin-top:24px;display:flex}.toc a{border-radius:var(--zs-r-header-key);background:linear-gradient(var(--zs-well), var(--zs-well)) padding-box, linear-gradient(to bottom, var(--zs-bevel), var(--zs-line) 45%) border-box;min-height:48px;color:var(--zs-text);border:1px solid #0000;align-items:center;padding:0 16px;font-size:.94rem;font-weight:500;text-decoration:none;display:inline-flex}.toc a:hover{background:linear-gradient(color-mix(in srgb, var(--zs-well) 80%, var(--zs-line)), color-mix(in srgb, var(--zs-well) 80%, var(--zs-line))) padding-box, linear-gradient(to bottom, var(--zs-bevel), var(--zs-line) 45%) border-box}.paper section{border-top:1px solid var(--zs-line);padding-block:clamp(40px,6vw,80px)}.sub{max-width:62ch;color:var(--zs-soft);margin-top:12px;font-size:clamp(1.02rem,.96rem + .3vw,1.1rem)}.part{margin-top:48px;font-size:1.2rem}.part+.sub{margin-top:8px}.part+.plate,.part+.stats{margin-top:16px}.rows{margin:32px 0 0;padding:4px 0;list-style:none;display:grid}.sub+.rows,.sub+.table{margin-top:20px}.rows>li{align-items:flex-start;gap:16px;min-width:0;padding:16px 18px;display:flex;position:relative}.rows>li+li:before{content:"";background:var(--zs-line);height:1px;position:absolute;top:0;left:74px;right:18px}.rows.plain>li+li:before{left:18px}@media (min-width:840px){.rows{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8px}.rows>li:nth-child(2):before{display:none}}.rows>li>div{min-width:0}.rows h3,.rows h4,.ticks h4{margin:0;font-size:1.06rem;font-weight:600;line-height:1.3}.rows p,.ticks p{max-width:64ch;color:var(--zs-soft);margin-top:4px;font-size:.97rem}.tile{border-radius:var(--zs-r-feature-tile);background:var(--zs-chosen);width:40px;height:40px;color:var(--zs-blue);flex:none;place-items:center;display:grid}.tile svg{width:21px;height:21px}@media not (min-width:480px){.rows>li{gap:12px;padding-inline:14px}.rows>li+li:before{left:66px;right:14px}.rows.plain>li+li:before{left:14px}}.promise{margin-top:24px}.more{color:var(--zs-soft);margin-top:16px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:32px 0 0;padding:0;list-style:none;display:grid}@media (min-width:840px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media not (min-width:20em){.stats{grid-template-columns:minmax(0,1fr)}}.stats>li{flex-direction:column;gap:6px;min-width:0;padding:18px 20px 20px;display:flex}.stats .n{font:700 clamp(1.6rem, 1.2rem + 1.6vw, 2.2rem) / 1.1 var(--zs-mono);font-variant-numeric:tabular-nums;color:var(--zs-text)}.stats span{color:var(--zs-soft);font-size:.94rem;line-height:1.45}.table{padding:4px 0;overflow:hidden}.table table{border-collapse:collapse;width:100%;font-size:.97rem}.table th,.table td{text-align:left;vertical-align:top;padding:12px 18px}.table thead th{font:700 .82rem/1.45 var(--zs-mono);color:var(--zs-soft);border-bottom:1px solid var(--zs-line)}.table tbody tr+tr>*{border-top:1px solid var(--zs-line)}.table tbody th{color:var(--zs-text);font-weight:600}.table td{color:var(--zs-soft)}@media (min-width:40em){.table tbody th{width:34%}}.table .n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.table td.n{font:700 1rem/1.6 var(--zs-mono);font-variant-numeric:tabular-nums;color:var(--zs-text)}@media not (min-width:40em){.table table,.table tbody,.table tr,.table th,.table td{display:block}.table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.table tbody tr{padding:14px 18px}.table tbody tr+tr{border-top:1px solid var(--zs-line)}.table tbody tr+tr>*{border-top:0}.table tbody th,.table td{padding:0}.table td{margin-top:4px}.table td.n{text-align:left;white-space:normal}.table td[data-label]:before{content:attr(data-label) ": ";font:600 .97rem/1.6 var(--zs-sans);color:var(--zs-soft)}}.ticks{margin:16px 0 0;padding:4px 0;list-style:none}.ticks li{align-items:flex-start;gap:14px;padding:14px 18px;display:flex}.ticks li+li{border-top:1px solid var(--zs-line)}.ticks svg{width:20px;height:20px;color:var(--zs-blue);stroke-width:2.4px;flex:none;margin-top:2px}.ticks li>div{min-width:0}@media not (min-width:480px){.ticks li{gap:12px;padding-inline:14px}}.paper-close{border-top:1px solid var(--zs-line);padding-block:clamp(40px,6vw,72px) clamp(48px,8vw,88px)}.paper-close .keys{max-width:460px;margin-top:20px}
