@font-face{font-family:albert sans;src:url(/fonts/AlbertSans-VariableFont_wght.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:albert sans;src:url(/fonts/AlbertSans-Italic-VariableFont_wght.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}:root{--foreground:#111111;--background:#ffffff;--primary:#5857ff;--secondary:#6b6a6a;--tertiary:#e2e2e2;--quaternary:#f3f2f2;--font:"Albert Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--mono:ui-monospace, Menlo, Consolas, Monaco, "Liberation Mono", "Lucida Console", monospace;--size-tiny:clamp(14px, 0.875rem + 0.2vw, 16px);--size-small:clamp(16px, 1rem + 0.2vw, 18px);--size-medium:clamp(17px, 1.0625rem + 0.4vw, 21px);--size-large:clamp(21px, 1.3125rem + 0.3vw, 24px);--size-h1:clamp(36px, 2.25rem + 2.8vw, 64px);--size-h2:clamp(33px, 2.0625rem + 2.3vw, 56px);--size-h3:clamp(30px, 1.875rem + 1.8vw, 48px);--size-h4:clamp(27px, 1.6875rem + 1.3vw, 40px);--size-h5:clamp(24px, 1.5rem + 0.8vw, 32px);--size-h6:clamp(21px, 1.3125rem + 0.6vw, 27px);--gutter:clamp(32px, 6.666vw, 64px);--gap:min(32px, 6.4vw);--space-70:clamp(48px, 9vw, 64px);--content:720px;--wide:1680px}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font);font-size:var(--size-medium);font-weight:500;line-height:1.5;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:underline;text-underline-offset:.2em}a:hover{text-decoration:none}img{max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{font-weight:600;letter-spacing:-.03em;line-height:1.15;margin:.75em 0 1em}h1{font-size:var(--size-h1)}h2{font-size:var(--size-h2)}h3{font-size:var(--size-h3)}h4{font-size:var(--size-h4)}h5{font-size:var(--size-h5);line-height:1.25}h6{font-size:var(--size-h6);line-height:1.25}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:100;background:var(--background);padding:.5em 1em}.site{display:flex;gap:2em;max-width:var(--wide);margin:0 auto;padding:var(--gutter)}.site-sidebar{flex:0 0 23%;position:sticky;top:var(--gutter);align-self:flex-start;display:flex;flex-direction:column;justify-content:space-between;gap:2em;min-height:calc(100vh - 2 * var(--gutter));padding-top:120px}.site-content{flex:1 1 77%;min-width:0}.site-title{display:inline-block;font-size:var(--size-h5);font-weight:600;letter-spacing:-.02em;line-height:1.15;text-decoration:none}.site-title:hover{text-decoration:underline}.sidebar-intro p{font-size:var(--size-small);margin:1em 0 0;max-width:16em}.site-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25em;font-size:var(--size-large)}.site-nav a{text-decoration:none}.site-nav a:hover,.site-nav a[aria-current]{text-decoration:underline}.social-links{list-style:none;margin:0;padding:0;display:flex;gap:1em}.social-links a{display:block}.social-links svg{display:block;fill:currentColor}.site-header{display:none}@media(max-width:781px){.site-sidebar{display:none}.site{padding-top:0}.site-header{display:flex;align-items:center;justify-content:space-between;padding:var(--gutter)var(--gutter)32px}.menu-toggle,.menu-close{background:0 0;border:0;color:inherit;cursor:pointer;padding:0}.menu-toggle svg{transform:scale(1.5,1.25);fill:currentColor;display:block}.menu-close svg{transform:scale(1.25);fill:currentColor;display:block}.mobile-menu{position:fixed;inset:0;z-index:50;background:var(--background);padding:var(--gutter)}.mobile-menu[hidden]{display:none}.mobile-menu .menu-close{position:absolute;top:var(--gutter);right:var(--gutter)}.mobile-menu .site-nav{margin-top:4em}body.menu-open{overflow:hidden}}.post-preview,.archive-header{max-width:var(--content);margin:0 auto}.post-date{display:block;color:var(--foreground);font-size:var(--size-large);font-weight:500;margin:0}.post-preview .post-title{font-size:var(--size-h2);margin:.5em 0 .6em}.post-preview .post-title a{text-decoration:none}.post-preview .post-title a:hover{text-decoration:underline}.post-excerpt{margin:0}.archive-header h1{margin:.25em 0 1em}.separator{border:0;height:3px;width:140px;margin:var(--space-70)auto;background:radial-gradient(circle,var(--secondary) 1.5px,transparent 1.6px)0 0/66px 3px repeat-x;background-position:50%}.pagination{display:flex;justify-content:space-between;max-width:var(--content);margin:0 auto;font-size:var(--size-small);font-weight:700}.pagination a{display:inline-flex;align-items:center;gap:.88em;text-decoration:none}.pagination a:hover{text-decoration:underline}.pagination .next{margin-left:auto}.pagination .prev::before,.pagination .next::after{display:inline-grid;place-items:center;width:1.75em;height:1.75em;border-radius:50%;background:var(--foreground);color:var(--background);font-weight:500}.pagination .prev::before{content:"←"}.pagination .next::after{content:"→"}.entry-header{max-width:var(--content);margin:0 auto}.entry-header .post-date{margin-top:0}.entry-title{font-size:var(--size-h2);margin:.25em 0 0}.entry-terms{font-size:var(--size-small);margin:.75em 0 0}.featured-image{display:block;width:100%;margin:var(--space-70)0 0;border-radius:8px}.entry-content{max-width:var(--content);margin:var(--space-70)auto 0}.entry-content>:first-child{margin-top:0}.entry-content p,.entry-content ul,.entry-content ol{margin:0 0 1.2em}.entry-content h2{font-size:var(--size-h4)}.entry-content h3{font-size:var(--size-h5)}.entry-content h4{font-size:var(--size-h6);margin:1.5em 0 .75em}.entry-content img{border-radius:8px;display:block}.entry-content figure{margin:0 0 1.5em}.entry-content figcaption{color:var(--secondary);font-size:var(--size-small);margin-top:.75em}.entry-content blockquote{border-left:1px solid var(--tertiary);margin:0 0 1.2em;padding-left:1.5em}.entry-content code{font-family:var(--mono);font-size:.85em;background:var(--quaternary);border-radius:4px;padding:.1em .3em}.entry-content pre{font-size:var(--size-tiny);line-height:1.5;overflow-x:auto;padding:1.25em;border-radius:8px;background:var(--quaternary)!important;margin:0 0 1.5em}.entry-content pre code{background:0 0;padding:0;font-size:inherit}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2em}@media(max-width:781px){.projects{grid-template-columns:1fr}}.post-navigation{max-width:var(--content);margin:var(--space-70)auto 0}.post-navigation .separator{margin:2em auto}.post-navigation-links{display:flex;justify-content:space-between;gap:2em;font-weight:600}.post-navigation-links a{text-decoration:none}.post-navigation-links a:hover{text-decoration:underline}.post-navigation-links .prev::before{content:"← "}.post-navigation-links .next{margin-left:auto;text-align:right}.post-navigation-links .next::after{content:" →"}.site-footer{padding-top:var(--space-70);text-align:center;font-size:var(--size-small);font-weight:700}.site-footer p{margin:0}