[data-callout=note]{--rc-color-light:var(--callout-note-color-light,#086ddd);--rc-color-dark:var(--callout-note-color-dark,#027aff)}[data-callout=abstract]{--rc-color-light:var(--callout-abstract-color-light,#00bfbc);--rc-color-dark:var(--callout-abstract-color-dark,#53dfdd)}[data-callout=summary]{--rc-color-light:var(--callout-summary-color-light,#00bfbc);--rc-color-dark:var(--callout-summary-color-dark,#53dfdd)}[data-callout=tldr]{--rc-color-light:var(--callout-tldr-color-light,#00bfbc);--rc-color-dark:var(--callout-tldr-color-dark,#53dfdd)}[data-callout=info]{--rc-color-light:var(--callout-info-color-light,#086ddd);--rc-color-dark:var(--callout-info-color-dark,#027aff)}[data-callout=todo]{--rc-color-light:var(--callout-todo-color-light,#086ddd);--rc-color-dark:var(--callout-todo-color-dark,#027aff)}[data-callout=tip]{--rc-color-light:var(--callout-tip-color-light,#00bfbc);--rc-color-dark:var(--callout-tip-color-dark,#53dfdd)}[data-callout=hint]{--rc-color-light:var(--callout-hint-color-light,#00bfbc);--rc-color-dark:var(--callout-hint-color-dark,#53dfdd)}[data-callout=important]{--rc-color-light:var(--callout-important-color-light,#00bfbc);--rc-color-dark:var(--callout-important-color-dark,#53dfdd)}[data-callout=success]{--rc-color-light:var(--callout-success-color-light,#08b94e);--rc-color-dark:var(--callout-success-color-dark,#44cf6e)}[data-callout=check]{--rc-color-light:var(--callout-check-color-light,#08b94e);--rc-color-dark:var(--callout-check-color-dark,#44cf6e)}[data-callout=done]{--rc-color-light:var(--callout-done-color-light,#08b94e);--rc-color-dark:var(--callout-done-color-dark,#44cf6e)}[data-callout=question]{--rc-color-light:var(--callout-question-color-light,#ec7500);--rc-color-dark:var(--callout-question-color-dark,#e9973f)}[data-callout=help]{--rc-color-light:var(--callout-help-color-light,#ec7500);--rc-color-dark:var(--callout-help-color-dark,#e9973f)}[data-callout=faq]{--rc-color-light:var(--callout-faq-color-light,#ec7500);--rc-color-dark:var(--callout-faq-color-dark,#e9973f)}[data-callout=warning]{--rc-color-light:var(--callout-warning-color-light,#ec7500);--rc-color-dark:var(--callout-warning-color-dark,#e9973f)}[data-callout=attention]{--rc-color-light:var(--callout-attention-color-light,#ec7500);--rc-color-dark:var(--callout-attention-color-dark,#e9973f)}[data-callout=caution]{--rc-color-light:var(--callout-caution-color-light,#ec7500);--rc-color-dark:var(--callout-caution-color-dark,#e9973f)}[data-callout=failure]{--rc-color-light:var(--callout-failure-color-light,#e93147);--rc-color-dark:var(--callout-failure-color-dark,#fb464c)}[data-callout=missing]{--rc-color-light:var(--callout-missing-color-light,#e93147);--rc-color-dark:var(--callout-missing-color-dark,#fb464c)}[data-callout=fail]{--rc-color-light:var(--callout-fail-color-light,#e93147);--rc-color-dark:var(--callout-fail-color-dark,#fb464c)}[data-callout=danger]{--rc-color-light:var(--callout-danger-color-light,#e93147);--rc-color-dark:var(--callout-danger-color-dark,#fb464c)}[data-callout=error]{--rc-color-light:var(--callout-error-color-light,#e93147);--rc-color-dark:var(--callout-error-color-dark,#fb464c)}[data-callout=bug]{--rc-color-light:var(--callout-bug-color-light,#e93147);--rc-color-dark:var(--callout-bug-color-dark,#fb464c)}[data-callout=example]{--rc-color-light:var(--callout-example-color-light,#7852ee);--rc-color-dark:var(--callout-example-color-dark,#a882ff)}[data-callout=quote]{--rc-color-light:var(--callout-quote-color-light,#9e9e9e);--rc-color-dark:var(--callout-quote-color-dark,#9e9e9e)}[data-callout=cite]{--rc-color-light:var(--callout-cite-color-light,#9e9e9e);--rc-color-dark:var(--callout-cite-color-dark,#9e9e9e)}.callout{--rc-color-default:#888;mix-blend-mode:darken;background-color:rgb(from var(--rc-color-light,var(--rc-color-default)) r g b / .1);border-radius:4px;width:100%;margin:1em 0;padding:12px 12px 12px 24px;line-height:1.3;overflow:hidden}.dark .callout{mix-blend-mode:lighten;background-color:rgb(from var(--rc-color-dark,var(--rc-color-default)) r g b / .1)}.callout-title{color:var(--rc-color-light,var(--rc-color-default));font-size:inherit;align-items:flex-start;gap:4px;display:flex}.dark .callout-title{color:var(--rc-color-dark,var(--rc-color-default))}.callout-title::-webkit-details-marker{display:none}.callout-title-icon{flex:none;align-items:center;display:flex}.callout-title-text{color:inherit;font-weight:600}.callout-content{background-color:#0000;padding:0;overflow-x:auto}.callout[data-collapsible=true] .callout-title{cursor:pointer}.callout[data-collapsible=true] .callout-fold-icon{align-items:center;padding-inline-end:8px;display:flex}.callout[data-collapsible=true]>.callout-title .callout-fold-icon svg{transition:transform .1s ease-in-out;transform:rotate(-90deg)}.callout[data-collapsible=true][open]>.callout-title .callout-fold-icon svg{transform:none}.callout-title-icon:after,.callout-fold-icon:after{content:"​"}.callout-title-icon svg,.callout-fold-icon svg{width:18px;height:18px}:root,[data-theme=light]{--page-bg:#cbb5ee;--tile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' shape-rendering='crispEdges'%3E%3Crect width='8' height='8' fill='%23cbb5ee'/%3E%3Crect width='2' height='2' fill='%23bda2e6'/%3E%3Crect x='4' y='4' width='2' height='2' fill='%23bda2e6'/%3E%3C/svg%3E");--cell:#fffdf4;--cell-side:#efe6fb;--text:#000;--muted:#5a4a70;--head:#4b1a80;--link:#5a00b3;--visited:#8a2b8f;--hover:#d4007f;--line:#3a1466;--strip:#7d4fc0;--strip-text:#fff;--code-bg:#f1ecf8;--marq-bg:#ffc;--marq-text:#000;--warn-bg:#ff9;--win-body:#fff;--win-text:#000;--hr:#8a63c4}[data-theme=dark]{--page-bg:#0e0016;--tile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' shape-rendering='crispEdges'%3E%3Crect width='8' height='8' fill='%230e0016'/%3E%3Crect width='2' height='2' fill='%23200836'/%3E%3Crect x='4' y='4' width='2' height='2' fill='%23200836'/%3E%3C/svg%3E");--cell:#12051c;--cell-side:#1a0a2a;--text:#e6d9f7;--muted:#a995c6;--head:#d3b4ff;--link:#c8a2ff;--visited:#f09be6;--hover:#ffe066;--line:#8a5cc7;--strip:#4a2a7a;--strip-text:#f0e6ff;--code-bg:#24103a;--marq-bg:#000;--marq-text:#7dff7d;--warn-bg:#3a3000;--win-body:#000;--win-text:#d8d8d8;--hr:#5a3a8a}*{box-sizing:border-box}html{background:var(--page-bg)}body{background-color:var(--page-bg);background-image:var(--tile);color:var(--text);margin:0;padding:10px 6px 24px;font-family:Times New Roman,Times,serif;font-size:16px;line-height:1.35}a{color:var(--link);text-decoration:underline}a:visited{color:var(--visited)}a:hover{color:var(--hover)}a:focus-visible,button:focus-visible{outline:1px dotted var(--text);outline-offset:1px}hr{border:1px inset var(--hr);margin:12px 0}img{max-width:100%;height:auto}h1,h2,h3,h4{color:var(--head);line-height:1.15}ul,ol{padding-left:22px}li{margin:2px 0}#wrap{background:var(--line);border:1px solid var(--line);grid-template-columns:210px minmax(0,1fr) 240px;grid-template-areas:"head head head""nav main side""foot foot foot";gap:1px;width:94%;max-width:1240px;margin:0 auto;display:grid}#wrap>*{background:var(--cell);min-width:0}.site-header{grid-area:head}.nav-col{grid-area:nav}.content{grid-area:main}.side-col{grid-area:side}.site-footer{grid-area:foot}.nav-col,.side-col{background:var(--cell-side);padding:0 0 8px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:12px;line-height:1.45}.content{padding:14px 24px 22px}#skip-to-content{background:var(--cell);padding:2px 6px;font-family:Verdana,sans-serif;font-size:12px;position:absolute;top:0;left:-9999px}#skip-to-content:focus{z-index:10;top:4px;left:4px}.site-header{text-align:center;padding:10px 12px 8px}.site-title{color:var(--head);letter-spacing:1px;font-size:54px;font-weight:700;line-height:1.05;text-decoration:none;display:inline-block}.site-title:visited{color:var(--head)}.site-title:hover{color:var(--hover)}.site-header .welcome{color:var(--text);margin:6px 0 2px;font-size:18px;font-weight:700}.site-header .tagline{color:var(--muted);margin:2px 0 8px;font-style:italic}.marq{border:1px solid var(--line);background:var(--marq-bg);color:var(--marq-text);padding:2px 0;font-family:Courier New,Courier,monospace;font-size:13px}.strip{background:var(--strip);color:var(--strip-text);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-transform:lowercase;margin:0;padding:2px 6px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:12px;font-weight:700;line-height:1.5}.nav-col>.strip:first-child,.side-col .box>.strip:first-child{border-top:0}.side-col .strip,.nav-col .strip{margin-top:8px}.nav-col>.strip:first-child,.side-col .box>.strip:first-child{margin-top:0}.side-col .box+.box{margin-top:8px}.nav-col ul,.side-col ul{margin:4px 0 0;padding:0 6px 0 22px}.nav-col ul.links{font-size:13px;line-height:1.65;list-style:square}.nav-col li[aria-current] a,.nav-col li[aria-current]{font-weight:700}.nav-col p,.side-col p{margin:4px 6px 0}.count,.small,.muted{color:var(--muted)}.small{font-size:10px}.nav-col .btn-wrap{text-align:center;margin:8px 6px 0}.win-btn,button.win-btn{color:#000;cursor:default;background:silver;border:2px outset #e8e8e8;border-radius:0;padding:2px 8px;font-family:Tahoma,MS Sans Serif,Verdana,sans-serif;font-size:11px;line-height:1.3;text-decoration:none;display:inline-block}.win-btn:visited,.win-btn:hover{color:#000}.win-btn:active,.win-btn.is-off{border-style:inset}.win-btn.is-off{color:#6a6a6a}#theme-btn .night-label,[data-theme=dark] #theme-btn .day-label{display:none}[data-theme=dark] #theme-btn .night-label{display:inline}.win{color:#000;background:silver;border:2px outset #e8e8e8;margin:6px;padding:2px}.win-title{color:#fff;background:navy;justify-content:space-between;align-items:center;padding:1px 2px 1px 4px;font-family:Tahoma,MS Sans Serif,Verdana,sans-serif;font-size:11px;font-weight:700;display:flex}.win-ctl{gap:2px;display:inline-flex}.win-ctl span{text-align:center;color:#000;background:silver;border:1px outset #e8e8e8;width:14px;height:12px;font-size:9px;font-weight:700;line-height:9px;display:inline-block}.win-body{background:var(--win-body);color:var(--win-text);border:2px inset #e8e8e8;max-height:190px;margin-top:2px;padding:4px 6px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:11px;line-height:1.4;overflow-y:auto}.win-body ul{margin:0;padding:0;list-style:none}.win-body li{margin:0 0 5px}.win-body b{font-family:Courier New,Courier,monospace;font-size:11px}.counter{color:#fff;letter-spacing:2px;background:#000;border:2px inset #e8e8e8;padding:1px 4px;font-family:Courier New,Courier,monospace;font-size:15px;font-weight:700;display:inline-block}.center{text-align:center}.content h1{margin:0 0 6px;font-size:28px}.content h2{margin:14px 0 6px;font-size:22px}.content h3{margin:10px 0 4px;font-size:18px}.page-desc{color:var(--muted);margin:0 0 8px;font-style:italic}.crumbs{color:var(--muted);margin:0 0 8px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:11px}.construction{background:var(--warn-bg);color:var(--text);border:1px solid var(--line);margin:6px 0;padding:2px 8px;font-family:Courier New,Courier,monospace;font-size:13px;font-weight:700;display:inline-block}.hello h2{margin-top:0}.post-list{margin:6px 0 10px;padding-left:22px;list-style:square}.post-entry{margin:0 0 12px}.post-entry h2,.post-entry h3{margin:0;font-size:18px;display:inline}.post-entry .meta{color:var(--muted);font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:11px}.post-entry .meta .datetime{display:inline}.post-entry p{margin:2px 0 0}.new-badge{color:red;font-family:Verdana,Tahoma,sans-serif;font-size:11px;font-weight:700;animation:1.1s step-end infinite blink;display:none}[data-theme=dark] .new-badge{color:#f68}.new-badge.show{margin-left:4px;display:inline}@keyframes blink{50%{visibility:hidden}}@media (prefers-reduced-motion:reduce){.new-badge{animation:none}}.taglist{margin:6px 0;padding:0;list-style:none}.taglist li{margin:0 14px 0 0;display:inline}.pager{text-align:center;margin:14px 0 0;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:12px}.pager .win-btn{margin:0 6px}.post-nav{justify-content:space-between;gap:12px;margin-top:10px;font-size:15px;display:flex}.post-nav div:last-child{text-align:right}.byline{color:var(--muted);margin:0 0 8px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:11px}.byline .datetime{display:inline}.back{margin:0 0 8px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:11px}.toc{border:1px solid var(--line);background:var(--cell-side);margin:4px 0 10px;padding:4px 12px 4px 8px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:12px;display:inline-block}.toc ol{margin:2px 0;padding-left:20px}.share{font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:11px}.archive-month{margin-top:8px}.app-prose{overflow-wrap:anywhere;font-size:17px;line-height:1.4}.app-prose h2{border-bottom:1px solid var(--hr);padding-bottom:1px}.app-prose img{border:1px solid var(--line);margin:12px 0;display:block}.app-prose figure{margin:12px 0}.app-prose figcaption{color:var(--muted);font-size:14px;font-style:italic}.app-prose blockquote{border-left:3px solid var(--strip);margin:1em 24px;padding:0 0 0 12px}.app-prose code{background:var(--code-bg);border:1px solid var(--hr);padding:0 3px;font-family:Courier New,Courier,monospace;font-size:.92em}.app-prose pre{border:1px solid var(--line);background:var(--code-bg);padding:8px 10px;line-height:1.3;overflow-x:auto}.app-prose pre code{background:0 0;border:0;padding:0;font-size:14px}.astro-code{background-color:var(--shiki-light-bg);color:var(--shiki-light)}.astro-code span{color:var(--shiki-light)}[data-theme=dark] .astro-code{background-color:var(--shiki-dark-bg);color:var(--shiki-dark)}[data-theme=dark] .astro-code span{color:var(--shiki-dark)}.app-prose table{border-collapse:collapse;margin:10px 0}.app-prose th,.app-prose td{border:1px solid var(--line);padding:3px 8px}.table-wrapper{overflow-x:auto}.site-footer{text-align:center;padding:8px 12px 10px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:11px}.site-footer h2{color:var(--head);margin:0 0 4px;font-family:Times New Roman,Times,serif;font-size:18px;font-style:italic;font-weight:400}.site-footer p{margin:3px 0}.site-footer .soon{color:var(--muted)}.banner-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:6px 0;display:flex}.banner-row img{border:0;max-width:100%;height:auto;display:block}.banner-row.buttons img{image-rendering:pixelated;width:88px;height:31px}.big-404{color:var(--head);margin:0;font-size:64px;font-weight:700}@media (width<=1099px){#wrap{grid-template-columns:190px minmax(0,1fr);grid-template-areas:"head head""nav main""side side""foot foot"}.side-col{background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:0;display:grid}.side-col .box{background:var(--cell-side);padding-bottom:8px}.side-col .box+.box{margin-top:0}.side-col .box>.strip{border-top:0}.side-col .box:last-child:nth-child(odd){grid-column:1/-1}.content{padding:12px 18px 18px}}@media (width<=700px){body{padding:4px 0 16px;font-size:16px}#wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"head""nav""main""side""foot";width:100%}.hide-phone{display:none!important}.side-col{padding-bottom:8px;display:block}.side-col .box+.box{margin-top:8px}.site-title{font-size:36px}.site-header .welcome{font-size:16px}.nav-col ul.links{flex-wrap:wrap;gap:2px 14px;padding:6px;font-size:14px;list-style:none;display:flex}.nav-col ul.links li:before{content:"» "}.nav-col,.side-col{font-size:13px}.nav-col{padding-bottom:6px}.win-body{max-height:none;font-size:12px}.app-prose{font-size:17px}.content{padding:8px 10px 14px}.post-nav{flex-direction:column}.post-nav div:last-child{text-align:left}.hello .home-menu{columns:1}}.goodies .goodies-note{background:var(--warn-bg);border:1px dashed var(--line);padding:4px 8px;display:inline-block}.goodies .goodie-img{image-rendering:pixelated;border:0;margin:0;display:inline-block}.goodies .goodie-grid{flex-wrap:wrap;align-items:flex-end;gap:10px 12px;display:flex}.goodies .goodie{text-align:center;margin:0}.goodies .goodie figcaption{max-width:160px;font-size:11px}.goodies textarea.snippet{background:var(--code-bg);width:100%;max-width:600px;color:var(--text);border:2px inset #e8e8e8;border-radius:0;padding:4px 6px;font-family:Courier New,Courier,monospace;font-size:13px;display:block}.app-prose p,.app-prose li,.app-prose blockquote,.hello p,.page-desc,.gb-intro{max-width:75ch}.counter{text-align:center;min-width:7.5ch}.counter.is-down{letter-spacing:1px;color:#9a9a9a}.hello .home-menu{columns:2;column-gap:32px;max-width:75ch;margin:4px 0 8px;padding-left:22px;list-style:square}.hello .home-menu li{break-inside:avoid;margin:3px 0}.hello .home-menu .small{font-size:12px}.home-cols{grid-template-columns:minmax(0,1fr);gap:0 28px;display:grid}@media (width>=1100px){.home-cols{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}.hello h2:first-child{margin-top:0}.sparkle-note{border:1px dashed var(--line);background:var(--cell-side);max-width:75ch;margin:8px 0;padding:6px 10px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:13px}.gb-note{background:var(--warn-bg);border:1px dashed var(--line);max-width:75ch;margin:8px 0;padding:6px 10px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:13px}.gb-form{color:#000;background:silver;border:2px outset #e8e8e8;max-width:620px;margin:8px 0 14px;padding:2px}.gb-form .win-title{margin:0}.gb-form form{padding:8px 10px 10px;font-family:Tahoma,MS Sans Serif,Verdana,sans-serif;font-size:13px}.gb-form fieldset{border:0;min-width:0;margin:0;padding:0}.gb-form label{margin:8px 0 2px;font-weight:700;display:block}.gb-form .opt{color:#444;font-weight:400}.gb-form input[type=text],.gb-form input[type=url],.gb-form textarea{color:#000;background:#fff;border:2px inset #e8e8e8;border-radius:0;width:100%;padding:3px 5px;font-family:Courier New,Courier,monospace;font-size:14px;display:block}.gb-form textarea{resize:vertical;min-height:90px}.gb-form .gb-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.gb-form .gb-count{color:#444;font-size:12px}.gb-form .hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.gb-form button.win-btn{cursor:pointer;padding:3px 14px;font-size:13px}.gb-form button.win-btn:disabled{color:#6a6a6a;cursor:default}.gb-status{min-height:1.2em;margin:8px 0 0;font-weight:700}.gb-status.err{color:#b00000}.gb-status.ok{color:#006400}.gb-entries{max-width:820px;margin:8px 0;padding:0;list-style:none}.gb-entry{border:1px solid var(--line);background:var(--cell-side);margin:0 0 8px}.gb-entry .gb-head{background:var(--strip);color:var(--strip-text);justify-content:space-between;gap:10px;padding:2px 8px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:12px;display:flex}.gb-entry .gb-head a,.gb-entry .gb-head a:visited{color:var(--strip-text)}.gb-entry .gb-msg{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:6px 10px 8px}.gb-empty{color:var(--muted);font-style:italic}.link-group{margin:0 0 14px}.link-list{margin:4px 0;padding-left:22px;list-style:square}.link-list li{max-width:75ch;margin:4px 0}.link-list .blurb{color:var(--muted)}.search-form{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 10px;font-family:Tahoma,MS Sans Serif,Verdana,sans-serif;font-size:14px;display:flex}.search-form input[type=search]{color:#000;background:#fff;border:2px inset #e8e8e8;border-radius:0;flex:220px;max-width:420px;padding:3px 6px;font-family:Courier New,Courier,monospace;font-size:15px}.search-form button.win-btn{cursor:pointer;padding:3px 14px;font-size:14px}.search-status{color:var(--muted);margin:4px 0 8px;font-family:Verdana,Tahoma,Geneva,sans-serif;font-size:12px}.search-results{max-width:75ch;margin:6px 0;padding-left:22px;list-style:square}.search-results li{margin:0 0 10px}.search-results .res-title{font-size:18px;font-weight:700}.search-results .res-excerpt{margin:2px 0 0;font-size:15px}.search-results mark{color:#000;background:#ff6}.tag-cloud{flex-wrap:wrap;gap:6px 22px;margin:8px 0;padding:0;font-size:20px;list-style:none;display:flex}.tag-cloud .count{font-size:13px}.lost{text-align:center;padding:10px 0}.lost pre{text-align:left;background:var(--code-bg);border:1px dashed var(--line);margin:8px 0;padding:8px 14px;font-family:Courier New,Courier,monospace;font-size:15px;line-height:1.2;display:inline-block}.lost .big-404{font-size:72px}.lost ul{text-align:left;display:inline-block}.about-box{border:1px dashed var(--line);background:var(--cell-side);max-width:75ch;margin:10px 0;padding:4px 12px 8px}@media (width<=700px){.hello .home-menu{columns:1}}
