html{scroll-behavior:smooth}:root{--black: 0, 0, 0;--white: 255, 255, 255;--gray: 148, 163, 184;--gray-light: 203, 213, 225;--gray-dark: 51, 65, 85;--red: 239, 68, 68;--blue-400: 96, 165, 250;--blue-500: 59, 130, 246;--blue-600: 37, 99, 235;--blue-700: 29, 78, 216;--blue-800: 30, 64, 175;--blue-900: 30, 58, 138;--blue-950: 23, 37, 84;--color-bg: var(--white);--color-text: var(--gray-dark)}.dark{--color-bg: 15, 23, 42;--color-text: 226, 232, 240;--red: 153, 27, 27;--blue-500: 96, 165, 250;--blue-700: 59, 130, 246;--blue-900: 30, 58, 138}body{background-color:rgb(var(--color-bg));color:rgb(var(--color-text))}a.primary,button.primary{background-color:rgb(var(--blue-500));color:rgb(var(--white))}a.primary,button.primary:hover{background-color:rgb(var(--blue-600))}.dar a.primary,.dark button.primary{background-color:rgb(var(--blue-700));color:rgb(var(--white))}.dark a.primary:hover,.dark button.primary:hover{background-color:rgb(var(--blue-800))}main{width:1024px;max-width:calc(100% - 2em);margin:auto;padding:6em 1em}@media(min-width:620px){main{padding:6em 3em}}h1,h2,h3,h4,h5,h6{margin:0 0 .5rem;line-height:1.2}h1{font-size:3.052em}h2{font-size:2.441em}h3{font-size:1.953em}h4{font-size:1.563em}h5{font-size:1.25em}strong,b{font-weight:700}a{color:rgb(var(--blue-500));transition:color .2s ease}a:hover{color:rgb(var(--blue-700))}p,.prose p,.prose hr,.prose pre{margin-bottom:1em}.prose a{text-decoration:underline;color:rgb(var(--teal-500))}.prose blockquote{box-shadow:inset 3px 0 rgb(var(--gray-dark))}textarea{width:100%;font-size:14px;padding:.75rem 1.5rem;border-radius:2px;font-weight:600;box-shadow:0 4px 6px -1px #0000001a;transition:all .3s ease}textarea:hover{box-shadow:0 8px 12px -3px #0000001a}textarea:focus{outline:none;box-shadow:0 0 0 3px #3b82f626;border-color:rgb(var(--blue-500))}label{font-size:14px;font-weight:600}label.required:after{content:" *";color:rgb(var(--red))}input{font-size:14px;padding:.75rem 1.5rem;border-radius:2px;font-weight:600;transition:all .3s ease;box-shadow:0 4px 6px -1px #0000001a}input:hover{box-shadow:0 10px 15px -3px #0000001a}input:focus{outline:none;box-shadow:0 0 0 3px #3b82f626;border-color:rgb(var(--blue-500))}table{width:100%;table-layout:fixed}img{max-width:100%;height:auto;border-radius:8px}code{padding:2px 5px;background-color:rgb(var(--gray-light));border-radius:2px}pre{padding:1.5em;border-radius:8px}pre>code{all:unset}blockquote{border-left:4px solid rgb(var(--blue-500));padding:0 0 0 20px;margin:0;font-size:1.333em}hr{border:none;border-top:2px solid rgb(var(--blue-500));opacity:.3;max-width:4rem;margin:1.5rem auto}hr.solid{border-top:3px solid #bbb}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}.styled-table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.9rem;font-family:system-ui,sans-serif;border:1px solid rgb(var(--gray-light));background:rgb(var(--white));color:rgb(var(--gray-dark))}.styled-table th,.styled-table td{padding:.75rem 1rem;border-bottom:1px solid rgb(var(--gray-light));text-align:left}.styled-table thead{background:rgb(var(--blue-700));color:rgb(var(--white));font-weight:600}.styled-table tbody tr:nth-of-type(2n){background:#00000005}.styled-table tbody tr:hover{background:rgba(var(--blue-500),.1)}.styled-table tbody tr.active-row{font-weight:600;color:rgb(var(--blue-700))}.dark .styled-table{border:1px solid rgb(var(--gray-dark));background:rgb(var(--black));color:rgb(var(--gray-light))}.dark .styled-table thead{background:rgb(var(--blue-900));color:rgb(var(--white))}.dark .styled-table th,.dark .styled-table td{border-bottom:1px solid rgba(var(--gray),.3)}.dark .styled-table tbody tr:nth-of-type(2n){background:#ffffff08}.dark .styled-table tbody tr:hover{background:rgba(var(--blue-500),.15)}.dark .styled-table tbody tr.active-row{color:rgb(var(--blue-400))}figure{display:flex;flex-flow:column;margin:auto;border-radius:2px}figcaption{background-color:#222;border-radius:2px;color:#fff;font:italic smaller sans-serif;padding:3px;text-align:center}.blog-post ul,.project-post ul{list-style-type:disc;padding-left:1rem;margin-left:.5rem;margin-bottom:1em}.blog-posts{display:flex;flex-direction:column}
