.dark-theme{--background:var(--gray6);--background-opacity:#12181b95;--text-color:var(--gray2);--h-color:#fff;--nav-shadow:4px 0 10px -3px #010101;--card-shadow:0 4px 8px rgba(0,0,0,.38);--toc-shadow:rgba(0,0,0,.7) 0px 10px 20px 0px;--nav-bg:var(--gray5);--tag-bg:var(--gray4);--code-bg:#22262f;--card-bg:var(--gray5);--overlay-bg:rgba(0,0,0,.9);--h-border:2px dashed var(--nav-bg);--nav-border:2px dashed var(--text-color);--card-border:1px solid var(--nav-bg);--card-radius:0.25em;transition:all .3s ease}.light-theme{--background:var(--gray1);--background-opacity:#f8f8f895;--text-color:var(--gray4);--h-color:var(--gray6);--nav-shadow:4px 0 10px -3px #c1c1c1;--card-shadow:0 4px 8px rgba(0,30,84,.12);--toc-shadow:rgba(0,0,0,.2) 0px 10px 20px 0px;--nav-bg:#fff;--tag-bg:var(--gray2);--code-bg:#fff;--card-bg:#fff;--overlay-bg:hsla(0,0%,100%,.9);--h-border:2px dashed var(--gray1);--nav-border:2px dashed var(--text-color);--card-border:1px solid var(--gray1);transition:all .5s ease}:root{--red:#ff3860;--red-dark:#ff1443;--red-light:#ff5c7c;--blue:#498afb;--blue-dark:#2674fa;--blue-light:#6ca0fc;--orange:#fa8142;--orange-dark:#f96a1f;--orange-light:#fb9865;--green:#09c372;--green-dark:#07a15e;--green-light:#0be586;--purple:#9166cc;--purple-dark:#7d4bc3;--purple-light:#a481d5;--#ff0:#ffdd57;--#ff0-dark:#ffd633;--#ff0-light:#ffe47a;--pink:#ff4088;--pink-dark:#ff1c72;--pink-light:#ff649e;--gray0:#f8f8f8;--gray1:#dbe1e8;--gray2:#b2becd;--gray3:#6c7983;--gray4:#454e56;--gray5:#2a2e35;--gray6:#12181b;--nav-width:4em;--font-body:"sofia-pro",sans-serif;--font-head:"cubano",sans-serif;--font-code:"attribute-mono",monospace;--font-size:20px;--max-width-bp:768px;--orange-pink:linear-gradient(to bottom right,var(--orange-light),var(--orange-dark) 85%);--green-grad:linear-gradient(to bottom right,var(--green-light),var(--green-dark) 85%);--background:var(--gray6);--background-opacity:#12181b95;--text-color:var(--gray2);--h-color:#fff;--nav-shadow:4px 0 10px -3px #010101;--card-shadow:0 4px 8px rgba(0,0,0,.38);--toc-shadow:rgba(0,0,0,.7) 0px 10px 20px 0px;--nav-bg:var(--gray5);--tag-bg:var(--gray4);--code-bg:#22262f;--card-bg:var(--gray5);--overlay-bg:rgba(0,0,0,.9);--h-border:2px dashed var(--nav-bg);--nav-border:2px dashed var(--text-color);--card-border:1px solid var(--nav-bg);--card-radius:0.25em;transition:all .3s ease}body{background:var(--background);color:var(--text-color);display:flex;flex-direction:column;font-family:var(--font-body);font-size:var(--font-size);margin:0;min-height:100vh}main{margin-top:var(--nav-width);padding:1rem}a{color:var(--blue);text-decoration:none}em,h1,h2,h3,h4,h5,h6{color:var(--h-color)}h1,h2,h3,h4,h5,h6{font-family:var(--font-head);font-weight:400}img{height:auto;max-width:100%}i svg{margin:0 3px;position:relative;top:.125em;width:1em}.zero-top svg{top:0}footer{align-items:center;display:flex;flex-direction:column;font-size:.85em;justify-content:center;margin-top:120px;min-height:250px;opacity:.8;text-align:center}footer .footer-links{display:flex;justify-content:space-between}footer .footer-links a{color:var(--green)}hr{border:none;border-bottom:var(--h-border)}li{padding:.5em 0}blockquote{border-left:3px dashed var(--nav-bg);font-size:1.2em;font-weight:300;padding-left:1em;position:relative}.red{color:#ff3860}.red-bg{background:#ff3860}.blue{color:#498afb}.blue-bg{background:#498afb}.orange{color:#fa8142}.orange-bg{background:#fa8142}.green{color:#09c372}.green-bg{background:#09c372}.purple{color:#9166cc}.purple-bg{background:#9166cc}.yellow{color:#ffdd57}.yellow-bg{background:#ffdd57}.pink{color:#ff4088}.pink-bg{background:#ff4088}::selection{background:var(--green);color:#fff}@media (max-width:768px){:root{--font-size:15px;--nav-width:3em}main{margin-left:.5em}}allow-if,google-login{visibility:hidden}figure{background:var(--code-bg);box-shadow:var(--nav-shadow);margin:0;text-align:center}figcaption{font-size:.9em;padding:.5em}.row{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.row-max-1{gap:1.5rem;grid-template-columns:repeat(1,minmax(250px,650px))}.row-max-1,.row-max-2{display:grid;justify-content:center}.row-max-2{gap:1.75rem;grid-template-columns:repeat(auto-fit,minmax(250px,600px))}.row-max-3{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(250px,500px));justify-content:space-evenly}.white{color:#fff}.text-contrast{color:var(--h-color)}.text-sm{font-size:.75em}.text-lg{font-size:1.5em}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-italic{font-style:italic}.font-head{font-family:var(--font-head)!important;font-weight:400!important}.hi{background-color:#4e5556;color:#cbff8f;font-weight:400}.hi,.hi-alt{border-radius:3px;padding:0 4px}.hi-alt{background-color:var(--card-bg)}.hi-gradient{background-image:linear-gradient(90deg,var(--orange),var(--pink));border-radius:3px;color:var(--h-color);padding:0 4px}.sub-heading{color:var(--text-color);display:block;font-family:var(--font-body);font-size:.5em;font-weight:400}.home-heading{font-size:1.6em}.home-sub-heading{color:var(--text-color);font-family:var(--font-code);font-size:.8em;font-weight:400;text-transform:uppercase}.downcase{text-transform:lowercase}.emoji{font-style:normal}.emoji-btn{font-size:1.25em;margin:0 .33em}.red{color:var(--red)}.red-bg{background:var(--red)}.orange{color:var(--orange)}.spacer{margin:1em 0}.text-thin{font-weight:300}.swap-text{opacity:1}.swap-text,text-cycle{transition:opacity .3s ease}text-cycle{opacity:0}.row-home{margin:7vw 3em}@media screen and (max-width:768px){.row-home{margin:7vw 0}}.row-home h2{font-size:1.6em}.row-home p{font-size:1.4em;font-weight:300}@media screen and (max-width:768px){.hide-sm{display:none;visibility:hidden}}@media (min-width:768px){.hide-lg{display:none;visibility:hidden}}.flex{display:flex}.flex-center,.flex-center-col{align-items:center;display:flex;justify-content:center}.flex-center-col{flex-direction:column}.no-pad{padding:0!important}.no-animate{transform:none!important;transition:none!important}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border-bottom{border-bottom:var(--h-border)}.shadow{box-shadow:var(--card-shadow)}.pb-1{padding-bottom:1rem}.frame-full{min-height:500px;width:100%}.aspect-16x9{background:var(--nav-bg);padding-top:56.25%}.twitter-bg{background:#1da1f2}.twitter{color:#1da1f2}.github{color:#333}.github-bg{background:#333}.youtube{color:#ff0a00}.slack{color:#ce1f5b}.subtext{color:var(--text-color);font-size:.9em}.gde-logo{max-width:300px}@keyframes delayedFade{0%{opacity:1}50%{opacity:1}to{opacity:0}}.delayed-fade{animation:delayedFade 2s}.gradient-text{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-image:linear-gradient(90deg,var(--orange),var(--pink));color:transparent}.gradient-text::selection{-webkit-text-fill-color:var(--h-color)}.file-name{align-items:center;background:var(--code-bg);box-shadow:var(--nav-shadow);color:var(--text-color);display:inline-flex;flex-direction:row;font-size:.9em;font-weight:500;padding:.5em 1em .5em .5em}.file-name .file-icon{display:block;height:24px;margin-right:10px;width:24px}.copy-alert{bottom:50px;color:var(--green);opacity:0;position:fixed;right:50px}.highlight{box-shadow:var(--card-shadow);overflow-x:auto}.highlight::-webkit-scrollbar{height:6px;width:6px}.highlight::-webkit-scrollbar-track{background:var(--background)}.highlight::-webkit-scrollbar-thumb{background:var(--gray3)}.highlight::-webkit-scrollbar-thumb:hover{background:var(--gray4)}code,pre{font-family:var(--font-code);font-size:.95em;font-weight:400}li code,p code{background:var(--code-bg);border-radius:3px;color:var(--purple);font-size:.85em;font-weight:700;padding:0 .4em}.highlight,pre.highlight{color:var(--text-color);line-height:1.5;margin-bottom:1rem;padding:1em}.highlight,.highlight .hll,.highlight pre,pre.highlight{background:var(--code-bg)}.highlight .c{color:#63677e}.highlight .err{color:#ffb1a9}.highlight .k{color:#e19ef5}.highlight .l{color:#a3eea0}.highlight .n,.highlight .o,.highlight .p{color:#dee2f7}.highlight .c1,.highlight .cm,.highlight .cp,.highlight .cs{color:#63677e}.highlight .gs{font-weight:700}.highlight .kc{color:#e19ef5}.highlight .kd{color:#e19ef5;font-weight:700}.highlight .kn,.highlight .kp,.highlight .kr{color:#e19ef5}.highlight .kt{color:#e19ef5;font-weight:700}.highlight .ld{color:#a3eea0}.highlight .m{color:#eddc96}.highlight .s{color:#a3eea0}.highlight .na{color:#eddc96}.highlight .nb,.highlight .nc,.highlight .nd,.highlight .ne,.highlight .ni,.highlight .no{color:#fdce68}.highlight .nf{color:#dee2f7}.highlight .nl{color:#fdce68}.highlight .nn,.highlight .nx{color:#dee2f7}.highlight .py{color:#fdce68}.highlight .nt{color:#ff8276}.highlight .nv{color:#fdce68}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#eddc96}.highlight .s2,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx{color:#a3eea0}.highlight .sr{color:#7be2f9}.highlight .s1{color:#a3eea0}.highlight .ss{color:#7be2f9}.highlight .bp,.highlight .vc,.highlight .vg{color:#fdce68}.highlight .vi{color:#f9867b}.highlight .il{color:#eddc96}.highlight .gu{color:#75715e}.highlight .gd{color:#ff8276}.highlight .gi{color:#a6e22e}.colorful-theme .highlight .p,.light-theme .highlight .p{color:var(--text-color)}.colorful-theme .highlight .o,.light-theme .highlight .o{color:#c2c6da}.colorful-theme .highlight .nl,.light-theme .highlight .nl{color:#e66900}.colorful-theme .highlight .c1,.light-theme .highlight .c1{color:#c9cbd6}.colorful-theme .highlight .nt,.light-theme .highlight .nt{color:#e45649}.colorful-theme .highlight .na,.light-theme .highlight .na{color:#bb7512}.colorful-theme .highlight .s,.light-theme .highlight .s{color:#50a14f}.colorful-theme .highlight .s1,.light-theme .highlight .s1{color:#68c567}.colorful-theme .highlight .kr,.light-theme .highlight .kr{color:#9d5bb1}.colorful-theme .highlight .nx,.light-theme .highlight .nx{color:#574c86}.colorful-theme .highlight .s2,.light-theme .highlight .s2{color:#50a14f}.colorful-theme .highlight .k,.light-theme .highlight .k{color:#9d5bb1}.colorful-theme .highlight .kd,.light-theme .highlight .kd{color:#db928b}.colorful-theme .highlight .kt,.light-theme .highlight .kt{color:#9d5bb1}.colorful-theme .highlight .nc,.light-theme .highlight .nc{color:#6d6a72}.colorful-theme .highlight .nf,.light-theme .highlight .nf{color:#667efb}.colorful-theme .highlight .n,.light-theme .highlight .n{color:#5c669b}.colorful-theme .highlight .m,.colorful-theme .highlight .mf,.colorful-theme .highlight .mi,.light-theme .highlight .m,.light-theme .highlight .mf,.light-theme .highlight .mi{color:#525564}.topnav{background:var(--nav-bg);border-bottom:var(--card-border);box-shadow:var(--nav-shadow);display:flex;flex-direction:row;font-size:1.2rem;height:var(--nav-width);position:fixed;transition:top .3s ease;width:100%;z-index:999}.topnav .item:hover .item-label{transform:scale(1) translateY(40px)}.topnav .item .item-label{opacity:.8;position:absolute;transform:scale(0) translateX(0);transition:transform .2s ease}@media (max-width:768px){.topnav{margin:0}}.item{align-items:center;cursor:pointer;display:flex;flex-direction:column;height:var(--nav-width);justify-content:center;margin:0 1em;max-height:70px;position:relative}.item img,.item svg{height:1.5em;width:1.5em}.item a{color:var(--text-color)}.item .btn{padding:.5em 1em}.item.last{margin-right:5vw}a.item{color:var(--text-color)}.logo{max-width:70px;transition:opacity .3s;width:var(--nav-width)}.logo svg{height:2em;width:2em}.logo:hover svg{fill:var(--orange-pink)}@media screen and (max-width:768px){.logo{margin-left:.25em}}.item-text{flex-direction:row;transition:color .3s}.item-text:hover{color:var(--h-color)}.item-text svg{height:1em;margin-right:.25em;width:1em}.google-login-img{position:relative;top:3px}.pro-link{color:#fff}.topnav-logo{min-width:15vw}.topnav-links{font-family:var(--font-head);font-weight:400;margin:0 auto}@media screen and (max-width:768px){.topnav-links{width:0}}.topnav-icons{min-width:15vw}@media screen and (max-width:768px){.topnav-icons svg{width:1.5rem}.topnav-icons .item{margin:0 .75em}}.item-avatar{position:relative;top:3px}.item-avatar img{border-radius:50%;height:2em;width:2em}menu-toggler,theme-btn{visibility:hidden}menu-toggler{z-index:999}.dark-theme .item .fk-primary{color:var(--gray3)}.dark-theme .item .fk-secondary{color:var(--gray4)}.dark-theme .item:hover .fk-primary{color:var(--orange)}.dark-theme .item:hover .fk-secondary{color:var(--orange-light)}.light-theme .item .fk-primary{color:var(--gray2)}.light-theme .item .fk-secondary{color:var(--gray3)}.light-theme .item:hover{transition:color .5s ease}.light-theme .item:hover .fk-primary{color:var(--orange)}.light-theme .item:hover .fk-secondary{color:var(--orange-dark)}.topnav .item:hover .fk-primary{color:var(--text-color)}.topnav .item:hover .fk-secondary{color:var(--h-color)}.item .fk-primary,.item .fk-secondary,.item:hover .fk-primary,.item:hover .fk-secondary{transition:color .5s ease}.card{background:var(--card-bg);border-radius:var(--card-radius);box-shadow:var(--card-shadow);color:var(--text-color);display:inline-flex;flex-direction:column;margin:0 0 1em;padding:0;transform:translateY(0);width:100%}.card,.card:hover{transition:transform .3s}.card:hover{transform:translateY(-3px)}.card.center{align-items:center;justify-content:center}.card .card-content{padding:1em}@media (max-width:768px){.card{display:flex;max-width:100%;width:100%}}.snippet-list-link{display:block;margin-bottom:10px;padding:1em;text-align:left;text-decoration:none}.card-course{margin:1em auto;max-width:720px;text-align:center}.card-lesson{font-weight:300;max-width:650px;overflow:hidden}.card-outline{background:none;border:var(--h-border);border-width:3px;box-shadow:none}.well{box-shadow:var(--card-shadow);padding:1em}.box,.well{background:var(--nav-bg)}.box{color:var(--h-color);display:flex;margin:.5em 0;min-height:100px}.box .box-icon{align-items:center;color:var(--text-color);display:flex;justify-content:center;max-width:5em;min-width:3em;width:10%}.box .box-icon svg{opacity:.85;width:33%}.box .box-content{align-items:flex-start;display:flex;flex-direction:column;padding:1em}.box .box-content a,.box .box-content h2,.box .box-content h3,.box .box-content h4{border:none;color:currentColor;margin:0}.box .box-content a{text-decoration:underline}.box .box-content p{line-height:1.5}.box-sm{font-size:.9em;margin:0;min-height:0}.box-sm .box-content{padding:.75em .3em}.box-red{background:var(--red)}.box-red,.box-red h3{color:#fff}.box-red .box-icon{background:var(--red-dark);color:#fff}.box-green{background:var(--green);color:#fff}.box-green h3{color:#fff}.box-green .box-icon{background:var(--green-dark);color:#fff}.box-orange{background:var(--orange);color:#fff}.box-orange h3{color:#fff}.box-orange .box-icon{background:var(--orange-dark);color:#fff}.box-blue{background:var(--blue)}.box-blue,.box-blue h3{color:#fff}.box-blue .box-icon{background:var(--blue-dark);color:#fff}.box-purple{background:var(--purple);color:#fff}.box-purple h3{color:#fff}.box-purple .box-icon{background:var(--purple-dark);color:#fff}.box-bookmark{background:var(--tag-bg)}.notification{bottom:2em;left:4em;margin:0;opacity:.95;position:fixed;right:1em;z-index:9999}.notification.hide{opacity:0;transform:translateX(100%);transition:all .3s ease-out}.notification-close{position:absolute;right:1em}.post-video{margin:0 auto}.page-title,.post-title{font-size:3em;padding-bottom:.5em;text-align:center}.course-title{font-size:2em;padding-bottom:.5rem}.course-title,.page-title{text-align:left}.post-info{background:var(--nav-bg);box-shadow:var(--card-shadow);display:flex;margin:0 auto;min-height:150px;padding:1em}.post-info .post-detail{align-items:flex-end;display:flex;flex-direction:column;padding:.5em;width:100%}.post-info .post-description{font-size:.92em;padding:.5em;text-align:left}.post-info .post-buttons{margin-bottom:auto}.post-info .post-tags{text-align:right}.content-main{display:flex;flex-direction:row;max-width:100%;min-width:0}.content-article{margin:1em 2.5em;width:75%}.content-article.no-toc{width:100%}.content-article h2{border-bottom:var(--h-border);padding-bottom:.7em}.content-article h3{color:var(--text-color)}.content-article ol,.content-article ul{color:var(--h-color);font-size:1.1em;font-weight:300}.content-article p{line-height:1.8}.content-article em{font-weight:700}.content-article strong{color:var(--h-color);font-size:.9em;font-weight:700}.content-article p a{box-shadow:inset 0 -3px 0 #b4e7f8;color:var(--h-color);font-weight:600;transition:background .15s cubic-bezier(.33,.66,.66,1)}.content-article p a:hover{background-color:rgba(0,255,242,.3)}.toc{margin-right:.5em;min-width:250px}.toc nav{background:var(--nav-bg);border-bottom-left-radius:var(--card-radius);border-top-left-radius:var(--card-radius);box-shadow:var(--toc-shadow);margin-bottom:1em;margin-top:1em;max-height:80vh;overflow-y:auto;padding:.5em;position:sticky;top:30px}.toc nav::-webkit-scrollbar{height:6px;width:6px}.toc nav::-webkit-scrollbar-track{background:var(--background)}.toc nav::-webkit-scrollbar-thumb{background:var(--gray3)}.toc nav::-webkit-scrollbar-thumb:hover{background:var(--gray4)}.toc nav ul{list-style:none;margin:0;padding:0}.toc nav ul li{padding:.5em}.toc nav ul li a{color:var(--blue);font-weight:500;transition:color .4s}.toc nav ul li a:hover{border-bottom:1px solid var(--purple);color:var(--purple);transition:color .4s}.toc nav ul li ul{font-size:.75em;font-weight:500;margin-left:5px}.toc nav ul li ul a{color:var(--text-color)}.vid{height:0;overflow:hidden;padding-bottom:56.25%;position:relative}.vid iframe,.vid video{height:100%;left:0;position:absolute;top:0;width:100%}.vid-center{margin:0 auto}.video-overlay,video,video-player{max-width:1920px;width:100%}.video-overlay{aspect-ratio:16/9;background-image:linear-gradient(45deg,var(--nav-bg) 25%,var(--background) 25%,var(--background) 50%,var(--nav-bg) 50%,var(--nav-bg) 75%,var(--background) 75%,var(--background) 100%);background-size:56.57px 56.57px;left:0;top:0}.err-404,.video-overlay{align-items:center;display:flex;justify-content:center}.err-404{flex-direction:column}.err-404 svg{width:20%}@media (max-width:1024px){.content-main{flex-direction:column-reverse;flex-wrap:wrap}.content-article,.content-main,.toc{position:static;width:100%}.toc{margin-left:0}.content-article{margin:0}}.chapter-nav{display:flex;padding:1.5em 0}.chapter-nav a{background:var(--overlay-bg);max-width:75%}.chapter-nav .chapter-prev{margin-right:auto}.chapter-nav .chapter-next{align-self:flex-end;max-width:400px}.chapter-item{align-items:center;display:flex;transition:all .3s ease}.chapter-item:hover{background:var(--tag-bg);transform:scale(1.02)}.chapter-item .video-labels{align-items:flex-end;display:flex;flex-direction:column;font-size:.9rem;margin-left:auto;margin-right:1rem}.home-features .card{min-height:240px}.home-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-top:3em;padding:4rem 7vw}@media screen and (max-width:768px){.home-hero{display:flex;flex-direction:column}.hero-buttons{display:flex;justify-content:center}.hero-buttons .btn{margin-left:0}.hero-buttons .btn+.btn{margin-left:.5em}.hero-buttons .btn:last-child{margin-right:0}.hero-vid{margin-top:1.5em}}.hero-content{display:flex;flex-direction:column;justify-content:space-between;padding:0 2rem}.snippet-title{border-bottom:var(--h-border);font-size:2em;padding-bottom:10px}.user-profile{align-items:center;display:flex;flex-direction:row;font-size:1.25em;font-weight:700;justify-content:flex-start}.user-profile img{border-radius:var(--card-radius);margin-right:.25em;width:1.5em}.health-check .box-icon{color:#fff}.health-check p{font-family:var(--font-code);font-size:.9em}.author-headline{margin-top:5rem}.author-headline .author-avatar{text-align:center}.author-headline .author-avatar img{border-radius:50%;box-shadow:var(--toc-shadow);height:175px;max-width:175px}.author-snip{display:flex;font-weight:500;justify-content:left;margin:20px 0}.author-snip .author-avatar img{border-radius:50%;box-shadow:var(--nav-shadow);height:48px;margin-right:.5em;width:48px}.lesson-type{padding:.5em;position:absolute;right:0;top:0}.the-end{font-weight:500;padding:2em 0;text-align:center;text-transform:uppercase}.content-pad{margin-bottom:2em;padding:0 3em}@media (max-width:768px){.content-pad{padding:0 .5em}}.dashboard-box{border-radius:12px;margin-bottom:1em;min-height:200px}.dashboard-box,.login-wrapper{align-items:center;display:flex;flex-direction:column;justify-content:center}.login-wrapper{background:var(--background);box-shadow:var(--toc-shadow);margin:0 auto 4em;max-width:512px;padding:1em}.login-wrapper.in-modal{margin-top:4em}.title-box{background:var(--h-color);color:var(--background);display:inline-block;margin:1rem auto;padding:.5rem}.stackblitz{width:100%}.brand-list{align-items:center;display:flex;flex-direction:row;justify-content:space-between;list-style-type:none;list-style:none;margin:10px 5vw}.brand-list li{margin:0 10px}.brand-list li img{max-height:50px}.pagination{display:flex;justify-content:center;list-style:none}@media screen and (max-width:768px){.pagination{flex-wrap:wrap;padding:0}}.pagination .page-item{margin:.5em;padding:0}.pagination .page-item.active,.pagination .page-item.disabled{cursor:default;opacity:.5;transform:translateY(-2px)}.pagination .page-item.disabled{background:none}.pagination .page-item a{color:var(--text-color);padding:1em 2em}.insta{display:flex;justify-content:center}.chapters{z-index:99}.chapters-list{margin:0 auto;max-width:998px}.chapters-sticky{background:var(--purple);position:sticky;text-align:center;top:0}.chapters-list-fixed{background:var(--nav-bg);font-size:.9em;height:100vh;left:0;overflow-y:scroll;padding:70px 1rem 0;position:fixed;top:0;width:clamp(250px,24vw,500px)}.chapters-list-fixed h3{margin:1rem 0 .25rem}.chapters-list-fixed::-webkit-scrollbar{height:6px;width:6px}.chapters-list-fixed::-webkit-scrollbar-track{background:var(--background)}.chapters-list-fixed::-webkit-scrollbar-thumb{background:var(--gray3)}.chapters-list-fixed::-webkit-scrollbar-thumb:hover{background:var(--gray4)}@media screen and (max-width:768px){.chapters-list-fixed{height:auto;margin:0 auto;position:relative;width:100%}}.chapters-wrap{margin-bottom:2rem}.course-article{margin-left:clamp(260px,25vw,500px);padding:0 2rem}@media screen and (max-width:768px){.course-article{margin-left:0}}.tweet-grid{grid-column-gap:32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto 48px;max-width:1200px;padding-bottom:24px}.tweet-card{background:var(--card-bg);border-radius:8px;box-shadow:var(--card-shadow);flex-direction:column;line-height:1.5;padding:3rem 2rem;position:relative}.tweet-card,.tweet-card .tweet-user{display:flex;margin-bottom:2rem}.tweet-card .tweet-user img{border-radius:100%;height:48px;margin-right:12px;width:48px}.tweet-card .tweet-details{display:flex;flex-direction:column}.tweet-card .tweet-name{font-size:1.25rem;font-weight:700}.tweet-card .tweet-content{font-weight:300}.tweet-card .tweet-icon{color:#e3e9f0;position:absolute;right:24px}.tweet-card .tweet-icon svg{color:var(--h-color);height:1.5rem;width:1.5rem}.brand-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:4rem 0;padding:4rem 1rem;place-items:center}.brand-grid img{filter:grayscale(100%);margin:2rem;max-width:200px}route-loader{bottom:1em;position:fixed;right:1em}.spinner{height:40px;margin:10px auto;position:relative;width:40px}.double-bounce1,.double-bounce2{animation:sk-bounce 2s ease-in-out infinite;background-color:var(--text-color);border-radius:50%;height:100%;left:0;opacity:.6;position:absolute;top:0;width:100%}.double-bounce2{animation-delay:-1s}@keyframes sk-bounce{0%,to{transform:scale(0)}50%{transform:scale(1)}}.tag{background:var(--tag-bg);border-radius:3px;border-radius:2px;color:var(--text-color);display:inline-block;font-weight:600;margin:.25em .1em;padding:.2em .5em .3em}h1.tag{margin-left:0;margin-right:0}.tag-sm{display:inline-block;font-size:.7em;font-weight:400;letter-spacing:.15ch}.tag-lg{border-radius:4px;font-size:1.2em}.tag-bg{background:var(--background)}.tag-green,.tag-pro{background:var(--green);color:#fff}.tag-purple{background:var(--purple);color:#fff}.tag-blue{background:var(--blue);color:#fff}.tag-contrast{background:var(--text-color);color:var(--background)}.tag-javascript{background:#f0db4f;color:#000}.tag-typescript{background:#2775c3;color:#fff}.tag-angular{background:#dc0530;color:#fff}.tag-firebase{background:#ffcb2b;color:#12181a}.tag-vue{background:#41b883;color:#35495e}.tag-rxjs{background:var(--pink);color:var(--gray5)}.tag-node{background:#90c53f;color:#46483d}.tag-cloud-functions{background:var(--blue);color:#fff}.tag-flutter{background:#54c5f8;color:#003b6c}.tag-google-maps{background:#33a668;color:#f8d845}.tag-android{background:#a4c34a;color:#fff}.tag-fauna,.tag-stripe{background:#6675e0;color:#fff}.tag-machine-learning{background:var(--purple-light);color:#fff}.tag-python{background:#3879ab;color:#ffda5d}.tag-svelte{background:#ff3e00;color:#fff}.tag-react{background:#222;color:#00d8ff}.tag-ios{background:#000;color:#fff}.tag-minimum-viable-product,.tag-mvp{background-image:linear-gradient(90deg,#ff8901,#db1d5f);color:#fff;font-weight:700}.tag-ionic{background:#fff;color:#4a8afc}.tag-nest{background:#000;color:#e0234e}.tag-graphql{background:#e10097;color:#fff}.tag-electron{background:#adecf3;color:#313244}.tag-css{background:#f954be;color:#313244}.tag-github{background:#24292e;color:#fff}.tag-deno{background:#222220;color:#e1e9d5}.tag-docker{background:#2496ed;color:#fff}.tag-nextjs{background:#000;color:#fff}.tag-rpi{background:#bc1142;color:#000}.tag-go{background:#00add8;color:#fff}.tag-redis{background:#bc1111;color:#fff}.btn,.page-item{align-items:center;background:var(--nav-bg);border:2px solid transparent;border-radius:3px;color:var(--text-color);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:.625em;font-weight:700;justify-content:center;margin:.25em .25em .25em 0;padding:1em 2em;text-decoration:none;text-transform:uppercase;vertical-align:bottom}.btn svg,.page-item svg{height:1.3em;margin:0 .3em}.btn:hover,.page-item:hover{transform:translateY(-2px);transition:transform .2s ease}.btn:disabled,.btn[disabled]{cursor:not-allowed;opacity:.8!important;transform:translateY(0)!important}.btn-block{display:block;margin:2em 0;width:100%}.btn-block img,.btn-block svg{position:relative;top:5px}.btn-sm{padding:.5em 1em}.btn-lg{font-size:1em;padding:1.25em 2.5em}.btn-contrast{background:var(--text-color);color:var(--nav-bg)}.btn-contrast:hover{transform:translateY(-2px);transition:transform .2s ease}.btn-red{background:var(--red);color:#fff}.btn-red:hover{box-shadow:var(--card-shadow);transform:translateY(-2px);transition:transform .2s ease}.btn-purple{background:var(--purple);color:#fff}.btn-purple:hover{box-shadow:var(--card-shadow);transform:translateY(-2px);transition:transform .2s ease}.btn-green{background:var(--green);color:#fff}.btn-green:hover{box-shadow:var(--card-shadow);transform:translateY(-2px);transition:transform .2s ease}.btn-blue{background:var(--blue);color:#fff}.btn-blue:hover{box-shadow:var(--card-shadow);transform:translateY(-2px);transition:transform .2s ease}.btn-orange{background:var(--orange);color:#fff}.btn-orange:hover{box-shadow:var(--card-shadow);transform:translateY(-2px);transition:transform .2s ease}.btn-orange-outline{background:var(--background);border:2px solid var(--orange);transition:background .4s ease}.btn-orange-outline:hover{background:var(--orange);box-shadow:var(--card-shadow);color:#fff;transition:background .4s ease}.btn-green-outline{background:var(--background);border:2px solid var(--green);transition:background .4s ease}.btn-green-outline:hover{background:var(--green);box-shadow:var(--card-shadow);color:#fff;transition:background .4s ease}.btn-blue-outline{background:var(--background);border:2px solid var(--blue);transition:background .4s ease}.btn-blue-outline:hover{background:var(--blue);box-shadow:var(--card-shadow);color:#fff;transition:background .4s ease}.btn-purple-outline{background:var(--background);border:2px solid var(--purple);transition:background .4s ease}.btn-purple-outline:hover{background:var(--purple);box-shadow:var(--card-shadow);color:#fff;transition:background .4s ease}.btn-signin{background-color:#fff;border:2px solid #000;color:#000;font-size:1rem;text-transform:none}.btn-signin i{margin-right:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(180deg)}}.spin{animation:spin .5s ease-in-out infinite alternate}.pulse:focus,.pulse:hover{animation:pulse 1s;box-shadow:0 0 0 2em hsla(0,0%,100%,0)}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--green)}}.qna-header{margin-top:75px;text-align:center}.qna-header h2{border-bottom:var(--h-border);font-size:2em;padding-bottom:10px;text-align:center}.utterances{max-width:100%}.questions{margin-bottom:100px}fieldset{border:none;margin:0;padding:0}label{display:inline-block;font-style:italic;font-weight:700;margin:.5em 0}.input,.textarea{background:var(--nav-bg);border:none;border-bottom:2px solid var(--gray3);box-sizing:border-box;color:var(--h-color);display:block;font-family:var(--font-body);font-size:1em;font-weight:500;outline:none;padding:.5em;width:100%}.input::placeholder,.textarea::placeholder{color:var(--text-color)}.input:focus,.textarea:focus{border-bottom:3px solid var(--text-color)}.input.ng-dirty.ng-invalid,.textarea.ng-dirty.ng-invalid{border-bottom:3px solid var(--red)}.input.ng-valid.ng-dirty,.textarea.ng-valid.ng-dirty{border-bottom:3px solid var(--green)}.textarea{font-size:.95em;font-weight:400;min-height:150px}.modal-overlay{background:var(--overlay-bg);height:100vh;left:0;overflow-y:scroll;position:fixed;top:0;transform:scale(0);transition:transform .2s ease-out;width:100vw;z-index:99}.modal-overlay::-webkit-scrollbar{height:6px;width:6px}.modal-overlay::-webkit-scrollbar-track{background:var(--background)}.modal-overlay::-webkit-scrollbar-thumb{background:var(--gray3)}.modal-overlay::-webkit-scrollbar-thumb:hover{background:var(--gray4)}.modal-overlay.modal-show{transform:scale(1);transition:transform .2s ease-in}.algolia-hits{height:100%;overflow-y:scroll;padding:var(--nav-width);padding-top:5em;width:auto}.algolia-hits::-webkit-scrollbar{height:6px;width:6px}.algolia-hits::-webkit-scrollbar-track{background:var(--background)}.algolia-hits::-webkit-scrollbar-thumb{background:var(--gray3)}.algolia-hits::-webkit-scrollbar-thumb:hover{background:var(--gray4)}.algolia-hits em{color:var(--green)}.algolia-hits h4,.algolia-hits p{font-weight:400;margin:.25em}.algolia-hits p{color:var(--text-color);font-size:.85em}.algolia-hit{background:var(--card-bg);box-shadow:var(--card-shadow);display:block;margin-top:.2em;padding:10px;transition:all .3s ease}.algolia-hit:hover{background:var(--tag-bg);transition:all .3s ease}.algolia-hit .hit-type{color:var(--text-color);font-size:.9em;font-weight:400}.algolia-close{float:right;margin-top:10px}.algolia-input{background:var(--overlay-bg);background:transparent;border:none;border-bottom:5px solid;color:var(--h-color);display:block;font-family:var(--body-font);font-size:5vw;outline:none;width:100%}.algolia-input::placeholder{opacity:.7}.payment-wrapper{background:var(--gray6);background:linear-gradient(180deg,var(--background) 0,var(--nav-bg) 100%);margin:1em auto;max-width:768px;min-width:350px;padding:1em;width:100%}.payment-header{border-bottom:var(--h-border);border-color:var(--gray3);margin-bottom:1em;padding-bottom:1em}.paypal{border-top:var(--h-border);padding-top:1rem}.crypto-charge{align-items:center;display:flex;flex-direction:column;justify-content:center}.crypto-charge button{max-width:300px}.btn-stripe{margin:1em 0}.payment-terms{align-items:center;border-top:var(--h-border);border-color:var(--gray3);display:flex;justify-content:space-between;margin-bottom:1rem;padding-top:1em}.payment-loading{margin:1em 0}.card-stripe{border:3px solid var(--gray3);margin:25px 0;padding:1em}.errors-stripe{margin:0 0 10px}.pricing{padding:1em;text-align:center}.pricing .pricing-item{background:fixed;background:var(--background);display:flex;flex-direction:column;margin-top:2em;padding:1em}.pricing .pricing-item:before{background:#88d99e;content:"";display:block;height:8px;left:0;top:0;width:100%}.pricing .pricing-item:last-child{border-right:none}.pricing .pricing-item:last-child:before{background:#ff9982}.pricing .pricing-item .pricing-icon{font-size:3em;margin-top:1em;transition:all .3s ease-in-out}.pricing .pricing-item:hover .pricing-icon{color:var(--green);transition:all .3s ease-in-out}.pricing .pricing-price .price{color:var(--green);font-size:2.5em;font-weight:700}.pricing .pricing-price .interval{font-size:1em}.pricing .pricing-features a{color:var(--h-color)}.pricing .pricing-features a:hover{border-bottom:2px solid var(--green)}.pricing ul{border-top:var(--h-border);list-style:none;margin:1em 0 auto;padding:.5em 0;text-align:left}.pricing ul li{padding:.25em 0}.pricing ul li:before{content:"✅ "}.pricing ul li.fire:before{content:"🔥 "}.pricing ul li.no-emoji:before{content:""}.pricing .pricing-button{display:block;width:100%}.pricing .pricing-button.selected{background:var(--gray3)}.payments-charge{margin-bottom:1em}#carbonads{background-color:var(--nav-bg);bottom:30px;box-shadow:var(--nav-shadow);display:flex;font-family:var(--font-body);max-width:330px;position:fixed;right:30px;z-index:101}#carbonads a{text-decoration:none}#carbonads a,#carbonads a:hover{color:inherit}#carbonads span{display:block;overflow:hidden;position:relative}#carbonads .carbon-wrap{display:flex}.carbon-img{line-height:1;margin:0}.carbon-img,.carbon-img img{display:block}.carbon-text{font-size:13px;line-height:1.5;padding:10px;text-align:left}.carbon-poweredby{background:repeating-linear-gradient(-45deg,transparent,transparent 5px,rgba(0,0,0,.025) 0,rgba(0,0,0,.025) 10px) rgba(241,243,244,.4);display:block;font-size:9px;font-weight:600;letter-spacing:.5px;line-height:1;padding:8px 10px;text-align:center;text-transform:uppercase}@media (min-width:320px) and (max-width:480px){#carbonads{bottom:0;max-width:480px;right:0;width:100%}}