@import url(https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@300;600;700&family=Rajdhani:wght@400;600&family=Roboto:wght@300;400&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(to top right,#0a0a0a 66%,#1c1c1c);color:#fff;font-family:Arial,sans-serif;font-family:Roboto,sans-serif;margin:0;min-height:100vh;padding:0}.title,h1{font-family:Chakra Petch,sans-serif;font-size:48px;font-weight:700;letter-spacing:2px;margin:24px 0;text-transform:uppercase}h2{font-weight:600}h2,h3{font-family:Rajdhani,sans-serif;font-size:32px;margin:24px 0}h3,h4{font-weight:400}h4{font-family:Rajdhani,sans-serif;font-size:16px;margin:0;padding:0}.body-text,p{font-family:Roboto,sans-serif;font-size:18x;font-weight:300;margin:24px 0}a{color:#80ff80;text-decoration:underline}a:visited{color:#fff}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.main{background:linear-gradient(90deg,#0a0a0a 20%,#0000 50%),linear-gradient(#ffffff0d 1px,#0000 0),linear-gradient(90deg,#ffffff0d 1px,#0000 0);background-color:#0a0a0a;background-size:100% 100%,15px 15px,15px 15px;box-sizing:border-box;height:100vh;overflow:auto;position:relative}.brand-block,.main{display:flex;flex-direction:column}.title{font-size:42px;margin:2vh 0 0 2vw}.subtitle,.title{cursor:default;display:inline-block;font-family:Chakra Petch,sans-serif;letter-spacing:.2em;text-transform:uppercase;transition:all .1s ease;width:fit-content}.subtitle{font-size:16px;margin:0 0 2vh 2vw}.main-header:hover,.subtitle:hover,.title:hover{color:#000;cursor:none;text-shadow:0 0 10px #c0c0c0b3,0 0 20px #c0c0c080,0 0 30px #c0c0c04d}.logo-animated{animation:logoPulse 3s infinite;border:8px solid #000;cursor:none;height:40px;overflow:hidden;position:fixed;right:60px;top:40px;transform:rotate(45deg);transition:transform .3s ease,border-color .3s ease;width:40px}.logo-animated:after,.logo-animated:before{content:"";height:100%;left:0;position:absolute;transition:background-color .3s ease;width:100%}.logo-animated:before{background-color:#fff;clip-path:polygon(0 0,100% 0,0 100%)}.logo-animated:after{background-color:#000;clip-path:polygon(100% 0,100% 100%,0 100%)}.logo-animated:hover{border-color:#fff;transform:rotate(45deg) scale(1.1)}.logo-animated:hover:before{background-color:#000}.logo-animated:hover:after{background-color:#fff}.contact-policy{height:auto;margin:0;max-width:1200px;padding:0;width:100%}.contact-policy-title{color:#fff;font-family:Chakra Petch,sans-serif;font-size:42px;margin:12px 0}@keyframes logoPulse{0%,to{filter:drop-shadow(0 0 4px rgba(176,176,176,.7))}50%{filter:drop-shadow(0 0 12px rgba(176,176,176,.9))}}.blog{align-items:flex-start;justify-content:flex-start;margin:75px;padding:0}.blog,.blog-header{display:flex;flex-direction:column;height:auto}.blog-header{flex-grow:1;justify-content:left;margin-bottom:32px;width:100%}.back-button{position:relative;width:fit-content}.back-button:after{background-color:#0f0;bottom:0;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transition:transform .3s ease;width:100%}.back-button:hover:after{transform:scaleX(1)}.blog-page-title{color:#fff;cursor:default;display:inline-block;font-family:Chakra Petch,sans-serif;font-size:54px;letter-spacing:2px;margin:0;text-align:left;text-transform:uppercase;transition:all .1s ease;width:fit-content}.blog-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));height:auto;margin:0 auto;max-width:1200px;padding:1rem}.blog-card{background-color:#0a0a0a;border:1px solid #1a1a1a;border-radius:8px;cursor:pointer;overflow:hidden;transition:all .3s ease}.blog-card-content{padding:1.5rem}.blog-title{color:silver;font-size:1.5rem;margin:0 0 1rem}.blog-meta{color:#666;font-size:.9rem;gap:1rem}.blog-meta,.blog-tags{display:flex;margin-bottom:1rem}.blog-tags{flex-wrap:wrap;gap:.5rem}.blog-tag{background-color:#0a0;border-radius:4px;color:#fff;font-size:.8rem;padding:.2rem .8rem}.blog-preview{color:#888;font-size:1.2rem;line-height:1.5;margin:0}.blog-author,.blog-date,.blog-readtime{color:#666}.blog-readtime:before{content:"Read time: ~"}.blog-card:hover{border-color:#333;box-shadow:0 5px 15px #0000004d;transform:translateY(-5px)}.blog-card:hover .blog-title{color:#fff}.blog-card:hover .blog-author,.blog-card:hover .blog-date,.blog-card:hover .blog-readtime{color:#888}.blog-card:hover .blog-preview{color:silver}.blog-card:hover .blog-tag{background-color:#0d0}@media (max-width:768px){.blog{margin:50px}.blog-page-title{margin:0x}.blog-grid{grid-template-columns:repeat(1,1fr)}}.blog-services{color:#666;font-family:Chakra Petch,sans-serif;font-size:36px;font-weight:100;margin:3rem auto 2rem;max-width:1200px;padding:1rem;width:100%}.page-body{display:flex;flex-direction:column;height:auto;margin:0;padding:0 0 48px}.header{background-color:#0a0a0a;background-image:linear-gradient(90deg,#0a0a0a 20%,#0000 50%),linear-gradient(#ffffff0d 1px,#0000 0),linear-gradient(90deg,#ffffff0d 1px,#0000 0);background-repeat:no-repeat,repeat,repeat;background-size:100% 100%,15px 15px,15px 15px;position:sticky;top:0;z-index:40}.nav-stack-slot{flex-grow:0;margin:100px 0 50px;min-width:380px;pointer-events:none;visibility:hidden;width:380px}.hero-block{height:auto;margin:0 75px;overflow:hidden;transition:height .65s cubic-bezier(.4,0,.2,1)}.hero-block-inner{align-items:flex-start;box-sizing:border-box;display:flex;flex-direction:column;justify-content:left;padding:50px 0}.hero-block.is-collapsed{pointer-events:none}.main.view-about .nav-stack-slot,.main.view-blog .nav-stack-slot{margin-bottom:16px;margin-top:8px}.main.view-about .content-panel,.main.view-blog .content-panel{padding-top:8px}.logo-animated{cursor:pointer}.main.view-about .feature-row,.main.view-blog .feature-row{margin-top:0}.nav-slab.is-active{border-bottom-color:silver;color:#000;transform:scale(1.05)}.nav-slab.is-active .nav-label{color:#000}.brand-block{cursor:pointer}.home-panel-placeholder{display:flex;flex-direction:column;gap:8px}.banner{color:#0d0;cursor:default;font-family:Chakra Petch,sans-serif;font-size:84px;letter-spacing:2px;text-transform:uppercase;transition:all .3s ease}.banner,.subbanner{display:inline-block;margin:0;text-align:left;width:fit-content}.feature-row{display:flex;flex-direction:row;flex-grow:1}.nav-menu-backdrop,.nav-menu-toggle{display:none}.nav-stack{align-items:flex-start;bottom:24px;display:flex;flex-direction:column;flex-grow:0;left:0;margin:0;max-width:45vw;pointer-events:none;position:fixed;width:auto;z-index:35}.nav-stack .nav-slab{pointer-events:auto}.nav-slab{border-bottom:155px solid #000;border-left:0 solid #0000;border-right:52px solid #0000;color:silver;filter:drop-shadow(8px 8px 8px rgba(255,255,255,.3));height:0;margin:.8vh 0;overflow:visible;position:relative;transition:all .3s ease}.nav-slab:before{background:linear-gradient(135deg,#fff0,#fff0 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:10vw;top:0}.nav-slab:hover{border-bottom-color:silver;color:#000;cursor:pointer;transform:scale(1.05)}.nav-slab:hover:before{background:linear-gradient(135deg,#fff0,#fff0 50%)}.nav-slab--about{max-width:none;min-width:0;width:155px}.nav-slab--blog{max-width:none;min-width:0;width:205px}.nav-slab--contact{max-width:none;min-width:0;width:255px}.nav-label{color:silver;font-family:Rajdhani,sans-serif;font-size:32px;font-weight:600;left:24px;position:absolute;text-transform:uppercase;top:96px}.nav-slab:hover .nav-label{color:#000}.content-panel{align-items:left;color:#666;display:flex;flex-direction:column;flex-grow:1;font-family:Chakra Petch,sans-serif;font-size:36px;font-weight:100;justify-content:top;margin-left:32px;padding:25px;width:60%;z-index:1;z-index:2}.workflow-title{color:#fff;font-size:36px;font-weight:600;margin:0}.workflow-description{color:#fff;font-size:24px}.workflow-list{gap:16px;list-style:none;margin:0;padding:0}.workflow-item{display:flex;flex-direction:column;margin:20px 0 40px;position:relative}.workflow-item-title{align-items:center;color:#777;cursor:none;display:flex;flex-shrink:0;font-size:42px;gap:16px;padding-left:40px;position:relative;transition:all .3s ease;white-space:nowrap}.workflow-item-title:hover{color:#fff;text-shadow:2px 2px 2px #000c}.workflow-item-title:before{color:#777;content:">";font-weight:600;transform:rotate(0deg);transition:all .3s ease}.workflow-item-title:hover:before{color:#fff;text-shadow:2px 2px 2px #000c;transform:rotate(90deg)}.workflow-icon{transition:all .3s ease}.workflow-item:hover .workflow-icon{color:#0f0;transform:scale(1.2)}.workflow-item-detail{color:#fff;font-size:20px;left:0;max-height:0;opacity:0;padding-left:80px;pointer-events:none;position:absolute;top:100%;transition:all .3s ease;white-space:nowrap}.workflow-item:hover .workflow-item-detail{opacity:1}.workflow-avail{color:#fff;font-weight:600;margin-top:16px}.highlight{color:#0c0;cursor:pointer;display:inline-block;font-weight:600;position:relative;text-decoration:none;transition:all .3s ease}.highlight:hover{color:#0f0}.highlight:after{background-color:#0f0;bottom:0;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transition:transform .3s ease;width:100%}.highlight:hover:after{transform:scaleX(1)}.hero-cta{background-color:#fff;color:#000;font-family:Chakra Petch,sans-serif;font-size:24px;font-weight:600;margin-top:1rem;padding:2px;position:relative;text-decoration:none;text-transform:uppercase;transition:all .2s ease;transition:border-bottom .3s ease}.hero-cta:hover{background-color:initial;color:#fff}.hero-cta:after{background-color:#0f0;bottom:0;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transition:transform .3s ease;width:100%}.hero-cta:hover:after{transform:scaleX(1)}.overlay{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;width:100%;z-index:1000}.overlay.active{opacity:1;visibility:visible}.overlay-content{background-color:#101010;border-radius:10px;box-shadow:0 0 20px #c0c0c080;max-height:80%;min-height:20%;overflow:auto;padding:20px;position:relative;width:80%}.overlay-close{color:silver;cursor:pointer;font-size:24px;position:absolute;right:20px;top:10px}.about-container{margin:2rem}.footer{align-items:center;background:#0000;bottom:0;box-sizing:border-box;cursor:default;display:flex;flex-wrap:wrap;font-size:.8rem;gap:12px 20px;justify-content:flex-end;line-height:1.4;margin:0;max-width:calc(100% - 340px);padding:0 30px 0 0;position:fixed;right:0;width:max-content;z-index:30}.footer a,.footer span{color:silver;font-family:Roboto,sans-serif;opacity:.7;text-decoration:none;transition:opacity .3s ease}.footer a:hover{opacity:1}@media (max-width:768px){.header{align-items:center;display:flex;padding:2vh 0 0;position:sticky;text-align:left;top:0;z-index:40}.logo-animated{height:40px;margin:0;position:fixed;right:30px;top:30px;width:40px}.title{font-size:36px}.subtitle,.title{letter-spacing:.1em;margin:0 5vw}.subtitle{font-size:16px}.hero-block{margin:24px}.banner{font-size:48px}.subbanner{font-size:24px}.hero-cta,.hero-cta:hover{font-size:18px}.feature-row{display:flex;flex-direction:column;flex-grow:1}.content-panel{box-sizing:border-box;margin-left:0;max-width:100%;padding-left:20px;padding-right:20px;width:100%}.nav-menu-toggle{align-items:center;background:#000000d9;border:1px solid #c0c0c08c;border-radius:4px;bottom:22px;box-shadow:0 0 18px #c0c0c040;cursor:pointer;display:flex;flex-direction:column;gap:6px;height:52px;justify-content:center;left:18px;padding:0;position:fixed;width:52px;z-index:46}.nav-menu-toggle.is-open,.nav-menu-toggle:hover{border-color:#0f0;box-shadow:0 0 18px #00ff0040}.nav-menu-bar{background:silver;display:block;height:2px;transition:transform .25s ease,opacity .2s ease,background .2s ease;width:22px}.nav-menu-toggle.is-open .nav-menu-bar{background:#0f0}.nav-menu-toggle.is-open .nav-menu-bar:first-child{transform:translateY(8px) rotate(45deg)}.nav-menu-toggle.is-open .nav-menu-bar:nth-child(2){opacity:0}.nav-menu-toggle.is-open .nav-menu-bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-menu-backdrop{background:#0000008c;display:block;inset:0;position:fixed;z-index:34}.nav-stack{bottom:88px;left:0;max-width:90vw;opacity:0;pointer-events:none;transform:translateX(calc(-100% - 16px));transition:transform .3s ease,opacity .25s ease}.nav-stack.is-open{opacity:1;pointer-events:none;transform:translateX(0)}.nav-stack.is-open .nav-slab{pointer-events:auto}.nav-stack-slot{height:0;margin:0;min-width:0;width:100%}.nav-slab{border-bottom-width:120px;border-right-width:42px}.nav-slab--about{min-width:0;width:130px}.nav-slab--blog{min-width:0;width:170px}.nav-slab--contact{min-width:0;width:210px}.nav-label{font-size:32px;left:16px;top:72px}.workflow-list{display:flex;flex-direction:column;gap:24px;margin-bottom:40px}.workflow-item{margin:0;position:static;transition:all .3s ease}.workflow-item-title{font-size:24px;padding-left:20px;position:relative;white-space:nowrap}.workflow-item:before{font-size:24px;left:-5px;top:50%}.workflow-icon{align-items:center;display:flex;font-size:24px;height:24px;justify-content:center;min-width:24px}.workflow-item-detail{font-size:16px;height:auto;line-height:1.4;margin:0;opacity:0;overflow:hidden;padding-left:42px;position:static;transition:all .3s ease;white-space:normal}.workflow-item:hover .workflow-item-detail{max-height:96px;opacity:1}.popup-content{max-height:80%;max-width:80%}.page-body{padding-bottom:96px}.footer{align-items:flex-end;display:flex;flex-direction:column;gap:8px;justify-content:flex-end;left:auto;max-width:calc(100% - 84px);padding:0 20px 0 0}.footer a,.footer span{line-height:1.4;margin:0;padding:0}}@media (max-width:480px){.header{align-items:center;padding:10px 0 8px}.brand-block{box-sizing:border-box;flex:1 1 auto;max-width:calc(100% - 64px);min-width:0;padding:0 8px 0 14px}.title{font-size:36px;letter-spacing:.08em;line-height:1.05;margin:0}.subtitle{font-size:clamp(12px,3.7vw,15px);letter-spacing:.04em;line-height:1.25;margin:3px 0 0;max-width:100%}.logo-animated{border-width:5px;height:clamp(24px,6.8vw,30px);right:12px;top:20px;width:clamp(24px,6.8vw,30px)}}.content-panel .back-button{color:#888;cursor:default;font-size:24px;margin-bottom:1rem;position:relative;transition:color .2s ease;width:fit-content}.content-panel .back-button:hover{color:#fff;cursor:pointer}.content-panel .back-button:after{background-color:#0f0;bottom:0;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transition:transform .3s ease;width:100%}.content-panel .back-button:hover:after{transform:scaleX(1)}.content-panel .back-button.is-hidden{display:none}.service-catalog{display:flex;flex-direction:column}.service-catalog .workflow-title{margin-bottom:1rem;margin-top:0}.service-catalog .workflow-description{margin:0 0 2.25rem}.service-catalog .workflow-list{margin:0 0 .5rem}.service-catalog .workflow-item{cursor:default;margin:0 0 2rem}.service-catalog .workflow-item:last-child{margin-bottom:.5rem}.service-catalog .workflow-item-title{cursor:pointer;margin-bottom:.25rem;max-width:100%;padding-left:0;transition:color .3s ease,text-shadow .3s ease;white-space:normal;width:fit-content}.service-catalog .workflow-item-title:before{content:none;display:none}.service-catalog .workflow-icon{color:#777;cursor:pointer;flex-shrink:0;transform:none;transition:color .3s ease;width:1em}.service-catalog .workflow-item:hover .workflow-icon{color:#777;transform:none}.service-catalog .workflow-item-detail{color:#aaa;cursor:pointer;font-size:20px;line-height:1.4;margin-top:.5rem;max-height:none;max-width:min(40rem,65vw);opacity:1;padding-left:calc(1em + 16px);pointer-events:auto;position:static;transition:color .3s ease;white-space:normal;width:fit-content}.service-catalog .workflow-item:has(.workflow-icon:hover) .workflow-item-title,.service-catalog .workflow-item:has(.workflow-item-detail:hover) .workflow-item-title,.service-catalog .workflow-item:has(.workflow-item-title:hover) .workflow-item-title{color:#fff;text-shadow:2px 2px 2px #000c}.service-catalog .workflow-item:has(.workflow-icon:hover) .workflow-icon,.service-catalog .workflow-item:has(.workflow-item-detail:hover) .workflow-icon,.service-catalog .workflow-item:has(.workflow-item-title:hover) .workflow-icon{color:#0f0;transform:none}.service-catalog .workflow-item:has(.workflow-icon:hover) .workflow-item-detail,.service-catalog .workflow-item:has(.workflow-item-detail:hover) .workflow-item-detail,.service-catalog .workflow-item:has(.workflow-item-title:hover) .workflow-item-detail{color:#fff}.service-catalog .workflow-avail{margin-top:2.5rem}.about-expand{height:0;overflow:hidden;transition:height .65s cubic-bezier(.4,0,.2,1)}.about-expand-inner{padding-bottom:2.5rem}.about-expand:not(.is-expanded){pointer-events:none}.blog-expand{height:0;overflow:hidden;transition:height .65s cubic-bezier(.4,0,.2,1)}.blog-expand-inner{box-sizing:border-box;padding-bottom:1rem}.blog-expand:not(.is-expanded){pointer-events:none}.about-expand .about-page-title,.about-expand .blog-page-title{margin:0 0 1.5rem}.blog-expand .blog-page-title{margin-bottom:1.5rem}.blog-expand .blog-grid{margin:0;max-width:100%;padding:0}.about-expand .about-panel-back-bottom{margin-bottom:2rem;margin-top:2.5rem}.about-expand-inner{box-sizing:border-box;padding-bottom:1rem}.about-workflow{box-sizing:border-box;max-width:100%;padding-bottom:1.5rem;width:100%}.blog-expand .blog-panel-back-bottom{margin-bottom:2rem;margin-top:2.5rem}.blog-panel{padding-bottom:1.5rem}.about-section{margin:0 0 2.5rem;max-width:100%;width:100%}.about-section-title{color:#fff;font-family:Chakra Petch,sans-serif;font-size:28px;font-weight:600;letter-spacing:.04em;margin:0 0 .85rem;text-transform:uppercase}.about-section-body{color:#ccc;font-family:Roboto,sans-serif;font-size:18px;line-height:1.5;margin:0 0 1rem;max-width:none;width:100%}.about-section-body:last-child{margin-bottom:0}.about-person-name{color:silver;font-family:Rajdhani,sans-serif;font-size:26px;font-weight:600;letter-spacing:.03em;margin:0 0 .25rem}.about-person-role{color:#0c0;font-family:Roboto,sans-serif;font-size:16px;letter-spacing:.02em;margin:0 0 .75rem}.about-section--how .workflow-list{margin-top:1.25rem}.projects{align-items:flex-start;justify-content:flex-start;margin:75px}.projects,.projects-header{display:flex;flex-direction:column;height:auto}.projects-header{flex-grow:1;justify-content:left;margin-bottom:32px;width:100%}.back-button{color:#888;cursor:default;font-size:24px;transition:color .2s ease}.back-button:hover{color:#fff;cursor:pointer}.projects-header-title{color:#fff;cursor:default;display:inline-block;font-family:Chakra Petch,sans-serif;font-size:54px;letter-spacing:2px;margin:0;text-align:left;text-transform:uppercase;transition:all .1s ease;width:fit-content}.projects-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(1,1fr);height:auto;margin:0 auto;max-width:1200px;padding:16px;width:100%}.project-card{background:#0a0a0a;border:1px solid #1a1a1a;border-radius:8px;cursor:default;padding:30px;transition:all .3s ease}.project-card:hover{border-color:#333;box-shadow:0 5px 15px #0000004d;transform:translateY(-5px)}.project-title{color:silver;font-size:32px;margin:0 0 15px}.project-meta{color:#888;display:flex;font-size:.9em;gap:24px;margin-bottom:20px}.project-description{color:silver;line-height:1.6;margin-bottom:16px}.project-tech{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:25px}.tech-tag{background:#0a0;border-radius:4px;color:#fff;font-size:.85em;letter-spacing:.05em;padding:6px 12px;text-transform:uppercase}.project-highlights{color:#888;margin:0;padding-left:20px}.project-highlights li{line-height:1.4;margin-bottom:8px}.project-availability,.project-contact-link{background-color:#fff;color:#000;display:inline-block;font-size:16px;font-weight:600;margin-top:20px;padding:2px;position:relative;text-decoration:none;text-transform:uppercase}.project-contact-link:hover{background-color:initial;color:#fff}.project-contact-link:after{background-color:#0f0;bottom:0;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transition:transform .3s ease;width:100%}.project-contact-link:hover:after{transform:scaleX(1)}.project-card:hover .project-description,.project-card:hover .project-title{color:#fff}.project-card:hover .project-highlights,.project-card:hover .project-meta{color:silver}.project-card:hover .tech-tag{background:#0d0}@media (max-width:768px){.projects{margin:50px}.projects-header-title{margin:0}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}
/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{background:#0d1117;color:#c9d1d9}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{background-color:#033a16;color:#aff5b4}.hljs-deletion{background-color:#67060c;color:#ffdcd7}.blog-post{color:#fff;margin:0 auto;max-width:800px;padding:48px}.blog-post-content{color:#ccc;font-size:1.1rem;line-height:1.8rem}.blog-post-h1{color:#fff;font-family:Chakra Petch,sans-serif;font-size:54px;line-height:1;margin:2rem 0 1rem}.blog-post-h2{color:#fff;font-size:36px;margin:1.5rem 0 1rem}.blog-post-code-block{background:#1a1a1a;border-radius:4px;display:block;margin:1rem 0;overflow-x:auto;padding:1rem}.blog-post-inline-code{background:#1a1a1a;border-radius:4px;padding:.2rem .4rem}.blog-post-quote{border-left:4px solid #0c0;font-style:italic;margin:1rem 0;padding-left:1rem}.blog-post-image{border-radius:4px;height:auto;margin:1rem 0;max-width:100%}.blog-post-content ol,.blog-post-content ul{margin:1rem 0;padding-left:2rem}.blog-post-content li{margin:.5rem 0}.tweet-container{display:flex;justify-content:center;margin:2rem 0}.blog-post-contact{height:auto;margin:0 auto;max-width:1200px;padding:0;width:100%}.tweet-container_root__UHnkq{background-color:var(--tweet-bg-color);border:var(--tweet-border);border-radius:12px;box-sizing:border-box;color:var(--tweet-font-color);font-family:var(--tweet-font-family);font-weight:400;margin:var(--tweet-container-margin);max-width:550px;min-width:250px;overflow:hidden;transition-duration:.2s;transition-property:background-color,box-shadow;width:100%}.tweet-container_root__UHnkq:hover{background-color:var(--tweet-bg-color-hover)}.tweet-container_article__2QNf4{box-sizing:inherit;padding:.75rem 1rem;position:relative}.react-tweet-theme{--tweet-container-margin:1.5rem 0;--tweet-header-font-size:0.9375rem;--tweet-header-line-height:1.25rem;--tweet-body-font-size:1.25rem;--tweet-body-font-weight:400;--tweet-body-line-height:1.5rem;--tweet-body-margin:0;--tweet-quoted-container-margin:0.75rem 0;--tweet-quoted-body-font-size:0.938rem;--tweet-quoted-body-font-weight:400;--tweet-quoted-body-line-height:1.25rem;--tweet-quoted-body-margin:0.25rem 0 0.75rem 0;--tweet-info-font-size:0.9375rem;--tweet-info-line-height:1.25rem;--tweet-actions-font-size:0.875rem;--tweet-actions-line-height:1rem;--tweet-actions-font-weight:700;--tweet-actions-icon-size:1.25em;--tweet-actions-icon-wrapper-size:calc(var(--tweet-actions-icon-size) + 0.75em);--tweet-replies-font-size:0.875rem;--tweet-replies-line-height:1rem;--tweet-replies-font-weight:700}:where(.react-tweet-theme) *{box-sizing:border-box;margin:0;padding:0}:is([data-theme=light],.light) :where(.react-tweet-theme),:where(.react-tweet-theme){--tweet-skeleton-gradient:linear-gradient(270deg,#fafafa,#eaeaea,#eaeaea,#fafafa);--tweet-border:1px solid #cfd9de;--tweet-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--tweet-font-color:#0f1419;--tweet-font-color-secondary:#536471;--tweet-bg-color:#fff;--tweet-bg-color-hover:#f7f9f9;--tweet-quoted-bg-color-hover:#00000008;--tweet-color-blue-primary:#1d9bf0;--tweet-color-blue-primary-hover:#1a8cd8;--tweet-color-blue-secondary:#006fd6;--tweet-color-blue-secondary-hover:#006fd61a;--tweet-color-red-primary:#f91880;--tweet-color-red-primary-hover:#f918801a;--tweet-color-green-primary:#00ba7c;--tweet-color-green-primary-hover:#00ba7c1a;--tweet-twitter-icon-color:var(--tweet-font-color);--tweet-verified-old-color:#829aab;--tweet-verified-blue-color:var(--tweet-color-blue-primary)}:is([data-theme=dark],.dark) :where(.react-tweet-theme){--tweet-skeleton-gradient:linear-gradient(270deg,#15202b,#1e2732,#1e2732,#15202b);--tweet-border:1px solid #425364;--tweet-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--tweet-font-color:#f7f9f9;--tweet-font-color-secondary:#8b98a5;--tweet-bg-color:#15202b;--tweet-bg-color-hover:#1e2732;--tweet-quoted-bg-color-hover:#ffffff08;--tweet-color-blue-primary:#1d9bf0;--tweet-color-blue-primary-hover:#1a8cd8;--tweet-color-blue-secondary:#6bc9fb;--tweet-color-blue-secondary-hover:#6bc9fb1a;--tweet-color-red-primary:#f91880;--tweet-color-red-primary-hover:#f918801a;--tweet-color-green-primary:#00ba7c;--tweet-color-green-primary-hover:#00ba7c1a;--tweet-twitter-icon-color:var(--tweet-font-color);--tweet-verified-old-color:#829aab;--tweet-verified-blue-color:#fff}@media (prefers-color-scheme:dark){:where(.react-tweet-theme){--tweet-skeleton-gradient:linear-gradient(270deg,#15202b,#1e2732,#1e2732,#15202b);--tweet-border:1px solid #425364;--tweet-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--tweet-font-color:#f7f9f9;--tweet-font-color-secondary:#8b98a5;--tweet-bg-color:#15202b;--tweet-bg-color-hover:#1e2732;--tweet-color-blue-primary:#1d9bf0;--tweet-color-blue-primary-hover:#1a8cd8;--tweet-color-blue-secondary:#6bc9fb;--tweet-color-blue-secondary-hover:#6bc9fb1a;--tweet-color-red-primary:#f91880;--tweet-color-red-primary-hover:#f918801a;--tweet-color-green-primary:#00ba7c;--tweet-color-green-primary-hover:#00ba7c1a;--tweet-twitter-icon-color:var(--tweet-font-color);--tweet-verified-old-color:#829aab;--tweet-verified-blue-color:#fff}}.skeleton_skeleton__L585f{animation:skeleton_loading__dPq5K 8s ease-in-out infinite;background-image:var(--tweet-skeleton-gradient);background-size:400% 100%;border-radius:5px;display:block;width:100%}@media (prefers-reduced-motion:reduce){.skeleton_skeleton__L585f{animation:none;background-position:200% 0}}@keyframes skeleton_loading__dPq5K{0%{background-position:200% 0}to{background-position:-200% 0}}.tweet-skeleton_root__8RjEg{padding-bottom:.25rem;pointer-events:none}.tweet-not-found_root__54\+q4{align-items:center;display:flex;flex-direction:column;padding-bottom:.75rem}.tweet-not-found_root__54\+q4>h3{font-size:1.25rem;margin-bottom:.5rem}.tweet-header_header__YTfhv{display:flex;font-size:var(--tweet-header-font-size);line-height:var(--tweet-header-line-height);overflow:hidden;overflow-wrap:break-word;padding-bottom:.75rem;white-space:nowrap}.tweet-header_avatar__Ve\+cv{height:48px;position:relative;width:48px}.tweet-header_avatarOverflow__3ub9E{border-radius:9999px;height:100%;overflow:hidden;position:absolute;width:100%}.tweet-header_avatarSquare__2M1Wi{border-radius:4px}.tweet-header_avatarShadow__6uqgI{box-shadow:inset 0 0 2px #00000008;height:100%;transition-duration:.2s;transition-property:background-color;width:100%}.tweet-header_avatarShadow__6uqgI:hover{background-color:#1a1a1a26}.tweet-header_author__abWvB{display:flex;flex-direction:column;justify-content:center;margin:0 .5rem;max-width:calc(100% - 84px)}.tweet-header_authorLink__Zo2FB{align-items:center;color:inherit;display:flex;text-decoration:none}.tweet-header_authorLink__Zo2FB:hover{text-decoration-line:underline}.tweet-header_authorVerified__znl83{display:inline-flex}.tweet-header_authorLinkText__xRWS7{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tweet-header_authorFollow__g5T2W,.tweet-header_authorMeta__Ho\+I2{display:flex}.tweet-header_username__v0vvk{color:var(--tweet-font-color-secondary);text-decoration:none;text-overflow:ellipsis}.tweet-header_follow__Mvu5t{color:var(--tweet-color-blue-secondary);font-weight:700;text-decoration:none}.tweet-header_follow__Mvu5t:hover{text-decoration-line:underline}.tweet-header_separator__ke7RG{padding:0 .25rem}.tweet-header_brand__\+5idK{margin-inline-start:auto}.tweet-header_twitterIcon__gtc7a{fill:currentColor;color:var(--tweet-twitter-icon-color);height:23.75px;-webkit-user-select:none;user-select:none;width:23.75px}.verified-badge_verifiedOld__5IcEp{color:var(--tweet-verified-old-color)}.verified-badge_verifiedBlue__Hse47{color:var(--tweet-verified-blue-color)}.verified-badge_verifiedGovernment__WVN65{color:#829aab}.icons_verified__SuPPs{fill:currentColor;height:1.25em;margin-left:.125rem;max-height:20px;max-width:20px;-webkit-user-select:none;user-select:none;vertical-align:text-bottom}.tweet-in-reply-to_root__l10SC{color:var(--tweet-font-color-secondary);font-size:.9375rem;line-height:1.25rem;margin-bottom:.25rem;overflow-wrap:break-word;text-decoration:none;white-space:pre-wrap}.tweet-in-reply-to_root__l10SC:hover{text-decoration-line:underline;text-decoration-thickness:1px}.tweet-link_root__lwE8c{color:var(--tweet-color-blue-secondary);cursor:pointer;font-weight:inherit;text-decoration:none}.tweet-link_root__lwE8c:hover{text-decoration-line:underline;text-decoration-thickness:1px}.tweet-body_root__HQXHG{font-size:var(--tweet-body-font-size);font-weight:var(--tweet-body-font-weight);line-height:var(--tweet-body-line-height);margin:var(--tweet-body-margin);overflow-wrap:break-word;white-space:pre-wrap}.tweet-media_root__8UcJw{margin-top:.75rem;overflow:hidden;position:relative}.tweet-media_rounded__ccA\+S{border:var(--tweet-border);border-radius:12px}.tweet-media_mediaWrapper__xdwtq{grid-gap:2px;display:grid;gap:2px;grid-auto-rows:1fr;height:100%;width:100%}.tweet-media_grid2Columns__VcfaR{grid-template-columns:repeat(2,1fr)}.tweet-media_grid3__BgChK>a:first-child{grid-row:span 2}.tweet-media_grid2x2__o1gSR{grid-template-rows:repeat(2,1fr)}.tweet-media_mediaContainer__dKkWg{align-items:center;display:flex;height:100%;justify-content:center;position:relative;width:100%}.tweet-media_mediaLink__9YbPK{outline-style:none;text-decoration:none}.tweet-media_skeleton__wMkxn{display:block;padding-bottom:56.25%;width:100%}.tweet-media_image__\+kXsf{bottom:0;height:100%;left:0;margin:0;object-fit:cover;object-position:center;position:absolute;top:0;width:100%}.tweet-media-video_anchor__0HYL4{align-items:center;border:1px solid #0000;border-radius:9999px;color:#fff;cursor:pointer;display:flex;font-weight:700;outline-style:none;padding:0 1rem;text-decoration:none;text-overflow:ellipsis;transition:background-color .2s;-webkit-user-select:none;user-select:none;white-space:nowrap}.tweet-media-video_videoButton__oJ\+Yv{align-items:center;background-color:var(--tweet-color-blue-primary);border:4px solid #fff;border-radius:9999px;cursor:pointer;display:flex;height:67px;justify-content:center;position:relative;transition-duration:.2s;transition-property:background-color;width:67px}.tweet-media-video_videoButton__oJ\+Yv:focus-visible,.tweet-media-video_videoButton__oJ\+Yv:hover{background-color:var(--tweet-color-blue-primary-hover)}.tweet-media-video_videoButtonIcon__bxXAn{fill:currentColor;color:#fff;height:calc(50% + 4px);margin-left:3px;max-width:100%;-webkit-user-select:none;user-select:none;width:calc(50% + 4px)}.tweet-media-video_watchOnTwitter__Fl5Ac{position:absolute;right:8px;top:12px}.tweet-media-video_watchOnTwitter__Fl5Ac>a{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0f1419bf;font-size:.875rem;line-height:1rem;min-height:2rem;min-width:2rem}.tweet-media-video_watchOnTwitter__Fl5Ac>a:hover{background-color:#272c30bf}.tweet-media-video_viewReplies__QWTFL{background-color:var(--tweet-color-blue-primary);border-color:var(--tweet-color-blue-primary);font-size:.9375rem;line-height:1.25rem;min-height:2rem;position:relative}.tweet-media-video_viewReplies__QWTFL:hover{background-color:var(--tweet-color-blue-primary-hover)}.tweet-info-created-at_root__OXKao{color:inherit;font-size:var(--tweet-info-font-size);line-height:var(--tweet-info-line-height);text-decoration:none}.tweet-info-created-at_root__OXKao:hover{text-decoration-line:underline;text-decoration-thickness:1px}.tweet-info_info__oDwC9{align-items:center;color:var(--tweet-font-color-secondary);display:flex;margin-top:.125rem;overflow-wrap:break-word;text-overflow:ellipsis;white-space:nowrap}.tweet-info_infoLink__nfflB{align-items:center;border-radius:9999px;color:inherit;display:flex;font:inherit;height:var(--tweet-actions-icon-wrapper-size);justify-content:center;margin-left:auto;margin-right:-4px;text-decoration:none;transition-duration:.2s;transition-property:background-color;width:var(--tweet-actions-icon-wrapper-size)}.tweet-info_infoLink__nfflB:hover{background-color:var(--tweet-color-blue-secondary-hover)}.tweet-info_infoIcon__ywMyD{fill:currentColor;color:inherit;height:var(--tweet-actions-icon-size);-webkit-user-select:none;user-select:none}.tweet-info_infoLink__nfflB:hover>.tweet-info_infoIcon__ywMyD{color:var(--tweet-color-blue-secondary)}.tweet-actions_actions__dLgsm{align-items:center;border-top:var(--tweet-border);color:var(--tweet-font-color-secondary);display:flex;margin-top:.25rem;overflow-wrap:break-word;padding-top:.25rem;text-overflow:ellipsis;white-space:nowrap}.tweet-actions_copy__O\+oOx,.tweet-actions_like__aKYvU,.tweet-actions_reply__u0-X9{align-items:center;color:inherit;display:flex;margin-right:1.25rem;text-decoration:none}.tweet-actions_copy__O\+oOx:hover,.tweet-actions_like__aKYvU:hover,.tweet-actions_reply__u0-X9:hover{background-color:#0000}.tweet-actions_like__aKYvU:hover>.tweet-actions_likeIconWrapper__StvAl{background-color:var(--tweet-color-red-primary-hover)}.tweet-actions_like__aKYvU:hover>.tweet-actions_likeCount__BBGYp{color:var(--tweet-color-red-primary);text-decoration-line:underline}.tweet-actions_copyIconWrapper__oJSgY,.tweet-actions_likeIconWrapper__StvAl,.tweet-actions_replyIconWrapper__lHnMc{align-items:center;border-radius:9999px;display:flex;height:var(--tweet-actions-icon-wrapper-size);justify-content:center;margin-left:-.25rem;width:var(--tweet-actions-icon-wrapper-size)}.tweet-actions_copyIcon__e5Ait,.tweet-actions_likeIcon__ZuoK8,.tweet-actions_replyIcon__\+j\+oR{fill:currentColor;height:var(--tweet-actions-icon-size);-webkit-user-select:none;user-select:none}.tweet-actions_likeIcon__ZuoK8{color:var(--tweet-color-red-primary)}.tweet-actions_copyText__-excO,.tweet-actions_likeCount__BBGYp,.tweet-actions_replyText__\+vfvj{font-size:var(--tweet-actions-font-size);font-weight:var(--tweet-actions-font-weight);line-height:var(--tweet-actions-line-height);margin-left:.25rem}.tweet-actions_reply__u0-X9:hover>.tweet-actions_replyIconWrapper__lHnMc{background-color:var(--tweet-color-blue-secondary-hover)}.tweet-actions_reply__u0-X9:hover>.tweet-actions_replyText__\+vfvj{color:var(--tweet-color-blue-secondary);text-decoration-line:underline}.tweet-actions_replyIcon__\+j\+oR{color:var(--tweet-color-blue-primary)}.tweet-actions_copy__O\+oOx{background:none;border:none;cursor:pointer;font:inherit}.tweet-actions_copy__O\+oOx:hover>.tweet-actions_copyIconWrapper__oJSgY{background-color:var(--tweet-color-green-primary-hover)}.tweet-actions_copy__O\+oOx:hover .tweet-actions_copyIcon__e5Ait{color:var(--tweet-color-green-primary)}.tweet-actions_copy__O\+oOx:hover>.tweet-actions_copyText__-excO{color:var(--tweet-color-green-primary);text-decoration-line:underline}.tweet-replies_replies__GSC\+r{padding:.25rem 0}.tweet-replies_link__zxNP8{align-items:center;border:var(--tweet-border);border-radius:9999px;color:var(--tweet-color-blue-secondary);display:flex;justify-content:center;min-height:32px;min-width:32px;outline-style:none;padding:0 1rem;text-decoration:none;transition-duration:.2s;transition-property:background-color;-webkit-user-select:none;user-select:none}.tweet-replies_link__zxNP8:hover{background-color:var(--tweet-color-blue-secondary-hover)}.tweet-replies_text__RHy35{font-size:var(--tweet-replies-font-size);font-weight:var(--tweet-replies-font-weight);line-height:var(--tweet-replies-line-height);overflow:hidden;overflow-wrap:break-word;text-overflow:ellipsis;white-space:nowrap}.quoted-tweet-container_root__bP26T{border:var(--tweet-border);border-radius:12px;cursor:pointer;margin:var(--tweet-quoted-container-margin);overflow:hidden;transition-duration:.2s;transition-property:background-color,box-shadow;width:100%}.quoted-tweet-container_root__bP26T:hover{background-color:var(--tweet-quoted-bg-color-hover)}.quoted-tweet-container_article__4Ch-O{box-sizing:inherit;position:relative}.quoted-tweet-header_header__C5G\+0{display:flex;font-size:var(--tweet-header-font-size);line-height:var(--tweet-header-line-height);overflow:hidden;overflow-wrap:break-word;padding:.75rem .75rem 0;white-space:nowrap}.quoted-tweet-header_avatar__z86wT{height:20px;position:relative;width:20px}.quoted-tweet-header_avatarSquare__RDYEO{border-radius:4px}.quoted-tweet-header_author__geibY{display:flex;margin:0 .5rem}.quoted-tweet-header_authorText__vZ6RB{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quoted-tweet-header_username__9BzFb{color:var(--tweet-font-color-secondary);margin-left:.125rem;text-decoration:none;text-overflow:ellipsis}.quoted-tweet-body_root__fDmdw{font-size:var(--tweet-quoted-body-font-size);font-weight:var(--tweet-quoted-body-font-weight);line-height:var(--tweet-quoted-body-line-height);margin:var(--tweet-quoted-body-margin);overflow-wrap:break-word;padding:0 .75rem;white-space:pre-wrap}
/*# sourceMappingURL=main.f2ba1d99.css.map*/