:root{--tx:#1e1e1e;--bg:#fff;--bd:#ddd;--d-gray:#393939;--fun:#4caf50;--mad:red;--mostest-muted-color:#fbfbfb;--most-muted-color:#eee;--more-muted-color:#ebebeb;--tmp-muted-between:#bfbfbf;--muted-color:#888;--less-muted-color:#555;--least-muted-color:#333;--leastest-muted-color:#222}@media(prefers-color-scheme:dark){:root{--d-gray:#a3a3a3;--tx:#fff;--bg:#090909;--bd:#444;--mostest-muted-color:#0e0e0e;--most-muted-color:#212121;--more-muted-color:#353535;--muted-color:rgb(177, 168, 157);--less-muted-color:#858585;--least-muted-color:#ddd;--leastest-muted-color:#fff}}@font-face{font-display:swap;font-family:alegreya;font-style:normal;font-weight:400;src:url(/fonts/alegreya/alegreya-v38-greek_latin_latin-ext-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya;font-style:italic;font-weight:400;src:url(/fonts/alegreya/alegreya-v38-greek_latin_latin-ext-italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya;font-style:normal;font-weight:500;src:url(/fonts/alegreya/alegreya-v38-greek_latin_latin-ext-500.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya;font-style:italic;font-weight:500;src:url(/fonts/alegreya/alegreya-v38-greek_latin_latin-ext-500italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya;font-style:normal;font-weight:600;src:url(/fonts/alegreya/alegreya-v38-greek_latin_latin-ext-600.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya;font-style:italic;font-weight:600;src:url(/fonts/alegreya/alegreya-v38-greek_latin_latin-ext-600italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya;font-style:normal;font-weight:700;src:url(/fonts/alegreya/alegreya-v38-greek_latin_latin-ext-700.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya;font-style:italic;font-weight:700;src:url(/fonts/alegreya/alegreya-v38-greek_latin_latin-ext-700italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya sans;font-style:normal;font-weight:400;src:url(/fonts/alegreya-sans/alegreya-sans-v25-greek_latin_latin-ext-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya sans;font-style:normal;font-weight:500;src:url(/fonts/alegreya-sans/alegreya-sans-v25-greek_latin_latin-ext-500.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya sans;font-style:normal;font-weight:700;src:url(/fonts/alegreya-sans/alegreya-sans-v25-greek_latin_latin-ext-700.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya sans sc;font-style:normal;font-weight:300;src:url(/fonts/alegreya-sans-sc/alegreya-sans-sc-v23-latin_latin-ext-300.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya sans sc;font-style:normal;font-weight:400;src:url(/fonts/alegreya-sans-sc/alegreya-sans-sc-v23-latin_latin-ext-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya sans sc;font-style:normal;font-weight:500;src:url(/fonts/alegreya-sans-sc/alegreya-sans-sc-v23-latin_latin-ext-500.woff2)format("woff2")}@font-face{font-display:swap;font-family:alegreya sans sc;font-style:normal;font-weight:700;src:url(/fonts/alegreya-sans-sc/alegreya-sans-sc-v23-latin_latin-ext-700.woff2)format("woff2")}@font-face{font-family:jetbrains mono;src:url(/fonts/jetbrains-mono/webfonts/JetBrainsMono-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:jetbrains mono;src:url(/fonts/jetbrains-mono/webfonts/JetBrainsMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:jetbrains mono;src:url(/fonts/jetbrains-mono/webfonts/JetBrainsMono-ExtraBoldItalic.woff2)format("woff2");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:jetbrains mono;src:url(/fonts/jetbrains-mono/webfonts/JetBrainsMono-ExtraBold.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:jetbrains mono;src:url(/fonts/jetbrains-mono/webfonts/JetBrainsMono-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:jetbrains mono;src:url(/fonts/jetbrains-mono/webfonts/JetBrainsMono-MediumItalic.woff2)format("woff2");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:jetbrains mono;src:url(/fonts/jetbrains-mono/webfonts/JetBrainsMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:jetbrains mono;src:url(/fonts/jetbrains-mono/webfonts/JetBrainsMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-display:swap;font-family:cooper;font-style:normal;font-weight:400;src:url(/fonts/cooper/Cooper-Regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:normal;font-weight:400 900;src:url(/fonts/cooper/Cooper-Variable.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:normal;font-weight:500;src:url(/fonts/cooper/Cooper-Medium.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:normal;font-weight:600;src:url(/fonts/cooper/Cooper-SemiBold.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:normal;font-weight:700;src:url(/fonts/cooper/Cooper-Bold.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:normal;font-weight:800;src:url(/fonts/cooper/Cooper-ExtraBold.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:normal;font-weight:900;src:url(/fonts/cooper/Cooper-Black.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:italic;font-weight:400;src:url(/fonts/cooper/Cooper-RegularItalic.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:italic;font-weight:400 900;src:url(/fonts/cooper/Cooper-Italic-Variable.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:italic;font-weight:500;src:url(/fonts/cooper/Cooper-MediumItalic.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:italic;font-weight:600;src:url(/fonts/cooper/Cooper-SemiBoldItalic.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:italic;font-weight:700;src:url(/fonts/cooper/Cooper-BoldItalic.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:italic;font-weight:800;src:url(/fonts/cooper/Cooper-ExtraBoldItalic.woff2)format("woff2")}@font-face{font-display:swap;font-family:cooper;font-style:italic;font-weight:900;src:url(/fonts/cooper/Cooper-BlackItalic.woff2)format("woff2")}*{box-sizing:border-box;margin:0;padding:0}html{text-rendering:optimizeLegibility;scrollbar-gutter:stable both-edges;font-size-adjust:ex-height .51}:root{color-scheme:light dark;font-size:112%;font-variant-emoji:text}body{font-family:Alegreya,Palatino Linotype,Palatino LT STD,bitstream charter,charter,Georgia,serif;color:var(--tx);background-color:var(--bg);padding-inline:5% !important;box-sizing:content-box;max-width:33.92855rem;margin-inline:auto}h1,h2,h3{font-weight:400;margin-block:1.5rem;font-family:cooper,Alegreya Sans,sans-serif;padding:0}h1{font-size:1.6rem;line-height:1;font-weight:645;color:var(--leastest-muted-color)}h2{font-size:1.3rem;font-weight:640;color:var(--leastest-muted-color)}h3{font-size:1.1rem;font-family:Alegreya Sans SC,Alegreya Sans,sans-serif;text-transform:lowercase}h4,h5,h6{background:red}a[href]{color:inherit;text-decoration:underline var(--muted-color)}a[href]:hover{text-decoration:underline var(--tx)}a[inert]{color:var(--muted-color) !important}time{font-family:Alegreya Sans SC,Alegreya Sans,sans-serif;text-transform:lowercase;color:var(--muted-color);letter-spacing:.02rem}ul{list-style:circle}strong{font-weight:500}main ul,main ol{padding-left:1.5rem;margin-block:.5rem;line-height:1.6}main>ol li,main>ul li{padding-left:1rem;padding-block:.2rem;font-size:.98rem}main li ul{list-style-type:square}main>*{margin-block:.8rem}main{line-height:1.75}main>p{font-size:1rem;hyphens:auto}main>picture{display:block}hr{border-bottom:none !important;margin-bottom:1.75rem;background-color:unset !important;border:1px solid var(--more-muted-color)}img,figure,video,audio{max-width:100%}h1#home-heading{font-weight:770;opacity:.85}.title-box{flex-wrap:wrap;margin-block:2rem;margin-bottom:2.5em}.title-box h1{margin-block:0;line-height:1}.title-box time{color:var(--less-muted-color);line-height:1}.title-box time::before{font-family:cooper,Alegreya Sans,sans-serif;content:"❧";opacity:.5;padding-right:.3ch;font-size:.8em}.title-box:has(+nav,+blockquote){margin-bottom:0}@media(max-width:33.92855rem){.title-box{margin-block:unset}.title-box time{line-height:unset;text-align:unset;letter-spacing:unset}}.sans{font-family:Alegreya Sans,sans-serif}.sans-sc{font-family:Alegreya Sans SC,Alegreya Sans,sans-serif;text-transform:lowercase}.smcp{font-family:alegreya sc,Alegreya,Palatino Linotype,Palatino LT STD,bitstream charter,charter,Georgia,serif;letter-spacing:.02rem;text-transform:lowercase}.svgIcon{height:1em;vertical-align:middle}nav ul{display:flex;flex-wrap:wrap;column-gap:12px;list-style-type:none;padding:0;margin:0}nav ul a:hover{text-decoration-color:inherit}nav ul>li{padding:0}header{display:flex;margin-block:1.1rem;justify-content:space-between;align-items:baseline;font-size:.95rem;column-gap:1em;flex-wrap:wrap}header>a[href]{font-weight:500;font-size:1.38rem;text-decoration:none}nav a[href]{text-decoration:none}header a[href]{text-decoration:underline 1px var(--most-muted-color);font-weight:500;color:inherit}nav#TableOfContents::before{content:"Table of Contents";text-transform:lowercase;font-family:Alegreya Sans SC,Alegreya Sans,sans-serif;color:var(--less-muted-color)}nav#TableOfContents{font-family:Alegreya Sans,sans-serif}nav#TableOfContents ul{color:var(--less-muted-color);font-size:.9rem;line-height:1.1;padding-left:3ch;list-style:square;display:flex;flex-direction:column}nav#TableOfContents ul li{padding-left:1ch}nav#TableOfContents>ul>li>ul{list-style:disc}nav#TableOfContents>ul>li>ul>li>ul{list-style:circle}p img:only-child{display:block;margin:0 auto}img{box-sizing:border-box;max-width:100%;height:auto}img.center,figure.center{display:block;margin-inline:auto}img.left,figure.left{float:left;margin-left:0;padding-right:10px}img.right,figure.right{float:right;margin-right:0;padding-left:10px}img.big,figure.big{max-width:min(80%,33.92855rem)}img.medium,figure.medium{max-width:min(70%,33.92855rem)}img.small,figure.small{max-width:min(50%,33.92855rem)}figure img{display:block;margin:0 auto}figure{margin:0 auto}figure+figure{margin-top:5px}figure figcaption{text-align:center;font-size:.8rem;margin-block:.25lh}@media(prefers-color-scheme:dark){figure.invert-dark img{filter:invert(100%)}}table{margin:0 auto;width:100%;border-spacing:0;border-radius:5px;margin-bottom:1.75rem}thead th{font-weight:unset;border-collapse:inherit;border-bottom:1px solid var(--muted-color)}tbody tr:last-child td:first-child{border-end-start-radius:5px}tbody tr:last-child td:last-child{border-end-end-radius:5px}main pre{padding-block:.35rem}pre{font-family:jetbrains mono,iosevka,monospace;word-break:keep-all;overflow-x:auto;background-color:var(--mostest-muted-color);border:1px solid var(--most-muted-color);padding-inline:.8rem;font-size:.88rem;line-height:1.4;margin-block:.95rem;font-variant-ligatures:none}pre code{background-color:inherit;padding:0;margin:0;font-size:.9rem}code{font-size:.88rem;font-family:jetbrains mono,iosevka,monospace;font-variant-ligatures:none;white-space:pre}.footnotes>hr{margin:unset;margin-block:3.8rem}.footnotes>ol>li>*{margin-block:.6rem;line-height:1.6625}.footnotes>ol>li{border-width:1px;border-style:solid;border-image-slice:1;border-image-source:linear-gradient(to bottom,transparent 1ch,var(--tmp-muted-between) 1ch,var(--more-muted-color) 85%,transparent);border-block:unset;border-right:unset;padding-left:1rem;margin-bottom:1.5rem;font-size:.98rem}pre.chroma .k,pre.chroma .kd,pre.chroma .kn,pre.chroma .ow{font-weight:700}pre.chroma .c1{color:var(--muted-color)}pre.chroma .kt{color:var(--least-muted-color)}pre.chroma .s2{color:#b86928}.further-reading{margin-block:3.8rem}.further-reading>hr{margin-block:2.5rem}.further-reading>div{margin-block:1rem}.further-reading>ul>li>*{margin-block:.6rem;line-height:1.6625}.further-reading>ul>li{padding-left:1rem;margin-bottom:.5rem;font-size:.98rem}:root{--hire-me:#ffeccc;--hire-me-bold:orange;--hire-me-text:#21152e}@media(prefers-color-scheme:dark){:root{--hire-me:rgb(44, 20, 6);--hire-me-text:#e2d069;--hire-me-bold:rgb(141, 98, 19)}}@keyframes Wave{0%{transform:rotate(0)}20%{transform:rotate(30deg)}30%{transform:rotate(20deg)}50%{transform:rotate(30deg)}100%{transform:rotate(0)}}#employment-plea{color:var(--hire-me-text);background-color:var(--hire-me);transition:box-shadow 1s cubic-bezier(.075,.82,.165,1);border:1px solid var(--hire-me-bold);border-radius:5px;display:flex;box-shadow:8px 8px 0 0 var(--hire-me)}#employment-plea:hover{box-shadow:10px 10px 0 0 var(--hire-me)}#employment-plea{justify-content:space-between;align-items:center;margin-block:4ch;padding:.8ch;padding-inline:1.3ch;font-size:.95rem;line-height:1.8;gap:1.3ch;width:90%;margin-inline:auto}#employment-plea .first-word{font-size:1.1em;font-weight:800;font-family:cooper,Alegreya Sans,sans-serif;padding-right:.5ch;opacity:.85}#employment-plea #emp-left{text-align:justify}#employment-plea #emp-smile{display:flex;justify-content:center;align-items:center;width:3ch;height:3ch;aspect-ratio:1;font-size:2.7em;user-select:none;transform-origin:60% 90%;filter:sepia(.38);text-shadow:1px 1px var(--hire-me-bold)}#employment-plea #emp-smile:hover{animation:Wave 1.5s}#employment-plea #emp-spacer{padding-bottom:1.5ch}#employment-plea #learn-more-link{font-family:cooper,Alegreya Sans,sans-serif;font-feature-settings:"swsh";font-weight:650;opacity:.85;font-size:1rem;text-align:right}#employment-plea #learn-more-link a{text-decoration-color:var(--hire-me-text)}#nav-page-hire-me{color:var(--hire-me-bold);font-family:Alegreya Sans SC,Alegreya Sans,sans-serif;text-transform:lowercase;letter-spacing:.5px}@media(max-width:33.92855rem){#employment-plea{width:100%}#employment-plea #emp-left{text-align:unset}#employment-plea #emp-smile{display:none}}blockquote{margin-left:.5rem;padding-left:1.15rem;color:var(--least-muted-color);font-family:Alegreya Sans,sans-serif;font-size:.9em;letter-spacing:.1px}blockquote .smcp{font-family:Alegreya Sans SC,Alegreya Sans,sans-serif;text-transform:lowercase;font-size:1em}.huge-char{line-height:1 !important;font-size:20vh;text-align:center;line-height:normal}aside.admonition{padding-inline:.6rem;margin-inline:1ch;background-color:var(--mostest-muted-color);border:1px solid var(--most-muted-color);border-radius:2px;font-size:.95rem}aside.admonition>*{margin-block:.6rem}aside.admonition.admonition-highlight{border-color:var(--fun);background-color:unset}footer{text-align:center;padding-block:100px}footer.page::before{color:var(--muted-color);content:"♔"}dl{display:table;border-collapse:separate;border-spacing:0 1.75em;margin-top:-1.75em;margin-bottom:0}dl .dl-item{display:table-row}dl .dl-item>*{display:table-cell;line-height:1.75}dl dd{vertical-align:middle;padding-right:1.2em;text-align:right;border-right:1px solid var(--most-muted-color)}dl dt{padding-left:.7em}@media(prefers-color-scheme:dark){.auto-invert{filter:invert(100%)}}pre:has(code.language-console-small) code{font-size:.3em}pre:has(code.language-console-small){line-height:.2}.comedic-pause{margin-block:5ch}em.wavey{font-style:inherit}details{padding-left:1ch;border-width:1px;border-style:solid;border-image-slice:1;border-image-source:linear-gradient(to bottom right,var(--tmp-muted-between) 1ch,var(--more-muted-color) 90%,transparent);border-bottom:unset;border-right:unset;padding-top:.34rem}details>*{padding-left:.34rem;margin-block:.34rem}details>summary{font-size:1rem;margin:0;line-height:1.75;text-decoration:underline;user-select:none;text-decoration-thickness:1px;font-family:Alegreya Sans SC,Alegreya Sans,sans-serif;text-transform:lowercase;letter-spacing:.02rem}details>summary:hover{cursor:pointer}details>summary::marker{content:""}details>summary::after{content:"click to open";color:var(--muted-color);letter-spacing:.05rem;font-size:.6rem;float:right}details>summary{padding-left:4ch}details>summary::before{content:"❧";display:inline-block;text-decoration:none;position:relative;left:-2.2ch}details>summary:first-of-type{display:block;list-style:none}details:open>summary::before{transform:rotate(90deg)}details:open>summary::after{content:"click to close";color:var(--more-muted-color)}figure.gallery{--column-count:2;--adjusted-col-count:2}figure.gallery.col-2{--column-count:2}figure.gallery.col-3{--column-count:3}figure.gallery.col-4{--column-count:4}figure.gallery.col-5{--column-count:5}figure.gallery.wide,figure.gallery.wider{width:100vw;position:relative;left:calc(-50vw + 50%)}figure.gallery.wide div.w1,figure.gallery.wider div.w1{width:100vw}figure.gallery.wide div.w1 .w2,figure.gallery.wider div.w1 .w2{margin-inline:auto;width:min(93%,61.07139rem);gap:.5rem}figure.gallery.wider>.w1>.w2{width:min(83%,67.8571rem)}figure.gallery .w1>.w2{grid-template-columns:repeat(var(--column-count),1fr)}figure.gallery div.w2{width:100%;display:grid;gap:.4rem}figure.gallery.round img{border-radius:5px;justify-self:center}h2:has(+ul.posts){font-size:.9rem;font-family:Alegreya Sans SC,Alegreya Sans,sans-serif;color:var(--muted-color);margin:0;height:3.5ch;background-color:var(--mostest-muted-color);border:1px solid var(--most-muted-color);align-content:center;line-height:1}h2:has(+ul.posts) div{width:14ch;text-align:right}.proj-list-c{padding-bottom:2ch}ul.posts{padding-left:0;display:flex;flex-direction:column;row-gap:.5rem}ul.posts li{hyphens:none;list-style-type:none;display:flex;padding:0;column-gap:1.3rem}ul.posts li div{flex-grow:1}ul.posts li.draft a::before{content:"⁂ ";position:relative;left:-1ch;font-size:.8em;vertical-align:middle;color:orange}ul.posts time{font-size:.9rem;width:14ch;flex-shrink:0;text-align:right}ul.posts a{text-decoration:none;font-size:1.15rem;line-height:1}ul.posts p{color:var(--less-muted-color);font-size:.9rem;margin-block:0;line-height:1.2;word-wrap:break-word}@media(max-width:33.92855rem){ul.posts li{display:block}ul.posts time{width:inherit !important}ul.posts>li{margin-bottom:12px}h2:has(+ul.posts)>div{text-align:center;width:100%}}@media(max-width:33.92855rem){.grid{display:unset}header{padding-block:.5rem}figure{margin-inline:auto !important;float:none !important;max-width:100% !important}.iconBox{display:none}}div#RSCui{margin-bottom:0}ol.audioGroup li{margin-block:0 !important;padding-block:.1rem !important;padding-left:0 !important}ol.audioGroup *,div#RSCui *{font-family:Alegreya Sans,sans-serif !important}math[display=block]{font-size:1.1em}math{font-size:1.05em}