﻿:root{--black: hsla(0, 0%, 0%, 1);--white: hsla(0, 0%, 100%, 1);--off-white: hsla(0, 0%, 95%, 1);--off-black: hsla(0, 0%, 10%, 1);--gray-80: hsl(0, 0%, 80%);--baby-powder: hsla(30, 100%, 99%, 1);--ash-gray: hsla(120, 12%, 81%, 1);--russian-violet: hsla(289, 54%, 22%, 1);--razzle-dazzle-rose: hsla(317, 100%, 62%, 1);--yellow: hsla(61, 100%, 48%, 1);--fluorescent-cyan: hsla(181, 100%, 45%, 1);--skobeloff: hsla(178, 100%, 24%, 1);--golden-sand: hsla(40, 80%, 69%, 1);--black-rock: hsla(220, 16%, 22%, 1);--solitude: hsla(218, 27%, 94%, 1);--color-text: var(--off-black);--color-background: var(--white);--color-background-tint: var(--gray-80);--color-light: var(--gray-80);--color-primary: var(--fluorescent-cyan);--color-secondary: var(--russian-violet);--color-accent: var(--razzle-dazzle-rose);--color-highlight: var(--golden-sand);--background: var(--solitude);--background-soft: hsl(219, 28%, 88%);--background-pattern: radial-gradient( var(--color-background-tint) 1px, var(--color-background) 1px );--foreground: var(--black-rock);--foreground-soft: color-mix(in srgb, var(--solitude) 30%, var(--black-rock));--gradientStart: var(--color-primary);--gradientEnd: var(--color-accent);--gradient: linear-gradient( 45deg, var(--gradientStart) 10%, var(--gradientEnd) 50%, transparent 100% );--font-system: system-ui, -apple-system, sans-serif;--font-base: var(--font-system);--font-headings: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--step--1: clamp(0.94rem, calc(0.91rem + 0.13vw), 1.03rem);--step-0: clamp(1rem, calc(1rem + 0.12vw), 1.15rem);--step-1: clamp(1.2rem, calc(1.16rem + 0.19vw), 1.33rem);--step-2: clamp(1.44rem, calc(1.34rem + 0.48vw), 1.78rem);--step-3: clamp(1.73rem, calc(1.55rem + 0.92vw), 2.37rem);--step-4: clamp(2.07rem, calc(1.76rem + 1.55vw), 3.16rem);--step-5: clamp(2.49rem, calc(2rem + 2.46vw), 4.21rem);--leading-tight: 1.1;--leading-default: 1.4;--leading-loose: 1.6;--tracking: -0.02ch;--tracking-s: -0.055ch;--measure-default: 70ch;--measure-tight: 48ch;--wrapper-max: 64rem;--breakpoint--sm: 544px;--breakpoint--md: 768px;--breakpoint--lg: 1012px;--breakpoint--xl: 1280px;--unit: 1rem;--space-3xs: clamp(0.25rem, calc(0.25rem + 0vw), 0.25rem);--space-2xs: clamp(0.5rem, calc(0.5rem + 0vw), 0.5rem);--space-xs: clamp(0.75rem, calc(0.75rem + 0vw), 0.75rem);--space-s: clamp(1rem, calc(1rem + 0vw), 1rem);--space-m: clamp(1.5rem, calc(1.5rem + 0vw), 1.5rem);--space-l: clamp(2rem, calc(2rem + 0vw), 2rem);--space-xl: clamp(3rem, calc(3rem + 0vw), 3rem);--space-2xl: clamp(4rem, calc(4rem + 0vw), 4rem);--space-3xl: clamp(6rem, calc(6rem + 0vw), 6rem);--space-3xs-2xs: clamp(0.25rem, calc(0.18rem + 0.36vw), 0.5rem);--space-2xs-xs: clamp(0.5rem, calc(0.43rem + 0.36vw), 0.75rem);--space-xs-s: clamp(0.75rem, calc(0.68rem + 0.36vw), 1rem);--space-s-m: clamp(1rem, calc(0.86rem + 0.71vw), 1.5rem);--space-m-l: clamp(1.5rem, calc(1.36rem + 0.71vw), 2rem);--space-l-xl: clamp(2rem, calc(1.71rem + 1.43vw), 3rem);--space-xl-2xl: clamp(3rem, calc(2.71rem + 1.43vw), 4rem);--space-2xl-3xl: clamp(4rem, calc(3.43rem + 2.86vw), 6rem);--space-s-l: clamp(1rem, calc(0.71rem + 1.43vw), 2rem);--border-radius: var(--step-0);--border-radius-small: 1rem;--transition-base: 250ms ease;--focus-outline: 0.3ch solid var(--golden-sand)}@media(prefers-color-scheme: dark){:root{--color-text: var(--off-black);--color-background: var(--white);--color-background-tint: var(--gray-80);--color-light: var(--gray-80);--color-primary: var(--fluorescent-cyan);--color-secondary: var(--russian-violet);--color-accent: var(--razzle-dazzle-rose);--color-highlight: hsl(216, 100%, 18%);--background: var(--solitude);--background-soft: hsl(219, 28%, 88%);--background-pattern: radial-gradient( var(--color-background-tint) 1px, var(--color-background) 1px );--foreground: var(--black-rock);--foreground-soft: color-mix(in srgb, var(--solitude) 30%, var(--black-rock));--gradientStart: var(--color-primary);--gradientEnd: var(--color-accent);--gradient: linear-gradient( 45deg, var(--gradientStart) 10%, var(--gradientEnd) 50%, transparent 100% )}}h1{font-family:var(--font-base);font-weight:900;color:var(--color-text);font-size:var(--step-4);line-height:var(--leading-tight)}h2{font-family:var(--font-base);font-weight:800;color:var(--color-text);font-size:var(--step-2);line-height:var(--leading-tight)}h3{font-family:var(--font-base);font-weight:600;color:var(--color-text);font-size:var(--step-1);line-height:var(--leading-default)}h4,h5,h6{font-family:var(--font-base);font-weight:600;color:var(--color-text);font-size:var(--step-1);line-height:var(--leading-default)}figcaption,p,li,body{font-family:var(--font-base);font-weight:400;color:var(--color-text);line-height:var(--leading-default)}*,*::before,*::after{box-sizing:border-box}@media(prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}::selection{background:var(--foreground);color:var(--background)}:focus{transition:var(--transition-base);outline:var(--focus-outline);outline-offset:.3ch;text-decoration:none}:focus:not(:focus-visible){outline:none}:target{scroll-margin-top:2ex}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-feature-settings:normal;font-variant-ligatures:common-ligatures;text-rendering:optimizeSpeed;font-variation-settings:"slnt" 0;overflow-y:scroll}html:focus-within{scroll-behavior:smooth}body{margin:0;display:flex;min-height:100vh;flex-direction:column;color:var(--color-text);font-family:var(--font-base);background-color:var(--color-background);background-image:var(--background-pattern);background-size:20px 20px;background-attachment:fixed;padding-top:10px;font-size:var(--step-0);line-height:1.4;letter-spacing:var(--tracking)}body::before{content:"";height:10px;background-color:var(--color-primary);position:fixed;left:0;right:0;top:0;z-index:2}h1,h2,h3,h4,h5,h6,hgroup{max-width:var(--measure-tight);margin:0}p,ul,ol,li,figure,figcaption,blockquote,pre,hr{margin:0}ul,ol{list-style-position:outside}ul{margin-inline-start:-1.5em}ol{margin-inline-start:-0.5em}li{margin-block-start:.5em}figure{position:relative;margin:0;padding:0}figcaption{padding:var(--space-xs-s) 0;max-width:var(--measure-default)}p,li{max-width:var(--measure-default)}hr{border:0;height:2px;background-image:var(--gradient);border-radius:var(--unit);transform:rotate(-1.5deg);text-align:center;max-width:15ch;margin-left:0}figure>figcaption{position:absolute;bottom:var(--unit);left:var(--unit);color:var(--color-text);margin-right:var(--space-s-m);background-color:var(--white);padding:var(--space-3xs) var(--space-xs);box-shadow:0px 4px color-mix(in srgb, var(--white), var(--white) 9%);border-radius:var(--border-radius);font-size:var(--step--1)}figure>figcaption::selection{background:#efc571;color:#2e3440}ul{list-style:square;padding-left:0;margin-left:20px}li::marker{color:var(--color-primary)}blockquote:not([class]) p:last-of-type{font-weight:normal}blockquote p::before{content:open-quote}blockquote p::after{content:close-quote}blockquote{position:relative;padding-left:1em;border-left:.2em solid var(--color-primary);max-width:48rem}a:not(.button){color:inherit;text-decoration:none;box-shadow:inset 0 -0.1em 0 0 #ddd;transition-property:box-shadow,color;transition-duration:.2s,.4s;transition-timing-function:cubic-bezier(0, 0, 0.58, 1)}a:not(.button):hover{color:#888;box-shadow:inset 0 -0.25em 0 0 #ddd}a[href^="//"]:not(.button):after,a[href^="http://"]:not(.button):after,a[href^="https://"]:not(.button):after{content:"↗";font-family:system-ui,-apple-system,sans-serif;font-style:normal;font-weight:900;padding-left:2px;line-height:.75;font-size:.8em}code{font-family:var(--font-mono);font-size:95%}p>code,li>code{background-color:var(--background-soft);padding:.2ch .5ch}b,strong{font-weight:800}sub{line-height:0;vertical-align:sub;font-size:.75rem}sup{line-height:0;vertical-align:super;font-size:.75rem;color:var(--color-accent)}mark{background-color:#efc571;color:#2e3440}img,video{max-width:100%;height:auto;display:block}img{font-weight:300;line-height:2;text-align:center;height:auto;display:block;position:relative;min-height:50px}img::after{content:"🚫" " Broken image of " attr(alt);font-size:16px;color:var(--color-text);display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--color-background);border:1px dashed var(--color-background-tint);align-items:center;justify-content:center}picture{display:block;position:relative}picture>img{height:100%;position:absolute}input,button,optgroup,textarea,select{font-family:inherit;margin:0}label,input,textarea{width:100%;display:block}button{margin:0;padding:0}label{padding:calc(var(--unit)/2) 0}form{max-width:var(--measure-tight)}form label{display:none}input,textarea{width:100%;padding:1em;margin-bottom:1em;font-size:1rem}input,textarea{border:2px solid var(--color-secondary)}button,.button{position:relative;display:inline-block;width:auto;height:auto;background-color:rgba(0,0,0,0);border:none;cursor:pointer;margin-right:25px;min-width:150px}button::before,button::after,.button::before,.button::after{position:absolute;content:"";width:100%;height:2px;background-color:#363837;z-index:2;transition:.35s}button::before,.button::before{top:0;right:0}button::after,.button::after{bottom:0;left:0}button:hover::before,button:hover::after,.button:hover::before,.button:hover::after{width:0%;transition:.2s .2s ease-out}button span,.button span{position:relative;display:inline-block;font-size:14px;font-weight:bold;letter-spacing:2px;text-transform:uppercase;top:0;left:0;width:100%;padding:15px 20px;transition:.3s;color:#1c1f1e;border:2px solid var(--color-primary);transition:.2s}button span:hover::before,button span:hover::after,.button span:hover::before,.button span:hover::after{height:0%}button span::before,button span::after,.button span::before,.button span::after{position:absolute;content:"";width:2px;height:100%;background-color:var(--color-secondary);z-index:2;transition:.25s}button span::before,.button span::before{bottom:0;right:-2px}button span::after,.button span::after{top:0;left:-2px}table,fieldset{margin:0}table{width:100%;border:1px solid var(--foreground-soft);border-collapse:collapse}table{border:0;font-size:1rem}table br{display:none}thead{border:none;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}tr{border:1px solid var(--color-text);display:block;margin-bottom:.625em}td{border-bottom:1px solid var(--color-text);display:block;min-height:30px;padding:.25em .5em}td::before{content:attr(data-label);float:left;font-weight:bold}td:last-child{border-bottom:0}@media(min-width: 800px){table{border-collapse:collapse;margin:0;padding:0;width:100%;table-layout:fixed}table br{display:block}thead{position:static;display:table-header-group}caption{margin:.5em 0 .75em}tr{border:0;border-bottom:1px solid var(--color-text);padding:.35em;margin:0;display:table-row}td{border:none}td::before{display:none}th,td{padding:.625em;text-align:left;display:table-cell}}.content{max-width:var(--measure-default)}.home .content{display:flex;align-items:center;flex-direction:column;max-width:none;margin:0 auto}.home .content *{margin-top:0}.content>*+*{margin-top:var(--space-m, 1em)}main{flex:1}.home main{display:flex}.wrapper{margin:5vw}.home .wrapper{display:flex;align-items:center;text-align:center;flex:1;margin:-5rem 0 0}.header{padding:var(--unit);z-index:1}.skip-link{z-index:20;outline:none;top:1.5rem;left:1.5rem;font-weight:500;color:var(--color-text);background-color:var(--color-primary);padding:.5em 1em;text-decoration:none;position:fixed;box-shadow:none}.skip-link:hover{color:var(--background);box-shadow:none}.footer{display:flex;justify-content:center;padding:var(--unit);flex-wrap:wrap;border-top:1px solid var(--color-background-tint)}.footer p{margin:0;font-size:small;max-width:none}.footer a:link{font-style:normal;font-weight:normal;color:#000;text-decoration:none;border-style:none}.navigation{display:flex;justify-content:flex-end}.navigation-item,.navigation-label{padding:calc(var(--unit)/2)}.navigation-item:last-of-type,.navigation-label:last-of-type{padding-right:0}.navigation-link.active{box-shadow:inset 0 -0.25em 0 0 var(--color-primary)}.postlist-date,.postlist-item:before{font-size:.8125em;color:var(--black-rock)}.postlist-date{word-spacing:-0.5px}.postlist-date{word-spacing:-0.5px;font-size:.8125em;margin:0 .5rem}.post-meta{list-style:none;margin:0 0 var(--space-s-2xl) 0;padding:0;text-transform:uppercase;font-size:var(--step--1);display:inline-flex}@media(min-width: 600px){.post-meta{display:flex;gap:var(--space-3xs)}.post-meta-reading-time::before{content:"•";display:inline-block;padding-left:var(--space-2xs);padding-right:var(--space-2xs)}}.post-meta-date,.post-meta-reading-time{color:var(--foreground-soft)}.post-list__wrapper{margin-top:6rem}.post-list__heading{font-size:1.875rem;font-size:var(--text-3xl);margin-bottom:1rem}.post-list{list-style:none}.post-list__item{display:flex;flex-direction:column;padding-bottom:2rem;padding-top:2rem}.post-list__meta{font-size:.875rem;font-size:var(--text-sm);margin-top:1rem;color:#757575}.post-list__meta>*+*{margin-left:1rem}.post-list__excerpt{margin-top:1rem}.post-list__read-more{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;font-size:1rem;text-transform:capitalize;margin-top:1rem}.links-nextprev{margin:3rem 0 2rem}a[rel=tag],a[rel=tag]:visited{text-transform:uppercase;background-color:var(--background);color:var(--color-secondary);box-shadow:none !important;display:inline-block;vertical-align:text-top;letter-spacing:.1em;font-size:.625em;padding:0 .5em;line-height:2em;border-radius:.25em;text-decoration:none;margin:0 .5em .5em 0}a[rel=tag]:hover{background-color:var(--color-primary);color:var(--color-secondary)}a[rel=tag]:last-child{margin-right:0}.footnotes a{box-shadow:none;word-wrap:break-word}.footnotes p{margin:0}.footnotes ::marker{color:inherit}.footnotes :target{background:var(--color-primary)}.footnotes-sep{border:0;margin:1.35em auto;max-width:100%;background-position:50%;box-sizing:border-box;border-width:0 0 1px;transform:none;background:none;border-image:linear-gradient(90deg, transparent, var(--color-primary) 50%, transparent 100%) 0 0 100%;border-style:solid}.visually-hidden:not(:focus){clip:rect(0 0 0 0);clip-path:inset(50%);border:0;block-size:1px;inline-size:1px;padding:0;overflow:hidden;position:absolute;white-space:nowrap}:root{--xonokai0: #2a2a2a;--xonokai1: #76d9e6;--xonokai2: #e6d06c;--xonokai3: #a6e22d;--xonokai4: #ef3b7d;--xonokai5: #f9f9f9;--xonokai6: #bebec5;--xonokai7: #a77afe;--xonokai8: #6f705e;--xonokai9: #7a6652;--xonokai10: #e1e1e8;--xonokai11: #ffffff;--xonokai12: #000000}code[class*=language-],pre[class*=language-]{background:none;font-family:var(--font-mono);text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:pre-wrap;color:var(--xonokai1);text-shadow:none}code[class*=language-]{padding-right:var(--space-s-l)}[class*=language-]::selection,[class*=language-] *::selection{background:var(--xonokai2);color:var(--xonokai0)}pre,pre[class*=language-]{background:var(--xonokai0);padding:var(--space-s-l);overflow:auto}pre[class*=language-] code{white-space:pre;display:block}:not(pre)>code[class*=language-]{padding:.1em;white-space:normal;padding:.15em .2em .05em;border-radius:.3em;border:.13em solid var(--xonokai9);box-shadow:1px 1px .3em -0.1em var(--xonokai12) inset}.token.namespace{opacity:.7}.token.important,.token.statement,.token.bold{font-weight:bold}.token.entity{cursor:help}.token.italic{font-style:italic}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--xonokai8)}.token.operator,.token.boolean,.token.number{color:var(--xonokai7)}.token.attr-name,.token.string{color:var(--xonokai2)}.token.entity,.token.url,.language-css .token.string,.style .token.string{color:var(--xonokai2)}.token.selector,.token.inserted{color:var(--xonokai3)}.token.atrule,.token.attr-value,.token.keyword,.token.important,.token.deleted{color:var(--xonokai4)}.token.regex,.token.statement{color:var(--xonokai1)}.token.placeholder,.token.variable{color:var(--xonokai11)}.token.punctuation{color:var(--xonokai6)}code.language-markup{color:var(--xonokai5)}code.language-markup .token.tag{color:var(--xonokai4)}code.language-markup .token.attr-name{color:var(--xonokai3)}code.language-markup .token.attr-value{color:var(--xonokai2)}code.language-markup .token.style,code.language-markup .token.script{color:var(--xonokai1)}code.language-markup .token.script .token.keyword{color:var(--xonokai1)}.line-highlight.line-highlight{padding:0;background:rgba(255,255,255,.08)}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{padding:.2em .5em;background-color:rgba(255,255,255,.4);color:var(--xonokai12);height:1em;line-height:1em;box-shadow:0 1px 1px rgba(255,255,255,.7)}a.github{box-shadow:none}a.github::before{content:"";display:inline-block;vertical-align:text-bottom;width:1em;height:1em;margin:0 .2em;background-size:contain;background-repeat:no-repeat;background-image:url(https://avatars.mina.codes/https%3A%2F%2Fgithub.com%2F/)}a.invisible::after{content:"" !important}.title{max-width:30em;width:80vw}