@charset "UTF-8";*:where(:not(html,iframe,canvas,img,svg,video,audio):not(svg *,symbol *)){all:unset;display:revert}*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}a,button{cursor:revert}ol,ul,menu,summary{list-style:none}ol{counter-reset:revert}img{max-inline-size:100%;max-block-size:100%}table{border-collapse:collapse}input,textarea{-webkit-user-select:auto}textarea{white-space:revert}meter{-webkit-appearance:revert;appearance:revert}:where(pre){all:revert;box-sizing:border-box}::placeholder{color:unset}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable=true]){-webkit-user-drag:element}:where(dialog:modal){all:revert;box-sizing:border-box}::-webkit-details-marker{display:none}:root{--col-1: hsl(60deg, 0%, 13%);--col-2: hsl(60deg, 100%, 97%);--col-3: hsl(0deg 0% 46%);--col-4: hsl(0deg 0% 44.32%);--col-5: hsl(206 71% 40% / 1);--col-6: hsl(60deg, 100%, 99%);--col-7: hsl(60deg, 60%, 85%);--col-8: hsl(227, 28.2%, 25.7%);--col-9: f9f9f9}html{--col-fg: var(--col-1);--col-bg: var(--col-2);--col-shadow: var(--col-3);--col-quote: var(--col-4);--col-card: var(--col-6);--col-card-shadow: var(--col-7);--col-card-hover: var(--col-9);--col-note: var(--col-5)}@media (prefers-color-scheme: dark){html{--col-fg: var(--col-2);--col-bg: var(--col-1);--col-shadow: var(--col-3);--col-quote: var(--col-4);--col-card: var(--col-8);--col-card-shadow: transparent;--col-card-hover: var(--col-1)}img{background-color:var(--col-fg);border-radius:5px}}body{font-family:Nunito,sans-serif;font-weight:300;background-color:var(--col-bg);color:var(--col-fg);counter-reset:sidenote-counter;line-height:1;accent-color:var(--col-5)}:root{--list-margin-left: 2em;--blockquote-border-width: .25em}ul{list-style-type:circle;margin-left:var(--list-margin-left)}ol li{list-style-type:decimal;margin-left:var(--list-margin-left);padding-left:1em}del{text-decoration-line:line-through}em{font-style:italic}strong{font-weight:700}:root{--shadow-elevation-low: .6px .4px .5px hsl(from var(--col-shadow) h s l / .86), .8px .6px .8px -2.5px hsl(from var(--col-shadow) h s l / .58), 2.5px 1.9px 2.4px -5px hsl(from var(--col-shadow) h s l / .29);--shadow-elevation-medium: .6px .4px .5px hsl(from var(--col-shadow) h s l / .73), .7px .6px .7px -1.2px hsl(from var(--col-shadow) h s l / .58), 2px 1.5px 1.9px -2.5px hsl(from var(--col-shadow) h s l / .44), 5.6px 4.2px 5.3px -3.7px hsl(from var(--col-shadow) h s l / .29), 12.4px 9.4px 11.7px -5px hsl(from var(--col-shadow) h s l / .15);--shadow-elevation-high: .6px .4px .5px hsl(from var(--col-shadow) h s l / .67), .6px .5px .6px -.6px hsl(from var(--col-shadow) h s l / .61), 1.3px 1px 1.2px -1.1px hsl(from var(--col-shadow) h s l / .54), 3.1px 2.3px 2.9px -1.7px hsl(from var(--col-shadow) h s l / .47), 6.6px 5px 6.2px -2.2px hsl(from var(--col-shadow) h s l / .4), 12.3px 9.3px 11.6px -2.8px hsl(from var(--col-shadow) h s l / .34), 20.9px 15.8px 19.7px -3.3px hsl(from var(--col-shadow) h s l / .27), 32.8px 24.8px 30.8px -3.9px hsl(from var(--col-shadow) h s l / .2), 48.7px 36.8px 45.8px -4.4px hsl(from var(--col-shadow) h s l / .13), 69.1px 52.2px 65px -5px hsl(from var(--col-shadow) h s l / .07)}h1,h2,h3,h4,h5,h6{font-family:Roboto Slab,serif}h1{font-weight:600;font-size:2.2rem;line-height:1.4;margin-bottom:1.5rem;margin-top:4rem}h2{font-size:1.8rem;margin-bottom:1.4rem;margin-top:2.1rem;line-height:1.4}h3{font-size:1.7rem;line-height:1.4}.blog-article>hr{display:block;height:1px;width:55%;border:0;border-top:1px solid #ccc;padding:0;margin:1em auto}a:any-link{text-decoration:underline;cursor:pointer}p,ol,ul{font-size:1.2rem;line-height:1.8rem}blockquote{font-size:1.4rem;border-left-style:solid;border-color:var(--col-quote);border-left-width:var(--blockquote-border-width);padding-left:1.6em;--blockquote-padding: 1em;padding-top:var(--blockquote-padding);padding-bottom:var(--blockquote-padding)}blockquote p{margin-top:0;margin-bottom:0}blockquote footer{width:55%;font-size:1.1rem;text-align:right}.admonition{border-color:var(--col-note)}.admonition-header{font-weight:700;color:var(--col-note);display:flex;gap:.5em;align-items:center;margin-bottom:.5em}li+li{margin-top:.25rem}figure{padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;max-width:55%;-webkit-margin-start:0;-webkit-margin-end:0;margin:0 0 3em}figcaption{float:right;clear:right;margin-top:0;margin-bottom:0;font-size:1.1rem;line-height:1.6;vertical-align:baseline;position:relative;max-width:40%}img{max-width:100%}:root{--max-content-width: min(60em, calc(100% - 2 * var(--max-content-gutter)));--max-content-gutter: 1rem}.content,.header{max-width:var(--max-content-width);margin-left:auto;margin-right:auto}.header-divider{border-bottom-style:solid;border-bottom-width:2px}.header .links a{text-transform:uppercase}.header a:link,.header a:visited{text-decoration:none}.header a:hover,.header a:active{text-decoration:underline}.header .social a{text-decoration:none}.header .nav{margin:auto;padding-top:.5em;padding-bottom:.5em;font-size:max(min(1.8rem,5vw),1rem)}.header .nav .nav-icon{display:inline-block;width:1em;height:1em}.header .nav .social{float:right}.intro{text-align:center;max-width:30em;margin-left:auto;margin-right:auto;margin-top:8vh;margin-bottom:8vh}.intro p+p{margin-top:1em}.intro-divider{height:1px;max-width:55%;border-top:1px solid #ccc;margin-left:auto;margin-right:auto}.blog{margin:8vh auto}.blog h2{text-align:center}.blog-container{--min-card-width: min(400px, 100%);display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--min-card-width),1fr));--blog-container-grid-gap: 1em;gap:var(--blog-container-grid-gap)}.blog-article>p,.blog-article>blockquote{overflow-wrap:break-word}.blog-article>p:has(code.math-inline){overflow-y:hidden}.blog-article>*{margin-top:1.6rem}.blog-article>p.math-equation-paragraph{text-align:center;padding-top:1em;padding-bottom:1em}.blog-article>p>img:first-child:last-child{max-height:30em;display:block;margin-left:auto;margin-right:auto}.blog-article>p:has(img:first-child:last-child)+p:has(>em:first-child:last-child){text-align:center;font-size:1em}footer{text-align:center;margin:30px 0}footer a:link,footer a:visited{text-decoration:none}footer a:active,footer a:hover{text-decoration:underline}.card{--shadow-baseline: var(--shadow-elevation-low);box-shadow:var(--shadow-baseline);transition:.3s;font-size:.8rem;border-radius:.5em;background-color:var(--col-card);border:1px solid var(--col-card-shadow);height:100%}@media (max-width: 600px){.blog-container{--blog-container-grid-gap: 0}.card{box-shadow:none;margin-left:calc(-1 * var(--max-content-gutter));margin-right:calc(-1 * var(--max-content-gutter));border-top:1px solid #ccc;border-bottom:1px solid #ccc;border-radius:0}.card:hover{background-color:var(--col-card-hover)}canvas{aspect-ratio:1}}.card h3{text-align:center;margin-top:1.5rem}.card:hover{--shadow-baseline: var(--shadow-elevation-medium);cursor:pointer}.card-container{padding:1em}.card-container .teaser{padding:0 2em;margin-top:2em;margin-bottom:2em}.card-container h3.card-title{--line-height: 1.4;line-height:var(--line-height);min-height:calc(3 * var(--line-height) * 1em)}code{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin:0;border-radius:5px;position:relative}pre code{font-size:1em;line-height:1.5em;padding-top:1em;padding-bottom:1em;display:inline-block;min-width:100%}.line{display:inline-block;min-width:100%;padding-left:1em;padding-right:1em}.highlight{background:#ffffff26}.code-wrapper{position:relative;overflow-x:scroll}.code-wrapper>.clipboard-copy{--clipboard-copy-fill-color: transparent;fill:var(--clipboard-copy-fill-color)}.code-wrapper:hover>.clipboard-copy{--clipboard-copy-fill-color: white}.code-wrapper>.clipboard-copy{--clipboard-copy-outline-color: transparent;--clipboard-copy-extra-transition: background 1.5s;transition:fill .3s,var(--clipboard-copy-extra-transition);position:absolute;top:0;right:0;margin:.5em;padding:.5em;border:1px solid var(--clipboard-copy-outline-color);border-radius:5px;cursor:pointer}.code-wrapper>.clipboard-copy:hover{--clipboard-copy-outline-color: white}.code-wrapper>.clipboard-copy:active{--clipboard-copy-extra-transition: background 0;background:var(--clipboard-copy-fill-color)}.bluesky-embed{margin-left:auto;margin-right:auto}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
