@layer reset{*,:before,:after{box-sizing:border-box}:not(dialog){margin:0}@media (prefers-reduced-motion:no-preference){html{interpolate-size:allow-keywords}}body{-webkit-font-smoothing:antialiased;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}}@layer base{:root{--colour-fg:var(--lightningcss-light,#333)var(--lightningcss-dark,#ced4da);--colour-bg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#353b41);--colour-accent-1:var(--lightningcss-light,#e44849)var(--lightningcss-dark,#e44949);--colour-accent-2:var(--lightningcss-light,#d14244)var(--lightningcss-dark,#862d2e);--colour-accent-3:var(--lightningcss-light,#ffe6e6)var(--lightningcss-dark,#f2d9d9);--colour-hilite:var(--lightningcss-light,#ffe066)var(--lightningcss-dark,#ccad33);--font-base:clamp(1rem, .75rem + .8333vw, 1.25rem);--font-small:clamp(.8125rem, .625rem + .625vw, 1rem);--font-primary:clamp(1.75rem, 1.25rem + 1.6667vw, 2.25rem);--font-secondary:clamp(1.25rem, .75rem + 1.6667vw, 1.75rem);--font-tertiary:clamp(1.125rem, .875rem + .8333vw, 1.375rem);--weight-norm:350;--weight-semi:500;--weight-bold:600;--weight-norm-dk:300}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (prefers-color-scheme:dark){:root{--weight-norm:var(--weight-norm-dk)}}@font-face{font-family:Merriweather;font-weight:600;font-display:fallback;src:local(Merriweather SemiBold),local(Merriweather-SemiBold),url(/a/merriweather-semibold-CUW1v6sR.woff2)format("woff2")}@font-face{font-family:Raleway;font-weight:100 900;font-display:fallback;src:url(/a/raleway-variable-0Zdmkbn-.woff2)format("woff2-variations")}@font-face{font-family:Raleway;font-weight:100 900;font-style:italic;font-display:fallback;src:url(/a/ralewayitalic-variable-Cxt1TWXo.woff2)format("woff2-variations")}@font-face{font-family:Source Code Pro;font-weight:200 900;font-display:fallback;src:url(/a/sourcecodepro-variable-BNgr1uQ8.woff2)format("woff2-variations")}@font-face{font-family:Source Code Pro;font-weight:200 900;font-style:italic;font-display:fallback;src:url(/a/sourcecodepro-italic-variable-DHENjI2I.woff2)format("woff2-variations")}:root{--tf-heading:Merriweather, Tahoma, sans-serif;--tf-body:Raleway, Tahoma, sans-serif;--tf-mono:Source Code Pro, monospace}html{font-size:100%}body{font:var(--weight-norm) var(--font-base) / 1.5 var(--tf-body)}@media (resolution<=1x){body{-webkit-font-smoothing:subpixel-antialiased}}h1,h2,h3,.as-h1,.as-h2,.as-h3{font:var(--weight-bold) 1rem/1.3 var(--tf-heading);margin:1.5rlh 0 .5rlh}:is(h1,h2,h3,.as-h1,.as-h2,.as-h3)+p{margin-block-start:0}h1,.as-h1{font-size:var(--font-primary);margin-block-end:1rlh}h2,.as-h2{font-size:var(--font-secondary)}h3,.as-h3{font-size:var(--font-tertiary)}p{margin:1rlh 0}p:first-child{margin-block-start:0}p:last-child{margin-block-end:0}strong{font-weight:var(--weight-semi)}em{font-style:italic}small{font-size:var(--font-small)}pre,code,tt{font-family:var(--tf-mono);font-weight:calc(var(--font-semi) - 50)}.lede{font-size:var(--font-tertiary)}html,body{background:var(--colour-bg);color:var(--colour-fg)}.a11y:not(:focus):not(:active){opacity:0;position:absolute;transform:scale(0)}a{color:var(--colour-fg);-webkit-text-decoration:var(--colour-accent-1) underline 1px;text-decoration:var(--colour-accent-1) underline 1px;text-underline-offset:.2rem;font-weight:calc(var(--weight-norm) + 50);transition:color .15s,box-shadow .15s}a:hover{color:var(--brand,var(--colour-accent-1))}a{box-shadow:var(--colour-hilite) 0 0 0 var(--outline,0);border-radius:2px;outline:none}a:focus-visible{--outline:2px}abbr[title]{cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted rgb(from var(--colour-fg) r g b / .6);text-decoration:underline dotted rgb(from var(--colour-fg) r g b / .6);border-bottom:none}body{flex-direction:column;min-block-size:100dvh;display:flex}main{flex:1;padding-block-end:2rem}hr{margin:2rlh var(--mi);color:var(--lightningcss-light,#0003)var(--lightningcss-dark,#fff4);border:none;place-content:center;height:1.2rem;display:grid;position:relative}hr:before{content:"";background:currentColor;width:100%;height:1px;position:absolute;inset-block-start:50%;transform:translateY(-50%);-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% calc(50% - 1.5rem),#0000 calc(50% - .5rem) calc(50% + .5rem),#000 calc(50% + 2.5rem) 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% calc(50% - 1.5rem),#0000 calc(50% - .5rem) calc(50% + .5rem),#000 calc(50% + 2.5rem) 90%,#0000)}hr:after{content:"※";font-size:120%;transform:rotate(45deg)}}@layer utils{.flex{align-items:center;gap:var(--gap,1rem);display:flex}.flex.-distribute{justify-content:space-between}.flex.-wrap{flex-wrap:wrap}ol.plain,ul.plain{margin:0;padding:0;list-style:none}.container{--inline-padding:clamp(1.25rem, -1.3971rem + 8.8235vw, 5rem);inline-size:min(100% - calc(2 * var(--inline-padding)), var(--max-width,62.5rem));margin-inline:auto}.container.-narrow{--max-width:50rem}.icon{inline-size:var(--size,1em);vertical-align:middle;fill:currentColor;display:inline-block}.icon.-large{inline-size:1.4em}}@layer components{@scope(.article-list){li+li{margin-top:3rlh}}@scope(.article){header{margin-block-end:2rlh}header h1{margin-block-end:.5rlh}header dl{--gap:0;font-size:var(--font-small)}header dl dt{margin-inline-end:.5rem}header dl dd:not(:last-child){margin-inline-end:1.5rem}header dl .icon{--size:1.2rem}}@scope(.footer){:scope{padding-block:.75rem}p{font-size:var(--font-small);margin-block:0}}@scope(.header){:scope{border-block-start:.25rem solid #000;border-block-end:1px solid #000;padding-block:.75rem}.logomark{aspect-ratio:134/21;fill:currentColor;inline-size:100%;max-inline-size:8.375rem}.logomark svg{inline-size:100%}nav{--gap:2rem}nav a{text-decoration:none}}@scope(.home){:scope{flex-direction:column;justify-content:center;display:flex}h1{font-family:var(--tf-body);font-weight:var(--weight-norm);align-items:start;margin-block-end:4rem}}@scope(.prose){ul,ol{--inset:2rem;counter-reset:--listTop;margin:1rlh 0;padding:0;padding-inline-start:var(--inset);list-style:none}:is(ul,ol) li{position:relative}:is(ul,ol) li:before{color:var(--colour-hint-1);content:"";display:inline-block;position:absolute;inset-inline-start:calc(.5rem - var(--inset))}:is(ul,ol) li+li{margin-top:.5rlh}:is(ul,ol)>li{counter-increment:--listTop}:is(ul,ol) ul,:is(ul,ol) ol{--inset:1.6rem;counter-reset:--listNest;margin:0}:is(:is(ul,ol) ul,:is(ul,ol) ol)>li{counter-increment:--listNest}ul>li:before{background:currentColor;border-radius:100%;width:.5rem;height:.5rem;inset-block-start:.75rem}li ul>li:before{block-size:var(--weight-ul);border-radius:0;inset-block-start:.9rem}ol>li:before{font-size:var(--font-small);font-weight:var(--weight-ol);font-variant-numeric:oldstyle-nums;content:counter(--listTop, decimal) ".";inset-block-start:.25rem}ol ol>li:before{content:counter(--listNest, lower-alpha) "."}ul ol>li:before{content:counter(--listNest, decimal) "."}dl{margin:1rlh 0}dl dt{font-weight:var(--weight-semi)}dl dd{margin:.2rlh 0 0}dl dd+dt{margin-block-start:1.5rlh}hr{margin-block:2.5rlh}blockquote{margin:2rlh 0;padding-inline:4rem;position:relative}blockquote:before,blockquote:after{color:var(--colour-hint-2);opacity:.8;font-size:200%;position:absolute}blockquote:before{content:"❝";inset-block-start:-.3em;inset-inline-start:1rem}blockquote p:first-child{margin-block-start:0}blockquote p:last-child{margin-block-end:0}blockquote{font-weight:var(--weight-bold);font-size:var(--font-tertiary);font-family:var(--tf-heading)}.pulled{background:var(--lightningcss-light,#fff3)var(--lightningcss-dark,#0001);border-radius:1rem;margin-block:3rlh;padding:2rlh 4rem}table{border-collapse:collapse}th,td{padding:.1rem .5rem}thead th{border-block-end:1px solid var(--colour-grey-4);padding-block:.15rem}tbody th{border-inline-end:1px solid var(--colour-grey-4)}p code{text-shadow:1px 1px 1px var(--lightningcss-light,#0000)var(--lightningcss-dark,#0003);background:var(--lightningcss-light,#00000008)var(--lightningcss-dark,#0000001a);padding-inline:.3rem}:scope>p:last-child:after{break-before:avoid;vertical-align:middle;color:var(--colour-hint-1);content:"❖";margin-inline-start:.6em;line-height:1;display:inline-block}}@scope(.syntax){:scope{counter-reset:syntax}header{margin:0}header *{font-family:var(--tf-body);font-size:var(--font-small);font-weight:var(--weight-semi)}header *:after{content:":"}pre{--padding:1rem;color:#76d9e6;white-space:normal;tab-size:2;background:#2a2a2a;border-radius:.25rem;font-size:.8em;line-height:1.4;position:relative}pre:before{content:"";z-index:1;background:#2f2f2f;block-size:100%;inline-size:2.6rem;position:absolute;inset-block-start:0;inset-inline-start:0}code{max-inline-size:100%;padding:var(--padding);scrollbar-width:none;-ms-overflow-style:none;font-weight:400;display:block;overflow-x:scroll}code::-webkit-scrollbar{display:none}.line{counter-increment:syntax;white-space:pre;min-inline-size:100%;transition:background .15s;display:block;position:relative}.line:before{transform:translateX(calc(var(--padding) * -1));color:#fff6;text-align:right;content:counter(syntax);z-index:2;inline-size:1.6rem;margin-inline-end:.5rem;padding-inline:.5rem;font-size:.8em;transition:color .15s;display:inline-block;position:sticky;inset-inline-start:0}.line:hover{background:#ffffff14}.line:hover:before{color:#fff9}.token.namespace{opacity:.7}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#6f705e}.token.operator,.token.boolean,.token.number{color:#a77afe}.token.attr-name,.token.string,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#e6d06c}.token.selector,.token.inserted{color:#a6e22d}.token.atrule,.token.attr-value,.token.keyword,.token.important,.token.deleted{color:#ef3b7d}.token.regex,.token.statement{color:#76d9e6}.token.placeholder,.token.variable{color:#fff}.token.important,.token.statement,.token.bold{font-weight:600}.token.punctuation{color:#bebec5}.token.entity{cursor:help}.token.italic{font-style:italic}code.language-markup{color:#f9f9f9}code.language-markup .token.tag{color:#ef3b7d}code.language-markup .token.attr-name{color:#a6e22d}code.language-markup .token.attr-value{color:#e6d06c}code.language-markup .token.style,code.language-markup .token.script,code.language-markup .token.script .token.keyword{color:#76d9e6}.line-highlight.line-highlight{background:#ffffff14;padding:0}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{color:#000;background-color:#fff6;height:1em;padding:.2em .5em;line-height:1em;box-shadow:0 1px 1px #ffffffb3}}}
