@font-face{font-family:Signifier;src:url(https://barrettruth.com/fonts/signifier/Signifier-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Signifier;src:url(https://barrettruth.com/fonts/signifier/Signifier-RegularItalic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Signifier;src:url(https://barrettruth.com/fonts/signifier/Signifier-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Signifier;src:url(https://barrettruth.com/fonts/signifier/Signifier-LightItalic.ttf) format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Signifier;src:url(https://barrettruth.com/fonts/signifier/Signifier-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Signifier;src:url(https://barrettruth.com/fonts/signifier/Signifier-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Berkeley Mono;src:url(https://barrettruth.com/fonts/berkeley-mono/BerkeleyMono-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Berkeley Mono;src:url(https://barrettruth.com/fonts/berkeley-mono/BerkeleyMono-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Berkeley Mono;src:url(https://barrettruth.com/fonts/berkeley-mono/BerkeleyMono-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{font-family:Signifier,serif;line-height:1.65;color:#1a1a1a;background:#f5f5f5}@media(prefers-color-scheme:dark){html,body{background:#121212;color:#e0e0e0}}main{max-width:50rem;margin:0 auto;padding:3rem clamp(1.25rem,5vw,3rem) 6rem}.tagline{font-size:1.1rem;opacity:.5;margin-top:-.75rem;margin-bottom:1.75rem;font-style:italic}h1{font-weight:300;font-size:clamp(1.75rem,5vw,2.5rem);line-height:1.2;margin-bottom:1.5rem}h2{font-weight:400;font-size:1.35rem;margin-top:2.5rem;margin-bottom:.75rem}h3{font-weight:500;font-size:1.1rem;margin-top:2rem;margin-bottom:.5rem}p{margin-bottom:1rem}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.15em}a:hover{text-decoration-thickness:2px}ul,ol{padding-left:1.25em;margin-bottom:1rem}li{margin-bottom:.35rem}pre,code,.astro-code{font-family:Berkeley Mono,monospace!important}code{font-size:.88em;padding:.15em .35em;border-radius:3px;background:#e8e8e8}@media(prefers-color-scheme:dark){code{background:#222}}pre{padding:1rem 1.25rem;border-radius:4px;overflow-x:auto;white-space:pre;word-wrap:normal;margin-bottom:1.25rem;line-height:1.5;background:#ebebeb}@media(prefers-color-scheme:dark){pre{background:#222}}pre code{padding:0;background:none;font-size:.85em}@media(prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}table{width:100%;border-collapse:collapse;margin-bottom:1.25rem;font-size:.95em}th,td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid #d0d0d0}@media(prefers-color-scheme:dark){th,td{border-bottom-color:#2d2d2d}}th{font-weight:500}hr{border:none;border-top:1px solid #d0d0d0;margin:2.5rem 0}@media(prefers-color-scheme:dark){hr{border-top-color:#2d2d2d}}nav{max-width:50rem;margin:0 auto;padding:1.5rem clamp(1.25rem,5vw,3rem) 0;font-size:.9rem}nav a{color:inherit;text-decoration:none;opacity:.6;transition:opacity .15s}nav a:hover{opacity:1}nav .title{font-weight:500;opacity:1}nav .sep{opacity:.3;margin:0 .5em}.toc-nav{position:fixed;top:6.5rem;left:max(1rem,calc(50vw - 38rem));width:11rem;font-size:.9rem;line-height:1.5}.toc-nav code{font-size:.85em;padding:.1em .25em;border-radius:2px;background:#e8e8e8}@media(prefers-color-scheme:dark){.toc-nav code{background:#222}}@media(max-width:64em){.toc-nav{display:none}}.toc-nav ul{list-style:none;padding:0;margin:0}.toc-nav li{margin-bottom:.45rem}.toc-nav a{color:inherit;text-decoration:none;opacity:.6;transition:opacity .15s}.toc-nav a:hover{opacity:1}
