*,*::before,*::after{box-sizing:border-box}blockquote{margin:0 0 1rem}@font-face{font-family:"Latin Modern Math";font-display:swap;src:url("/latinmodern-math.woff2") format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("/inter-variable.woff2") format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url("/inter-variable-italic.woff2") format("woff2")}@font-face{font-family:CommitMono;font-style:normal;font-display:swap;font-feature-settings:"ss03" on,"ss04" on,"ss05" on,"cv02" on,"cv04" on,"cv06" on;src:url("/commitmono.woff2") format("woff2")}header{display:flex;align-items:center;gap:1ch}body{font-family:Inter,sans-serif;max-width:80ch;padding:1ch;padding-bottom:8ch;margin:auto}pre{font-family:CommitMono,monospace}math{font-family:"Latin Modern Math";font-size:1.2em}img,canvas{display:block;width:100%}blockquote{font-style:italic;border-left:solid 4px #1d2951;padding-left:1ch}.footnote-definition{display:flex;padding:1ch}.footnote-definition *{margin-top:0;margin-bottom:0}.footnote-definition:target{background:#efefef}.extra-strings{display:none}.footnote-definition-label{margin-left:1ch;margin-right:1ch;font-size:inherit}.footnote-definition-label:after{content:"."}.thumb{max-width:256px;display:block}.ditty-player{background:#efefef;padding:.5ch}.ditty-log{margin:.5ch;user-select:none}.ditty-original{margin-left:auto}.ditty-visualize{pointer-events:none;width:100%;height:6ch;position:relative;top:0;left:0}.ditty-controls{display:flex;flex-direction:row;align-items:center;gap:.5ch}.ditty-button{color:#fff;font-size:1em;background:#1d2951;border:none;padding:1ch}a{color:#4271ae}a:visited{color:#8959a8}header{padding:1ch;width:100%;display:flex;justify-content:center;flex-wrap:wrap}.shader-canvas{width:100%}.search-form{background:#efefef;display:flex;flex-direction:row;gap:.5ch;padding:.5ch}.search-text{background:none;padding:.5ch;width:100%;margin-bottom:-2px;border:none;border-bottom:2px solid rgba(0,0,0,0);outline:none;font-family:inherit;font-size:100%}.search-text:focus-visible{border-bottom:solid #1d2951 2px}.search-go{color:#fff;font-size:1em;background:#1d2951;margin:-2px;border:solid #1d2951 2px;padding-left:1ch;padding-right:1ch}code{font-family:CommitMono,monospace}.giallo-l{display:inline-block;min-height:1lh;width:100%}.giallo-ln{display:inline-block;user-select:none;margin-right:.4em;min-width:3ch;text-align:right;color:#8e908c}.z-code{padding:1ch 1ch;overflow:auto;color:#4d4d4c;background-color:#efefef}.z-code{color:#334}.z-comment{color:#8e908c;font-style:italic}.z-variable.z-parameter.z-function{color:#c82829}.z-keyword{color:#c82829}.z-variable{color:#4d4d4c}.z-variable.z-language{color:#4271ae}.z-variable.z-function{color:#4271ae}.z-entity.z-name.z-function,.z-meta.z-require,.z-support.z-function.z-any-method{color:#4271ae}.z-support.z-class,.z-entity.z-name.z-class,.z-entity.z-name.z-type.z-class{color:#8959a8}.z-meta.z-class{color:#8959a8}.z-keyword.z-other.z-special-method{color:#4271ae}.z-storage{color:#c82829}.z-support.z-function{color:#4271ae}.z-string{color:#718c00}.z-constant.z-numeric{color:#f5871f}.z-constant.z-language{color:#f5871f}.z-none{color:#c88a00}.z-constant{color:#3e999f}.z-entity.z-name{color:#8959a8}.z-entity.z-name.z-tag{color:#c82829}.z-entity.z-other.z-attribute-name{color:#c88a00}.z-entity.z-other.z-attribute-name.z-id,.z-punctuation.z-definition.z-entity{color:#c88a00}.z-meta.z-selector{color:#8959a8}.z-markup.z-heading .z-punctuation.z-definition.z-heading,.z-entity.z-name.z-section{color:#c82829}.z-markup.z-bold,.z-punctuation.z-definition.z-bold{color:#8959a8}.z-markup.z-italic,.z-punctuation.z-definition.z-italic{color:#8959a8}.z-markup.z-raw.z-inline{color:#718c00}.z-meta.z-link{color:#3e999f}.z-markup.z-quote{color:#718c00}.z-markup.z-inserted{color:#718c00}.z-markup.z-deleted{color:#718c00}.z-markup.z-changed{color:#718c00}.z-string.z-regexp{color:#718c00}.z-constant.z-character.z-escape{color:#f5871f}.z-invalid.z-illegal{color:#fff;background-color:#c82829}.z-invalid.z-broken{color:#fff;background-color:#c88a00}.z-invalid.z-deprecated{color:#fff;background-color:#c88a00}.z-invalid.z-unimplemented{color:#fff;background-color:#8959a8}