@layer reset{*,:after,:before{box-sizing:border-box}:not(dialog){margin:0}@media (prefers-reduced-motion:no-preference){html{interpolate-size:allow-keywords}}body{line-height:1.5;-webkit-font-smoothing:antialiased}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}}@layer base{@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")}}@layer base{: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 (max-resolution:1dppx){-webkit-font-smoothing:subpixel-antialiased}}.as-h1,.as-h2,.as-h3,h1,h2,h3{margin:1.5rlh 0 .5rlh;font:var(--weight-bold) 1rem/1.3 var(--tf-heading);+p{margin-block-start:0}}.as-h1,h1{margin-block-end:1rlh;font-size:var(--font-primary)}.as-h2,h2{font-size:var(--font-secondary)}.as-h3,h3{font-size:var(--font-tertiary)}p{margin:1rlh 0;&:first-child{margin-block-start:0}&:last-child{margin-block-end:0}}strong{font-weight:var(--weight-semi)}em{font-style:italic}small{font-size:var(--font-small)}code,pre,tt{font-family:var(--tf-mono);font-weight:calc(var(--font-semi) - 50)}.lede{font-size:var(--font-tertiary)}body{opacity:1}.a11y:not(:focus):not(:active){position:absolute;transform:scale(0);opacity:0}}@layer base{a{color:var(--colour-fg);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;&:hover{color:var(--brand,var(--colour-accent-1))}outline:none;box-shadow:var(--colour-hilite) 0 0 0 var(--outline,0);border-radius:2px;&:focus-visible{--outline:2px}}abbr[title]{cursor:help;border-bottom:none;text-decoration:underline;text-decoration:underline dotted rgb(from var(--colour-fg) r g b/.6)}body{display:flex;flex-direction:column;min-block-size:100vh;min-block-size:100dvh}main{flex:1;padding-block-end:2rem}hr{position:relative;display:grid;place-content:center;margin:2rlh var(--mi);border:none;height:1.2rem;color:light-dark(#0003,#fff4);&:before{position:absolute;inset-block-start:50%;height:1px;width:100%;transform:translateY(-50%);background:currentcolor;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 calc(50% - 1.5rem),transparent calc(50% - .5rem),transparent calc(50% + .5rem),#000 calc(50% + 2.5rem),#000 90%,transparent);content:""}&:after{font-size:120%;transform:rotate(45deg);content:"※"}}}@layer utils{.flex{display:flex;align-items:center;gap:var(--gap,1rem);&.-distribute{justify-content:space-between}&.-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);margin-inline:auto;inline-size:min(100% - calc(var(--inline-padding)*2),var(--max-width,62.5rem));&.-narrow{--max-width:50rem}}.icon{display:inline-block;inline-size:var(--size,1em);vertical-align:middle;fill:currentcolor;&.-large{inline-size:1.4em}}}@layer components{@scope (.article-list){li+li{margin-top:3rlh}}}@layer components{@scope (.article){header{margin-block-end:2rlh;h1{margin-block-end:.5rlh}dl{--gap:0;font-size:var(--font-small);dt{margin-inline-end:.5rem}dd:not(:last-child){margin-inline-end:1.5rem}.icon{--size:1.2rem}}}}}@layer components{@scope (.footer){:scope{padding-block:.75rem}p{font-size:var(--font-small);margin-block:0}}}@layer components{@scope (.header){:scope{padding-block:.75rem;border-block-start:.25rem solid #000;border-block-end:1px solid #000}.logomark{inline-size:100%;max-inline-size:8.375rem;aspect-ratio:134/21;fill:currentColor;svg{inline-size:100%}}nav{--gap:2rem;a{text-decoration:none}}}}@layer components{@scope (.home){:scope{display:flex;flex-direction:column;justify-content:center}h1{align-items:start;margin-block-end:4rem;font-family:var(--tf-body);font-weight:var(--weight-norm)}}}@layer components{@scope (.prose){:scope{--pulled-inline-padding:clamp(1rem,-1.1176rem + 7.0588vw,4rem)}ol,ul{--inset:2rem;margin:1rlh 0;padding:0;padding-inline-start:var(--inset);list-style:none;counter-reset:--listTop;li{position:relative;&:before{position:absolute;inset-inline-start:calc(.5rem - var(--inset));display:inline-block;color:var(--colour-hint-1);content:""}+li{margin-top:.5rlh}}&>li{counter-increment:--listTop}ol,ul{--inset:1.6rem;margin:0;counter-reset:--listNest;&>li{counter-increment:--listNest}}}ul>li:before{inset-block-start:.75rem;width:.5rem;height:.5rem;border-radius:100%;background:currentcolor}li ul>li:before{inset-block-start:.9rem;block-size:var(--weight-ul);border-radius:0}ol>li:before{inset-block-start:.25rem;font-size:var(--font-small);font-weight:var(--weight-ol);font-variant-numeric:oldstyle-nums;content:counter(--listTop,decimal) "."}ol ol>li:before{content:counter(--listNest,lower-alpha) "."}ul ol>li:before{content:counter(--listNest,decimal) "."}dl{margin:1rlh 0;dt{font-weight:var(--weight-semi)}dd{margin:.2rlh 0 0}dd+dt{margin-block-start:1.5rlh}}hr{margin-block:2.5rlh}blockquote{position:relative;margin:2rlh 0;padding-inline:var(--pulled-inline-padding);&:after,&:before{position:absolute;font-size:200%;color:var(--colour-hint-2);opacity:.8}&:before{inset-block-start:-.3em;inset-inline-start:clamp(-1rem,-2.4118rem + 4.7059vw,1rem);content:"\275D"}p:first-child{margin-block-start:0}p:last-child{margin-block-end:0}}blockquote{font-weight:var(--weight-bold);font-size:var(--font-tertiary);font-family:var(--tf-heading)}.pulled{padding:clamp(1rlh,.3493rem + 2.7941vw,2rlh) var(--pulled-inline-padding);margin-block:3rlh;margin-inline:clamp(-.625rem,-2.5rem + 6.25vw,0rem);background:light-dark(#fff3,#0001);border-radius:1rem}table{border-collapse:collapse}td,th{padding:.1rem .5rem}thead th{padding-block:.15rem;border-block-end:1px solid var(--colour-grey-4)}tbody th{border-inline-end:1px solid var(--colour-grey-4)}p code{padding-inline:.3rem;background:light-dark(rgb(0 0 0/3%),rgba(0,0,0,.1));text-shadow:1px 1px 1px light-dark(transparent,rgba(0,0,0,.2))}&>p:last-child:after{display:inline-block;break-before:avoid;vertical-align:middle;margin-inline-start:.6em;color:var(--colour-hint-1);line-height:1;content:"\2756"}}}@layer components{@scope (.syntax){:scope{counter-reset:syntax}header{margin:0;*{font-family:var(--tf-body);font-size:var(--font-small);font-weight:var(--weight-semi);&:after{content:":"}}}pre{--padding:1rem;position:relative;border-radius:.25rem;color:#76d9e6;background:#2a2a2a;white-space:normal;tab-size:2;font-size:.8em;line-height:1.4;&:before{position:absolute;inset-block-start:0;inset-inline-start:0;block-size:100%;inline-size:2.6rem;background:#2f2f2f;content:"";z-index:1}}code{display:block;max-inline-size:100%;overflow-x:scroll;padding:var(--padding);scrollbar-width:none;-ms-overflow-style:none;font-weight:400;&::-webkit-scrollbar{display:none}}.line{position:relative;display:block;counter-increment:syntax;min-inline-size:100%;white-space:pre;transition:background .15s ease;&:before{position:sticky;display:inline-block;inset-inline-start:0;transform:translateX(calc(var(--padding)*-1));inline-size:1.6rem;padding-inline:.5rem;margin-inline-end:.5rem;color:hsla(0,0%,100%,.4);font-size:.8em;text-align:right;content:counter(syntax);z-index:2;transition:color .15s ease}&:hover{background:hsla(0,0%,100%,.08)}&:hover:before{color:hsla(0,0%,100%,.6)}}.token.namespace{opacity:.7}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6f705e}.token.boolean,.token.number,.token.operator{color:#a77afe}.language-css .token.string,.style .token.string,.token.attr-name,.token.entity,.token.string,.token.url{color:#e6d06c}.token.inserted,.token.selector{color:#a6e22d}.token.atrule,.token.attr-value,.token.deleted,.token.important,.token.keyword{color:#ef3b7d}.token.regex,.token.statement{color:#76d9e6}.token.placeholder,.token.variable{color:#fff}.token.bold,.token.important,.token.statement{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.script,code.language-markup .token.script .token.keyword,code.language-markup .token.style{color:#76d9e6}.line-highlight.line-highlight{padding:0;background:hsla(0,0%,100%,.08)}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{padding:.2em .5em;background-color:hsla(0,0%,100%,.4);color:#000;height:1em;line-height:1em;box-shadow:0 1px 1px hsla(0,0%,100%,.7)}}}