﻿.cards{display:grid;grid-template-rows:auto;gap:24px;padding:12px 0}@media all and (min-width: 640px){.cards{grid-template-columns:repeat(auto-fill, minmax(400px, 1fr))}}@media all and (max-width: 640px){.cards{grid-template-columns:repeat(auto-fill, 1fr)}}.card{min-height:100px;background:var(--bg-1);border:2px solid var(--border-color);border-radius:10px;overflow:hidden}.card-info{padding:0 24px 24px 24px}.card-title{margin-top:.7em}.card-image{border:unset;width:100%}.card-image-placeholder{height:12px;width:100%}.card-description{margin-top:.5em;overflow:hidden}@media all and (max-width: 720px){.cards{gap:18px}}:root{--code-font: var(--code-font);--bg-primary: var(--bg-1);--text-color: var(--text-0);--label-color: #f0f0f0;--hightlight-color: #f0f0f0}:root.dark{--hightlight-color: #204e8a}.code-label{background:#333;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-meta{background:#f7df1e;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-js{background:#f7df1e;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-yaml{background:#f71e6a;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-shell{background:#4eaa25;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-json{background:#1e90ff;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-python{background:#3572a5;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-css{background:#264de4;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-go{background:#00add8;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-markdown{background:blue;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-rust{background:#ff4647;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-java{background:#f89820;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-csharp{background:#178600;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-ruby{background:#701516;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-swift{background:#f05138;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-php{background:#777bb4;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-typescript{background:#3178c6;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-scala{background:#c22d40;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-kotlin{background:#f18e33;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-lua{background:navy;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-perl{background:#0298c3;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-haskell{background:#5e5086;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-r{background:#198ce7;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-dart{background:#00d2b8;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-elixir{background:#6e4a7e;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-clojure{background:#5881d8;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}.label-bash{background:#4eaa25;color:var(--label-color);border-radius:0 0 .25rem .25rem;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;text-align:right;text-transform:uppercase;position:absolute;right:0;top:0;margin-top:.1rem}code{background-color:var(--bg-primary);padding:.1em .2em;border:1px solid var(--border-color);font-family:var(--code-font)}pre{border:1px solid var(--border-color);line-height:1.4;overflow-x:auto;padding:1em;position:relative}pre mark{background-color:var(--hightlight-color) !important;padding:0;border-radius:0px}pre code{background-color:rgba(0,0,0,0) !important;color:var(--text-color);font-size:100%;padding:0;border:none}pre code table{margin:0;border-collapse:collapse;font-family:var(--code-font)}pre code table mark{display:block;color:unset;padding:0;background-color:var(--hightlight-color) !important;filter:brightness(1.2)}pre code td,pre code th,pre code tr{padding:0;border-bottom:none;border:none}pre code tbody td:first-child{text-align:center;user-select:none;min-width:60px;border-right:none}pre code tbody tr:nth-child(even),pre code thead tr{background-color:unset}pre.language-meta{margin-top:3rem;margin-bottom:3rem;font-size:80%;border:1px solid;border-top:5px solid var(--text-color)}pre.language-meta .clipboard-button,pre.language-meta .code-label{display:none}.clipboard-button,.clipboard-button svg{all:unset;cursor:pointer;position:absolute;bottom:5px;right:5px;z-index:10;background-color:rgba(0,0,0,0);border:none;fill:#ef5350;}.page-header{font-size:1.5em;line-height:100%;margin:2rem 0px 2rem 0px;text-transform:uppercase}.centered-header{position:absolute;top:40%;left:50%;transform:translate(-50%, -50%);text-align:center;font-size:4em}header{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:1em 0;font-family:var(--text-font);font-size:14px}.page-header{font-family:var(--trash-font)}article .title{font-family:var(--trash-font)}header .main{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:5px}header .social img,header #dark-mode-toggle img{width:16px;height:16px}header .socials{margin-bottom:10px;}#dark-mode-toggle{justify-content:center;vertical-align:middle}.socials{flex-grow:0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:flex-end;gap:6px}.social{border-bottom:unset;background-image:unset;padding:2px}.social>img{border:unset;width:24px;height:24px}nav{font-family:var(--code-font);font-size:1em}nav a,header a{text-decoration:none;color:var(--light-color)}.meta{color:#999;display:flexbox;align-items:center;flex-wrap:wrap;}#dark-mode-toggle>img{display:none;width:15px;height:15px;border:unset}h4,h5,h6{font-size:1.2rem;margin-top:2em}h1{font-size:4rem;line-height:4rem;font-weight:lighter}h2{font-weight:normal;width:70%;margin-top:0}h3{font-family:var(--code-font);font-weight:normal;text-decoration:underline}@media (max-width: 600px){header{flex-direction:column;align-items:center;padding:1em 0}header .main a{font-size:12px;padding:2em 0}.page-header{text-align:center}h1{font-size:3rem;line-height:3rem}h2{width:100%}}img{max-width:100%}figure{box-sizing:border-box;display:inline-block;margin:0;padding:0}figure img{position:relative}figure.video{width:100%;text-align:center;background:#121212;padding:3em}.two-col img{width:49.5%}.six-col img{width:16%}@media all and (max-width: 640px){.two-col img{width:100%}.six-col img{width:32%}}@media screen and (min-width: 600px){figure{padding:0}}figure h4{font-size:1rem;margin:0;margin-bottom:1em}svg{max-height:15px}.full-width{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;text-align:center}.right{left:-40%;width:100%;position:relative}.left{right:-40%;width:100%;position:relative}.overlap{top:-5vw}figcaption{font-family:var(--trash-font)}figcaption::before{font-family:var(--trash-font);content:"↳ "}.toc-container .toc-title{cursor:pointer;position:relative;padding-left:20px}.toc-container .toc-title:before{content:"▼";position:absolute;left:0;transition:transform .3s ease}.toc-container .toc-title:hover:before,.toc-container .toc-title.expanded:before{transform:rotate(180deg)}.toc-container .toc-list{display:none}:root{--note-header-bg: var(--bg-2);--note-header-color: var(--text-0);--note-content-bg: var(--bg-1)}.note-container{border-radius:4px;overflow:hidden;margin:1em 0;position:relative;border-left:3px solid var(--primary-color);font-family:var(--paragraph-font)}.note-toggle,.note-header{color:var(--note-header-color);background-color:var(--note-header-bg);padding:10px 25px;text-align:left;border:none;width:100%;position:relative;outline:none;font-size:1.2em;transition:background-color .3s ease}.note-toggle p,.note-header p{margin:0}.note-toggle .note-center,.note-header .note-center{text-align:center;padding-right:50px}.note-toggle .note-icon,.note-toggle .note-icon,.note-header .note-icon,.note-header .note-icon{padding-left:25px}.note-toggle{cursor:pointer;position:relative}.note-toggle::before{content:"▼";position:absolute;right:20px;top:50%;transform:translateY(-50%);}.note-toggle:hover,.note-toggle:focus{color:var(--note-header-color);background-color:var(--note-header-bg);outline:none}.note-content{padding:10px 20px;background-color:var(--note-content-bg)}.note-icon::before{content:"✎";color:var(--primary-color);position:absolute;left:20px;top:50%;transform:translateY(-50%)}summary:hover,summary:focus{color:var(--primary-color);background-color:var(--note-header-bg);outline:none;padding:10px}.primary-color{color:var(--primary-color)}.draft-label{color:var(--hover-color);text-decoration:none;padding:2px 4px;border-radius:4px;margin-left:6px;background-color:var(--primary-color)}::-moz-selection{background:var(--primary-color);color:var(--hover-color);text-shadow:none}::selection{background:var(--primary-color);color:var(--hover-color)}p{line-height:1.5}hr{border:0;border-top:3px solid var(--border-color);margin:1em 0}blockquote{border-left:3px solid var(--primary-color);color:#737373;margin:0;padding-left:1em}a{color:var(--primary-color);text-decoration:strike-through;position:relative;z-index:1}a.zola-anchor{border-bottom:none}a:hover{background-color:var(--primary-color);color:var(--hover-color)}p a::after{content:" ➞";transform:rotate(-45deg);display:inline-block}time{color:grey}em{font-style:normal;color:var(--primary-color)}.list>ul{margin:0;padding:1rem 0 0 0}.list-item{margin-bottom:30px;list-style-type:none}del{text-decoration-color:var(--primary-color);text-decoration-thickness:3px}@media all and (max-width: 640px){.post-header{display:grid;grid-template-rows:auto 1fr}.post-header h1{margin-top:0}.post-header h1 a{border-bottom:none}}@media all and (min-width: 640px){.post-header{display:grid;gap:1rem;grid-row-gap:1.5rem;grid-template-columns:auto 1fr}.post-header h1{margin:0;font-size:130%}.post-header h1 a{border-bottom:none}}#dark-mode-toggle{border-bottom:none}#dark-mode-toggle:hover{background-color:rgba(0,0,0,0)}.MathJax_Display,.MJXc-display,.MathJax_SVG_Display{overflow-x:auto;overflow-y:hidden}table{border-spacing:0;border-collapse:collapse;font-size:70%;font-family:monospace;text-align:left;width:100%;margin-top:4em}table th{padding:6px 12px;font-size:large}table tr{border-bottom:1px solid var(--border-color)}table td{padding:6px 12px}table tr td:nth-of-type(1){width:40%}table tr td:nth-of-type(2){width:30%}.tags ul{margin-left:0;padding-left:0}.tags li{list-style-type:none}.tags a{border-bottom:3px solid var(--primary-color);font-family:var(--text-font)}.tags a:hover{color:var(--hover_color);background-color:var(--primary-color)}.tags a::before{content:"🏷 ";display:inline;white-space:nowrap !important}.rows{display:block}.row{min-height:3em;border-bottom:2px solid var(--border-color);overflow:hidden}.row .title a{font-family:var(--text-font);font-size:xxx-large;text-decoration:none;border-bottom:none;color:inherit;font-weight:lighter;padding:.4em 0;display:flex}.row .title a:hover{color:var(--primary-color);background:none}.row-image{display:none}.row:hover img.row-image{display:block;position:absolute;right:150px;width:500px;z-index:100;top:10%}@media all and (max-width: 640px){.row:hover img.row-image{display:none}}:root{--border-color: var(--border-color);--text-font: "Inter", sans-serif;--code-font: "SF Mono", SFMono-Regular, ui-monospace, Menlo, Monaco, monospace;--trash-font: "VT323", monospace}html{background-color:var(--bg-0);color:var(--text-0);font-family:var(--text-font)}.content{padding:0 24px;word-wrap:break-word}main{margin:0 auto}footer{font-family:var(--trash-font);padding:0 24px;text-align:center;font-size:80%}@media all and (min-width: 640px){html{font-size:16.5px}header main{padding:2em;font-size:14px}}@media all and (min-width: 720px){html{font-size:18px}}@media all and (min-width: 960px){html{font-size:22px}}