@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/atkinson-hyperlegible-next-latin-ext-400-normal.BalHKn7d.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-next-latin-ext-400-normal.qxMiU51n.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/atkinson-hyperlegible-next-latin-400-normal.FfmJh7DR.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-next-latin-400-normal.DPp7N0cD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/atkinson-hyperlegible-next-latin-ext-400-italic.ChwMQj-S.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-next-latin-ext-400-italic.B2AfEDP4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/atkinson-hyperlegible-next-latin-400-italic.DZBmTazM.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-next-latin-400-italic.C-uEjDrs.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/atkinson-hyperlegible-next-latin-ext-700-normal.CBw-mJf_.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-next-latin-ext-700-normal.292QVhS1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/atkinson-hyperlegible-next-latin-700-normal.Dpiyiu63.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-next-latin-700-normal.C2qZD_Q9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:italic;font-display:swap;font-weight:700;src:url(/_astro/atkinson-hyperlegible-next-latin-ext-700-italic.CuOU2dIQ.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-next-latin-ext-700-italic.BcQr1zsA.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:italic;font-display:swap;font-weight:700;src:url(/_astro/atkinson-hyperlegible-next-latin-700-italic.ByvmSGPy.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-next-latin-700-italic.DbbrSpud.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/atkinson-hyperlegible-mono-latin-ext-400-normal.CpVFOiMk.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-mono-latin-ext-400-normal.ITMuFrSK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/atkinson-hyperlegible-mono-latin-400-normal.CmMGer93.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-mono-latin-400-normal.Cmjm2dBj.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/atkinson-hyperlegible-mono-latin-ext-700-normal.Cb4hxZGu.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-mono-latin-ext-700-normal.Db6cZPB4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/atkinson-hyperlegible-mono-latin-700-normal.BhOtGXDr.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-mono-latin-700-normal.BQ8cw3oD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#193549;--bar:#122738;--fg:#e1efff;--heading:#fff;--link:#ffc600;--muted:#b6c6d6;--cyan:#9effff;--orange:#ff9d00;--blue:#08f;--measure:68ch;--mono:"Atkinson Hyperlegible Mono", ui-monospace, Menlo, monospace;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-kerning:normal;font-synthesis:none;hanging-punctuation:first last;font-family:Atkinson Hyperlegible Next,system-ui,sans-serif;font-size:100%;line-height:1.65}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--fg);overflow-wrap:break-word;margin:0}::selection{background:var(--link);color:var(--bar)}:target,h2[id],h3[id]{scroll-margin-top:1.5rem}.wrap{max-width:var(--measure);margin-inline:auto;padding:0 1rem 4rem}h1,h2,h3{color:var(--heading);text-wrap:balance;margin:2rem 0 .5rem;line-height:1.25}h3{margin-top:1.5rem}h1+h2,h2+h3,h1+p{margin-top:.5rem}h1{margin-top:0;margin-bottom:.75rem;font-size:1.75rem}h2{font-size:1.35rem}h3{font-size:1.15rem}p,ul,ol,pre,blockquote{margin:0 0 1rem}p,li{text-wrap:pretty}ul,ol{padding-left:1.4em}main :is(ul,ol):not(.posts,.made,.toc ul)>li+li{margin-top:.35rem}li>ul,li>ol{margin:.35rem 0 0}strong{color:var(--heading)}abbr[title]{text-decoration:underline dotted}h2,h3{letter-spacing:-.005em}hr{border:0;border-top:1px solid var(--blue);margin:2.5rem 0}blockquote{border-left:3px solid var(--blue);color:var(--muted);margin-left:0;padding-left:1rem}a{color:var(--link);text-underline-offset:.18em;text-decoration:underline 1px}a:hover{text-decoration-thickness:2px}a[href^=http]:not([href*=lilius\.io]){text-decoration-style:double}:focus-visible{outline:2px solid var(--link);outline-offset:3px}main:focus{outline:none}code,pre{font-family:var(--mono);font-size:.9em}code{color:var(--cyan)}:not(pre)>code{background:var(--bar);border-radius:3px;padding:.1em .3em}pre code{color:var(--fg)}pre{background:var(--bar);border-radius:4px;padding:1rem;overflow-x:auto}img{max-width:100%;height:auto}.skip-link{background:var(--fg);color:var(--bg);padding:.25rem .75rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.muted{color:var(--muted)}header.site{background:var(--bar);border-bottom:1px solid #0d1f2d;margin-bottom:2rem}header.site .inner{max-width:var(--measure);margin-inline:auto;padding:.75rem 1rem}header.site p,header.site nav{font-family:var(--mono);font-size:.875rem}header.site p{flex-wrap:wrap;align-items:baseline;margin:0;display:flex}header.site a{text-decoration:none}header.site a:hover{text-decoration:underline}header.site .home{color:var(--link)}header.site .prompt{color:var(--orange)}header.site .line{white-space:nowrap;min-width:0;max-width:100%;margin-left:1ch;display:flex}header.site .line .cursor{flex:none}@media (width<=30rem){header.site .line{margin-left:0}header.site .prompt{margin-right:1ch}}header.site .typed{text-overflow:ellipsis;min-width:0;color:var(--fg);animation:type min(calc(var(--n) * 55ms), 1.2s) steps(var(--n), end) .25s backwards;display:block;overflow:hidden}header.site .cursor{vertical-align:text-bottom;background:var(--fg);opacity:.85;width:.6em;height:1.15em;animation:hide calc(.25s + min(calc(var(--n) * 55ms), 1.2s)) step-end;margin-left:2px;display:inline-block}@keyframes type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes hide{0%,to{opacity:0}}header.site nav ul{flex-wrap:wrap;gap:0 2ch;margin:.15rem 0 0;padding:0;list-style:none;display:flex}header.site nav a{color:var(--fg)}header.site nav a.dir{color:var(--cyan)}header.site nav a[aria-current=page]{text-underline-offset:.2em;text-decoration:underline 2px}.posts{padding-left:0;list-style:none}.posts li{grid-template-columns:11ch 1fr;gap:1ch;display:grid}.posts time{color:var(--muted);font-variant-numeric:tabular-nums}@media (width<=30rem){.posts li{grid-template-columns:1fr;gap:0;margin-bottom:.75rem}}footer.site{color:var(--muted);margin-top:4rem;font-size:.9rem}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.cv h3{margin-bottom:.15rem}.cv h3+p{color:var(--muted);margin-bottom:.6rem}.made{padding:0;list-style:none}.made li{margin-bottom:1.75rem}.made h2{margin:0 0 .25rem;font-size:1.15rem}.made p{margin:0 0 .25rem}.muted a{color:var(--link)}.gallery{flex-wrap:wrap;gap:.75rem;margin:1.25rem 0;padding:0;list-style:none;display:flex}.gallery li.open{flex-basis:100%}.gallery button{cursor:zoom-in;background:0 0;border:0;border-radius:6px;padding:0;display:block}.gallery li.open button{cursor:zoom-out;width:100%}.gallery img{border:1px solid var(--bar);border-radius:6px;width:7.5rem;height:auto;display:block}.gallery li.open img{width:100%}.gallery button:hover img,.gallery button:focus-visible img{outline:2px solid var(--link);outline-offset:2px}.post-body img{border-radius:6px;width:100%;height:auto;margin:1.5rem 0 .5rem;display:block}.post-body img+em,.post-body p:has(>img)+p>em:only-child{color:var(--muted)}.post-body .table-wrap{margin:1rem 0 1.5rem;overflow-x:auto}.post-body .table-wrap:focus-visible{outline:2px solid var(--link);outline-offset:2px}.post-body table{border-collapse:collapse;width:100%;font-size:1rem;line-height:1.45}.post-body th,.post-body td{text-align:left;vertical-align:top;border-bottom:1px solid #2a4a63;padding:.6rem 1rem .6rem 0}.post-body thead th{color:var(--heading);border-bottom:2px solid var(--muted);white-space:nowrap}.post-body tbody th{color:var(--heading);font-weight:700}.post-body td:last-child,.post-body th:last-child{padding-right:0}.post-body td:last-child{font-variant-numeric:tabular-nums}.post-body blockquote p{margin:0}.post-body figure.diagram{margin:1.5rem 0;overflow-x:auto}.post-body figure.diagram svg{max-width:100%;height:auto;margin-inline:auto;display:block}.post-body pre:has(>code.language-mermaid){color:var(--muted);min-height:6rem}.posts li{margin-bottom:1rem}.posts .excerpt{color:var(--muted);margin:.15rem 0 0}.section-toggle{all:unset;box-sizing:border-box;cursor:pointer;width:100%;color:inherit;font:inherit;align-items:baseline;gap:.5ch;display:flex}.section-toggle:before{content:"▾" / "";width:1ch;color:var(--muted);flex:none;font-size:.8em}.section-toggle[aria-expanded=false]:before{content:"▸" / ""}.section-toggle:hover:before{color:var(--link)}.section-toggle:focus-visible{outline:2px solid var(--link);outline-offset:4px;border-radius:2px}.section-body[hidden]{display:none}.post-body h2:has(.section-toggle){align-items:baseline;gap:.75ch;display:flex}.post-body h2 .section-toggle{flex:1;width:auto}.heading-anchor{font-family:var(--mono);color:var(--muted);opacity:0;font-size:.8em;font-weight:400;text-decoration:none;transition:opacity .15s}.post-body h2:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}@media (hover:none){.heading-anchor{opacity:.6}}.heading-anchor:hover{color:var(--link)}.toc{font-family:var(--mono);background:var(--bar);border-radius:6px;margin:0 0 2rem;padding:.75rem 1rem;font-size:.875rem}.toc ul.toc-list,.toc ul{flex-wrap:wrap;gap:.25rem 2ch;margin:0;padding:0;list-style:none;display:flex}.toc a{color:var(--cyan);text-decoration:none}.toc a:hover,.toc a:focus-visible{text-decoration:underline}.progress{display:none}@supports (animation-timeline:scroll()){.progress{z-index:10;background:var(--link);transform-origin:0;height:3px;animation-name:read-progress;animation-timing-function:linear;animation-fill-mode:both;display:block;position:fixed;inset:0 0 auto;transform:scaleX(0)}body>.progress{animation-timeline:scroll(root)}@keyframes read-progress{to{transform:scaleX(1)}}}@view-transition{navigation:auto}header.site{view-transition-name:site-header}::view-transition-old(root),::view-transition-new(root){animation-duration:.16s}.posts .meta{font-size:.875rem}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.heading-anchor{transition:none}}
