:root{--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--font-mono:SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace}body{font-family:var(--font-body)}code,pre{font-family:var(--font-mono)}:root{--text-0:#212121;--text-1:#666;--bg-0:#fff;--bg-1:#fafafa;--bg-2:#e6e6e6;--border-color:var(--bg-2);--primary-color:#ef5350;--hover-color:white}.social :hover{filter:invert(1)}﻿.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}.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:"Courier New", monospace;--bg-primary:var(--bg-1);--text-color:var(--text-0);--label-color:#f0f0f0;--hightlight-color:#f0f0f0}@media(prefers-color-scheme:dark){:root{--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-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}.label-default{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}code{background-color:var(--bg-primary);padding:.1em .2em;border-radius:5px;border:1px solid var(--border-color);font-family:var(--code-font)}pre{background-color:var(--bg-primary) !important;border-radius:5px;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:0}pre code{background-color:transparent !important;color:var(--text-color);font-size:100%;padding:0;border:none;font-family:var(--code-font)}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}.clipboard-button,.clipboard-button svg{all:unset;cursor:pointer;position:absolute;bottom:5px;right:5px;z-index:10;background-color:transparent;border:none;fill:#ef5350}.page-header{font-size:2.5em;line-height:100%;font-family:var(--header-font);margin:4rem 0 1rem}.centered-header{font-family:var(--header-font);position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);text-align:center;font-size:4em}.centered-header span{line-height:100%}header{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:1em 0}header .main{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;font-size:1.5rem;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}.logo{border-bottom:unset;background-image:unset}.logo>img{border:unset;width:auto;height:32px;vertical-align:middle}.logo:hover{background-color:transparent}.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}@media(max-width:600px){header{flex-direction:column;align-items:center;padding:1em 0}header .main a{font-size:20px}}.meta{color:#999;display:flexbox;align-items:center;flex-wrap:wrap}#dark-mode-toggle>img{display:none;width:15px;height:15px;border:unset}h1,h2,h3,h4,h5,h6{font-size:1.2rem;margin-top:2em}h1::before{color:var(--primary-color);content:"# "}h2::before{color:var(--primary-color);content:"## "}h3::before{color:var(--primary-color);content:"### "}h4::before{color:var(--primary-color);content:"#### "}h5::before{color:var(--primary-color);content:"##### "}h6::before{color:var(--primary-color);content:"###### "}img{border:3px solid #ececec;max-width:100%}figure{box-sizing:border-box;display:inline-block;margin:0;max-width:100%}figure img{max-height:500px}@media screen and (min-width:600px){figure{padding:0 40px}}figure h4{font-size:1rem;margin:0;margin-bottom:1em}figure h4::before{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{font-family:inherit;padding:10px 25px;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{padding-left:.5em}summary:hover{background-color:var(--primary-color);color:var(--hover-color);cursor:pointer}.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{border-bottom:3px solid var(--primary-color);color:inherit;text-decoration:none;position:relative;z-index:1}a.zola-anchor{border-bottom:none}a:hover{background-color:var(--primary-color);color:var(--hover-color)}time{color:gray}.list>ul{margin:0;padding:1rem 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:transparent}.MathJax_Display,.MJXc-display,.MathJax_SVG_Display{overflow-x:auto;overflow-y:hidden}table{border-spacing:0;border-collapse:collapse}table th{padding:6px 13px;border:1px solid #dfe2e5;font-size:large}table td{padding:6px 13px;border:1px solid #dfe2e5}.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}.mermaid{text-align:center;margin-top:1em;margin-bottom:1em}.mermaid strong{font-weight:700}.search-button{background:0 0;border:none;padding:2px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-left:.25em}.search-button img{border:none}.search-button .search-icon{width:16px;height:16px}.search-button:hover{background-color:transparent}html.dark .search-button .search-icon{filter:invert(1)}html.light .search-button .search-icon{filter:invert(0)}.search-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.search-modal #modal-content{position:relative;margin:8% auto;width:80%;max-width:28rem;background-color:var(--bg-0);border:1px solid var(--bg-1);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.search-modal #searchBar{display:flex;align-items:center;padding:1rem;gap:.5rem}.search-modal #searchBar #searchInput{flex:1;padding:.75rem 2.5rem;font-size:1rem;color:var(--text-0);background:var(--bg-1);border:1px solid var(--bg-1);border-radius:20px;width:100%}.search-modal #searchBar #searchInput:focus{outline:none;border-color:var(--primary-color)}.search-modal #searchBar #searchInput::placeholder{color:var(--text-1)}.search-modal #searchBar .close-icon{position:absolute;right:1.5rem;display:none;padding:4px;cursor:pointer}.search-modal #searchBar .close-icon svg{width:1.3rem;height:1.3rem;fill:var(--text-1)}.search-modal #results-container{display:none;border-top:1px solid var(--bg-1)}.search-modal #results-container #results-info{padding:.5rem;color:var(--text-1);font-size:.8rem;text-align:center}.search-modal #results-container #results{max-height:50vh;overflow-y:auto}.search-modal #results-container #results>div{padding:.75rem 1rem;cursor:pointer}.search-modal #results-container #results>div[aria-selected=true]{background:var(--primary-color)}.search-modal #results-container #results>div[aria-selected=true] *{color:var(--hover-color) !important}.search-modal #results-container #results>div span:first-child{display:block;color:var(--text-0);font-weight:500;margin-bottom:.25rem}.search-modal #results-container #results>div span:nth-child(2){display:block;color:var(--text-1);font-size:.9rem}.search-modal #results-container #results>div:hover:not([aria-selected=true]){background:var(--bg-1)}.search-modal #modal-content{position:relative;margin:8% auto;width:80%;max-width:28rem;background-color:var(--bg-0);border:1px solid var(--bg-1);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);padding:1rem}.search-modal #modal-content h1{margin-top:0;margin-bottom:1rem;font-size:1.2rem}.search-modal #modal-content h1::before{color:var(--primary-color);content:"# "}#searchBar{position:relative;display:flex;align-items:center;padding:1rem}#searchBar .clear-button{position:absolute;right:1.5rem;background:0 0;border:none;padding:4px;cursor:pointer;display:none;width:24px;height:24px}#searchBar .clear-button svg{width:100%;height:100%;fill:var(--text-1)}#searchBar .clear-button:hover svg{fill:var(--primary-color)}#searchBar #searchInput{padding-right:2.5rem}@media only screen and (max-width:600px){.search-modal #modal-content{margin:4% auto;width:92%}.search-modal #results{max-height:70vh}}:root{--border-color:var(--border-color);--text-font:"Jetbrains Mono";--header-font:"Space Grotesk", "Helvetica", sans-serif;--code-font:"Jetbrains Mono"}html{background-color:var(--bg-0);color:var(--text-0);font-family:var(--text-font);line-height:1.6em}.content{max-width:1000px;margin:0 auto;padding:0 24px;word-wrap:break-word}@media all and (min-width:640px){html{font-size:16.5px}}@media all and (min-width:720px){html{font-size:17px}}@media all and (min-width:960px){html{font-size:18px}}.monogram{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.monogram:hover{text-decoration:none}.initials{font-family:var(--code-font),monospace;font-weight:700;font-size:32px;line-height:1;letter-spacing:-2px;color:var(--text-color);background-color:var(--bg-1);border-radius:10px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;padding-bottom:4px;transition:all .2s ease}.monogram:hover .initials{background-color:var(--text-color);color:var(--bg-0)}.page-header::before{content:none}header.title{display:block;padding:0;margin:0}.dot-accent{font-size:1.6em}.post-list{list-style:none;padding:0}.post-item{margin-bottom:2rem}.post-item-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.post-item-title a{text-decoration:none;color:inherit}.post-item-meta{color:var(--text-1);font-size:.9rem;margin-bottom:.5rem}.tags{margin-top:.5rem}.tags ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.tags li{display:inline-block}.tags a{display:inline-block;padding:.2rem .6rem;background-color:var(--bg-1);color:var(--text-1);border:1px solid var(--border-color);border-radius:4px;text-decoration:none;font-size:.8rem;transition:all .2s ease}.tags a:before{content:"#";margin-right:2px;opacity:.6}.tags a:hover{background-color:var(--hightlight-color);color:var(--bg-primary);border-color:var(--hightlight-color);text-decoration:none}.categories{margin-top:.5rem;margin-bottom:.5rem}.categories ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.categories li{display:inline-block}.categories a{display:inline-block;padding:.2rem .6rem;background-color:var(--bg-1);color:var(--text-1);border:1px solid var(--border-color);border-radius:4px;text-decoration:none;font-size:.8rem;transition:all .2s ease}.categories a:before{content:"/";margin-right:2px;opacity:.6}.categories a:hover{background-color:var(--hightlight-color);color:var(--bg-primary);border-color:var(--hightlight-color);text-decoration:none}.image-series{display:flex;flex-direction:column;gap:2rem;margin:2rem 0}.image-series figure{margin:0;display:block;text-align:left;width:100%}.image-series img{max-width:100%;height:auto;display:block}.image-series figcaption{margin-top:.5rem;font-style:italic;color:var(--text-1);font-size:.9em}header{align-items:center}header .right-header-group{display:flex;align-items:center;gap:30px}header nav{padding:0;margin:0}header .socials{margin-bottom:0;gap:12px;display:flex;align-items:center}header .social{border-bottom:3px solid transparent;background-color:transparent;display:inline-flex;align-items:center}header .social:hover{background-color:transparent;border-bottom:3px solid transparent}header .social img{width:24px;height:24px;opacity:.7;transition:opacity .2s ease;display:block}header .social:hover img{opacity:1;filter:none}@media(prefers-color-scheme:dark){header .social img,header .social:hover img{filter:invert(1)}}html.dark header .social img,html.dark header .social:hover img{filter:invert(1)}.skip-link{position:absolute;top:-100px;left:0;background:var(--bg-primary);color:var(--text-color);padding:8px;z-index:1000;transition:top .2s ease-in-out;border-bottom-right-radius:5px}.skip-link:focus{top:0}@media print{header,footer,.skip-link,.socials,.tags,.categories{display:none !important}body,.content{background:#fff !important;color:#000 !important;width:100% !important;margin:0 !important;padding:0 !important}a{text-decoration:underline;color:#000 !important}a[href^=http]:after{content:" (" attr(href)")";font-size:.8em}pre,code{border:1px solid #ccc;background:#fff !important;page-break-inside:avoid}}.highlight{position:relative}.copy-code-button{position:absolute;top:.5em;right:.5em;background-color:var(--bg-2);color:var(--text-1);border:none;border-radius:4px;padding:.3em .6em;font-size:.8em;cursor:pointer;opacity:0;transition:opacity .2s ease-in-out}.highlight:hover .copy-code-button{opacity:1}.copy-code-button:focus{outline:2px solid var(--primary-color)}@media(prefers-color-scheme:light){.bg{background-color:#fff}.chroma{background-color:#fff}.chroma .err{color:#f6f8fa;background-color:#82071e}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#e5e5e5}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#cf222e}.chroma .kc{color:#cf222e}.chroma .kd{color:#cf222e}.chroma .kn{color:#cf222e}.chroma .kp{color:#cf222e}.chroma .kr{color:#cf222e}.chroma .kt{color:#cf222e}.chroma .na{color:#1f2328}.chroma .nc{color:#1f2328}.chroma .no{color:#0550ae}.chroma .nd{color:#0550ae}.chroma .ni{color:#6639ba}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#24292e}.chroma .nx{color:#1f2328}.chroma .nt{color:#0550ae}.chroma .nb{color:#6639ba}.chroma .bp{color:#6a737d}.chroma .nv{color:#953800}.chroma .vc{color:#953800}.chroma .vg{color:#953800}.chroma .vi{color:#953800}.chroma .vm{color:#953800}.chroma .nf{color:#6639ba}.chroma .fm{color:#6639ba}.chroma .s{color:#0a3069}.chroma .sa{color:#0a3069}.chroma .sb{color:#0a3069}.chroma .sc{color:#0a3069}.chroma .dl{color:#0a3069}.chroma .sd{color:#0a3069}.chroma .s2{color:#0a3069}.chroma .se{color:#0a3069}.chroma .sh{color:#0a3069}.chroma .si{color:#0a3069}.chroma .sx{color:#0a3069}.chroma .sr{color:#0a3069}.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .m{color:#0550ae}.chroma .mb{color:#0550ae}.chroma .mf{color:#0550ae}.chroma .mh{color:#0550ae}.chroma .mi{color:#0550ae}.chroma .il{color:#0550ae}.chroma .mo{color:#0550ae}.chroma .o{color:#0550ae}.chroma .ow{color:#0550ae}.chroma .p{color:#1f2328}.chroma .c{color:#57606a}.chroma .ch{color:#57606a}.chroma .cm{color:#57606a}.chroma .c1{color:#57606a}.chroma .cs{color:#57606a}.chroma .cp{color:#57606a}.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}.chroma .w{color:#fff}}@media(prefers-color-scheme:dark){.bg{color:#f8f8f2;background-color:#282a36}.chroma{color:#f8f8f2;background-color:#282a36}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#3d3f4a}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#ff79c6}.chroma .kc{color:#ff79c6}.chroma .kd{color:#8be9fd;font-style:italic}.chroma .kn{color:#ff79c6}.chroma .kp{color:#ff79c6}.chroma .kr{color:#ff79c6}.chroma .kt{color:#8be9fd}.chroma .na{color:#50fa7b}.chroma .nc{color:#50fa7b}.chroma .nl{color:#8be9fd;font-style:italic}.chroma .nt{color:#ff79c6}.chroma .nb{color:#8be9fd;font-style:italic}.chroma .bp{font-style:italic}.chroma .nv{color:#8be9fd;font-style:italic}.chroma .vc{color:#8be9fd;font-style:italic}.chroma .vg{color:#8be9fd;font-style:italic}.chroma .vi{color:#8be9fd;font-style:italic}.chroma .vm{color:#8be9fd;font-style:italic}.chroma .nf{color:#50fa7b}.chroma .fm{color:#50fa7b}.chroma .s{color:#f1fa8c}.chroma .sa{color:#f1fa8c}.chroma .sb{color:#f1fa8c}.chroma .sc{color:#f1fa8c}.chroma .dl{color:#f1fa8c}.chroma .sd{color:#f1fa8c}.chroma .s2{color:#f1fa8c}.chroma .se{color:#f1fa8c}.chroma .sh{color:#f1fa8c}.chroma .si{color:#f1fa8c}.chroma .sx{color:#f1fa8c}.chroma .sr{color:#f1fa8c}.chroma .s1{color:#f1fa8c}.chroma .ss{color:#f1fa8c}.chroma .m{color:#bd93f9}.chroma .mb{color:#bd93f9}.chroma .mf{color:#bd93f9}.chroma .mh{color:#bd93f9}.chroma .mi{color:#bd93f9}.chroma .il{color:#bd93f9}.chroma .mo{color:#bd93f9}.chroma .o{color:#ff79c6}.chroma .ow{color:#ff79c6}.chroma .c{color:#6272a4}.chroma .ch{color:#6272a4}.chroma .cm{color:#6272a4}.chroma .c1{color:#6272a4}.chroma .cs{color:#6272a4}.chroma .cp{color:#ff79c6}.chroma .cpf{color:#ff79c6}.chroma .gd{color:#f55}.chroma .ge{text-decoration:underline}.chroma .gh{font-weight:700}.chroma .gi{color:#50fa7b;font-weight:700}.chroma .go{color:#44475a}.chroma .gu{font-weight:700}.chroma .gl{text-decoration:underline}}.chroma{padding:1em;border-radius:6px;overflow-x:auto;margin-bottom:1.5em}.chroma code,.chroma pre{font-family:var(--font-mono);font-size:.9em;line-height:1.5}.chroma .lnt,.chroma .ln,.chroma .hl{display:flex}.chroma .lntable .lntd:last-child{width:100%}.chroma .lntable{display:table;width:auto;border-spacing:0}.chroma .lntd{padding:0;margin:0;vertical-align:top}.chroma .ln,.chroma .lnt{margin-right:.8em;padding-right:.8em;color:#75715e;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.toc{background:var(--bg-1);border:1px solid var(--border-color);padding:1rem;border-radius:8px;margin-top:2rem;font-size:.9rem}.toc h3{margin-top:0;font-size:1rem;margin-bottom:.5rem}.toc ul{list-style-type:none;padding-left:0;margin-bottom:0}.toc ul ul{padding-left:1rem;margin-top:.25rem}.toc a{text-decoration:none;color:var(--text-1)}.toc a:hover{color:var(--accent-color);text-decoration:underline}@media print{header,footer,.skip-link,.socials,.tags,.categories{display:none !important}body,.content{background:#fff !important;color:#000 !important;width:100% !important;margin:0 !important;padding:0 !important}a{text-decoration:underline;color:#000 !important}a[href^=http]:after{content:" (" attr(href)")";font-size:.8em}pre,code{border:1px solid #ccc;background:#fff !important;page-break-inside:avoid}}