/*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize */
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;tab-size:4;font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;line-height:1.15}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentColor}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}:root{--textcolor:#212121;--linkcolor:#6c6c6c;--backgroundcolor:#fcfcfc;--hovercolor:#e2e2e2;--cardbackgroundcolor:#efefef;--logocolor:#000;--twittercolor:#1da1f2;--mastodoncolor:#6364ff;--ubcolor:#80ba26;--githubcolor:#4078c0;--cvgraphcolor:#000;--mixblendmode:multiply;--logoonecolor:#0ff;--logotwocolor:#f0f;--logothreecolor:#ff0;--logosize:124px}@media only screen and (prefers-color-scheme:dark){:root{--textcolor:#e0e0e0;--linkcolor:#9c9c9c;--backgroundcolor:#121212;--hovercolor:#313131;--cardbackgroundcolor:#272727;--logocolor:#fff;--cvgraphcolor:#fff;--mixblendmode:screen;--logoonecolor:red;--logotwocolor:#0f0;--logothreecolor:#00f}}html{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}body{color:var(--textcolor);background-color:var(--backgroundcolor);font-size:1.2em;font-weight:400;line-height:1.5}header{grid-area:header}nav{grid-area:nav;justify-content:right;display:flex}main{flex-direction:column;grid-area:main;display:flex}.paw-checkbox{display:none}.mew{z-index:1001;width:428px;max-width:80%;height:auto;transition:bottom .3s ease-in-out;position:fixed;bottom:-250px;left:50%;transform:translate(-50%)}.mew img{object-fit:cover;border-radius:8px;width:100%;height:100%;box-shadow:0 0 10px #0003}.paw-checkbox:checked~.mew{bottom:48px}.paw{cursor:pointer;user-select:none}footer{grid-area:footer;justify-content:space-between;align-items:flex-end;font-size:.8em;display:flex}.desktop{display:none}.mobile{display:inline}.logo{height:var(--logosize);width:var(--logosize);fill:var(--logocolor);display:block}.logo.one,.logo.three{display:none}@media (hover:hover) and (pointer:fine){.logowrapper{isolation:isolate;position:relative}.logo{mix-blend-mode:var(--mixblendmode);position:absolute}.logo.one,.logo.three{transition:transform .5s cubic-bezier(.4,0,.2,1);display:block}.logo.one{fill:var(--logoonecolor);z-index:1}.logo.two{fill:var(--logotwocolor);z-index:2}.logo.three{fill:var(--logothreecolor);z-index:3}.logowrapper:hover .logo.one{transform:translate(calc(var(--logosize) * -.07), calc(var(--logosize) * .07))}.logowrapper:hover .logo.three{transform:translate(calc(var(--logosize) * .07), calc(var(--logosize) * -.07))}}.linklist{padding:unset;margin:unset;list-style-type:none}.linklist li{display:flex}.linklist a{background-image:linear-gradient(var(--hovercolor) 0 0), linear-gradient(var(--hovercolor) 0 0), linear-gradient(var(--hovercolor) 0 0), linear-gradient(var(--hovercolor) 0 0);background-position:calc(105% + 20px) 100%,0 -36px,-20px 0,100% calc(105% + 36px);background-repeat:no-repeat;background-size:20px 8px,8px 36px;padding:15px 18px;line-height:1;transition:background-position .3s}.linklist a:is(:focus,.selected){background-position:0 100%,0 100%,100% 0,100% 0}.linklist a:focus .twitter path{fill:var(--twittercolor)}.linklist a:focus .library path{fill:var(--ubcolor)}.linklist a:focus .mastodon path{fill:var(--mastodoncolor)}.linklist a:focus .github path{fill:var(--githubcolor)}@media (hover:hover){.linklist a:hover{background-position:0 100%,0 100%,100% 0,100% 0}.topnav:has(a:hover) a:not(:hover){background-position:calc(105% + 20px) 100%,0 -36px,-20px 0,100% calc(105% + 36px)}}a{color:var(--linkcolor);text-decoration:none}p>a{text-decoration:underline}a.selected{color:var(--textcolor)}.topnav{grid-template-columns:repeat(2,auto);margin-top:-13px;margin-right:-13px;display:grid}.topnav li:nth-child(odd){justify-self:start}.topnav li:nth-child(2n){justify-self:end}h1,h2{margin:10px 0;font-weight:400}.inline{display:inline-block}.inline:not(:last-child):after{content:"│";margin:0 .25em}.bird{width:153px;height:157px}.wrapper{grid-template:"header nav""main main"1fr"footer footer"/auto 1fr;gap:20px;width:90%;max-width:1280px;min-height:100dvh;margin:0 auto;padding:20px 0;display:grid}.justify{text-align:justify}.nobullets{padding-left:0;list-style-type:none}@media (width>=601px){:root{--logosize:110px}.wrapper{width:85%}.desktop{display:inline}.mobile{display:none}.topnav{grid-template-columns:repeat(3,auto);margin-top:0;margin-right:0}.topnav li:first-child,.topnav li:nth-child(4){justify-self:start}.topnav li:nth-child(2),.topnav li:nth-child(5){justify-self:center}.topnav li:nth-child(3),.topnav li:nth-child(6){justify-self:end}nav{align-items:center}}@media (width>=993px){:root{--logosize:64px}.wrapper{width:70%}.topnav{grid-template-columns:repeat(6,auto)}}
