﻿@view-transition{navigation:auto}@media (prefers-reduced-motion){html{scroll-behavior:unset}*{view-transition-name:none !important}}::view-transition-group(.static){animation-duration:0ms !important}@keyframes fade-in{from{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes slide-from-right{from{transform:translateX(30px)}}@keyframes slide-to-left{to{transform:translateX(-30px)}}::view-transition-group(.link-title){animation-timing-function:ease-in-out}.link-title{view-transition-class:link-title;width:fit-content}::view-transition-old(root),::view-transition-old(.link-title):only-child{animation:90ms cubic-bezier(.4, 0, 1, 1) both fade-out,300ms cubic-bezier(.4, 0, .2, 1) both slide-to-left}::view-transition-new(root),::view-transition-new(.link-title):only-child{animation:210ms cubic-bezier(0, 0, .2, 1) 90ms both fade-in,300ms cubic-bezier(.4, 0, .2, 1) both slide-from-right}:root{--colour-accent: var(--colour-maroon);--colour-rosewater: #dc8a78;--colour-flamingo: #dd7878;--colour-pink: #ea76cb;--colour-mauve: #8839ef;--colour-red: #d20f39;--colour-maroon: #e64553;--colour-peach: #fe640b;--colour-yellow: #df8e1d;--colour-green: #40a02b;--colour-teal: #179299;--colour-sky: #04a5e5;--colour-sapphire: #209fb5;--colour-blue: #1e66f5;--colour-lavender: #7287fd;--colour-text: #4c4f69;--colour-subtext1: #5c5f77;--colour-subtext0: #6c6f85;--colour-overlay2: #7c7f93;--colour-overlay1: #8c8fa1;--colour-overlay0: #9ca0b0;--colour-surface2: #acb0be;--colour-surface1: #bcc0cc;--colour-surface0: #ccd0da;--colour-base: #eff1f5;--colour-mantle: #e6e9ef;--colour-crust: #dce0e8;--colour-core: color-mix(in srgb, var(--colour-crust) 95%, black);--colour-lo-bg: var(--colour-crust)}@media (prefers-color-scheme: dark){:root{--colour-rosewater: #f2d5cf;--colour-flamingo: #eebebe;--colour-pink: #f4b8e4;--colour-mauve: #ca9ee6;--colour-red: #e78284;--colour-maroon: #ea999c;--colour-peach: #ef9f76;--colour-yellow: #e5c890;--colour-green: #a6d189;--colour-teal: #81c8be;--colour-sky: #99d1db;--colour-sapphire: #85c1dc;--colour-blue: #8caaee;--colour-lavender: #babbf1;--colour-text: #c6d0f5;--colour-subtext1: #b5bfe2;--colour-subtext0: #a5adce;--colour-overlay2: #949cbb;--colour-overlay1: #838ba7;--colour-overlay0: #737994;--colour-surface2: #626880;--colour-surface1: #51576d;--colour-surface0: #414559;--colour-base: #303446;--colour-mantle: #292c3c;--colour-crust: #232634;--colour-core: color-mix(in srgb, var(--colour-crust) 75%, black);--colour-lo-bg: var(--colour-surface0)}}:root .term-fg31{color:var(--colour-red)}:root .term-fg32{color:var(--colour-green)}:root .term-fg33{color:var(--colour-yellow)}:root .term-fg34{color:var(--colour-blue)}:root .term-fg35{color:var(--colour-pink)}:root .term-fg36{color:var(--colour-teal)}:root .term-fg37{color:var(--colour-subtext1)}:root .term-fg38{color:var(--colour-subtext0)}[min-sm]{display:none}@media (min-width: 544px){[min-sm]{display:initial}}[min-md]{display:none}@media (min-width: 544px){[min-md]{display:initial}}[min-lg]{display:none}@media (min-width: 544px){[min-lg]{display:initial}}[min-xl]{display:none}@media (min-width: 544px){[min-xl]{display:initial}}[max-sm]{display:initial}@media (min-width: 544px){[max-sm]{display:none}}[max-md]{display:initial}@media (min-width: 544px){[max-md]{display:none}}[max-lg]{display:initial}@media (min-width: 544px){[max-lg]{display:none}}[max-xl]{display:initial}@media (min-width: 544px){[max-xl]{display:none}}strong{font-weight:600}ol{list-style-type:lower-roman}ul{list-style-type:square}ol,ul{box-sizing:border-box}body{font-family:"Work Sans",serif;font-optical-sizing:auto;color:var(--colour-text)}h1,h2,h3,h4,h5,h6{font-family:"Outfit",sans-serif}h1,h2,h3,h4,h5,h6{font-weight:500}h1{margin:3rem 0}h2,h3{margin:1.75rem 0}h1:has(+.subtitle){margin-bottom:.2rem}.subtitle{margin-bottom:3rem;color:var(--colour-subtext0)}h1{font-size:1.5rem}h2{font-size:1.3rem}h3{font-size:1.15rem}body{font-size:calc(1rem - 1px)}@media (min-width: 544px){h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.17rem}body{font-size:1rem}}ol.breadcrumbs{display:flex;flex-wrap:wrap;list-style:none;padding:0}ol.breadcrumbs li:not(:last-child)::after{content:"/";margin:0 .5ch;color:var(--colour-subtext0)}.accent{color:var(--colour-accent)}a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}a,a:visited{color:var(--colour-text);text-decoration-color:var(--colour-accent)}a:hover,a:active{color:var(--colour-accent)}a[href^=git]::after,a[href^=http][rel=external]:not(:has(img))::after{content:" ↗";margin-left:-.5ch;font-size:.75em;font-family:"Fira Code",monospace}a[href^="#fr-"]{font-size:.75em}a.anchor-link{content:"";display:inline-block;position:relative;top:50%;left:unset;width:16px;height:16px;background-color:currentColor;mask:url("./octicons/hash-16.svg");mask-position:center,center;mask-repeat:no-repeat;position:absolute;margin-left:-48px;padding:16px;transform:translateY(-50%);color:var(--colour-surface2)}@media (min-width: 768px){.narrower a.anchor-link{margin-left:-48px}}@media (min-width: 1004px){a.anchor-link{margin-left:-48px}}:has(>a.anchor-link:first-child){position:relative;padding-left:32px;box-sizing:border-box}@media (min-width: 768px){.narrower :has(>a.anchor-link:first-child){padding:0}}@media (min-width: 1004px){:has(>a.anchor-link:first-child){padding:0}}:has(>a.anchor-link:first-child):hover>:first-child{color:var(--colour-accent)}abbr{position:relative;cursor:help;text-decoration:none;text-decoration:underline wavy;text-decoration-color:var(--colour-accent);isolation:isolate}abbr::after{content:attr(title);position:absolute;width:max-content;left:50%;top:-2rem;transform:translateX(-50%);padding:0 .5rem;background-color:var(--colour-base);border:1px solid var(--colour-overlay0);pointer-events:none;visibility:hidden}abbr:hover::after{visibility:visible}blockquote{position:relative;border-inline-start:.75ch solid;padding-inline-start:1.5ch;box-sizing:border-box;margin-inline:0}blockquote>p:first-of-type{margin-top:.5em}blockquote::before{font-weight:600;padding-inline-start:calc(16px + .5em);text-transform:capitalize}blockquote::after{content:"";display:inline-block;position:relative;top:2px;width:16px;height:16px;background-color:currentColor;mask:url("./octicons/book-16.svg");mask-position:center,center;mask-repeat:no-repeat;position:absolute}blockquote.markdown-alert-note{border-inline-start-color:var(--colour-text)}blockquote.markdown-alert-note::before{content:"note";color:var(--colour-text)}blockquote.markdown-alert-note::after{mask:url("./octicons/info-16.svg");color:var(--colour-text)}blockquote.markdown-alert-tip{border-inline-start-color:var(--colour-teal)}blockquote.markdown-alert-tip::before{content:"tip";color:var(--colour-teal)}blockquote.markdown-alert-tip::after{mask:url("./octicons/light-bulb-16.svg");color:var(--colour-teal)}blockquote.markdown-alert-important{border-inline-start-color:var(--colour-mauve)}blockquote.markdown-alert-important::before{content:"important";color:var(--colour-mauve)}blockquote.markdown-alert-important::after{mask:url("./octicons/report-16.svg");color:var(--colour-mauve)}blockquote.markdown-alert-warning{border-inline-start-color:var(--colour-peach)}blockquote.markdown-alert-warning::before{content:"warning";color:var(--colour-peach)}blockquote.markdown-alert-warning::after{mask:url("./octicons/alert-16.svg");color:var(--colour-peach)}blockquote.markdown-alert-caution{border-inline-start-color:var(--colour-red)}blockquote.markdown-alert-caution::before{content:"caution";color:var(--colour-red)}blockquote.markdown-alert-caution::after{mask:url("./octicons/stop-16.svg");color:var(--colour-red)}blockquote:not([class*=markdown-alert-]){border-inline-start-color:var(--colour-text)}blockquote:not([class*=markdown-alert-])::before{content:"quote";color:var(--colour-text)}blockquote:not([class*=markdown-alert-])::after{mask:url("./octicons/book-16.svg");color:var(--colour-text)}blockquote:not([class*=markdown-alert-])>*{font-style:italic}blockquote+.quote-attribution{margin-top:-.75rem;text-align:end;color:var(--colour-subtext0)}.paragraph-separator+p{text-indent:2em}.paragraph-separator:is(hr){display:none}:root{--column-width: min(90vw, 768px)}html,html>body{min-height:100vh;height:unset;overflow-x:hidden}html{--bg: var(--colour-base);background-color:var(--bg)}body{display:flex;margin:0;flex-direction:column;align-items:center}main{display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}main:not(:has(>article>.footnotes:last-child)){padding-block-end:3rem}main>h1+*,main>h1+*>:first-child,main h1+.subtitle+*,main h1+.subtitle+*>:first-child{margin-top:0 !important}footer{display:flex;flex-wrap:wrap;justify-content:center;padding:2em;gap:1em;font-size:.875rem;color:var(--colour-subtext1)}main>:not(article),main>article>:not(.lo):not(.footnotes):not(.hi){width:var(--column-width);margin-left:auto;margin-right:auto}.lo,.footnotes,.hi{width:100vw;background-color:var(--bg)}main .lo:not(details),main .footnotes:not(details),main .hi:not(details){padding:1.75rem 0;margin:1.75rem 0}main .lo:not(details)>:first-child,main .footnotes:not(details)>:first-child,main .hi:not(details)>:first-child{margin-top:0}main .lo:not(details)>:last-child:not(.footnotes-list),main .footnotes:not(details)>:last-child:not(.footnotes-list),main .hi:not(details)>:last-child:not(.footnotes-list),main .lo:not(details)>:last-child:not(.footnotes-list) li:last-of-type p,main .footnotes:not(details)>:last-child:not(.footnotes-list) li:last-of-type p,main .hi:not(details)>:last-child:not(.footnotes-list) li:last-of-type p{margin-bottom:0}.lo>*,.footnotes>*,.hi>*{width:var(--column-width);margin-left:auto;margin-right:auto}.hi{--bg: var(--colour-mantle)}.lo,.footnotes{--bg: var(--colour-lo-bg)}header{display:flex;width:100%;padding:0 calc(min(5vw,2rem) - .75rem);box-sizing:border-box;z-index:1}header a{color:inherit;text-decoration:none;padding:1rem .75rem}.accent-bar{width:100%;height:2px;background:linear-gradient(to right, var(--colour-accent), var(--colour-maroon), var(--colour-mauve), var(--colour-lavender))}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{font-weight:600}pre,code,abbr[font=mono]::after,.mono{white-space:pre;font-family:"Fira Code",monospace;font-variant-ligatures:none;font-size:.92em}code:not(pre>code),abbr[font=mono]::after{color:var(--colour-accent)}pre{position:relative;margin:0;padding:1rem;overflow:auto;--bg: var(--colour-mantle);--filename-bg: var(--colour-crust)}.hi pre{--bg: var(--colour-crust);--filename-bg: var(--colour-core)}.lo pre{--bg: var(--colour-base);--filename-bg: var(--colour-crust)}pre:not([data-name]){background-color:var(--bg)}pre[data-name]{padding-top:calc(1rem + 1lh);background:linear-gradient(to bottom, rgba(0,0,0,0) 0, rgba(0,0,0,0) 1lh, var(--bg) 1lh, var(--bg) 100%)}pre[data-name]::before{content:attr(data-name);position:absolute;top:0;inset-inline-start:0;background-color:var(--filename-bg);padding:0 1rem;color:var(--colour-accent)}pre.language-sh+pre.language-txt{padding-top:0}pre.language-sh:has(+pre)>code>span::before{content:"> ";color:var(--colour-overlay0)}pre *{font-style:initial !important}pre[data-linenos]{padding:1rem 0}pre table{width:100%;border-collapse:collapse}pre table td{padding:0}pre table td:nth-of-type(1){text-align:center;vertical-align:top;user-select:none}pre mark{display:block;background-color:rgba(254,252,232,.9)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{border-radius:0px;background-color:var(--colour-overlay0)}::-webkit-scrollbar-thumb:hover{background-color:var(--colour-overlay2)}.cited-tools{display:flex;flex-wrap:wrap;gap:1rem}.cited-tools .tool{border:1px solid var(--colour-surface1);border-collapse:collapse}.cited-tools .tool tr:nth-child(1){background-color:var(--colour-surface1)}.cited-tools .tool td:nth-child(1),.cited-tools .tool th:nth-child(1){padding-left:1em}.cited-tools .tool td:nth-child(2),.cited-tools .tool th:nth-child(2){padding:0 1em;text-align:end}.cited-tools .tool td:only-child,.cited-tools .tool th:only-child{padding:0 1em}.cited-tools .tool th{text-align:center}.cited-tools .tool a{text-decoration:none}.tags-list{display:flex;flex-wrap:wrap;gap:1rem;padding:0;list-style:none}a.tag,a.tag:visited{display:inline-block;padding:.5rem 1rem;border:1px solid var(--colour-subtext1);color:var(--colour-accent);text-decoration:none}a.tag.tag-low,a.tag:visited.tag-low{border-color:var(--colour-overlay1);color:var(--colour-text)}a.tag.tag-high::before,a.tag:visited.tag-high::before{content:"";display:inline-block;position:relative;top:2px;left:-2px;width:16px;height:16px;background-color:currentColor;mask:url("./octicons/ruby-16.svg");mask-position:center,center;mask-repeat:no-repeat}a.tag:hover,a.tag:visited:hover{color:var(--colour-accent);border-color:var(--colour-accent);background-color:var(--colour-lo-bg)}a.tag:hover .tag-name,a.tag:visited:hover .tag-name{color:var(--colour-accent)}a.tag h2.tag-name,a.tag:visited h2.tag-name{display:inline;padding:0;font-size:1.1em;color:var(--colour-text)}.alternating-list-marker{display:none}.alternating-list-marker+ul{padding:0;list-style:none}.alternating-list-marker+ul li:nth-child(odd){margin-inline:-1rem;padding:.1px 1rem;background-color:var(--colour-mantle)}.alternating-list-marker+ul li p:not(:first-child){padding-inline:1rem;color:var(--colour-subtext0)}@media (min-width: 768px){.alternating-list-marker+ul li p:not(:first-child){padding-inline:2rem}}.user-agent *{all:revert !important;font-family:system-ui !important}.grid-1-1{display:grid;grid-gap:1em;grid-template-rows:1fr;grid-template-columns:1fr;width:calc(var(--column-width) + 2rem) !important}@media (min-width: 768px){.grid-1-1{grid-template-rows:repeat(1, minmax(0, 1fr));grid-template-columns:repeat(1, minmax(0, 1fr))}}.grid-1-2{display:grid;grid-gap:1em;grid-template-rows:1fr;grid-template-columns:1fr;width:calc(var(--column-width) + 2rem) !important}@media (min-width: 768px){.grid-1-2{grid-template-rows:repeat(1, minmax(0, 1fr));grid-template-columns:repeat(2, minmax(0, 1fr))}}.grid-1-3{display:grid;grid-gap:1em;grid-template-rows:1fr;grid-template-columns:1fr;width:calc(var(--column-width) + 2rem) !important}@media (min-width: 768px){.grid-1-3{grid-template-rows:repeat(1, minmax(0, 1fr));grid-template-columns:repeat(3, minmax(0, 1fr))}}.grid-2-1{display:grid;grid-gap:1em;grid-template-rows:1fr;grid-template-columns:1fr;width:calc(var(--column-width) + 2rem) !important}@media (min-width: 768px){.grid-2-1{grid-template-rows:repeat(2, minmax(0, 1fr));grid-template-columns:repeat(1, minmax(0, 1fr))}}.grid-2-2{display:grid;grid-gap:1em;grid-template-rows:1fr;grid-template-columns:1fr;width:calc(var(--column-width) + 2rem) !important}@media (min-width: 768px){.grid-2-2{grid-template-rows:repeat(2, minmax(0, 1fr));grid-template-columns:repeat(2, minmax(0, 1fr))}}.grid-2-3{display:grid;grid-gap:1em;grid-template-rows:1fr;grid-template-columns:1fr;width:calc(var(--column-width) + 2rem) !important}@media (min-width: 768px){.grid-2-3{grid-template-rows:repeat(2, minmax(0, 1fr));grid-template-columns:repeat(3, minmax(0, 1fr))}}.grid-3-1{display:grid;grid-gap:1em;grid-template-rows:1fr;grid-template-columns:1fr;width:calc(var(--column-width) + 2rem) !important}@media (min-width: 768px){.grid-3-1{grid-template-rows:repeat(3, minmax(0, 1fr));grid-template-columns:repeat(1, minmax(0, 1fr))}}.grid-3-2{display:grid;grid-gap:1em;grid-template-rows:1fr;grid-template-columns:1fr;width:calc(var(--column-width) + 2rem) !important}@media (min-width: 768px){.grid-3-2{grid-template-rows:repeat(3, minmax(0, 1fr));grid-template-columns:repeat(2, minmax(0, 1fr))}}.grid-3-3{display:grid;grid-gap:1em;grid-template-rows:1fr;grid-template-columns:1fr;width:calc(var(--column-width) + 2rem) !important}@media (min-width: 768px){.grid-3-3{grid-template-rows:repeat(3, minmax(0, 1fr));grid-template-columns:repeat(3, minmax(0, 1fr))}}main section.footnotes{margin-bottom:0}sup.footnote-reference{font-size:.8em;vertical-align:super;font-family:"Fira Code",monospace;font-weight:600;line-height:0;color:var(--colour-accent)}sup.footnote-reference>a{text-decoration:none;color:var(--colour-accent)}sup.footnote-reference>a:not(:hover)::before,sup.footnote-reference>a:not(:hover)::after{color:var(--colour-text)}sup.footnote-reference>a::before{content:"["}sup.footnote-reference>a::after{content:"]"}.footnotes-list{list-style:none;counter-reset:i;padding-left:3ch}.footnotes-list>li{counter-increment:i}.footnotes-list>li::before{content:"[" counter(i) "]";font-size:.8em;font-family:"Fira Code",monospace;position:absolute;transform:translate(calc(-100% - 1ch), 1px)}article.hero{display:flex;flex-direction:column;gap:.5rem}article.hero .ls-hero-counter::before{counter-increment:ls-hero-counter;content:counter(ls-hero-counter, decimal-leading-zero) "."}:root{counter-reset:ls-hero-counter}article.hero h2{font-size:1.25rem;margin:0}article.hero a[href$="#continue-reading"]{text-align:end}article.hero .summary>:first-child{margin-top:0}article.hero .summary>:last-child{margin-bottom:0}article.hero :first-child:has(+h2){margin-block:-.25rem;color:var(--colour-overlay2)}article.hero .most-recent::before{content:"";display:inline-block;position:relative;top:2px;width:16px;height:16px;background-color:currentColor;mask:url("./octicons/flame-16.svg");mask-position:center,center;mask-repeat:no-repeat;margin-right:.5rem}details:not(.dropdown){padding:0;margin:1rem 0 0}details:not(.dropdown)+details:not(.dropdown){margin-top:0}details:not(.dropdown) summary{padding:1rem 0;font-family:Outfit,sans-serif;user-select:none;cursor:pointer}details:not(.dropdown) summary:hover{color:var(--colour-accent)}details:not(.dropdown) summary+*{margin-top:0}details:not(.dropdown) summary~*:last-child{margin-bottom:1.5rem}details.dropdown{position:relative;white-space:nowrap}details.dropdown[open]{background-color:var(--colour-mantle)}details.dropdown summary{padding:1rem .75rem;cursor:pointer}details.dropdown summary:hover{color:var(--colour-accent)}details.dropdown summary::marker{content:""}details.dropdown nav{display:flex;flex-direction:column;position:absolute;background-color:var(--colour-mantle)}ul.infobar{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin-block:0;color:var(--colour-overlay2)}ul.infobar li:not(:last-child){display:flex;align-items:center}ul.infobar li:not(:last-child)::after{content:"";display:inline-block;position:relative;top:1px;width:16px;height:16px;background-color:currentColor;mask:url("./tiny/diamond.svg");mask-position:center,center;mask-repeat:no-repeat;margin:0 .2ch;color:var(--colour-surface1)}ul.infobar .muted{color:var(--colour-overlay0)}ul.infobar .current{color:var(--colour-text)}ul.infobar.oneline{position:relative;overflow:hidden;flex-wrap:nowrap;white-space:nowrap}ul.infobar.oneline::after{content:"";position:absolute;top:0;right:0;bottom:0;width:3ch;pointer-events:none;background:linear-gradient(to right, rgba(0,0,0,0), var(--bg))}time.month-switch{display:flex;justify-content:space-between;margin-top:1.5rem;margin-bottom:.25rem}time.month-switch:first-of-type{margin-top:0rem}time.month-switch h3{margin:0}a.entry{display:flex;text-wrap:nowrap;gap:.5rem;align-items:baseline;color:inherit;text-decoration:none;padding:.2rem 0}a.entry h3{margin:0}a.entry:hover{color:var(--colour-accent)}a.entry::before{content:"";display:inline-block;position:relative;top:3px;left:0;width:16px;height:16px;background-color:currentColor;mask:url("./octicons/book-16.svg");mask-position:center,center;mask-repeat:no-repeat}h1#flight-manual~a.entry:not(.flight-manual):not(:hover),h1#flight-manual~a.entry:not(.flight-manual):not(:hover) :not(.dots){color:var(--colour-overlay1)}a.entry.flight-manual::before{content:"";display:inline-block;position:relative;top:2px;left:-2px;width:16px;height:16px;background-color:currentColor;mask:url("./octicons/repo-16.svg");mask-position:center,center;mask-repeat:no-repeat}h1#ramblings~a.entry:not(.ramblings):not(:hover),h1#ramblings~a.entry:not(.ramblings):not(:hover) :not(.dots){color:var(--colour-overlay1)}a.entry.ramblings::before{content:"";display:inline-block;position:relative;top:2px;left:-2px;width:16px;height:16px;background-color:currentColor;mask:url("./octicons/note-16.svg");mask-position:center,center;mask-repeat:no-repeat}a.entry :first-child{overflow:hidden;text-overflow:ellipsis}a.entry .dots{flex-shrink:99999;color:var(--colour-surface2);letter-spacing:.1em;overflow:hidden;text-overflow:clip}a.entry .dots::before{content:"................................................................................"}a.entry::before,a.entry time{flex-shrink:0}.note{background:var(--colour-crust);color:var(--colour-subtext0);padding:0 1rem;font-size:.95em}.hi .note{background:var(--colour-core)}.lo .note{background:var(--colour-crust)}