@charset "UTF-8";.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}html.dark{--color-text-main: #e6e6e6;--color-text-secondary: #999999;--color-text-link: #ffffff;--color-bg-main: #0d1117;--color-footer-accent: rgba(34, 41, 57, .3);--color-profile-bg: rgba(255, 255, 255, .2);--color-profile-outline: rgb(175, 175, 175);--color-tag-bg: rgb(34, 41, 57);--color-tag-text: #e6e6e6;--color-dot-bg: #0d1117;--color-dot: #2f353c;--color-dot-mask: #000000;--color-prose-mark-bg: rgb(255, 57, 86);--color-prose-mark-text: white;--profile-image: url(https://pixelprotest.com/images/851b8772-f7e6-494b-8612-e52b41665b00/posthero)}html:not(.dark){--color-text-main: #1a1a1a;--color-text-secondary: #555555;--color-text-link: #000000;--color-bg-main: #eef5fc;--color-footer-accent: rgba(229, 233, 240, .3);--color-profile-bg: rgba(0, 0, 0, .4);--color-profile-outline: rgb(135, 135, 135);--color-tag-bg: rgb(229, 233, 240);--color-tag-text: #1a1a1a;--color-dot-bg: #ffffff;--color-dot: rgba(165, 174, 184, .3137254902);--color-dot-mask: #ffffff;--color-prose-mark-bg: rgb(255, 57, 86);--color-prose-mark-text: white;--profile-image: url(https://pixelprotest.com/images/851b8772-f7e6-494b-8612-e52b41665b00/posthero)}html{--color-colorA: rgb(255, 57, 86);--color-colorB: rgb(255, 127, 57);--color-colorC: rgb(255, 226, 57);--color-colorD: rgb(185, 255, 57);--color-colorE: rgb(86, 255, 57);--color-colorF: rgb(57, 255, 127)}html{--size-tag-main: .375rem;--size-tag-border-radius: 1rem;--size-tag-padding: .875rem}html{--color-accent: rgb(255, 57, 86);--color-accent-dark: green;--color-black: 15, 18, 25;--color-gray: 96, 115, 159;--color-gray-light: 229, 233, 240;--color-gray-dark: 34, 41, 57;--color-gray-gradient: rgba(var(--color-gray-light), 50%), #fff}html{--utils-box-shadow: (0 2px 6px var(--color-colorA), 0 8px 24px var(--color-colorA), 0 16px 32px var(--color-colorA));--utils-transition: all .15s cubic-bezier(.4, 0, .2, 1)}html{--scale-factor-small: .6;--scale-factor-medium: .8;--scale-factor-large: 1}html{--arrow-left: "←︎" ;--arrow-up: "↑︎" ;--arrow-right: "→︎" ;--arrow-down: "↓︎" ;--arrow-up-right: "↗︎" ;--arrow-down-right: "↘︎" ;--arrow-down-left: "↙︎" ;--arrow-up-left: "↖︎" ;--arrow-double-left: "⇐︎" ;--arrow-double-up: "⇑︎" ;--arrow-double-right: "⇒︎" ;--arrow-double-down: "⇓︎" ;--arrow-return: "↵︎" ;--arrow-hook: "↩︎" ;--arrow-hook-right: "↪︎" ;--arrow-loop: "↺︎" ;--arrow-loop-right: "↻︎" }@layer unstyle{:root{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}*{min-width:0;padding:unset;border:unset;margin:unset;color:inherit;font:inherit}section,article,header,main,footer,aside,p,details,address,nav,figure,figcaption,canvas,img,video,audio,progress,fieldset,legend{display:block}button,input,select{all:unset;display:inline-block;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}textarea{border-radius:0;vertical-align:top}textarea,pre{overflow:auto}ol,ul,li,dl,dt,dd{list-style:none}table{border-collapse:collapse;border-spacing:0}hr{box-sizing:content-box;height:0}a,a:hover,a:active{text-decoration:none}b{font-weight:bolder}i{font-style:italic}svg{fill:currentColor}svg:not(:root){overflow:hidden}sup,sub{position:relative;vertical-align:middle;font-size:58.3%;line-height:0}sup{top:-.33333em}sub{top:.33333em}html,body{height:100%;width:100%}html{font:20px/1.5 sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:subpixel-antialiased;text-overflow:ellipsis}body{overflow-x:hidden;overflow-y:scroll}}@layer utilities{.ease-custom{transition-timing-function:cubic-bezier(.4,0,.2,1)}.project-clip-path{clip-path:polygon(5% 0,30% 0,30% 0,30% 0,30% 0,18% 15%,5% 0)}@keyframes clip-path-expand{0%{clip-path:polygon(5% 0,30% 0,30% 0,30% 0,30% 0,18% 15%,5% 0)}30%{clip-path:polygon(5% 0,30% 0,73% 78%,73% 78%,60% 100%,60% 100%,5% 0)}40%{clip-path:polygon(5% 0,30% 0,85% 100%,85% 100%,85% 100%,60% 100%,5% 0)}45%{clip-path:polygon(0% 0,35% 0,90% 100%,90% 100%,90% 100%,55% 100%,0% 0)}55%{clip-path:polygon(0% 0,45% 0,100% 100%,100% 100%,100% 100%,45% 100%,0 15%)}95%{clip-path:polygon(0% 0,95% 0,100% 5%,100% 100%,100% 100%,5% 100%,0 92%)}to{clip-path:polygon(0 0,100% 0,100% 0,100% 100%,100% 100%,0 100%,0 100%)}}@keyframes clip-path-contract{0%{clip-path:polygon(0 0,100% 0,100% 0,100% 100%,100% 100%,0 100%,0 100%)}5%{clip-path:polygon(0% 0,95% 0,100% 5%,100% 100%,100% 100%,5% 100%,0 92%)}45%{clip-path:polygon(0% 0,45% 0,100% 100%,100% 100%,100% 100%,45% 100%,0 15%)}55%{clip-path:polygon(0% 0,35% 0,90% 100%,90% 100%,90% 100%,55% 100%,0% 0)}60%{clip-path:polygon(5% 0,30% 0,85% 100%,85% 100%,85% 100%,60% 100%,5% 0)}70%{clip-path:polygon(5% 0,30% 0,73% 78%,73% 78%,60% 100%,60% 100%,5% 0)}to{clip-path:polygon(5% 0,30% 0,30% 0,30% 0,30% 0,18% 15%,5% 0)}}.animate-clip-path-expand{animation:clip-path-expand .15s linear forwards}.animate-clip-path-contract{animation:clip-path-contract .15s linear forwards}}html.dark{color-scheme:dark}html:not(.dark){color-scheme:light}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2147483646}html.dark::view-transition-old(root){z-index:2147483646}html.dark::view-transition-new(root){z-index:1}#nprogress{pointer-events:none}#nprogress .bar{background:#888;opacity:.75;position:fixed;z-index:999;top:0;left:0;width:100%;height:2px}.bg-dot:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--color-dot-bg) 22px,transparent 1%) 50%,linear-gradient(var(--color-dot-bg) 22px,transparent 1%) 50%,var(--color-dot);background-position:center center;background-size:24px 24px;mask-image:linear-gradient(0deg,transparent 5%,var(--color-dot-mask))}html{font-size:1em;font-family:Ubuntu,sans-serif}html body{margin:0;padding:0;text-align:left;background-color:var(--color-bg-main);background-size:100% 600px;color:var(--color-text-main);line-height:1.7}html body main{min-height:95vh;padding-top:6.5rem;padding-bottom:4rem;flex-grow:1;position:relative;padding-top:9rem;width:calc(100% - 2em);margin:0 auto}html body main>*:first-child{margin-top:0rem}html body article{color:var(--color-text-main);word-wrap:break-word;overflow-wrap:break-word}@media (max-width: 640px){html{font-size:1.125rem}main{width:100%;margin-left:0rem;margin-right:0rem;padding-top:6rem}}h1,h2,h3,h4,h5,h6{color:var(--color-text-main);line-height:1.2;font-weight:700;margin:0rem 0rem .5rem}h1{font-size:2.25rem;margin-top:1rem;margin-bottom:1rem}@media (max-width: 640px){h1{font-size:1.5rem}}h2{font-size:1.75rem;margin-top:3.0625rem;margin-bottom:.875rem}@media (max-width: 640px){h2{font-size:1.25rem}}h3{font-size:1.375rem;margin-top:2.0625rem;margin-bottom:.6875rem}@media (max-width: 640px){h3{font-size:1.125rem}}h4{font-size:1.25rem;margin:1rem 0}h5{font-size:1.125rem}h6{font-size:1rem}p{margin-bottom:1rem}strong,b{font-weight:700}code{padding:0 5px;background-color:var(--color-tag-bg);border-radius:2px}pre{padding:1.5em;border-radius:8px}pre>code{all:unset}blockquote{font-style:italic;border-left:4px solid var(--color-accent);padding:0 0 0 20px;margin:0;font-size:1.333em}hr{border:none;border-top:1px solid var(--color-tag-bg)}img{max-width:100%;height:auto;border-radius:8px}textarea{width:100%;font-size:16px}input{font-size:16px}.nav-link{color:var(--color-text-link)!important;opacity:1;cursor:pointer;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s;z-index:99999999}.nav-link:hover{opacity:.8}.twitter-tweet{margin-top:0rem!important;margin-bottom:0rem!important}.prose{max-width:640px;margin:auto;padding:1rem;font-size:1.125rem}@media (max-width: 640px){.prose{padding-left:0rem;padding-right:0rem}}.prose h2:first-child{margin-top:0rem!important}.prose p,.prose em,.prose strong,.prose mark{font-family:Domine,serif;font-family:Pridi,serif;font-family:Ubuntu,sans-serif;font-family:Funnel Sans,sans-serif;text-rendering:optimizeLegibility;font-weight:100;line-height:1.5rem;text-align:left;letter-spacing:.05rem;word-break:break-word;text-wrap-mode:wrap;text-wrap-style:pretty}.prose strong{font-weight:500;letter-spacing:1px}.prose p{margin-bottom:2rem}.prose div+p{margin-top:2rem}.prose p:first-of-type{margin-top:0rem!important}.prose p:not(p)+p{margin-top:2rem!important}.prose p:first-of-type:first-letter{color:var(--color-accent);float:left;font-size:6.125rem;line-height:.9;padding-top:0rem;padding-right:.4rem}.prose.no-drop-cap p:first-of-type:first-letter,.prose blockquote p:first-of-type:first-letter,.prose .footnotes p:first-of-type:first-letter,.prose .quick-note-text p:first-of-type:first-letter,.prose .tldr-container p:first-of-type:first-letter{color:inherit;float:none;font-size:inherit;line-height:inherit;padding-top:0;padding-right:0;font-weight:inherit}.prose a:not(.tag){color:var(--color-accent)}.prose a:not(.tag):hover{color:var(--color-accent)}.prose em{font-style:italic}.prose kbd{border:1px solid red;padding:.25rem .5rem;border-radius:.25rem;font-size:.875rem;font-weight:400;margin:0 .25rem;color:var(--color-text-primary);background-color:var(--color-bg-primary);border-color:var(--color-border-primary)}.prose mark{background-color:var(--color-prose-mark-bg);color:var(--color-prose-mark-text);padding:0rem .25rem}.prose sup{margin-left:.25rem;font-weight:700}.prose .data-footnote-backref{text-decoration:none!important;font-size:0}.prose .data-footnote-backref:before{content:var(--arrow-return)!important;font-size:1rem!important}.prose ol[type=A]{--list-counter-style: upper-alpha}.prose ol[type=a]{--list-counter-style: lower-alpha}.prose ol[type="A s"]{--list-counter-style: upper-alpha}.prose ol[type="a s"]{--list-counter-style: lower-alpha}.prose ol[type=I]{--list-counter-style: upper-roman}.prose ol[type=i]{--list-counter-style: lower-roman}.prose ol[type="I s"]{--list-counter-style: upper-roman}.prose ol[type="i s"]{--list-counter-style: lower-roman}.prose ol[type="1"]{--list-counter-style: decimal}.prose ol>li{position:relative;padding-left:1.75em}.prose ol>li:before{content:counter(list-item,var(--list-counter-style, decimal)) ".";position:absolute;font-weight:400;color:#6b7280;left:0}.prose ul>li{position:relative;padding-left:1.75em}.prose ul>li:before{content:"";position:absolute;background-color:#d1d5db;border-radius:50%;width:.375em;height:.375em;top:.6875em;left:.25em}.prose code{font-family:Liberation Mono,monospace;font-family:Pridi,serif;font-style:italic}.prose code:before{content:""}.prose code:after{content:""}.prose pre code:before{content:none}.prose pre code:after{content:none}.prose table{display:block;width:100%;table-layout:auto;text-align:left;text-align:center;margin-top:2rem;margin-bottom:2rem;font-size:1rem;line-height:1.7142857}.prose table em{font-style:italic}.prose table strong{font-weight:600}.prose table code{font-family:Ubuntu Mono,monospace}.prose thead{font-weight:600;border-bottom-width:1px;border-bottom-color:#8882}.prose thead th{vertical-align:bottom;padding:.625rem}.prose tbody tr{border-bottom-width:1px;border-bottom-color:#8882}.prose tbody tr:last-child{border-bottom-width:0}.prose tbody td{vertical-align:top;padding:.5714286rem}.collection-overview ul{display:flex;flex-wrap:wrap;gap:2rem;list-style-type:none;margin:0;padding:0}.collection-overview ul li{width:calc(50% - 1rem)}.collection-overview ul li *{text-decoration:none;transition:.2s ease}.collection-overview ul li:first-child{width:100%;margin-bottom:1rem;text-align:center}.collection-overview ul li:first-child img{width:100%;aspect-ratio:16/9;height:100%;object-fit:cover;object-position:center top}.collection-overview ul li:first-child .title{font-size:2.369rem;font-size:2.375rem}.collection-overview ul li img{margin-bottom:.25rem;border-radius:12px}.collection-overview ul li a{display:block}.collection-overview ul li a:hover h4,.collection-overview ul li a:hover .date{color:rgb(var(--accent))}.collection-overview ul li a:hover img{box-shadow:var(--box-shadow);box-shadow:var(--util-box-shadow)}.collection-overview .title{margin:0;padding:0;padding-top:1rem;padding-bottom:.5rem;color:rgb(var(--color-text-main));padding-top:1em;text-align:center;line-height:1;font-size:1.375rem;padding-top:.25rem}.collection-overview .title h1{margin:0 0 .5em}.collection-overview .date{margin:0 0 .5em;color:rgb(var(--color-text-secondary));text-align:center;color:rgb(var(--color-gray))}.collection-overview .date .last-updated-on{margin-top:.5em;font-style:italic}@media (max-width: 720px){.collection-overview ul{gap:1em}.collection-overview ul li{width:100%;text-align:center}.collection-overview ul li:first-child{margin-bottom:0rem}.collection-overview ul li:first-child .title{font-size:1.375rem}}.project-overview ul{display:flex;flex-wrap:wrap;gap:2rem;list-style-type:none;margin:0;padding:0}.project-overview ul li{width:calc(50% - 1rem)}.project-overview ul li *{text-decoration:none;transition:.2s ease}.project-overview ul li:first-child{width:100%;margin-bottom:1rem;text-align:center}.project-overview ul li:first-child img{width:100%;aspect-ratio:16/9;height:100%;object-fit:cover;object-position:center top}.project-overview ul li:first-child .title{font-size:2.369rem;font-size:2.375rem}.project-overview ul li img{margin-bottom:.25rem;border-radius:12px}.project-overview ul li a{display:block}.project-overview ul li a:hover h4,.project-overview ul li a:hover .date{color:rgb(var(--accent))}.project-overview ul li a:hover img{box-shadow:var(--box-shadow);box-shadow:var(--util-box-shadow)}.project-overview .title{margin:0;padding:0;padding-top:1rem;padding-bottom:.5rem;color:rgb(var(--color-text-main));padding-top:1em;text-align:center;line-height:1;font-size:1.375rem;padding-top:.25rem}.project-overview .title h1{margin:0 0 .5em}.project-overview .date{margin:0 0 .5em;color:rgb(var(--color-text-secondary));text-align:center;color:rgb(var(--color-gray))}.project-overview .date .last-updated-on{margin-top:.5em;font-style:italic}@media (max-width: 720px){.project-overview ul{gap:1em}.project-overview ul li{width:100%;text-align:center}.project-overview ul li:first-child{margin-bottom:0rem}.project-overview ul li:first-child .title{font-size:1.375rem}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
