.blob[data-astro-cid-zwdnfror] svg{position:absolute;top:var(--top);left:var(--left);right:var(--right);z-index:var(--zIndex)}@font-face{font-family:Libre Franklin;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/libre-franklin-100-900-italic-vietnamese.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Libre Franklin;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/libre-franklin-100-900-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Libre Franklin;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/libre-franklin-100-900-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/libre-franklin-100-900-normal-vietnamese.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/libre-franklin-100-900-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Libre Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/libre-franklin-100-900-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Azeret Mono;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/azaret-mono-100-900-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Azeret Mono;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/azaret-mono-100-900-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Azeret Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/azaret-mono-100-900-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Azeret Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/azaret-mono-100-900-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box;font-family:Libre Franklin,sans-serif}:root{--color-bg: #080e17;--color-light-bg: #16212d;--color-primary: #2dde74;--color-secondary: #9e86ff;--color-tertiary: #ffd00e;--color-muted: #37485c;--color-pink: #ff70bc;--color-text: white}[hidden]{display:none!important}html{font-size:20px;line-height:1.6;background-color:var(--color-bg);color:var(--color-text);overflow-x:hidden}body{margin:0;position:relative;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0 0 .5em;font-family:Azeret Mono,sans-serif}p{margin:1rem 0}p:first-child,ul:first-child,ol:first-child{margin-top:0}p:last-child,ul:last-child,ol:last-child{margin-bottom:0}table{margin:1rem 0}code,pre{font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,monospace;font-size:.8rem}code{padding:.1rem .2rem;background:#00000080;border:1px solid rgba(255,255,255,.1)}pre{display:block;width:100%;overflow-x:scroll;padding:1rem;background:var(--color-bg)}a{color:var(--color-primary);&:hover{color:var(--color-secondary)}}a.sneaky{color:var(--color-text);text-decoration:none;&:hover{color:var(--color-secondary);text-decoration:underline}}a.skiplink{position:absolute;transform:translateY(-100%);&:focus{transform:translateY(0)}}form{margin:1rem 0;button{display:inline-block;padding:.4rem .8rem;color:#000;background-color:var(--color-primary);border:0;border-radius:.5rem;text-decoration:none;text-transform:uppercase;font-weight:700;font-size:.8rem;cursor:pointer;&:hover{background:var(--color-secondary)}&:active{background:var(--color-tertiary)}}input,textarea{display:block;width:100%;padding:.5rem;border:1px solid var(--color-light-bg);background:var(--color-bg);color:#fff;font-size:1rem;font-family:Libre Franklin,sans-serif}.input-wrapper{position:relative;.prefix{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;padding:.5rem}input{padding-left:3rem}}input{&[type=number]{-moz-appearance:textfield;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{display:none}}&:invalid{border-color:var(--color-tertiary);outline:none;+.hint{display:block}}}.control{margin:.7rem 0;label{display:block;small{display:block;font-style:italic}}.hint{display:none;color:var(--color-tertiary)}}}details{summary{cursor:pointer}}.container{position:relative;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;max-width:860px;&.container--narrow{max-width:600px}}table{width:100%;border-collapse:collapse;tr{text-align:left}td,th{@media (min-width: 451px){padding-left:.3rem;padding-right:.3rem}}&.table--bordered{border-top:2px solid var(--color-muted);tr{td,th{padding:.3rem;border-bottom:1px solid var(--color-muted)}}}&.table--lr{td:nth-child(1),th:nth-child(1){text-align:left}td:nth-child(2),th:nth-child(2){text-align:right}}&.table--lrr{td:nth-child(1),th:nth-child(1){text-align:left}td:nth-child(2),th:nth-child(2),td:nth-child(3),th:nth-child(3){text-align:right}}&.table--40-30-30{@media (min-width: 451px){td:nth-child(1),th:nth-child(1){width:40%}td:nth-child(2),th:nth-child(2),td:nth-child(3),th:nth-child(3){width:30%}}}}ul,ol{li>ul,li>ol{padding-left:2rem}}blockquote{position:relative;margin:2rem;padding-top:2rem;&:before{content:"“";position:absolute;top:-.5rem;left:-.4rem;font-size:5rem;line-height:1;font-style:italic;color:var(--color-primary);pointer-events:none}}.button{display:inline-block;margin:1rem 0;padding:.8rem 2rem;color:var(--color-bg);background-color:var(--color-primary);border:none;border-radius:.5rem;text-align:center;text-decoration:none;text-transform:uppercase;font-weight:700;font-size:1.2em;cursor:pointer;&.button--small{padding:.4rem 1rem;font-size:1rem}&:hover{background:var(--color-secondary);color:var(--color-bg)}&:active{background:var(--color-tertiary);color:var(--color-bg)}}.button-group{display:flex;border:2px solid var(--color-primary);border-radius:.5rem;overflow:hidden;.button{margin:0;border-radius:0;border-right:2px solid var(--color-primary);background:none;color:var(--color-primary);&:last-child{border-right:none}}}.select{padding:.5rem;background:none;border:none;color:#fff;font-size:1rem}section{margin:4rem 0;@media (max-width: 800px){margin:2rem 0}h1{font-size:4rem;line-height:1.3;@media (max-width: 800px){font-size:2rem}}h2{font-size:1.8rem}}nav{display:flex;align-items:center;justify-content:space-between;margin-top:2rem;margin-bottom:2rem;@media (max-width: 800px){flex-direction:column;gap:1rem}a{text-decoration:none;img{max-height:3.5rem}}ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:flex-end;column-gap:2rem;@media (max-width: 800px){justify-content:center}}}img{max-width:100%}video{max-width:100%;margin:2rem auto}iframe{display:block;width:100%;max-width:100%;height:auto;margin:2rem auto;border:none;&.youtube-embed{aspect-ratio:1.777777}}.icon{display:block;&.icon--stroked{svg{path,rect{stroke:#fff}}}&.icon--filled{svg{path,rect{fill:#fff}}}svg{display:block;width:1rem;height:1rem}}.label{display:inline-block;padding:.25rem .5rem;font-size:.9rem;font-weight:400;line-height:1;border-radius:.2rem;color:#000;background:#85c1e4}footer{margin:4rem 0;text-align:center;.footer-nav{max-width:30rem;margin:0 auto;span{display:inline-block;margin:0 1rem}}.footer-socials{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem;a{text-decoration:none;color:#fff;&:hover{color:var(--color-primary);svg path{fill:var(--color-primary)}}}}}.flex-center{display:flex;align-items:center;justify-content:center}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.text-center{text-align:center}.divider{margin-top:2rem;border-bottom:1px solid var(--color-secondary);h1,h2,h3,h4,h5,h6{display:inline-block;margin:0;padding:.3rem .5rem;font-size:1rem;font-weight:400;color:#000;background:var(--color-secondary)}}.highlight-box{margin:1rem 0;padding:1rem 1.25rem;background:var(--color-light-bg);border-radius:.5rem;h2,h3{font-size:1.2rem;line-height:1.3}&.highlight-box--circled{h3{display:flex;align-items:center;.circled{margin-right:1rem}}}}.edge-blobs{@media (max-width: 980px){display:none}}.circled{display:flex;align-items:center;justify-content:center;text-align:center;width:2rem;height:2rem;border-radius:100%;border:3px solid var(--color-text);font-weight:700;font-size:1.2rem}.badge-heading{text-align:center;h1,h2,h3,h4,h5,h6{display:inline-block;padding:.2rem .6rem;transform:rotate(3deg);position:relative;z-index:20;text-transform:uppercase;font-weight:700;font-size:1.3rem;background-color:var(--color-primary);color:#000}}.badge-heading-container{position:relative;.badge-heading{position:absolute;top:-1.3rem;left:0;right:0}}hr{margin:1.5rem auto;max-width:10rem;border-color:var(--color-primary);border-width:1px}.article-listing{position:relative;margin:0;&:last-child hr{display:none}h2{font-size:1.2rem;font-weight:400;font-family:Libre Franklin,sans-serif}blockquote{margin:0}.meta{display:flex;align-items:center;.avatar{width:2.5rem;height:2.5rem;background-size:cover;background-position:center center;margin-right:1rem;border-radius:100%}em{display:block}time{display:block;font-size:.8rem}}}.bluesky-flutter svg{transition:.2s}.bluesky-flutter .left{transform-origin:center}.bluesky-flutter .right{transform-origin:center;transform:scaleX(-1)}.bluesky-flutter:hover .left,.bluesky-flutter:focus .left{animation:flutter .43s ease-in-out;--flip: 1}.bluesky-flutter:hover .right,.bluesky-flutter:focus .right{animation:flutter .5s ease-in-out;--flip: -1}.bluesky-flutter:hover svg,.bluesky-flutter:focus svg{transform:rotate(-5deg);transition:.5s}@media (prefers-reduced-motion){.bluesky-flutter:hover .left,.bluesky-flutter:focus .left,.bluesky-flutter:hover .right,.bluesky-flutter:focus .right{animation:none}}@keyframes flutter{10%{transform:scale(calc(var(--flip)*1),.9)}20%{transform:scaleX(calc(var(--flip)*.5))}40%{transform:scale(calc(var(--flip)*.9),.95)}60%{transform:scaleX(calc(var(--flip)*.3))}80%{transform:scale(calc(var(--flip)*.9),.95)}to{transform:scaleX(calc(var(--flip)*1))}}.latest-blog-post-banner[data-astro-cid-am5xac56]{padding:.2rem 0;background-color:var(--color-light-bg);a{display:flex;gap:.5rem;align-items:center;color:var(--color-primary);text-decoration:none;&:hover{color:var(--color-secondary);.sep{border-color:var(--color-secondary)}}@media (max-width: 800px){display:block;text-align:center;.latest-long{display:none}.latest-short{display:inline}.sep{display:none}}}.latest-short{display:none}.sep{border-right:1px solid var(--color-primary);height:1rem}}
