﻿*,*::before,*::after{box-sizing:inherit;margin:0;scroll-margin-block-start:.75em}body{box-sizing:border-box;display:grid;grid-template:"header" "theme" "contents" "outline" "main" "footer"/100%;margin:auto;margin-block:2rem;max-width:80ch;max-width:min(132ch,90%)}@media screen and (min-width: 75rem) and ((min-aspect-ratio: 2/3) or (orientation: landscape)){body{gap:1.5rem;grid-template:". header ." "theme main outline" min-content "contents main outline" 1fr "footer footer footer"/minmax(0, 1fr) minmax(0, 3fr) minmax(0, 1fr)}}body>*{margin-block:.5rem}body>nav{grid-area:contents}body>nav>ol{max-height:calc(100cqmin - 2rem);overflow-y:auto}@media screen and (min-width: 75rem) and ((min-aspect-ratio: 2/3) or (orientation: landscape)){body>nav>ol{height:fit-content;inset-block:1rem;position:sticky}}body>header{grid-area:header;margin-inline:auto;min-width:min(25rem,50vw)}body>header>a#logo>svg{overflow:visible}body>details{grid-area:theme;user-select:none;white-space:nowrap}body>details:hover{cursor:pointer}body>details fieldset{border:none;flex-direction:column;padding:0}body>details legend{margin-inline-start:-1em;padding:0}body>main{grid-area:main;margin-inline:1rem;overflow-wrap:break-word}body>main,body>main article,body>main aside,body>main ol.index{display:flex;flex-direction:column;gap:.75rem}body>#outline{grid-area:outline;display:block;margin:0 12.5%;max-width:75%}body>a#outline{background:-moz-element(#content) no-repeat scroll center 0/contain}@media (prefers-reduced-motion: no-preference){body>a#outline{transition:opacity .2s ease}}@media screen and (min-width: 75rem) and ((min-aspect-ratio: 2/3) or (orientation: landscape)){body>a#outline{opacity:.65}body>a#outline:hover{opacity:1}}body>footer{grid-area:footer}body>footer>nav{text-align:center}body>footer>nav>ul{text-transform:lowercase}fieldset{display:inline-flex;column-gap:1ch}label{display:inline-flex;column-gap:.5ch}nav>ul,ol.index,ul.tags{list-style:none;padding:0}nav>ul li{display:inline}nav>ul li:not(:last-child)::after{content:" • ";content:" • "/" "}ol.index time{font-style:oblique}ul.tags{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}section#webring{gap:1em 3em;display:grid;grid-template-columns:1fr;margin-block:3em}@media screen and (min-width: 75rem) and ((min-aspect-ratio: 2/3) or (orientation: landscape)){section#webring{grid-template-columns:repeat(3, 1fr);margin-inline:7.5%}}section#webring>*{margin:0}section#webring>:not(article){grid-column:1/-1}section#webring article{display:flex;flex-direction:column}section#webring article p{flex-grow:1;margin-block-end:1em}section#webring article h3{font-size:smaller;margin:0}@media print{body{background:none !important;color:unset !important;grid-template:"main"/100%;margin:0}body>*:not(main){display:none !important}main{margin:0 !important}}:root{height:100%;line-height:2rem;tab-size:6;width:100%;-webkit-text-size-adjust:100%;color-scheme:light dark;--foreground: light-dark(#000718, #fff8e7);--background: light-dark(hsl(0, 0%, 90%), hsl(0, 0%, 10%));--accent: #00468c;--gradient-foreground: white;--gradient-background: var(--accent);accent-color:var(--accent);font-family:"Noto Sans",-apple-system,BlinkMacSystemFont,avenir next,avenir,segoe ui,helvetica neue,helvetica,Cantarell,Ubuntu,roboto,noto,arial,sans-serif}@media screen and (max-width: 50rem){:root{tab-size:3}}@media (prefers-reduced-motion: no-preference){:root:not(.monochrome){scroll-behavior:smooth}}@supports (color: color(from #fff xyz x y z)){:root{--gradient-background: linear-gradient(120deg, black, hsl(from var(--accent) h s calc(l / 2)), var(--accent), hsl(from var(--accent) h s calc(l / 3)))}}:root.serif,:root q,:root blockquote{font-family:Charter,"Bitstream Charter","Sitka Text",Cambria,serif}:root.mono,:root code,:root pre,:root samp,:root kbd,:root.mono q,:root.mono blockquote{font-family:"Fira Code",ui-monospace,"Cascadia Code","Source Code Pro",Menlo,Consolas,"DejaVu Sans Mono",monospace,"Noto Serif","Noto Sans"}:root.lowercase{text-transform:lowercase}:root.monochrome{--foreground: light-dark(black, white);--background: light-dark(white, black);--gradient-foreground: inherit;--gradient-background: none;--accent: var(--foreground)}:root.monochrome *,:root.monochrome *::before,:root.monochrome *::after{animation:none !important;opacity:1 !important}:root.monochrome a{text-decoration:underline}:root.proton{color-scheme:light dark;--foreground: light-dark(rgb(55, 37, 128), rgb(255, 255, 255));--background: light-dark(rgb(247, 245, 255), rgb(22, 20, 28));--accent: #6d4aff;font-weight:500}:root.proton main a{color:light-dark(var(--accent), #99f)}:root.night{color-scheme:only dark;--foreground: #faf4ed;--background: #191724}:root.night body>div.star{animation:twinkle 5s ease infinite;background-color:#fff;border-radius:5px;height:2px;position:absolute;width:2px;z-index:-1}@keyframes twinkle{0%{transform:scale(1, 1);background-color:rgba(255,255,255,0)}60%{transform:scale(.8, .8);background-color:#fff}80%, 100%{transform:scale(1, 1);background-color:rgba(255,255,255,0)}}:root.terminal{color-scheme:only dark;--foreground: white;--background: #080808;--accent: #33ff33}:root.terminal h1,:root.terminal h2,:root.terminal h3,:root.terminal h4,:root.terminal h5,:root.terminal h6{color:var(--accent);text-shadow:4px 4px 1em currentcolor;opacity:.9}:root.terminal canvas#matrix{height:100%;left:0;position:fixed;top:0;width:100%;z-index:-1}body{background-color:var(--background);color:var(--foreground)}a{text-decoration:none;color:inherit}a#logo{stroke-width:4}a#logo:hover>svg{filter:drop-shadow(0 0 8px color(from var(--accent) xyz x y z/.5));animation:rainbow 4s infinite}@keyframes rainbow{0%{stroke:red}10%{stroke:#f90}20%{stroke:#cf0}30%{stroke:#3f0}40%{stroke:#0f6}50%{stroke:aqua}60%{stroke:#06f}70%{stroke:#30f}80%{stroke:#c0f}90%{stroke:#f09}100%{stroke:red}}:is(a:not(#outline),button):is(:focus,:hover){animation:background-gradient 2s ease-in-out infinite;color:var(--gradient-foreground);background:var(--gradient-background) repeat;background-size:200% 200%}:is(a:not(#outline),button):is(:focus,:hover):not(#logo,ul.tags li a){padding:.5em}@keyframes background-gradient{from{background-position:0% 50%}to{background-position:-200% 50%}}address,small,:not(time) time{display:inline;font-size:smaller}address :not(footer),small :not(footer),:not(time) time :not(footer){padding-inline-end:.5em}button{all:unset;cursor:pointer;display:inline;margin:0;text-decoration:underline}ul.tags li{border:thin solid rgba(128,128,128,.5);border-radius:3px;display:inline-block}ul.tags a{color:inherit;display:block;padding-inline:.5em}main a{color:revert;color:light-dark(#02d, #aaf)}#continue-reading{display:none}abbr[title]{cursor:help;text-decoration:underline dotted gray}aside{border:thin solid rgba(128,128,128,.5);padding:1em;opacity:.65;overflow:hidden}@media (prefers-reduced-motion: no-preference){aside{transition:opacity .2s ease}}aside:hover{opacity:1}b,strong{font-weight:bolder}blockquote{border-left:solid var(--accent);font-style:oblique;margin-left:-2ch;padding-left:2ch;quotes:none}blockquote p::before{content:open-quote}blockquote p::after{content:close-quote}code,kbd,pre,samp{line-height:normal;font-family:monospace,monospace;font-size:1em}div.footnote-definition{font-size:smaller}div.footnote-definition>p:only-of-type{display:inline}:is(div.footnote-definition,h1,h2,h3,h4,h5,h6):target{background-color:rgba(128,128,128,.1);padding:1rem}@media (prefers-reduced-motion: no-preference){:is(div.footnote-definition,h1,h2,h3,h4,h5,h6):target{transition:background-color 1s}}dfn{all:unset}iframe{display:block;border:none;outline:none}input{background:none;border:thin solid rgba(128,128,128,.75);font:inherit;padding:0;padding-inline:.5em}h1,h2,h3,h4,h5,h6{margin-block-start:1em}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit}h1 a:not(:hover),h2 a:not(:hover),h3 a:not(:hover),h4 a:not(:hover),h5 a:not(:hover),h6 a:not(:hover){text-decoration:underline var(--accent)}h1{font-size:2.25em}header *{margin-block:0}hr{border:1px solid rgba(128,128,128,.5);color:inherit;height:0;margin:0 20%}kbd{border:thin solid;border-radius:.25em;margin-inline:.25em;padding-block:.25em;padding-inline:.25em}li{margin-block:.5em}:not(pre)>code{padding-block:.25em;padding-inline:.5em;background-color:rgba(128,128,128,.15)}pre:has(>code){background-color:rgba(128,128,128,.15);padding-block:1em;overflow:auto}pre:has(>code)>code{display:block;width:fit-content}pre:has(>code) :not(span)>span,pre:has(>code)>mark{display:block;padding-inline:1em;width:100%}pre:has(>code) mark{background:unset;color:inherit}pre:has(>code) code>mark>span,pre:has(>code) :is(span,tr):has(mark){background-color:rgba(128,128,128,.25)}pre:has(>code) [data-lang=diff] mark{font-weight:bolder}pre:has(>code) td{padding:0}pre:has(>code) td:first-of-type{padding-inline-start:1em;text-align:end;width:0}q{quotes:auto}sub,sup{line-height:0;font-size:smaller;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-spacing:0;text-indent:0;width:100%}table:has(thead) tbody td{border:.1em solid rgba(128,128,128,.25);padding:.5em}table:has(thead) tbody td:has(>a:only-child){padding:0}table:has(thead) tbody td:has(>a:only-child)>a:only-child{padding:.5em}table:has(thead) tbody td:has(>a:only-child)>a:only-child,table:has(thead) tbody td:has(>a:only-child)>a:only-child *{display:block}.z-comment{color:light-dark(#080, #608b4e)}.z-entity.z-name.z-function,.z-keyword.z-other.z-name-of-parameter.z-objc,.z-markup.z-quote,.z-support.z-class,.z-support.z-function,.z-support.z-type,.z-support.z-variable,.z-variable{color:light-dark(#000, #dcdcdc)}.z-constant.z-language.z-boolean,.z-keyword,.z-storage.z-modifier,.z-storage.z-type{color:light-dark(blue, #569cd6)}.z-keyword.z-operator.z-arithmetic,.z-keyword.z-operator.z-assignment,.z-keyword.z-operator.z-comparison{color:light-dark(currentcolor, #dcdcdc)}.z-constant.z-numeric{color:light-dark(#a31515, #b5cea8)}.z-constant{color:light-dark(#060, #b4cea8)}.z-constant.z-language{color:light-dark(#000, #569cd6)}.z-string{color:light-dark(#a31515, #d69d85)}.z-constant.z-character.z-escape,.z-string .z-source{color:light-dark(#26b31a, #e3bbab)}.z-keyword.z-control.z-import,.z-meta.z-preprocessor{color:light-dark(blue, #9b9b9b)}.z-entity.z-name.z-type{color:light-dark(#000, #4ec9b0)}.z-entity.z-other.z-inherited-class{color:light-dark(currentcolor, #4ec9b0)}.z-storage.z-type.z-method{color:#70727e}.z-support.z-constant{color:light-dark(#000, #b5cea8)}.z-keyword.z-operator.z-js{color:#687687}.z-invalid{color:light-dark(#e1a09f, #f33)}.z-invalid.z-deprecated.z-trailing-whitespace{background-color:light-dark(#ffd0d0, #f33)}.z-string.z-unquoted,.z-text .z-source{background-color:light-dark(#fff, #282828)}.z-declaration.z-xml-processing,.z-meta.z-xml-processing{color:#68685b}.z-declaration.z-doctype,.z-meta.z-doctype{color:light-dark(#a31515, grey)}.z-declaration.z-tag,.z-meta.z-tag{color:light-dark(blue, grey)}.z-entity.z-name.z-tag{color:light-dark(#a31515, #569cd6)}.z-entity.z-other.z-attribute-name{color:light-dark(red, #92caf4)}.z-string.z-quoted.z-double.z-html,.z-string.z-quoted.z-double.z-xml{color:light-dark(blue, #c8c8c8)}.z-markup.z-heading{color:light-dark(#0c07ff, #569cd6)}.z-markup.z-list{color:light-dark(#b90690, #dcdcdc)}.z-meta.z-selector.z-css .z-entity.z-name.z-tag,.z-meta.z-selector.z-css .z-entity.z-other.z-attribute-name.z-class,.z-meta.z-selector.z-css .z-entity.z-other.z-attribute-name.z-id,.z-meta.z-selector.z-css .z-entity.z-other.z-attribute-name.z-tag.z-pseudo-class{color:light-dark(red, #d7ba7d)}.z-support.z-type.z-property-name.z-css{color:light-dark(#000, #9cdcfe)}.z-meta.z-property-group .z-support.z-constant.z-property-value.z-css,.z-meta.z-property-value .z-support.z-constant.z-property-value.z-css{color:light-dark(currentcolor, #c8c8c8)}.z-meta.z-preprocessor.z-at-rule .z-keyword.z-control.z-at-rule{color:#87cefa}.z-source.z-cs .z-comment.z-block.z-documentation.z-source.z-cs .z-meta.z-tag.z-xml,.z-source.z-cs .z-comment.z-block.z-documentation.z-source.z-cs .z-meta.z-tag.z-xml .z-entity.z-name.z-tag.z-localname.z-xml,.z-source.z-cs .z-comment.z-block.z-documentation.z-source.z-cs .z-meta.z-tag.z-xml .z-entity.z-other.z-attribute-name{color:#608b4e}.z-markup.z-deleted.z-git_gutter{color:#f92672}.z-markup.z-inserted.z-git_gutter{color:#a6e22e}.z-markup.z-changed.z-git_gutter{color:#967efb}.z-markup.z-ignored.z-git_gutter,.z-markup.z-untracked.z-git_gutter{color:#565656}.z-git.z-changes.z-x{background-color:#272852}.z-git.z-changes.z-\+{background-color:#275822}.z-git.z-changes.z--{background-color:#a72822}:is(:not(td,td mark)>span,tr):has(.z-markup.z-inserted.z-diff,.z-meta.z-diff.z-header.z-to-file){color:#eefff8;background-color:rgba(0,85,17,.7333333333)}:is(:not(td,td mark)>span,tr):has(.z-markup.z-deleted.z-diff,.z-meta.z-diff.z-header.z-from-file){color:#fff3ee;background-color:rgba(170,17,0,.7333333333)}