:root:has(#theme-light:checked) .bg,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .bg{background-color:#fff}:root:has(#theme-light:checked) .chroma,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma{background-color:#fff;-webkit-text-size-adjust:none}:root:has(#theme-light:checked) .chroma .err,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .err{color:red;background-color:#faa}:root:has(#theme-light:checked) .chroma .lnlinks,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root:has(#theme-light:checked) .chroma .lntd,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root:has(#theme-light:checked) .chroma .lntable,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root:has(#theme-light:checked) .chroma .hl,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .hl{background-color:#e5e5e5}:root:has(#theme-light:checked) .chroma .lnt,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}:root:has(#theme-light:checked) .chroma .ln,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}:root:has(#theme-light:checked) .chroma .line,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .line{display:flex}:root:has(#theme-light:checked) .chroma .k,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .k{color:#080;font-weight:700}:root:has(#theme-light:checked) .chroma .kc,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .kc{color:#080;font-weight:700}:root:has(#theme-light:checked) .chroma .kd,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .kd{color:#080;font-weight:700}:root:has(#theme-light:checked) .chroma .kn,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .kn{color:#080;font-weight:700}:root:has(#theme-light:checked) .chroma .kp,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .kp{color:#038;font-weight:700}:root:has(#theme-light:checked) .chroma .kr,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .kr{color:#080;font-weight:700}:root:has(#theme-light:checked) .chroma .kt,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .kt{color:#339;font-weight:700}:root:has(#theme-light:checked) .chroma .na,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .na{color:#00c}:root:has(#theme-light:checked) .chroma .nc,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .nc{color:#b06;font-weight:700}:root:has(#theme-light:checked) .chroma .no,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .no{color:#036;font-weight:700}:root:has(#theme-light:checked) .chroma .nd,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .nd{color:#555;font-weight:700}:root:has(#theme-light:checked) .chroma .ni,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .ni{color:#800;font-weight:700}:root:has(#theme-light:checked) .chroma .ne,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .ne{color:red;font-weight:700}:root:has(#theme-light:checked) .chroma .nl,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .nl{color:#970;font-weight:700}:root:has(#theme-light:checked) .chroma .nn,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .nn{color:#0e84b5;font-weight:700}:root:has(#theme-light:checked) .chroma .nt,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .nt{color:#070}:root:has(#theme-light:checked) .chroma .nb,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .nb{color:#007020}:root:has(#theme-light:checked) .chroma .bp,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .bp{color:#007020}:root:has(#theme-light:checked) .chroma .nv,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .nv{color:#963}:root:has(#theme-light:checked) .chroma .vc,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .vc{color:#369}:root:has(#theme-light:checked) .chroma .vg,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .vg{color:#d70;font-weight:700}:root:has(#theme-light:checked) .chroma .vi,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .vi{color:#33b}:root:has(#theme-light:checked) .chroma .vm,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .vm{color:#963}:root:has(#theme-light:checked) .chroma .nf,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .nf{color:#06b;font-weight:700}:root:has(#theme-light:checked) .chroma .fm,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .fm{color:#06b;font-weight:700}:root:has(#theme-light:checked) .chroma .s,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .s{background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .sa,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .sa{background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .sb,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .sb{background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .sc,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .sc{color:#04d;background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .dl,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .dl{background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .sd,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .sd{color:#d42;background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .s2,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .s2{background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .se,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .se{color:#666;background-color:#fff0f0;font-weight:700}:root:has(#theme-light:checked) .chroma .sh,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .sh{background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .si,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .si{background-color:#eee}:root:has(#theme-light:checked) .chroma .sx,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .sx{color:#d20;background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .sr,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .sr{color:#000;background-color:#fff0ff}:root:has(#theme-light:checked) .chroma .s1,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .s1{background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .ss,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .ss{color:#a60;background-color:#fff0f0}:root:has(#theme-light:checked) .chroma .m,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .m{color:#60e;font-weight:700}:root:has(#theme-light:checked) .chroma .mb,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .mb{color:#60e;font-weight:700}:root:has(#theme-light:checked) .chroma .mf,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .mf{color:#60e;font-weight:700}:root:has(#theme-light:checked) .chroma .mh,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .mh{color:#058;font-weight:700}:root:has(#theme-light:checked) .chroma .mi,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .mi{color:#00d;font-weight:700}:root:has(#theme-light:checked) .chroma .il,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .il{color:#60e;font-weight:700}:root:has(#theme-light:checked) .chroma .mo,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .mo{color:#40e;font-weight:700}:root:has(#theme-light:checked) .chroma .o,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .o{color:#333}:root:has(#theme-light:checked) .chroma .ow,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .ow{color:#000;font-weight:700}:root:has(#theme-light:checked) .chroma .c,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .c{color:#888}:root:has(#theme-light:checked) .chroma .ch,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .ch{color:#888}:root:has(#theme-light:checked) .chroma .cm,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .cm{color:#888}:root:has(#theme-light:checked) .chroma .c1,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .c1{color:#888}:root:has(#theme-light:checked) .chroma .cs,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .cs{color:#c00;font-weight:700}:root:has(#theme-light:checked) .chroma .cp,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .cp{color:#579}:root:has(#theme-light:checked) .chroma .cpf,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .cpf{color:#579}:root:has(#theme-light:checked) .chroma .gd,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .gd{color:#a00000}:root:has(#theme-light:checked) .chroma .ge,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .ge{font-style:italic}:root:has(#theme-light:checked) .chroma .gr,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .gr{color:red}:root:has(#theme-light:checked) .chroma .gh,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .gh{color:navy;font-weight:700}:root:has(#theme-light:checked) .chroma .gi,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .gi{color:#00a000}:root:has(#theme-light:checked) .chroma .go,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .go{color:#888}:root:has(#theme-light:checked) .chroma .gp,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .gp{color:#c65d09;font-weight:700}:root:has(#theme-light:checked) .chroma .gs,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .gs{font-weight:700}:root:has(#theme-light:checked) .chroma .gu,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .gu{color:purple;font-weight:700}:root:has(#theme-light:checked) .chroma .gt,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .gt{color:#04d}:root:has(#theme-light:checked) .chroma .gl,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .gl{text-decoration:underline}:root:has(#theme-light:checked) .chroma .w,:root:not(:has(#theme-dark:checked)):not(:has(#theme-light:checked)) .chroma .w{color:#bbb}:root:has(#theme-dark:checked) .bg{color:#e6edf3;background-color:#0d1117}:root:has(#theme-dark:checked) .chroma{color:#e6edf3;background-color:#0d1117;-webkit-text-size-adjust:none}:root:has(#theme-dark:checked) .chroma .err{color:#f85149}:root:has(#theme-dark:checked) .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root:has(#theme-dark:checked) .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root:has(#theme-dark:checked) .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root:has(#theme-dark:checked) .chroma .hl{background-color:#6e7681}:root:has(#theme-dark:checked) .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}:root:has(#theme-dark:checked) .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}:root:has(#theme-dark:checked) .chroma .line{display:flex}:root:has(#theme-dark:checked) .chroma .k{color:#ff7b72}:root:has(#theme-dark:checked) .chroma .kc{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .kd{color:#ff7b72}:root:has(#theme-dark:checked) .chroma .kn{color:#ff7b72}:root:has(#theme-dark:checked) .chroma .kp{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .kr{color:#ff7b72}:root:has(#theme-dark:checked) .chroma .kt{color:#ff7b72}:root:has(#theme-dark:checked) .chroma .nc{color:#f0883e;font-weight:700}:root:has(#theme-dark:checked) .chroma .no{color:#79c0ff;font-weight:700}:root:has(#theme-dark:checked) .chroma .nd{color:#d2a8ff;font-weight:700}:root:has(#theme-dark:checked) .chroma .ni{color:#ffa657}:root:has(#theme-dark:checked) .chroma .ne{color:#f0883e;font-weight:700}:root:has(#theme-dark:checked) .chroma .nl{color:#79c0ff;font-weight:700}:root:has(#theme-dark:checked) .chroma .nn{color:#ff7b72}:root:has(#theme-dark:checked) .chroma .py{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .nt{color:#7ee787}:root:has(#theme-dark:checked) .chroma .nv{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .vc{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .vg{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .vi{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .vm{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .nf{color:#d2a8ff;font-weight:700}:root:has(#theme-dark:checked) .chroma .fm{color:#d2a8ff;font-weight:700}:root:has(#theme-dark:checked) .chroma .l{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .ld{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .s{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .sa{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .sb{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .sc{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .dl{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .sd{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .s2{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .se{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .sh{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .si{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .sx{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .sr{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .s1{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .ss{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .m{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .mb{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .mf{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .mh{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .mi{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .il{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .mo{color:#a5d6ff}:root:has(#theme-dark:checked) .chroma .o{color:#ff7b72;font-weight:700}:root:has(#theme-dark:checked) .chroma .ow{color:#ff7b72;font-weight:700}:root:has(#theme-dark:checked) .chroma .c{color:#8b949e;font-style:italic}:root:has(#theme-dark:checked) .chroma .ch{color:#8b949e;font-style:italic}:root:has(#theme-dark:checked) .chroma .cm{color:#8b949e;font-style:italic}:root:has(#theme-dark:checked) .chroma .c1{color:#8b949e;font-style:italic}:root:has(#theme-dark:checked) .chroma .cs{color:#8b949e;font-weight:700;font-style:italic}:root:has(#theme-dark:checked) .chroma .cp{color:#8b949e;font-weight:700;font-style:italic}:root:has(#theme-dark:checked) .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}:root:has(#theme-dark:checked) .chroma .gd{color:#ffa198;background-color:#490202}:root:has(#theme-dark:checked) .chroma .ge{font-style:italic}:root:has(#theme-dark:checked) .chroma .gr{color:#ffa198}:root:has(#theme-dark:checked) .chroma .gh{color:#79c0ff;font-weight:700}:root:has(#theme-dark:checked) .chroma .gi{color:#56d364;background-color:#0f5323}:root:has(#theme-dark:checked) .chroma .go{color:#8b949e}:root:has(#theme-dark:checked) .chroma .gp{color:#8b949e}:root:has(#theme-dark:checked) .chroma .gs{font-weight:700}:root:has(#theme-dark:checked) .chroma .gu{color:#79c0ff}:root:has(#theme-dark:checked) .chroma .gt{color:#ff7b72}:root:has(#theme-dark:checked) .chroma .gl{text-decoration:underline}:root:has(#theme-dark:checked) .chroma .w{color:#6e7681}body{font-family:Optima,Candara,Calibri,Arial,sans-serif}code{font-family:lucida console,Monaco,monospace;font-size:85%}.project-wrapper{width:100%;display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:space-around;margin:1.5rem 0;padding:1rem;border-radius:.25rem;background-color:light-dark(#e2e8f0,#1e293b);box-sizing:border-box}.project-image{flex-basis:10rem;flex-grow:0;flex-shrink:1;display:flex;justify-content:center;align-items:center}.project-image img{max-width:80%;height:auto}.project-image img{width:100%;height:auto;display:block}.project-content{flex-grow:1;flex-shrink:2;flex-basis:75%;margin-left:.5rem}.project-description{}.project-subtitle{font-style:italic}.project-links{margin-top:1rem;font-size:.875rem}.project-link{display:inline-block;margin-right:.5rem;background-color:#0284c7;border-radius:.125rem;padding:.25rem .5rem}.project-link a{color:#fff;text-decoration:none;border:none}.project-link a:hover{color:#1f2937}.project-content b a{text-decoration:none;font-size:1.25rem}:root{color-scheme:light dark;&:has(#theme-light:checked) { @import 'syntax-light.css'; color-scheme:light; } &:has(#theme-dark:checked) { @import 'syntax-dark.css'; color-scheme:dark; } --secondary-bg:light-dark(#eee,#333);--border-color:light-dark(#ddd, #444);--border-color-strong:light-dark(#666, #888);--code-bg:light-dark(#f9f9f9, #2a2a2a);--blockquote-border:light-dark(#ccc, #555);--shadow-color:light-dark(#eee, #111);--hover-overlay:#0004;--active-overlay:#0006;--pressed-overlay:#0003;--pressed-shadow:rgba(0, 0, 0, 0.3)}body{max-width:800px;margin:auto;padding:1em;line-height:1.5}nav{display:flex;justify-content:center;align-items:center;position:relative}theme-picker{position:absolute;right:0}.menu{padding:0;margin:0}.menu li{display:inline-block}.article-meta,.menu a{text-decoration:none;background:var(--secondary-bg);padding:5px;border-radius:5px}.menu,.article-meta,footer{text-align:center}.title{font-size:1.1em}footer a{text-decoration:none}hr{border-style:dashed;color:var(--border-color)}pre{border:1px solid var(--border-color);box-shadow:5px 5px 5px var(--shadow-color);padding:1em;overflow-x:auto}code{background:var(--code-bg)}pre code{background:0 0}img,iframe,video{max-width:100%}main{hyphens:auto}blockquote{background:var(--code-bg);border-left:5px solid var(--blockquote-border);padding:3px 1em}table{margin:auto;border-top:1px solid var(--border-color-strong);border-bottom:1px solid var(--border-color-strong)}table thead th{border-bottom:1px solid var(--border-color)}th,td{padding:5px}thead,tfoot,tr:nth-child(even){background:var(--secondary-bg)}.box{background-color:var(--secondary-bg);padding:1em;margin:1em 0;border-radius:5px}.avatar{max-width:15%;min-width:40px;float:right;border-radius:50%}.retro-button{image-rendering:auto;image-rendering:crisp-edges;image-rendering:pixelated;image-rendering:-webkit-optimize-contrast;padding:.2rem}.retro-buttons-container{display:flex;flex-direction:row;justify-content:center}theme-picker{label { transition: background 0.08s, box-shadow 0.08s; &:hover { background: var(--hover-overlay); } &:active { background: var(--active-overlay); } &:has(:checked) { box-shadow: inset 2px 2px 4px var(--pressed-shadow); background: var(--pressed-overlay); } background: var(--secondary-bg); padding: 5px; border-radius: 5px; -webkit-user-select: none; user-select: none; } input { opacity: 0; position: absolute; pointer-events: none; }}