.hljs{display:block;overflow-x:auto;padding:.5em;background:#2d2b57;font-weight:400}.hljs-title{color:#fad000;font-weight:400}.hljs-name{color:#a1feff}.hljs-tag{color:#fff}.hljs-attr{color:#f8d000;font-style:italic}.hljs-built_in,.hljs-selector-tag,.hljs-section,.hljs-keyword{color:#fb9e00}.hljs,.hljs-subst{color:#e3dfff}.hljs-string,.hljs-attribute,.hljs-symbol,.hljs-bullet,.hljs-addition,.hljs-code,.hljs-regexp,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-template-tag,.hljs-quote,.hljs-deletion{color:#4cd213}.hljs-meta,.hljs-meta-string{color:#fb9e00}.hljs-comment{color:#ac65ff}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-name,.hljs-strong{font-weight:400}.hljs-literal,.hljs-number{color:#fa658d}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.code-line-numbers__number{text-align:right;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#8c8c8c;background-color:#efefef;padding:3px 10px;margin-right:5px}/*! tailwindcss v2.1.2 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:before,:after{box-sizing:border-box}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type=button],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:Fira Sans,Ubuntu,Helvetica,Arial,sans-serif;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e4e4e7}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#a1a1aa}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#a1a1aa}input::placeholder,textarea::placeholder{opacity:1;color:#a1a1aa}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:Fira Mono,ui-monospace,Hack,Menlo,Consolas,monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}body{font-family:Fira Sans,sans-serif;font-size:1.25rem}h1,h2,h3,h4,h5,h6{font-family:Zen Dots,cursive}p{margin-top:1rem;margin-bottom:1rem}#home #home-cards p{margin-top:.5rem;margin-bottom:.5rem}#home p img{display:inline}.container{position:relative}.container h1{font-size:2.25rem;margin-top:2rem;padding-top:2rem}.container h2{font-size:1.75rem;margin-top:2rem;padding-top:1rem}.container .challenges h2{font-size:1.75rem;margin-top:1rem;padding-top:0}.container h3{font-size:1.5rem;margin-top:.5rem;padding-top:.5rem}.container a,.nav-list a{--tw-text-opacity: 1;color:rgba(55,48,163,var(--tw-text-opacity));text-decoration:underline}.container a:hover,.nav-list a:hover{--tw-bg-opacity: 1;background-color:rgba(55,48,163,var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgba(255,255,255,var(--tw-text-opacity))}.container ul{list-style:disc;margin-left:1em}.nounderline{-webkit-text-decoration-line:none!important;text-decoration-line:none!important}.btn{border-radius:.25rem;display:block;padding:.5rem 1rem;--tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);letter-spacing:.025em}.btn-primary{--tw-bg-opacity: 1;background-color:rgba(99,102,241,var(--tw-bg-opacity))}.btn-primary:hover{--tw-bg-opacity: 1;background-color:rgba(55,48,163,var(--tw-bg-opacity))}.btn-primary{--tw-text-opacity: 1;color:rgba(255,255,255,var(--tw-text-opacity))}blockquote{--tw-bg-opacity: 1;background-color:rgba(250,250,250,var(--tw-bg-opacity));--tw-border-opacity: 1;border-color:rgba(212,212,216,var(--tw-border-opacity));border-left-width:8px;margin-left:auto;margin-right:auto;max-width:42rem;padding:1.25rem;--tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);letter-spacing:.025em}.aside{float:right;border-left-width:4px;font-size:1rem;padding:1rem;width:50%}.aside-info{--tw-bg-opacity: 1;background-color:rgba(238,242,255,var(--tw-bg-opacity));--tw-border-opacity: 1;border-color:rgba(99,102,241,var(--tw-border-opacity));--tw-text-opacity: 1;color:rgba(99,102,241,var(--tw-text-opacity))}.aside-warning{--tw-bg-opacity: 1;background-color:rgba(255,251,235,var(--tw-bg-opacity));--tw-border-opacity: 1;border-color:rgba(180,83,9,var(--tw-border-opacity));--tw-text-opacity: 1;color:rgba(180,83,9,var(--tw-text-opacity))}.aside-title>p{margin-bottom:0}.aside-content>p:first-child{margin-top:0}pre{margin-bottom:1.5rem;position:relative}pre code.hljs.php:before{content:"PHP";text-align:right;font-size:.875rem;padding-top:.25rem;padding-right:.5rem;position:absolute;top:0px;right:0px}pre code.hljs.xml:before{content:"HTML";text-align:right;font-size:.875rem;padding-top:.25rem;padding-right:.5rem;position:absolute;top:0px;right:0px}pre code.hljs.css:before{content:"CSS";text-align:right;font-size:.875rem;padding-top:.25rem;padding-right:.5rem;position:absolute;top:0px;right:0px}pre code.hljs.js:before{content:"JS";text-align:right;font-size:.875rem;padding-top:.25rem;padding-right:.5rem;position:absolute;top:0px;right:0px}pre code.hljs.bash:before{content:"BASH";text-align:right;font-size:.875rem;padding-top:.25rem;padding-right:.5rem;position:absolute;top:0px;right:0px}p>code{background-color:#2d2b57;color:#e3dfff;padding-left:2px;padding-right:2px;border-radius:.25rem}.code-line-numbers__number{color:#8c8c8c;background-color:transparent!important;padding:3px 10px;margin-right:5px}.code-line-numbers__number__zeros{color:transparent}.code-line-numbers__number .hljs-number{color:#8c8c8c!important}pre code.has-focus-lines>span:not(.line-focus){transition:filter .35s,opacity .35s;filter:blur(.095rem);opacity:.65}pre code.has-focus-lines:hover span:not(.line-focus){filter:blur(0px);opacity:1}.input{--tw-bg-opacity: 1;background-color:rgba(244,244,245,var(--tw-bg-opacity));border-radius:.25rem;padding:.25rem 1.25rem;--tw-text-opacity: 1;color:rgba(63,63,70,var(--tw-text-opacity));width:100%}.external:after{font-family:Material Symbols Outlined,sans-serif;font-feature-settings:"liga";text-rendering:optimizeLegibility;content:"open_in_new";vertical-align:text-bottom;margin-inline:4px 0}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.bg-gray-50{--tw-bg-opacity: 1 !important;background-color:rgba(250,250,250,var(--tw-bg-opacity))!important}.bg-gray-300{--tw-bg-opacity: 1 !important;background-color:rgba(212,212,216,var(--tw-bg-opacity))!important}.hover\:bg-green-500:hover{--tw-bg-opacity: 1 !important;background-color:rgba(16,185,129,var(--tw-bg-opacity))!important}.rounded{border-radius:.25rem!important}.rounded-lg{border-radius:.5rem!important}.border{border-width:1px!important}.border-b{border-bottom-width:1px!important}.cursor-pointer{cursor:pointer!important}.inline{display:inline!important}.flex{display:flex!important}.table{display:table!important}.grid{display:grid!important}.hidden{display:none!important}.flex-wrap{flex-wrap:wrap!important}.items-start{align-items:flex-start!important}.justify-between{justify-content:space-between!important}.font-semibold{font-weight:600!important}.text-xl{font-size:1.5rem!important}.text-3xl{font-size:1.875rem!important}.text-4xl{font-size:2.25rem!important}.text-8xl{font-size:6rem!important}.leading-loose{line-height:2!important}.m-2{margin:.5rem!important}.m-4{margin:1rem!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.my-6{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-8{margin-top:2rem!important;margin-bottom:2rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mr-1{margin-right:.25rem!important}.ml-1{margin-left:.25rem!important}.mt-2{margin-top:.5rem!important}.mb-3{margin-bottom:.75rem!important}.mt-4{margin-top:1rem!important}.mt-8{margin-top:2rem!important}.mb-8{margin-bottom:2rem!important}.max-w-md{max-width:28rem!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-4{padding:1rem!important}.py-4{padding-top:1rem!important;padding-bottom:1rem!important}.px-8{padding-left:2rem!important;padding-right:2rem!important}.pt-4{padding-top:1rem!important}.pr-4{padding-right:1rem!important}.pl-4{padding-left:1rem!important}.pt-8{padding-top:2rem!important}*{--tw-shadow: 0 0 #0000}.shadow-md{--tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}*{--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(99, 102, 241, .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000}.text-center{text-align:center!important}.text-gray-500{--tw-text-opacity: 1 !important;color:rgba(113,113,122,var(--tw-text-opacity))!important}.text-gray-600{--tw-text-opacity: 1 !important;color:rgba(82,82,91,var(--tw-text-opacity))!important}.text-gray-800{--tw-text-opacity: 1 !important;color:rgba(39,39,42,var(--tw-text-opacity))!important}.text-red-500{--tw-text-opacity: 1 !important;color:rgba(244,63,94,var(--tw-text-opacity))!important}.hover\:text-white:hover{--tw-text-opacity: 1 !important;color:rgba(255,255,255,var(--tw-text-opacity))!important}.italic{font-style:italic!important}.uppercase{text-transform:uppercase!important}.w-1\/2{width:50%!important}.w-1\/3{width:33.333333%!important}.w-2\/3{width:66.666667%!important}.w-full{width:100%!important}.gap-4{gap:1rem!important}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.blur{--tw-blur: blur(8px) !important}@media (min-width: 640px){.sm\:flex-auto{flex:1 1 auto!important}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (min-width: 768px){.md\:flex-1{flex:1 1 0%!important}}@media (min-width: 1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
