@font-face{font-family:literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/literata/Literata.woff2)format("woff2")}@font-face{font-family:literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/literata/Literata-Italic.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono/JetBrainsMono-Italic.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono/JetBrainsMono-Bold.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono/JetBrainsMono-BoldItalic.woff2)format("woff2")}:root{color-scheme:light;--ctp-rosewater:#dc8a78;--ctp-flamingo:#dd7878;--ctp-pink:#ea76cb;--ctp-mauve:#8839ef;--ctp-red:#d20f39;--ctp-maroon:#e64553;--ctp-peach:#fe640b;--ctp-yellow:#df8e1d;--ctp-green:#40a02b;--ctp-teal:#179299;--ctp-sky:#04a5e5;--ctp-sapphire:#209fb5;--ctp-blue:#1e66f5;--ctp-lavender:#7287fd;--ctp-text:#4c4f69;--ctp-subtext1:#5c5f77;--ctp-subtext0:#6c6f85;--ctp-overlay2:#7c7f93;--ctp-overlay1:#8c8fa1;--ctp-overlay0:#9ca0b0;--ctp-surface2:#acb0be;--ctp-surface1:#bcc0cc;--ctp-surface0:#ccd0da;--ctp-base:#eff1f5;--ctp-mantle:#e6e9ef;--ctp-crust:#dce0e8;--bg:var(--ctp-base);--bg-rail:var(--ctp-mantle);--bg-code:var(--ctp-mantle);--bg-hover:color-mix(in srgb, var(--ctp-text) 8%, transparent);--text:#2a2c3e;--text-dim:var(--ctp-subtext1);--text-faint:var(--ctp-overlay1);--accent:var(--ctp-blue);--rule:var(--ctp-surface0);--rule-strong:var(--ctp-surface1);--selection:color-mix(in srgb, var(--ctp-blue) 22%, transparent);--font-serif:"Literata", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--masthead-h:4.75rem;--measure:42rem;--gutter:1.25rem}:root[data-theme=dark]{color-scheme:dark;--ctp-rosewater:#f5e0dc;--ctp-flamingo:#f2cdcd;--ctp-pink:#f5c2e7;--ctp-mauve:#cba6f7;--ctp-red:#f38ba8;--ctp-maroon:#eba0ac;--ctp-peach:#fab387;--ctp-yellow:#f9e2af;--ctp-green:#a6e3a1;--ctp-teal:#94e2d5;--ctp-sky:#89dceb;--ctp-sapphire:#74c7ec;--ctp-blue:#89b4fa;--ctp-lavender:#b4befe;--ctp-text:#cdd6f4;--ctp-subtext1:#bac2de;--ctp-subtext0:#a6adc8;--ctp-overlay2:#9399b2;--ctp-overlay1:#7f849c;--ctp-overlay0:#6c7086;--ctp-surface2:#585b70;--ctp-surface1:#45475a;--ctp-surface0:#313244;--ctp-base:#1e1e2e;--ctp-mantle:#181825;--ctp-crust:#11111b;--text:var(--ctp-text);--text-dim:var(--ctp-subtext0)}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--ctp-rosewater:#f5e0dc;--ctp-flamingo:#f2cdcd;--ctp-pink:#f5c2e7;--ctp-mauve:#cba6f7;--ctp-red:#f38ba8;--ctp-maroon:#eba0ac;--ctp-peach:#fab387;--ctp-yellow:#f9e2af;--ctp-green:#a6e3a1;--ctp-teal:#94e2d5;--ctp-sky:#89dceb;--ctp-sapphire:#74c7ec;--ctp-blue:#89b4fa;--ctp-lavender:#b4befe;--ctp-text:#cdd6f4;--ctp-subtext1:#bac2de;--ctp-subtext0:#a6adc8;--ctp-overlay2:#9399b2;--ctp-overlay1:#7f849c;--ctp-overlay0:#6c7086;--ctp-surface2:#585b70;--ctp-surface1:#45475a;--ctp-surface0:#313244;--ctp-base:#1e1e2e;--ctp-mantle:#181825;--ctp-crust:#11111b;--text:var(--ctp-text);--text-dim:var(--ctp-subtext0)}}*,*::before,*::after{box-sizing:border-box}html{font-size:106.25%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-serif);font-weight:380;font-variation-settings:"opsz" 20;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-kerning:normal}::selection{background:var(--selection)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}a{color:var(--accent)}button{font:inherit;color:inherit}.skip{position:absolute;left:-200vw;top:.5rem;background:var(--bg-rail);padding:.5rem .75rem;z-index:200}.skip:focus{left:1rem}.masthead{position:fixed;inset:0 0 auto 0;height:var(--masthead-h);z-index:20;overflow:hidden;background:var(--bg);background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}.masthead-fluid{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.75}.masthead-inner{position:relative;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;max-width:calc(var(--measure) + 2 * var(--gutter));height:100%;margin:0 auto;padding:0 var(--gutter)}.site-name{font-size:1rem;font-weight:560;color:var(--text);text-decoration:none;white-space:nowrap;align-self:center}.site-name:hover,.site-nav a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.site-nav{align-self:center}.site-nav ul{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.1rem 1.1rem;margin:0;padding:0;list-style:none}.site-nav a{display:inline-block;padding:.15rem 0;font-size:.92rem;color:var(--text-dim);text-decoration:none}.site-nav a[aria-current=page]{color:var(--text);font-weight:500}.float-tools{position:fixed;top:calc((var(--masthead-h) - 2.25rem)/2);right:.75rem;z-index:21;display:flex;gap:.15rem}.tool{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:0;border-radius:50%;background:0 0;color:var(--text-dim);cursor:pointer}.tool:hover{background:var(--bg-hover);color:var(--text)}.tool .icon{display:block}.theme-toggle span{display:none;line-height:0}html:not([data-theme=dark]) .theme-toggle .when-light,html[data-theme=dark] .theme-toggle .when-dark{display:block}.column{max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto;padding:calc(var(--masthead-h) + 3.5rem)var(--gutter)4rem}.page-header,.post-header{margin-bottom:2.5rem}.page-title,.post-title{margin:0 0 .4em;font-size:2.2em;font-weight:560;line-height:1.15;letter-spacing:-.012em;text-wrap:balance}.eyebrow{margin:0 0 .6em;font-size:.8em;font-variant-caps:all-small-caps;letter-spacing:.08em;color:var(--text-dim)}.eyebrow a{color:inherit;text-decoration:none}.eyebrow a:hover{color:var(--accent)}.lede{margin:0;font-size:1.1em;font-style:italic;color:var(--text-dim)}.post-meta{margin:0;font-size:.9em;color:var(--text-dim);font-feature-settings:"onum"}.post-meta .sep{margin:0 .35em;color:var(--text-faint)}.linkish{padding:0;border:0;background:0 0;color:var(--accent);cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent)}.linkish:hover{text-decoration-color:initial}.reader-trigger,.epub-link{display:inline-flex;align-items:center;gap:.3em;vertical-align:baseline}.reader-trigger .icon,.epub-link .icon{width:1em;height:1em;position:relative;top:.05em;stroke-width:2}body.home{overflow-x:hidden}body.home .column{padding-bottom:0}.hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:calc(100vh - var(--masthead-h) - 3.5rem);min-height:calc(100dvh - var(--masthead-h) - 3.5rem);padding-bottom:38vh;box-sizing:border-box}.hero-title,.hero-blurb,.hero-posts{position:relative;z-index:1}.hero-art{position:fixed;z-index:0;left:50%;bottom:0;transform:translateX(-50%);display:block;width:min(100vw,calc(var(--measure) + 2 * var(--gutter)),1586px);height:55vh;height:55dvh;max-height:992px;object-fit:cover;object-position:center bottom;pointer-events:none;user-select:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 45%),linear-gradient(to right,transparent,#000 18%,#000 82%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent,#000 45%),linear-gradient(to right,transparent,#000 18%,#000 82%,transparent);mask-composite:intersect}.hero-art-dark{display:none}:root[data-theme=dark] .hero-art-light{display:none}:root[data-theme=dark] .hero-art-dark{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme]) .hero-art-light{display:none}:root:not([data-theme]) .hero-art-dark{display:block}}.hero-title{margin:0 0 .5em;font-size:2.6em;font-weight:560;line-height:1.1;letter-spacing:-.012em}.hero-blurb{max-width:32em;font-size:1.1em;line-height:1.55;color:var(--text-dim);text-wrap:balance}.hero-blurb p{margin:0 0 .75em}.hero-blurb a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}.hero-blurb a:hover{text-decoration-color:initial}.hero-posts{margin-top:1.75rem}.hero-posts ul{margin:0;padding:0;list-style:none;line-height:1.7}.hero-posts li a{color:var(--text);text-decoration:none}.hero-posts li a:hover{color:var(--accent)}.hero-post-series{color:var(--text-dim)}.hero-posts li a:hover .hero-post-series{color:inherit}.more-posts{margin:.6em 0 0;font-size:.85em;font-variant-caps:all-small-caps;letter-spacing:.1em}.more-posts a{color:var(--text-dim);text-decoration:none}.more-posts a:hover{color:var(--accent)}.prose{hyphens:auto;-webkit-hyphens:auto;text-wrap:pretty;hanging-punctuation:first last;font-feature-settings:"onum","pnum","kern","liga"}.prose>:first-child{margin-top:0}.prose p,.prose ul,.prose ol,.prose dl{margin:0 0 1.25em}.prose h2,.prose h3,.prose h4{font-weight:560;letter-spacing:-.008em;hyphens:manual;-webkit-hyphens:manual;text-wrap:balance}.prose h2{margin:2.2em 0 .6em;font-size:1.5em;line-height:1.25}.prose h3{margin:1.8em 0 .5em;font-size:1.2em;line-height:1.3}.prose h4{margin:1.6em 0 .4em;font-size:1em;font-variant-caps:all-small-caps;letter-spacing:.04em}.prose a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent)}.prose a:hover{text-decoration-color:initial}.prose strong{font-weight:650}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin:.3em 0}.prose li::marker{color:var(--text-faint)}.prose li>ul,.prose li>ol{margin:.3em 0 0}.prose blockquote{margin:1.6em 0;padding:0 0 0 1.25em;color:var(--text-dim);border-left:1px solid var(--rule-strong)}.prose blockquote p:last-child{margin-bottom:0}.prose hr{height:auto;margin:2.6em 0;border:0;text-align:center;color:var(--text-dim)}.prose hr::before{content:"*\2003*\2003*";display:block;font-size:1.1em;line-height:1}.prose code,.prose kbd,.prose samp{font-family:var(--font-mono);font-size:.86em;font-feature-settings:"lnum","tnum"}.prose :not(pre)>code{padding:.08em .25em;border-radius:4px;background:var(--bg-code)}.prose kbd{font-size:.78em;padding:.05em .4em;border:1px solid var(--rule-strong);border-bottom-width:2px;border-radius:4px;background:var(--bg-rail)}.prose pre{margin:1.6em 0;padding:1em 1.25em;border-radius:6px;background:var(--bg-code);overflow-x:auto;line-height:1.5;font-size:.85em;tab-size:4}.prose pre code{padding:0;font-size:1em;background:0 0}.prose .highlight{margin:1.6em 0}.prose .highlight pre{margin:0}.prose .highlight .chroma{background:var(--bg-code)}.prose table{width:100%;margin:1.6em 0;border-collapse:collapse;font-size:.92em;font-feature-settings:"lnum","tnum"}.prose th,.prose td{padding:.5em .75em .5em 0;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}.prose th{font-weight:600;border-bottom-color:var(--rule-strong)}.prose figure{margin:2em 0}.prose img{display:block;max-width:100%;height:auto;border-radius:4px}.prose figcaption{margin-top:.7em;font-size:.85em;font-style:italic;text-align:center;color:var(--text-dim)}.prose sup{line-height:0}.prose .footnote-ref a,.prose .footnote-backref{text-decoration:none}.prose .footnotes{margin-top:3.5em;font-size:.85em;color:var(--text-dim)}.prose .footnotes hr{margin:0 0 1em;border-top:1px solid var(--rule)}.prose .footnotes hr::before{content:none}.prose .footnotes ol{padding-left:1.4em}.prose-indent p{margin:0;text-indent:1.4em}.prose-indent>p:first-child,.prose-indent h2+p,.prose-indent h3+p,.prose-indent h4+p,.prose-indent hr+p,.prose-indent figure+p,.prose-indent blockquote+p,.prose-indent pre+p,.prose-indent .highlight+p,.prose-indent table+p,.prose-indent ul+p,.prose-indent ol+p,.prose-indent blockquote p,.prose-indent li p,.prose-indent figcaption,.prose-indent .footnotes p{text-indent:0}.prose-indent blockquote p+p{text-indent:1.4em}.prose-indent p+blockquote,.prose-indent p+figure,.prose-indent p+.highlight,.prose-indent p+pre,.prose-indent p+ul,.prose-indent p+ol,.prose-indent p+table{margin-top:1.25em}.prose-indent hr{margin:1.6em 0}.post-footer{margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid var(--rule)}.post-tags{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin:.6rem 0 0;padding:0;list-style:none;font-size:.85em;font-variant-caps:all-small-caps;letter-spacing:.06em}.post-tags a{color:var(--text-dim);text-decoration:none}.post-tags a:hover{color:var(--accent)}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;font-size:.95em}.post-nav a{color:var(--text);text-decoration:none}.post-nav a:hover{color:var(--accent)}.post-nav .older{grid-column:2;text-align:right}.post-nav .label{display:block;font-size:.8em;font-variant-caps:all-small-caps;letter-spacing:.06em;color:var(--text-faint)}.contents{margin:0;padding:0;list-style:none}.contents-item{display:grid;grid-template-columns:8.5em 1fr;column-gap:1.25rem;align-items:baseline;margin:0 0 1.9em}.contents-date{grid-column:1;font-size:.8em;font-variant-caps:all-small-caps;letter-spacing:.06em;white-space:nowrap;color:var(--text-faint);font-feature-settings:"onum","tnum"}.contents-main{grid-column:2;min-width:0}.contents-series{display:block;margin-bottom:.2em;font-size:.8em;font-variant-caps:all-small-caps;letter-spacing:.08em;color:var(--text-dim);text-decoration:none}.contents-series:hover{color:var(--accent)}.contents-title{display:inline-block;font-size:1.3em;font-weight:560;line-height:1.25;letter-spacing:-.008em;color:var(--text);text-decoration:none;text-wrap:balance}a.contents-title:hover{color:var(--accent)}.contents-desc{margin:.25em 0 0;font-style:italic;color:var(--text-dim)}.contents-break{margin:2.4em 0;text-align:center;font-size:1.1em;line-height:1;color:var(--text-dim)}body.kind-section.type-posts .column{padding-bottom:30vh}.contents{position:relative;z-index:1}.tag-list{margin:0;padding:0;list-style:none;columns:2;gap:2rem}.tag-list li{padding:.3em 0}.tag-list a{text-decoration:none}.tag-list .count{margin-left:.4em;font-size:.8em;color:var(--text-faint);font-feature-settings:"lnum"}@media(max-width:56em){.masthead-inner{padding-right:calc(var(--gutter) + 4.75rem)}.column{padding-top:calc(var(--masthead-h) + 2rem)}.page-title,.post-title{font-size:1.9em}.tag-list{columns:1}}@media(max-width:30em){html{font-size:100%}.masthead-inner{gap:.75rem;padding-right:calc(var(--gutter) + 4.5rem)}.site-nav ul{gap:.1rem .8rem}.site-nav a{font-size:.82rem}.float-tools{top:calc((var(--masthead-h) - 2rem)/2);right:.5rem;gap:0}.tool{width:2rem;height:2rem}.contents-item{grid-template-columns:1fr;row-gap:.15em}.contents-date,.contents-main{grid-column:1}.post-nav{grid-template-columns:1fr}.post-nav .older{grid-column:1;text-align:left}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.reader{--page-bg:var(--ctp-base);--page-text:var(--text);--page-muted:var(--ctp-overlay1);--page-rule:var(--ctp-surface1);--page-code:var(--ctp-mantle);--stage:var(--ctp-crust);position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:var(--stage);color:var(--page-text);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reader[hidden]{display:none}body.reader-open{overflow:hidden}.reader-bar,.reader-foot{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:3rem;padding:0 .75rem;color:var(--page-muted);font-size:.8rem;font-variant-caps:all-small-caps;letter-spacing:.08em;font-feature-settings:"onum";user-select:none}.reader-foot{grid-template-columns:1fr;justify-items:center}.reader-close{justify-self:start}.reader-running-title{grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}.reader-tools{grid-column:3;justify-self:end;display:flex;gap:.25rem}.reader-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;padding:0 .5rem;border:0;border-radius:1.5rem;background:0 0;color:var(--page-muted);font-family:var(--font-serif);font-size:1rem;font-variant-caps:normal;letter-spacing:0;cursor:pointer}.reader-btn.theme-toggle{margin-right:.5rem}.reader-btn .icon{width:18px;height:18px}.reader-btn sup{font-size:.65em;line-height:0;margin-left:.05em}.reader-btn:hover{background:rgb(0 0 0/6%);color:var(--page-text)}:root[data-theme=dark] .reader-btn:hover{background:rgb(255 255 255/8%)}.reader-btn[aria-disabled=true]{opacity:.4;pointer-events:none}.reader-stage{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:0;padding:0 .5rem}.reader-turn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:0 0;color:var(--page-muted);cursor:pointer}.reader-turn:hover{background:rgb(0 0 0/6%);color:var(--page-text)}:root[data-theme=dark] .reader-turn:hover{background:rgb(255 255 255/8%)}.reader-turn[aria-disabled=true]{opacity:.25;pointer-events:none}.reader-turn .icon{width:24px;height:24px}.reader-book{position:relative;flex:none;width:calc(var(--spread,2) * var(--page-w,24rem));height:var(--page-h,36rem);padding:var(--pad,2.5rem);background:var(--page-bg);border-radius:3px;box-shadow:0 1px 2px rgb(0 0 0/8%),0 12px 40px rgb(0 0 0/.16);overflow:hidden;cursor:default;touch-action:pan-y}.reader-book.two-up::before{--noise:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");content:"";position:absolute;top:0;bottom:0;left:calc(50% - var(--col-gap) * .8);width:calc(var(--col-gap) * 2.3);pointer-events:none;z-index:1;background:var(--noise),linear-gradient( to right,transparent 0%,rgb(0 0 0/1%) 17.4%,rgb(0 0 0/3%) 28.3%,rgb(0 0 0/.065) 34.8%,rgb(0 0 0/5%) 43.5%,rgb(0 0 0/.025) 63%,transparent 100% );-webkit-mask-image:linear-gradient(to right,transparent,#000 34.8%,transparent);mask-image:linear-gradient(to right,transparent,#000 34.8%,transparent)}:root[data-theme=dark] .reader-book.two-up::before{background:var(--noise),linear-gradient( to right,transparent 0%,rgb(255 255 255/.8%) 17.4%,rgb(255 255 255/.015) 28.3%,rgb(0 0 0/.1) 34.8%,rgb(0 0 0/5%) 43.5%,rgb(0 0 0/.015) 63%,transparent 100% )}.reader-pages{height:100%;column-fill:auto;column-width:var(--col-w,19rem);column-gap:var(--col-gap,5rem);transform:translateX(var(--x,0px));will-change:transform;font-size:var(--reader-font-size,15px);line-height:1.6;font-weight:380;font-variation-settings:"opsz" 20;font-feature-settings:"onum","pnum","kern","liga";text-align:justify;hyphens:auto;-webkit-hyphens:auto;orphans:2;widows:2}.reader-title-page{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;hyphens:manual;-webkit-hyphens:manual;break-after:column}.reader-site,.reader-date{margin:0;font-size:.8em;font-variant-caps:all-small-caps;letter-spacing:.12em;color:var(--page-muted)}.reader-title{margin:1.2em 0 .6em;font-size:1.9em;font-weight:560;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}.reader-desc{margin:0 0 2em;font-style:italic;color:var(--page-muted);text-wrap:balance}.reader-body{break-before:column;hanging-punctuation:first last}.reader-body>:first-child{margin-top:0}.reader-body p{margin:0;text-indent:1.4em}.reader-body>p:first-child,.reader-body h2+p,.reader-body h3+p,.reader-body h4+p,.reader-body hr+p,.reader-body figure+p,.reader-body blockquote+p,.reader-body pre+p,.reader-body .highlight+p,.reader-body table+p,.reader-body ul+p,.reader-body ol+p,.reader-body blockquote p,.reader-body li p,.reader-body figcaption{text-indent:0}.reader-body>p:first-child::first-letter{font-size:1.6em;line-height:0;font-weight:500}.reader-body h2,.reader-body h3,.reader-body h4{font-weight:560;text-align:left;hyphens:manual;-webkit-hyphens:manual;break-after:avoid;letter-spacing:-.005em}.reader-body h2{margin:1.6em 0 .6em;font-size:1.35em;line-height:1.25}.reader-body h3{margin:1.4em 0 .4em;font-size:1.15em;line-height:1.3}.reader-body h4{margin:1.2em 0 .3em;font-size:1em;font-variant-caps:all-small-caps;letter-spacing:.04em}.reader-body a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em;text-decoration-color:var(--page-muted)}.reader-body ul,.reader-body ol{margin:.8em 0;padding-left:1.6em;text-align:left}.reader-body li{margin:.2em 0;break-inside:avoid}.reader-body blockquote{margin:1em 1.4em;padding:0;border:0;color:var(--page-muted);font-style:italic}.reader-body blockquote p+p{text-indent:1.4em}.reader-body hr{height:auto;margin:1.4em 0;border:0;text-align:center;color:var(--page-muted);break-after:avoid}.reader-body hr::before{content:"*\2003*\2003*";display:block;line-height:1}.reader-body code,.reader-body kbd{font-family:var(--font-mono);font-size:.82em;font-feature-settings:"lnum"}.reader-body :not(pre)>code{padding:.05em .3em;border-radius:3px;background:var(--page-code)}.reader-body kbd{padding:.05em .35em;border:1px solid var(--page-rule);border-radius:3px}.reader-body pre,.reader-body .highlight{margin:1em 0;text-align:left}.reader-body pre{padding:.8em 1em;border-radius:4px;background:var(--page-code);font-size:.78em;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;overflow:visible;hyphens:manual;-webkit-hyphens:manual}.reader-body .highlight pre{margin:0}.reader-body .highlight .chroma{background:var(--page-code)}.reader-body pre code{padding:0;font-size:1em;background:0 0}.reader-body table{width:100%;margin:1em 0;border-collapse:collapse;font-size:.85em;text-align:left;font-feature-settings:"lnum","tnum";break-inside:avoid}.reader-body th,.reader-body td{padding:.4em .6em .4em 0;border-bottom:1px solid var(--page-rule);vertical-align:top}.reader-body th{font-weight:600}.reader-body figure{margin:1em 0;break-inside:avoid;text-align:center}.reader-body img{display:block;max-width:100%;max-height:calc(var(--page-h,36rem) - 2 * var(--pad,2.5rem) - 4em);width:auto;height:auto;margin:0 auto;border-radius:3px}.reader-body figcaption{margin-top:.6em;font-size:.82em;font-style:italic;color:var(--page-muted);text-align:center}.reader-body sup{line-height:0}.reader-body .footnotes{margin-top:2em;font-size:.85em;color:var(--page-muted)}.reader-body .footnotes hr{margin:0 0 .8em;border-top:1px solid var(--page-rule)}.reader-body .footnotes hr::before{content:none}.reader-body .footnotes p{text-indent:0}.reader-tap-zones{position:absolute;inset:3rem 0;z-index:5;pointer-events:none}.reader-tap-zones[hidden]{display:none}.reader-tap-zone{position:absolute;top:0;bottom:0;width:33.3333%;margin:0;padding:0;border:0;display:flex;align-items:center;justify-content:center;background:0 0;color:transparent;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;outline:none;transition:color 320ms ease}.reader-tap-zone::before{content:"";position:absolute;inset:12px;border-radius:14px;background:0 0;pointer-events:none;transition:background-color 320ms ease}.reader-tap-prev{left:0}.reader-tap-next{right:0}.reader-tap-hand{width:72px;height:72px;transform-origin:50% 50%;filter:drop-shadow(0 1px 3px rgb(0 0 0/.22));animation:reader-tap-press 1.4s ease-in-out infinite}.reader-tap-hand path{fill:transparent;transition:fill 320ms ease}@keyframes reader-tap-press{0%,100%{transform:translateY(0)scale(1)}45%{transform:translateY(5px)scale(.92)}}.reader-tap-zones.visible .reader-tap-zone{color:var(--page-text)}.reader-tap-zones.visible .reader-tap-zone::before{background:rgb(0 0 0/6%)}:root[data-theme=dark] .reader-tap-zones.visible .reader-tap-zone::before{background:rgb(255 255 255/4%)}.reader-tap-zones.visible .reader-tap-hand path{fill:var(--page-text)}@media(prefers-reduced-motion:reduce){.reader-tap-hand{animation:none}}@media(max-width:40em){.reader-turn{display:none}.reader-stage{padding:0 .5rem}}@media(prefers-reduced-motion:no-preference){.reader{animation:reader-in 160ms ease-out}@keyframes reader-in{from{opacity:0}to{opacity:1}}}.bg{color:#4c4f69;background-color:#eff1f5}.chroma{color:#4c4f69;background-color:#eff1f5}.chroma .x{}.chroma .err{color:#d20f39}.chroma .cl{}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#bcc0cc}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8c8fa1}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8c8fa1}.chroma .line{display:flex}.chroma .k{color:#8839ef}.chroma .kc{color:#fe640b}.chroma .kd{color:#d20f39}.chroma .kn{color:#179299}.chroma .kp{color:#8839ef}.chroma .kr{color:#8839ef}.chroma .kt{color:#d20f39}.chroma .n{}.chroma .na{color:#1e66f5}.chroma .nc{color:#df8e1d}.chroma .no{color:#df8e1d}.chroma .nd{color:#1e66f5;font-weight:700}.chroma .ni{color:#179299}.chroma .ne{color:#fe640b}.chroma .nl{color:#04a5e5}.chroma .nn{color:#fe640b}.chroma .nx{}.chroma .py{color:#fe640b}.chroma .nt{color:#8839ef}.chroma .nb{color:#04a5e5}.chroma .bp{color:#04a5e5}.chroma .nv{color:#dc8a78}.chroma .vc{color:#dc8a78}.chroma .vg{color:#dc8a78}.chroma .vi{color:#dc8a78}.chroma .vm{color:#dc8a78}.chroma .nf{color:#1e66f5}.chroma .fm{color:#1e66f5}.chroma .l{}.chroma .ld{}.chroma .s{color:#40a02b}.chroma .sa{color:#d20f39}.chroma .sb{color:#40a02b}.chroma .sc{color:#40a02b}.chroma .dl{color:#1e66f5}.chroma .sd{color:#9ca0b0}.chroma .s2{color:#40a02b}.chroma .se{color:#1e66f5}.chroma .sh{color:#9ca0b0}.chroma .si{color:#40a02b}.chroma .sx{color:#40a02b}.chroma .sr{color:#179299}.chroma .s1{color:#40a02b}.chroma .ss{color:#40a02b}.chroma .m{color:#fe640b}.chroma .mb{color:#fe640b}.chroma .mf{color:#fe640b}.chroma .mh{color:#fe640b}.chroma .mi{color:#fe640b}.chroma .il{color:#fe640b}.chroma .mo{color:#fe640b}.chroma .o{color:#04a5e5;font-weight:700}.chroma .ow{color:#04a5e5;font-weight:700}.chroma .p{}.chroma .c{color:#9ca0b0;font-style:italic}.chroma .ch{color:#9ca0b0;font-style:italic}.chroma .cm{color:#9ca0b0;font-style:italic}.chroma .c1{color:#9ca0b0;font-style:italic}.chroma .cs{color:#9ca0b0;font-style:italic}.chroma .cp{color:#9ca0b0;font-style:italic}.chroma .cpf{color:#9ca0b0;font-weight:700;font-style:italic}.chroma .g{}.chroma .gd{color:#d20f39;background-color:#ccd0da}.chroma .ge{font-style:italic}.chroma .gr{color:#d20f39}.chroma .gh{color:#fe640b;font-weight:700}.chroma .gi{color:#40a02b;background-color:#ccd0da}.chroma .go{}.chroma .gp{}.chroma .gs{font-weight:700}.chroma .gu{color:#fe640b;font-weight:700}.chroma .gt{color:#d20f39}.chroma .gl{text-decoration:underline}.chroma .w{}[data-theme=dark] .bg{color:#cdd6f4;background-color:#1e1e2e}[data-theme=dark] .chroma{color:#cdd6f4;background-color:#1e1e2e}[data-theme=dark] .chroma .x{}[data-theme=dark] .chroma .err{color:#f38ba8}[data-theme=dark] .chroma .cl{}[data-theme=dark] .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}[data-theme=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}[data-theme=dark] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}[data-theme=dark] .chroma .hl{background-color:#45475a}[data-theme=dark] .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f849c}[data-theme=dark] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f849c}[data-theme=dark] .chroma .line{display:flex}[data-theme=dark] .chroma .k{color:#cba6f7}[data-theme=dark] .chroma .kc{color:#fab387}[data-theme=dark] .chroma .kd{color:#f38ba8}[data-theme=dark] .chroma .kn{color:#94e2d5}[data-theme=dark] .chroma .kp{color:#cba6f7}[data-theme=dark] .chroma .kr{color:#cba6f7}[data-theme=dark] .chroma .kt{color:#f38ba8}[data-theme=dark] .chroma .n{}[data-theme=dark] .chroma .na{color:#89b4fa}[data-theme=dark] .chroma .nc{color:#f9e2af}[data-theme=dark] .chroma .no{color:#f9e2af}[data-theme=dark] .chroma .nd{color:#89b4fa;font-weight:700}[data-theme=dark] .chroma .ni{color:#94e2d5}[data-theme=dark] .chroma .ne{color:#fab387}[data-theme=dark] .chroma .nl{color:#89dceb}[data-theme=dark] .chroma .nn{color:#fab387}[data-theme=dark] .chroma .nx{}[data-theme=dark] .chroma .py{color:#fab387}[data-theme=dark] .chroma .nt{color:#cba6f7}[data-theme=dark] .chroma .nb{color:#89dceb}[data-theme=dark] .chroma .bp{color:#89dceb}[data-theme=dark] .chroma .nv{color:#f5e0dc}[data-theme=dark] .chroma .vc{color:#f5e0dc}[data-theme=dark] .chroma .vg{color:#f5e0dc}[data-theme=dark] .chroma .vi{color:#f5e0dc}[data-theme=dark] .chroma .vm{color:#f5e0dc}[data-theme=dark] .chroma .nf{color:#89b4fa}[data-theme=dark] .chroma .fm{color:#89b4fa}[data-theme=dark] .chroma .l{}[data-theme=dark] .chroma .ld{}[data-theme=dark] .chroma .s{color:#a6e3a1}[data-theme=dark] .chroma .sa{color:#f38ba8}[data-theme=dark] .chroma .sb{color:#a6e3a1}[data-theme=dark] .chroma .sc{color:#a6e3a1}[data-theme=dark] .chroma .dl{color:#89b4fa}[data-theme=dark] .chroma .sd{color:#6c7086}[data-theme=dark] .chroma .s2{color:#a6e3a1}[data-theme=dark] .chroma .se{color:#89b4fa}[data-theme=dark] .chroma .sh{color:#6c7086}[data-theme=dark] .chroma .si{color:#a6e3a1}[data-theme=dark] .chroma .sx{color:#a6e3a1}[data-theme=dark] .chroma .sr{color:#94e2d5}[data-theme=dark] .chroma .s1{color:#a6e3a1}[data-theme=dark] .chroma .ss{color:#a6e3a1}[data-theme=dark] .chroma .m{color:#fab387}[data-theme=dark] .chroma .mb{color:#fab387}[data-theme=dark] .chroma .mf{color:#fab387}[data-theme=dark] .chroma .mh{color:#fab387}[data-theme=dark] .chroma .mi{color:#fab387}[data-theme=dark] .chroma .il{color:#fab387}[data-theme=dark] .chroma .mo{color:#fab387}[data-theme=dark] .chroma .o{color:#89dceb;font-weight:700}[data-theme=dark] .chroma .ow{color:#89dceb;font-weight:700}[data-theme=dark] .chroma .p{}[data-theme=dark] .chroma .c{color:#6c7086;font-style:italic}[data-theme=dark] .chroma .ch{color:#6c7086;font-style:italic}[data-theme=dark] .chroma .cm{color:#6c7086;font-style:italic}[data-theme=dark] .chroma .c1{color:#6c7086;font-style:italic}[data-theme=dark] .chroma .cs{color:#6c7086;font-style:italic}[data-theme=dark] .chroma .cp{color:#6c7086;font-style:italic}[data-theme=dark] .chroma .cpf{color:#6c7086;font-weight:700;font-style:italic}[data-theme=dark] .chroma .g{}[data-theme=dark] .chroma .gd{color:#f38ba8;background-color:#313244}[data-theme=dark] .chroma .ge{font-style:italic}[data-theme=dark] .chroma .gr{color:#f38ba8}[data-theme=dark] .chroma .gh{color:#fab387;font-weight:700}[data-theme=dark] .chroma .gi{color:#a6e3a1;background-color:#313244}[data-theme=dark] .chroma .go{}[data-theme=dark] .chroma .gp{}[data-theme=dark] .chroma .gs{font-weight:700}[data-theme=dark] .chroma .gu{color:#fab387;font-weight:700}[data-theme=dark] .chroma .gt{color:#f38ba8}[data-theme=dark] .chroma .gl{text-decoration:underline}[data-theme=dark] .chroma .w{}