@font-face{font-display:swap;font-family:Baloo\ 2;font-style:normal;font-weight:400;src:local("Baloo 2 Regular"),local("Baloo-2-Regular"),url(../fonts/baloo-2-v1-latin-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Baloo\ 2;font-style:normal;font-weight:500;src:local("Baloo 2 Medium"),local("Baloo-2-Medium"),url(../fonts/baloo-2-v1-latin-500.woff2) format("woff2")}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}blockquote,body,h1,h2,h3,h4,p{margin:0}ol[role=list],ul[role=list]{list-style:none;padding:0}html:focus-within{scroll-behavior:smooth}body{line-height:1.7;min-height:100vh;text-rendering:optimizeSpeed}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;scroll-behavior:auto!important;-webkit-transition-duration:.01ms!important;transition-duration:.01ms!important}}:root{--color-surface:#faf0ff;--color-on-surface:#563566;--color-surface-alt:#2d1139;--color-on-surface-alt:#9979a7;--color-primary:#7d4ce0;--color-on-primary:#f2eaff;--color-secondary:#65dce1;--color-on-secondary:#185f62;--color-yellow:#dedf40;--color-pink:#f95fe3;--color-alt:#fff}body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;background-color:var(--color-surface);color:var(--color-on-surface);-ms-flex-direction:column;flex-direction:column;font-family:Baloo\ 2,system-ui,sans-serif;font-size:1.25rem}a{color:var(--color-primary);text-underline-offset:.05em}a:focus{outline:2px solid transparent}:is(a,button,input,textarea){--outline-offset:max(2px,0.08em);--outline-style:solid;--outline-color:currentColor}:is(a,button,input,textarea):focus{outline:max(2px,.08em) var(--outline-style) var(--outline-color);outline-offset:var(--outline-offset)}:is(a,button,input,textarea):focus:not(:focus-visible){outline:none}:is(a,button,input,textarea):focus-visible{outline:max(2px,.08em) var(--outline-style) var(--outline-color);outline-offset:var(--outline-offset)}[id]{scroll-margin-top:2rem}svg{display:block;fill:currentColor}:is(h1,h2,h3){font-weight:500;letter-spacing:.01em;line-height:1}article :is(h2,h3):not(:first-child){margin-top:2em}h1{color:var(--color-alt);font-size:4rem;font-size:clamp(2.5rem,1rem + 5vw,4rem);text-align:center}h1 small{display:block;font-size:.6em}article :is(h2,.h2){font-size:2rem}article:not(.excerpt,.post) h2{display:grid;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}article:not(.excerpt,.post) h2:after{border-top:.08em dashed var(--color-primary);content:"";-webkit-transform:rotate(30deg) translate(-55%,.25em);transform:rotate(30deg) translate(-55%,.25em);width:2ch}.h3,h3{font-size:1.5rem}.heading-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:.5em;line-height:1}.heading-wrapper>a{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.heading-wrapper [hidden]{display:block}#events h2:after{content:unset}#events h3{background-color:var(--color-primary);color:var(--color-on-primary);padding:.25em .5em}h4{font-size:1.3rem;font-style:italic;font-weight:400;line-height:1.1}h4 a{font:inherit!important}header p{line-height:1.3;text-align:center}header p small{display:block;margin-top:.5em}section h2{color:var(--color-primary);font-size:2.5rem}header+section h2,section p{font-size:1.5rem}header+section p{font-size:unset}blockquote{border-left:2px dashed var(--color-primary);margin-bottom:4rem;padding:.15rem 1.5rem}blockquote:not(:first-child){margin-top:4rem}.lead{font-size:1.4rem;font-weight:500;opacity:.8}.lead a{color:#6033bc}code{background-color:rgba(101,220,225,.3);border-radius:.25em;font-size:.85em;font-weight:600;padding:.15em}hr{border-color:var(--color-primary);margin:5vh 0}.skip-link{position:absolute;clip:rect(0,0,0,0);background-color:var(--color-primary);color:var(--color-on-primary);font-size:1rem;height:1px;line-height:1;overflow:hidden;width:1px}.skip-link:focus{position:fixed;clip:unset;height:auto;left:50%;padding:.5em;top:0;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:auto}header{background-color:var(--color-primary);color:var(--color-on-primary);display:grid;padding-bottom:max(5vh,4rem);padding-top:max(5vh,4rem);place-content:center}header a{color:inherit}.home header{min-height:60vh}.header__content{display:grid;gap:2rem;width:min(60ch,100vw - 2rem)}body>footer{margin-top:auto;padding-bottom:1rem;padding-top:1rem;text-align:center}article>*+*,aside>*+*{margin-top:1em}header+*+*,header+:not(section){margin-top:max(8vh,4rem)}article{width:min(70ch,100vw - 2rem)}main{display:grid;margin-bottom:max(8vh,4rem);margin-top:max(8vh,4rem);grid-gap:max(8vh,4rem)}main:focus{outline:none}main>article:only-child{margin-left:auto;margin-right:auto}body>footer,section{background-color:var(--color-on-primary);border-top:2px dashed var(--color-primary)}section{border-bottom:2px dashed var(--color-primary);display:grid;min-height:50vh;padding:max(3vh,2rem) 0;place-content:center}header+section{border-top:none;min-height:unset;padding:2rem 0}.links header{padding-bottom:2rem;padding-top:2rem}.links main{margin-top:2rem}.links main ul:not([role]){--min:15ch;display:grid;margin:0;padding:0;grid-gap:.25rem;grid-template-columns:repeat(auto-fit,minmax(var(--min),1fr));list-style:none}.links main ul:not([role]) li{background-color:var(--color-alt);padding:.25rem;text-align:center}@media (max-width:380px){.links main ul:not([role]){--min:10ch}}.links .row{grid-gap:2rem}.links .row .icon-button{font-size:2.25rem}#articles{margin-top:min(10vh,8rem)}.cp_embed_wrapper iframe{height:max(40vh,400px)}nav{background-color:var(--color-primary);padding:.5rem 1rem}nav a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--color-on-primary);font-size:1rem;line-height:1;text-decoration:none}nav a:focus{--outline-style:none;text-decoration:underline;text-decoration-thickness:2px}nav a:focus-visible{--outline-style:none;text-decoration:underline;text-decoration-thickness:2px}nav a:hover{text-decoration:underline;text-decoration-thickness:.08em}nav ul{display:grid;grid-auto-flow:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:start;margin:0;grid-gap:1rem}nav svg{height:1.35em;margin-right:.25em;width:1.35em}.home nav li:first-child a:focus{--outline-style:solid}.home nav li:first-child a:focus-visible{--outline-style:solid}.button,.icon-button{display:inline-grid;line-height:1.1;place-content:center;text-align:center;text-decoration:none!important}.button{--background:var(--color-primary);--color:var(--color-on-primary);background-color:var(--background);border-radius:.25em;color:var(--color);font-size:1.25rem;padding:.65em .75em .45em}.button:focus{--outline-offset:-6px;--outline-style:dashed}.button:focus-visible{--outline-offset:-6px;--outline-style:dashed}.button--outlined{--background:transparent;--color:var(--color-primary);border:2px solid}.button--inverse{--color:var(--color-inverse)}.icon-button{aspect-ratio:1;font-size:1.5rem;width:1.5rem}.icon-button svg{height:1em;width:1em}button.button{--background:var(--color-secondary);--color:var(--color-on-secondary);border:2px solid var(--color);cursor:pointer}.callout button.button{border:none}form{display:grid;grid-gap:1rem;justify-items:start}.form-group{display:grid;width:100%;grid-gap:.25em}.form-group label{line-height:1;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.form-group input,.form-group textarea{background-color:var(--color-on-primary);border:2px solid var(--color-on-surface);border-radius:4px;font-size:max(16px,1.125rem);padding:0 .5em}.form-group input:focus,.form-group textarea:focus{--outline-color:var(--color-on-surface)}.form-group input:focus-visible,.form-group textarea:focus-visible{--outline-color:var(--color-on-surface)}.form-group input{min-height:35px}.callout .form-group input{border:none}.callout .form-group input:focus{--outline-color:var(--color-on-primary)}.callout .form-group input:focus-visible{--outline-color:var(--color-on-primary)}.container{margin-left:auto;margin-right:auto;width:min(80ch,100vw - 2rem)}.row{display:grid;grid-auto-flow:column;-webkit-box-align:var(--align,center);-ms-flex-align:var(--align,center);align-items:var(--align,center);-webkit-box-pack:var(--justify,center);-ms-flex-pack:var(--justify,center);justify-content:var(--justify,center);grid-gap:1rem}.sidebar{--sidebar:fit-content(30vw);--gap:0.5rem;display:grid;-webkit-box-align:start;-ms-flex-align:start;align-items:start;grid-gap:var(--gap);grid-template-columns:1fr var(--sidebar)}.profile{display:grid;-webkit-box-align:center;-ms-flex-align:center;align-items:center;grid-gap:2rem;text-align:center}@media (min-width:50rem){.profile{grid-template-columns:1fr minmax(50ch,1fr)}}.profile img{border:3px dashed var(--color-on-primary);border-radius:50%;place-self:center;width:min(80%,30vw)}.profile p{font-size:1.5rem}.scroll-grid{display:grid;margin-top:3rem;grid-gap:2rem;grid-template-columns:repeat(auto-fit,minmax(30ch,1fr))}.scroll-grid li{display:grid;position:relative;-ms-flex-line-pack:start;align-content:start;background-color:var(--color-alt);border-bottom:2px dashed var(--color-primary);padding:2rem clamp(.5rem,5%,2rem)}.scroll-grid li p{line-height:1.5;margin:1em 0}.scroll-grid li .github-stars{background-color:var(--color-secondary);border-radius:0 0 0 4px;color:var(--color-on-secondary);font-size:.9rem;line-height:1;margin:0;padding:.5em .5em .25em;position:absolute;right:0;text-decoration:none;top:0;width:unset}.scroll-grid li .github-stars:focus{--outline-color:var(--color-on-secondary)}.scroll-grid li .github-stars:focus-visible{--outline-color:var(--color-on-secondary)}.scroll-grid li .github-stars:hover{text-decoration:underline;text-decoration-thickness:.08em}.scroll-grid li img{border:2px dashed var(--color-primary);border-radius:50%;-o-object-fit:contain;object-fit:contain;padding:.15rem;width:2.75rem}@media (any-hover:none) and (any-pointer:coarse){.scroll-grid{grid-auto-flow:column;grid-gap:1rem;grid-template-columns:unset;overflow-x:auto;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.scroll-grid li{scroll-snap-align:center;scroll-snap-stop:always;width:min(45ch,75vw)}}.callout{background-image:-webkit-gradient(linear,left top,left bottom,from(var(--color-primary)),to(#461c9c));background-image:linear-gradient(var(--color-primary),#461c9c);color:#fff}.callout a:not([class]){color:inherit}.callout h3 small{display:block;font-weight:400;margin-bottom:.5rem}.callout--wide .container{display:grid;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-bottom:2rem;padding-top:2rem;grid-gap:2rem}.callout--wide .container div{max-width:20ch}.callout--wide .container p{line-height:1.3;margin-top:1em}@media (min-width:40rem){.callout--wide .container{grid-auto-flow:column}}.event-list{display:grid;grid-gap:3rem;grid-template-columns:repeat(auto-fill,minmax(30ch,1fr))}.event-list li{--sidebar:10ch;--gap:1.5rem;border-left:2px dashed var(--color-primary);padding-left:1rem}.event-list li p{line-height:1.3;margin-top:.5em}.event-list li p strong{display:block;font-size:1rem;line-height:1.1}.event-list li a{font-size:1.15rem}.event-list li div:last-child{display:grid}.event-list--podcasts small{line-height:1.2;margin-top:.5rem}.event-list--podcasts small strong{display:block}.event-list li a,.scroll-grid li a{line-height:1.3;text-decoration:underline;text-decoration-thickness:.08em;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.event-list li a+a,.scroll-grid li a+a{margin-top:.5em}[role=note]{background-color:var(--color-secondary);border-left:2px dashed var(--color-on-secondary);color:var(--color-on-secondary);padding:.5rem 1rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}[role=note] a{background-color:var(--color-on-secondary);color:var(--color-secondary)}[role=note] a:not([class]){padding:0 .25em;white-space:nowrap}[role=note] a:not([class]):focus{--outline-color:var(--color-on-secondary);--outline-style:dashed}[role=note] a:not([class]):focus-visible{--outline-color:var(--color-on-secondary);--outline-style:dashed}[role=note] :first-child:not(p){margin-top:1rem}[role=note] :last-child:not(p){margin-bottom:1rem}code[class*=language-],pre[class*=language-]{background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1rem;line-height:1.5;overflow-wrap:normal;text-align:left;white-space:pre;word-spacing:normal;word-wrap:normal;color:var(--color-surface);-ms-hyphens:none;hyphens:none;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{border-radius:.3em;margin:2rem 0;max-width:calc(100vw - 2rem);overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:var(--color-surface-alt)}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#d4d0ab}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:var(--color-secondary)}.token.boolean,.token.number{color:var(--color-pink)}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:var(--color-surface)}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:var(--color-secondary)}.token.atrule,.token.attr-value,.token.function{color:var(--color-pink)}.token.keyword{color:var(--color-secondary)}.token.important,.token.regex{color:var(--color-yellow)}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}@media screen and (-ms-high-contrast:active){code[class*=language-],pre[class*=language-]{background:window;color:windowText}:not(pre)>code[class*=language-],pre[class*=language-]{background:window}.token.important{background:highlight;color:window;font-weight:400}.token.atrule,.token.attr-value,.token.function,.token.keyword,.token.operator,.token.selector{font-weight:700}.token.attr-value,.token.comment,.token.doctype,.token.function,.token.keyword,.token.operator,.token.property,.token.string{color:highlight}.token.attr-value,.token.url{font-weight:400}}