:root{--rosewater: #dc8a78;--flamingo: #dd7878;--pink: #ea76cb;--mauve: #8839ef;--red: #d20f39;--maroon: #e64553;--peach: #fe640b;--yellow: #df8e1d;--green: #40a02b;--teal: #179299;--sky: #04a5e5;--sapphire: #209fb5;--blue: #1e66f5;--lavender: #7287fd;--text: #4c4f69;--subtext1: #5c5f77;--subtext0: #6c6f85;--overlay2: #7c7f93;--overlay1: #8c8fa1;--overlay0: #9ca0b0;--surface2: #acb0be;--surface1: #bcc0cc;--surface0: #ccd0da;--base: #eff1f5;--mantle: #e6e9ef;--crust: #dce0e8;--inverted-text: var(--base);--selection-color: var(--blue)}@media(prefers-color-scheme: dark){:root{--rosewater: #f5e0dc;--flamingo: #f2cdcd;--pink: #f5c2e7;--mauve: #cba6f7;--red: #f38ba8;--maroon: #eba0ac;--peach: #fab387;--yellow: #f9e2af;--green: #a6e3a1;--teal: #94e2d5;--sky: #89dceb;--sapphire: #74c7ec;--blue: #89b4fa;--lavender: #b4befe;--text: #cdd6f4;--subtext1: #bac2de;--subtext0: #a6adc8;--overlay2: #9399b2;--overlay1: #7f849c;--overlay0: #6c7086;--surface2: #585b70;--surface1: #45475a;--surface0: #313244;--base: #1e1e2e;--mantle: #181825;--crust: #11111b;--inverted-text: var(--crust);--selection-color: var(--mauve)}}@font-face{font-family:"Inter";src:url("/webfonts/inter.woff2") format("woff2-variations");font-display:swap;font-weight:125 950;font-stretch:75% 125%;font-style:normal}body{font-family:"Inter",system-ui,sans-serif;font-size:1.9rem;color:var(--subtext1);font-weight:400;line-height:1.5}hr{color:var(--subtext1)}::selection{background-color:color-mix(in srgb, var(--selection-color), transparent 70%)}button,input,optgroup,select,textarea{font-family:inherit}b{font-weight:600}h1{font-weight:900}h2,h3,h4{font-weight:600}h1,h2,h3,h4,h5{margin:0;padding-block:var(--space-xs) var(--space-xs);color:var(--text)}h1{font-size:150%}h2{font-size:125%}h3{font-size:115%}h4{font-size:100%}h5{font-size:80%}summary h1,summary h2,summary h3,summary h4,summary h5,summary h6{display:inline-block;margin:0;padding:0}p,ul,ol{margin-block:0 var(--space-xs)}li{margin:0}a{text-decoration:none}pre:has(code){margin:0;padding:var(--space-xs);max-width:100%;overflow-x:scroll;border-radius:var(--border-radius-normal);background-color:var(--crust);line-height:1.2}pre:has(code) code{margin:0;padding:0}code{padding-inline:var(--space-xxs);max-width:100%;border-radius:var(--border-radius-normal);background-color:var(--crust);font-family:monospace;font-size:80%;overflow-x:scroll}*,*::before,*::after{box-sizing:border-box}html{font-size:62.5%;scroll-behavior:smooth}@media(prefers-reduced-motion){*,*::before,*::after{transition:none !important}html{scroll-behavior:auto}}:root{--website-max-width: 80vw;--border-radius-normal: 6px;--border-radius-large: 12px;--base-unit: 1em;--space-xxs: calc(0.25 * var(--base-unit));--space-xs: calc(0.5 * var(--base-unit));--space-sm: calc(0.75 * var(--base-unit));--space-md: calc(1.25 * var(--base-unit));--space-lg: calc(2 * var(--base-unit));--space-xl: calc(3.25 * var(--base-unit));--space-xxl: calc(5.25 * var(--base-unit));--padding-body: clamp(20px, 5vw, 500px)}body{margin:0;padding:0;min-height:100vh;background-color:var(--base)}section+section{margin-block-start:var(--space-xl)}.content-wrapper{width:100%;max-width:calc(2*var(--padding-body) + var(--website-max-width));padding:var(--space-md) var(--padding-body);margin-inline:auto}.no-padding{padding-block:0}.header-container{padding-block:var(--space-md)}.footer-container{margin-block-start:var(--space-xl);background-color:var(--mantle)}.footer-container .content-wrapper{padding-block:var(--space-lg)}table{width:100%;min-width:max-content;overflow-y:scroll;text-align:left;border-collapse:collapse}table th,table td{padding:var(--space-xs) var(--space-md)}table th+th,table td+td{padding-inline-start:var(--space-lg)}table th{border-bottom:1px solid var(--surface0);font-size:80%;font-weight:500;color:var(--subtext0)}table tbody td{padding-right:0}table.colored tr:nth-child(odd):not(:first-child){background-color:color-mix(in srgb, var(--mantle), var(--crust) 50%)}@keyframes btnFadeOut{to{background-color:var(--surface0);color:var(--text)}}.btn-group{display:flex;gap:var(--space-xs);flex-wrap:wrap}.btn{padding:var(--space-xs) var(--space-md);border-radius:9999px;border:none;background-color:var(--surface0);font-size:1.6rem;font-weight:500;color:var(--text);transition:all 350ms ease-in-out;cursor:pointer}.btn-small{padding:var(--space-xxs);border-radius:var(--border-radius-normal)}.btn-transparent{background-color:rgba(0,0,0,0)}.btn-transparent:hover,.btn-transparent:focus{background-color:color-mix(in srgb, transparent, var(--text) 10%)}.btn-has-icon{display:flex;align-items:center;gap:var(--space-xs)}.btn-peach{background-color:var(--peach);background-image:linear-gradient(120deg, var(--peach), var(--red));background-size:150% 100%;background-position:top left;font-weight:600;color:var(--inverted-text)}.btn-peach:hover{background-position:top right}.btn-mauve{background-color:var(--mauve);background-image:linear-gradient(120deg, var(--pink), var(--mauve));background-size:150% 100%;background-position:top left;font-weight:600;color:var(--inverted-text)}.btn-mauve:hover{background-position:top right}.btn-green{background-color:var(--green);background-image:linear-gradient(120deg, var(--teal), var(--green));background-size:150% 100%;background-position:top left;font-weight:600;color:var(--inverted-text)}.btn-green:hover{background-position:top right}.btn-success{background-color:var(--green);color:var(--inverted-text);animation:btnFadeOut 350ms linear forwards;animation-delay:500ms}.btn,.btn *{transition:background-position 350ms ease-in-out}.padding-and-margin,.content h1,.content h2,.content h3,.content h4,.content h5,.content h6,.content p,.content ol,.content ul,.content pre,.content details,.content blockquote,.content .inner,.figure,.figure-table,.post-md table,.figure-header{margin-top:0;margin-bottom:0;margin-left:auto;margin-right:auto}.figure,.figure-table,.post-md table,.figure-header{max-width:1200px;width:100%}.figure-header{max-width:800px;text-align:center;border-bottom:1px solid var(--surface2)}.figure-table,.post-md table{width:max-content}.figure-table-cell{padding:var(--space-md);user-select:none;text-align:center}.space-around{padding-top:var(--space-xs);padding-bottom:var(--space-xs)}.title{font-size:175%;font-weight:bold;text-align:center;margin-left:auto;margin-right:auto;margin-bottom:var(--space-md);max-width:1200px}.content{display:flex;flex-direction:column;gap:20px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6,.content p,.content ol,.content ul,.content pre,.content details,.content blockquote,.content .inner{max-width:800px;width:100%}@media(max-width: 800px){.content h1,.content h2,.content h3,.content h4,.content h5,.content h6,.content p,.content ol,.content ul,.content pre,.content details,.content blockquote,.content .inner{width:unset;margin-left:1rem;margin-right:1rem}}.content hr{border:0;border-top:1px solid var(--subtext1);width:50px}.header-anchor{color:var(--subtext1)}summary{cursor:pointer;margin-bottom:var(--space-xs)}.navigation{display:flex;justify-content:center;gap:var(--space-md);padding:var(--space-md);padding-bottom:0}.author-info{text-align:center;font-size:90%;padding:var(--space-md)}blockquote{padding-left:var(--space-md);border-left:3px solid var(--surface2)}img{max-width:100%}.monospace{font-family:monospace}.primary{color:var(--red)}.secondary{color:var(--teal)}.tertiary{color:var(--yellow)}.bitmap-cell{padding:var(--space-xxs);user-select:none;text-align:center}.document-index{writing-mode:vertical-lr;transform:rotate(180deg);text-align:center;user-select:none;font-size:90%;border:1px solid var(--border-color);border-top:none;padding-top:20px;padding-bottom:20px;width:2.5em}.document-value{cursor:pointer;text-align:center;user-select:none}.bitmap-name{text-align:right}.document-value:hover{background-color:var(--surface0)}.operand-row:nth-last-child(2){border-bottom:1px solid var(--surface2)}@media(prefers-color-scheme: light){:root{--subtext1: hsl(234, 16%, 25%)}}body{display:flex;flex-direction:column}header{display:flex;padding:var(--space-sm);gap:var(--space-xs);align-items:center}header canvas{width:75px;height:75px}header .site-name{font-size:120%}header .links{text-align:right;flex-grow:1}a{text-decoration:none;color:var(--blue)}a:hover{color:var(--mauve)}.index-list{display:flex;flex-direction:column;flex-grow:1;max-width:300px;margin-left:auto;margin-right:auto;justify-content:center}.post-item{margin-bottom:3ex}.post-blurb{font-style:italic;color:var(--subtext1)}