@font-face{font-family:geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/hudovich/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/hudovich/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/hudovich/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:geist fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0%;size-adjust:104.76%}@font-face{font-family:geist mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/hudovich/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:geist mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/hudovich/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:geist mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/hudovich/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:geist mono fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0%;size-adjust:134.59%}:root{--font-geist:"Geist", "Geist Fallback", ui-sans-serif, system-ui, sans-serif;--font-geist-mono:"Geist Mono", "Geist Mono Fallback", ui-monospace, SFMono-Regular, Menlo, monospace;--color-red-600:#e40014;--color-orange-100:#ffedd5;--color-orange-800:#9f2d00;--color-green-100:#dcfce7;--color-green-500:#00c758;--color-green-800:#016630;--color-indigo-100:#e0e7ff;--color-indigo-800:#372aac;--color-zinc-50:#fafafa;--color-zinc-100:#f4f4f5;--color-zinc-200:#e4e4e7;--color-zinc-300:#d4d4d8;--color-zinc-400:#9f9fa9;--color-zinc-500:#71717b;--color-zinc-600:#52525c;--color-zinc-700:#3f3f46;--color-zinc-800:#27272a;--color-zinc-900:#18181b;--color-white:#fff;--color-accent:#fca311;--spacing:0.25rem;--text-xs:0.75rem;--text-xs--line-height:1rem;--text-sm:0.8125rem;--text-sm--line-height:1.3125rem;--text-md:0.875rem;--text-md--line-height:1.375rem;--radius-xs:0.125rem;--radius-sm:0.25rem;--radius-lg:0.5rem}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;border:0 solid transparent}html,body{height:100%}html{-webkit-text-size-adjust:100%;line-height:1.5;font-family:var(--font-geist);-webkit-tap-highlight-color:transparent}body{color:var(--color-zinc-900);background-color:var(--color-white);font-family:var(--font-geist-mono);font-size:var(--text-md);line-height:var(--text-md--line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:inherit}img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}ul,ol,menu{list-style:none}main{min-height:1px}@container projects (min-width:32rem){.\@lg\/projects\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}.\@container\/projects{container:projects/inline-size}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\[100vh\]{top:100vh}.right-3{right:calc(var(--spacing) * 3)}.left-0{left:0}.z-\[1\]{z-index:1}.mx-auto{margin-inline:auto}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-22{width:calc(var(--spacing) * 22);height:calc(var(--spacing) * 22)}.h-2\.25{height:calc(var(--spacing) * 2.25)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-16{height:calc(var(--spacing) * 16)}.h-full{height:100%}.w-3{width:calc(var(--spacing) * 3)}.max-w-160{max-width:calc(var(--spacing) * 160)}.min-w-33{min-width:calc(var(--spacing) * 33)}.shrink-0{flex-shrink:0}.-translate-y-1\/2{transform:translateY(-50%)}.transform-gpu{transform:translateZ(0)}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-3>:not(:last-child)){margin-block-end:calc(var(--spacing) * 3)}:where(.space-y-12>:not(:last-child)){margin-block-end:calc(var(--spacing) * 12)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-width:1px;border-style:solid}.border-4{border-width:4px;border-style:solid}.border-t{border-top-width:1px;border-top-style:solid}.border-b-\[0\.09375rem\]{border-bottom-width:.09375rem;border-bottom-style:solid}.border-current{border-color:initial}.border-green-100{border-color:var(--color-green-100)}.border-layout-contrast{border-color:var(--color-zinc-500)}.border-layout-primary{border-color:var(--color-zinc-200)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-layout-primary-active{background-color:var(--color-zinc-900)}.bg-layout-primary-contrast{background-color:var(--color-zinc-600)}.bg-layout-secondary-active{background-color:var(--color-white)}.bg-layout-secondary-contrast{background-color:var(--color-zinc-50)}.bg-layout-primary-hover{background-color:var(--color-zinc-700)}.bg-layout-secondary-hover{background-color:var(--color-zinc-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-white{background-color:var(--color-white)}.bg-zinc-100{background-color:var(--color-zinc-100)}.fill-\[\#0a66c2\]{fill:#0a66c2}.fill-\[\#0085dd\]{fill:#0085dd}.fill-\[\#fe6a09\]{fill:#fe6a09}.fill-accent{fill:var(--color-accent)}.fill-current{fill:currentColor}.fill-inherit{fill:inherit}.fill-red-600{fill:var(--color-red-600)}.fill-zinc-400{fill:var(--color-zinc-400)}.stroke-red-600{stroke:var(--color-red-600)}.p-3{padding:calc(var(--spacing) * 3)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pl-5{padding-left:calc(var(--spacing) * 5)}.font-mono{font-family:var(--font-geist-mono)}.font-sans{font-family:var(--font-geist)}.text-md{font-size:var(--text-md);line-height:var(--text-md--line-height)}.text-sm{font-size:var(--text-sm);line-height:var(--text-sm--line-height)}.text-xs{font-size:var(--text-xs);line-height:var(--text-xs--line-height)}.text-\[0\.6875rem\]{font-size:.6875rem}.text-\[1\.375rem\]{font-size:1.375rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.leading-5{line-height:calc(var(--spacing) * 5)}.leading-7{line-height:calc(var(--spacing) * 7)}.leading-\[1\.75\]{line-height:1.75}.leading-none{line-height:1}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.tracking-\[0\.02em\]{letter-spacing:.02em}.tracking-\[0\.025em\]{letter-spacing:.025em}.whitespace-nowrap{white-space:nowrap}.text-accent{color:var(--color-accent)}.text-contrast{color:var(--color-white)}.text-faded{color:var(--color-zinc-400)}.text-green-800{color:var(--color-green-800)}.text-indigo-800{color:var(--color-indigo-800)}.text-orange-800{color:var(--color-orange-800)}.text-primary{color:var(--color-zinc-900)}.text-secondary{color:var(--color-zinc-800)}.text-tertiary{color:var(--color-zinc-700)}.text-zinc-500{color:var(--color-zinc-500)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.ring-3{box-shadow:0 0 0 3px transparent}.ring-transparent{box-shadow:0 0 0 3px transparent}.drop-shadow-\[0_0_1px_rgba\(0\,0\,0\,0\.1\)\]{filter:drop-shadow(0 0 1px rgba(0,0,0,.1))}.transition-all{transition:all .15s cubic-bezier(.4,0,.2,1)}.transition-opacity{transition:opacity .15s cubic-bezier(.4,0,.2,1)}.transition-transform{transition:transform .3s cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.will-change-transform{will-change:transform}.outline-none{outline:none}.select-none{user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media(hover:hover){.group-hover\:scale-120:is(:where(.group):hover *){transform:scale(1.2)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:after\:h-0\.5:is(:where(.group):hover *):after{height:calc(var(--spacing) * .5)}.hover\:border-zinc-300:hover{border-color:var(--color-zinc-300)}.hover\:bg-layout-primary-hover:hover{background-color:var(--color-zinc-700)}.hover\:bg-layout-secondary-hover:hover{background-color:var(--color-zinc-50)}.hover\:bg-zinc-200\/75:hover{background-color:rgba(228,228,231,.75)}.hover\:ring-zinc-100:hover{box-shadow:0 0 0 3px var(--color-zinc-100)}}.focus\:ring-3:focus{box-shadow:0 0 0 3px var(--color-zinc-200)}.focus\:ring-zinc-200:focus{box-shadow:0 0 0 3px var(--color-zinc-200)}.focus-visible\:border-zinc-300:focus-visible{border-color:var(--color-zinc-300)}.focus-visible\:ring-zinc-100:focus-visible{box-shadow:0 0 0 3px var(--color-zinc-100)}.after\:absolute:after{content:"";position:absolute}.after\:inset-x-0:after{content:"";inset-inline:0}.after\:-bottom-px:after{content:"";bottom:-1px}.after\:h-px:after{content:"";height:1px}.after\:bg-accent:after{content:"";background-color:var(--color-accent)}.after\:transition-all:after{content:"";transition:all .3s ease}.after\:duration-300:after{content:"";transition-duration:.3s}@media(min-width:30rem){.xs\:inline{display:inline}}@media(min-width:40rem){.sm\:hidden{display:none}.sm\:inline-block{display:inline-block}.sm\:inline-flex{display:inline-flex}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}.sm\:gap-8{gap:calc(var(--spacing) * 8)}:where(.sm\:space-y-0>:not(:last-child)){margin-block-end:0}.sm\:border-none{border-style:none}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:py-10{padding-block:calc(var(--spacing) * 10)}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:pb-6{padding-bottom:calc(var(--spacing) * 6)}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--text-xs--line-height)}}.page-head{width:100%;margin-inline:auto;max-width:calc(var(--spacing) * 160);padding-top:calc(var(--spacing) * 6);padding-bottom:calc(var(--spacing) * 3);display:grid;gap:calc(var(--spacing) * 2)}.page-head h1{font-family:var(--font-geist);font-weight:600;font-size:1.375rem;line-height:calc(var(--spacing) * 7);letter-spacing:.02em}.page-head p,.post-summary,.post-date{color:var(--color-zinc-700)}.content-column{width:100%;margin-inline:auto;max-width:calc(var(--spacing) * 160)}.content-column-item{width:100%;margin-inline:0;max-width:none}.post-list,.term-list{width:100%;margin-inline:auto;max-width:calc(var(--spacing) * 160);display:grid;gap:calc(var(--spacing) * 3)}.post-card{display:grid;gap:calc(var(--spacing) * 2);padding:calc(var(--spacing) * 3);border:1px solid var(--color-zinc-200);border-radius:var(--radius-lg);background:var(--color-white)}.post-card h2{font-family:var(--font-geist);font-weight:500;font-size:var(--text-md)}.post-single,.page-content{width:100%;margin-inline:auto;max-width:calc(var(--spacing) * 160)}.post-single{padding-top:calc(var(--spacing) * 6);padding-bottom:calc(var(--spacing) * 12)}.post-header{display:grid;gap:calc(var(--spacing) * 2);margin-bottom:calc(var(--spacing) * 5)}.post-header h1{font-family:var(--font-geist);font-weight:600;font-size:1.375rem;line-height:calc(var(--spacing) * 7);letter-spacing:.02em}.post-content,.page-content{display:grid;gap:calc(var(--spacing) * 3);max-width:72ch;color:var(--color-zinc-800)}.post-content ul,.page-content ul{display:block;list-style:disc;padding-left:calc(var(--spacing) * 5)}.post-content ol,.page-content ol{display:block;list-style:decimal;padding-left:calc(var(--spacing) * 5)}.post-content li,.page-content li{margin-top:calc(var(--spacing) * 1.5)}.post-content li:first-child,.page-content li:first-child{margin-top:0}.page-content-wide{width:100%}.page-content.page-content-wide{margin-inline:auto;max-width:calc(var(--spacing) * 160)}.page-content.page-content-wide>*{width:100%;max-width:72ch}.post-content h2,.post-content h3,.page-content h2,.page-content h3{font-family:var(--font-geist);font-weight:600;color:var(--color-zinc-900)}.tag-list{display:flex;flex-wrap:wrap;gap:calc(var(--spacing) * 1.5)}.tag-list a{font-size:var(--text-xs);color:var(--color-zinc-700);border:1px solid var(--color-zinc-200);border-radius:999px;padding:.1rem .55rem}.term-list li{display:flex;justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 3);border:1px solid var(--color-zinc-200);border-radius:var(--radius-lg)}.pagination{width:100%;margin-inline:auto;max-width:calc(var(--spacing) * 160);margin-top:calc(var(--spacing) * 4);display:flex;justify-content:space-between;align-items:center;color:var(--color-zinc-700)}.pagination .disabled{opacity:.5}@media(max-width:40rem){.post-list,.page-head,.post-single,.page-content,.term-list,.pagination{max-width:100%}}