footer[data-astro-cid-cpgxvzen] [data-astro-cid-cpgxvzen]{font-family:JetBrains Mono!important}footer[data-astro-cid-cpgxvzen] h4[data-astro-cid-cpgxvzen]{padding-block:1rem;font-size:1rem}footer[data-astro-cid-cpgxvzen]{font-family:JetBrains Mono;display:grid;width:100%;height:530px;background-color:#6c6c6c26;border-top:1.5px solid rgba(255,255,255,.139)}footer[data-astro-cid-cpgxvzen] p[data-astro-cid-cpgxvzen]{color:#fff}.grid[data-astro-cid-cpgxvzen]{display:flex;flex-direction:column;align-items:flex-start;gap:3rem;padding-block:5rem}.newsletter[data-astro-cid-cpgxvzen]{display:grid;grid-template-columns:1fr;gap:1rem}.newsletter[data-astro-cid-cpgxvzen] h4[data-astro-cid-cpgxvzen]{font-weight:700;font-size:4rem;color:#fff;font-family:Bricolage Grotesque!important}.contact[data-astro-cid-cpgxvzen]{display:grid;grid-template-columns:1fr;place-items:flex-end;gap:2rem}.legacy[data-astro-cid-cpgxvzen]{display:flex;flex-direction:column;gap:1.5rem;padding-top:2rem;color:#fff}.legacy[data-astro-cid-cpgxvzen] .declaration[data-astro-cid-cpgxvzen]{font-size:.7rem}.legacy[data-astro-cid-cpgxvzen] a[data-astro-cid-cpgxvzen]{display:block;width:max-content}.legacy[data-astro-cid-cpgxvzen] a[data-astro-cid-cpgxvzen]:hover{text-decoration:underline}.info[data-astro-cid-cpgxvzen] a[data-astro-cid-cpgxvzen]>[data-astro-cid-cpgxvzen]{color:#fff!important}.links[data-astro-cid-cpgxvzen]{display:flex;flex-direction:column;gap:1rem}.links[data-astro-cid-cpgxvzen] ul[data-astro-cid-cpgxvzen] li[data-astro-cid-cpgxvzen]:hover{color:var(--contrast-2)!important}.links[data-astro-cid-cpgxvzen] a[data-astro-cid-cpgxvzen]:hover{color:#fff;text-decoration:underline}header[data-astro-cid-6sev2il6]{display:inline-flex;flex-direction:column;justify-content:center;position:relative;width:100%;height:80px;color:var(--color-primary)!important}header[data-astro-cid-6sev2il6] .wrapper[data-astro-cid-6sev2il6]{width:100%}header[data-astro-cid-6sev2il6] .flex[data-astro-cid-6sev2il6]{display:flex;align-items:center;justify-content:space-between;max-width:100%;margin:0}.actions[data-astro-cid-j2devmb2]{display:flex;align-items:center;gap:2rem;color:var(--color-primary)}.link[data-astro-cid-j2devmb2]{display:flex;align-items:center;gap:.5rem;transition:background-color .3s;border-radius:var(--rounded);background-color:#3535353f;padding:.5rem .8rem}.link[data-astro-cid-j2devmb2]:hover{background-color:var(--hover-primary)}:root{--container-padding: 2rem;--container-width: calc(100vw - var(--container-padding) * 2)}@media only screen and (max-width: 499px){:root{--container-padding: .75rem}}@media only screen and (min-width: 500px) and (max-width: 1024px){:root{--container-padding: 32px}}@media only screen and (min-width: 1370px){:root{--container-padding: 20px;--container-width: 1330px}}.container>*{box-sizing:border-box;max-width:min(var(--container-width),calc(100% - 2 * var(--container-padding)));margin-inline:auto}.container-narrow{--container-width: 700px}.page-wrapper{display:flex;flex-direction:column;overflow:hidden;min-height:100vh;width:100%}.stack{padding-block:2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(500px,100%),1fr));gap:1.5rem}@media only screen and (max-width: 414px){.stack{padding-block:1.5rem;grid-template-columns:1fr;gap:1rem}}@media only screen and (min-width: 415px) and (max-width: 768px){.stack{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}*,*:before,*:after{box-sizing:border-box}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}button{color:inherit;padding:0;border:none;cursor:pointer;background:transparent;font-size:inherit}form{display:block}select,input{font-size:inherit;font-family:inherit}pre{font-family:monospace}// HTML5 display-role reset for older browsers article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}img{max-width:100%}a{text-decoration:none;color:inherit}textarea{font-size:inherit;font-family:inherit;line-height:inherit;resize:none}hr{border:1px solid rgba(0,0,0,.749);height:1px;background:var(--border);margin:0;padding:0;border:none}*:focus:not(:focus-visible){outline:none}h1,h2,h3,h1 span,h2 span,h3 span{font-family:Literata!important;color:var(--color-primary)}h1{letter-spacing:-3px;font-size:6.1rem;line-height:.9;font-weight:200}@media screen and (max-width: 900px){h1{letter-spacing:-2.5px;line-height:1;font-size:4rem}}@media screen and (min-width: 1350px){h1{font-size:8rem}}h2{font-size:2rem;font-weight:200;letter-spacing:-1px}h3{font-family:Literata!important;font-size:1.4rem;letter-spacing:-1px;font-weight:200}p{color:var(--color-secondary);font-size:var(--size);line-height:var(--line-height)}h4,h5,h6,*,body{font-family:Inter!important;color:var(--color-secondary)}button{font-family:Literata!important}strong{color:var(--color-primary)}:root{--contrast: rgb(0, 122, 236);--bg-color: #ffffff;--color-secondary: #c4c4c4;--color-primary: white;--space: 1rem;--space-2: calc(2 * var(--space));--space-3: calc(4 * var(--space));--space-4: calc(6.8 * var(--space));--space-5: calc(8 * var(--space));--size: 16px;--letter-spacing: -.5px;--line-height: calc(1.8 * var(--size));--contrast-2: #ec7200;--rounded: .3rem;--rounded-2: 16px;--hover-primary: rgba(0, 122, 236, .242);--border: 1.5px solid rgba(255, 255, 255, .126)}.hero{position:relative;display:grid;width:100%;place-items:center;min-height:100vh;font-size:var(--size);z-index:1;padding-bottom:5rem}.hero .wrapper:before,.hero .wrapper:after{--contrast: #007aec94;content:"";position:absolute;width:38px;aspect-ratio:1 / 1;z-index:-100;inset:0;animation:spin 15s linear infinite normal;background:var(--contrast);box-shadow:inset 0 0 5px -3px #6b6b6b;border-radius:var(--rounded)}.hero .wrapper:before{left:200px}.hero .wrapper:after{left:900px;top:262px;animation:moveY 25s linear infinite alternate}@keyframes moveY{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(-1turn)}}@media screen and (min-width: 1350px){.hero p{width:750px;line-height:1.6}.hero h1{max-width:100%}.hero h1 span{font-size:inherit}.hero span{font-size:24px}.hero .description{max-width:800px}.hero .wrapper{gap:var(--space-3);width:100%}}@media screen and (max-width: 900px){.hero .description{gap:var(--space)}.hero .description{width:100%}.hero p{width:100%;line-height:1.6;display:flex;flex-wrap:wrap}}mark{background:var(--contrast);color:#fff;padding:.1rem .2rem;border-radius:.2rem}.viewport{margin-top:-5rem;width:100%;height:100%;background:url() no-repeat center;transition:background .3s}.dock-wrapper{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center}.dock{display:flex}.dock-icon{box-sizing:border-box;width:100px;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;transform-origin:center bottom;background:transparent;padding:.2rem}.dock-icon img{width:100%;height:100%;object-fit:cover}.dock.animated .dock-icon{transition:.1s;transition-property:transform,transform-origin}.card{--rounded-card: .5rem;--gap: 1rem;min-height:400px;display:grid;grid-template-columns:1fr;align-content:space-between;gap:1.5rem;border:var(--border);transition:box-shadow .25s cubic-bezier(.645,.045,.355,1),transform .25s cubic-bezier(.645,.045,.355,1);padding:var(--gap);padding-bottom:0;border-radius:var(--rounded-card)}.card__header{display:flex;align-items:center;justify-content:space-between;font-size:4rem;padding-bottom:3rem}.card__header-icon{transition:transform .2s}.card:hover .card__header-icon{transform:rotate(45deg)}.card:hover h3{text-decoration:underline;color:var(--contrast)}.card h3{font-size:2.4rem!important;white-space:normal;word-break:break-word;max-width:450px}.card__bottom{display:grid;grid-template-columns:1fr;gap:1rem}.card__img{display:block;box-sizing:border-box;width:calc(100% + (2 * var(--gap)));margin-inline:-1rem}.card__img img{display:block;object-fit:cover;width:100%;height:100%;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.card:hover{box-shadow:8px 8px #000;transform:translate(-4px,-4px)}.tags{font-family:JetBrains Mono!important;display:flex;align-items:flex-start;gap:1rem}.tag{font-family:JetBrains Mono!important;padding:.5rem .3rem;width:max-content;background-color:var(--contrast);color:#fff;font-size:.8rem;border-radius:.3rem;border:var(--border)}button>*{font-family:JetBrains Mono!important}.btn{border:var(--border);padding:.4rem .5rem;border-radius:var(--rounded);font-weight:700;display:flex;justify-content:center;align-items:center;gap:.5rem;box-shadow:3px 3px #000;transition:box-shadow .1s;color:#fff;font-family:JetBrains Mono}.btn:hover{filter:brightness(1.4)}.btn .icon svg{fill:#fff;transform-origin:center;width:24px;height:24px;transition:transform .2s}.btn-primary{transition:box-shadow .25s cubic-bezier(.645,.045,.355,1),transform .25s cubic-bezier(.645,.045,.355,1);border-color:var(--contrast)}.btn-primary:hover{transform:translate(-4px,-4px);box-shadow:6px 6px #000;background-color:var(--hover-primary)}.btn:hover .icon svg{transform-origin:center;transform:rotate(45deg)}.btn-secondary{box-shadow:none;border:none;background-color:#000;width:100%;height:100%}input{padding:1rem .5rem;border:var(--border);border-radius:.5rem}form.label{padding-left:.5rem;width:max-content;background:var(--contrast);box-shadow:5px 5px #000;display:flex;align-items:center;border:var(--border);gap:1rem}form.label input{background:transparent;border:none;outline:none;color:#fff}input::placeholder{color:#ffffff7b}.blog-single em{font-style:italic}.blog-single ul li{line-height:1.5}.blog-single strong{font-weight:700}.blog-single h2{padding-top:2rem;font-weight:900;font-size:3rem}.blog-single h3{padding-block:1rem;font-size:1.5rem}.blog-single ul{display:flex;flex-direction:column;gap:1rem;padding-block:1rem;margin-left:50px}.blog-single ul li{list-style:decimal}.blog-single .blog-single__paragraph{padding-block:1rem}.blog-single a{color:var(--contrast);text-decoration:underline}hr{border-bottom:1.5px solid var(--color-secondary);width:100%;height:2.5px;padding-block:1rem}.bento{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.bento__item{border-radius:.5rem;padding:1rem;border:var(--border)}.bento__item:nth-child(1){grid-column:1 / span 2;grid-row:1 / span 2}.bento__item:last-child{grid-column:2 / span 2}.table-container{padding-block:24px}h1{color:#fff;font-size:24px;font-weight:500;text-align:center}table{width:100%;border-collapse:collapse;background-color:transparent}th{background-color:#404040;color:#fff;padding:16px 20px;text-align:left;font-weight:600;font-size:14px;border-bottom:1px solid #555555;border-right:1px solid #555555}th:first-child{border-left:1px solid #555555}th:last-child{border-right:1px solid #555555}td{padding:14px 20px;border-bottom:1px solid #404040;border-right:1px solid #404040;font-size:14px;line-height:1.4;vertical-align:top}td:first-child{border-left:1px solid #404040;font-weight:500;color:#ccc;background-color:#353535}tr:hover{background-color:#ffffff08}.highlight{color:#4fc3f7}.success{color:#81c784}.warning{color:#ffb74d}.info{color:#64b5f6}@media (max-width: 768px){.table-container{padding:16px;margin:10px}table{font-size:12px}th,td{padding:12px 16px}h1{font-size:20px}}blockquote{background-color:var(--hover-primary);margin-block:2rem;border-left:4px solid var(--contrast);padding:1em 1.5em;font-style:italic}.item{width:100%;display:flex;align-items:flex-start;justify-content:space-between;transition:background-color .3s;padding:.5rem;border-radius:var(--rounded)}.item__title{font-family:Inter!important}.item:hover{background-color:var(--hover-primary)}.item__header-icon{transition:transform .2s}.item:hover .item__header-icon{transform:rotate(45deg)}.item__description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.item__info h3{font-size:1.3rem!important;font-weight:400}.item__info>*{font-size:.9rem!important;font-weight:400!important}.item__info{display:grid;grid-template-columns:1fr;gap:1rem}.item__img img{width:100%;display:block;border-radius:var(--rounded);max-width:200px}@media only screen and (max-width: 800px){.item__img{display:none}}.presentation{padding-block:var(--space-3)}.presentation img{max-width:100%;height:auto}.stack__pattern{padding:2rem;padding-block:2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:1.5rem}@media only screen and (max-width: 414px){.stack__pattern{padding-block:1.5rem;grid-template-columns:1fr;gap:1rem}}.card{transition:.3s;background:var(--bg)}.card:hover{background:var(--hover-primary)}.pattern__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:2rem}.pattern__card{display:flex;flex-direction:column;gap:.5rem}.pattern__card:hover{text-decoration:underline}.code-block{border:var(--border);overflow:auto;font-family:monospace;font-size:.9rem;line-height:1.5}pre code.hljs{width:100%!important;padding:2rem!important}.code-content{margin:0;background:none;color:inherit;white-space:pre}.code-toolbar{display:flex;justify-content:flex-end;padding:.5rem .75rem;background-color:#f6f8fa;border-bottom:1px solid #ddd}.copy-btn{font-size:.75rem;background:#fff;border:var(--border);border-radius:4px;padding:.25rem .5rem;cursor:pointer;transition:background .2s}.copy-btn:hover{background:#f0f0f0}pre{padding:1.5rem;overflow:hidden;line-height:1.5;border-radius:1rem}:root{--url-image: url(/noise.png);--background: #0f100e;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bg-noise{position:relative}.bg-noise:before{position:absolute;content:"";pointer-events:none;background:var(--url-image);width:100%;height:100%;top:0;left:0;opacity:.2;z-index:1}body{background-color:var(--background)}
