
    :root {
        color-scheme: light dark;
         --main-width: 768px;
         --header-height: 84px;
         --nav-height: 47px;
         --toc-width: 232px;
         --grey-1: light-dark(hsl(0, 0%, 6%), hsl(230, 7%, 88%));
         --grey-2: light-dark(hsl(0, 0%, 13%), hsl(230, 7%, 85%));
         --grey-3: light-dark(hsl(0, 0%, 19%), hsl(230, 7%, 79%));
         --grey-4: light-dark(hsl(0, 0%, 25%), hsl(230, 7%, 73%));
         --grey-5: light-dark(hsl(0, 0%, 31%), hsl(230, 7%, 67%));
         --grey-6: light-dark(hsl(0, 0%, 38%), hsl(230, 7%, 61%));
         --grey-7: light-dark(hsl(0, 0%, 44%), hsl(230, 7%, 56%));
         --grey-8: light-dark(hsl(0, 0%, 50%), hsl(230, 7%, 50%));
         --grey-9: light-dark(hsl(0, 0%, 56%), hsl(230, 7%, 44%));
         --grey-a: light-dark(hsl(0, 0%, 63%), hsl(230, 7%, 38%));
         --grey-b: light-dark(hsl(0, 0%, 69%), hsl(230, 7%, 33%));
         --grey-c: light-dark(hsl(0, 0%, 75%), hsl(230, 7%, 27%));
         --grey-d: light-dark(hsl(0, 0%, 82%), hsl(230, 7%, 21%));
         --grey-e: light-dark(hsl(0, 0%, 88%), hsl(230, 7%, 15%));
         --grey-f: light-dark(hsl(0, 0%, 95%), hsl(230, 7%, 10%));
         --page-bg: light-dark(hsl(0, 0%, 99%), hsl(230, 7%, 8%));
         --white: light-dark(hsl(0, 0%, 100%), hsl(230, 7%, 7%));
         --link-color: light-dark(#2952a0, #85a3d2);
         --code-blue: light-dark(#4761af, #8da2d4);
         --code-orange: light-dark(#9c691b, #bd8b49);
         --code-purple: light-dark(#81519c, #9d77b1);
         --code-grey: #808080;
         --code-green: light-dark(#3c7d39, #709e6e);
         --code-red: light-dark(#a66, #b06f6f);
         --red: light-dark(#af2326, #c74244);
         --blue: light-dark(#434ab8, #666cc9);
         --green: light-dark(#387332, #729c74);
         --emerald: light-dark(#107352,#48977d);
         --gold: light-dark(#735206, #b38927);
         --bg-light-blue: light-dark(#ecf5ff, #5695ff18);
         --bg-light-green: light-dark(#dff2df, #2932);
         --bg-light-red: light-dark(#fdd, #f442);
         --bg-light-yellow: light-dark(#fff7cc, #3e3c33);
         --bg-cream: light-dark(#fbf6ec, #ccc1);
    }
    html.justify-text .article { text-align: justify; }
    html.indent-text .article > p { text-indent: 2em; }
    html.wide { --main-width: 926px; }
    html.reduce-margins .article > p + p, html.reduce-margins .article > .image-gallery.float + p { margin-top: 0; }
    html.reduce-margins .article .auto-list li.text-block { margin-top: 0.2353em; }
    html.reduce-margins .article .auto-list div.text-block { margin-top: 0; }
    
    html:not(.js) { padding: 2em; white-space: pre-wrap; font: 15px/1.3 monospace; }
    html:not(.animate) * { transition: none !important; }
    html { color: var(--grey-2); background-color: var(--page-bg); font: 15px/1.3 'Segoe UI',system-ui; scroll-padding-top: calc(var(--nav-height) + 17px); scrollbar-color: light-dark(#6f90ba, #888) light-dark(#ddd, #222); padding: 0; min-width: 350px; min-height: 100vh; }
        body { min-height: 100vh; margin: 0; }
        ::selection { background-color: light-dark(#fff2a2, #343942); color: light-dark(#111, #ddd); }

    .navbar { z-index: 4; }
        .right-panel { z-index: 3; }
        .toc-toggle-button { z-index: 3; }
        .screen { z-index: 2; }
    .page-grid { z-index: 1; }
    .lightbox { z-index: 5; }
    
    .navbar { position: sticky; top: 0; height: var(--nav-height); font: 15px/1 'Roboto',system-ui; background-color: var(--page-bg); color: light-dark(#6a6a6a, #7d7d7d); transition: box-shadow 0.5s; padding: 1px 15px 0; }
    .navbar.sticky-active { box-shadow: 0 1px 8px light-dark(#0002, #000a); }
        .nav-inner { height: inherit; width: inherit; display: grid; grid-template-columns: 1fr auto 1fr; gap: 1em; margin-inline: auto; }
            .nav-inner > div { display: flex; align-items: center; }
                .index-button { height: 32px; min-width: 114px; max-width: 142px; width: 25%; display: flex; justify-content: center; align-items: center; font: 14px/1 'Segoe UI',system-ui; border-radius: 5px; color: light-dark(#f0f0f0, #c6cacf); background-color: light-dark(#59677d,#3b4659); }
                .index-button:hover { text-decoration: none; filter: brightness(1.1); }
                    .index-button div { white-space: nowrap; }
                        .index-button svg { transform: translateY(1px); }
                        .index-button span { margin-inline: 7px 5px; }
                .page-name-segment { width: 100%; text-align: center; }
                    .page-name { opacity: 0; transition: opacity 0.8s; pointer-events: none; }
                    .navbar.sticky-active .page-name { opacity: 1; pointer-events: auto; }
                .menu-button { margin-left: auto; display: flex; object-fit: contain; background-repeat: no-repeat; background-size: contain; background-position: center; opacity: 0.65; cursor: pointer; padding: 2px; }
                .menu-button:hover { opacity: 0.8; }
    .panel-aligner { height: 0; position: sticky; top: var(--nav-height); margin-inline: auto; }
        .toc-toggle-button { display: none; }
        .right-panel { width: 298px; display: grid; gap: 15px 0; font-size: 14px; position: sticky; margin-left: auto; top: calc(var(--nav-height) + 1px); line-height: 1.15; background-color: light-dark(#f8f8f8, #292929); color: light-dark(#555, #999); padding: 25px 28px; transform: translateY(calc(-101% - var(--nav-height))); box-sizing: border-box; transition: transform 0.25s; opacity: 0; }
        .right-panel.open { transform: translateY(0); opacity: 1; }
            .right-panel .reset-button { margin-left: auto; font-weight: 400; cursor: pointer; color: var(--grey-6,dimgrey); }
            .right-panel hr { margin: 0; }
            .right-panel h3 { font-size: 1em; color: var(--grey-4); }
            .right-panel label { user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; }
            .slide-checkbox { appearance: none; cursor: pointer; width: 30px; min-width: 30px; height: 17px; color: light-dark(#bbb, #707070); border: 1px solid light-dark(#aaa, #5f5f5f); background-color: light-dark(#fff, #0000); display: inline-flex; align-items: center; padding: 4px 4px; border-radius: 50px; }
            .slide-checkbox:hover, label:hover + .slide-checkbox { outline: 1px solid var(--grey-a,silver); }
            .slide-checkbox:checked { color: #fff; background-color: light-dark(#677399, #383b5b); border-color: light-dark(#0004, #fff2); }
                .slide-checkbox::after { transition: transform 0.25s ease; display: block; content: ""; border-radius: 50%; height: 9px; width: 9px; background-color: currentcolor; }
                .slide-checkbox:checked::after { transform: translateX(11px); }
            .switches-area { padding-left: 6px; padding-bottom: 4px; gap: 14px 0; display: grid; grid-template-columns: 1fr auto; justify-content: space-between; }
                .switches-area label { min-width: 175px; cursor: pointer; }
        .screen { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background-color: light-dark(#0012, #0002); display: none; pointer-events: none; }
        .right-panel.open + .screen { display: block; }
        .right-panel.open ~ .toc-toggle-button { border-color: light-dark(#adadad,#252525);; }

    .page-grid { display: flex; justify-content: center; border-top: 1px solid light-dark(#eaeaea, #202020); margin-inline: auto; }
        .toc { margin-top: -1px; font-size: 14px; align-self: start; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: light-dark(#bbb, #555) light-dark(#eee, #191919); max-width: var(--toc-width); min-width: var(--toc-width); width: var(--toc-width); padding: 16px 16px 32px; box-sizing: border-box; position: sticky; top: calc(1px + var(--nav-height)); color: light-dark(#666, #606060); overflow: hidden; max-height: calc(100vh - var(--nav-height) - 24px); }
        .toc:hover { overflow: auto; }
            .toc-title { font-weight: 600; color: var(--grey-3); }
            .toc-row { margin-top: 10px; }
            .toc-row.h1 { padding-left: 0; }
            .toc-row.h2 { padding-left: 16px; }
            .toc-row.h3 { padding-left: 32px; }
                .toc-row.active-heading a { color: light-dark(#333, #939393); font-weight: 600; }
                    .toc-row a { color: inherit; }
                    .toc-row a:hover { color: light-dark(#666, #999); color: var(--grey-3); }
        .main-container { flex: 1 1 auto; background-color: var(--page-bg); max-width: var(--main-width); padding: 60px 50px 80px; margin-inline: auto; }
            .article { font: 18px/1.55 'Faculty Glyphic','Georgia Pro Digits','Georgia','Georgia Pro',sans-serif; }
                .article > :first-child { margin-top: 0 !important; }
                .article > * { margin-top: 15px; }
                .article-top { margin-bottom: 1.5rem; display: grid; gap: 17px; }
                    .article .article-top h1.article-title { margin: 0; font: 700 40px/1.15 'Lora','Georgia Pro',sans-serif; }
                    .article .article-top h2.article-subtitle { font: 400 23px/1.3 'Lora','Georgia Pro',sans-serif; color: var(--grey-6,dimgrey); }
                    .article .article-top .article-byline { font-size: 17px; color: var(--grey-6,grey); margin-left: 1px; }
                .article h1 { font-size: calc(1em + 12px); margin-top: 1em; font-family: 'Lora','Georgia Pro',sans-serif; }
                .article h2 { font-size: calc(1em + 6px); margin-top: 1em; font-family: 'Lora','Georgia Pro',sans-serif; }
                .article h3 { font-size: calc(1em + 2px); margin-top: 1em; }
                .article h4 { font-size: 1em; }
                .article h5 .article h6 { display: none; }
                .article .auto-heading + .auto-heading,
                .article h4 + p { margin-top: 0.5em; }
                .article .auto-heading { clear: both; text-align: left; font-weight: 700; }
                .article figcaption { text-align: center; font-size: 15px; line-height: 1.3; }
                .article figcaption strong { font-weight: 600; }
                .article .drop-cap::first-letter { float: left; font-size: 3em; padding: 0.15em 0.2em 0.1em }
                .article mark { background-color: #fff496; color: #2f2f2f; }
                .auto-list + .auto-list { margin-top: 0; }
                .auto-list.condensed { line-height: 1.5; }
                    .auto-list li.text-block { margin-top: 0.355em;  }
                    .auto-list div.text-block { margin-top: 0.1875em;  }
                    .auto-list ol + .text-block,
                    .auto-list ul + .text-block { margin-top: 0.65em; }
                .article a { color: var(--link-color); }
                .article a:hover { text-decoration: underline; }
                .article sup { vertical-align: text-top; line-height: 1; }
                .article sup a { text-decoration: none; margin-left: 1px; }
                .article sub { vertical-align: sub; line-height: 1; }
                .article .fine, .article .fine *, .article .fine ::marker { color: var(--grey-5,dimgrey); font-size: 16px; line-height: 1.5; }
                    .article .fine + .fine { margin-top: 0; }
                        .article .fine a { text-decoration: 1px dotted underline var(--grey-9,silver); }
                        .article .fine p, .article .fine li { margin-top: 4px; }
                .article .info { max-width: var(--main-width); margin-inline: auto; padding: 12px 16px; font-size: 16px; background-color: var(--bg-light-blue); border: 1px dashed var(--blue); }
                    .article .info > :nth-child(n+2) { margin-top: 0.25em; }
                    .article .info li { margin-top: 3px; }
                .rows .row { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0px 2px; }
                .article code { background-color: var(--grey-f,whitesmoke); vertical-align: baseline; font-size: 15px/1 'Consolas',monospace; padding-inline: 2px; letter-spacing: -0.3px; white-space: pre-wrap; }
                .article code * { font-size: inherit !important; font-family: inherit !important; }
                .codeblock { background-color: light-dark(#f4f4f4, #222); color: light-dark(#222,#ddd); white-space: pre-wrap; font-size: 15px/1.25 'Consolas',monospace; padding: 14px; margin-top: 1.2em !important; border-left: 2px solid light-dark(#488, #255); }
                    .codeblock mark { background-color: light-dark(#fff0c0, #fe92); }
                    .codeblock .code-number { color: var(--code-orange); }
                    .codeblock .code-keyword { color: var(--code-blue); }
                    .codeblock .code-cust-keyword { color: var(--code-purple); }
                    .codeblock .code-string *,
                    .codeblock .code-string { color: var(--code-red); }
                    .codeblock .code-comment { color: var(--code-green); }
                    .codeblock .code-macro { color: var(--code-grey); }
                        .codeblock .code-comment * { color: inherit !important; }
                        .codeblock .code-macro * { color: inherit !important; }
                .auto-indent { font-size: 17px; line-height: 1.5; padding: 12px 20px; margin-left: 6px; background-color: light-dark(#f6f8fc, #191b1f); border-left: 2px solid light-dark(#7286a6, #354a6c); border-radius: 2px 0 0 8px; border-bottom: 1px solid light-dark(#e4e4e4,#1D1D1F); }
                    .article .auto-indent > :nth-child(n+2) { margin-top: 0.24em; }
                    .article .auto-indent .attribution { margin-left: 2em; }
                    .article .auto-indent .attribution, .article .auto-indent .attribution { color: var(--grey-5); }
                    .article .auto-table .auto-indent { margin-bottom: 0.5rem; }
                .auto-video { background-color: #111; }
                    .auto-video video { display: block; margin-inline: auto; }
                .table-wrapper { text-align: left; margin-block: 20px; font-size: 17px; }
                    .auto-table { }
                        .auto-table .image-gallery { margin: 0.589em auto; }
                        .auto-table .fine { margin: 0.5em 0 0.5em; }
                        .auto-table th,
                        .auto-table td { padding: 0.355em 0.53em; vertical-align: top; }
                        .article .auto-table .auto-indent { margin-left: 15px; padding: 3px 12px 4px; }
                .file-box { background-color: light-dark(#fff0, #242424); border: 1px dashed grey; display: flex; gap: 3px; font-size: 14px; margin: 15px 0 15px 20px; line-height: 1.15; width: min-content; padding: 8px 6px 2px; float: right; }
                    .file-box figure { gap: 1px; width: 102px; display: flex; flex-direction: column; align-items: center; }
                        .file-box .pdf { width: 35px; aspect-ratio: 1; background: url(pdf-icon.png); background-size: contain; }
                        .file-box figcaption { padding: 3px; }
                            .file-box figcaption a { word-break: break-word; text-decoration: none; }
                
                .image-gallery { margin: 20px auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(50px, 1fr)); justify-content: space-evenly; gap: 8px; align-items: baseline; font-size: 15px; max-width: var(--main-width); }
                .image-gallery:has(> :nth-child(2) ) img { aspect-ratio: 1.2; }
                .image-gallery figure { }
                    .image-gallery figcaption { color: var(--grey-6,dimgrey); padding: 3px 6px; }
                    .image-gallery img { object-fit: cover; margin-inline: auto; border: 1px solid var(--grey-c,silver); cursor: pointer; }
                .image-gallery.float { float: right; max-width: 170px; grid-template-columns: auto !important; margin: 20px 0 20px 16px; }
                    .image-gallery.float img { background-color: var(--page-bg); aspect-ratio: unset !important; padding: 4px; }
                .image-gallery.oar img { aspect-ratio: unset !important; }
                .image-gallery.contain img { object-fit: contain; }
            
            .article-footer { color: var(--grey-5,dimgrey); font: 15px/1.5 'Roboto','Arial',sans-serif; display: grid; gap: 2em; margin-top: 3em; clear: both; }
                .mirror-container .link-text { color: var(--grey-3); }
                .footer-links-area { display: flex; justify-content: space-evenly; padding-bottom: 0.5em; }
                    .footer-links-area a { color: var(--grey-6); }
                    .footer-links-area .inline-icon { margin-inline: 0 3px !important; }
                    .footer-links-area ul { list-style-type: none; padding: 0 0 0 2em; }
                        .footer-links-area li { margin-top: 5px; }
                .citelist { scrollbar-gutter: stable; display: grid; grid-template-columns: min-content auto; line-height: 1.3; gap: 5px 3px; margin-top: 2px; border-top: 1px solid var(--grey-c,silver); font-size: 14px; max-height: 246px; overflow: auto; padding: 8px 0px 12px; scrollbar-color: light-dark(#b8b8b8, #505050) light-dark(#f6f6f6, #181818); }
                    .citelist.expanded { overflow: auto; max-height: unset; border-color: var(--grey-e); }
                    .citelist .no-select { text-align: right; padding-left: 7px; }
                        .citelist a { text-decoration: none; }
                        .citelist a:hover { text-decoration: underline; }
        .right-spacer { flex: 1 1 auto;
            max-width: clamp(
                0px,
                calc(0.334 * (100vw - 100px - var(--main-width) - var(--toc-width))),
                var(--toc-width)
            );
        }

    .lightbox { max-width: 100%; max-height: 100%; color: #bbb; font-family: 'Segoe UI','Nirmala UI',system-ui; height: 100vh; width: 100%; background-color: #0008; position: fixed; left: 0; top: 0; display: flex; align-items: stretch; flex-direction: column; justify-content: space-between; }
    
        .lb-top-left { color: #888; background-color: #111; font-size: 14px; min-height: var(--nav-height); height: var(--nav-height); display: flex; align-items: center; padding: 0 1rem; }
        .lb-top-left a { text-decoration: dotted underline; }
        .lb-img-wrapper { overflow: hidden; flex-grow: 1; display: flex; justify-content: center; align-items: center; }
        .lb-img-wrapper img { background-color: var(--page-bg); object-fit: contain; max-width: 100%; max-height: 100%; }
        .lb-caption-panel { background-color: #111; display: flex; justify-content: center; align-items: center; padding: 24px 20px 26px; }
        .lb-caption-panel p { text-align: left; max-width: var(--main-width); font-size: 15px; }

@media (hover: none) and (pointer: coarse) { .article { max-width: unset; } .main-container { max-width: unset; } }
@media (max-width: 1064px) { :root { --toc-width: 180px; } .main-container { padding-inline: 28px; } }
@media (max-width: 820px) {
    :root { --toc-width: 322px; }
    .toc { display: none; }
    .toc.attach { display: block; position: fixed; background-color: var(--page-bg); top: calc(57px + var(--nav-height)); left: 9px; border: 1px solid var(--grey-c); padding: 16px; }
    .toc-toggle-button { display: block; width: 48px; height: 37px; border-radius: 2px; background-color: light-dark(#fff, #1D1D1F); border: 1px solid light-dark(#ccc,#272727); color: light-dark(#333, #aaa); cursor: pointer; top: calc(15px + var(--nav-height)); left: 18px; position: fixed; display: flex; justify-content: center; align-items: center; }
}
@media (max-width: 700px) { .index-button { width: 64px; min-width: unset; max-width: 64px; } .index-button span { display: none; } }

*{margin:0;padding:0}i,em,.italic{font-style:italic}b,strong,.bold{font-weight:700}sub,sup{font-size:0.8em}img{display:block;object-fit:contain;line-height:1.5;max-height:100%;max-width:100%;box-sizing:border-box}ul{list-style-type:disc}ul,ol{padding:0 2em}ol ol{list-style-type:lower-alpha}ol ol ol{list-style-type:lower-roman}ol>*{padding-left:1px}hr{border:none;height:1px;width:100%;margin:1em 0;background-color:var(--grey-c,silver)}table{border-collapse:collapse}td{vertical-align:top}a{color:inherit;text-decoration:none;text-underline-offset:2px}a:hover{text-decoration:underline}input,select{font-family:Segoe UI,Nirmala UI,system-ui,sans-serif}textarea{border:1px solid var(--grey-c,silver)}svg{shape-rendering:geometricPrecision}.segoe{font-family:'Segoe UI',system-ui}.georgia{font-family:'Georgia',serif}.roboto{font-family:'Roboto',sans-serif}.times{font-family:'Times',serif}.label-external .inline-icon.link-icon{background-image:var(--link-icon);margin-inline:2px 1px;vertical-align:0;height:16px}.label-external .inline-icon{border-radius:1px;margin-inline:3px;aspect-ratio:1;width:17px;height:17px;display:inline-block;vertical-align:-3px;object-fit:contain;background-repeat:no-repeat;background-size:contain;background-position:center}.label-external .inline-icon.bluesky-logo{background-image:var(--bluesky-logo)}.label-external .inline-icon.discord-logo{background-image:var(--discord-logo)}.dark .discord-logo{filter:contrast(1.25)}.label-external .inline-icon.facebook-logo{background-image:var(--facebook-logo)}.dark .facebook-logo{filter:brightness(1.2) grayscale(0.4)}.label-external .inline-icon.github-logo{background-image:var(--github-logo)}.dark .github-logo{filter:invert(1) grayscale(1)}.text-center{text-align:center}.label-external .inline-icon.patreon-logo{background-image:var(--patreon-logo)}.dark .patreon-logo{filter:contrast(1.2)}.label-external .inline-icon.substack-logo{background-image:var(--substack-logo)}.label-external .inline-icon.tumblr-logo{background-image:var(--tumblr-logo);border-radius:50%}.dark .tumblr-logo{filter:brightness(1.1) contrast(1.1)}.label-external .inline-icon.instagram-logo{background-image:var(--instagram-logo)}.dark .instagram-logo{filter:grayscale(0.3) brightness(1.3)}.label-external .inline-icon.reddit-logo{background-image:var(--reddit-logo)}.label-external .inline-icon.medium-logo{background-image:var(--medium-logo)}.label-external .inline-icon.wikipedia-logo{background-image:var(--wikipedia-logo);border-radius:3px;border:1px solid var(--grey-a,grey);width:16px;height:16px}.label-external .inline-icon.twitter-logo{background-image:var(--twitter-logo)}.dark .twitter-logo{filter:invert(1)}.label-external .inline-icon.twitch-logo{background-image:var(--twitch-logo)}.label-external .inline-icon.youtube-logo{background-image:var(--youtube-logo)}.dark .youtube-logo{filter:grayscale(0.4)}.label-external .inline-icon.paypal-logo{background-image:var(--paypal-logo)}.label-external .inline-icon.kofi-logo{background-image:var(--kofi-logo)}.label-external .inline-icon.lightbox-link{background-image:var(--lightbox-icon)}.dark .lightbox-link{filter:invert(1)}.no-select{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.text-select{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.nowrap{white-space:nowrap}.hidden{display:none!important}.gap-em{gap:1em}.gap-rem{display:flex;gap:1rem}.gap-1{gap:1px}.gap-2{gap:2px}.gap-3{gap:3px}.gap-4{gap:4px}.gap-5{gap:5px}.gap-6{gap:6px}.gap-7{gap:7px}.gap-8{gap:8px}.gap-9{gap:9px}.gap-10{display:flex;gap:10px}.gap-11{display:flex;gap:11px}.gap-12{display:flex;gap:12px}.gap-13{display:flex;gap:13px}.gap-14{display:flex;gap:14px}.gap-15{display:flex;gap:15px}.gap-16{display:flex;gap:16px}.gap-17{display:flex;gap:17px}.gap-18{display:flex;gap:18px}.gap-19{display:flex;gap:19px}.gap-20{display:flex;gap:20px}.gap-21{display:flex;gap:21px}.gap-22{display:flex;gap:22px}.gap-23{display:flex;gap:23px}.gap-24{display:flex;gap:24px}.gap-25{display:flex;gap:25px}.gap-26{display:flex;gap:26px}.gap-27{display:flex;gap:27px}.gap-28{display:flex;gap:28px}.gap-29{display:flex;gap:29px}.gap-30{display:flex;gap:30px}.gap-31{display:flex;gap:31px}.gap-32{display:flex;gap:32px}.grid{display:grid!important}.flex{display:flex}.wrap{display:flex;flex-wrap:wrap}.flex-end{display:flex;justify-content:flex-end}.center{display:flex;justify-content:center}.space-between{display:flex;justify-content:space-between}.space-evenly{display:flex;justify-content:space-evenly}.reverse{display:flex;flex-direction:row-reverse}.column-reverse{display:flex;flex-direction:column-reverse}.column{display:flex;flex-direction:column}.align-center{display:flex;align-items:center}.align-baseline{display:flex;align-items:baseline}.align-end{display:flex;align-items:flex-end}.align-stretch{display:flex;align-items:stretch}.pseudo-link{cursor:pointer}.pseudo-link:hover{text-decoration:underline}.fade-out{opacity:0;transition:opacity 0.7s 0.4s!important}.offset-3{text-underline-offset:3px}.offset-4{text-underline-offset:4px}.offset-5{text-underline-offset:5px}.offset-6{text-underline-offset:6px}.offset-7{text-underline-offset:7px}.bubble-link a{border-radius:2em;border:1px solid var(--grey-c,silver);line-height:1;white-space:nowrap;padding:4px 10px 4px 6px;text-decoration:none!important}.bubble-link a:hover{text-decoration:none!important;border-color:var(--grey-8,grey)}.bubble-link a:active{border-color:var(--link-color);color:var(--link-color)}.bubble-link a .inline-icon{width:15px;height:15px}.rect-link a{font-size:14px;font-family:'Segoe UI',system-ui;border-radius:4px;border:1px solid var(--grey-b,silver);line-height:1;white-space:nowrap;padding:5px 8px 5px 3px;display:flex;text-decoration:none!important}.rect-link a:hover{text-decoration:none!important;border-color:var(--grey-8,grey)}.rect-link a:active{border-color:var(--link-color);color:var(--link-color)}.rect-link a .inline-icon{width:15px;height:15px}.underline-links a{text-decoration:underline}.dotted-underline-links a{text-decoration:dotted underline #89c}.article .red,.article .red a{color:var(--red)}.article .green,.article .green a{color:var(--green)}.article .emerald,.article .emerald a{color:var(--emerald)}.article .gold,.article .gold a{color:var(--gold)}.article .blue,.article .blue a{color:var(--blue)}.margin-top-em{margin-top:1em;}.margin-top-10{margin-top:10px;}
:root{--youtube-logo:url("data:image/svg+xml,%3Csvg viewBox='0 0 28.57 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M27.9727 3.12324C27.6435 1.89323 26.6768 0.926623 25.4468 0.597366C23.2197 2.24288e-07 14.285 0 14.285 0C14.285 0 5.35042 2.24288e-07 3.12323 0.597366C1.89323 0.926623 0.926623 1.89323 0.597366 3.12324C2.24288e-07 5.35042 0 10 0 10C0 10 2.24288e-07 14.6496 0.597366 16.8768C0.926623 18.1068 1.89323 19.0734 3.12323 19.4026C5.35042 20 14.285 20 14.285 20C14.285 20 23.2197 20 25.4468 19.4026C26.6768 19.0734 27.6435 18.1068 27.9727 16.8768C28.5701 14.6496 28.5701 10 28.5701 10C28.5701 10 28.5677 5.35042 27.9727 3.12324Z' fill='%23d23'/%3E%3Cpath d='M11.4253 14.2854L18.8477 10.0004L11.4253 5.71533V14.2854Z' fill='white'/%3E%3C/svg%3E");--youtube-logo:url(youtube-logo.png);--twitter-logo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23111' d='M21.742 21.75l-7.563-11.179 7.056-8.321h-2.456l-5.691 6.714-4.54-6.714H2.359l7.29 10.776L2.25 21.75h2.456l6.035-7.118 4.818 7.118h6.191-.008zM7.739 3.818L18.81 20.182h-2.447L5.29 3.818h2.447z'%3E%3C/path%3E%3C/svg%3E");--substack-logo:url("data:image/svg+xml,%3Csvg viewBox='-1 -2 22 23' fill='%23f85' stroke-width='1.8' stroke='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg%3E%3Cpath d='M1.96484 0.624512H18.0354V2.70052H1.96484V0.624512Z' stroke='none'%3E%3C/path%3E%3Cpath d='M1.96484 4.77655H18.0354V6.85254H1.96484V4.77655Z' stroke='none'%3E%3C/path%3E%3Cpath d='M1.96484 8.92857V19.9505L10.0001 14.6347L18.0354 19.9505V8.92857H1.96484Z' stroke='none'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");--bluesky-logo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 530'%3E%3Cpath fill='%234ae' d='m135.7 44c66.5 49.9 138 151.1 164.3 205.5C326.3 195.2 397.8 94 464.3 44 512.3 8 590-19.9 590 68.8c0 17.7-10.2 148.8-16.1 170.1-20.7 74-96.1 92.9-163.3 81.4 117.3 20 147.1 86.1 82.7 152.2-122.4 125.6-175.9-31.5-189.6-71.8-2.5-7.4-3.7-10.8-3.7-7.9 0-2.9-1.2.5-3.7 7.9-13.7 40.3-67.2 197.4-189.6 71.8-64.4-66.1-34.6-132.3 82.7-152.2-67.1 11.4-142.6-7.4-163.3-81.4C20.1 217.6 10 86.5 10 68.8 10-19.9 87.7 8 135.7 44z'/%3E%3C/svg%3E");--tumblr-logo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256px' height='256px' viewBox='0 0 256 256'%3E%3Crect x='0' y='0' fill='%23314358' width='255.52' height='256'/%3E%3Cpath xmlns='http://www.w3.org/2000/svg' fill='%23FFFFFF' d='M160.7 169.1l6.8 20.4c-2.5 3.9-14.3 8.3-24.8 8.5-31.3.6-43.2-22.2-43.2-38.3v-47H84.9V94.2c21.8-7.8 27-27.5 28.3-38.7.1-.8.7-1.1 1.1-1.1s21.1 0 21.1 0V91h28.8v21.8H135.3v44.7c.1 6 2.4 14.4 13.9 14.1 3.9-.2 8.9-1.2 11.6-2.5'/%3E%3C/svg%3E");--medium-logo:url("data:image/svg+xml,%3Csvg viewBox='-10 -10 1034 1034' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='1024' height='1024' rx='179.649' fill='black'/%3E%3Cpath d='M1024 705v93c-6 0-12 1-18 1-110 0-172-92-174-207-1-4-1-8 0-13 0-2 0-5 0-8 0-1 0-3 0-4 0-2 0-3 0-5 4-50 21-95 48-129 16-20 36-36 59-47 20-10 48-15 71-15h1c4 0 9 0 13 0v26c-4-1-9-2-15-2-46 1-73 56-77 133h92v22H930c-4 75 37 138 94 155Z' fill='white'/%3E%3Cpath d='M836 245c-30 6-45 17-45 53V736c2 29 18 38 45 44l1 1v6H627v-6l1-1c27-6 42-15 45-44V310L470 786H459L262 323V726c0 36 16 47 46 53l1 1v6H188v-6l1-1c30-6 45-17 45-53V298c0-36-15-47-45-53l-1-1v-6H366L519 598 672 238H837v6l-1 1Z' fill='white'/%3E%3C/svg%3E");--patreon-logo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 364 364'%3E%3Crect x='5' y='5' width='359' height='359' rx='72' fill='%23111'/%3E%3Cpath fill='white' d='M296 135.5c.1 35-22.8 61.4-56.3 69.7-19.6 4.8-35.5 9.4-47.8 25.9-17.4 23.2-22.9 71.3-60.4 70.8-50.4-.6-53.8-89.6-53.4-123.5.4-41.1 12.9-82.4 53-101.2 33.1-15.5 78.7-17.2 113.3-6 27.8 9 51.5 33.9 51.6 64.3Z'%3E%3C/path%3E%3C/svg%3E");--discord-logo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 96'%3E%3Cpath fill='%236080ff' d='M83.2 0c-1.2 2.2-2.3 4.5-3.4 6.8-9.6-1.4-19.4-1.4-29 0-1-2.3-2.1-4.6-3.4-6.8-9 1.5-17.8 4.2-26.1 8.1C4.8 32.5.3 56.4 2.5 79.9 12.2 87 23 92.5 34.6 96c2.6-3.5 4.9-7.2 6.9-11.1-3.7-1.4-7.3-3.1-10.8-5.2.9-.7 1.8-1.3 2.7-2 20.3 9.5 43.8 9.5 64.1 0 .9.7 1.7 1.4 2.7 2-3.5 2-7.1 3.8-10.8 5.2 2 3.9 4.3 7.6 6.9 11.1 11.5-3.5 22.4-8.9 32.1-16.1C131 52.6 123.9 29 109.6 8 101 4.3 92.2 1.6 83.2.1V0ZM44.3 65.4c-6.2 0-11.4-5.7-11.4-12.7S37.9 40 44.3 40s11.5 5.7 11.4 12.7-5 12.7-11.4 12.7Zm42.1 0c-6.3 0-11.4-5.7-11.4-12.7S80 40 86.4 40s11.5 5.7 11.4 12.7-5 12.7-11.4 12.7Z'/%3E%3C/svg%3E");--kofi-logo:url(kofi-logo.png);--github-logo:url("data:image/svg+xml,%3Csvg viewBox='0 0 132 132' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M66 2c35.4 0 64 28.6 64 64 0 28.2-18.3 52.2-43.6 60.7-3.2.7-4.4-1.3-4.4-3 0-2.2.1-9.1.1-17.6 0-6-2-9.9-4.3-11.9C92 92.6 107 87.2 107 62.6c0-7-2.5-12.7-6.6-17.2.6-1.6 2.9-8.1-.6-16.9 0 0-5.4-1.8-17.6 6.5-5.2-1.4-10.6-2.1-16-2.1-5.5 0-10.9.7-16 2.1-12.3-8.2-17.6-6.5-17.6-6.5-3.6 8.8-1.3 15.3-.7 16.9-4.1 4.5-6.5 10.3-6.5 17.2 0 24.5 14.8 30 29.1 31.6-1.9 1.6-3.5 4.4-4.1 8.6-3.7 1.7-12.9 4.4-18.6-5.3-1.2-1.9-4.8-6.6-9.9-6.5-5.3 0-2.1 3 .1 4.2 2.7 1.5 5.8 7.2 6.6 9 1.2 3.6 5.4 10.5 21.5 7.6 0 5.3.1 10.4.1 11.9 0 1.7-1.2 3.6-4.4 3C20.3 118.2 2 94.3 2 66 2 30.6 30.6 2 66 2Z' fill='%23112'/%3E%3C/svg%3E");--twitch-logo:url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.7 0L1.4 10.985V55.88h15.284V64h8.597l8.12-8.12h12.418l16.716-16.716V0H5.7zm51.104 36.3L47.25 45.85H31.967l-8.12 8.12v-8.12H10.952V5.73h45.85V36.3zM47.25 16.716v16.716h-5.73V16.716h5.73zm-15.284 0v16.716h-5.73V16.716h5.73z' fill='%236441a4' fill-rule='evenodd'/%3E%3C/svg%3E");--facebook-logo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 510 510'%3E%3Cpath fill='%230066ee' d='M505 255c0 127.8-95.9 233.2-219.7 248.2V331.4h67.6l14-76.4H285.2V228c0-40.4 15.8-55.9 56.8-55.9 12.8 0 23 .3 28.9.9V103.8c-11.1-3.1-38.5-6.2-54.3-6.2-83.5 0-122 39.4-122 124.5V255H143v76.4h51.6V497.6C85.7 470.6 5 372.2 5 255 5 116.9 116.9 5 255 5S505 116.9 505 255'%3E%3C/path%3E%3C/svg%3E");--lightbox-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='16 15 68 68' fill='%23222'%3E%3Crect fill='none' width='100' height='100'/%3E%3Cpath d='M22,35 V26 Q22,22 26,22 H35 M65,22 H74 Q78,22 78,26 V35 M78,65 V74 Q78,78 74,78 H65 M32,78 H26 Q22,78 22,74 V65' stroke='%23444' stroke-width='6' fill='none' stroke-linecap='round'/%3E%3Crect x='34' y='34' width='32' height='32' rx='5'/%3E%3Cpath d='M38,60 L48,48 L54,55 L58,50 L64,60 Z' fill='white'/%3E%3C/svg%3E");--link-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-1 -3 26 26' fill='none' stroke='light-dark(%23667,%23999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15 3 21 3 21 9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E");--paypal-logo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 48 48'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23002991' d='M38.914 13.35c0 5.574-5.144 12.15-12.927 12.15H18.49l-.368 2.322L16.373 39H7.056l5.605-36h15.095c5.083 0 9.082 2.833 10.555 6.77a9.687 9.687 0 0 1 .603 3.58z'/%3E%3Cpath fill='%2360CDFF' d='M44.284 23.7A12.894 12.894 0 0 1 31.53 34.5h-5.206L24.157 48H14.89l1.483-9 1.75-11.178.367-2.322h7.497c7.773 0 12.927-6.576 12.927-12.15 3.825 1.974 6.055 5.963 5.37 10.35z'/%3E%3Cpath fill='%23008CFF' d='M38.914 13.35C37.31 12.511 35.365 12 33.248 12h-12.64L18.49 25.5h7.497c7.773 0 12.927-6.576 12.927-12.15z'/%3E%3C/g%3E%3C/svg%3E");--instagram-logo:url(instagram-logo.png);--reddit-logo:url(reddit-logo.png);--wikipedia-logo:url(wikipedia-logo.png);--close-button:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='2 2 20 20'%3E%3Cpath fill='%23888d' d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'%3E%3C/path%3E%3C/svg%3E");--toc-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23aaa' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M3 16H1v-2h2zm16 0H5v-2h14zM3 11H1V9h2zm16 0H5V9h14zM3 6H1V4h2zm16 0H5V4h14z'/%3E%3C/svg%3E");}.dark{--paypal-logo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 48 48'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='currentcolor' fill='%2335b' d='M38.914 13.35c0 5.574-5.144 12.15-12.927 12.15H18.49l-.368 2.322L16.373 39H7.056l5.605-36h15.095c5.083 0 9.082 2.833 10.555 6.77a9.687 9.687 0 0 1 .603 3.58z'/%3E%3Cpath fill='%236cf' d='M44.284 23.7A12.894 12.894 0 0 1 31.53 34.5h-5.206L24.157 48H14.89l1.483-9 1.75-11.178.367-2.322h7.497c7.773 0 12.927-6.576 12.927-12.15 3.825 1.974 6.055 5.963 5.37 10.35z'/%3E%3Cpath fill='%2349f' d='M38.914 13.35C37.31 12.511 35.365 12 33.248 12h-12.64L18.49 25.5h7.497c7.773 0 12.927-6.576 12.927-12.15z'/%3E%3C/g%3E%3C/svg%3E")}
@font-face{font-family:"Georgia Pro Digits";unicode-range:U+0030-0039;font-display:swap;src:url(fonts/georgia-pro-regular.ttf) format('truetype');font-weight:400;font-style:normal;}@font-face{font-family:"Georgia Pro Digits";unicode-range:U+0030-0039;font-display:swap;src:url(fonts/georgia-pro-italic.ttf) format('truetype');font-weight:400;font-style:italic;}@font-face{font-family:"Georgia Pro Digits";unicode-range:U+0030-0039;font-display:swap;src:url(fonts/georgia-pro-bold.ttf) format('truetype');font-weight:700;font-style:normal;}@font-face{font-family:"Georgia Pro Digits";unicode-range:U+0030-0039;font-display:swap;src:url(fonts/georgia-pro-bold-italic.ttf) format('truetype');font-weight:700;font-style:italic;}@font-face{font-family:"Georgia Pro Digits";unicode-range:U+0030-0039;font-display:swap;src:url(fonts/georgia-pro-semibold.ttf) format('truetype');font-weight:600;font-style:normal;}@font-face{font-family:"Georgia Pro Digits";unicode-range:U+0030-0039;font-display:swap;src:url(fonts/georgia-pro-semibold-italic.ttf) format('truetype');font-weight:600;font-style:italic;}@font-face{font-family:"Georgia Pro Digits";unicode-range:U+0030-0039;font-display:swap;src:url(fonts/georgia-pro-black.ttf) format('truetype');font-weight:900;font-style:normal;}@font-face{font-family:"Georgia Pro Digits";unicode-range:U+0030-0039;font-display:swap;src:url(fonts/georgia-pro-black-italic.ttf) format('truetype');font-weight:900;font-style:italic;}
@font-face{font-family:"Georgia Pro";src:url(fonts/georgia-pro-regular.ttf) format("truetype");font-weight:400;font-style:normal;}@font-face{font-family:"Georgia Pro";src:url(fonts/georgia-pro-italic.ttf) format("truetype");font-weight:400;font-style:italic;}@font-face{font-family:"Georgia Pro";src:url(fonts/georgia-pro-bold.ttf) format("truetype");font-weight:700;font-style:normal;}@font-face{font-family:"Georgia Pro";src:url(fonts/georgia-pro-bold-italic.ttf) format("truetype");font-weight:700;font-style:italic;}@font-face{font-family:"Georgia Pro";src:url(fonts/georgia-pro-semibold.ttf) format("truetype");font-weight:600;font-style:normal;}@font-face{font-family:"Georgia Pro";src:url(fonts/georgia-pro-semibold-italic.ttf) format("truetype");font-weight:600;font-style:italic;}@font-face{font-family:"Georgia Pro";src:url(fonts/georgia-pro-black.ttf) format("truetype");font-weight:900;font-style:normal;}@font-face{font-family:"Georgia Pro";src:url(fonts/georgia-pro-black-italic.ttf) format("truetype");font-weight:900;font-style:italic;}
@font-face{font-family:"IBM Plex Serif";src:url(fonts/ibm-plex-serif-regular.woff2) format("woff2");font-weight:400;font-style:regular;}@font-face{font-family:"IBM Plex Serif";src:url(fonts/ibm-plex-serif-italic.woff2) format("woff2");font-weight:400;font-style:italic;}@font-face{font-family:"IBM Plex Serif";src:url(fonts/ibm-plex-serif-bold.woff2) format("woff2");font-weight:700;font-style:regular;}@font-face{font-family:"IBM Plex Serif";src:url(fonts/ibm-plex-serif-bold-italic.woff2) format("woff2");font-weight:700;font-style:italic;}@font-face{font-family:"IBM Plex Serif";src:url(fonts/ibm-plex-serif-semibold.woff2) format("woff2");font-weight:600;font-style:regular;}@font-face{font-family:"IBM Plex Serif";src:url(fonts/ibm-plex-serif-semibold-italic.woff2) format("woff2");font-weight:600;font-style:italic;}
@font-face{font-family:"Lora";src:url(fonts/lora-regular.woff2) format("woff2");font-weight:400 700;font-style:normal;}@font-face{font-family:"Rubik";src:url(fonts/rubik-regular.woff2) format("woff2");font-weight:400;font-style:regular;}@font-face{font-family:"Rubik";src:url(fonts/rubik-italic.woff2) format("woff2");font-weight:400;font-style:italic;}@font-face{font-family:"Rubik";src:url(fonts/rubik-semibold.woff2) format("woff2");font-weight:600 700;font-style:regular;}@font-face{font-family:"Rubik";src:url(fonts/rubik-semibold-italic.woff2) format("woff2");font-weight:600 700;font-style:italic;}@font-face{font-family:"Lora";src:url(fonts/lora-italic.woff2) format("woff2");font-weight:400 700;font-style:italic;}
@font-face{font-family:"Faculty Glyphic";src:url(fonts/faculty-glyphic.woff2) format("woff2");font-style:normal;font-weight:400 600 700;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:"Faculty Glyphic";src:url(fonts/faculty-glyphic-ext.woff2) format("woff2");font-style:normal;font-weight:400 600 700;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Roboto";src:url(fonts/roboto-regular.woff2) format("woff2");font-weight:400 700;font-style:normal;}@font-face{font-family:"Roboto";src:url(fonts/roboto-italic.woff2) format("woff2");font-weight:400 700;font-style:italic;}@font-face{font-family:"Inter";src:url(fonts/inter-regular.woff2) format("woff2");font-weight:400 600 700;font-style:normal;}@font-face{font-family:"Inter";src:url(fonts/inter-italic.woff2) format("woff2");font-weight:400 600 700;font-style:italic;}
@font-face{font-family:"Lato";src:url(fonts/lato-regular.woff2) format("woff2");font-weight:400;font-style:regular;}
@font-face{font-family:"Rubik";src:url(fonts/rubik-regular.woff2) format("woff2");font-weight:400;font-style:regular;}@font-face{font-family:"Rubik";src:url(fonts/rubik-italic.woff2) format("woff2");font-weight:400;font-style:italic;}@font-face{font-family:"Rubik";src:url(fonts/rubik-semibold.woff2) format("woff2");font-weight:600 700;font-style:regular;}@font-face{font-family:"Rubik";src:url(fonts/rubik-semibold-italic.woff2) format("woff2");font-weight:600 700;font-style:italic;}
@font-face{font-family:"Inter";src:url(fonts/inter-regular.woff2) format("woff2");font-weight:400 600 700;font-style:normal;}@font-face{font-family:"Inter";src:url(fonts/inter-italic.woff2) format("woff2");font-weight:400 600 700;font-style:italic;}
