.footer-container{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.5rem}.footer-social-links{display:flex;gap:1rem;width:fit-content}.footer-social-links li{display:block;height:1.5rem;width:1.5rem;color:var(--secondary-color);cursor:pointer;transition:color .3s ease}.footer-social-links li:hover{color:color-mix(in oklch, var(--secondary-color), #fff 75%)}.footer-copyright{color:var(--secondary-color)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);color:var(--text-color);font-weight:300}:root{--background-color: #111113;--text-color: #dedede;--secondary-color: #77777f;--playdate-yellow: #ffb81c;--max-width: 52rem;--font-display: "Inter", sans-serif;--font-body: "Lexend", sans-serif;--font-mono: monospace}.w-full{width:100%}.fullwidth-flex{width:100%;display:flex;justify-content:center;align-items:center;padding:0 1.5rem}.content-container{width:100%;display:flex;flex-direction:column;max-width:var(--max-width)}.navigation-button{width:fit-content;color:var(--secondary-color);transition:all .2s cubic-bezier(.3, 0, .3, 1);-webkit-user-select:none;user-select:none;border-radius:999rem;display:flex;gap:.5rem}.navigation-button svg{width:1rem;height:auto}.navigation-button:hover{color:color-mix(in oklch, var(--secondary-color), #fff 75%)}body{background-color:var(--background-color);font-family:var(--font-body);margin:0;padding:0;width:100%;min-height:100vh}a{text-decoration:none;color:inherit}img{display:block;max-width:100%;height:auto}.index-header{margin-top:4.5rem;margin-bottom:2.25rem}.avatar-image{display:block;width:3.5rem;aspect-ratio:1/1;border-radius:9999px;border:2px solid #fff;box-shadow:0 1px 2px rgba(0,0,0,.1);}.intro-section{margin-bottom:4rem}.main-title{color:var(--text-color);font-size:2.5rem;font-weight:400;line-height:1.2}.intro-description{font-size:1.25rem;color:#707070;}.blog-section{margin-bottom:4rem}.blog-list{font-size:1rem;color:#3a3a3a;}.blog-item{display:flex;flex-direction:column;justify-content:space-between;padding:.75rem 1rem;border-radius:.5rem;cursor:pointer;transition:all .3s ease;color:var(--text-color)}.blog-item:hover{background-color:#212225;}.blog-item:active{transform:scale(.995);background-color:#272a2d;}.blog-title{flex-shrink:0}.blog-divider{display:none;width:100%;height:1px;color:#5a5c63;border-top:dashed 1px;margin:0 2rem}.blog-date{flex-shrink:0;color:gray;}@media (min-width: 640px){.blog-item{flex-direction:row;align-items:center;padding-left:.5rem;padding-right:.5rem}.blog-divider{display:block}}:root{--slate3: #f8f9fb;--slate4: #eaecf0;--slate6: #d0d5dd;--slate8: #667085;--slate10: #475569;--slate11: #64748b;--slate12: #1e293b;--indigo2: #f5f8ff;--indigo4: #d1e0ff;--indigo6: #7ea1ff;--indigo11: #3e63dd;--orange2: #fff7ed;--orange4: #ffddb6;--orange11: #f37913;}.page-title{color:var(--slate3);font-size:2.25rem;line-height:1.5;font-weight:400}.blog-date-container{color:var(--secondary-color);display:flex;align-items:center;gap:.5rem}.toc-container{display:none;position:fixed;top:0;right:0;bottom:0;width:16rem;padding:1rem;margin-right:2rem;line-height:2rem}.toc-container nav{height:100%;width:100%;overflow-y:scroll;padding-top:10rem;padding-bottom:4rem}.toc-container li{transition:color .5s cubic-bezier(0, .7, .3, 1);list-style-type:none;color:var(--secondary-color)}.toc-container li:hover{color:color-mix(in oklch, var(--secondary-color), #fff 75%)}@media (min-width: 1400px){.toc-container{display:block}}.playdate-content h1,.playdate-content h2,.playdate-content h3,.playdate-content h4,.playdate-content h5{color:var(--playdate-yellow) !important}.playdate-content .footnote-definition-label,.playdate-content .page-title{color:var(--playdate-yellow) !important}.blog-content{margin-bottom:4rem;}.blog-content h1{color:var(--slate3);margin-bottom:.5rem;font-size:2.25rem;line-height:1.5;font-weight:400}.blog-content h2{color:var(--slate3);margin-top:2rem;margin-bottom:.5rem;font-size:1.875rem;line-height:1.5;font-weight:400}.blog-content h3{color:var(--slate3);margin-top:.5rem;margin-bottom:.5rem;font-size:1.5rem;line-height:1.5;font-weight:400}.blog-content h4{color:var(--slate3);margin-top:.5rem;margin-bottom:.5rem;font-size:1rem;line-height:1.5;font-weight:400;text-transform:uppercase}.blog-content p{color:var(--text-color);margin-bottom:1.75rem;font-size:1rem;line-height:1.625}.blog-content strong{font-weight:600}.blog-content a{color:var(--playdate-yellow);text-decoration-color:var(--playdate-yellow);text-decoration-line:underline;text-decoration-thickness:1.25px;transition:all}.blog-content a:link{background-color:rgba(0,0,0,0);text-underline-offset:2px;transition-property:color,text-underline-offset,background-color;transition-duration:.5s;transition-timing-function:cubic-bezier(0, .7, .3, 1)}.blog-content a:hover{border-radius:2.5px 2.5px 0 0;background-color:var(--playdate-yellow);color:var(--background-color);text-underline-offset:6px;transition-property:color,text-underline-offset,background-color;transition-duration:.5s;transition-timing-function:cubic-bezier(0, .7, .3, 1)}.blog-content img{margin-left:auto;margin-right:auto;margin-top:1rem;margin-bottom:1rem;width:100%;border-color:var(--secondary-color);border-radius:.5rem;border-width:2px;border-style:solid;box-shadow:0px 0px 0px 20px #fff inset}.blog-content pre{padding:.75rem;overflow:auto;margin-bottom:1.75rem;border-color:var(--secondary-color);border-radius:.5rem;border-width:2px;border-style:solid}.blog-content pre code{background-color:unset;color:unset;border-style:unset;padding:unset}.blog-content pre table td{padding:0 .25rem}.blog-content pre table td:nth-of-type(1){text-align:right;vertical-align:top;user-select:none;color:var(--secondary-color)}.blog-content pre mark{display:block;background-color:rgba(254,252,232,.9)}.blog-content pre table{width:100%;border-collapse:collapse;margin:0}.blog-content code{font-family:var(--font-mono);background-color:var(--playdate-yellow);color:var(--background-color);padding:.125rem;border-radius:.25rem}.blog-content kbd{border-color:var(--playdate-yellow);box-shadow:0 3px 0 var(--playdate-yellow);background-color:color-mix(in oklch, var(--playdate-yellow), #000 75%);color:var(--playdate-yellow);margin-left:0rem;margin-right:0rem;border-radius:.5rem;border-width:2px;border-style:solid;padding:.125rem;padding-left:.375rem;padding-right:.375rem;font-size:1rem;font-family:var(--font-mono)}.blog-content table{margin-top:1.5rem;margin-bottom:1.5rem;width:100%;border-collapse:collapse;overflow:hidden;border-radius:.75rem;border-width:2px;border-color:var(--playdate-yellow)}.blog-content table thead{color:var(--background-color);border-color:var(--background-color);background-color:var(--playdate-yellow);border-bottom-width:1px;text-align:left}.blog-content table th,.blog-content table td{border-color:var(--slate4);border-bottom-width:1px;padding-left:1rem;padding-right:1rem;padding-top:.75rem;padding-bottom:.75rem}.blog-content blockquote{border-color:var(--slate4);margin-top:1.5rem;margin-bottom:1.5rem;border-left-width:2px;padding-left:1rem}.blog-content blockquote p{color:var(--slate10);font-size:1rem;line-height:1.625}.blog-content hr{border-color:var(--slate4);margin-left:auto;margin-right:auto;margin-top:3rem;margin-bottom:3rem;width:33.333333%}.blog-content ul{color:var(--slate11);margin-top:.5rem;margin-bottom:1.5rem;list-style-type:disc;padding-left:1rem;font-size:1rem;line-height:1.625}.blog-content ul li::marker{color:var(--slate8)}.blog-content ol{color:var(--slate11);margin-top:.5rem;margin-bottom:1.5rem;list-style-type:decimal;padding-left:1.5rem;font-size:1rem;line-height:1.625rem}.blog-content li{color:var(--slate11);font-size:1rem;line-height:1.625rem}.blog-content ol li::marker{color:var(--slate8)}.blog-content figcaption{color:var(--secondary-color);margin-top:-1rem;text-align:center;font-size:.875rem;margin-bottom:1rem}.blog-content .footnote-definition{display:flex;gap:.5rem}.blog-content .footnote-definition-label{color:#fff}