:root{--step--2:clamp(0.6944rem, 0.6856rem + 0.0444vw, 0.7200rem);--step--1:clamp(0.8333rem, 0.8101rem + 0.1159vw, 0.9000rem);--step-0:clamp(1.0000rem, 0.9565rem + 0.2174vw, 1.1250rem);--step-1:clamp(1.2000rem, 1.1283rem + 0.3587vw, 1.4062rem);--step-2:clamp(1.4400rem, 1.3295rem + 0.5527vw, 1.7578rem);--step-3:clamp(1.7280rem, 1.5648rem + 0.8161vw, 2.1973rem);--measure:56ch;--measure-small:60ch;--leading-flat:1.1;--leading-micro:1.2;--leading-fine:1.3;--leading-standard:1.55;--stroke-width:1px;--radius-s:0.2rem;--radius-m:0.375rem;--underline-offset:0.2em;--space-3xs:clamp(0.2500rem, 0.2391rem + 0.0543vw, 0.2812rem);--space-2xs:clamp(0.5000rem, 0.4783rem + 0.1087vw, 0.5625rem);--space-xs:clamp(0.7500rem, 0.7174rem + 0.1630vw, 0.8438rem);--space-s:clamp(1.0000rem, 0.9565rem + 0.2174vw, 1.1250rem);--space-m:clamp(1.5000rem, 1.4348rem + 0.3261vw, 1.6875rem);--space-l:clamp(2.0000rem, 1.9130rem + 0.4348vw, 2.2500rem);--space-xl:clamp(3.0000rem, 2.8696rem + 0.6522vw, 3.3750rem);--space-2xl:clamp(4.0000rem, 3.8261rem + 0.8696vw, 4.5000rem);--space-3xl:clamp(6.0000rem, 5.7391rem + 1.3043vw, 6.7500rem);--space-l-3xl:clamp(2.0000rem, 0.3478rem + 8.2609vw, 6.7500rem);--gutter:var(--space-m);--min-tap-size:44px;--flow-space:var(--space-s);--heading-flow-space:var(--space-xl);--font-sans:system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:ui-monospace, 'SF Mono', 'Cascadia Mono', Menlo, Monaco, 'Courier New', monospace;--font-normal:400;--font-medium:600;--font-bold:700;--transition-base:150ms ease;--solarized-base03:#002b36;--solarized-base02:#073642;--solarized-base01:#586e75;--solarized-base0:#839496;--solarized-base1:#93a1a1;--solarized-yellow:#b58900;--solarized-orange:#cb4b16;--solarized-magenta:#d33682;--solarized-blue:#268bd2;--solarized-cyan:#2aa198;--solarized-green:#859900;--color-background:var(--solarized-base03);--color-surface:var(--solarized-base02);--color-border:var(--solarized-base02);--color-foreground:var(--solarized-base0);--color-emphasized:var(--solarized-base1);--color-muted:var(--solarized-base01);--color-rule:var(--solarized-base01);--color-heading:var(--solarized-orange);--color-link:var(--solarized-cyan)}@media(prefers-reduced-motion:reduce){:root{--transition-base:0s}}*,*::before,*::after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}img,picture,svg{max-width:100%;display:block}img{height:auto}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}body{background:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans);font-size:var(--step-0);line-height:var(--leading-standard);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-mono);line-height:var(--leading-flat);color:var(--color-emphasized);text-wrap:balance}h1{font-size:var(--step-3);font-weight:var(--font-bold);color:var(--color-heading)}h2{font-size:var(--step-2)}h3{font-size:var(--step-1)}h4{font-weight:var(--font-normal)}:is(h5,h6){font-size:var(--step-0);font-weight:var(--font-bold)}a{color:currentColor;text-decoration-line:underline;transition:color var(--transition-base),text-decoration-color var(--transition-base)}a:not([class]),.footnote-ref,.footnote-backref{text-decoration-color:color-mix(in srgb,currentColor 50%,transparent);text-decoration-thickness:var(--stroke-width);text-underline-offset:var(--underline-offset)}a:not([class]):hover,.footnote-ref:hover,.footnote-backref:hover{text-decoration-color:color-mix(in srgb,currentColor 80%,transparent)}:is(ol,ul):not([class]){padding-inline-start:var(--space-l)}:is(ol,ul):not([class]) li+*,:is(ol,ul):not([class]) li>:is(ol,ul){margin-block-start:var(--flow-space,var(--space-xs))}hr{border:0;border-block-start:var(--stroke-width)var(--hr-stroke,solid)var(--color-rule);inline-size:var(--hr-length,100%);margin-inline:auto;margin-block:var(--flow-space,var(--space-xl))}:is(strong,b){color:var(--color-emphasized);font-weight:var(--font-medium)}table{--table-rule:var(--stroke-width) solid var(--color-rule);inline-size:100%;border-collapse:collapse;font-size:var(--step--1)}:is(th,td){padding-block:var(--space-2xs);padding-inline:0 var(--space-m)}th :is(strong,b){font-weight:inherit}th{color:var(--color-emphasized);text-align:start;font-weight:var(--font-bold);line-height:var(--leading-fine)}th:not(:only-of-type){border-block-end:var(--table-rule)}tr+tr :is(th,td){border-block-start:var(--table-rule)}caption{caption-side:bottom;margin-block-start:var(--space-s)}:is(code,kbd,samp){font-family:var(--font-mono);font-size:.9em;hyphens:none;tab-size:2;text-align:start;word-spacing:normal;word-break:normal;overflow-wrap:break-word;color:var(--color-emphasized);padding:.125em .375em;background-color:var(--color-surface);border-radius:var(--radius-s);box-decoration-break:clone}pre{inline-size:max-content;min-inline-size:100%;max-inline-size:100%;overflow-x:auto;padding-block:var(--space-xs);padding-inline:var(--space-s);background-color:var(--color-surface);border-radius:var(--radius-m);color:var(--color-emphasized)}pre :is(code,kbd,samp){padding:0;background:0 0;border-radius:0}pre code[data-lang=text]{white-space:pre-wrap;overflow-wrap:break-word}blockquote:not([class]){margin-inline:0;padding-inline-start:var(--space-s);color:var(--color-emphasized);font-style:italic;border-inline-start:calc(var(--stroke-width) * 4)solid var(--color-muted);quotes:"\201C" "\201D" "\2018" "\2019"}blockquote:not([class])>p:first-of-type::before{content:open-quote}blockquote:not([class])>p:last-of-type::after{content:close-quote}figcaption,.table-note{margin-inline:auto;text-align:center}figcaption{padding-block-start:var(--space-2xs)}.table-note{--flow-space:var(--space-2xs)}:focus-visible{outline:calc(var(--stroke-width) * 2)solid var(--focus-color,var(--color-link));outline-offset:var(--focus-offset,calc(var(--stroke-width) * 2))}::selection{background:color-mix(in srgb,var(--color-link) 20%,transparent)}.center{box-sizing:content-box;max-inline-size:var(--center-max,var(--measure));margin-inline:auto;padding-inline:var(--space-m)}.flow>*+*{margin-block-start:var(--flow-space,var(--space-s))}.cluster{display:flex;flex-wrap:wrap;gap:var(--gutter,var(--space-s));flex-direction:var(--cluster-direction,row);align-items:var(--cluster-align,center)}.skip-link{transition:none;position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-link:focus-visible{position:fixed;inset-block-start:var(--space-2xs);inset-inline-start:var(--space-2xs);z-index:50;inline-size:auto;block-size:auto;padding:var(--space-2xs)var(--space-xs);margin:0;overflow:visible;clip:auto;white-space:normal;background-color:var(--color-surface);color:var(--color-link);border-radius:var(--radius-s)}.nav{color:var(--color-muted);line-height:var(--leading-fine);--gutter:0 var(--space-l);--flow-space:var(--space-xs);display:var(--nav-display,block);flex-wrap:wrap;align-items:center;column-gap:var(--space-m)}.nav ul{list-style:none;padding:0;display:var(--nav-group-display,flex)}.nav a{display:inline-flex;align-items:center;min-block-size:var(--min-tap-size);min-inline-size:var(--min-tap-size)}.nav a:not(:hover):not([aria-current=page]){text-decoration:none}.nav a[aria-current=page]{color:var(--color-link)}.prose :is(p,ol,ul,dl,figcaption,blockquote){max-inline-size:var(--measure-small);text-wrap:pretty}.prose :is(h1,h2,h3){overflow-wrap:anywhere;hyphens:auto}@media(min-width:48rem){.prose :is(h1,h2,h3){overflow-wrap:unset;hyphens:unset}}.prose{--flow-space:var(--space-l)}.prose :is(h1,h2,h3,h4)+:is(*:not([class]),.table-scroll){--flow-space:var(--space-m)}.prose :is(figure,table,:where(.embed,.table-scroll)),.prose :is(figure,table,:where(.embed,.table-scroll))+*:not([class],h1,h2,h3,h4,h5,h6){--flow-space:var(--space-2xl)}.prose *+:is(h1,h2,h3,h4,h5,h6):not([class]){--flow-space:var(--heading-flow-space)}.prose :is(ul,ol):not([class]) li+li,.prose :is(ul,ol):not([class]) li>:is(ol,ul){--flow-space:var(--space-xs)}.prose>hr{--flow-space:var(--space-2xl);--hr-length:var(--space-3xl)}.prose figure img{margin-inline:auto}.prose :is(img,picture,video){border:var(--stroke-width)solid var(--color-border)}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs{color:var(--color-muted);font-style:italic}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr{color:var(--solarized-green)}.chroma .o,.chroma .ow{color:var(--solarized-green)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .s2,.chroma .s1{color:var(--solarized-cyan)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .mo{color:var(--solarized-magenta)}.chroma .nf,.chroma .fm{color:var(--solarized-blue)}.chroma .nv,.chroma .vm{color:var(--solarized-blue)}.chroma .nc,.chroma .no{color:var(--solarized-yellow)}.chroma .p{color:var(--color-foreground)}.chroma .na,.chroma .nt{color:var(--solarized-blue)}.data-table th{font-weight:var(--font-normal)}.table-scroll{overflow-x:auto}.tc-container{background-color:var(--color-surface);color:var(--color-foreground);padding:var(--space-m)}.tc-input-group{--flow-space:var(--space-s)}.tc-context{text-align:start;color:var(--color-foreground)}.tc-label{display:block;color:var(--color-emphasized);font-weight:var(--font-bold)}.tc-input{--flow-space:var(--space-2xs);inline-size:100%;min-inline-size:0;max-inline-size:100%;padding:var(--space-2xs)var(--space-xs);border:var(--stroke-width)solid var(--color-foreground);background-color:var(--color-background);color:var(--color-foreground);box-sizing:border-box;accent-color:var(--color-link)}.tc-input::-webkit-calendar-picker-indicator{cursor:pointer;padding:2px;filter:invert(.7)}.tc-input::-webkit-calendar-picker-indicator:hover{filter:invert(.9)}.tc-input::placeholder{color:var(--color-muted);opacity:1}.tc-input::-webkit-calendar-picker-indicator:active{filter:invert(1)}.tc-button{--flow-space:var(--space-s);font:inherit;color:inherit;cursor:pointer;padding:0;border:none;background:0 0;text-decoration-line:underline;text-decoration-color:color-mix(in srgb,currentColor 50%,transparent);text-decoration-thickness:var(--stroke-width);text-underline-offset:var(--underline-offset);transition:color var(--transition-base),text-decoration-color var(--transition-base)}.tc-button:disabled{color:var(--color-muted);cursor:not-allowed}.tc-button:enabled:hover{text-decoration-color:color-mix(in srgb,currentColor 80%,transparent)}.footnotes{--flow-space:var(--space-l);--hr-stroke:dashed;font-size:var(--step--1)}.footnotes :is(ol,ul){max-inline-size:none}.footnote-backref{display:inline-block;padding:var(--space-3xs)var(--space-2xs);margin:calc(-1 * var(--space-3xs))calc(-1 * var(--space-2xs))}.footnote-backref:not(:hover){text-decoration:none}:is(li[id^="fn:"],sup[id^=fnref]):target{scroll-margin-block-start:5lh}.masthead{padding-block-end:var(--space-m);font-family:var(--font-mono)}.masthead__brand{font-size:var(--step-1);color:var(--color-emphasized);line-height:var(--leading-micro)}.masthead__brand a:not(:hover){text-decoration:none}.masthead__tagline{margin-block-start:var(--space-3xs);color:var(--color-muted)}.site-foot{--gutter:var(--space-2xs) var(--space-m);margin-block-start:var(--space-2xl);padding-block-end:var(--space-l);color:var(--color-muted)}.site-foot ul{list-style:none;padding:0}.site-foot nav a:not(:hover){text-decoration:none}.site-foot nav a{display:inline-flex;align-items:center;min-block-size:var(--min-tap-size);min-inline-size:var(--min-tap-size)}.reading-grid{container-type:inline-size;container-name:reading-grid;padding-block-start:var(--space-l);padding-inline:var(--space-m)}.reading-grid__columns{display:grid;grid-template-columns:max-content minmax(0,var(--measure));grid-template-areas:".    masthead" "nav  main" ".    footer";gap:0 var(--reading-grid-gutter,var(--space-l-3xl));max-inline-size:max-content;margin-inline:auto}.reading-grid__masthead{grid-area:masthead}.reading-grid__nav{grid-area:nav}.reading-grid__main{grid-area:main}.reading-grid__footer{grid-area:footer}.reading-grid__main{overflow-wrap:break-word}.reading-grid__nav{--cluster-direction:column;--cluster-align:start}@container reading-grid (inline-size < 34rem){.reading-grid__columns {
    grid-template-columns: minmax(0, var(--measure));
    grid-template-areas:
      "masthead"
      "nav"
      "main"
      "footer";
  }

  .reading-grid__nav {
    --cluster-direction: row;
    --cluster-align: center;

    --nav-display: flex;
    --nav-group-display: contents;

    padding-block-end: var(--space-l);
  }
}.article-meta{--flow-space:var(--space-s)}.article-meta__source{font-style:italic}.blog-entry{padding-block-end:var(--space-l);margin-block-end:var(--space-l);border-block-end:var(--stroke-width)solid var(--color-border)}.blog-entry:last-child{border-block-end:0}.blog-entry__note{--flow-space:var(--space-3xs);color:var(--color-muted)}.blog-entry__note--aside{font-style:italic}.blog-entry__summary{--flow-space:var(--space-2xs)}.blog-entry-more{color:var(--color-muted)}.blog-entry-more a:not(:hover){text-decoration:none}.featured-star{color:var(--solarized-yellow);margin-inline-end:var(--space-2xs)}.text-structural{font-family:var(--font-mono);font-size:var(--step--1)}[data-figure-variant=profile]{float:inline-start;margin-block:var(--space-3xs)var(--space-2xs);margin-inline-end:var(--space-m)}[data-figure-variant=profile] img{inline-size:150px}