@charset "UTF-8";[id]{scroll-margin-top:2ex}:root{--base-font-family:"Nunito",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;--base-font-size:1.8rem;--base-line-height:1.5;--monospace-font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--monospace-font-size:1.65rem;--monospace-line-height:1.5;--content-max-width:800px;--content-horizontal-padding-xs:1.5rem;--content-horizontal-padding-md:2.5rem;--color-tomorrow-background:#202020;--color-tomorrow-foreground:#eaeaea;--color-tomorrow-red:#f1486d;--color-tomorrow-orange:#e78c45;--color-tomorrow-yellow:#e7c547;--color-tomorrow-green:#b9ca4a;--color-tomorrow-blue:#7aa6da;--color-tomorrow-cyan:#9cdcfe;--color-tomorrow-purple:#c397d8;--color-tomorrow-comment:#969896}blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,hr,html,iframe,legend,li,ol,p,pre,ul{margin:0;padding:0;font:inherit}html{box-sizing:border-box;background-repeat:no-repeat;-webkit-text-size-adjust:100%}*,::after,::before{box-sizing:inherit;background-repeat:inherit}::after,::before{text-decoration:inherit;vertical-align:inherit}[tabindex],a,area,button,input,label,select,summary{touch-action:manipulation}img{max-width:100%;height:auto}iframe{border:0}table{border-collapse:collapse;border-spacing:0;caption-side:bottom}th{text-align:left}hr{box-sizing:content-box;height:0}:root,[data-theme=default]{--color-accent:#783cb9;--color-text-default:#1f303e;--color-text-offset:#686c71;--color-text-accent:var(--color-accent);--color-text-interaction:#005aff;--color-text-success:#4d7500;--color-text-danger:#d22006;--color-background-default:#fff;--color-background-offset:#f1f3f6;--color-background-success:#ddf9c7;--color-background-warning:#fef2e4;--color-background-danger:#fff3f2;--color-background-info:#edf5ff;--color-background-disabled:#e6e6e2;--color-border-default:#dfe1e2;--color-border-success:#7d9b4e;--color-border-warning:#dd7533;--color-border-danger:#e9695f;--color-border-info:#4f97d1;--color-focus-ring:hsla(219, 100%, 50%, 0.5);--color-box-shadow:rgba(0, 0, 0, 0.1);--color-backdrop:rgba(255, 255, 255, 0.6);--button-primary-color:#0070ca;--button-secondary-color:#745da2;--button-secondary-focus-ring:#c39deb;--button-danger-color:var(--color-text-danger);--button-danger-focus-ring:#f2938c;--button-disabled-color:#76766a;--inverted-color-text-default:#fff;--inverted-color-background-default:#233c51;--inverted-color-text-interaction:#ffbe2e;--inverted-color-focus-ring:hsla(49, 100%, 49%, 0.5)}.dk-theme-picker{display:inline-block}.dk-theme-picker:empty{display:none}.dk-theme-picker button{--btn-color-background:rgba(0, 0, 0, 0.4);position:relative;width:4rem;height:4rem;overflow:hidden;padding:0;cursor:pointer}.dk-theme-picker button svg{position:absolute;top:.5rem;left:.5rem;width:3rem;height:3rem;color:var(--inverted-color-text-interaction);transition:transform 1s cubic-bezier(.4,0,.2,1);transform-origin:50% 100px;rotate:0deg}[data-theme=default] [data-theme-icon=default]{transform:rotate(-90deg)}[data-theme=dark] [data-theme-icon=dark]{transform:rotate(90deg)}[data-theme=dark]{color-scheme:dark;--color-accent:#aacdec;--color-text-default:#fff;--color-text-offset:#c9c9c9;--color-text-accent:var(--color-accent);--color-text-interaction:#ffbe2e;--color-text-success:#a3b72c;--color-text-danger:#ff8d7b;--color-background-default:#2d2e2f;--color-background-offset:#1c1d1f;--color-background-success:#3c4a29;--color-background-warning:#614527;--color-background-danger:#6f3331;--color-background-info:#2f4668;--color-background-disabled:#454540;--color-border-default:#5d5d52;--color-border-success:#7d9b4e;--color-border-warning:#dd7533;--color-border-danger:#e9695f;--color-border-info:#4f97d1;--color-focus-ring:#c2850c;--color-box-shadow:rgba(0, 0, 0, 0.5);--color-backdrop:rgba(0, 0, 0, 0.6);--button-primary-color:#ffbe2e;--button-secondary-color:#58b4ff;--button-secondary-focus-ring:#2c608a;--button-danger-color:var(--color-text-danger);--button-danger-focus-ring:#c3512c;--button-disabled-color:#919191;--inverted-color-text-default:#fff;--inverted-color-background-default:#1c1d1f;--inverted-color-text-interaction:var(--color-text-interaction);--inverted-color-focus-ring:hsla(49, 100%, 49%, 0.5)}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:local("Nunito"),url(fonts/nunito-v16-latin-regular.woff2) format("woff2"),url(fonts/nunito-v16-latin-regular.woff) format("woff")}@font-face{font-family:Nunito;font-style:italic;font-weight:400;font-display:swap;src:local("Nunito"),url(fonts/nunito-v16-latin-italic.woff2) format("woff2"),url(fonts/nunito-v16-latin-italic.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:local("Nunito"),url(fonts/nunito-v16-latin-700.woff2) format("woff2"),url(fonts/nunito-v16-latin-700.woff) format("woff")}html{font-size:62.5%;word-wrap:break-word}body{font-family:var(--base-font-family);font-size:var(--base-font-size);line-height:var(--base-line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text-default);background-color:var(--color-background-default)}code,pre{font-family:var(--monospace-font-family);font-size:var(--monospace-font-size);line-height:var(--monospace-line-height)}pre{overflow:auto;padding:var(--content-horizontal-padding-xs);margin-left:calc(var(--content-horizontal-padding-xs) * -1);margin-right:calc(var(--content-horizontal-padding-xs) * -1);background-color:var(--color-background-offset)}@media (min-width:768px){pre{border-radius:5px}}a{color:var(--color-text-interaction);text-decoration:none;text-underline-offset:.3rem}a:focus,a:hover{text-decoration:underline;text-decoration-thickness:.2rem;text-underline-offset:.5rem}hr{border:none;border-top:1px solid var(--color-border-default)}blockquote{margin:2rem 0;padding:2rem 3rem;border-left:.4rem solid var(--color-accent);border-radius:.4rem;background-color:var(--color-background-offset)}table{display:block;width:-moz-max-content;width:max-content;max-width:100%;overflow:auto;margin-right:auto;margin-left:auto}td,th{padding:1rem 2rem 1rem 1rem;vertical-align:top}tbody tr:nth-child(odd){background-color:var(--color-background-offset)}.article-section,blockquote,dl,figure,ol,p,pre,section,table,ul{margin-bottom:2.4rem}.article-section:last-child,blockquote:last-child,dl:last-child,figure:last-child,ol:last-child,p:last-child,pre:last-child,section:last-child,table:last-child,ul:last-child{margin-bottom:0}blockquote{margin-top:3rem;margin-bottom:3rem;font-style:italic}ol,ul{margin-top:.7rem;margin-left:3.8rem}ol ol,ul ul{margin-bottom:0}ul{list-style:disc outside}ul ul{list-style-type:circle}ul ul ul{list-style-type:square}li{padding-left:.5rem}li+li{margin-top:.5rem}hr{margin-top:4rem;margin-bottom:4rem}h1{font-size:3.8rem;line-height:1;font-weight:800;margin-bottom:4rem}h2{font-size:3rem;line-height:1.2;font-weight:700;margin-bottom:3rem}h2:not(:first-child){margin-top:5.8rem}hr+h2:not(:first-child){margin-top:4rem}h3{font-size:2.4rem;line-height:1.25;font-weight:500;margin-top:4.2rem;margin-bottom:1.8rem}h4{font-size:2rem;line-height:1.35;font-weight:500;margin-top:3.2rem;margin-bottom:1.8rem}.prose a{text-decoration-line:underline;transition:text-underline-offset .1s}.prose a:focus{transition:none}code{display:inline-block;padding:0 .6rem;color:var(--color-text-default);background-color:var(--color-background-offset);border:1px solid var(--color-border-default)}code{white-space:pre-wrap;word-break:break-word;border-radius:5px}pre code{padding:0 var(--content-horizontal-padding-xs) 0 0;white-space:pre;color:inherit;background-color:inherit;border:none}.inverted{--color-text-default:var(--inverted-color-text-default);--color-text-interaction:var(--inverted-color-text-interaction);--color-background-default:var(--inverted-color-background-default);--color-focus-ring:var(--inverted-color-focus-ring);color:var(--inverted-color-text-default);background:var(--inverted-color-background-default)}main{max-width:var(--content-max-width);margin:0 auto;padding:2rem var(--content-horizontal-padding-xs)}@media (min-width:768px){main{padding:2rem var(--content-horizontal-padding-md)}}body,html{height:100%}body{display:flex;flex-direction:column}main{flex:1 0 auto;width:100%;max-width:var(--content-max-width);margin:5rem auto;padding:0 var(--content-horizontal-padding-xs)}@media (min-width:768px){main{padding:0 var(--content-horizontal-padding-md)}}footer,header{flex:none;display:flex;justify-content:center;align-items:center;text-align:center;padding:4rem 1rem}header h1{max-width:var(--content-max-width);margin:0;padding:0;border:none;cursor:default;font-size:3.2rem;font-weight:600;line-height:1.5}footer{flex-direction:column;font-size:1.6rem}footer>*{margin:.6rem}button,input,select{font:inherit;color:inherit;line-height:inherit;margin:0}button,select{text-transform:none}input,progress{accent-color:var(--color-text-interaction)}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;padding:.5rem 1.25rem}[type=date],[type=email],[type=month],[type=number],[type=password],[type=search],[type=text],[type=time],[type=url],select{padding:.5rem .75rem}[type=search]{outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration,[type=search]::-webkit-search-results-button,[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.btn{--btn-variant-color:var(--button-primary-color);--btn-color-text:var(--color-background-default);--btn-color-background:var(--btn-variant-color);--btn-border-color:var(--btn-variant-color);display:inline-flex;align-items:center;height:var(--btn-height,3.6rem);padding:var(--btn-padding,0 1.4rem);border:1px solid var(--btn-border-color);border-radius:.4rem;letter-spacing:.025em;white-space:nowrap;color:var(--btn-color-text);background-color:var(--btn-color-background);transition:all .15s ease}.btn:active{transform:translateY(1px)}.btn[disabled],.btn[disabled]:hover{color:var(--button-disabled-color);background-color:var(--color-background-default);border-color:var(--button-disabled-color);opacity:.4;pointer-events:none}.input{color:var(--color-text-default);background-color:var(--color-background-default);border-radius:.4rem;border:1px solid var(--color-border-default)}.input:disabled{background-color:var(--color-background-disabled)}@keyframes spin{to{transform:rotate(360deg)}}dk-alert-box{display:block;margin:3rem 0;padding:2rem 3rem;border:1px solid var(--alert-border);border-left-width:.5rem;border-radius:.4rem;background-color:var(--alert-background)}dk-alert-box[type=info]{--alert-border:var(--color-border-info);--alert-background:var(--color-background-info)}dk-alert-box[type=warning]{--alert-border:var(--color-border-warning);--alert-background:var(--color-background-warning)}dk-alert-box[type=danger]{--alert-border:var(--color-border-danger);--alert-background:var(--color-background-danger)}dk-alert-box[type=success]{--alert-border:var(--color-border-success);--alert-background:var(--color-background-success)}.text-default{color:var(--color-text-default)}.text-offset{color:var(--color-text-offset)}.bg-transparent{background-color:transparent}.text-right{text-align:right}.text-center{text-align:center}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.w-full{width:100%}.relative{position:relative}.absolute{position:absolute}.border{--border-color:var(--color-border-default);border:1px solid var(--border-color)}.border-0{border:none}.border-top{border-top:1px solid var(--color-border-default)}.border-bottom{border-bottom:1px solid var(--color-border-default)}.rounded{border-radius:.4rem}.rounded-full{border-radius:9999px}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}a.anchor{margin-right:1rem}a.anchor:hover{text-decoration:none}.icon--anchor{width:1.6rem;height:1.6rem}h2,h3,h4{position:relative}@media (min-width:850px){a.anchor{position:absolute;left:-2.7rem}}:focus-visible{box-shadow:0 0 0 .2rem var(--color-focus-ring);outline:transparent solid .2rem}::-moz-focus-inner{border:0;padding:0}@media print{.print-hidden{display:none!important}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important}}code[class*=language-],pre[class*=language-]{font-family:var(--monospace-font-family);font-size:var(--monospace-font-size);line-height:var(--monospace-line-height);color-scheme:dark;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;hyphens:none}.token.bold{font-weight:700}.language-shell .line::before,code.language-shell::before{content:"$ "}pre[class*=language-]{color:var(--color-tomorrow-foreground);background:var(--color-tomorrow-background)}.token.comment,.token.doctype,.token.prolog{color:var(--color-tomorrow-comment)}.token.attr-name,.token.deleted,.token.namespace,.token.regex,.token.tag{color:var(--color-tomorrow-red)}.token.boolean,.token.function,.token.number{color:var(--color-tomorrow-orange)}.token.class-name,.token.constant,.token.property,.token.symbol{color:var(--color-tomorrow-yellow)}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:var(--color-tomorrow-purple)}.token.attr-value,.token.char,.token.inserted,.token.string,.token.variable{color:var(--color-tomorrow-green)}.token.operator,.token.url{color:var(--color-tomorrow-cyan)}.cow{right:5%;bottom:0;line-height:0;height:18px;transition:height .5s ease}.cow-active,.cow:focus,.cow:hover{height:92px}.cow-tooltip{width:200px;left:-200px;top:0;color:#1f303e;background-color:#fff;line-height:var(--base-line-height);transition:opacity .3s linear,visibility .3s linear}.photo{border:5px solid #fff;box-shadow:0 0 3px 0 rgba(0,0,0,.3)}.projects{display:flex;justify-content:space-around;flex-wrap:wrap}.project{margin:1rem 1rem 3.5rem;text-align:center;width:100%;max-width:335px}.project img{border:1px solid #eee;border-radius:3px;box-sizing:content-box;max-width:100%}article nav ol li li{list-style-type:disc}@keyframes wink{0%{transform:rotate(0)}50%{transform:rotate(45deg)}100%{transform:rotate(0)}}.wink{animation:wink .4s 3 ease-in-out}lite-youtube{background-color:#000;position:relative;display:block;contain:content;background-position:center center;background-size:cover;cursor:pointer;max-width:720px}lite-youtube::after{content:"";display:block;padding-bottom:56.1875%}lite-youtube>iframe{width:100%;height:100%;position:absolute;top:0;left:0}lite-youtube>.lty-playbtn{width:68px;height:48px;position:absolute;transform:translate3d(-50%,-50%,0);top:50%;left:50%;z-index:1;background-color:transparent;background-image:url();filter:grayscale(100%);transition:filter .1s cubic-bezier(0,0,.2,1);border:none}lite-youtube .lty-playbtn:focus,lite-youtube:hover>.lty-playbtn{filter:none}lite-youtube.lyt-activated{cursor:unset}lite-youtube.lyt-activated::before,lite-youtube.lyt-activated>.lty-playbtn{opacity:0;pointer-events:none}.dk-chart tbody tr{background:0 0}.dk-chart td,.dk-chart th{padding:.6rem .8rem;vertical-align:middle}.dk-chart td:last-child{padding-right:5rem}.dk-chart .dk-chart-bar{width:calc(var(--dk-chart-value) * 100%);height:2rem;border-radius:0 .4rem .4rem 0;border:1px solid #274863;background:#4f97d1}.dk-chart .dk-chart-value{position:absolute;right:-1rem;top:50%;transform:translate3d(100%,-50%,0)}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.right-0{right:0}.left-0{left:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mt-2{margin-top:.5rem}.mt-6{margin-top:2rem}.mt-8{margin-top:4rem}.mr-1{margin-right:.2rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.8rem}.mr-5{margin-right:1.5rem}.mr-auto{margin-right:auto}.mb-1{margin-bottom:.2rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.5rem}.mb-6{margin-bottom:2rem}.mb-7{margin-bottom:3rem}.mb-8{margin-bottom:4rem}.ml-0{margin-left:0}.ml-1{margin-left:.2rem}.ml-2{margin-left:.5rem}.ml-5{margin-left:1.5rem}.ml-6{margin-left:2rem}.ml-7{margin-left:3rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-2{height:.5rem}.w-2{width:.5rem}.w-full{width:100%}.max-w-content{max-width:var(--content-max-width)}.flex-shrink-0{flex-shrink:0}.flex-shrink{flex-shrink:1}.flex-grow{flex-grow:1}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-6{gap:2rem}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.8rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.8rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.hover\:border-transparent:hover{border-color:transparent}.bg-transparent{background-color:transparent}.bg-tomorrow-orange{background-color:var(--color-tomorrow-orange)}.hover\:bg-inverted:hover{background-color:var(--inverted-color-background-default)}.p-0{padding:0}.p-4{padding:1rem}.p-5{padding:1.5rem}.px-3{padding-left:.8rem;padding-right:.8rem}.px-6{padding-left:2rem;padding-right:2rem}.px-7{padding-left:3rem;padding-right:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.8rem;padding-bottom:.8rem}.py-5{padding-top:1.5rem;padding-bottom:1.5rem}.py-7{padding-top:3rem;padding-bottom:3rem}.pb-1{padding-bottom:.2rem}.pb-2{padding-bottom:.5rem}.pb-7{padding-bottom:3rem}.pl-1{padding-left:.2rem}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--monospace-font-family)}.text-2{font-size:1.4rem;line-height:1.6}.text-3{font-size:1.8rem;letter-spacing: 0.1rem;line-height:1.5}.text-4{font-size:1.8rem;line-height:1.5}.text-5{font-size:2rem;line-height:1.35}.text-6{font-size:2.4rem;line-height:1.25}.font-bold{font-weight:700}.leading-none{line-height:1}.tracking-tighter{letter-spacing:-.05em}.text-default{color:var(--color-text-default)}.text-offset{color:var(--color-text-offset)}.hover\:text-inverted-default:hover{color:var(--inverted-color-text-default)}.underline{text-decoration:underline}.hover\:no-underline:hover{text-decoration:none}.focus\:no-underline:focus{text-decoration:none}.opacity-0{opacity:0}.opacity-100{opacity:1}*,::after,::before{--tw-shadow:0 0 #0000}h1{text-wrap:balance}.icon{width:1.6rem;height:1.6rem}footer .icon--cow{width:3.8rem;height:3.8rem}.h-base{height:calc(var(--base-font-size) * var(--base-line-height))}.list-none{list-style-type:none}.align-middle{vertical-align:middle}@media (min-width:768px){md\:text-left{text-align:left}}.focus\:text-inverted-default:focus{color:var(--inverted-color-text-default)}.focus\:bg-inverted:focus{background-color:var(--inverted-color-background-default)}.focus\:border-transparent:focus{border-color:transparent}.post-list{grid-template-columns:max-content auto;grid-template-areas:"post-icon post-title" ". post-date"}@media (min-width:768px){.post-list{grid-template-columns:max-content auto max-content;grid-template-areas:"post-icon post-title post-date"}}.post-list-icon{grid-area:post-icon}.post-list-title{grid-area:post-title}.post-list-date{grid-area:post-date}@media (min-width:768px){.md\:flex-row{flex-direction:row}.md\:text-left{text-align:left}}