:root{--gray-50:oklch(98.96% .0021 197.12);--gray-100:oklch(92.97% .0092 258.34);--gray-200:oklch(83.18% .0132 244.29);--gray-300:oklch(73.79% .0201 255.56);--gray-400:oklch(65.72% .0265 259.81);--gray-500:oklch(55.52% .0296 266.41);--gray-600:oklch(45.52% .032 271.33);--gray-700:oklch(37.66% .0364 276.13);--gray-800:oklch(30.85% .0398 277.81);--gray-900:oklch(22.33% .0224 269.03);--blue-50:oklch(98.67% .0084 225.08);--blue-100:oklch(93.68% .0324 245.3);--blue-200:oklch(84.46% .0736 254.88);--blue-300:oklch(74.46% .1132 262.16);--blue-400:oklch(66.53% .1448 271.8);--blue-500:oklch(55.84% .1642 275.74);--blue-600:oklch(45.42% .1465 274.75);--blue-700:oklch(38.68% .1219 273.43);--blue-800:oklch(32% .0946 274.95);--blue-900:oklch(25.33% .0642 267.79);--red-50:oklch(98.07% .0085 44.89);--red-100:oklch(92.79% .0302 25.29);--red-400:oklch(63.24% .171 9.99);--red-500:oklch(54.07% .1771 3.95);--red-600:oklch(45% .1649 2.63);--red-900:oklch(23.89% .0923 347.29);--green-50:oklch(98.38% .0245 137.81);--green-400:oklch(69.04% .1431 155.46);--green-600:oklch(47.16% .0964 156.29);--green-900:oklch(24.81% .0333 198.48);--white:#fff;--near-black:oklch(14.98% .0161 265.8);--paper:var(--white);--ink:var(--gray-900);--ink-2:var(--gray-600);--ink-3:var(--gray-500);--rule:var(--gray-200);--accent:var(--blue-500);--accent-ink:var(--blue-600);--accent-soft:var(--blue-50);--warn:var(--red-600);--warn-soft:var(--red-50);--ok:var(--green-600);--code-bg:transparent;--code-head:transparent;--tk-c:var(--gray-500);--tk-s:var(--blue-700);--tk-k:var(--blue-600);--tk-n:var(--gray-700);--tk-t:var(--blue-500);--tk-p:var(--blue-500);--tk-f:var(--gray-900);--tk-d:var(--red-600);--ring:inset 0 0 0 1px oklch(20.39% .0196 262.04/.06);--ring-firm:inset 0 0 0 1px oklch(20.39% .0196 262.04/.12);--line-t:inset 0 1px 0 oklch(20.39% .0196 262.04/.08);--line-b:inset 0 -1px 0 oklch(20.39% .0196 262.04/.08);--line-t-firm:inset 0 1px 0 oklch(20.39% .0196 262.04/.15);--shadow-s:0 1px 2px oklch(40% .02 264/.04), 0 2px 6px oklch(40% .02 264/.04), 0 5px 14px oklch(40% .02 264/.05);--shadow-m:0 1px 2px oklch(40% .02 264/.04), 0 6px 16px oklch(40% .02 264/.05), 0 14px 38px oklch(40% .02 264/.07);--shadow-l:0 2px 4px oklch(40% .02 264/.04), 0 12px 32px oklch(40% .02 264/.07), 0 26px 80px oklch(40% .02 264/.11);--shadow-control:var(--ring), var(--shadow-s);--shadow-control-hover:var(--ring), var(--shadow-m);--shadow-popover:var(--ring), var(--shadow-m);--shadow-modal:var(--ring), var(--shadow-l);--tint-hover:color-mix(in oklch, var(--accent) 10%, var(--paper));--tint-pressed:color-mix(in oklch, var(--accent) 16%, var(--paper));--ink-hover:var(--accent-ink);--selection-bg:color-mix(in oklch, var(--accent) 24%, var(--paper));--focus:0 0 0 1px var(--accent), 0 0 0 4px color-mix(in oklch, var(--accent) 22%, transparent);--serif:Charter, "Charis SIL", XCharter, "Iowan Old Style", Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--measure:45rem;--content:61.5rem;--page:96rem;--gutter:clamp(1rem, 4vw, 2.5rem);--wide:var(--content);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-9:2.25rem;--space-10:2.5rem;--space-11:2.75rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--gap-xs:var(--space-1);--gap-sm:var(--space-2);--gap-md:var(--space-3);--gap-lg:var(--space-4);--pad-control-y:var(--space-1);--pad-control-x:var(--space-3);--pad-surface:var(--space-3);--pad-surface-lg:var(--space-4);--pad-modal-y:var(--space-4);--pad-modal-x:var(--space-5);--control-h-xs:var(--space-7);--control-h-sm:var(--space-8);--control-h-md:var(--space-9);--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--radius-circle:50%;--text-large-title:1.625rem;--lh-large-title:2rem;--text-title-1:1.375rem;--lh-title-1:1.625rem;--text-title-2:1.0625rem;--lh-title-2:1.375rem;--text-title-3:.9375rem;--lh-title-3:1.25rem;--text-headline:.8125rem;--lh-headline:1rem;--text-body:.8125rem;--lh-body:1rem;--text-callout:.75rem;--lh-callout:.9375rem;--text-subheadline:.6875rem;--lh-subheadline:.875rem;--text-footnote:.625rem;--lh-footnote:.8125rem;--text-caption:.625rem;--lh-caption:.8125rem;--text-display-1:2.625rem;--lh-display-1:2.875rem;--text-display-2:2.0625rem;--lh-display-2:2.375rem;--lh-prose:1.6;--weight-extra-light:200;--weight-light:300;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-headline:600;--weight-bold:700;--ease-out-quint:cubic-bezier(.23, 1, .32, 1);--ease-out-quad:cubic-bezier(.25, .46, .45, .94);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width>=64rem){:root{--pad-control-x:var(--space-4);--pad-surface:var(--space-4);--pad-surface-lg:var(--space-5);--pad-modal-x:var(--space-6);--gap-lg:var(--space-5);--control-h-md:var(--space-10)}}@media (prefers-color-scheme:dark){:root{--paper:var(--near-black);--ink:var(--gray-50);--ink-2:var(--gray-300);--ink-3:var(--gray-400);--rule:var(--gray-800);--accent:var(--blue-400);--accent-ink:var(--blue-300);--accent-soft:var(--blue-900);--warn:var(--red-400);--warn-soft:var(--red-900);--ok:var(--green-400);--ring:inset 0 0 0 1px oklch(100% 0 0/.1);--ring-firm:inset 0 0 0 1px oklch(100% 0 0/.16);--line-t:inset 0 1px 0 oklch(100% 0 0/.1);--line-b:inset 0 -1px 0 oklch(100% 0 0/.1);--line-t-firm:inset 0 1px 0 oklch(100% 0 0/.16);--shadow-s:inset 0 1px 0 oklch(100% 0 0/.06), 0 2px 8px oklch(0% 0 0/.5);--shadow-m:inset 0 1px 0 oklch(100% 0 0/.06), 0 10px 28px oklch(0% 0 0/.55);--shadow-l:inset 0 1px 0 oklch(100% 0 0/.08), 0 18px 56px oklch(0% 0 0/.6);--focus:0 0 0 1px var(--accent), 0 0 0 4px color-mix(in oklch, var(--accent) 30%, transparent);--tk-c:var(--gray-400);--tk-s:var(--blue-200);--tk-k:var(--blue-300);--tk-n:var(--gray-300);--tk-t:var(--blue-300);--tk-p:var(--blue-300);--tk-f:var(--gray-50);--tk-d:var(--red-400)}}*,:before,:after{box-sizing:border-box;border:0 solid #0000}button,input,select,textarea{appearance:none}html{-webkit-text-size-adjust:100%;scroll-behavior:auto}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--text-title-2);line-height:var(--lh-prose);font-kerning:normal;font-variant-ligatures:common-ligatures;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}.page{max-width:var(--page);padding:0 var(--gutter) var(--space-24);margin:0 auto}.shell{display:block}.content{min-width:0;container-type:inline-size}.chapter,.frontmatter,.backmatter,section#footnotes,footer.colophon{margin-inline:auto}.chapter,.frontmatter,.backmatter{max-width:var(--measure)}.chapter>figure.plate,.chapter>figure.widget,.chapter>.table-scroll,.chapter>.wide{width:min(100cqw, var(--content));margin-left:50%;transform:translate(-50%)}.chapter>pre{width:fit-content;min-width:100%;max-width:min(100cqw, var(--content));margin-left:50%;transform:translate(-50%)}.chapter>figure.fig{width:min(100cqw, var(--content), max(100%, var(--fig-w,0px)));margin-left:50%;transform:translate(-50%)}.part-opener{margin-inline:auto}.content{overflow-x:clip}.fn-mark{vertical-align:.32em;width:1.2em;height:1.2em;font-family:var(--sans);font-size:.66em;font-weight:var(--weight-semibold);color:var(--accent-ink);background:var(--accent-soft);border-radius:var(--radius-circle);cursor:help;box-shadow:var(--shadow-control);transition:background-color .15s ease, color .15s ease, transform .15s var(--ease-out-quad);justify-content:center;align-items:center;margin:0 .06em 0 .12em;padding:0;line-height:1;display:inline-flex;position:relative}@media (hover:hover) and (pointer:fine){.fn-mark:hover{background:var(--tint-hover);color:var(--ink-hover)}}.fn-mark[data-pressed]{background:var(--tint-pressed);transform:scale(.92)}.fn-mark[data-focus-visible]{box-shadow:var(--shadow-control), var(--focus)}@media (pointer:coarse){.fn-mark:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}.fn-tip{max-width:min(26rem,100vw - 2rem);font-family:var(--sans);font-size:var(--text-title-3);background:var(--paper);color:var(--ink-2);border-radius:var(--radius-md);box-shadow:var(--shadow-popover);padding:var(--space-3) var(--space-4);line-height:1.5}.fn-tip code{overflow-wrap:anywhere;font-size:.92em}.fn-tip .fnurl{display:none}.fn-tip{opacity:1;transition:opacity .18s var(--ease-out-quint), transform .18s var(--ease-out-quint);transform:none}.fn-tip[data-entering]{opacity:0;transform:translateY(.25rem)scale(.97)}.fn-tip[data-exiting]{opacity:0;transition:opacity .12s var(--ease-out-quad), transform .12s var(--ease-out-quad);transform:translateY(.15rem)scale(.985)}@media (prefers-reduced-motion:reduce){.fn-tip,.fn-tip[data-entering],.fn-tip[data-exiting],.fn-mark[data-pressed]{transform:none}}a{color:var(--accent-ink);text-underline-offset:.18em;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px;transition:text-decoration-color .12s}a:hover{-webkit-text-decoration-color:var(--accent-ink);text-decoration-color:var(--accent-ink)}:focus,:focus-visible{outline:none}[data-focus-visible],details.fold>summary:focus-visible,section#footnotes a:focus-visible{box-shadow:var(--focus);border-radius:var(--radius-xs)}::selection{background:var(--selection-bg);color:var(--ink)}p,li,dd,dt,figcaption,blockquote,.fn-tip,.toc-dialog .toc-ch{text-wrap:pretty}.masthead .subtitle,.masthead .standfirst,p.lede,p.rule,.part-opener .part-deck,.part-opener .part-kicker{text-wrap:balance}p{margin:0 0 var(--space-5)}p.rule{margin:var(--space-6) 0;padding:var(--space-3) var(--space-5);background:var(--accent-soft);border-radius:var(--radius-sm);font-family:var(--sans);font-size:var(--text-title-2);line-height:var(--lh-prose);color:var(--ink)}details.fold{margin:var(--space-5) 0 var(--space-6);border-radius:var(--radius-sm);box-shadow:var(--ring)}details.fold>summary{cursor:pointer;padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-2);list-style:none;display:flex}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary:before{content:"▸";color:var(--ink-3);font-size:var(--text-title-3)}details.fold[open]>summary:before{content:"▾"}details.fold>summary h3{font-size:var(--text-title-2);line-height:var(--lh-title-2);margin:0}details.fold>summary h3 .anchor{display:none}details.fold .fold-body{padding:0 var(--space-4) var(--space-2);box-shadow:var(--line-t)}details.fold .fold-body>:first-child{margin-top:var(--space-4)}p.lede{font-size:var(--text-title-1);color:var(--ink-2);margin-bottom:var(--space-9);line-height:1.45}p.next{margin-top:var(--space-8);padding:var(--space-3) 0 0;box-shadow:var(--line-t);color:var(--ink-2);font-family:var(--sans);font-size:var(--text-title-3);line-height:var(--lh-prose)}strong{font-weight:var(--weight-bold)}em{font-style:italic}small,.small{font-size:.875em}hr{background:var(--rule);height:1px;margin:var(--space-12) 0;border:0}ul,ol{margin:0 0 var(--space-5);padding-left:var(--space-6)}li{margin-bottom:var(--space-2)}li>ul,li>ol{margin-top:var(--space-2)}h1,h2,h3,h4{font-family:var(--serif);letter-spacing:0;color:var(--ink);text-wrap:balance}h1{font-size:var(--text-display-1);line-height:var(--lh-display-1);font-weight:var(--weight-medium);margin:0 0 var(--space-3);letter-spacing:-.015em}h2{font-size:var(--text-display-2);line-height:var(--lh-display-2);font-weight:var(--weight-extra-light);margin:var(--space-14) 0 var(--space-4);padding-top:var(--space-6);box-shadow:var(--line-t-firm);letter-spacing:-.01em}h3{font-size:var(--text-large-title);line-height:var(--lh-large-title);font-weight:var(--weight-normal);margin:var(--space-10) 0 var(--space-3)}h4{font-size:var(--text-title-1);line-height:var(--lh-title-1);font-weight:var(--weight-normal);margin:var(--space-7) 0 var(--space-2);color:var(--ink-2)}@media (width<=40rem){h1{font-size:var(--text-display-2);line-height:var(--lh-display-2)}h2{font-size:var(--text-large-title);line-height:var(--lh-large-title)}h3{font-size:var(--text-title-1);line-height:var(--lh-title-1)}h4{font-size:var(--text-title-2);line-height:var(--lh-title-2)}}h2 .num,h3 .num,h4 .num{color:var(--accent-ink);font-variant-numeric:tabular-nums;font-weight:var(--weight-extra-light);margin-right:.5em}.chapter>h2{position:relative}@media (width>=78rem){.chapter>h2 .num{margin-right:var(--space-4);font-size:var(--text-large-title);line-height:1;font-weight:var(--weight-light);color:var(--ink-3);letter-spacing:-.02em;position:absolute;top:1.5rem;right:100%}.chapter.first-in-part>h2 .num{top:0}}.anchor{font-weight:var(--weight-normal);color:var(--ink-3);opacity:0;border:0;margin-left:.4em;font-size:.8em}h2:hover .anchor,h3:hover .anchor,h4:hover .anchor,.anchor:focus{opacity:1}h2,h3,h4,:target{scroll-margin-top:var(--space-6)}.masthead{padding:var(--space-10) 0 var(--space-8);margin:0 auto var(--space-6);max-width:var(--content);text-align:left;box-shadow:var(--line-b);justify-items:start;gap:0;display:grid}.masthead .subtitle{font-family:var(--sans);font-size:var(--text-title-1);line-height:var(--lh-title-1);font-weight:var(--weight-normal);color:var(--accent-ink);margin:0 0 var(--space-3);letter-spacing:-.005em}.masthead .standfirst{font-size:var(--text-title-2);line-height:var(--lh-prose);color:var(--ink-2);max-width:var(--measure);text-align:left;margin:0}@media (width>=64rem){.masthead{padding:var(--space-20) 0 var(--space-12)}.masthead .subtitle{margin-bottom:var(--space-6)}}.audience{justify-items:center;gap:var(--space-2);max-width:var(--measure);margin:0 auto var(--space-14);text-align:center;display:grid}.audience b{font-size:var(--text-subheadline);line-height:var(--lh-subheadline);font-weight:var(--weight-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.audience p{font-family:var(--sans);font-size:var(--text-title-2);line-height:var(--lh-prose);color:var(--ink-2);text-wrap:pretty;max-width:34rem;margin:0}footer.colophon dl.facts{font-size:var(--text-callout);line-height:var(--lh-callout);color:var(--ink-3);gap:var(--space-4) var(--space-8);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}footer.colophon dl.facts .fact{gap:var(--space-1);align-content:start;display:grid}footer.colophon dl.facts dt{font-weight:var(--weight-medium);color:var(--ink-3);margin:0}footer.colophon dl.facts dd{color:var(--ink-2);margin:0}@media (width<=52rem){.masthead{padding-top:var(--space-10)}footer.colophon dl.facts{row-gap:var(--space-3);grid-template-columns:1fr}}.opening{max-width:var(--content);margin:0 auto var(--space-16)}.ways{gap:var(--space-12);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=60rem){.ways{gap:var(--space-16);grid-template-columns:minmax(0,21rem) minmax(0,1fr)}}.way>h2{font-family:var(--serif);font-size:var(--text-title-1);line-height:var(--lh-title-1);font-weight:var(--weight-normal);letter-spacing:0;text-transform:none;color:var(--ink);margin:0 0 var(--space-2);box-shadow:none;padding:0}.way-note{font-size:var(--text-title-3);color:var(--ink-2);margin:0 0 var(--space-5);text-wrap:pretty;max-width:30rem;line-height:1.45}.way-list{margin:0;padding:0;list-style:none}.way-list>li{margin:0}.way-list>li+li>.way-row{box-shadow:var(--line-t)}.way-row{gap:var(--space-3);padding:var(--space-3);margin-inline:calc(-1 * var(--space-3));color:var(--ink);transition:background-color .15s var(--ease-out-quad);grid-template-columns:1fr;text-decoration:none;display:grid}.way-list-parts .way-row{grid-template-columns:2.25rem minmax(0,1fr);align-items:baseline}.way-body{gap:var(--space-1);min-width:0;display:grid}.way-num{font-family:var(--serif);font-size:var(--text-title-2);line-height:var(--lh-title-2);color:var(--accent-ink);font-variant-numeric:tabular-nums}.way-title{font-size:var(--text-title-2);line-height:var(--lh-title-2);color:var(--ink);text-wrap:pretty}.way-wants{font-size:var(--text-title-3);color:var(--ink-2);text-wrap:pretty;line-height:1.5}.way-meta{font-family:var(--sans);font-size:var(--text-callout);line-height:var(--lh-callout);color:var(--ink-3);font-variant-numeric:tabular-nums}.way-gate{color:var(--accent-ink)}.way-gate:before{content:"·";color:var(--ink-3);margin-right:.4em}@media (hover:hover) and (pointer:fine){.way-row:hover{background:var(--tint-hover)}.way-row:hover .way-title{color:var(--accent-ink)}}.way-row[data-pressed]{background:var(--tint-pressed)}.way-row:hover{text-decoration:none}.way-list .way-row[data-focus-visible]{box-shadow:var(--focus)}.toc-trigger{z-index:40;left:var(--gutter);align-items:center;gap:var(--space-2);max-width:min(22rem, calc(100vw - 2 * var(--gutter)));font-family:var(--sans);text-align:left;cursor:pointer;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);box-shadow:var(--shadow-control);transition:transform .15s var(--ease-out-quad), box-shadow .15s ease;display:flex;position:fixed;bottom:clamp(1rem,3vw,1.75rem)}@media (hover:hover) and (pointer:fine){.toc-trigger:hover{background:color-mix(in srgb, var(--tint-hover) 88%, transparent);box-shadow:var(--shadow-control-hover)}}.toc-trigger[data-pressed]{background:color-mix(in srgb, var(--tint-pressed) 88%, transparent);transform:scale(.97)}.toc-trigger[data-focus-visible]{box-shadow:var(--shadow-control), var(--focus)}.toc-trigger-mark{border-radius:var(--radius-xs);background:var(--accent);opacity:.85;flex:none;width:.9rem;height:.9rem}.toc-trigger-where{min-width:0;display:grid}.toc-trigger-group{font-size:var(--text-footnote);line-height:var(--lh-footnote);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toc-trigger-ch{font-size:var(--text-body);line-height:var(--lh-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toc-trigger-ch .num{color:var(--ink-3);font-variant-numeric:tabular-nums;margin-right:.45em}.toc-overlay{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:1;transition:opacity .22s var(--ease-out-quint);background:oklch(0% 0 0/.28);position:fixed;inset:0}.toc-overlay[data-entering]{opacity:0}.toc-overlay[data-exiting]{opacity:0;transition:opacity .14s var(--ease-out-quad)}.toc-modal{left:var(--gutter);width:min(84rem, calc(100vw - 2 * var(--gutter)));background:var(--paper);border-radius:var(--radius-lg);max-height:min(84svh,52rem);box-shadow:var(--shadow-modal);transform-origin:0 100%;opacity:1;transition:opacity .22s var(--ease-out-quint), transform .22s var(--ease-out-quint);position:fixed;bottom:clamp(1rem,3vw,1.75rem);overflow:hidden;transform:none}.toc-modal[data-entering]{opacity:0;transform:translateY(.75rem)scale(.96)}.toc-modal[data-exiting]{opacity:0;transition:opacity .14s var(--ease-out-quad), transform .14s var(--ease-out-quad);transform:translateY(.375rem)scale(.985)}.toc-dialog{max-height:inherit;padding:var(--space-6) clamp(var(--pad-modal-x), 3vw, var(--space-6)) var(--space-6);font-family:var(--sans);outline:0;overflow-y:auto}.toc-dialog ol{margin:0;padding:0;list-style:none}.toc-dialog li{margin:0}.toc-dialog{container-type:inline-size}.toc-dialog .toc-parts{columns:3;column-gap:var(--space-9);display:block}.toc-dialog .toc-part{break-inside:avoid;margin:0 0 var(--space-5)}@container (width>=58rem){.toc-dialog .toc-parts{columns:4}}@container (width<=45rem){.toc-dialog .toc-parts{columns:2}}@container (width<=29rem){.toc-dialog .toc-parts{columns:1}}.toc-dialog .toc-part>b{font-family:var(--sans);font-size:var(--text-subheadline);line-height:var(--lh-subheadline);font-weight:var(--weight-medium);letter-spacing:.01em;color:var(--accent-ink);margin:0 0 var(--space-2);display:block}.toc-dialog .toc-ch{font-size:var(--text-title-3);line-height:var(--lh-title-3);padding:var(--space-1) 0}.toc-dialog .toc-ch>a{color:var(--ink);border:0;grid-template-columns:1.9em minmax(0,1fr);display:grid}.toc-dialog .toc-ch>a:hover{background:var(--tint-hover);color:var(--ink-hover)}.toc-dialog .toc-ch .num{color:var(--ink-3);font-variant-numeric:tabular-nums}@media (width<=40rem){.toc-trigger{left:var(--gutter);right:var(--gutter);max-width:none}.toc-modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:82svh;bottom:0;left:0;right:0}}@media (prefers-reduced-motion:reduce){.toc-modal,.toc-modal[data-entering],.toc-modal[data-exiting],.toc-trigger[data-pressed]{transform:none}}.sources{margin-top:var(--space-12)}.sources-trigger{align-items:center;gap:var(--space-2);min-height:var(--control-h-md);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--paper);color:var(--ink-2);box-shadow:var(--shadow-control);font-family:var(--sans);font-size:var(--text-body);line-height:var(--lh-body);cursor:pointer;transition:transform .15s var(--ease-out-quad), box-shadow .15s ease;display:inline-flex}@media (hover:hover) and (pointer:fine){.sources-trigger:hover{background:var(--tint-hover);box-shadow:var(--shadow-control-hover)}}.sources-trigger[data-pressed]{background:var(--tint-pressed);transform:scale(.97)}.sources-trigger[data-focus-visible]{box-shadow:var(--shadow-control), var(--focus)}.sources-overlay{z-index:50;padding:var(--gutter);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:1;transition:opacity .22s var(--ease-out-quint);background:oklch(0% 0 0/.32);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sources-overlay[data-entering]{opacity:0}.sources-overlay[data-exiting]{opacity:0;transition:opacity .14s var(--ease-out-quad)}.sources-modal{background:var(--paper);border-radius:var(--radius-lg);width:min(44rem,100%);max-height:min(82svh,44rem);box-shadow:var(--shadow-modal);opacity:1;transition:opacity .22s var(--ease-out-quint), transform .22s var(--ease-out-quint);outline:0;overflow:hidden;transform:none}.sources-modal[data-entering]{opacity:0;transform:translateY(.75rem)scale(.96)}.sources-modal[data-exiting]{opacity:0;transition:opacity .14s var(--ease-out-quad), transform .14s var(--ease-out-quad);transform:translateY(.375rem)scale(.985)}.sources-dialog{max-height:inherit;font-family:var(--sans);outline:0;flex-direction:column;display:flex;overflow:hidden}.sources-head{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--pad-modal-y) var(--pad-modal-x) var(--pad-surface);box-shadow:var(--line-b);flex:none;display:flex}.sources-title{font-family:var(--sans);font-size:var(--text-title-2);line-height:var(--lh-title-2);font-weight:var(--weight-semibold);letter-spacing:normal;color:var(--ink);margin:0}.sources-close{width:var(--control-h-sm);height:var(--control-h-sm);border-radius:var(--radius-sm);color:var(--ink-2);box-shadow:var(--ring);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.sources-close[data-hovered]{background:var(--tint-hover);color:var(--ink-hover)}.sources-close[data-focus-visible]{box-shadow:var(--ring), var(--focus)}.sources-close-icon{width:.9rem;height:.9rem}.sources-list{min-height:0;padding:var(--pad-modal-y) var(--pad-modal-x) var(--space-6) var(--space-8);font-family:var(--sans);flex:1;margin:0;overflow-y:auto}.sources-fallback{display:none}.sources-list li{padding:var(--space-3) 0;color:var(--ink-2);font-size:var(--text-title-3);line-height:var(--lh-prose);margin:0}.sources-list li+li{box-shadow:var(--line-t)}.sources-list li::marker{color:var(--ink-3);font-variant-numeric:tabular-nums}.sources-list li>p{margin:0;display:inline}.source-jump{width:var(--control-h-xs);height:var(--control-h-xs);border-radius:var(--radius-pill);box-shadow:var(--ring);color:var(--accent-ink);vertical-align:middle;justify-content:center;align-items:center;margin-left:.4em;text-decoration:none;display:inline-flex}.source-jump[data-hovered]{background:var(--tint-hover);color:var(--ink-hover);text-decoration:none}.source-jump[data-focus-visible]{box-shadow:var(--ring), var(--focus)}.source-jump-icon{width:.8rem;height:.8rem}@media (width<=40rem){.sources-overlay{align-items:flex-end;padding:0}.sources-modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:82svh}}@media (prefers-reduced-motion:reduce){.sources-modal,.sources-modal[data-entering],.sources-modal[data-exiting],.sources-trigger[data-pressed]{transform:none}}.part-opener{width:min(100cqw, var(--content));margin:var(--space-20) 0 var(--space-10);position:relative}main>.part-opener:first-child{margin-top:var(--space-4)}.part-opener{padding:var(--space-10) clamp(var(--space-6), 3vw, var(--space-10)) var(--space-10);background:var(--paper);box-shadow:var(--ring);border-radius:var(--radius-lg);gap:var(--space-6) var(--space-12);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);display:grid;overflow:hidden}@media (width<=52rem){.part-opener{grid-template-columns:1fr}}.part-opener:before{content:attr(data-numeral);font-family:var(--sans);font-size:clamp(6rem,14vw,10rem);font-weight:var(--weight-semibold);color:var(--accent-soft);letter-spacing:-.04em;pointer-events:none;opacity:.9;line-height:1;position:absolute;top:-1.2rem;right:1rem}.part-opener>*{position:relative}.part-opener .part-kicker{font-family:var(--sans);font-size:var(--text-callout);line-height:var(--lh-callout);letter-spacing:.02em;color:var(--accent-ink);font-weight:var(--weight-medium);margin:0 0 var(--space-2)}.part-opener h2.part-title{margin:0 0 var(--space-3);font-size:var(--text-display-2);line-height:var(--lh-display-2);font-weight:var(--weight-semibold);letter-spacing:-.01em;border:0;padding:0}.part-opener .part-deck{font-size:var(--text-title-1);color:var(--ink-2);margin:0;line-height:1.45}.part-opener .part-contents{font-family:var(--sans);font-size:var(--text-title-3);line-height:var(--lh-title-3);color:var(--ink-2);align-self:end;margin:0;padding:0;list-style:none}.part-opener .part-contents li{padding:var(--space-1) 0;box-shadow:var(--line-t)}.part-opener .part-contents li:first-child{box-shadow:none}.part-opener .part-contents a{color:var(--ink);border:0;display:block}.part-opener .part-contents a:hover{color:var(--accent-ink)}.part-opener .part-contents .num{color:var(--accent-ink);font-variant-numeric:tabular-nums;min-width:1.6em;margin-right:.5em;display:inline-block}.chapter.first-in-part>h2{box-shadow:none;margin-top:var(--space-4);padding-top:0}code,kbd,samp{font-family:var(--mono);font-size:.8125em}p code,li code,td code,dd code,dt code,figcaption code,h2 code,h3 code,h4 code,aside code,th code{color:var(--ink);background:0 0;border:0;padding:0}pre{margin:var(--space-5) 0 var(--space-6);box-shadow:var(--ring);border-radius:var(--radius-sm);font-size:var(--text-body);background:0 0;line-height:1.55;position:relative;overflow:hidden}pre>code{padding:var(--space-4) var(--space-4);tab-size:2;color:var(--ink);background:0 0;border:0;font-size:1em;display:block;overflow-x:auto}pre .code-head{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-4);min-height:var(--control-h-sm);padding:0 var(--space-4);box-shadow:var(--line-b);font-family:var(--mono);font-size:var(--text-callout);line-height:var(--lh-callout);color:var(--ink-2);flex-wrap:wrap;display:flex}pre .code-head .code-file{word-break:break-all;min-width:0}pre .code-head .code-lang{font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-footnote)}pre[data-pseudo] .code-head:after{content:"pseudocode";margin-left:auto;margin-right:var(--space-2);font-family:var(--sans);font-size:var(--text-footnote);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}pre .copy{font-family:var(--sans);font-size:var(--text-footnote);letter-spacing:.04em;padding:0 var(--space-3);min-width:2.75rem;min-height:var(--control-h-xs);box-shadow:var(--shadow-control);background:var(--paper);color:var(--ink-2);border-radius:var(--radius-xs);cursor:pointer;flex:none}pre>.copy{position:absolute;top:.4rem;right:.5rem}pre .copy:hover{background:var(--tint-hover);color:var(--ink-hover);box-shadow:var(--shadow-control-hover)}pre .copy[data-done="1"]{color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}pre.term>code{color:var(--ink)}pre code .c,.tk-c{color:var(--tk-c);font-style:italic}.tk-s{color:var(--tk-s)}.tk-k{color:var(--tk-k)}.tk-n{color:var(--tk-n)}.tk-t{color:var(--tk-t)}.tk-p{color:var(--tk-p)}.tk-f{color:var(--tk-f)}.tk-d{color:var(--tk-d)}table{border-collapse:separate;border-spacing:0;width:100%;margin:var(--space-5) 0 var(--space-6);font-family:var(--sans);font-size:var(--text-title-3);line-height:var(--lh-title-3)}.table-scroll{margin:var(--space-5) 0 var(--space-6);-webkit-overflow-scrolling:touch;overflow-x:auto}.table-scroll>table{min-width:34rem;margin:0}caption{text-align:left;font-weight:var(--weight-semibold);padding:0 0 var(--space-2);color:var(--ink);caption-side:top}th,td{text-align:left;vertical-align:top;padding:var(--space-3);box-shadow:var(--line-t)}thead th{box-shadow:inset 0 2px 0 var(--ink), inset 0 -1px 0 var(--ink);font-family:var(--sans);font-weight:var(--weight-semibold);font-size:var(--text-callout)}tbody tr:last-child td{box-shadow:var(--line-t), var(--line-b)}th:first-child,td:first-child{padding-left:0}th:last-child,td:last-child{padding-right:0}table.faults td:first-child{font-weight:var(--weight-semibold)}table.api td:first-child code{white-space:nowrap}table.compare th:first-child{width:22%}td code,th code{font-size:.84em}figure{margin:var(--space-8) 0 var(--space-9)}figure.fig{padding:var(--space-5) var(--space-5) var(--pad-surface-lg);box-shadow:var(--ring);background:var(--paper);border-radius:var(--radius-md)}figure.fig svg{width:100%;height:auto;display:block}figure.fig svg.mermaid{margin:0 auto}figure.fig svg.mermaid foreignObject>div,figure.fig svg.mermaid .label,figure.fig svg.mermaid span{font-family:var(--sans);color:var(--ink);font-size:14px;line-height:normal}figure.fig svg.mermaid foreignObject code,figure.fig svg.mermaid tspan.mono{font-family:var(--mono);color:inherit;background:0 0;border:0;padding:0;font-size:12.5px}figure.fig svg.mermaid foreignObject b{font-weight:var(--weight-semibold)}figure.fig svg.mermaid .edgeLabel{background:var(--paper)}figure.fig .fig-scroll{-webkit-overflow-scrolling:touch;overflow:auto hidden}@media (width<=48rem){figure.fig .fig-scroll>svg:not(.mermaid){min-width:40rem}}figure.fig.wide .fig-scroll>svg.mermaid{min-width:var(--fig-floor,auto)}p>code,li>code,dd>code,dt>code,td>code,figcaption>code,h2 code,h3 code,h4 code{overflow-wrap:anywhere}figure.fig .fig-tools{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}figure.fig .enlarge{font-family:var(--sans);font-size:var(--text-subheadline);letter-spacing:.04em;padding:0 var(--space-3);min-height:var(--control-h-sm);box-shadow:var(--shadow-control);background:var(--paper);color:var(--ink-2);border-radius:var(--radius-xs);cursor:pointer}figure.fig .enlarge:hover{background:var(--tint-hover);color:var(--ink-hover);box-shadow:var(--shadow-control-hover)}dialog.fig-dialog{background:var(--paper);width:100vw;max-width:none;height:100vh;max-height:none;color:var(--ink);border:0;padding:0}dialog.fig-dialog::backdrop{background:#0006}dialog.fig-dialog .fig-dialog-bar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--pad-modal-x);box-shadow:var(--line-b);font-family:var(--sans);font-size:var(--text-title-3);color:var(--ink-2);display:flex}dialog.fig-dialog .fig-dialog-bar button{font-family:var(--sans);font-size:var(--text-body);padding:0 var(--pad-control-x);min-height:var(--control-h-md);box-shadow:var(--shadow-control);background:var(--paper);color:var(--ink);border-radius:var(--radius-sm);cursor:pointer}dialog.fig-dialog .fig-dialog-bar button:hover{background:var(--tint-hover);color:var(--ink-hover);box-shadow:var(--shadow-control-hover)}dialog.fig-dialog .fig-dialog-body{height:calc(100vh - 3.2rem);padding:var(--pad-surface-lg);overflow:auto}dialog.fig-dialog .fig-dialog-body svg{width:max(100%,56rem);height:auto;margin:0 auto;display:block}figure.fig .figsvg text{fill:var(--ink)}figcaption{font-family:var(--sans);font-size:var(--text-title-3);line-height:var(--lh-prose);color:var(--ink-2);margin-top:var(--space-3)}figcaption b.figlabel{font-family:var(--sans);color:var(--ink);font-size:.92em;font-weight:var(--weight-medium);margin-right:.4em}figure.plate{margin:var(--space-10) 0 var(--space-11)}.plate-frame img{border-radius:var(--radius-md);width:100%;height:auto;display:block}figure.plate .plate-frame img{width:auto;max-width:100%;max-height:min(86svh,52rem);margin-inline:auto}figure.plate figcaption{text-align:left}.svg-brief{display:none}ol.chain{margin:var(--space-5) 0 var(--space-6);gap:var(--space-2) var(--space-1);font-family:var(--sans);font-size:var(--text-title-3);counter-reset:chain;flex-wrap:wrap;align-items:stretch;padding:0;list-style:none;display:flex}ol.chain>li{background:var(--paper);min-width:8rem;box-shadow:var(--ring);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-8);counter-increment:chain;flex:8.5rem;margin:0;line-height:1.35;position:relative}ol.chain>li:before{content:counter(chain);font-size:var(--text-subheadline);font-weight:var(--weight-bold);color:var(--accent-ink);font-variant-numeric:tabular-nums;position:absolute;top:.5rem;left:.55rem}ol.chain>li>b{font-weight:var(--weight-semibold);color:var(--ink);display:block}ol.chain>li>b>code,ol.chain>li>code{background:0 0;border:0;padding:0}ol.chain>li>span{color:var(--ink-2);margin-top:var(--space-1);font-size:.92em;display:block}ol.chain>li.plugin-hook{box-shadow:inset 0 0 0 1px var(--blue-300)}ol.chain>li.gate{box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}ol.chain>li.durable{box-shadow:inset 0 0 0 1px var(--accent)}ol.chain:not(.vertical)>li:not(:last-child):after{content:"→";color:var(--ink-3);font-size:var(--text-title-2);z-index:1;position:absolute;top:50%;right:-.62rem;transform:translateY(-50%)}ol.chain.vertical{gap:var(--space-1);flex-direction:column}ol.chain.vertical>li{min-width:0;padding-left:var(--space-9);flex:none}ol.chain.vertical>li:not(:last-child):after{content:"↓";color:var(--ink-3);font-size:var(--text-title-3);z-index:1;position:absolute;bottom:-1.05rem;left:.7rem}ol.chain.vertical>li:not(:last-child){margin-bottom:var(--space-2)}@media (width<=40rem){ol.chain:not(.vertical){flex-direction:column}ol.chain:not(.vertical)>li:not(:last-child):after{content:"↓";inset:auto auto -1.05rem .7rem;transform:none}ol.chain:not(.vertical)>li:not(:last-child){margin-bottom:var(--space-2)}}.stack{gap:var(--space-1);margin:var(--space-5) 0 var(--space-6);font-family:var(--sans);font-size:var(--text-title-3);flex-direction:column;display:flex}.stack .layer{box-shadow:var(--ring);background:var(--paper);padding:var(--space-2) var(--space-4);border-radius:var(--radius-xs)}.stack .layer b{font-weight:var(--weight-semibold)}.stack .layer span{color:var(--ink-2);font-size:.92em;display:block}.stack .layer.accent{box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}.stack .layer.base{box-shadow:inset 0 0 0 1px var(--ink)}.states{align-items:center;gap:var(--space-1) var(--space-1);margin:var(--space-5) 0 var(--space-6);font-family:var(--sans);font-size:var(--text-body);flex-wrap:wrap;display:flex}.states .state{box-shadow:inset 0 0 0 1px var(--ink);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);background:var(--paper)}.states .state.active{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.states .state.failed{box-shadow:inset 0 0 0 1px var(--warn);background:var(--warn-soft)}.states .arrow{color:var(--ink-3);font-family:var(--sans);padding:0 var(--space-1)}.states .arrow small{font-size:var(--text-subheadline);text-align:center;color:var(--ink-2);display:block}dl.terms{margin:var(--space-5) 0 var(--space-6)}dl.terms dt{font-family:var(--sans);font-size:.9em;font-weight:var(--weight-medium);color:var(--ink);margin-top:var(--space-3)}dl.terms dd{margin:var(--space-1) 0 0 0;padding-left:0}dl.terms dd+dd{margin-top:var(--space-1)}@media (width>=40rem){dl.terms{column-gap:var(--space-6);row-gap:var(--space-2);grid-template-columns:max-content 1fr;display:grid}dl.terms dt,dl.terms dd{margin:0}}aside.note{margin:var(--space-5) 0 var(--space-6);padding:var(--pad-surface-lg);box-shadow:var(--ring);border-radius:var(--radius-sm);font-size:var(--text-title-3);line-height:var(--lh-prose)}aside.note>:last-child{margin-bottom:0}aside.note p{margin-bottom:var(--space-2)}section#footnotes{max-width:var(--content);margin-top:var(--space-16);font-family:var(--sans);font-size:var(--text-title-3);line-height:var(--lh-prose);color:var(--ink-2)}section#footnotes h2{font-size:var(--text-title-2);line-height:var(--lh-title-2);letter-spacing:.06em;text-transform:uppercase}section#footnotes ol{padding-left:var(--space-8);column-gap:var(--space-10)}@media (width>=60rem){section#footnotes ol{columns:2}}@media (width>=100rem){section#footnotes ol{columns:3}}section#footnotes li{margin-bottom:var(--space-2);break-inside:avoid;line-height:1.4}section#footnotes li:target{background:var(--accent-soft)}section#footnotes a{word-break:break-word}section#footnotes .fnback{color:var(--accent-ink);border:0;margin-left:.3em}section#footnotes .fnurl{color:var(--ink-3);overflow-wrap:anywhere;font-size:.9em;display:block}.reading-map table td:first-child{white-space:normal}footer.colophon{max-width:var(--content);margin-top:var(--space-16);padding-top:var(--space-6);box-shadow:var(--line-t);font-family:var(--sans);font-size:var(--text-title-3);line-height:var(--lh-prose);color:var(--ink-2)}.top-link{text-align:right;font-family:var(--sans);font-size:var(--text-body);margin:var(--space-12) 0 0;color:var(--ink-3);border:0;display:block}.skip{background:var(--paper);padding:var(--space-2) var(--space-4);font-family:var(--sans);box-shadow:inset 0 0 0 1px var(--ink);position:absolute;top:0;left:-999px}.skip:focus{z-index:10;box-shadow:inset 0 0 0 1px var(--ink), var(--focus);top:1rem;left:1rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}@media print{:root{--paper:#fff;--ink:#000;--text-title-2:11pt}body{background:#fff}.page{max-width:none;padding:0}a{border:0}pre .copy,.skip,.top-link,.anchor,.toc-trigger,.fn-mark,figure.widget .w-bar,.sources-trigger,.sources-overlay,.sources-modal{display:none!important}.sources-fallback{margin:0 0 var(--space-4);padding-left:var(--space-8);display:block}.sources-fallback .source-jump{display:none}details.fold>summary:before{content:none}figure.widget{break-inside:avoid}figure.widget .widget-root:before{content:"Interactive figure — open the web version to use it.";font-family:var(--sans);font-size:var(--text-body);color:var(--ink-2);margin-bottom:var(--space-2);display:block}.shell{display:block}figure,pre,table,aside.note{break-inside:avoid}h2,h3{break-after:avoid}section#footnotes ol{columns:1}section#footnotes .fnurl{display:block}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}figure.widget{margin:var(--space-8) 0 var(--space-10);box-shadow:var(--ring);border-radius:var(--radius-md);background:var(--paper);padding:0;overflow:hidden}figure.widget .widget-root{padding:var(--pad-surface-lg);font-family:var(--sans);font-size:var(--text-title-3);line-height:var(--lh-title-3);color:var(--ink)}figure.widget figcaption{padding:var(--pad-surface) var(--pad-surface-lg) var(--pad-surface-lg);box-shadow:var(--line-t);background:var(--accent-soft);margin:0}figure.widget figcaption b.figlabel{color:var(--accent-ink)}figure.widget .w-hint{font-size:var(--text-body);color:var(--ink-3);margin:0 0 var(--gap-md)}.w-bar{gap:var(--gap-sm);margin:0 0 var(--gap-lg);flex-wrap:wrap;align-items:center;display:flex}.w-bar .w-sep{flex:auto}.w-btn{font:var(--weight-semibold) var(--text-body)/1 var(--sans);padding:0 var(--pad-control-x);min-height:var(--control-h-md);box-shadow:var(--shadow-control);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.w-btn:hover{background:var(--tint-hover);box-shadow:var(--shadow-control-hover);color:var(--ink-hover)}.w-btn:disabled{opacity:.45;cursor:default}.w-btn.primary{background:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--accent-ink);color:#fff}.w-btn.primary:hover{filter:brightness(1.08);color:#fff}.w-btn.is-on{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent-ink)}.w-btn.danger{box-shadow:inset 0 0 0 1px var(--warn);color:var(--warn)}.w-select,.w-input{font:var(--text-body) var(--sans);padding:0 var(--pad-control-x);box-shadow:var(--ring);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);min-height:var(--control-h-md)}.w-toggle{align-items:center;gap:var(--space-2);font-size:var(--text-body);cursor:pointer;display:inline-flex}.w-toggle input{accent-color:var(--accent-ink)}.w-cols{gap:var(--gap-lg);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.w-cols.w-3{grid-template-columns:repeat(3,minmax(0,1fr))}.w-cols.w-wide-left{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}@media (width<=40rem){.w-cols,.w-cols.w-3,.w-cols.w-wide-left{grid-template-columns:1fr}}.w-panel{box-shadow:var(--ring);border-radius:var(--radius-sm);padding:var(--pad-surface-lg);background:var(--paper);min-width:0}.w-panel>h4,.w-title{font:var(--weight-semibold) var(--text-subheadline)/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 var(--gap-sm)}.w-log{font-family:var(--sans);font-size:var(--text-callout);max-height:16rem;margin:0;padding:0;line-height:1.5;list-style:none;overflow-y:auto}.w-log li{padding:var(--gap-xs) 0;box-shadow:var(--line-b);color:var(--ink-2);white-space:pre-wrap;word-break:break-word}.w-log li.now{color:var(--ink)}.w-log li.ok{color:var(--ok)}.w-log li.warn{color:var(--warn)}.w-log li.muted{color:var(--ink-3)}.w-node{box-shadow:inset 0 0 0 1px var(--ink-3);border-radius:var(--radius-sm);padding:var(--gap-xs) var(--space-3);font-family:var(--sans);font-size:var(--text-body);background:var(--paper);color:var(--ink);transition:background .2s,box-shadow .2s,opacity .2s;display:inline-block}.w-node.active{box-shadow:inset 0 0 0 1px var(--accent-ink);background:var(--accent-soft)}.w-node.pending{box-shadow:inset 0 0 0 1px var(--gray-300);color:var(--ink-2)}.w-node.failed{box-shadow:inset 0 0 0 1px var(--warn);background:var(--warn-soft)}.w-node.gone{opacity:.35;text-decoration:line-through}.w-node.pulse{animation:.6s ease-out w-pulse}@keyframes w-pulse{0%{box-shadow:0 0 0 0 var(--accent-soft)}to{box-shadow:0 0 0 10px #0000}}.w-pill{font:var(--weight-semibold) var(--text-footnote)/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:var(--gap-xs) var(--space-3);border-radius:var(--radius-pill);box-shadow:var(--ring);color:var(--ink-2);display:inline-block}.w-pill.accent{background:var(--accent-soft);color:var(--accent-ink)}.w-pill.warn{background:var(--warn-soft);color:var(--warn)}.w-pill.ok{background:var(--accent-soft);color:var(--accent-ink)}figure.widget svg{width:100%;height:auto;display:block;overflow:visible}figure.widget svg text{font-family:var(--sans);fill:var(--ink);font-size:13px}figure.widget svg text.mono{font-family:var(--sans)}figure.widget svg .edge{stroke:var(--ink-3);stroke-width:1.5px;fill:none}figure.widget svg .edge.on{stroke:var(--accent-ink);stroke-width:2px}figure.widget svg .box{fill:var(--paper);stroke:var(--ink-3);stroke-width:1.5px}figure.widget svg .box.on{fill:var(--accent-soft);stroke:var(--accent-ink)}figure.widget svg .box.off{stroke-dasharray:4 3}figure.widget svg .box.bad{fill:var(--warn-soft);stroke:var(--warn)}figure.widget table.w-table{font-size:var(--text-body);margin:0}figure.widget table.w-table td,figure.widget table.w-table th{padding:var(--space-1) var(--space-2)}figure.widget table.w-table tr.on td{background:var(--accent-soft)}figure.widget table.w-table tr.gone td{color:var(--ink-3);text-decoration:line-through}@media (prefers-reduced-motion:reduce){.w-node,figure.widget svg *{transition:none!important;animation:none!important}}*{scrollbar-color:var(--ink-3) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--ink-3);border-radius:var(--radius-pill)}::-webkit-scrollbar-track{background:0 0}:root{--accent:#5f7fc9;--accent-ink:#38549b;--tk-t:#38549b;--tk-p:#38549b;--weight-extra-light:200;--weight-light:300;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--accent:#748bd4;--accent-ink:#7e95dc;--tk-t:#7e95dc;--tk-p:#7e95dc}}:root[data-theme=dark]{--accent:#748bd4;--accent-ink:#7e95dc;--tk-t:#7e95dc;--tk-p:#7e95dc}.hljs-comment,.hljs-quote{color:var(--tk-c)}.hljs-keyword,.hljs-selector-tag,.hljs-tag{color:var(--tk-k)}.hljs-string,.hljs-regexp,.hljs-addition{color:var(--tk-s)}.hljs-number,.hljs-literal,.hljs-attr,.hljs-variable,.hljs-template-variable{color:var(--tk-n)}.hljs-title,.hljs-section,.hljs-name,.hljs-function{color:var(--tk-f)}.hljs-built_in,.hljs-type,.hljs-class{color:var(--tk-t)}.hljs-deletion{color:var(--tk-d)}.toc-dialog .toc-part>b{color:var(--ink-3);font-family:var(--sans);letter-spacing:.02em;text-transform:uppercase;margin-bottom:.4rem;font-size:.72rem;display:block}caption,figcaption,th{font-family:var(--sans)}.toc-part ol{margin:0;padding:0;list-style:none}.toc-ch>a{color:var(--accent-ink);grid-template-columns:2rem minmax(0,1fr);gap:.4rem;padding-block:.3rem;text-decoration:none;display:grid}.toc-ch>a.toc-current{color:var(--ink);font-weight:var(--weight-semibold)}.table-scroll{max-width:min(100cqw, var(--content));-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.table-scroll table{border-collapse:collapse;width:100%;min-width:34rem}@media (width<=48rem){.table-scroll{margin-inline:-1rem;padding-inline:1rem}}

.x1ghz6dp {
  margin: 0;
}

.x1c7o4td {
  margin: var(--gap-md) 0 0;
}

.x1717udv {
  padding: 0;
}

.x1ya2mpv {
  padding: var(--gap-sm) var(--pad-control-x);
}

.x11t4vcy {
  padding: var(--pad-surface);
}

.x1ki2l4k:not(#\#) {
  border-color: var(--accent-ink);
}

.x119ba7t:not(#\#) {
  border-color: var(--accent);
}

.x1rnokbm:not(#\#) {
  border-color: var(--ok);
}

.xl6nu8r:not(#\#) {
  border-color: var(--rule);
}

.x1uk46x0:not(#\#) {
  border-color: var(--warn);
}

.x1emqyym:not(#\#) {
  border-radius: var(--radius-pill);
}

.x1sybd2c:not(#\#) {
  border-radius: var(--radius-sm);
}

.xbsl7fq:not(#\#) {
  border-style: dashed;
}

.x1y0btm7:not(#\#) {
  border-style: solid;
}

.xmkeg23:not(#\#) {
  border-width: 1px;
}

.xdh2fpr:not(#\#) {
  border-width: 2px;
}

.x12fv61:not(#\#) {
  gap: var(--gap-md);
}

.x1vbtp9s:not(#\#) {
  gap: var(--gap-sm);
}

.xmjie88:not(#\#) {
  gap: var(--gap-xs);
}

.x1osaytk:not(#\#) {
  grid-column: 1 / -1;
}

.xe8uvvx:not(#\#) {
  list-style: none;
}

.x11tww3w:not(#\#) {
  margin-block: 0 var(--gap-md);
}

.x1h1o3oe:not(#\#) {
  margin-block: 0 var(--gap-sm);
}

.x8mln23:not(#\#) {
  margin-block: var(--gap-md) var(--gap-xs);
}

.x1yqun34:not(#\#) {
  margin-block: var(--gap-sm) 0;
}

.x1snftfm:not(#\#) {
  margin-block: var(--gap-sm) var(--gap-md);
}

.x1hkqa6x:not(#\#) {
  margin-inline: var(--space-1);
}

.xb3r6kr:not(#\#) {
  overflow: hidden;
}

.xt970qd:not(#\#) {
  padding-block: 0;
}

.x6z5sa5:not(#\#) {
  padding-block: var(--gap-sm);
}

.xtl2y2q:not(#\#) {
  padding-block: var(--gap-xs);
}

.xnlgeed:not(#\#) {
  padding-block: var(--pad-surface);
}

.x1ncpnxr:not(#\#) {
  padding-inline: var(--gap-md);
}

.x1smbtd5:not(#\#) {
  padding-inline: var(--gap-sm);
}

.x1mynn9o:not(#\#) {
  padding-inline: var(--pad-control-x);
}

.xen60rp:not(#\#) {
  padding-inline: var(--pad-surface);
}

.x1pha0wt:not(#\#):not(#\#) {
  align-items: baseline;
}

.x6s0dn4:not(#\#):not(#\#) {
  align-items: center;
}

.x1cy8zhl:not(#\#):not(#\#) {
  align-items: flex-start;
}

.xjbqb8w:not(#\#):not(#\#) {
  background-color: #0000;
}

.xhlrlra:not(#\#):not(#\#) {
  background-color: var(--accent-soft);
}

.xwnonoy:not(#\#):not(#\#) {
  background-color: var(--accent);
}

.xysc9g2:not(#\#):not(#\#) {
  background-color: var(--paper-2);
}

.xsh0q14:not(#\#):not(#\#) {
  background-color: var(--paper);
}

.x1mwwwfo:not(#\#):not(#\#) {
  border-collapse: collapse;
}

.xlxsu3u:not(#\#):not(#\#) {
  border-inline-start-color: var(--rule);
}

.x1t7ytsu:not(#\#):not(#\#) {
  border-inline-start-style: solid;
}

.xpilrb4:not(#\#):not(#\#) {
  border-inline-start-width: 1px;
}

.x1gb47sj:not(#\#):not(#\#) {
  box-shadow: var(--shadow-control);
}

.xfungia:not(#\#):not(#\#) {
  color: #fff;
}

.xa7332p:not(#\#):not(#\#) {
  color: var(--accent-ink);
}

.x13lyibe:not(#\#):not(#\#) {
  color: var(--ink-2);
}

.xzffn32:not(#\#):not(#\#) {
  color: var(--ink-3);
}

.x1lk8qxj:not(#\#):not(#\#) {
  color: var(--ink);
}

.x1qj95i8:not(#\#):not(#\#) {
  color: var(--ok);
}

.xvt6kni:not(#\#):not(#\#) {
  color: var(--warn);
}

.x1ypdohk:not(#\#):not(#\#) {
  cursor: pointer;
}

.x78zum5:not(#\#):not(#\#) {
  display: flex;
}

.xrvj5dj:not(#\#):not(#\#) {
  display: grid;
}

.x1rg5ohu:not(#\#):not(#\#) {
  display: inline-block;
}

.x3nfvp2:not(#\#):not(#\#) {
  display: inline-flex;
}

.x1a02dak:not(#\#):not(#\#) {
  flex-wrap: wrap;
}

.xd4h0mr:not(#\#):not(#\#) {
  font-family: var(--mono);
}

.x1s63d2g:not(#\#):not(#\#) {
  font-family: var(--sans);
}

.x1oi66y7:not(#\#):not(#\#) {
  font-family: var(--serif);
}

.x191ayms:not(#\#):not(#\#) {
  font-size: .68rem;
}

.x1iuv88s:not(#\#):not(#\#) {
  font-size: .72rem;
}

.x142gn8v:not(#\#):not(#\#) {
  font-size: .74rem;
}

.x157bgb5:not(#\#):not(#\#) {
  font-size: .76rem;
}

.xp1qmoa:not(#\#):not(#\#) {
  font-size: .78rem;
}

.x1sfrptf:not(#\#):not(#\#) {
  font-size: .7rem;
}

.xg9jl45:not(#\#):not(#\#) {
  font-size: .82em;
}

.xfl4wtl:not(#\#):not(#\#) {
  font-size: .84rem;
}

.x16vn6xf:not(#\#):not(#\#) {
  font-size: .88rem;
}

.xgommxb:not(#\#):not(#\#) {
  font-size: .8rem;
}

.x1jchvi3:not(#\#):not(#\#) {
  font-size: 1rem;
}

.x1s688f:not(#\#):not(#\#) {
  font-weight: 600;
}

.xoakldx:not(#\#):not(#\#) {
  font-weight: var(--weight-semibold);
}

.x1mt6kc2:not(#\#):not(#\#) {
  grid-auto-columns: max-content;
}

.x1mt1orb:not(#\#):not(#\#) {
  grid-auto-flow: column;
}

.x1mr6609:not(#\#):not(#\#) {
  grid-template-columns: 1.5rem 1fr;
}

.xclci1l:not(#\#):not(#\#) {
  grid-template-columns: 2rem minmax(7rem, 1fr) 4.6rem 3rem 3rem;
}

.xju1xpo:not(#\#):not(#\#) {
  grid-template-columns: minmax(0, 1fr) auto;
}

.x1mkdm3x:not(#\#):not(#\#) {
  grid-template-columns: minmax(0, 1fr);
}

.xnby9oq:not(#\#):not(#\#) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.xl56j7k:not(#\#):not(#\#) {
  justify-content: center;
}

.x9pfba7:not(#\#):not(#\#) {
  letter-spacing: .08em;
}

.x1evy7pa:not(#\#):not(#\#) {
  line-height: 1.5;
}

.x1jjo3f5:not(#\#):not(#\#) {
  line-height: 1.55;
}

.xo5v014:not(#\#):not(#\#) {
  line-height: 1;
}

.x1d5v0qo:not(#\#):not(#\#) {
  margin-inline-start: var(--gap-sm);
}

.xwq05k6:not(#\#):not(#\#) {
  opacity: .55;
}

.x1v7md0e:not(#\#):not(#\#) {
  padding-inline-start: var(--gap-md);
}

.x2b8uid:not(#\#):not(#\#) {
  text-align: center;
}

.xdpxx8g:not(#\#):not(#\#) {
  text-align: left;
}

.x5lhwog:not(#\#):not(#\#) {
  text-decoration-line: line-through;
}

.xtvhhri:not(#\#):not(#\#) {
  text-transform: uppercase;
}

.x16dsc37:not(#\#):not(#\#) {
  vertical-align: top;
}

.xuxw1ft:not(#\#):not(#\#) {
  white-space: nowrap;
}

.x1sdyfia:not(#\#):not(#\#) {
  white-space: pre;
}

.x49yvub:hover:not(#\#):not(#\#) {
  background-color: var(--accent);
}

.xppqf8u:hover:not(#\#):not(#\#) {
  background-color: var(--tint-hover);
}

.x18ep0hg:hover:not(#\#):not(#\#) {
  background-color: var(--tint-pressed);
}

.xoa24sx:hover:not(#\#):not(#\#) {
  box-shadow: var(--shadow-control-hover);
}

.x1iih0q2:hover:not(#\#):not(#\#) {
  color: #fff;
}

.xyocu1l:hover:not(#\#):not(#\#) {
  color: var(--accent-ink);
}

.xircwsh:hover:not(#\#):not(#\#) {
  color: var(--ink-hover);
}

@media (width >= 760px) {
  .xdw1erb.xdw1erb:not(#\#):not(#\#) {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  }

  .x1o974hg.x1o974hg:not(#\#):not(#\#) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .x17ljgcw.x17ljgcw:not(#\#):not(#\#) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.x112yhe1:not(#\#):not(#\#):not(#\#) {
  border-bottom-color: var(--rule);
}

.xpvcztv:not(#\#):not(#\#):not(#\#) {
  border-bottom-style: dashed;
}

.x1q0q8m5:not(#\#):not(#\#):not(#\#) {
  border-bottom-style: solid;
}

.xso031l:not(#\#):not(#\#):not(#\#) {
  border-bottom-width: 1px;
}

.xphj0bc:not(#\#):not(#\#):not(#\#) {
  border-top-color: var(--rule);
}

.xlya59e:not(#\#):not(#\#):not(#\#) {
  border-top-style: dashed;
}

.x178xt8z:not(#\#):not(#\#):not(#\#) {
  border-top-width: 1px;
}

.xmll18r:not(#\#):not(#\#):not(#\#) {
  height: 1.25rem;
}

.xi5wuzd:not(#\#):not(#\#):not(#\#) {
  margin-bottom: var(--gap-lg);
}

.x1ho1d4z:not(#\#):not(#\#):not(#\#) {
  margin-bottom: var(--gap-md);
}

.xaebidk:not(#\#):not(#\#):not(#\#) {
  margin-top: var(--gap-md);
}

.xcoc4a:not(#\#):not(#\#):not(#\#) {
  margin-top: var(--gap-sm);
}

.x19aweqf:not(#\#):not(#\#):not(#\#) {
  max-height: 180px;
}

.x1ujl9rh:not(#\#):not(#\#):not(#\#) {
  min-height: 84px;
}

.x1282g6g:not(#\#):not(#\#):not(#\#) {
  min-height: var(--control-h-md);
}

.xyklkca:not(#\#):not(#\#):not(#\#) {
  min-height: var(--control-h-sm);
}

.xeuugli:not(#\#):not(#\#):not(#\#) {
  min-width: 0;
}

.xw2csxc:not(#\#):not(#\#):not(#\#) {
  overflow-x: auto;
}

.x1odjw0f:not(#\#):not(#\#):not(#\#) {
  overflow-y: auto;
}

.xhd8aez:not(#\#):not(#\#):not(#\#) {
  padding-top: var(--gap-md);
}

.xh8yej3:not(#\#):not(#\#):not(#\#) {
  width: 100%;
}
