﻿/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus,select:-webkit-autofill,select:-webkit-autofill:hover,select:-webkit-autofill:focus{-webkit-box-shadow:inset 0 0 0 1000px var(--color-bg-rgb);-webkit-text-fill-color:var(--color-text-rgb);box-shadow:inset 0 0 0 1000px var(--color-bg-rgb);transition:background-color 5000s ease-in-out 0s, box-shadow 0s, background-color 0s}:root{--pal-bg-low-l: rgb(233,219,183);--pal-text-low-l: rgb(71,60,45);--pal-heading-low-l: oklch(from rgb(71,60,45) calc(l * 0.8) c h);--pal-link-low-l: rgb(160,90,30);--pal-link-act-low-l: oklch(from rgb(160,90,30) calc(l * 1.2) c h);--pal-code-txt-low-l: rgb(40,50,65);--pal-code-bg-low-l: rgb(220,210,185);--pal-quote-low-l: oklch(from rgb(71,60,45) calc(l * 1.1) calc(c * 0.5) h);--pal-quote-vals-low-l: 100,85,65;--pal-bg-low-d: rgb(24,20,16);--pal-text-low-d: rgb(180,170,155);--pal-heading-low-d: oklch(from rgb(180,170,155) calc(l * 1.15) c h);--pal-link-low-d: rgb(210,140,70);--pal-link-act-low-d: oklch(from rgb(210,140,70) calc(l * 1.1) c h);--pal-code-txt-low-d: rgb(160,170,185);--pal-code-bg-low-d: rgb(35,30,25);--pal-quote-low-d: oklch(from rgb(180,170,155) calc(l * 0.8) calc(c * 0.8) h);--pal-quote-vals-low-d: 140,130,115;--pal-bg-high-l: rgb(247,242,227);--pal-text-high-l: rgb(46,43,38);--pal-heading-high-l: oklch(from rgb(46,43,38) calc(l * 0.7) c h);--pal-link-high-l: rgb(139,69,19);--pal-link-act-high-l: oklch(from rgb(139,69,19) calc(l * 1.3) c h);--pal-code-txt-high-l: rgb(34,50,68);--pal-code-bg-high-l: rgb(218,218,218);--pal-quote-high-l: oklch(from rgb(46,43,38) calc(l * 1.4) 0 h);--pal-quote-vals-high-l: 102,102,102;--pal-bg-high-d: rgb(18,8,3);--pal-text-high-d: rgb(220,216,208);--pal-heading-high-d: oklch(from rgb(220,216,208) calc(l * 1.2) c h);--pal-link-high-d: rgb(255,165,0);--pal-link-act-high-d: oklch(from rgb(255,165,0) calc(l * 1.1) c h);--pal-code-txt-high-d: rgb(180,190,210);--pal-code-bg-high-d: rgb(45,42,38);--pal-quote-high-d: oklch(from rgb(220,216,208) calc(l * 0.7) 0 h);--pal-quote-vals-high-d: 160,160,160;--pal-error-universal: rgb(255,83,83);--pal-success-universal: rgb(66,187,19);--pal-background-hover: rgba(128,128,128,0.1)}:root{--color-bg-rgb: var(--pal-bg-low-l);--color-text-rgb: var(--pal-text-low-l);--color-heading-rgb: var(--pal-heading-low-l);--color-link-rgb: var(--pal-link-low-l);--color-link-active-rgb: var(--pal-link-act-low-l);--color-code-text-rgb: var(--pal-code-txt-low-l);--color-code-bg-rgb: var(--pal-code-bg-low-l);--color-quote-rgb: var(--pal-quote-low-l);--color-border-rgb: var(--pal-quote-low-l);--color-quote-rgb-values: var(--pal-quote-vals-low-l);--color-error-rgb: var(--pal-error-universal);--color-success-rgb: var(--pal-success-universal);--color-bg-hover: var(--pal-background-hover)}html:has(#theme-toggle:checked){--color-bg-rgb: var(--pal-bg-low-d);--color-text-rgb: var(--pal-text-low-d);--color-heading-rgb: var(--pal-heading-low-d);--color-link-rgb: var(--pal-link-low-d);--color-link-active-rgb: var(--pal-link-act-low-d);--color-code-text-rgb: var(--pal-code-txt-low-d);--color-code-bg-rgb: var(--pal-code-bg-low-d);--color-quote-rgb: var(--pal-quote-low-d);--color-border-rgb: var(--pal-quote-low-d);--color-quote-rgb-values: var(--pal-quote-vals-low-d);--color-error-rgb: var(--pal-error-universal);--color-success-rgb: var(--pal-success-universal);--color-bg-hover: var(--pal-background-hover)}html:has(#contrast-toggle:checked){--color-bg-rgb: var(--pal-bg-high-l);--color-text-rgb: var(--pal-text-high-l);--color-heading-rgb: var(--pal-heading-high-l);--color-link-rgb: var(--pal-link-high-l);--color-link-active-rgb: var(--pal-link-act-high-l);--color-code-text-rgb: var(--pal-code-txt-high-l);--color-code-bg-rgb: var(--pal-code-bg-high-l);--color-quote-rgb: var(--pal-quote-high-l);--color-border-rgb: var(--pal-quote-high-l);--color-quote-rgb-values: var(--pal-quote-vals-high-l);--color-error-rgb: var(--pal-error-universal);--color-success-rgb: var(--pal-success-universal);--color-bg-hover: var(--pal-background-hover)}html:has(#contrast-toggle:checked):has(#theme-toggle:checked){--color-bg-rgb: var(--pal-bg-high-d);--color-text-rgb: var(--pal-text-high-d);--color-heading-rgb: var(--pal-heading-high-d);--color-link-rgb: var(--pal-link-high-d);--color-link-active-rgb: var(--pal-link-act-high-d);--color-code-text-rgb: var(--pal-code-txt-high-d);--color-code-bg-rgb: var(--pal-code-bg-high-d);--color-quote-rgb: var(--pal-quote-high-d);--color-border-rgb: var(--pal-quote-high-d);--color-quote-rgb-values: var(--pal-quote-vals-high-d);--color-error-rgb: var(--pal-error-universal);--color-success-rgb: var(--pal-success-universal);--color-bg-hover: var(--pal-background-hover)}*,*:after,*:before{box-sizing:inherit}html{box-sizing:border-box;font-size:62.5%;scrollbar-gutter:stable;scroll-behavior:smooth}body{display:flex;color:var(--color-text-rgb);background-color:var(--color-bg-rgb);font-family:"Noto Sans Mono", monospace;font-size:1.8em;font-weight:400;letter-spacing:0.032em;line-height:1.8em}@media screen and (max-width: 800px){body{font-size:1.4em;line-height:1.6em}}img{max-width:100%}.container{margin:0 auto;max-width:1200px;width:100%;padding-left:2rem;padding-right:2rem}.wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.content{flex:1;margin-top:1.6rem;margin-bottom:2.4rem}.centered{display:flex;height:100%;align-items:center;justify-content:center}@media print{@page{size:auto;margin:0}nav,footer{display:none !important}html{font-size:36%;padding:32px}.content{margin-top:-24px}}:root{--ease-spring: linear(0, 0.009, 0.035 2.1%, 0.141 4.4%, 0.723 12.9%, 0.938 16.7%, 1.017, 1.077, 1.121, 1.149 24.3%, 1.159, 1.163, 1.161, 1.154 29.9%, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, 0.991, 0.977 51%, 0.974 53.8%, 0.975 57.1%, 0.997 69.8%, 1.003 76.9%, 1)}@view-transition{navigation:auto}.list ul li{transition:opacity 0.5s ease, transform 0.5s ease;transition-delay:calc((sibling-index()) * 50ms)}@starting-style{.list ul li{opacity:0;transform:translateY(-20px)}}.hover-pulse{animation:pulse .8s}@font-face{font-display:swap;font-family:'Special Elite';font-style:normal;font-weight:400;src:url("./fonts/SpecialElite-Regular.woff2") format("woff2")}@font-face{font-display:swap;font-family:'Noto Sans Mono';font-style:normal;font-weight:400;src:url("./fonts/NotoSansMono-Regular.woff2") format("woff2")}@font-face{font-display:swap;font-family:'Anonymous Pro';font-style:normal;font-weight:400;src:url("./fonts/AnonymousPro-Regular.woff2") format("woff2")}body{font-family:"Noto Sans Mono", monospace}h1,h2,h3,h4,h5,h6{color:var(--color-heading-rgb);text-wrap:pretty;font-weight:400;margin:3.2rem 0 1.4rem 0;letter-spacing:0.024em;line-height:1.1;font-family:"Special Elite", monospace}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{margin-right:0.5rem}h1 a:before,h2 a:before,h3 a:before,h4 a:before,h5 a:before,h6 a:before{display:none}h1{font-size:2.4em}h1::first-letter{color:var(--color-link-rgb)}h2{font-size:2em}h3{font-size:1.6em}h4{font-size:1.4em}h5{font-size:1.2em}h6{font-size:1em}@media screen and (max-width: 800px){h1{font-size:2em;margin-top:0}h2{font-size:1.8em}h3{font-size:1.6em}h4{font-size:1.4em}h5{font-size:1.2em}h6{font-size:1em}}a{position:relative;font-weight:400;color:var(--color-link-rgb);text-decoration:none;transition:color 0.2s cubic-bezier(0.8, 0, 0.2, 1)}a::before{content:"";position:absolute;left:50%;bottom:0;width:100%;height:2px;background-color:currentColor;transform:translateX(-50%) scaleX(0) scaleY(0.5);transition:transform 0.2s cubic-bezier(0.8, 0, 0.2, 1)}@media screen and (max-width: 800px){.top-nav-list a::before{display:none}}a[href*="http"]:not([href*="zelicko.dev"]){margin-right:0.35em}a[href*="http"]:not([href*="zelicko.dev"])::after{position:absolute;content:"↗";font-size:0.6em;margin-left:0.15em;margin-top:-0.35em;color:currentColor}a[href*="http"]:not([href*="zelicko.dev"]):has(+sup[id*="fnref"]){margin-right:1rem}a:hover,a:focus{color:var(--color-link-active-rgb);text-decoration:none}a:hover::before,a:hover:focus-visible::before,a:focus::before,a:focus:focus-visible::before{transform:translateX(-50%) scaleX(1) scaleY(0.5)}p{margin:1.8rem 0;text-shadow:0.5px 0.5px 0 rgba(0,0,0,0.05)}.footnotes>ol>li p{color:oklch(from currentColor l c h/50%);transition:color 0.3s ease-out}.footnotes li.active-footnote p{color:oklch(from currentColor l c h/100%)}blockquote:not(.alert){border-left:2px solid var(--color-quote-rgb);padding-left:1.6rem;font-style:italic}blockquote:not(.alert) p{color:var(--color-quote-rgb)}blockquote.alert{padding:0;border:2px solid var(--color-quote-rgb);background:var(--color-code-bg-rgb);border-radius:1.4rem;box-shadow:0 2px 6px 0 rgba(0,0,0,0.05);margin:1rem -3.2rem}blockquote.alert .alert-heading{display:flex;flex-direction:row;margin:0;background-color:var(--color-quote-rgb);border-radius:1.2rem 1.2rem 0 0}blockquote.alert .alert-heading-emoji{margin:0.4rem 0;width:3.2rem;text-align:center}blockquote.alert .alert-heading-text{margin:0.4rem 0}blockquote.alert>p{padding:1.6rem 3.2rem;margin:0}@media screen and (max-width: 800px){blockquote.alert{margin:1rem -1.6rem}blockquote.alert .alert-heading-emoji{width:2.8rem}blockquote.alert>p{padding:1.2rem}}blockquote.alert-tip{border:2px solid #a5d6a7;background:#e8f5e8}blockquote.alert-tip .alert-heading{background:#a5d6a7;color:#222;font-weight:bold}blockquote.alert-note{border:2px solid #90caf9;background:#e3f2fd}blockquote.alert-note .alert-heading{background:#90caf9;color:#222;font-weight:bold}blockquote.alert-info{border:2px solid #7986cb;background:#e8eaf6}blockquote.alert-info .alert-heading{background:#7986cb;color:#222;font-weight:bold}blockquote.alert-warning{border:2px solid #ffcc80;background:#fff8e1}blockquote.alert-warning .alert-heading{background:#ffcc80;color:#222;font-weight:bold}blockquote.alert-caution{border:2px solid #ffab91;background:#fff3e0}blockquote.alert-caution .alert-heading{background:#ffab91;color:#222;font-weight:bold}blockquote.alert-danger{border:2px solid #ef9a9a;background:#ffebee}blockquote.alert-danger .alert-heading{background:#ef9a9a;color:#222;font-weight:bold}pre{padding:2.4rem 2rem;white-space:pre-wrap;word-wrap:break-word;margin:2.4rem -2rem}@media screen and (max-width: 800px){pre{margin:2.4rem 0}}code{color:var(--color-code-text-rgb);background-color:var(--color-code-bg-rgb);font-family:"Anonymous Pro", monospace;font-weight:500;padding:4px 8px}.highlight{line-height:1.6}.highlight code{color:unset;background-color:unset;padding:0;font-weight:400}.theme-icon,.theme-char,.contrast-icon,.contrast-char{position:absolute;top:50%;left:50%;transform:var(--theme-transform, translate(-50%, -50%));transition:opacity 0.3s ease, transform 0.3s ease;color:var(--color-text-rgb)}.container.navigation{position:sticky;right:0;left:0;top:0;z-index:2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}[id]{scroll-margin-top:80px}.top-nav{border-bottom:1px solid oklch(from var(--color-bg-rgb) l c h/50%)}.top-nav{height:60px;display:flex;justify-content:space-between;align-items:center}.top-nav-title,.top-nav-link{color:var(--color-text-rgb);letter-spacing:0;transition:color 0.3s ease}.top-nav-right{display:flex;align-items:center;gap:24px}.top-nav-list{list-style:none;display:flex;gap:24px;z-index:100}.top-nav-list .is-active>a{color:var(--color-link-active-rgb)}.top-nav-item:has(.theme-toggle):has(.contrast-toggle){display:flex;align-items:center;gap:12px}.theme-toggle,.contrast-toggle{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;position:relative}.theme-toggle:hover,.contrast-toggle:hover{opacity:0.7}.theme-icon,.contrast-icon{width:20px;height:20px}.theme-char,.contrast-char{font-size:24px;user-select:none}.theme-icon-sun,.theme-char-sun{opacity:0;--theme-transform: translate(-50%, -50%) rotate(-90deg)}html:has(#theme-toggle:checked) .theme-icon-moon,html:has(#theme-toggle:checked) .theme-char-moon{opacity:0;--theme-transform: translate(-50%, -50%) rotate(90deg)}html:has(#theme-toggle:checked) .theme-icon-sun,html:has(#theme-toggle:checked) .theme-char-sun{opacity:1;--theme-transform: translate(-50%, -50%) rotate(0deg)}html:has(#contrast-toggle:checked) .contrast-icon,html:has(#contrast-toggle:checked) .contrast-char{--theme-transform: translate(-50%, -50%) rotate(180deg)}.mobile-menu{display:none;cursor:pointer}.mobile-menu .hb{width:100%;height:100%}.menu-arrow{display:none}@media screen and (max-width: 800px){.mobile-menu{display:block;width:28px;height:28px;color:var(--color-text-rgb)}.mobile-menu:not(:has(svg)){width:auto;height:auto}.top-nav-list{transition:opacity 0.3s ease-out, transform 0.3s ease-out, visibility 0.3s;visibility:hidden;opacity:0;transform:translateY(-25px);display:flex;flex-direction:column;gap:0;position:absolute;top:60px;left:0;right:0;padding-left:0;background-color:var(--color-bg-rgb);border-top:1px solid var(--color-border-rgb);border-bottom:1px solid var(--color-border-rgb);box-shadow:0 0 25px color-mix(in srgb, black 10%, transparent)}.menu-arrow{display:block;position:absolute;top:-8px;right:26px;width:16px;height:8px;color:var(--color-border-rgb);filter:drop-shadow(0 -1px 0 var(--color-border-rgb));opacity:0;transition:opacity 0.3s ease-out, color 0.2s ease-in-out}.top-nav-right:has(#menu-toggle:checked) #top-nav-items{visibility:visible;opacity:1;transform:translateY(-15px)}.top-nav-right:has(#menu-toggle:checked) #top-nav-items .menu-arrow{opacity:1}.top-nav-item{display:block;text-align:center;width:100%;border-top:1px solid color-mix(in srgb, var(--color-quote-rgb) 20%, transparent);transition:background-color 0.2s ease-in-out}.top-nav-item:hover{background-color:var(--color-bg-hover)}.top-nav-item:first-of-type{border-top:none}.top-nav-item:has(.theme-toggle):has(.contrast-toggle){display:flex;justify-content:center;align-items:center;gap:16px}.top-nav-item:has(.theme-toggle):has(.contrast-toggle) .top-nav-link{padding:16px 12px;width:auto}.top-nav-item .top-nav-link.theme-toggle{width:100%}.top-nav-item:last-child{border-top:1px solid var(--color-border-rgb)}.top-nav-link{display:block;padding:16px 24px}}table{border-collapse:collapse;border-top:2px solid var(--color-quote-rgb);border-bottom:2px solid var(--color-quote-rgb);width:100%}table td,table th{text-align:left;border:1px solid var(--color-quote-rgb);padding:0.8rem 1rem;font-size:1.6rem;line-height:1.2}table th{background-color:var(--color-bg-rgb);text-align:center !important;border-bottom:2px solid var(--color-quote-rgb)}table tr:nth-child(2n-1){background-color:oklch(from var(--color-bg-hover) l c h/5%)}table tr td:first-child,table tr th:first-child{border-left:0}table tr td:last-child,table tr th:last-child{border-right:0}.list .list-filter{width:100%;text-align:center}.list .list-filter a:not(.active){color:var(--color-text-rgb)}.list ul{list-style:none;margin:4rem 0;padding:0}.list ul li{display:flex;align-items:center;justify-content:space-between;padding:0.4rem 1rem;border-bottom:1px solid color-mix(in srgb, var(--color-quote-rgb) 20%, transparent);position:relative;z-index:1}.list ul li a{min-width:0;color:var(--color-text-rgb);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list ul li>span.date{flex:0 0 5.5rem;margin-left:1rem;text-align:right;color:var(--color-quote-rgb);font-style:italic;white-space:nowrap}.list ul li span.additional-info{position:absolute;right:13rem;opacity:0;transform:translateX(10px);transition:all 0.2s ease-in-out;pointer-events:none;white-space:nowrap;z-index:2}@media screen and (max-width: 800px){.list ul li span.additional-info{display:none}}.list ul li:hover span.additional-info{opacity:0.5;transform:translateX(0px)}@media screen and (max-width: 800px){.list ul li{padding:0.6rem 0}.list ul span{font-size:1.2rem}}.container.page:has(article.note){display:grid;grid-template-columns:1fr;gap:4rem;position:relative}@media (min-width: 1200px){.container.page:has(article.note){grid-template-columns:80rem minmax(0, 1fr);align-items:start;max-width:1200px}}article.note{margin-left:auto;margin-right:auto;width:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased !important;-moz-font-smoothing:antialiased !important;text-rendering:optimizelegibility !important}@media (min-width: 1200px){article.note{margin:0;min-width:0}}article.note .note-meta{margin:1.8rem 0}article.note .note-meta p{margin:0}article.note .note-categories a,article.note .note-tags a{color:var(--color-quote-rgb);font-weight:100}article.note nav{display:flex;justify-content:space-between}aside.toc-container{display:none}@media (min-width: 1200px){aside.toc-container{display:block;position:sticky;top:calc(60px + 2rem);height:fit-content;max-height:calc(100vh - (4rem + 2rem));overflow-y:auto}}@media (min-width: 1200px){nav.toc{padding-left:1rem;border-left:1px solid var(--color-quote-rgb)}nav.toc::after{content:"";position:absolute;inset:0;background:var(--color-link-active-rgb);width:2px;max-height:calc(100% - 5px);transform-origin:top;transform:scaleY(0);animation:scroll-progress linear both;animation-timeline:scroll(root block)}nav.toc h2{font-size:1.4rem;text-transform:uppercase;letter-spacing:0.1em;margin:0 0 1rem 0;color:var(--color-text-rgb);font-family:"Noto Sans Mono", monospace}nav.toc ul,nav.toc ol{list-style:none;padding:0;margin:0}nav.toc li{margin-bottom:0.6rem;line-height:1.4}nav.toc li::marker{content:none}nav.toc li a{display:block;color:var(--color-text-rgb);text-decoration:none;font-size:1.4rem;opacity:0.7;transition:all 0.2s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}nav.toc li a:hover{opacity:1;color:var(--color-link-rgb)}nav.toc li a::after,nav.toc li a::before{display:none}nav.toc li ul,nav.toc li ol{margin-top:0.4rem;padding-left:1.2rem}}@keyframes scroll-progress{from{transform:scaleY(0)}to{transform:scaleY(1)}}@supports (scroll-target-group: auto){nav.toc{scroll-target-group:auto}nav.toc a:target-current{opacity:1;color:var(--color-link-active-rgb);padding-left:0.5rem;margin-left:-0.5rem}}@supports not (scroll-target-group: auto){nav.toc a{opacity:0.7}nav.toc a:hover{opacity:1;color:var(--color-link-rgb)}}hr{border:0;border-top:1px dashed var(--color-text-rgb)}.link{color:var(--color-link-rgb)}li::marker{color:oklch(from var(--color-link-rgb) calc(l * 0.7) c h)}html{scrollbar-width:thin;scrollbar-color:oklch(from var(--color-text-rgb) l c h/20%) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:oklch(from var(--color-text-rgb) l c h/20%);border-radius:5px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:oklch(from var(--color-text-rgb) l c h/60%)}
