/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace,monospace;font-size:1em;}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;scroll-padding-top:56px}*,*::before,*::after{box-sizing:inherit}body{color-scheme:light dark;color:var(--text-color);background-color:var(--header-color)}h1,h2,h3,h4,h5,h6,p{margin-bottom:0}h1,h2,h3,h4,h5,h6{color:var(--heading-color)}h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:16px}h1{font-size:48px;font-weight:600}p{margin-top:36px;line-height:1.6}h2,h3,h4,h5,h6{margin-top:60px}a{color:var(--text-color)}img{width:100%}figure{margin:0}li{margin-bottom:8px}hr{margin-block:36px;border:0;border-top:2px solid var(--text-color)}kbd{display:inline-block;padding:4px 8px;margin-right:2px;line-height:1;border-radius:4px;box-shadow:2px 2px 0 color-mix(in srgb, var(--text-color) 50%, rgba(0,0,0,0));background-color:var(--code-background-color)}.post-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));column-gap:32px;row-gap:56px}.post{position:relative}.post--draft{opacity:60%}.post-link{text-decoration:none}.post-link:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0}.taxonomy-nav{display:flex;flex-wrap:wrap;margin-top:8px}.taxonomy-nav--column{flex-direction:column}.taxonomy-link{text-decoration:none;position:relative;font-size:12px;padding:6px 8px;border-radius:4px}.taxonomy-link:hover{background-color:var(--background-hover);color:var(--text-hover)}.taxonomy-link--large{font-size:24px;padding:8px 16px}.taxonomy-term{text-decoration:underline}.post__image{border-radius:8px;aspect-ratio:1.6;object-fit:cover}.post__title{margin-top:8px;font-weight:normal}.post__description{margin-top:8px}.post__meta{margin-top:16px}.post__meta-author{display:flex;gap:8px;align-items:center}.post__meta-info{font-size:12px}.post__meta-author-name{font-size:14px}.post__meta-author-profile-image{width:36px;height:36px;border-radius:100%}.series-banner{display:block;margin-bottom:32px}.series-nav{display:flex;flex-direction:column;margin-top:32px;gap:32px;border:2px solid var(--border-subtle);border-radius:8px;padding:16px;font-size:24px;font-weight:bold}.series-nav .series-banner{display:inline;margin-bottom:unset;width:fit-content}.series-nav .series-banner a{text-decoration:none}.series-nav .series-banner a:hover{text-decoration:underline;color:var(--text-hover)}.series-nav nav{font-weight:normal;font-size:18px;display:flex;justify-content:space-between;gap:16px}.series-nav nav a,.series-nav nav span{flex:1}.series-nav nav a:hover{color:var(--text-hover)}.chronology-nav{display:flex;justify-content:space-between;margin-top:128px;gap:16px;opacity:.7;font-style:italic}.chronology-nav,.chronology-nav span{flex:1}.further-reading-title{margin-top:100px;font-size:22px;color:var(--text-color)}.square-svg,.cube-svg{user-select:none;-webkit-user-select:none}.square-svg .axis,.cube-svg .axis{stroke-width:1px}.square-svg #x-axis,.cube-svg #x-axis{fill:var(--x-color);stroke:var(--x-color)}.square-svg #y-axis,.cube-svg #y-axis{fill:var(--y-color);stroke:var(--y-color)}.square-svg #z-axis,.cube-svg #z-axis{fill:var(--z-color);stroke:var(--z-color)}.square-svg text,.cube-svg text{fill:var(--text-color);font-family:monospace,monospace;font-size:6px}.square-svg text.x-label,.square-svg text.y-label,.square-svg text.z-label,.cube-svg text.x-label,.cube-svg text.y-label,.cube-svg text.z-label{font-size:10px}.square-svg text.x-label,.cube-svg text.x-label{fill:var(--x-color)}.square-svg text.y-label,.cube-svg text.y-label{fill:var(--y-color)}.square-svg text.z-label,.cube-svg text.z-label{fill:var(--z-color)}.square-svg .vertex,.cube-svg .vertex{fill:var(--text-color)}.square-svg .square{fill:none;stroke:var(--text-color);stroke-width:2px}.cube-svg .edge{fill:none;stroke:var(--text-color);stroke-width:2px}.cube-svg .edge-hidden{fill:none;stroke:var(--text-color);stroke-width:2px;stroke-linecap:butt;stroke-dasharray:2,2}body{--heading-color: hsl(0, 0%, 90%);--text-color: hsl(0, 0%, 70%);--text-hover: color-mix(in srgb, var(--text-color), white 50%);--border-subtle: color-mix(in srgb, var(--text-color), black 75%);--background-color: #191b1f;--background-hover: color-mix(in srgb, var(--background-color), white 6%);--header-color: #0f0f0f;--code-color: #cd74e8;--code-background-color: #2b303b;--x-color: #ff0000;--y-color: #009600;--z-color: #6262ff}@media (prefers-color-scheme: light){body{--heading-color: #412f2b;--text-color: black;--text-hover: color-mix(in srgb, var(--text-color), black 50%);--border-subtle: color-mix(in srgb, var(--text-color), white 75%);--background-color: rgb(255, 240, 240);--background-hover: color-mix(in srgb, var(--background-color), black 6%);--header-color: #fdd2b9;--code-color: black;--code-background-color: color-mix( in srgb, var(--background-color), black 10% )}}.site-header{background-color:var(--header-color);color:var(--heading-color);padding-bottom:32px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center;flex-direction:column}.site-header__title{margin:0;font-size:42px;font-weight:600}.site-header__description{font-size:14px;margin-top:8px;color:var(--text-color)}.wrapper{background-color:var(--background-color);display:flex;align-items:center;min-height:100vh;flex-direction:column}.main-nav,.main-content,.main-footer{max-width:1200px;width:100%;padding:40px 16px}@media (min-width: 576px){.main-nav,.main-content,.main-footer{padding:40px 32px}}.main-nav-container{position:sticky;top:0;width:100%;z-index:1;background-color:var(--header-color)}.main-nav-container a{white-space:nowrap}.main-nav-container>nav>a:not(:first-child){display:none}@media (min-width: 768px){.main-nav-container>nav>a:not(:first-child){display:unset}}.main-nav-container a:first-child{margin-right:auto}.main-nav a{text-decoration:none;padding:8px 0px}.main-nav a:hover{color:var(--heading-color)}.main-nav{height:40px;padding:8px 16px;display:flex;gap:16px;align-items:center;max-width:1200px;margin:auto}@media (min-width: 576px){.main-nav{padding:0px 32px}}#menu{display:none;background-color:var(--header-color);position:absolute;top:0;right:0;margin:0;padding:12px 16px;width:100%}#menu a{padding:0}@media (min-width: 576px){#menu{padding:12px 32px;padding-bottom:16px}}#menu.open{display:flex;flex-direction:column;gap:16px;height:100vh}@media (min-width: 768px){#menu.open{display:none}}#menu-button{width:40px;height:40px;border:none;padding:0;margin:0;background-color:rgba(0,0,0,0);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1}@media (min-width: 768px){#menu-button{display:none}}#menu-button svg{fill:var(--text-color)}#menu-button:hover svg{fill:var(--heading-color)}.copyright{margin-bottom:8px}.main-footer{color:var(--text-color);position:relative;padding-top:20px;padding-bottom:60px;display:flex;justify-content:space-between;font-size:14px}.main-footer a:first-of-type{margin-left:0}.main-footer a{margin-left:8px;color:inherit}.main-footer a:hover{color:var(--heading-color)}.main-footer nav{display:flex}.main-footer-container{background-color:var(--header-color);width:100%;display:flex;justify-content:center;flex:1}.social-link svg{width:48px;height:48px;fill:var(--text-color)}.social-link:hover svg{fill:var(--heading-color)}.page{max-width:640px;width:100%;margin:auto}.page-title{margin-top:0}.page-content{font-family:charter,Georgia,Cambria,"Times New Roman",Times,serif;font-size:20px}.page-content blockquote{border-left:3px solid var(--code-color);font-style:italic;margin:0;margin-bottom:24px;padding:0 24px}.page-content pre{overflow-x:auto;padding:20px;border-radius:4px}.page-content code{font-size:16px}.page-content code:not([class]){color:var(--code-color);background-color:var(--code-background-color);padding:2px;border-radius:2px}.page-content hr{margin-top:36px;border-top:2px solid var(--border-subtle)}.page-content table{display:block;width:100%;overflow-x:auto;margin-top:36px;border-collapse:collapse;font-family:inherit;font-size:16px;line-height:1.5;text-align:left}.page-content thead th{color:var(--heading-color);font-weight:600;border-bottom:3px solid var(--border-subtle)}.page-content th,.page-content td{padding:18px 28px 18px 0;vertical-align:top;min-width:150px;max-width:300px}.page-content th:last-child,.page-content td:last-child{padding-right:0}.page-content tbody tr{border-bottom:2px solid var(--border-subtle)}.page-content tbody tr:last-child{border-bottom:0}.page-description{font-size:20px;margin-top:20px}.page-image{margin-top:36px}.anchor-link{display:none;fill:var(--heading-color);text-decoration:none;line-height:1;padding-left:4px}h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{display:inline-block}h1+h1,h1+h2,h1+h3,h1+h4,h1+h5,h1+h6,h2+h1,h2+h2,h2+h3,h2+h4,h2+h5,h2+h6,h3+h1,h3+h2,h3+h3,h3+h4,h3+h5,h3+h6,h4+h1,h4+h2,h4+h3,h4+h4,h4+h5,h4+h6,h5+h1,h5+h2,h5+h3,h5+h4,h5+h5,h5+h6,h6+h1,h6+h2,h6+h3,h6+h4,h6+h5,h6+h6{margin-top:32px}li{margin-bottom:16px}.section-title{margin-top:0;margin-bottom:32px}.series-description{margin-top:0;margin-bottom:32px;font-weight:normal;color:var(--text-color)}.section-header{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.series-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;margin-bottom:32px;gap:16px}.series-header .section-title,.series-header .series-description{margin-bottom:0}