*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}:where(img,picture,video,canvas,svg){max-width:100%;display:block}:where(input,button,textarea,select){font:inherit}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--width:60rem;--text-width:40rem;--left-margin:2.5rem;--right-margin:1rem;--mono-font:ui-monospace,Menlo,Consolas,monospace;--text-font:-apple-system,system-ui,Input,Helvetica,sans-serif;--bg:#fff;--fg:#000000f2;--fg-faint:#777;--fg-light:#bfbfbf;--fg-code:#000;--bg-code:#f0f0f0;--link-hover:#005aff}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#181818;--fg:#eee;--fg-faint:#bbb;--fg-light:#595959;--fg-code:#ddd;--bg-code:#282828;--link-hover:#62b3ff}}.mascot{--width:200px;--color:tomato;--hover-color:coral;--eye-color:white;--pupil-color:black;width:var(--width);height:var(--width);background-color:var(--color);transform-style:preserve-3d;transform:translateZ(calc(var(--width)*.25))perspective(calc(var(--width)))rotateX(var(--y-angle,0deg))rotateY(var(--x-angle,0deg));will-change:transform;background-image:url(/favicon.ico);background-position:50% 65%;background-repeat:no-repeat;background-size:170%;grid-template-columns:1fr 1fr;place-items:center;display:grid}.mascot:hover{background-color:var(--hover-color)}.mascot>.eye{width:calc(var(--width)*.25);height:calc(var(--width)*.25);background-color:var(--eye-color);transform:rotate(var(--eye-angle,0deg));border-radius:50%}.mascot>.eye>.pupil{width:calc(var(--width)*.08);height:calc(var(--width)*.08);background-color:var(--pupil-color);top:calc(50% - (var(--width)*.04));left:calc(5px*var(--size));border-radius:50%;position:relative}h1{padding:.8rem 0 .5rem;font-size:1.4rem;font-weight:500}h2{padding-top:.75rem;font-size:1.2rem;font-weight:500}h3{padding-top:.75rem;font-size:1.1rem;font-weight:600}h4{margin-top:.8rem;font-size:1rem;font-weight:600}:where(h1,h2,h3,h4,h5) a{opacity:0;transition:opacity .3s}:where(h1,h2,h3,h4,h5) span:hover+a,:where(h1,h2,h3,h4,h5) a:hover{opacity:1}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}article p,footer p,aside p,pre,blockquote,article>ul{margin-top:.9rem}article header p{margin-top:0}a:link{color:var(--fg);text-underline-offset:.1rem;text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--fg-light)}a:visited{color:var(--fg);text-decoration-color:var(--fg-light)}a:hover{color:var(--link-hover);text-decoration-color:var(--link-hover)}a:after{vertical-align:super;font-size:.6rem}a[href*="//"]:not([href*=mattwidmann\.net]):after{content:" ↗"}a[href^=http\:]:after{content:" !"!important}a[href$=\.pdf]:after,a[href$=\.zip]:after,a[href$=\.gz]:after{content:" ↓"!important}sup{vertical-align:super;font-size:.8rem;line-height:0}blockquote{quotes:none;border-left:4px solid var(--q-border);border-radius:4px;padding-left:.5rem}picture,img{max-width:calc(100% - .5rem);height:auto;margin:auto;display:block}figure img{margin:0 auto}figcaption{text-align:center;color:var(--fg-figcaption);margin-top:1rem;font-size:.9rem}@media (width>=62.5rem){img[src*=\#left]{float:left;max-width:30%}img[src*=\#right]{float:right;max-width:30%}}video{margin-top:1rem}picture[data-modal]:hover{cursor:pointer}dialog[open]:has(img){background:0 0;border:none;outline:none;place-items:center;max-width:none;min-height:100vh;margin:auto;display:grid}dialog[open]:has(img)::backdrop{backdrop-filter:blur(4px);background:#000c}dialog[open]>img,dialog[open] figure{padding:2rem}hr{max-width:var(--width);border-top:1px solid #ccc;margin:16px 0}main ul li{margin-left:1rem;list-style-type:"–  "}article ul ul{margin:0}article ol{max-width:calc(var(--text-width) - 2rem);padding-left:2rem}body{background:var(--bg);color:var(--fg);line-height:1.45;font-family:var(--text-font);text-rendering:optimizeLegibility;font-variant-ligatures:common-ligatures;hanging-punctuation:first last}body>header nav,body>footer{max-width:var(--text-width);margin-left:var(--left-margin);margin-right:var(--right-margin)}main>article>:not(header),main>section>:not(header){max-width:var(--text-width)}main>article>:not(dialog),main>section>:not(article):not(dialog){margin-left:var(--left-margin);margin-right:var(--right-margin)}body>header{margin-left:var(--left-margin);margin-right:var(--right-margin);margin-top:var(--left-margin);margin-bottom:var(--left-margin);max-width:var(--text-width);justify-content:space-between;align-items:center;display:flex}body>header nav ul{padding:0}body>header nav li{margin-right:2rem;display:inline-block}body>header nav li:last-child{margin-right:0}body>header nav a:link{text-decoration:none}body>footer{max-width:500px;padding:25px 0;font-size:small}body>footer p{text-wrap:pretty;margin-bottom:7px}body>footer nav *{display:inline-block}body>footer nav a{padding:0 1px}body>footer svg{padding-left:3px;position:relative;top:3px}@media (width<=768px){body>footer{text-align:center;margin:auto}}code,kbd{font-family:var(--mono-face);font-size:90%}article header>nav,article aside{float:right;clear:right;margin-bottom:1rem;margin-right:calc(100vw - var(--width) - var(--left-margin) - .7rem);width:calc(var(--width) - var(--text-width) - var(--left-margin));font-size:90%}article header>nav{left:calc(var(--width) + var(--left-margin)*1.3);margin-right:0;position:fixed}article p.contents-heading{color:var(--fg-faint);text-transform:uppercase;font-size:85%}article nav ol{margin-bottom:0;padding-left:0;list-style-type:none}article nav ol ol{padding-left:1rem}article nav ol ol a{color:var(--fg-faint)!important}article aside dl{margin:1rem 0 0}article aside dt,article aside dd{padding-right:.2rem}article aside dt{float:left;clear:left}article aside dt:after{content:": "}article aside dt:not(:first-of-type),article aside dd:not(:first-of-type){padding-top:.5rem}article aside details.contents{display:none}article aside details.contents>:not(summary){padding-left:1rem}body{counter-reset:sidenote-counter}label.sidenote{counter-increment:sidenote-counter;font-size:.8rem}label.sidenote sup{user-select:none;font-size:.7rem}span.sidenote{float:right;clear:right;margin-right:calc(-100% + var(--width) - var(--text-width) - var(--left-margin)/4 + .7rem);width:calc(var(--width) - var(--text-width) - var(--left-margin));font-size:.9rem;position:relative}span.sidenote-num{display:inline-block;position:absolute}span.sidenote sup{margin-left:-.7rem;font-size:.7rem}aside.footnotes{display:none}label.sidenote sup:after,span.sidenote sup:after{content:counter(sidenote-counter)"."}span.sidenote picture{margin:.5rem 0}input.sidenote-toggle{display:none}label.sidenote:hover sup,label.sidenote:hover+input.sidenote-toggle+span.sidenote sup{color:var(--link-hover);text-decoration:underline}@media (width<=82.5rem){article header>nav{position:initial;margin-right:calc(100vw - var(--width) - var(--left-margin) - .7rem)}}@media (width<=62.5rem){article header>nav,span.sidenote{display:none}article aside{float:none;color:var(--fg-code);background-color:var(--bg-code);width:auto;max-width:calc(var(--text-width) - 1rem);margin:1rem 0 0;padding:.5rem}article aside details.contents{margin-top:.5rem;display:block}article aside dl{margin:0}input.sidenote-toggle:checked+span.sidenote{float:left;clear:both;background-color:var(--code-bg);width:calc(95% - .25rem);margin:.25rem 0;padding:.25rem 1rem;display:block;position:relative;left:.25rem}label.sidenote{cursor:pointer;color:var(--a)}label.sidenote:hover{text-decoration:underline}}ul.blog-posts{padding-top:1rem;list-style-type:none}ul.blog-posts li{margin:0;display:flex}ul.blog-posts li span{flex:0 0 130px}.now-entry{justify-content:space-between;align-items:baseline;display:flex}.now-entry>time{color:var(--fg-faint)}