.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.tab-select-active:focus{box-shadow:none!important;outline:none!important}a.tab-select-active:focus:not(:hover){text-decoration-color:#0000}#tab-select{z-index:2147483647;pointer-events:none;border:.125rem solid var(--site-text);border-radius:var(--tab-select-radius,.25rem);contain:layout paint style;opacity:0;width:0;height:0;transition:transform var(--site-interaction-transition) var(--site-interaction-ease), width var(--site-interaction-transition) var(--site-interaction-ease), height var(--site-interaction-transition) var(--site-interaction-ease), border-radius var(--site-interaction-transition) var(--site-interaction-ease), opacity var(--site-interaction-transition) var(--site-interaction-ease);position:fixed;top:0;left:0;transform:translate(-625rem,-625rem)}#tab-select[data-visible=true]{opacity:1}@media (prefers-reduced-motion:reduce){#tab-select{transition:opacity var(--site-interaction-transition) var(--site-interaction-ease)}}@supports (color:color-mix(in srgb, white, black)){#tab-select{border-color:color-mix(in srgb, var(--site-text) 82%, transparent)}}:root{color-scheme:light;--site-font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--site-line-height:1.5;--site-radius:.25rem;--site-border-width:.0625rem;--site-outline-width:.125rem;--site-link-underline-thickness:.0625rem;--site-link-underline-offset:.2em;--site-spacing:1rem;--site-typography-spacing:1rem;--layout-gutter:1rem;--index-max-width:47.5rem;--index-date-width:11ch;--index-font-size:.875rem;--index-padding-y:2rem;--post-max-width:65ch;--post-padding-y:1.5rem;--post-article-size:.95rem;--post-title-size:2.25rem;--site-background:#fff;--site-text:#373c44;--site-muted:#646b79;--site-muted-faint:#8e96a3;--site-border:#e7eaf0;--site-link:#646b79;--site-link-underline:#646b7980;--site-link-hover:#4d535e;--site-focus:#8891a480;--site-selection:#8891a440;--site-code-bg:#f3f5f7;--site-code-text:#646b79;--site-list-stripe:#f5f5f6;--site-interaction-transition:.16s;--site-interaction-ease:cubic-bezier(.2, 0, 0, 1);--page-edge-hairline:color-mix(in srgb, var(--site-text) 14%, transparent);--page-edge-core-shadow:color-mix(in srgb, var(--site-text) 18%, transparent);--page-edge-ambient-shadow:color-mix(in srgb, var(--site-text) 10%, transparent);--page-edge-shadow:inset 0 .0625rem 0 var(--page-edge-hairline), 0 -.25rem .75rem -.5rem var(--page-edge-core-shadow), 0 -1.25rem 3rem -1rem var(--page-edge-ambient-shadow);--page-edge-shadow-hidden:inset 0 .0625rem 0 transparent, 0 0 0 0 transparent, 0 0 0 0 transparent;--page-transition-duration:.62s;--page-return-duration:.52s;--external-launch-duration:.46s;--page-transition-ease:cubic-bezier(.18, .86, .2, 1);--page-return-ease:cubic-bezier(.32, 0, .1, 1)}@media (width>=36rem){:root{--layout-gutter:1.25rem;--index-font-size:.8235rem;--index-padding-y:3rem;--post-padding-y:2rem;--post-title-size:2.8rem;font-size:106.25%}}@media (width>=48rem){:root{--layout-gutter:1.75rem;--index-font-size:.7778rem;--index-padding-y:3.5rem;--post-padding-y:2.5rem;--post-article-size:.9rem;--post-title-size:3.3rem;font-size:112.5%}}@media (width>=64rem){:root{--layout-gutter:2rem;--index-font-size:.7368rem;--post-article-size:.85rem;--post-title-size:3.8rem;font-size:118.75%}}@media (width>=80rem){:root{--index-font-size:.7rem;font-size:125%}}@media (width>=96rem){:root{--index-font-size:.6667rem;font-size:131.25%}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--site-background:#000;--site-text:#d5d5d5;--site-muted:#9b9b9b;--site-muted-faint:#707070;--site-border:#242424;--site-link:#ababab;--site-link-underline:#ababab7a;--site-link-hover:#ddd;--site-focus:#ababab5c;--site-selection:#ababab38;--site-code-bg:#101010;--site-code-text:#b3b3b3;--site-list-stripe:#0d0d0d;--page-edge-hairline:color-mix(in srgb, var(--site-border) 72%, transparent);--page-edge-core-shadow:#00000094;--page-edge-ambient-shadow:#00000052}}*,:before,:after{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;text-size-adjust:100%;overflow-wrap:break-word;tab-size:4;background:var(--site-background);color:var(--site-text);font-family:var(--site-font-family);font-weight:400;line-height:var(--site-line-height)}body{background:var(--site-background);margin:0}#network-status{z-index:1;width:100%;padding:0 var(--layout-gutter);color:var(--site-muted);pointer-events:none;text-align:center;margin:0;font-size:.75rem;line-height:1.4;position:fixed;bottom:.5rem;left:0}::selection{background:var(--site-selection)}[hidden]{display:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:.0625rem;height:.0625rem;padding:0;position:absolute;overflow:hidden}p,ul,ol,blockquote,pre,table{margin-top:0;margin-bottom:var(--site-typography-spacing)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--site-typography-spacing);font-weight:700}h1{font-size:2rem;line-height:1.125}h2{font-size:1.75rem;line-height:1.15}h3{font-size:1.5rem;line-height:1.175}h4{font-size:1.25rem;line-height:1.2}h5{font-size:1.125rem;line-height:1.225}h6{font-size:1rem;line-height:1.25}ul,ol{padding-left:2rem}li{margin-bottom:calc(var(--site-typography-spacing) * .25)}li>ul,li>ol{margin-top:calc(var(--site-typography-spacing) * .25);margin-bottom:0}ul li{list-style:square}blockquote{margin:var(--site-typography-spacing) 0;padding:var(--site-spacing);border-left:.25rem solid var(--site-border)}hr{margin:var(--site-typography-spacing) 0;border:0;border-top:var(--site-border-width) solid var(--site-border)}a:not([role=button]){color:var(--site-link);text-decoration:underline;text-decoration-color:var(--site-link-underline);text-decoration-thickness:var(--site-link-underline-thickness);text-underline-offset:var(--site-link-underline-offset);outline:none}a:is([target=_blank],[href^="http://"],[href^="https://"]):after{content:"↗︎";color:var(--site-muted-faint);transition:transform var(--site-interaction-transition) var(--site-interaction-ease);vertical-align:.12em;margin-left:.15em;font-family:system-ui,sans-serif;font-size:.8em;line-height:1;text-decoration:none;display:inline-block;transform:translate(0)}a:is([target=_blank],[href^="http://"],[href^="https://"]):is(:hover,:active,:focus):after{transform:translate(.1rem,-.1rem)}:where(a[href],button,[role=button],input,select,textarea,summary){transition:color var(--site-interaction-transition) var(--site-interaction-ease), text-decoration-color var(--site-interaction-transition) var(--site-interaction-ease), background-color var(--site-interaction-transition) var(--site-interaction-ease), box-shadow var(--site-interaction-transition) var(--site-interaction-ease), opacity var(--site-interaction-transition) var(--site-interaction-ease)}a:not([role=button])[aria-current]:not([aria-current=false]),a:not([role=button]):hover,a:not([role=button]):active,a:not([role=button]):focus{color:var(--site-link-hover);text-decoration-color:var(--site-link-hover)}a:not([role=button]):focus{box-shadow:0 0 0 var(--site-outline-width) var(--site-focus)}a:not([role=button]):focus:not(:focus-visible){box-shadow:none}img{vertical-align:middle;border:0;border-radius:.0875rem;max-width:100%;height:auto}pre,code{border-radius:var(--site-radius);background:var(--site-code-bg);color:var(--site-code-text)}code{font-size:.875em;line-height:initial;padding:.375rem;display:inline-block}pre{-webkit-text-size-adjust:100%;overflow:auto}pre code{padding:var(--site-spacing);font-size:inherit;line-height:var(--site-line-height);background:0 0;display:block}table{border-collapse:collapse;width:100%}th,td{padding:calc(var(--site-spacing) / 2) var(--site-spacing);border-bottom:var(--site-border-width) solid var(--site-border);background:var(--site-background);text-align:start}th{font-weight:600}.astro-code{border:var(--site-border-width) solid var(--site-border);border-radius:var(--site-radius);overflow-x:auto;background-color:var(--site-code-bg)!important}:where(.index .articles time,.post-page article header time){color:var(--site-muted-faint)}:where(.index .articles time,.post-page article header time):before{content:"["}:where(.index .articles time,.post-page article header time):after{content:"]"}@media (prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}.index{max-width:var(--index-max-width);padding:var(--index-padding-y) var(--layout-gutter);font-size:var(--index-font-size);margin:0 auto;line-height:1.15}.index h1,.index p{margin:0 0 .25rem}.index h1{font-size:1rem;font-style:italic}.index h2{margin:3rem 0 1rem;font-size:.95rem}.index .article-count{color:var(--site-muted-faint);margin-left:.35ch;font-size:.85em;font-weight:400}.index nav{margin-top:.5rem}.index ul{padding-left:0}.index li{margin-bottom:.35rem;list-style:none}.index .articles li{grid-template-columns:var(--index-date-width) minmax(0, 1fr);align-items:baseline;column-gap:2ch;display:grid}.index nav a,.index li a{text-decoration-color:#0000}.index nav>:is(a,span,button){width:max-content;display:block}.index [data-copy-email]{appearance:none;color:var(--site-link);font:inherit;cursor:copy;text-decoration:underline #0000;text-decoration-thickness:var(--site-link-underline-thickness);text-underline-offset:var(--site-link-underline-offset);background:0 0;border:0;padding:0}.index [data-copy-email]:after{content:"@";color:var(--site-muted-faint);transition:transform var(--site-interaction-transition) var(--site-interaction-ease);vertical-align:.12em;margin-left:.15em;font-family:system-ui,sans-serif;font-size:.8em;line-height:1;text-decoration:none;display:inline-block;transform:translate(0)}.index [data-copy-email]:is(:hover,:active,:focus):after{transform:translate(.1rem,-.1rem)}.index [data-copy-email] [data-copy-label]{transition:opacity var(--site-interaction-transition) var(--site-interaction-ease), transform var(--site-interaction-transition) var(--site-interaction-ease);display:inline-block}.index [data-copy-email][data-copy-switching=true] [data-copy-label]{opacity:0;transform:translateY(-.3em)}.index nav>div{grid-template-columns:max-content max-content;width:max-content;display:grid}.index .articles a{justify-self:start;width:fit-content;min-width:0;max-width:100%}.index nav a:is(:hover,:active,:focus),.index [data-copy-email]:is(:hover,:active,:focus),.index li a:is(:hover,:active,:focus){color:var(--site-link-hover);text-decoration-color:currentColor}.index .articles time{width:var(--index-date-width);white-space:nowrap;grid-template-columns:3ch 2ch 4ch;column-gap:1ch;display:grid;position:relative}.index .articles time:before,.index .articles time:after{position:absolute}.index .articles time:before{inset-inline-start:-1ch}.index .articles time:after{inset-inline-end:-1ch}.index .articles time span:nth-child(2){text-align:end}@media (width<36rem){.index li{margin-bottom:.65rem}}.post-page{max-width:var(--post-max-width);padding:var(--post-padding-y) var(--layout-gutter) calc(var(--post-padding-y) * 1.5);margin:0 auto}.post-page article{font-size:var(--post-article-size);line-height:1.7}.post-page article>*+*{margin-top:1rem}.post-page article h1,.post-page article h2,.post-page article h3,.post-page article h4,.post-page article h5,.post-page article h6{font-family:Georgia, var(--font-title-serif), serif;font-weight:800}.post-page article :where(h2,h3,h4,h5,h6){margin-bottom:0}.post-page article h1{overflow-wrap:anywhere;font-size:var(--post-title-size);margin:1.25rem 0 .75rem;line-height:1.08}.post-page article h2{font-size:1.15rem}.post-page article h3,.post-page article h4{font-size:1rem}.post-page article :where(h1,h2,h3,h4,h5,h6)[id]{scroll-margin-top:calc(var(--post-padding-y) + 1.25rem)}.post-page article p,.post-page article ul,.post-page article ol{margin-bottom:0}.post-page article ul,.post-page article ol{padding-left:1.5rem}.post-page article li+li{margin-top:.4rem}.post-page article .code-raw-copy-frame{position:relative}.post-page article>*+.code-raw-copy-frame{margin-top:1.5rem}.post-page article blockquote pre,.post-page article blockquote .code-raw-copy-frame{margin-top:.5rem;margin-bottom:.3rem}.post-page article .code-raw-copy-frame>pre{margin-block:0}.post-page article code{padding:.05rem .35rem;font-size:.8rem}.post-page article pre code{box-sizing:border-box;width:max-content;min-width:100%;padding:.25rem .35rem;font-size:.7rem}.post-page article blockquote code{background:var(--site-background)}.post-page article .code-raw-copy{appearance:none;color:var(--site-muted-faint);font:inherit;cursor:copy;transition:color var(--site-interaction-transition) var(--site-interaction-ease);background:0 0;border:0;align-items:baseline;padding:0;font-size:.7rem;line-height:1.45;display:inline-flex;position:absolute;inset-block-end:calc(100% + .2rem);inset-inline-end:0}.post-page article .code-raw-copy-label{white-space:nowrap;inline-size:3ch;transition:inline-size var(--site-interaction-transition) var(--site-interaction-ease), opacity var(--site-interaction-transition) var(--site-interaction-ease), transform var(--site-interaction-transition) var(--site-interaction-ease);display:inline-block;overflow:hidden}.post-page article .code-raw-copy[data-copy-state=copied] .code-raw-copy-label{inline-size:6ch}.post-page article .code-raw-copy[data-copy-switching=true]{text-decoration:none}.post-page article .code-raw-copy[data-copy-switching=true] .code-raw-copy-label{opacity:0;transform:translateY(-.3em)}.post-page article .code-raw-copy:is(:hover,:active,:focus-visible){color:var(--site-link-hover);text-decoration:underline;text-decoration-thickness:var(--site-link-underline-thickness);text-underline-offset:var(--site-link-underline-offset)}.post-page article code[data-copy-ready=true]{border-radius:var(--site-radius);cursor:copy;transition:background-color var(--site-interaction-transition) var(--site-interaction-ease), box-shadow var(--site-interaction-transition) var(--site-interaction-ease), color var(--site-interaction-transition) var(--site-interaction-ease);outline:none;position:relative}.post-page article code[data-copy-ready=true]:is(:hover,:active,:focus-visible){background:color-mix(in srgb, var(--site-link-hover) 16%, var(--site-code-bg));box-shadow:0 0 0 .125rem color-mix(in srgb, var(--site-link-hover) 18%, transparent)}.post-page article code[data-copy-ready=true][data-copy-state=copied]{background:color-mix(in srgb, var(--site-link-hover) 22%, var(--site-code-bg));box-shadow:0 0 0 .125rem color-mix(in srgb, var(--site-link-hover) 22%, transparent);color:#0000}.post-page article code[data-copy-ready=true]>.code-copy-check{width:.9em;height:.9em;color:var(--site-link-hover);pointer-events:none;opacity:0;transition:opacity var(--site-interaction-transition) var(--site-interaction-ease), transform var(--site-interaction-transition) var(--site-interaction-ease);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.72)}.post-page article code[data-copy-ready=true]>.code-copy-check path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px}.post-page article code[data-copy-ready=true][data-copy-state=copied]>.code-copy-check{opacity:1;transform:translate(-50%,-50%)scale(1)}.post-page article blockquote{border-radius:0 var(--site-radius) var(--site-radius) 0;background:var(--site-code-bg);padding:.5rem 1.5rem .5rem 1rem}.post-page article table{border-collapse:separate;border-spacing:0 .125rem;font-size:.9em;line-height:1.45}.post-page article th,.post-page article td{overflow-wrap:anywhere;vertical-align:middle;background:0 0;border-bottom:0;padding:.3rem .55rem}.post-page article thead th{border-bottom:var(--site-border-width) solid var(--site-border);padding-top:0;padding-bottom:.45rem;font-weight:700}.post-page article thead th+th{border-left:var(--site-border-width) solid var(--site-border)}.post-page article th:first-child,.post-page article td:first-child{padding-left:.65rem}.post-page article th:last-child,.post-page article td:last-child{padding-right:.65rem}.post-page article tbody tr:nth-child(2n)>*{background:var(--site-list-stripe)}.post-page article tbody tr>:first-child{border-radius:var(--site-radius) 0 0 var(--site-radius)}.post-page article tbody tr>:last-child{border-radius:0 var(--site-radius) var(--site-radius) 0}.post-page footer{margin-top:1.5rem}.post-page footer p{color:var(--site-muted);margin-top:1rem;font-size:.85em}.post-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.post-nav:before{content:"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";color:var(--site-border);white-space:nowrap;grid-column:1/-1;line-height:1;overflow:hidden}.post-nav a{overflow-wrap:anywhere;width:fit-content;min-width:0;max-width:100%;margin-top:.125rem;font-weight:700;text-decoration-color:#0000;display:block}.post-nav-item{min-width:0}.post-nav-item-next{text-align:end;grid-column:2;justify-self:end}.post-nav-label{color:var(--site-muted-faint);font-size:.8em;display:block}.post-page article header>a,.post-page footer p a{text-decoration-color:#0000}.post-nav a:is(:hover,:active,:focus),.post-page article header>a:is(:hover,:active,:focus),.post-page footer p a:is(:hover,:active,:focus){text-decoration-color:currentColor}@media (width<36rem){.post-page article h2{line-height:1.25}.post-page article blockquote{padding:.75rem 1rem}}@media (prefers-reduced-motion:no-preference){html:not([data-astro-transition]){scroll-behavior:smooth}}body>main{transition:filter var(--external-launch-duration) var(--page-transition-ease), transform var(--external-launch-duration) var(--page-transition-ease)}::view-transition-old(root),::view-transition-new(root){background:var(--site-background);transition-property:box-shadow,transform;transition-duration:var(--page-transition-duration);transition-timing-function:var(--page-transition-ease);animation:none;overflow:clip}html[data-astro-transition=forward]::view-transition-old(root){z-index:1;transform:scale(.9)}html[data-astro-transition=forward]::view-transition-new(root){z-index:2;box-shadow:var(--page-edge-shadow-hidden);transform:translateY(0)}html[data-astro-transition=back]::view-transition-old(root){z-index:2;box-shadow:var(--page-edge-shadow);transition-duration:var(--page-return-duration);transition-timing-function:var(--page-return-ease);transform:translateY(100%)}html[data-astro-transition=back]::view-transition-new(root){z-index:1;transition-duration:var(--page-return-duration);transition-timing-function:var(--page-return-ease);transform:scale(1)}@starting-style{html[data-astro-transition=forward]::view-transition-old(root){transform:scale(1)}html[data-astro-transition=forward]::view-transition-new(root){box-shadow:var(--page-edge-shadow);transform:translateY(100%)}html[data-astro-transition=back]::view-transition-old(root){box-shadow:var(--page-edge-shadow-hidden);transform:translateY(0)}html[data-astro-transition=back]::view-transition-new(root){transform:scale(.9)}}.external-link-launch{z-index:2147483646;pointer-events:none;background:var(--site-background);border:.0625rem solid var(--site-border);contain:strict;position:fixed;overflow:hidden;box-shadow:0 1rem 3rem #0000002e}body.external-link-launching{overflow:hidden}body.external-link-launching>main{filter:brightness(.9);transform-origin:var(--external-origin-x,50%) var(--external-origin-y,50%);transform:scale(.94)}@media (prefers-reduced-motion:reduce){:where(a[href],button,[role=button],input,select,textarea,summary),::view-transition-old(root),::view-transition-new(root),body.external-link-launching>main{transition:none}a:is([target=_blank],[href^="http://"],[href^="https://"]):after{transition:none;transform:none}.index [data-copy-email]:after,.index [data-copy-email] [data-copy-label]{transition:none}.index [data-copy-email]:is(:hover,:active,:focus):after{transform:none}.post-page article .code-raw-copy-label,.post-page article code[data-copy-ready=true]>.code-copy-check{transition:none}}@media print{.back-to-top,#tab-select,.post-page article .code-raw-copy,.post-page article header>a,.post-nav{display:none}}
