/*!modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize*/progress,sub,sup{vertical-align:baseline}*,::after,::before{box-sizing:border-box}html{font-family:system-ui,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji;line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,liberation mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{border-color:initial}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}legend{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}:root{--bg:#2e3440;--surface:#3b4252;--border:#4c566a;--text:#eceff4;--muted:#a7b1c2;--link:#88c0d0;--hover:#8fbcbb;--kicker:#ebcb8b;--title:#d08770;--h3:#a3be8c;--strong:#ebcb8b;--code-bg:#3b4252;--code:#a3be8c;--mark:#5e4b2e}@media(prefers-color-scheme:light){:root{--bg:#eceff4;--surface:#e5e9f0;--border:#c9d0dc;--text:#2e3440;--muted:#4c566a;--link:#3f6593;--hover:#5e81ac;--kicker:#a3542f;--title:#a3542f;--h3:#4f6b3a;--strong:#2e3440;--code-bg:#e5e9f0;--code:#4f6b3a;--mark:#f3e3bd}}html{font-family:jetbrains mono,ui-monospace,monospace;background:var(--bg);color:var(--text)}body{max-width:44rem;margin:0 auto;padding:1.5rem 1.25rem 3rem;font-size:1rem;line-height:1.75}.site-header,.site-footer{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:baseline}.site-header{justify-content:space-between;padding-bottom:1rem;margin-bottom:2.5rem;border-bottom:1px solid var(--border)}.site-header nav,.site-footer{display:flex;gap:1.25rem;font-size:.875rem}.site-title{font-weight:700;color:var(--text);text-decoration:none}.site-footer{margin-top:4rem;padding-top:1rem;border-top:1px solid var(--border)}.site-header a,.site-footer a{color:var(--muted)}.site-header a:hover,.site-footer a:hover{color:var(--link)}h1,h2,h3,h4{line-height:1.3;font-weight:700;margin:2.25rem 0 .75rem}h1{font-size:1.75rem;margin-top:0}h2{font-size:1.3rem;color:var(--title)}h3{font-size:1.1rem;color:var(--h3)}h4{font-size:1rem}h1 a,h2 a{color:inherit;text-decoration:none}h1 a:hover,h2 a:hover{color:var(--link)}p,ul,ol,blockquote,pre,table{margin:0 0 1.25rem}a{color:var(--link);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--hover)}.prose a[href^=http]::after{content:" ↗";font-size:.8em}strong{color:var(--strong)}mark{background:var(--mark);color:inherit;padding:0 .2em}ul,ol{padding-left:3.5rem}li{margin-bottom:.4rem}li>ul,li>ol{margin:.4rem 0 0;padding-left:1.5rem}blockquote{margin-left:0;padding-left:1rem;border-left:3px solid var(--border);color:var(--muted)}hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}img{max-width:100%;height:auto}code{background:var(--code-bg);color:var(--code);border-radius:3px;padding:.1em .35em;font-size:.9em;font-family:inherit}pre{background:var(--code-bg);border-radius:4px;padding:1rem;overflow-x:auto;line-height:1.5}pre code{padding:0;background:0 0}table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}th,td{text-align:left;padding:.4rem .75rem;border-bottom:1px solid var(--border)}.kicker{margin:0 0 .5rem;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--kicker)}.kicker a{color:inherit;text-decoration:none}.lede{font-size:1.1rem;color:var(--muted)}.meta,.muted,time{color:var(--muted);font-size:.875rem}.meta{margin-top:-.25rem}.section-title{font-size:.875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:3rem}.hero{margin-bottom:2rem}.hero h1{font-size:2.25rem}.card{background:var(--surface);border-radius:6px;padding:1.5rem}.card h2{margin-top:0;color:var(--text)}.card p:last-child{margin-bottom:0}.more{font-weight:700}.entries,.posts{list-style:none;padding:0}.entries li,.posts li{display:flex;flex-wrap:wrap;gap:0 .75rem;align-items:baseline;margin-bottom:.6rem}.entries a,.posts a{flex:1 1 16rem}.entry-number{color:var(--kicker);font-weight:700;min-width:2.5rem}.prose header{margin-bottom:2rem}.series-note{margin-top:3rem;padding:1.25rem 1.5rem;background:var(--surface);border-radius:6px;font-size:.9rem}.series-note p:last-child{margin-bottom:0}.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}.pager a{display:flex;flex-direction:column;max-width:48%;text-decoration:none}.pager .next{text-align:right;margin-left:auto}.pager span{font-size:.8rem;color:var(--muted)}.callout{margin:2.5rem 0;padding:1.25rem 1.5rem;background:var(--surface);border-left:4px solid var(--kicker);border-radius:0 6px 6px 0}.callout-title{margin:0 0 .75rem;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--kicker)}.callout ul,.callout ol{padding-left:2rem}.callout>:last-child{margin-bottom:0}.subscribe{margin:2.5rem 0;padding:1.25rem 1.5rem;border:1px solid var(--border);border-radius:6px}.subscribe p:not(.kicker){margin-bottom:1rem}.button{display:inline-block;padding:.6rem 1.1rem;border-radius:6px;background:var(--link);color:var(--bg);font-weight:700;text-decoration:none}.button:hover{background:var(--hover);color:var(--bg)}